UNIVERSIDAD DE ANTIOQUIA

CARLOS ALBERTO PALACIO TOBÓN.
Medellín
2007 – I
MÉTODOS ITERATIVOS PARA LA SOLUCIÓN
NUMÉRICA DE SISTEMAS DE ECUACIONES
LINEALES
•MAESTRÍA Y DOCTORADO EN INGENIERÍA
MATEMÁTICAS AVANZADAS
VALORES Y VECTORES PROPIOS
Comando MATLAB: poly(.), eig(.)
( A - ì I ) x = 0 ó A x = ì I x
VALORES Y VECTORES PROPIOS
% Polinomio caracteristico
A=randn(5)
pc=poly(A) % polinomio característico
vp=roots(pc) % valores propios
[X,D]= eig(A) % otra forma de obtener los valores propios
A*X,X*D % A*X = X*D D:matriz diagonal con los valores
propios
RADIO ESPECTRAL
% Radio Espectral
re = max(abs(vp))
re <= norm(A,1)
re <= norm(A,2)
re <= norm(A,inf)
re <= norm(A,'fro')
norm(A,2)
sqrt(max(abs(roots(poly(A'*A))))) % |A|2 = raiz(re(A'*A))
% Para convergencia se requiere re < 1
% re=max(abs(roots(poly(A))))
APLICANDO MATLAB
ANALISIS METODOS ITERATIVOS
MÉTODO ITERATIVO DE JACOBI
( )
C x T x
n i para
a
b
a
x a
x
n i para
a
b
a
x a
x i a Si
b x a x a
n i b x a
k k
i
ii
i
ii
n
i j
j
k
j ij
k
i
n
i j
j
ii
i
ii
j ij
i ii
n
i j
j
i j ij i ii
n
j
i j ij
+ =
= + ÷ =
= +
|
|
.
|

\
|
÷ = ¬ ¬ =
+ ÷ =
= =
÷
=
=
÷
=
=
=
=
=
¿
¿
¿
¿
1
1
1
1
1
1
...., , 2 , 1
...., , 2 , 1 0
......., , 2 , 1
METODO DE JACOBI
b Ax=
c Tx x + =
JACOBI MATRICIAL
Sea D la matriz diagonal cuya diagonal es la misma que A, sea –L la parte
estrictamente tringular inferior de A y sea –U la parte estrictamente
triangular superior de A, luego:

A = D – L – U

A x =b entonces (D – L – U) x =b

D x =(L + U) x +b
JACOBI MATRICIAL
% ejemplo de Jacobi
A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8]
b=[6;25;-1;15]
% Generacion de la matriz de Jacobi
D=diag(diag(A))
L=-tril(A,-1)
U=-triu(A,1)
A, D-L-U % son iguales
Tj=inv(D)*(L+U)
cj=inv(D)*b
reTj=max(abs(roots(poly(Tj)))) % calculo del radio espectral
APLICANDO MATLAB (1/2)
% Iteracion de Jacobi
x=randn(4,1)
for q=1:6
x(:,q+1)=Tj*x(:,q)+cj
ej(q+1)=norm(x(:,q+1)-x(:,q))
pause
end
plot(ej) % Grafico del error
plot(x') % grafico de aproximación de cada componente
for q=1:4 % uno a uno la aproximación
plot(x(q,:)),pause
end
APLICANDO MATLAB (2/2)
MÉTODO ITERATIVO DE GAUSS-SEIDEL
( ) ( )
n i para
a
b x a x a
x
ii
i
n
i j
k
j ij
i
j
k
j ij
k
i
...., , 2 , 1
1
1
1
1
=
+ ÷ ÷
÷ =
¿ ¿
+ =
÷
÷
=
En el método de Jacobi se calcula x
k
con las componentes
x
k-1
. El método de Gauss-Seidel sugiere una mejora, como
para i > 1 ya se calcularon x
1
k
, …., x
i-1
k
, se utilizan para
calcular x
i
k
GAUSS-SEIDEL MATRICIAL
Sea D la matriz diagonal cuya diagonal es la misma que A, sea –L la parte
estrictamente tringular inferior de A y sea –U la parte estrictamente
triangular superior de A, luego:

A = D – L – U

A x =b entonces (D – L – U) x =b

(D – L) x = U x +b

Si (D – L)
-1
existe para cada i, entonces

x =(D – L)
-1
U x +(D – L)
-1
b

Esto da origen a la forma matricial del método iterativo de Gauss-Seidel

x
k
=(D – L)
-1
U x
k-1
+(D – L)
-1
b

x
k
=T x
k-1
+C
GAUSS-SEIDEL MATRICIAL
% Generacion de la matriz de Gauss-Seidel
Tg = inv(D-L)*U
cg = inv(D-L)*b
reTg=max(abs(roots(poly(Tg))))
APLICANDO MATLAB (1/2)
% Iteracion de Gauss-Seidel
xg=x(:,1)
for q=1:6
xg(:,q+1)=Tg*xg(:,q)+cg
eg(q+1)=norm(xg(:,q+1)-xg(:,q))
pause
end
plot(eg) % Grafico del error
plot(xg') % grafico de aproximación de cada componente
for q=1:4 % uno a uno la aproximación
plot(xg(q,:)),pause
end
plot(e),hold on,plot(eg,'r'),hold off % comparacion de las dos graficas
APLICANDO MATLAB (2/2)
METODO SOR
Vector residual: r = b - Ax
Subrelajacion: 0 < w < 1
Gauss-Seidel: w = 1
Sobrerelajacion: 1 < w
SOR MATRICIAL
% Generacion de la matriz de SOR
w = 1.2 % parámetro de relajación
Ts = inv(D-w*L)*((1-w)*D+w*U)
cs = w*inv(D-w*L)*b
reTs=max(abs(roots(poly(Ts))))
APLICANDO MATLAB (1/3)
% Iteracion de SOR
xs=x(:,1)
for q=1:6
xs(:,q+1)=Ts*xs(:,q)+cs
es(q+1)=norm(xs(:,q+1)-xs(:,q))
pause
end
plot(es) % Grafico del error
plot(xs') % grafico de aproximacion de cada componente
for q=1:4 % uno a uno la aproximacion
plot(xs(q,:)),pause
end
plot(e),hold on,plot(eg,'r'),plot(es,'g'),hold off % comparacion de las dos graficas
APLICANDO MATLAB (2/3)
% con nuevo parametro w Generacion de la matriz de SOR
w = 1.03 % parametro de relajacion
Ts = inv(D-w*L)*((1-w)*D+w*U)
cs = w*inv(D-w*L)*b
reTs=max(abs(roots(poly(Ts))))

APLICANDO MATLAB (3/3)
MATRICES DEFINIDAS POSITIVAS
PROPIEDADES DE MATRICES
DEFINIDAS POSITIVAS
MATRIZ DE PERMUTACIONES
MATRICES DIAGONALMENTE
DOMINANTES
% Diagonalmente dominantes
% prueba de diagonalmente dominantes
sum(abs(A-diag(diag(A)))') <= sum(abs(diag(diag(A)))')
DD=A+10*eye(4) % generacion de una diagonalmente dominante
sum(abs(DD-diag(diag(DD)))') <= sum(abs(diag(diag(DD)))')
% otra forma de escribir lo anterior
triu(A,1)+tril(A,-1), A-diag(diag(A)) % triu(A,1)+tril(A,-1)= A-diag(diag(A))
% Las matrices definidas positivas
DP=DD*DD' % genracion de definida positiva
x=randn(4,1)
x'*DP*x
U=chol(DP)
U'*U,DP % U'*U = DP
APLICANDO MATLAB

Sign up to vote on this title
UsefulNot useful