function sistema_no_lineal
% e1='760-exp((1-x)^2*(0.4623+0.2203*x))*exp(16.6513-(2940.46/(y-52.16)))
% e2='760-exp(0.3727*x^2+0.2203*x^3)*exp(15.9006-2788.51/(y-52.36))'
% [x,y] = solve(e1,e2,'x,y')
f1='760-exp((1-x)^2*(0.4623+0.2203*x))*exp(16.6513-(2940.46/(y-52.16)))';
F1=inline(vectorize(f1));
xa=-30:1:30; ya=-30:1:30; [x,y]=meshgrid(xa,ya);
f11=F1(x,y);
f22='760-exp(0.3727*x^2+0.2203*x^3)*exp(15.9006-2788.51/(y-52.36))';
F2=inline(vectorize(f22));
f22=F2(x,y);
contour(x,y,f11,[0,0],'k');
hold on;
grid on;
contour(x,y,f22,[0,0],'r');
hold off
clear all
syms x y
newtonnl(760-exp((1-x)^2*(0.4623+0.2203*x))*exp(16.6513-(2940.46/(y-52.16))),760-exp(0.3727*x^2+0.2203*x^3)*exp(15.9006-2788.51/(y-52.36)),[-7;-6],0.0001,10)
function newtonnl(f1,f2,X0,tol,mx)
syms x y;
j=jacobian([f1;f2],[x y]);
% obtiene la matriz jacobiana para f1 y f2 en las variables x y y
F1=inline(char(f1),'x','y');
% los paremetros ’x’,’y’ permiten definir la función en terminos de dos variables
F2=inline(char(f2),'x','y');
J1=inline(char(j(1,1)),'x','y');
J2=inline(char(j(1,2)),'x','y');
J3=inline(char(j(2,1)),'x','y');
J4=inline(char(j(2,2)),'x','y');
% define cada función dependiente de las variables x y y
E=tol+1;
% inicializamos una variable para medir la distancia entre dos aporximaciones
% como tol+1 para que el cilo empiece
C=0;
% nos permite contar las iteraciones que vamos realizando de modo que no
% sobrecen a mx que es el número máximo de iteraciones.
F=zeros(2,1); J=zeros(2,2);
% inicializa el vector columna para que el producto este bien definido
% e inicializa la matriz jacobiana en ceros
while E>tol && C<mx
C=C+1; % cuenta la iteración
F(1)=F1(X0(1),X0(2)); F(2)=F2(X0(1),X0(2));
fprintf('n=%d x=%16.10f y=%18.10f ',C,X0(1),X0(2));
%muestra paso de la iteracion, la aproximación para x y y
fprintf(' f1(x,y)=%12.5e f2(x,y)=%12.5e \n',F(1),F(2))
%muestra el copmportamiento de las funciones del sistema (esperamos sean casi cero)
J(1,1)=J1(X0(1),X0(2)); J(1,2)=J2(X0(1),X0(2));
J(2,1)=J3(X0(1),X0(2)); J(2,2)=J4(X0(1),X0(2));
H=-J\F;
X1=X0+H;
E=norm(X1-X0);
X0=X1;
end
EJECUCION
>> sistema_no_lineal
n=1 x= -7.0000000000 y= -6.0000000000 f1(x,y)=7.59850e+002 f2(x,y)=1.69372e+002
n=2 x= 1994.8599806872 y= -66429.2712368832 f1(x,y)= -Inf f2(x,y)= -Inf
Warning: Matrix is singular, close to singular or badly scaled. Results may be inaccurate. RCOND = NaN.
> In sistema_no_lineal>newtonnl at 57
In sistema_no_lineal at 22