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

Metodos iterativos

Damian Ginestar Peir


o
Departamento de Matem
atica Aplicada
Universidad Polit
ecnica de Valencia

Curso 2013-2014

(UPV)

M
etodos iterativos

Curso 2013-2014

1 / 49

Indice
1

Introduccion

Conceptos basicos

Metodos iterativos estacionarios


Metodo de Richardson
Metodo de direcciones alternadas
Metodos a bloques

Precondicionadores
Introduccion
Precondicionadores clasicos
Precondicionadores polinomiales

Metodo de descenso rapido

Metodo del gradiente conjugado


(UPV)

M
etodos iterativos

Curso 2013-2014

2 / 49

Introduccion
Dada una matriz invertible de tama
no n n y un vector b Rn la u
nica
solucion del sistema
Ax = b
es
x = A1 b
Nosotros trabajaremos con matrices vacas (sparse) es decir matrices
con un n
umero de elementos no nulos (nnz(A)) del orden
nnz(A) = c n
con c independiente de n.

(UPV)

M
etodos iterativos

Curso 2013-2014

3 / 49

Introduccion

No se puede hacer la inversi


on de A ya que:
1

A1 puede dejar de ser vaca, es decir se llena, = no se puede


almacenar.
Calculo de A1 puede costar O(n3 ) operaciones (tiempo de CPU:
a
nos).

Buscaremos metodos aproximados para la resolucion del sistema que


se basan esencialmente en el producto matriz-vector.

(UPV)

M
etodos iterativos

Curso 2013-2014

4 / 49

Conceptos basicos

Un metodo iterativo obtiene una soluci


on aproximada de Ax = b
construyendo una sucesi
on de vectores:
x1 , x2 , . . . , xk
desde un vector inicial arbitrario x0 .
Un metodo iterativo se dice convergente si
lim xk = x .

El vector error, en cada iteraci


on, se define como
ek = x xk .

(UPV)

M
etodos iterativos

Curso 2013-2014

5 / 49

Conceptos basicos

El vector residuo, en cada iteraci


on, se define como
rk = b Axk .
Se puede probar
lim xk = x

(UPV)

lim kek k = 0

M
etodos iterativos

lim krk k = 0

Curso 2013-2014

6 / 49

Conceptos basicos
Un metodo iterativo nunca da la soluci
on exacta incluso en precision
infinita.
Los metodos directos te
oricamente producen la solucion exacta; pero
en un ordenador dan errores numericos.
Se da a priori una precisi
on para nuestra soluci
on. Sea TOL el error
maximo permitido.
kek k < TOL, (error absoluto)

kek k
< TOL (error relativo)
kxk

Pero x, y ek no son conocidos el criterio de parada no es u


til.
Se utiliza el criterio del residuo
krk k < TOL (absoluto)

(UPV)

M
etodos iterativos

krk k
< TOL (relativo)
kbk
Curso 2013-2014

7 / 49

Conceptos basicos

La relacion entre el error y el residuo es


rk = b Axk = Ax Axk = Aek .
Usando normas matriciales:
krk k kAkkek k (1a);

kek k kA1 kkrk k (1b)

Notar ademas
kxk kA1 kkbk (2a);

(UPV)

kbk kAkkA1 bk = kAkkxk (2b)

M
etodos iterativos

Curso 2013-2014

8 / 49

Conceptos basicos

Combinando (1a) con (2a) y (1b) con (2b) obtenemos


krk k
kek k
krk k
1

kAkkA1 k
kAkkA1 k kbk
kxk
kbk
Finalmente, recordando que (A) = kAkkA1 k:
kek k
krk k
1 krk k

(A)
(A) kbk
kxk
kbk
Conclusion: Test del residuo es fiable si (A) no es muy grande.

(UPV)

M
etodos iterativos

Curso 2013-2014

9 / 49

Metodos iterativos estacionarios


Sea A la matriz del sistema Ax = b. Podemos considerar la particion
(splitting)
A=M N
donde M 6= A es una matriz invertible.
Se construye el sistema iterativo
xk+1 = M 1 Nxk + M 1 b = Hxk + q,

k = 0, 1, . . .

donde H es la matriz de iteraci


on y x0 el vector inicial. Esto es equivalente
a


x k+1 = x k + M 1 b Ax k = x k + M 1 r k

Definicion
Se dice que un metodo iterativo es estacionario si la matriz de iteracion H
es constante en todo el proceso.
(UPV)

M
etodos iterativos

Curso 2013-2014

10 / 49

Metodos iterativos estacionarios


Sea A tal que aii 6= 0 y consideremos la partici
on
A=L+D +U

L es la parte estrictamente triangular superior de A,


D es la parte diagonal de A,
U es la parte estrictamente triangular superior de A.
1

Metodo de Jacobi: M = D y N = (L + D)
xk+1 = D 1 (L + U)xk + D 1 b,

k = 0, 1, . . .

Metodo de Gauss-Seidel: M = D + L y N = U
xk+1 = (D + L)1 Uxk + (D + L)1 b,
(UPV)

M
etodos iterativos

k = 0, 1, . . .
Curso 2013-2014

11 / 49

Metodos iterativos estacionarios

Una iteracion de Jacobi es muy barata. S


olo hay que hacer
multiplicacion matriz-vector vaca. El n
umero de multiplicaciones es
del orden nz(A) ademas de invertir los elementos diagonales de A.
x1k+1 =
x2k+1 =

1
a11
1
a22

a12 x2k a13 x3k a1n xnk + b1


a21 x1k a23 x3k a2n xnk + b2

..
.
xnk+1 =

(UPV)

o
1 n
k
an1 x1k an3 x3k an,n1 xn1
+ bn
ann

M
etodos iterativos

Curso 2013-2014

12 / 49

Metodos iterativos estacionarios

Una iteracion Gauss-Seidel es barata. Ademas tiene que resolver un


sistema triangular inferior (D + L)xk+1 = b Uxk vaco. Recordar
que hay que evitar invertir matrices.
En el metodo de Gauss-Seidel las componentes de xk+1 que ya
conocemos se utilizan en la propia iteraci
on k + 1.

(UPV)

M
etodos iterativos

Curso 2013-2014

13 / 49

Metodos iterativos estacionarios


Teorema
Sea A invertible. Un metodo iterativo estacionario converge, para cualquier
vector inicial x0 Rn , a la soluci
on exacta del sistema lineal, si y solo si,
(H) < 1
es decir, el mayor valor propio en valor absoluto de la matriz de iteracion
es menor que uno.
Introduciendo el error e k = x k x. Como Mx = Nx + b,


k

M x k+1 x = N x k x
e k+1 = M 1 Ne k = M 1 N
si M 1 N < 1, entonces limk M 1 N


(UPV)

M
etodos iterativos

k

e0

= 0.
Curso 2013-2014

14 / 49

Metodos iterativos estacionarios

Definicion
Una matriz A = [aij ] de tama
no n n se dice que es estrictamente
diagonal dominante si
|aii | >

n
X

|aij |,

para todo i = 1, 2, . . . , n.

j=1, j6=i

(UPV)

M
etodos iterativos

Curso 2013-2014

15 / 49

Metodos iterativos estacionarios

Teorema
Si la matriz A es estrictamente diagonal dominante entonces el metodo de
Jacobi y de Gauss-Seidel son convergentes.

Se llama radio de convergencia a R = log10 ((H)). Cuanto mas


peque
no sea (H) mayor sera la convergencia.

(UPV)

M
etodos iterativos

Curso 2013-2014

16 / 49

Metodos iterativos estacionarios


Una generalizacion del metodo de Jacobi es el metodo de
sobre-relajacion (JOR)

x k+1 =

w
k
bi
aij xjk
+ (1 w )xi

aii
j=1
j6=i

donde se ha introducido un parametro de relajacion w .


Este metodo es equivalente a la iteraci
on
x k+1 = x k + wD 1 r k
Se cumple que si el metodo de Jacobi converge, entonces el metodo
JOR converge si 0 w 1.
(UPV)

M
etodos iterativos

Curso 2013-2014

17 / 49

Metodos iterativos estacionarios


Podemos definir otra descomposici
on de la matriz A de la forma
A = (D + L) (U + (1 )D) ,
que da lugar al metodo iterativo conocido como el metodo SOR
(successive over relaxation)
(D + L)x k+1 = (U + (1 )D)x k + b ,
Analogamente, se puede definir otro metodo SOR de la forma
(D + U)x k+1 = (L + (1 )D)x k + b .
Un metodo SOR simetrico, SSOR, viene definido por las ecuaciones
(D + L)x k+1/2 = (U + (1 )D)x k + b ,
(D + U)x k+1 = (L + (1 )D)x k+1/2 + b .

(UPV)

M
etodos iterativos

Curso 2013-2014

18 / 49

Metodos iterativos estacionarios

Lema de Kahan
Sea A Cnn con elementos diagonales no nulos. Entonces el metodo
SOR converge solamente si
0<<2

(UPV)

M
etodos iterativos

Curso 2013-2014

19 / 49

Metodo de Richardson
Consideremos la iteracion


x k+1 = x k + b Ax k

que se puede reescribir como


x k+1 = (I A) x k + b
La matriz de iteracion es H = I A.
Si los autovalores de A son i , I = 1, . . . , n
min i max
los autovalores de H satisfacen
1 max i 1 min
(UPV)

M
etodos iterativos

Curso 2013-2014

20 / 49

Metodo de Richardson
Si min < 0 y max > 0 el metodo diverge.
Si los autovalores de A son todos positivos, se ha de cumplir
1 min < 1
1 max > 1
esto es
0<<

2
max

El valor de optimo es
=

(UPV)

2
min + max

M
etodos iterativos

Curso 2013-2014

21 / 49

Metodo de direcciones alternadas


Los metodos de direcciones alternadas (ADI) se introdujeron para resolver
problemas elpticos

u
a(x, y )
x

+
y

u
b(x, y )
y

=f

Al discretizar el problema se llega a un sistema


Hu + Vu = b
donde H esta asociada a la discretizacion de

a(x, y )
x

y V esta asociada a la discretizaci


on de

y
(UPV)

y
b(x, y )
y

M
etodos iterativos

Curso 2013-2014

22 / 49

Metodo de direcciones alternadas

El metodo ADI resuelve el sistema


(H + I ) uk+ 1 = (I V ) uk + b
2

(V + I ) uk+1 = (I H) uk+ 1 + b
2

(UPV)

M
etodos iterativos

Curso 2013-2014

23 / 49

Metodos a bloques
Dado un sistema a bloques
A11 A1q
X1
B1
..
.. .. = ..
.
. . .
Aq1 Aqq
Xq
Bq

Metodo de Jacobi a bloques


for i = 1, . . . q do

Xik+1 = A1
ii Bi

q
X
j=1

Aij Xjk

j6=i

end for

(UPV)

M
etodos iterativos

Curso 2013-2014

24 / 49

Metodos a bloques

Metodo de Gauss-Seidel a bloques


for i = 1, . . . q do

Bi
Xik+1 = A1
ii

i1
X

Aij Xjk+1

j=1

q
X

Aij Xjk Aij Xjk

j=i+1

end for
Ejercicio: Particularizar estas expresiones para 2 2 bloques

(UPV)

M
etodos iterativos

Curso 2013-2014

25 / 49

Precondicionadores. Introduccion

Precondicionar un sistema lineal no es otra cosa que (pre)multiplicar


el sistema por una matriz nonsingular, denotada por M 1 ,
Produce el sistema equivalente
M 1 Ax = M 1 b
Que hay que tener en cuenta para elegir el precondicionador?
Condicionar mejor el sistema inicial,
El precondicionador M 1 , debe ser facil de invertir, es decir, debe
producir un sistema lineal
My = c
facil de resolver.

(UPV)

M
etodos iterativos

Curso 2013-2014

26 / 49

Precondicionadores. Introduccion
Dado un metodo iterativo
x k+1 = Gx k + f
puede verse como una tecnica para resolver el sistema
(I G ) x = f
comparando con
x k+1 = M 1 Nx k + M 1 b
se tiene que I G = M 1 N, G = M 1 N = M 1 (M N) = M 1 A.
As el metodo iterativo se puede ver como una tecnica para resolver el
sistema precondicionado
M 1 Ax = M 1 b

(UPV)

M
etodos iterativos

Curso 2013-2014

27 / 49

Precondicionadores clasicos

MJ = D

Jacobi

MGS = D L Gauss Seidel


1
MSOR = (D L) SOR

Factorizacion incompleta de Cholesky


L
T donde L
es una aproximaci
M=L
on del factor triangular obtenido
por la factorizacion de Cholesky. Tenemos que resolver un sistema con
la matriz M queremos que e L sea lo mas vaca posible. Para ello se
tenga los elementos no cero en las posiciones donde los
permite que L
tiene A, esto es
aij = 0 = lij 0,
IC (0)

(UPV)

M
etodos iterativos

Curso 2013-2014

28 / 49

Precondicionadores clasicos

LU incompleta
U
donde L
es una matriz vaca triangular inferior que
Se construye M = L
es una matriz vaca triangular superior que aproxima a U.
aproxima a L y U
Fijado un subconjunto S [1, . . . , n] [1, . . . , n] de posiciones de
elementos en la matriz, entonces
1
aij aik akk
akj
aij

aij :=

si (i, j) S
si (i, j) 6 S

da una factorizacion incompleta de A que mantiene las propiedades (SPD).

(UPV)

M
etodos iterativos

Curso 2013-2014

29 / 49

Precondicionadores clasicos

Si se hace una factorizaci


on LU con el mismo patron de ceros que la
matriz A se obtiene el precondicionador ILU(0). ILU(m), si se permite
que se llenen m posiciones en cada fila.
La factorizacion incompleta puede fallar incluso si la matriz inicial
admite factorizacion.
El fallo ocurre cuando akk = 0. Sin embargo, en la practica es raro
que hayan fallos.

(UPV)

M
etodos iterativos

Curso 2013-2014

30 / 49

Precondicionadores polinomiales
Estos precondicionadores son de la forma
M 1 = p(A)
Un caso particular son los precondicionadores de Neuman. Se supone
que la matriz A se escribe


A = D C = I CD 1 D
con lo que


A1 = D 1 I CD 1

1

= D 1 I + CD 1 + CD 1

2

Se obtienen los precondicionadores de Neuman truncando la serie.


Este metodo funciona si (CD 1 ) < 1.
(UPV)

M
etodos iterativos

Curso 2013-2014

31 / 49

Metodo de descenso rapido

Resolver Ax = b, con A simetrica y definida positiva (SPD).


Definimos la funcion cuadratica

: Rn R

1
1
(y ) = (y x)T A(y x) = e T Ae .
2
2
Se tiene (y ) 0 y 6= 0 ( definici
on de matriz SPD).
Error e = y x.

Teorema
La solucion del sistema Ax = b es el mnimo de la funcion (y ).

(UPV)

M
etodos iterativos

Curso 2013-2014

32 / 49

Metodo de descenso rapido

(y ) = 12 (y x)T A(y x) = 12 e T Ae
(yk ) = constant representa un hiperelipsoide en un espacio de
dimension n.
El centro geometrico es la soluci
on x del sistema lineal (mnimo).
Construir una sucesion {yk } tal que limk yk = x.
yk+1 = yk + k pk
Hace falta determinar la direcci
on pk y .

(UPV)

M
etodos iterativos

Curso 2013-2014

33 / 49

Metodo de descenso rapido


Este metodo construye una sucesi
on que va hacia el centro del
hiperelipsoide en la direcci
on del gradiente.
El gradiente de en el punto yk es
1
(yk ) = ekT Aek =
2

1 T
1
y Ayk ykT b + x T Ax
2 k
2


= Ayk b = rk

Como la direccion del vector gradiente es hacia fuera, la direccion


buscada coincide con el residuo rk en la aproximacion actual.
En consecuencia la nueva aproximaci
on es
yk+1 = yk + k rk
donde k es una constante a determinar. C
omo? Minimizando (y )
en la direccion buscada rk .
Es decir, nuestro k es la soluci
on
k = argmin (yk + rk )
(UPV)

M
etodos iterativos

Curso 2013-2014

34 / 49

Metodo de descenso rapido

Desarrollando la funcion (yk + rk ) se tiene un polinomio de segundo


grado en la variable .
(yk + rk ) = (yk + rk x)T A(yk + rk x)
= (yk + rk x)T (Ayk + Ark b)
= (yk + rk x)T (Ark rk )
= (rk ek )T (Ark rk )


= 2 rkT Ark rkT rk + ekT Ark + x T rk


= 2 rkT Ark 2rkT rk + const.

(UPV)

M
etodos iterativos

Curso 2013-2014

35 / 49

Metodo de descenso rapido

Como rkT Ark > 0 el mnimo de se alcanza cuando


k =

rkT rk
rkT Ark

Otra forma:

Resolver
= 0.

(UPV)

M
etodos iterativos

Curso 2013-2014

36 / 49

Metodo de descenso rapido


La k + 1 iteracion se puede representar como
rk
k
yk+1

= b Axk
r T rk
= Tk
rk Ark
= yk + k rk

Notar que el coste computacional es principalmente dos productos


matriz-vector.
De yk+1 = yk + k rk se sigue que
rk+1 = b Axk+1 = b Axk Ak rk = rk k Ark ,
Los residuos consecutivos rk+1 , rk son ortogonales (demostracion:
Ejercicio).
El error ek+1 es A ortogonal a la direcci
on rk . (demostracion:
Ejercicio).
(UPV)

M
etodos iterativos

Curso 2013-2014

37 / 49

Metodo de descenso rapido

Algoritmo: Descenso rapido


Input: y0 , A, b, kmax , tol
r0 = b Ay0 , k = 0
while krk k > tol kbk and k < kmax do
1
2
3
4
5

z = Ark
r T rk
k = kT
z rk
yk+1 = yk + k rk
rk+1 = rk k z
k =k +1

end while

(UPV)

M
etodos iterativos

Curso 2013-2014

38 / 49

Metodo de descenso rapido


Lema
Sea A simetrica definida positiva y sean 0 < n 2 1 sus
valores propios. Si P(t) es un polinomio real, entonces
||P(A)x||A max |P(j )| ||x||A ,
1jn

donde ||x||A =

x Rn

x T Ax.

Teorema
Sean las mismas condiciones que en el lema anterior. La sucesion {yk } del
metodo de descenso rapido satisface


||yk x||A

1 n
1 + n

k

||y0 x||A

donde x es la solucion exacta del sistema.


(UPV)

M
etodos iterativos

Curso 2013-2014

39 / 49

Metodo de descenso rapido

Teorema
q

(yk ) =

ekT Aek = kek kA,2 k ke0 kA,2 ,

donde =

(A) 1
(A) + 1

Cuando los sistemas vienen de discretizar ecuaciones EDPs, (A)


puede ser muy grande.

(UPV)

M
etodos iterativos

Curso 2013-2014

40 / 49

Metodo de descenso rapido

Se estima el n
umero de iteraciones para ganar p digitos en la
aproximacion de la soluci
on:
kek kA
10p resolviendo
ke0 kA

(A) 1
(A) + 1

k

10p

Tomando logaritmos y usando la aproximaci


on de primer orden de
(A) 1
2
Taylor log

, se obtiene
(A) + 1
(A) + 1
k

(UPV)

log 10
p ((A) + 1)
2

M
etodos iterativos

Curso 2013-2014

41 / 49

Metodo del gradiente conjugado


Es una mejora del Descenso rapido. La sucesi
on de recurrencia es
similar
yk+1 = yk + k pk
Las direcciones se construyen como
p0 = r0
pk

= rk + k pk1 ,

k>0

Se exige que las direcciones sean A conjugadas


T
pk1
Apk = 0 ,

es decir, pk y pk1 son A-ortogonales.


Por tanto, se debe cumplir
k =
(UPV)

rkT Apk1
T Ap
pk1
k1

M
etodos iterativos

Curso 2013-2014

42 / 49

Metodo del gradiente conjugado

Como en el metodo de descenso mas rapido, la eleccion de k se


obtiene minimizando (yk+1 ) = (yk + k pk ) dando la expresion
k =

rkT pk
pkT Apk

Residuos consecutivos como en el metodo de descenso mas rapido


satisfacen la relacion de recurrencia
rk+1 = rk +k Apk

(UPV)

M
etodos iterativos

Curso 2013-2014

43 / 49

Metodo del gradiente conjugado

Teorema
Las sucesiones de vectores {ri } y {pi } satisfacen las siguientes relaciones
(i) piT rj = 0, 0 0 i <j k,
(ii) riT rj = 0, i 6= j, 0 i, j k,
(iii) piT Apj = 0, i 6= j, 0 i, j k,
(iv) env{r0 , r1 , . . . , rk } = env{p0 , p1 , . . . , pk } = K(A, r0 , k + 1),
donde K(A, r0 , k + 1) = env{r0 , Ar0 , . . . , Ak r0 }.

Corolario
El metodo del gradiente conjugado obtiene la soluci
on del sistema de n
ecuaciones en como maximo n iteraciones del GC.

(UPV)

M
etodos iterativos

Curso 2013-2014

44 / 49

Metodo del gradiente conjugado


Otras relaciones u
tiles
1

pkT rk = rkT rk . Ya que de ekT Apj = 0 se sigue rkT pj = 0 y, por tanto,


pkT rk = (rk + k1 pk1 )T rk = rkT rk

rkT Apk = pkT Apk .

Combinando 1 y 2, se obtiene una definici


on alternativa de k :
k =

rkT pk
r T rk
= Tk
T
pk Apk
rk Apk

Formulaci
on alternativa de k . Como pkT Apk = pkT
T
T
rk+1
Apk = rk+1

1
1 T
(rk rk+1 ) =
r rk
k
k k

1 T
1
(rk rk+1 ) = rk+1
rk+1
k
k

Por tanto
k =
(UPV)

T
T
rk+1
pk
rk+1
rk+1
=
pkT Apk
rkT rk

M
etodos iterativos

Curso 2013-2014

45 / 49

Metodo del gradiente conjugado


Algoritmo: Gradiente conjugado
Input: y0 , A, b, kmax , tol
r0 = p0 = b Ax0 , k = 0
while krk k > tol kbk and k < kmax do
1
2
3
4
5
6
7

z = Apk
p T rk
k = Tk
z pk
yk+1 = yk + k pk
rk+1 = rk k z
r T rk+1
k = k+1T
rk rk
pk+1 = rk+1 + k pk
k =k +1

end while

(UPV)

M
etodos iterativos

Curso 2013-2014

46 / 49

Metodo del gradiente conjugado

Ejercicio
Aplicar el algoritmo del gradiente conjugado para el problema
2 1
1
2

x1
x2

1
0

usando como aproximaci


on inicial x0 = (0, 0)T .

(UPV)

M
etodos iterativos

Curso 2013-2014

47 / 49

Metodo del gradiente conjugado


Soluci
on:
x0 = (0, 0)T .
p0 = r0 = b = (1, 0)T .
0 =

r0T r0
p0t Ap0

= 12 , x1 = x0 + 0 p0 =


1
0

r1 = r0 0 Ap0 =
0 =

r1T r1
r0T r0

1 =

r1T r1
p1T AP1

1
4,

1
2

p1 = r1 + 0 p0 =

0
0


  1 
1
2
=
0
0


0
=
, r1T r0 = 0
1

2
1


0
1
2

1
2

1
4

2
3
1
3

1
0


=

1
4
1
2

2
3


x2 = x1 + 1 p1 =

1
2


+

2
3

1
4
1
2


=

r2 = 0 soluci
on exacta
(UPV)

M
etodos iterativos

Curso 2013-2014

48 / 49

Metodo del gradiente conjugado

Teorema
Sea A Rnn simetrica y definida positiva. Sea x la solucion exacta del
sistema Ax = b. Entonces la sucesi
on de vectores del Gradiente Conjugado
{yk } cumple
p

2 (A) 1
||x yk ||A 2 p
2 (A) + 1

!k

||x y0 ||A

donde 2 (A) = ||A||2 ||A1 ||2 .

(UPV)

M
etodos iterativos

Curso 2013-2014

49 / 49

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