Advertisement
Guest User

10

a guest
Sep 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. xmin=pi/4;
  2. xmax=2*pi;
  3. x=linspace(xmin,xmax,2001)' ;
  4.  
  5. f=sin(x)+cos(2*x);
  6. gf=cos(x)-2*sin(2*x);
  7.  
  8. subplot(2,2,1);plot(x,f,'b-')
  9. title('f(x)'); xlabel('x'); grid on
  10. subplot(2,2,3);plot(x,gf,'b-')
  11. title('gradiente de f(x)'); xlabel('x'); grid on
  12.  
  13.  
  14. % Obtenga el mínimo de la función mediante el algoritmo de descenso
  15. % por gradiente.
  16. mu=0.05;
  17. x_ini=4.5;
  18.  
  19. epsilon=0.001;
  20. maxiter=100;
  21.  
  22. G=inf(maxiter,1);
  23. X=zeros(maxiter,1);
  24.  
  25. x=x_ini;
  26. g=inf;
  27. iter=1;
  28.  
  29. while abs(g) > epsilon && iter < maxiter
  30. g=cos(x)-2*sin(2*x);
  31. x=x-mu*g;
  32.  
  33. X(iter)=x;
  34. G(iter)=g;
  35.  
  36. iter=iter+1;
  37. end
  38.  
  39. disp(['solución: ',num2str(x)])
  40. disp(['valor del gradiente en la solución: ',num2str(g)])
  41.  
  42.  
  43. % Dibuje las curvas de convergencia de la solución y del gradiente.
  44. iter = iter-1;
  45. G = G(1:iter);
  46. X = X(1:iter);
  47.  
  48. subplot(2,2,2);plot((1:iter),X,'ro-')
  49. title('convergencia solución'); xlabel('iteraciones'); grid on
  50. subplot(2,2,4);plot((1:iter),G,'ro-')
  51. title('convergencia gradiente'); xlabel('iteraciones'); grid on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement