Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function aproksymacja(wybor_fcn, algorytm_nauki)
- krok_prob = .05;
- ilosc_cykli_uczacych = 1000;
- cel_nauki = 0.00001;
- ilosc_neur = 5;
- t_rzecz = 0:.01:4*pi;
- t = 0:krok_prob:4*pi;
- switch wybor_fcn
- case 1
- d = sin(t);
- d_rzecz = sin(t_rzecz);
- case 2
- k = 0;
- d = [];
- for i=1:length(t)
- if ((k*pi <= t(i)) && (t(i) < pi*(k+1)))
- d = [d, 0];
- elseif ((pi*(k+1) <= t(i)) && (t(i) < pi*(k+2)))
- d = [d, 1];
- else
- d = [d, 0];
- k = k+2;
- end
- end
- k = 0;
- d_rzecz = [];
- for i=1:length(t_rzecz)
- if ((k*pi <= t_rzecz(i)) && (t_rzecz(i) < pi*(k+1)))
- d_rzecz = [d_rzecz, 0];
- elseif ((pi*(k+1) <= t_rzecz(i)) && (t_rzecz(i) < pi*(k+2)))
- d_rzecz = [d_rzecz, 1];
- else
- d_rzecz = [d_rzecz, 0];
- k = k+2;
- end
- end
- case 3
- d = [1, sin(5*t(2:length(t))/2)./(5*sin(t(2:length(t))/2))];
- d_rzecz = [1, sin(5*t_rzecz(2:length(t_rzecz))/2)./(5*sin(t_rzecz(2:length(t_rzecz))/2))];
- case 4
- t_kw = (t.^2)./40;
- d = cos(t).*exp(-(t_kw));
- t_rzecz_kw = (t_rzecz.^2)./40;
- d_rzecz = cos(t_rzecz).*exp(-(t_rzecz_kw));
- end
- %%% Tutaj wpisz definicje sieci neuronowej oraz zdefiniuj parametry nauki:
- %%% algorytm nauki (zmienna algorytm_nauki), funkje aktywacji w
- %%% poszczegolnych warstwach sieci, cel nauki (zmienna cel_nauki), ilosc
- %%% cykli uczacych (zmienna ilosc_cykli_uczacych)
- net = feedforwardnet(ilosc_neur);
- switch algorytm_nauki
- case 1
- net.trainFcn = 'traingd';
- case 2
- net.trainFcn = 'traingdx';
- case 3
- net.trainFcn = 'traingdm';
- case 4
- net.trainFcn = 'trainlm';
- end
- net.trainParam.epochs = ilosc_cykli_uczacych;
- %net.trainParam.time =
- %%% Tutaj zapisz trenowanie sieci neuronowej
- %tic
- net = train(net, t, d);
- %t = toc;
- %%% Tutaj zapisz symulacje sieci
- y = sim(net, t_rzecz);
- blad = sum((d_rzecz-y).^2)
- figure, plot(t,d,'+', t_rzecz,y, t_rzecz,d_rzecz), grid on, title('+: dane uczace, pomarańczowy: odpowiedz sieci, czerwony: zadana funkcja');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement