Está en la página 1de 4

%NEWTON RAPHSON MODIFICADO 2

clc,clear,
f1=inline('x^2+y^2-10*x+8');
f2=inline('x*y^2-10*y+9+2*x');
EA=18;tol=0.01;
xo=0;yo=0;n=0;
disp('METODO DE NEWTON MODIFICADO')
disp('iter x y z , error')
while (EA>tol)
n=n+1;
x1=xo-f1(xo,yo)/(2*xo-10);
y1=yo-f2(x1,yo)/(2*x1*yo-10);
EA=sqrt((x1-xo)^2+(y1-yo)^2);
fprintf('%d %.4f %.4f
%.4f\n',n,x1,y1,EA)
xo=x1;yo=y1;
end

%EJERCICIO DE gauus seidel!!!


clc
clear all
disp('METODO DE GAUSS SEIDEL')
n=input('Ingrese numero de filas:')
m=input('Ingrese numero de columnas:')

for i=1:n
for j=1:m
A(i,j)=input('Ingrese elemento de la matriz:')
end
end
for j=1:n
b(j,1)=input('Ingrese vector resultante:')
end
for j=1:n
x0(j,1)=input('Ingrese vector inicial:')
end
x=x0;
k=0;
error=1;
conv=0;

fprintf(' K X(1) X(2)


X(3) X(4) Error\n\n')
fprintf('%2d %10.4f %10.4f %10.4f %10.4f
- \n' , 0,10, 10,10,10)
while error > 0.0005
k=k+1;
fprintf('%2d ', k)
for i=1:n
sum=0;
for j=1:m
if i~=j
sum=sum+A(i,j)*x(j);
end
end
x(i)=(b(i)-sum)/A(i,i);
fprintf(' %10.4f ',x(i))
end
error=norm(x0-x);
fprintf('%10.4f\n',error)
x0=x;
end

%PUNTO FIJO MULTIVARIABLE


clc,clear,
xo=0;yo=0;zo=0;EA=18;tol=0.01;
Gx=inline('(x^2+y^2+8)/10')
Gy=inline('(x*y^2+2*x+9)/10')

disp('iter x y EA')
n=0;
while(EA>tol)
n=n+1;
x1=Gx(xo,yo);
y1=Gy(xo,yo);
EA=sqrt((x1-xo)^2+(y1-yo)^2);
fprintf('%d %.4f %.4f %.4f\n',n,x1,y1,EA)
xo=x1;yo=y1;
end
%METDO DE NEWTON MODIFICADO 1
clc,clear,
tol=0.01;xo=0;x1=0;x2=0;
f1=inline('x*y*z-x^2+y^2-1.34');
f2=inline('x*y-z^2-0.09');
f3=inline('exp(x)-exp(y)+z-0.41');
f1x=inline(diff(sym(f1),'x'));
f2y=inline(diff(sym(f2),'y'));
f3z=inline(diff(sym(f3),'z'));
while (EA>tol)
x1=xo-f1(xo,yo,zo)/f1x(xo,yo,zo);
y1=yo-f2(xo,yo,zo)/f2y(xo);
z1=zo-f3(xo,yo,zo)/1;
EA=sqrt((x1-xo)^2+(y1-yo)^2+(z1-zo)^2);
disp([x1 y1 z1 EA]);
xo=x1;yo=y1;zo=z1;
end

%METDO DE jacobini1

clc,clear,
A=[10 3 5;2 10 4;2 5 10];
B=[30;20;40];
a=[A,B]
tol=0.01;
[f,c]=size(a);
EA=18;
e=0;
disp(' método de jacobini')
disp('iter x y z ERROR ERX
ERY ERZ ')
for i=1:f
sum1=0;sum2=0;
for j=1:f
if(i~=j)
sum1=sum1+abs(a(i,j));
sum2=sum2+abs(a(j,i));
end
end
if(a(i,i)>sum1 & a(i,i)>sum2)
u=1;
else
u=0;
end
end

for i=1:f
x(i)=0;
end
if(u==1)
while (EA>tol)
e=e+1;
for i=1:(f)
sum=0;
for j=1:f
if(j~=i)
sum=sum+a(i,j)*x(j);
end
end
x1(i)=(a(i,c)-sum)/a(i,i);

end
E=(x1-x).^2;
EA=0;
for i=1:f
EA=EA+E(i);
end
EA=sqrt(EA);
ERX=abs((x1(1)-x(1))/x1(1));
ERY=abs((x1(2)-x(2))/x1(2));
ERZ=abs((x1(3)-x(3))/x1(3));
x=x1;
fprintf('%d %3.4f %3.4f %3.4f %3.4f
%3.4f %3.4f
%3.4f\n',e,x1(1),x1(2),x1(3),EA,ERX,ERY,ERZ)
end

else
disp('no es diagonalmente dominante ')
end

También podría gustarte