Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. function aproksymacja(wybor_fcn, algorytm_nauki)
  2.  
  3. krok_prob = .05;
  4. ilosc_cykli_uczacych = 1000;
  5. cel_nauki = 0.00001;
  6. ilosc_neur = 5;
  7.  
  8. t_rzecz = 0:.01:4*pi;
  9. t = 0:krok_prob:4*pi;
  10.  
  11.  
  12. switch wybor_fcn
  13. case 1
  14. d = sin(t);
  15. d_rzecz = sin(t_rzecz);
  16. case 2
  17. k = 0;
  18. d = [];
  19. for i=1:length(t)
  20. if ((k*pi <= t(i)) && (t(i) < pi*(k+1)))
  21. d = [d, 0];
  22. elseif ((pi*(k+1) <= t(i)) && (t(i) < pi*(k+2)))
  23. d = [d, 1];
  24. else
  25. d = [d, 0];
  26. k = k+2;
  27. end
  28. end
  29. k = 0;
  30. d_rzecz = [];
  31. for i=1:length(t_rzecz)
  32. if ((k*pi <= t_rzecz(i)) && (t_rzecz(i) < pi*(k+1)))
  33. d_rzecz = [d_rzecz, 0];
  34. elseif ((pi*(k+1) <= t_rzecz(i)) && (t_rzecz(i) < pi*(k+2)))
  35. d_rzecz = [d_rzecz, 1];
  36. else
  37. d_rzecz = [d_rzecz, 0];
  38. k = k+2;
  39. end
  40. end
  41. case 3
  42. d = [1, sin(5*t(2:length(t))/2)./(5*sin(t(2:length(t))/2))];
  43. d_rzecz = [1, sin(5*t_rzecz(2:length(t_rzecz))/2)./(5*sin(t_rzecz(2:length(t_rzecz))/2))];
  44. case 4
  45. t_kw = (t.^2)./40;
  46. d = cos(t).*exp(-(t_kw));
  47. t_rzecz_kw = (t_rzecz.^2)./40;
  48. d_rzecz = cos(t_rzecz).*exp(-(t_rzecz_kw));
  49. end
  50.  
  51. %%% Tutaj wpisz definicje sieci neuronowej oraz zdefiniuj parametry nauki:
  52. %%% algorytm nauki (zmienna algorytm_nauki), funkje aktywacji w
  53. %%% poszczegolnych warstwach sieci, cel nauki (zmienna cel_nauki), ilosc
  54. %%% cykli uczacych (zmienna ilosc_cykli_uczacych)
  55.  
  56. net = feedforwardnet(ilosc_neur);
  57. switch algorytm_nauki
  58. case 1
  59. net.trainFcn = 'traingd';
  60. case 2
  61. net.trainFcn = 'traingdx';
  62. case 3
  63. net.trainFcn = 'traingdm';
  64. case 4
  65. net.trainFcn = 'trainlm';
  66. end
  67. net.trainParam.epochs = ilosc_cykli_uczacych;
  68. %net.trainParam.time =
  69.  
  70. %%% Tutaj zapisz trenowanie sieci neuronowej
  71. %tic
  72. net = train(net, t, d);
  73. %t = toc;
  74.  
  75. %%% Tutaj zapisz symulacje sieci
  76. y = sim(net, t_rzecz);
  77.  
  78. blad = sum((d_rzecz-y).^2)
  79. 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