Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- xmin=pi/4;
- xmax=2*pi;
- x=linspace(xmin,xmax,2001)' ;
- f=sin(x)+cos(2*x);
- gf=cos(x)-2*sin(2*x);
- subplot(2,2,1);plot(x,f,'b-')
- title('f(x)'); xlabel('x'); grid on
- subplot(2,2,3);plot(x,gf,'b-')
- title('gradiente de f(x)'); xlabel('x'); grid on
- % Obtenga el mínimo de la función mediante el algoritmo de descenso
- % por gradiente.
- mu=0.05;
- x_ini=4.5;
- epsilon=0.001;
- maxiter=100;
- G=inf(maxiter,1);
- X=zeros(maxiter,1);
- x=x_ini;
- g=inf;
- iter=1;
- while abs(g) > epsilon && iter < maxiter
- g=cos(x)-2*sin(2*x);
- x=x-mu*g;
- X(iter)=x;
- G(iter)=g;
- iter=iter+1;
- end
- disp(['solución: ',num2str(x)])
- disp(['valor del gradiente en la solución: ',num2str(g)])
- % Dibuje las curvas de convergencia de la solución y del gradiente.
- iter = iter-1;
- G = G(1:iter);
- X = X(1:iter);
- subplot(2,2,2);plot((1:iter),X,'ro-')
- title('convergencia solución'); xlabel('iteraciones'); grid on
- subplot(2,2,4);plot((1:iter),G,'ro-')
- title('convergencia gradiente'); xlabel('iteraciones'); grid on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement