M´
M´
et
et
o
o
do
do
s
s
it
it
er
er
at
at
iv
iv
os
os
Da
Dami´mi´an an GiGineneststar ar PeirPeir´´oo
Departamento
Departamento de de Matem´Matem´atica atica AplicadaAplicada
Universida
Universidad d Polit´Polit´ecnica ecnica de de ValenciaValencia
Curso 2013-2014
´
´
Indice
Indice
1 1 Introducci´ Introducci´onon 2 2 CoConcncepeptotos b´s b´asasicicosos 33 M´M´etoetodos itedos iteratrativos esivos estactacionionariosarios
M´
M´etetoodo do de de RicRichardhardsosonn M´
M´etoetodo do de de direccdirecciones iones alteralternadasnadas M´
M´etetoododos s a a blblooququeses
4
4 Precondicionadores Precondicionadores
Introducci´ Introducci´onon Pre
Preconcondicdicionionadoreadores s cl´cl´asiasicoscos
Precondicionadores polinomiales Precondicionadores polinomiales
5
5 M´M´eetotodo do de de dedescscenenso so r´r´apapididoo
6
´
´
Indice
Indice
1 1 Introducci´ Introducci´onon 2 2 CoConcncepeptotos b´s b´asasicicosos 33 M´M´etoetodos itedos iteratrativos esivos estactacionionariosarios
M´
M´etetoodo do de de RicRichardhardsosonn M´
M´etoetodo do de de direccdirecciones iones alteralternadasnadas M´
M´etetoododos s a a blblooququeses
4
4 Precondicionadores Precondicionadores
Introducci´ Introducci´onon Pre
Preconcondicdicionionadoreadores s cl´cl´asiasicoscos
Precondicionadores polinomiales Precondicionadores polinomiales
5
5 M´M´eetotodo do de de dedescscenenso so r´r´apapididoo
6
I
I
n
n
t
t
r
r
o
o
d
d
u
u
c
c
c
c
i
i
´
´
o
o
n
n
Dada una matriz invertible de tama˜
Dada una matriz invertible de tama˜nono nn
×
×
nn y un vector y un vector b b∈∈
RRnn la ´´unicala unicasoluci´
soluci´on del sistemaon del sistema
Ax Ax == b b es es x x == AA−−11b b Nosotros
Nosotros trabajaremos trabajaremos con con matrices matrices vacvac´´ıas ıas (sparse) es (sparse) es decir decir matricesmatrices con un n´
con un n´umero de elementos no nulos (nnz(umero de elementos no nulos (nnz(AA)) del orden)) del orden
nnz
nnz ((AA) ) == c c
··
nncon
I
I
n
n
t
t
r
r
o
o
d
d
u
u
c
c
c
c
i
i
´
´
o
o
n
n
No se puede hacer la inversi´
No se puede hacer la inversi´on deon de AA ya que: ya que:
1
1 AA−−11 puede puede dejar de dejar de ser ser vacvac´´ıa, ıa, es es decir decir se se llena, llena, ==
⇒
⇒
no se puede no se puede almacenar.almacenar.
2
2 C´aallccuC´ ullo deo de AA−−11 puede costarpuede costar O O ((nn33) operaciones (tiempo de CPU:) operaciones (tiempo de CPU: a˜
a˜nos).nos).
Buscaremo
Buscaremos s m´m´etoetodos dos aproximados aproximados para para la la resoluresoluci´ci´on del sistema queon del sistema que se basan esencialmente en el producto
Conceptos b´asicos
Un m´etodo iterativo obtiene una soluci´on aproximada de Ax = b
construyendo una sucesi´on de vectores:
x 1, x 2, . . . , x k
desde un vector inicial arbitrario x 0.
Un m´etodo iterativo se dice convergente si
lim
k →∞x k = x .
El vector error, en cada iteraci´on, se define como
Conceptos b´asicos
El vector residuo, en cada iteraci´on, se define como
r k = b
−
Ax k .Se puede probar
lim
Conceptos b´asicos
Un m´etodo iterativo nunca da la soluci´on exacta incluso en precisi´on infinita.
Los m´etodos directos te´oricamente producen la soluci´on exacta; pero en un ordenador dan errores num´ericos.
Se da a priori una precisi´on para nuestra soluci´on. Sea TOL el error m´aximo permitido.
e k
< TOL, (error absoluto) o
e k
x
< TOL (error relativo)Pero x , y e k no son conocidos el criterio de parada no es ´util. Se utiliza el criterio del residuo
r k
< TOL (absoluto) o
r k
Conceptos b´asicos
La relaci´on entre el error y el residuo es
r k = b
−
Ax k = Ax−
Ax k = Ae k .Usando normas matriciales:
r k ≤
A
e k
(1a);
e k ≤
A−1
r k
(1b ) Notar adem´asConceptos b´asicos
Combinando (1a) con (2a) y (1b) con (2b) obtenemos 1
A
A−1
r k
b ≤
e k
x ≤
A
A −1
r b k
Finalmente, recordando que κ(A) =
A
A−1
: 1 κ(A)
r k
b ≤
e k
x ≤
κ(A)
r k
b
M´
etodos iterativos estacionarios
Sea A la matriz del sistema Ax = b . Podemos considerar la partici´on (splitting)
A = M
−
Ndonde M
= A es una matriz invertible. Se construye el sistema iterativox k +1 = M −1Nx k + M −1b = Hx k + q , k = 0, 1, . . .
donde H es la matriz de iteraci´on y x 0 el vector inicial. Esto es equivalente a
x k +1 = x k + M −1
b−
Ax k
= x k + M −1r kDefinici´on
M´
etodos iterativos estacionarios
Sea A tal que aii
= 0 y consideremos la partici´onA = 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 M´etodo de Jacobi: M = D y N =
−
(L + D )x k +1 =
−
D −1(L + U )x k + D −1b , k = 0, 1, . . .2 M´etodo de Gauss-Seidel: M = D + L y N =
−
UM´
etodos iterativos estacionarios
Una iteraci´on de Jacobi es muy barata. S´olo hay que hacer
multiplicaci´on matriz-vector “vac´ıa”. El n´umero de multiplicaciones es del orden nz(A) adem´as de invertir los elementos diagonales de A.
x 1k +1 = 1 a11
−
a12x k 2−
a13x 3k− · · · −
a1nx nk + b 1
x 2k +1 = 1 a22
−
a21x k 1−
a23x 3k− · · · −
a2nx nk + b 2
.. . x nk +1 = 1 ann
−
an1x k 1−
an3x 3k− · · · −
an,n−1x nk −1 + b n
M´
etodos iterativos estacionarios
Una iteraci´on Gauss-Seidel es barata. Adem´as tiene que resolver un sistema triangular inferior (D + L)x k +1 = b
−
Ux k “vac´ıo”. Recordar que hay que evitar invertir matrices.En el m´etodo de Gauss-Seidel las componentes de x k +1 que ya conocemos se utilizan en la propia iteraci´on k + 1.
M´
etodos iterativos estacionarios
Teorema
Sea A invertible. Un m´etodo iterativo estacionario converge, para cualquier vector inicial x 0
∈
Rn, a la soluci´on exacta del sistema lineal, si y s´olo si,ρ(H ) < 1
es decir, el mayor valor propio en valor absoluto de la matriz de iteraci´on es menor que uno.
Introduciendo el error e k = x k
−
x . Como Mx = Nx + b ,M
x k +1−
x
= N
x k−
x
M´
etodos iterativos estacionarios
Definici´on
Una matriz A = [aij ] de tama˜no n
×
n se dice que es estrictamente diagonal dominante si|
aii|
>n
j =1, j =i
|
M´
etodos iterativos estacionarios
Teorema
Si la matriz A es estrictamente diagonal dominante entonces el m´etodo de Jacobi y de Gauss-Seidel son convergentes.
Se llama radio de convergencia a R =
−
log10 (ρ(H )). Cuanto m´as peque˜no sea ρ(H ) mayor ser´a la convergencia.M´
etodos iterativos estacionarios
Una generalizaci´on del m´etodo de Jacobi es el m´etodo de sobre-relajaci´on (JOR) x k +1 = w aii
b i−
j =1 j =i aij x j k
+ (1−
w )x i kdonde se ha introducido un par´ametro de relajaci´on w . Este m´etodo es equivalente a la iteraci´on
x k +1 = x k + wD −1r k
Se cumple que si el m´etodo de Jacobi converge, entonces el m´etodo JOR converge si 0
≤
w≤
1M´
etodos iterativos estacionarios
Podemos definir otra descomposici´on de la matriz A de la forma
ωA = (D + ωL)
−
(−
ωU + (1−
ω)D ) ,que da lugar al m´etodo iterativo conocido como el m´etodo SOR (successive over relaxation)
(D + ωL)x k +1 = (
−
ωU + (1−
ω)D )x k + ωb ,An´alogamente, se puede definir otro m´etodo SOR de la forma (D + ωU )x k +1 = (
−
ωL + (1−
ω)D )x k + ωb .Un m´etodo SOR sim´etrico, SSOR, viene definido por las ecuaciones
(D + ωL)x k +1/2 = (
−
ωU + (1−
ω)D )x k + ωb ,M´
etodos iterativos estacionarios
Lema de Kahan
Sea A
∈
Cn×n con elementos diagonales no nulos. Entonces el m´etodoSOR converge solamente si
M´etodo de Richardson
Consideremos la iteraci´on
x k +1 = x k + α
b−
Ax k
que se puede reescribir como
x k +1 = (I
−
αA) x k + αbLa matriz de iteraci´on es H α = I
−
αA.Si los autovalores de A son λi , I = 1, . . . , n
λmin
≤
λi≤
λmaxlos autovalores de H α satisfacen
M´etodo de Richardson
Si λmin < 0 y λmax > 0 el m´etodo 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 α = 2 λmin + λmaxM´
etodo de direcciones alternadas
Los m´etodos de direcciones alternadas (ADI) se introdujeron para resolver problemas el´ıpticos ∂ ∂ x
a(x , y )∂ u ∂ x
+ ∂ ∂ y
b (x , y )∂ u ∂ y
= fAl discretizar el problema se llega a un sistema
Hu + Vu = b
donde H est´a asociada a la discretizacion de
∂ ∂ x
a(x , y ) ∂ ∂ x
y V est´a asociada a la discretizaci´on de
∂
M´
etodo de direcciones alternadas
El m´etodo ADI resuelve el sistema (H + ρI ) u k +1
2 = (ρI
−
V ) u k + b(V + ρI ) u k +1 = (ρI
−
H ) u k +1M´etodos a bloques
Dado un sistema a bloques
A11· · ·
A1q .. . ... Aq 1· · ·
Aqq
X 1 .. . X q
=
B 1 .. . B q
M´etodo de Jacobi a bloques for i = 1, . . . q do X i k +1 = A−ii 1
B i−
q
j =1 j =i Aij X j k
end forM´etodos a bloques
M´etodo de Gauss-Seidel a bloques for i = 1, . . . q do X i k +1 = A−ii 1
B i−
i −1
j =1 Aij X j k +1−
q
j =i +1 Aij X j k Aij X j k
end forPrecondicionadores. Introducci´
on
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 −1Ax = M −1b
•
Qu´e hay que tener en cuenta para elegir el precondicionador? Condicionar mejor el sistema inicial,El precondicionador M −1, debe ser f´acil de invertir, es decir, debe producir un sistema lineal
My = c
Precondicionadores. Introducci´
on
Dado un m´etodo iterativo
x k +1 = Gx k + f
puede verse como una t´ecnica para resolver el sistema (I
−
G ) x = fcomparando con
x k +1 = M −1Nx k + M −1b
se tiene que I
−
G = M −1N , G =−
M −1N = M −1 (M−
N ) = M −1A. As´ı el m´etodo iterativo se puede ver como una t´ecnica para resolver el sistema precondicionadoPrecondicionadores cl´asicos
M J = D Jacobi
M GS = D
−
L Gauss−
SeidelM SOR = 1
ω (D
−
ωL) SORFactorizaci´on incompleta de Cholesky
M = ˜L˜LT donde ˜L es una aproximaci´on del factor triangular obtenido por la factorizaci´on de Cholesky. Tenemos que resolver un sistema con la matriz M queremos que e L sea lo mas vac´ıa posible. Para ello se permite que ˜L tenga los elementos no cero en las posiciones donde los tiene A, esto es
Precondicionadores cl´asicos
LU incompleta
Se construye M = ˜LU ˜ donde ˜L es una matriz vac´ıa triangular inferior que aproxima a L y ˜U es una matriz vac´ıa triangular superior que aproxima a U . Fijado un subconjunto S
⊂
[1, . . . , n]×
[1, . . . , n] de posiciones deelementos en la matriz, entonces
aij :=
aij−
aik a−1
kk akj si (i , j )
∈
Saij si (i , j )
∈
SPrecondicionadores cl´asicos
Si se hace una factorizaci´on LU con el mismo patr´on 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 factorizaci´on incompleta puede fallar incluso si la matriz inicial admite factorizaci´on.
El fallo ocurre cuando akk = 0. Sin embargo, en la pr´actica es raro que hayan fallos.
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
Dcon lo que
A−1 = D −1
I−
CD −1
−1 = D −1
I + CD −1 +
CD −1
2 +· · ·
Se obtienen los precondicionadores de Neuman truncando la serie. Est m´etodo funcio si (CD −1) < 1.M´etodo de descenso r´apido
Resolver Ax = b , con A sim´etrica y definida positiva (SPD). Definimos la funci´on cuadr´atica φ : Rn
→
Rφ(y ) = 1 2(y
−
x ) T A(y−
x ) = 1 2e T Ae .Se tiene φ(y )
≥
0∀
y
= 0 ( definici´on de matriz SPD). Error e = y−
x .Teorema
M´etodo de descenso r´apido
φ(y ) = 12(y
−
x )T A(y−
x ) = 12e T Aeφ (y k ) = constant representa un hiperelipsoide en un espacio de
dimensi´on n.
El centro geom´etrico es la soluci´on x del sistema lineal (m´ınimo). Construir una sucesi´on
{
y k}
tal que limk →∞ y k = x .y k +1 = y k + αk p k
M´etodo de descenso r´apido
Este m´etodo construye una sucesi´on que va hacia el centro del hiperelipsoide en la direcci´on del gradiente.
El gradiente de φ en el punto y k es
∇
φ(y k ) = 1 2∇
e T k Ae k =∇
1 2y T k Ay k−
y k T b + 1 2x T Ax
= Ay k−
b =−
r kComo la direcci´on del vector gradiente es hacia fuera, la direcci´on buscada coincide con el residuo r k en la aproximaci´on actual.
En consecuencia la nueva aproximaci´on es
y k +1 = y k + αk r k
donde αk es una constante a determinar. ¿C´omo? Minimizando φ(y ) en la direcci´on buscada r k .
M´etodo de descenso r´apido
Desarrollando la funci´on φ(y k + β r k ) se tiene un polinomio de segundo grado en la variable β .
φ(y k + β r k ) = (y k + β r k
−
x )T A(y k + β r k−
x ) = (y k + β r k−
x )T (Ay k + β Ar k−
b ) = (y k + β r k−
x )T (β Ar k−
r k )= (β r k
−
e k )T (β Ar k−
r k )= β 2r k T Ar k
−
β
r k T r k + e k T Ar k
+ x T r kM´etodo de descenso r´apido
Como r k T Ar k > 0 el m´ınimo de φ se alcanza cuando
αk
≡
β = r T k r k r k T Ar k Otra forma: Resolver ∂φ∂β = 0.M´etodo de descenso r´apido
La k + 1 iteraci´on se puede representar como
r k = b
−
Ax k αk = r T k r k r k T Ar k y k +1 = y k + αk r kNotar que el coste computacional es principalmente dos productos matriz-vector.
De y k +1 = y k + αk r k se sigue que
r k +1 = b
−
Ax k +1 = b−
Ax k−
Aαk r k = r k−
αk Ar k ,Los residuos consecutivos r k +1, r k son ortogonales (demostraci´on: Ejercicio).
M´etodo de descenso r´apido
Algoritmo: Descenso r´apido Input: y 0, A, b , k max, tol
r 0 = b
−
Ay 0, k = 0while
r k
> tol
b
and k < k max do1 z = Ar k 2 αk = r T k r k z T r k 3 y k +1 = y k + αk r k 4 r k +1 = r k
−
αk z 5 k = k + 1 end whileM´etodo de descenso r´apido
Lema
Sea A sim´etrica definida positiva y sean 0 < λn
≤ · · · ≤
λ2≤
λ1 sus valores propios. Si P (t ) es un polinomio real, entonces||
P (A)x||
A≤
max1≤ j ≤n
|
P (λ j )| · | |
x||
A, x∈
Rn
donde
||
x||
A =√
x T Ax . TeoremaSean las mismas condiciones que en el lema anterior. La sucesi´on
{
y k}
del m´etodo de descenso r´apido satisface||
y k−
x||
A≤
λ1−
λn λ1 + λn
kM´etodo de descenso r´apido
Teorema
φ(y k ) =
e Tk Ae k =
e k
A,2≤
µk
e 0
A,2, donde µ =κ(A)
−
1κ(A) + 1 Cuando los sistemas vienen de discretizar ecuaciones EDPs, κ(A) puede ser muy grande.
M´etodo de descenso r´apido
Se estima el n´umero de iteraciones para ganar p digitos en la aproximaci´on de la soluci´on:
e k
A
e 0
A≤
10 −p resolviendo
κ(A)−
1 κ(A) + 1
k≤
10−pTomando logaritmos y usando la aproximaci´on de primer orden de Taylor log κ(A)
−
1 κ(A) + 1≈
−
2 κ(A) + 1, se obtiene k≈
log 10 2 p (κ(A) + 1)M´
etodo del gradiente conjugado
Es una mejora del Descenso r´apido. La sucesi´on de recurrencia es similar
y k +1 = y k + αk p k
Las direcciones se construyen como
p 0 = r 0
p k = r k + β k p k −1, k > 0
Se exige que las direcciones sean A conjugadas
p k T −1Ap k = 0 ,
es decir, p k y p k −1 son A-ortogonales. Por tanto, se debe cumplir
β k = r
T
M´
etodo del gradiente conjugado
Como en el m´etodo de descenso m´as r´apido, la elecci´on de αk se obtiene minimizando φ(y k +1) = φ(y k + αk p k ) dando la expresi´on
αk = r
T k p k
p k T Ap k
Residuos consecutivos como en el m´etodo de descenso m´as r´apido satisfacen la relaci´on de recurrencia
M´
etodo del gradiente conjugado
Teorema
Las sucesiones de vectores
{
r i}
y{
p i}
satisfacen las siguientes relaciones (i) p i T r j = 0, 0≤
0≤
i < j≤
k ,(ii) r i T r j = 0, i
= j , 0≤
i , j≤
k ,(iii) p i T Ap j = 0, i
= j , 0≤
i , j≤
k ,(iv) env
{
r 0, r 1, . . . , r k}
= env{
p 0, p 1, . . . , p k}
=K
(A, r 0, k + 1),donde
K
(A, r 0, k + 1) = env{
r 0, Ar 0, . . . , Ak r 0}
.Corolario
El m´etodo del gradiente conjugado obtiene la soluci´on del sistema de n
M´
etodo del gradiente conjugado
Otras relaciones ´utiles
1 p k T r k = r k T r k . Ya que de e k T Ap j = 0 se sigue r k T p j = 0 y, por tanto, p k T r k = (r k + β k −1p k −1)T r k = r k T r k
2 r k T Ap k = p k T Ap k .
3 Combinando 1 y 2, se obtiene una definici´on alternativa de αk :
αk = r k T p k p k T Ap k = r T k r k r k T Ap k
4 Formulaci´on alternativa de β k . Como p k T Ap k = p k T 1
αk (r k − r k +1) = 1 αk r k T r k r k T +1Ap k = r k T +1 1 αk (r k − r k +1) = − 1 αk r k T +1r k +1 Por tanto β r T k +1p k r k T +1r k +1
M´
etodo del gradiente conjugado
Algoritmo: Gradiente conjugado Input: y 0, A, b , k max, tol
r 0 = p 0 = b
−
Ax 0, k = 0while
r k
> tol
b
and k < k max do1 z = Ap k 2 αk = p T k r k z T p k 3 y k +1 = y k + αk p k 4 r k +1 = r k
−
αk z 5 β k = r T k +1r k +1 r k T r k 6 p k +1 = r k +1 + β k p k 7 k = k + 1 end whileM´
etodo del gradiente conjugado
Ejercicio
Aplicar el algoritmo del gradiente conjugado para el problema