Вы находитесь на странице: 1из 9

UNIVERSIDAD CENTRAL DEL ACUADOR

INGENIERA MATEMTICA
ANLISIS NUMRICO II

Tema: Mtodos iterativos de sistemas ecuaciones lineales.

Introduccin:

Importancia de los mtodos numricos.

Los mtodos numricos son tcnicas mediante las cuales es posible formular problemas
matemticos de tal forma que puedan resolverse usando operaciones aritmticas.

Los mtodos numricos nos vuelven aptos para entender esquemas numricos a fin de
resolver problemas matemticos, de ingeniera y cientficos en una computadora,
reducir esquemas numricos bsicos, escribir programas y resolverlos en una
computadora y usar correctamente el software existente para dichos mtodos y no solo
aumenta nuestra habilidad para el uso de computadoras sino que tambin amplia la
pericia matemtica y la comprensi6n de los principios cientficos bsicos.

Temas a tratar:

1.- Gauss-Seidel.

2.- Jacobi.

3.- Mximo descenso.

4.-Gradiente Conjugado

5.- CGNR

6.-CGNE

1.- Algoritmo

Mtodo numrico Gauss Seidel.


clc
clear all
fprintf('Ingrese una matriz A \n\n');
n=input ('Ingrese la dimensin de la matriz ');
for i=1:n
for j=1:n
disp(['El elemento(',num2str(i),',',num2str(j),')'])
A(i,j)=input('');
end
end
fprintf('\n');
fprintf('Ingrese el vector B \n');
for k=1:n
disp(['El elemento(',num2str(k),')'])
B_0(k)=input('');
end
fprintf('\n');
b=B_0';
%Matriz Diagonal
D=diag(diag(A));
%Matriz triangular superior
U=-1*triu(A)+D;
%Matriz triangular inferior
L=(-1)*tril(A)+D;
%definamos
M=(inv(D-L)*U);
%definamos
C=inv(D-L)*b;
%definamos
m=input ('Ingrese el nmero de iteraciones ');
x=[1:m];
y=[1:m];
if norm(M',1)<1
Xk=C;
Xk_1=M*Xk+C;
r=norm(Xk_1-Xk);
l=1;
while l<=m
y(l)=r;
Xk=Xk_1;
Xk_1=M*Xk+C;
r=norm(Xk_1-Xk)
l=l+1;
end
else
disp('||M||>1, es probable que el mtodo no converja')
end
plot(x,y)

Grfico 1: Mtodo numrico Gauss Seidel


2.- Algoritmo

Mtodo numrico Jacobi.


clc
clear all
fprintf('Ingrese una matriz A \n\n');
n=input ('Ingrese la dimensin de la matriz ');
for i=1:n
for j=1:n
disp(['El elemento(',num2str(i),',',num2str(j),')'])
A(i,j)=input('');
end
end
fprintf('\n');
fprintf('Ingrese el vector B \n');
for k=1:n
disp(['El elemento(',num2str(k),')'])
B_0(k)=input('');
end
fprintf('\n');
fprintf('Ingrese el vector incial Xo \n');
for k=1:n
disp(['El elemento(',num2str(k),')'])
X_0(k)=input('');
end
Xo=X_0';
A;
B=B_0';
%Matriz diagonal
D=diag(diag(A));
%Matriz triangular superior
U=-1*triu(A)+D;
%Matriz triangular inferior
L=(-1)*tril(A)+D;
%DEFINAMOS
M=inv(D)*(L+U);
%DEFINAMOS
C=inv(D)*B;
Xk=Xo;
m=input ('Ingrese el nmero de iteraciones ');
x=[1:m+1];
y=[1:m+1];
if norm(M',1)<1
Xk_1=M*Xk+C;
r=norm(Xk_1-Xk);
l=1;
while l<=m+1
y(l)=r;
Xk=Xk_1;
Xk_1=M*Xk+C;
r=norm(Xk_1-Xk)
l=l+1;
end
else
disp('||M||>1, es probable que el mtodo no converja')
end
plot(x,y)

Grfico 2: Mtodo numrico Jacobi.

3.-Algoritmo
Mtodo numrico Mximo descenso.
function [R]= MaxDescenso(A,B,Xo,e)
rk=norm(B-A*Xo);
Xk=Xo;
i=1;
while rk>e
Pk=B-A*Xk;
ak=(Pk'*Pk)/(Pk'*A*Pk);
Xk_1=Xk+ak*Pk;
Xk=Xk_1;
rk=norm(B-A*Xk);
j=i;
y(j)=rk;
i=i+1;
end
n=i-1;
x=[1:n];
plot(x,y);
end

Grfico 3: Mtodo numrico Mximo descenso.

4.- Algoritmo
Mtodo del Gradiente Conjugado
function r=gradConjado(A,b,X,e)
n=length(b);
k=1;
x0=X;
r0= b-(A*x0);
v0=b-(A*x0);
r0=v0;
alfa0=(v0'*r0)/(v0'*A*v0);
x1=x0+alfa0*v0;
r(k)=norm(r0);
while(r(k)>e||k>n)
k=k+1;
r1= b-(A*x1);
beta1=-(v0'*A*r1)/(v0'*A*v0);
v1=r1+beta1*v0;
alfa1=(r1'*v1)/(v1'*A*v1);
x2=x1+alfa1*v1;
x1=x2;
v0=v1;
r(k)=norm(r1);
end
a=[1:k];
B=zeros(k,1);
for i=1:k
B(i)=r(i);
end
plot(a,B)
grid on
end

Grafico 4: Mtodo del Gradiente Conjugado


5.- Algoritmo CGNR
function r=CGNR(C,d,e)
b=C'*d;
A=C'*C;
r=gradientConj(A,b,e);
end

6.- Algoritmo CGNE

function r=CGNE(C,d,e)
A=C*C'
r=gradientConj(A,d,e)
x=C'*y %Sacar el y de arriba
end

Algunas comparaciones que podemos realizar son:

Grafico 5.- Comparacin Mtodos Gauss Seidel, Jacobi

En el grafico (5) a la derecha la grfica del mtodo de Jacobi, a la izquierda la grfica del
mtodo de Gauss-Seidel.

Vemos que el mtodo de Gauss-Seidel tiene a converger ms pronto a la respuesta.


Grafico 6.- Comparacin Mtodos Mximo descenso, Gradiente Conjugado

En el grafico comparativo (6) se puede ver a la Izquierda la convergencia de los residuos del
mtodo iterativo mximo descenso, y a la derecha la grfica de los residuos del mtodo
iterativo Gradiente conjugado. Vemos que el mtodo Gradiente conjugado tiende a la
solucin ms pronto.

A continuacin se enuncia la matriz que fue utilizada para las grficas:

Matriz para jacobi

A=[12 -3 2 0 1 3;0 10 -1 -2 5 0;1 3 22 0 9 7;1 3 2 14 3 4;-1 3 4 0 27 2;0 8 0 -3 -4 25 ];

B=[1 2 3 4 5 6 0]';

Xo=[0 0 0 0 0 0]';

b=[1 2 3 4 5 6 0]';

e=0.0001;

JacobiG(A,B,Xo,e)

Matriz para maximo descenso

A=[5 3 1 4 0 1 2; 2 8 4 2 0 4 6; 1 6 7 2 5 4 0; 0 4 2 6 5 3 1; 1 5 2 4 7 6 3; 4 2 3 0 2 5 1; 5 5 2 1 4 0
6];

B=[1 2 3 4 5 6 7]';

b=[1 2 3 4 5 6 7]';

Xo=[0 0 0 0 0 0 0]';

e=0.003;

MaxDescenso(A,B,Xo,e)

A=[5 3 1 4 0 1 2; 2 8 4 2 0 4 6; 1 6 7 2 5 4 0; 0 4 2 6 5 3 1; 1 5 2 4 7 6 3; 4 2 3 0 2 5 1; 5 5 2 1 4 0
6];

b=[1 2 3 4 5 6 7]';

X=[0 0 0 0 0 0 0]';

e=0.003;

gradConjado(A,b,X,e)

Bibliografa:

Introduccin

http://itpn.mx/recursosisc/4semestre/metodosnumericos/Unidad%20I.pdf
Mtodo del gradiente conjugado

https://es.wikipedia.org/wiki/M%C3%A9todo_del_gradiente_conjugado

Вам также может понравиться