Anda di halaman 1dari 6

%Mtodo de Jacobi 3x3

clear
A=[7 3 -2;1 -7 3;-2 -4 7]
b=[7 3 11]
X0=zeros(1,3);
K=0;Norma=1;
fprintf('K X(1) X(2) X(3) Norma\n')
while Norma>0.0001
K=K+1;
fprintf('%2d',K)
for i=1:3
suma=0;
for j=1:3
if i~=j
suma=suma+A(i,j)*X0(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.4f',X(i))
end
Norma=norm(X0-X);
fprintf('%10.4f/n',Norma)
X0=X;
if K>25
disp('No se alacanz la convergencia')
break
end
end

%Mtodo de Jacobi 4x4


clear
A=[-1 3 5 2;1 9 8 4;2 1 1 -4;0 1 0 1]
b=[10 15 2 -3]
X0=zeros(1,4);
K=0;Norma=1;
fprintf('K X(1) X(2) X(3) X(4) Norma\n')
while Norma>0.0001
K=K+1;
fprintf('%2d',K)
for i=1:4
suma=0;
for j=1:4
if i~=j
suma=suma+A(i,j)*X0(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.4f',X(i))
end
Norma=norm(X0-X);
fprintf('%10.4f/n',Norma)
X0=X;
if K>25
disp('No se alacanz la convergencia')
break
end
end

%metodo SOR 4x4


clear
A=[4 -1 0 0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4]
b=[1 1 1 1]
for i=1:4
N(i,:)=A(i,:)/A(i,i);
b(i)=b(i)/A(i,i);
end
N
U=triu(N);
L=tril(N);
X0=zeros(1,4);
X=X0; w=1.3;
K=0;Norma=1;
fprintf(' K X(1) X(2) X(3) X(4) Norma\n')
while Norma>0.0001
K=K+1;
fprintf('%2d',K)
for i=1:4
sumaL=0; sumaU=0;
for j=1:4
if i~=j
sumaL=sumaL+L(i,j)*X(j);
sumaU=sumaU+U(i,j)*X0(j);
end
end
X(i)=X(i)+w*(b(i)-sumaL-X(i)-sumaU);
fprintf('%10.4f',X(i))
end
Norma=norm(X0-X);
fprintf('%10.4f\n',Norma)
X0=X;
if K>17
disp(' no se alcanz la convergencia')
break
end
end

%metodo SOR 3*3


clear
A=[7 3 -2;1 -7 3;-2 -4 7]
b=[7 3 11]
for i=1:3
N(i,:)=A(i,:)/A(i,i);
b(i)=b(i)/A(i,i);
end
N
U=triu(N);
L=tril(N);
X0=zeros(1,3);
X=X0; w=1.3;
K=0;Norma=1;
fprintf(' K X(1) X(2) X(3) X(4) Norma\n')
while Norma>0.0001
K=K+1;
fprintf('%2d',K)
for i=1:3
sumaL=0; sumaU=0;
for j=1:3
if i~=j
sumaL=sumaL+L(i,j)*X(j);
sumaU=sumaU+U(i,j)*X0(j);
end
end
X(i)=X(i)+w*(b(i)-sumaL-X(i)-sumaU);
fprintf('%10.4f',X(i))
end
Norma=norm(X0-X);
fprintf('%10.4f\n',Norma)
X0=X;
if K>17
disp(' no se alcanz la convergencia')
break
end
end

%Mtodo de Gauss Seidel 4x4


clear;A=[4 -1 0 0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4];b=[1 1 1 1]
X0=zeros(1,4);X=X0;K=0;Norma=1;
fprintf('K X(1) X(2) X(3) X(4) Norma\n')
while Norma>0.0001
K=K+1; fprintf('%2d',K)
for i=1:4
suma=0;
for j=1:4
if i~=j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i);fprintf('%10.4f',X(i))
end
Norma=norm(X0-X);
fprintf('%10.4f/n',Norma)
X0=X;
if K>17
disp('No se alacanz la convergencia')
break
end
end

%Mtodo de Gauss Seidel 3*3


clear;A=[7 3 -2;1 -7 3;-2 -4 7;];b=[7 3 11]
X0=zeros(1,3);X=X0;K=0;Norma=1;
fprintf('K X(1) X(2) X(3) Norma\n')
while Norma>0.0001
K=K+1; fprintf('%2d',K)
for i=1:3
suma=0;
for j=1:3
if i~=j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i);fprintf('%10.5f',X(i))
end
Norma=norm(X0-X);fprintf('%10.5f/n',Norma)
X0=X;
if K>17
disp('No se alacanz la convergencia')
break
end
end

Anda mungkin juga menyukai