% ========== % Apartado I % ========== % Resolución Analítica % % * * * Ejemplo 1 * * * syms x y real F1=[5*x^2-y^2; y-(sin(x)+cos(y))/4]; S1=solve(F1(1),F1(2)) % Solución doble t=linspace(-2,2,41);[X,Y]=meshgrid(t,t); Z1=subs(F1(1),{x,y},{X,Y}); Z2=subs(F1(2),{x,y},{X,Y}); figure(1); hold off; contour(X,Y,Z1,[-1,0,1]);hold on; contour(X,Y,Z2,[-1,0,1]);grid on; legend('isovalores'); % * * * EJERCICIO 1 * * * F2=[4*x^2+y^2-4; exp(x)+y-1]; S2=solve(F2(1),F2(2)) % Solución simple y hay 2 t=linspace(-2,2,41);[X,Y]=meshgrid(t,t); Z1=subs(F2(1),{x,y},{X,Y}); Z2=subs(F2(2),{x,y},{X,Y}); figure(1); hold off; contour(X,Y,Z1,[-1,0,1]);hold on; contour(X,Y,Z2,[-1,0,1]);grid on; axis('equal'); legend('isovalores'); % % =========== % Apartado II % =========== % % * * * Ejemplo 1 * * * % ##################### Inicio del fichero #################### function F = mifun1(x) F = [5*x(1).^2-x(2).^2;x(2)-0.25*(sin(x(1))+cos(x(2)))]; % ##################### fin del fichero #################### % % Ejecución de la función x0 = [-5; -5]; options=optimset('Display','iter'); [x,fval] = fsolve(@mifun1,x0,options) % % * * * EJERCICIO 2 * * * % Nueva definición de la función % ##################### Inicio del fichero #################### function [F,JF] = mifun1(x) [n,nc]=size(x);if nc~=1;error('x no es un vector columna'),end % Definicion de la funcion F=zeros(n,1); %F(1) = 2*x(1) - x(2) - exp(-x(1)); %F(2) =-x(1) + 2*x(2) - exp(-x(2)); F(1) = 5*x(1).^2 - x(2).^2; F(2) = x(2) - 0.25*(sin(x(1))+cos(x(2))); if nargout==1;return;end % Definicion del Jacobiano JF=zeros(n,n); %JF(1,:)=[2 + exp(-x(1)),-1]; %JF(2,:)=[-1,2 + exp(-x(2))]; JF(1,:)=[10*x(1) , -2*x(2)]; JF(2,:)=[-0.25*cos(x(1)), 1+0.25*sin(x(2))]; % ##################### fin del fichero #################### x0 = [-5; -5]; options=optimset('Display','iter','Jacobian','on',... 'PlotFcns',@optimplotfval ); [x,fval] = fsolve(@mifun1,x0,options) % % * * * Ejemplo 2 * * * % ##################### Inicio del fichero #################### function F = mifun2(x) F = x*x*x-[1,2;3,4]; % ##################### fin del fichero #################### % % Ejecución de la función x0 = ones(2); options=optimset('Display','off'); [x,fval,finflag] = fsolve(@mifun2,x0,options) % % * * * EJERCICIO 3 * * * % ##################### Inicio del fichero #################### function [F,JF]=mifun3(X) if nargin~=1;error('numero de argumetos no valido');end [n,nc]=size(X);if nc~=1;error('X no es un vector columna'),end % % Definicion de la funcion F=zeros(n,1); F(1)=4*X(1).^2+X(2).^2-4; F(2)=exp(X(1))+X(2)-1; if nargout==1;return;end % Definicion del Jacobiano JF=zeros(n,n); JF(1,:)=[4*X(1) , 2*X(2)]; JF(2,:)=[exp(X(1)),1]; % ##################### fin del fichero #################### % % Ejecución de la función en el caso a1 options=optimset('Display','off'); x0 = [1;-1]; [x,fval,finflag] = fsolve(@mifun3,x0,options) % Ejecución de la función en el caso a2 x0 = [-1;1]; [x,fval,finflag] = fsolve(@mifun3,x0,options) % Ejecución de la función en el caso b options=optimset('Display','iter'); x0 = [0;0]; [x,fval,finflag] = fsolve(@mifun3,x0,options) % Ejecución de la función en el caso c con 'lm' y 'gn' options=optimset('Display','iter','Jacobian','on','NonlEqnAlgorithm','lm'); x0 = [0;0]; [x,fval,finflag] = fsolve(@mifun3,x0,options) % ============ % Apartado III % ============ % % % * * * Ejemplo 1 * * * x0 = [0;0]; options=optimset('Display','iter'); [x,resnorm,residue] = lsqnonlin(@mifun3,x0,options)