You are on page 1of 3

clc,clear

disp('************METODO DEL PUNTO FIJO MULTIVARIABLE CON DESPLAZAMIENTOS


SUCESIVOS***********')
x0=0;
y0=0;
fprintf(' k x(k) y(k)\n')
fprintf(' %2d %10.5f %10.5f\n',0, x0, y0)
for k=1:15
x1=(x0^2+y0^2+8)/10;
y1=(x0*y0^2+x0^2+8)/10;
fprintf(' %2d %10.5f %10.5f\n',k, x1, y1)
x0=x1;
y0=y1;
end

clc,clear
disp('************METODO DEL PUNTO FIJO MULTIVARIABLE CON DESPLAZAMIENTOS
SIMULTANEOS***********')
clc,clear
x0=0;
y0=0;
fprintf(' k x(k) y(k) d\n')
fprintf(' %2d %10.5f %10.5f\n',0, x0, y0)
for k=1:15
x1=(x0^2+y0^2+8)/10;
y1=(x0*y0^2+x0^2+8)/10;
d=((x1-x0)^2+(y1-y0)^2)^0.5;
fprintf(' %2d %10.5f %10.5f %10.5f\n',k, x1, y1,d)
x0=x1;
y0=y1;
end

clc,clear
disp('*********NEWTON RAPHSON MULTIVARIABLE************')
x0=0;
y0=0;
fprintf(' k x(k) y(k) |x(k+1)-x(k)| \n')
fprintf(' %2d %10.5f %10.5f\n',0,x0,y0)
for k=1:5
df1x=2*x0-10;
df2x=y0^2+1;
df1y=2*y0;
df2y=2*x0*y0-10;
f1=x0^2-10*x0+y0^2+8;
f2=x0*y0^2+x0-10*y0+8;
A=[df1x df1y; df2x df2y];
b=[-f1; -f2];
hj=inv(A)*b;
x1=x0+hj(1);
y1=y0+hj(2);
dist=((x1-x0)^2+(y1-y0)^2)^0.5;
fprintf(' %2d %10.5f %10.5f %10.5f\n',k,x1,y1,dist)
x0=x1;
y0=y1;
end
clc,clear
disp('*********NEWTON RAPHSON MODIFICADO************')
x0=0;
y0=0;
e=10^-5;
fprintf(' k x(k) y(k) dist \n')
fprintf(' %2d %10.5f %10.5f\n',0,x0,y0)
for k=1:10
f1=x0^2-10*x0+y0^2+8;
df1x=2*x0-10;
x1=x0-f1/df1x;
f2=x1*y0^2+x1-10*y0+8;
df2y=2*x0*y0-10;
y1=y0-f2/df2y;
dist=((x1-x0)^2+(y1-y0)^2)^0.5;
fprintf(' %2d %10.5f %10.5f %10.5f\n',k,x1,y1,dist)
dist=((x1-x0)^2+(y1-y0)^2)^0.5;
if dist<e
break
end
x0=x1;
y0=y1;
end

clc,clear
disp('**************METODOD DE BROYDEN**************')
x=[0 0];
e=10^-8;
fprintf(' k x(k) y(k) dist\n')
fprintf('%2d %10.6f %10.f\n',0,x(1),x(2))
f1=x(1)^2-10*x(1)+x(2)^2+8;
f2=x(1)*x(2)^2+x(1)-10*x(2)+8;
df1x=2*x(1)-10;
df1y=2*x(2);
df2x=x(2)^2+1;
df2y=2*x(1)*x(2)-10;
J=[df1x df1y;df2x df2y];
f0=[f1;f2];
J1=inv(J);
dx=-J1*f0;
x1=x+dx';
for k=1:25
f1=x1(1)^2-10*x1(1)+x1(2)^2+8;
f2=x1(1)*x1(2)^2+x1(1)-10*x1(2)+8;
f=[f1;f2];
df=f-f0;
A1=J1+(dx-J1*df)*dx'*J1/(dx'*J1*df);
dx=-A1*f;
x2=x1+dx';
dist=norm(x2-x1);
fprintf('%2d %10.6f %10.6f %10.5e\n',k,x1(1),x1(2),dist)
x1=x2;
J1=A1;
f0=f;
if dist<e
break
end
end

You might also like