Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. function aproksymacja(wybor_fcn, algorytm_nauki)
  2.  
  3. krok_prob = .06;
  4. ilosc_cylki_uczacych = 1000;
  5. cel_nauki = 0.00001;
  6. ilosc_neuronow = 5;
  7.  
  8. t_rzecz = 0:.01:4*pi;
  9. t = 0:krok_prob:4*pi;
  10.  
  11.  
  12.  
  13.  
  14. switch wybor_fcn
  15. case 1
  16. d = sin(t);
  17. d_rzecz = sin(t_rzecz);
  18. case 2
  19. k = 0;
  20. d = [];
  21. for i=1:length(t)
  22. if ((k*pi <= t(i)) && (t(i) < pi*(k+1)))
  23. d = [d, 0];
  24. elseif ((pi*(k+1) <= t(i)) && (t(i) < pi*(k+2)))
  25. d = [d, 1];
  26. else
  27. d = [d, 0];
  28. k = k+2;
  29. end
  30. end
  31. k = 0;
  32. d_rzecz = [];
  33. for i=1:length(t_rzecz)
  34. if ((k*pi <= t_rzecz(i)) && (t_rzecz(i) < pi*(k+1)))
  35. d_rzecz = [d_rzecz, 0];
  36. elseif ((pi*(k+1) <= t_rzecz(i)) && (t_rzecz(i) < pi*(k+2)))
  37. d_rzecz = [d_rzecz, 1];
  38. else
  39. d_rzecz = [d_rzecz, 0];
  40. k = k+2;
  41. end
  42. end
  43. case 3
  44. d = [1, sin(5*t(2:length(t))/2)./(5*sin(t(2:length(t))/2))];
  45. d_rzecz = [1, sin(5*t_rzecz(2:length(t_rzecz))/2)./(5*sin(t_rzecz(2:length(t_rzecz))/2))];
  46. case 4
  47. t_kw = (t.^2)./40;
  48. d = cos(t).*exp(-(t_kw));
  49. t_rzecz_kw = (t_rzecz.^2)./40;
  50. d_rzecz = cos(t_rzecz).*exp(-(t_rzecz_kw));
  51. end
  52.  
  53. %%% Tutaj wpisz definicje sieci neuronowej oraz zdefiniuj parametry nauki:
  54. %%% algorytm nauki (zmienna algorytm_nauki), funkje aktywacji w
  55. %%% poszczegolnych warstwach sieci, cel nauki (zmienna cel_nauki), ilosc
  56. %%% cykli uczacych (zmienna ilosc_cykli_uczacych)
  57.  
  58. net = feedforwardnet(ilosc_neuronow);
  59.  
  60. switch algorytm_nauki
  61. case 1
  62. net.trainFcn ='traingd'
  63. case 2
  64. net.trainFcn = 'traingdx';
  65. case 3
  66. net.trainFcn = 'traingdm';
  67. case 4
  68. net.trainFcn = 'trainlm';
  69. end
  70. df = 100; %Cz�stotliwo�� wy�wietlania
  71. me = 8000; %Maksymalny numer epoki
  72. eg = 0.02; %B��d SSE
  73. lr = 0.01; %Wsp�czynnik uczenia
  74. net.trainParam.epochs = me;
  75. net.trainParam.goal = eg;
  76. net.trainParam.lr = lr;
  77. net.trainParam.show = df;
  78. %%% Tutaj zapisz trenowanie sieci neuronowej
  79. net = train(net,t,d)
  80.  
  81. %%% Tutaj zapisz symulacje sieci
  82. y = sim(net,t_rzecz);
  83.  
  84. blad = sum((d_rzecz-y).^2)
  85. figure, plot(t,d,'+', t_rzecz,y, t_rzecz,d_rzecz), grid on, title('+: dane uczace, pomaranczowy: odpowiedz sieci, czerwony: zadana funkcja');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement