2. Métodos iterativos para
sistemas de ecuaciones
lineales
Introducción
Ecuación del Calor
Método de Jacobi
Método de Gauss-Seidel
Método de Sobrerrelajación
Problema del Condensador
3. Métodos directos frente a
métodos iterativos
DIRECTOS
Ax =b
x = A b
Tamaño moderado
Modifican la
estructura
Error de redondeo
ITERATIVOS
x = Cx + d
x(k+1) = Cx(k) + d
Tamaño grande
Conservan los ceros
Error de truncamiento
4. Convergencia y número de
operaciones
Coste (para matrices densas)
Directos: n3 Iterativos: k.n2
Convergencia
Criterio de parada:
x x tol; p 1,2,...,inf
(k+1) (k)
p
Ax b tol; p 1,2,...,inf
(k)
p
5. Ecuación del Calor
Sistema de ec. lin. Matriz asociada
T (T T ) / 2
T (T T ) / 2
T (T T ) / 2
T (T T ) / 2
1 0 2
2 1 3
3 2 4
n n-1 n+1
2 - 1
- 1 2 - 1
- 1 2
- 1
- 1 2
T0 T1 T2 . . . Tn Tn+1
6. Matriz de la Ecuación del Calor
con MATLAB
function A = mcalor1(n)
v = ones(1,n-1);
A = 2*eye(n) - diag(v,1) -
diag(v,-1);
7. El método de Jacobi
Sistema de ecuaciones lineales
a x
a x
a x
a x
a x a x a x
a x a x a x
a x a x a x
a x a x a x
b
b
b
b
11 1
21 1
31 1
n1 n
12 2 13 3 1n n
22 2 23 3 2n n
32 2 33 3 3n n
n2 2 n3 3 nn n
1
2
3
n
8. Ecuación de punto fijo
x (b
x (b
x (b
x (b
a x a x a x ) / a
a x a x a x ) / a
a x a x a x ) / a
a x a x a x ) / a
1 1
1 2
2 3
n n
12 2 13 3 1n n 11
21 1 23 3 2n n 22
31 1 32 2 3n n 33
n1 1 n2 2 n,n 1 n 1 nn
9. Iteración de Jacobi
x (b
x (b
x (b
x (b
a x a x a x )/ a
a x a x a x )/ a
a x a x a x )/ a
a x a x a x )/ a
1
(k+1)
1
2
(k+1)
2
3
(k+1)
3
n
(k+1)
n
12 2
(k)
13 3
(k)
1n n
(k)
11
21 1
(k)
23 3
(k)
2n n
(k)
22
31 1
(k)
32 2
(k)
3n n
(k)
33
n1 1
(k)
n2 2
(k)
n,n 1 n 1
(k)
nn
10. Expresión matricial
Resolución con MATLAB
U = triu(A,1); L = tril(A,-1);
d = diag(A);
x = (b-(L+U)*x)./d
A L D U
x D (b (L U)x )
(k 1) 1 (k)
11. Condición suficiente de
convergencia
Matriz estrictamente diagonalmente
dominante: para i=1,2,...,n
Si A es estrictamente diagonalmente
dominante, los iterados de Jacobi
convergen a la solución del sistema
partiendo de cualquier estimación inicial.
|a | |a | |a | |a | |a |
ii i1 i,i 1 i,i 1 in
12. Iteración de Gauss-Seidel
x (b
x (b
x (b
x (b
a x a x a x )/ a
a x a x a x )/ a
a x a x a x )/ a
a x a x a x )/ a
1
(k+1)
1
2
(k+1)
2
3
(k+1)
3
n
(k+1)
n
12 2
(k)
13 3
(k)
1n n
(k)
11
21 1
(k+1)
23 3
(k)
2n n
(k)
22
31 1
(k+1)
32 2
(k+1)
3n n
(k)
33
n1 1
(k+1)
n2 2
(k+1)
n,n 1 n 1
(k+1)
nn
13. Expresión matricial
Resolución con MATLAB
A L D U
(L D)x b Ux
x (L D) (b Ux )
(k 1) (k)
(k 1) 1 (k)
d = diag(A); D = diag(d);
U = triu(A,1); L = tril(A,-1);
x = (L + D)(b - U*x)
14. Método de sobrerrelajación
Gauss Seidel:
x x z
Sobrerrelajacion:
x x wz ; 0 < w < 2
z x x
x (1 w)x wx
i
(k+1)
i
(k)
i
i
(k+1)
i
(k)
i
i i
(k+1)
i
(k)
i
(k+1)
i
(k)
i
(k+1)
xi
k
zi xi
k+1
i
k+1
x
15. Paso de sobrerrelajación
x (1 )x (b
x (1 )x (b
x (1 )x (b
x (1 )x (b
a x a x a x )/ a
a x a x a x )/ a
a x a x a x )/ a
1
(k+1)
1
(k)
1
2
(k+1)
2
(k)
2
3
(k+1)
3
(k)
3
n
(k+1)
n
(k)
n
12 2
(k)
13 3
(k)
1n n
(k)
11
21 1
(k+1)
23 3
(k)
2n n
(k)
22
31 1
(k+1)
32 2
(k+1)
3n n
(k)
33
a x a x a x )/ a
n1 1
(k+1)
n2 2
(k+1)
n,n 1 n 1
(k+1)
nn
16. Expresión matricial
Resolución con MATLAB
D = diag(diag(A));
c = *b; C = (1-)*D - *U
x = (L + D)(c + C*x)
( L D)x (1 )Dx (b Ux
(k+1) (k)
(k)
)
( L D)x b ((1 )D U)x
(k+1) (k)
A L D U
17. Condición suficiente de
convergencia
Matriz simétrica definida positiva:
AT = A, xTAx > 0
Si A es simétrica definida positiva y 0<w<2,
los iterados de SR convergen a la única
solución del sistema, partiendo de cualquier
estimación inicial.
18. Ecuación del Calor en un
rectángulo
VC = (VN + VS + VE + VW)/4
C
N
E
W
S
19. Generación de la matriz
con MATLAB
function A = mcalor2(m,n)
p = m*n;
v = ones(1,p-1);
for k=n:n:p-1, v(k) = 0; end
w = ones(1,p-n);
A = 4*eye(p) ...
- diag(v,1) - diag(v,-1)
...
- diag(w,n) - diag(w,-n);
20. Resumen
Los métodos iterativos se aplican a
matrices grandes y dispersas.
El coste por iteración es O(n2) o menor si
se aprovecha la dispersidad
Se espera que converjan en menos de n
pasos.
La matriz ha de cumplir ciertas
condiciones para que el método converja.