lineales de ecuaciones
Laboratori de Clcul Numric (LaCN)
23 de septiembre de 2010
Ax = b;
nn n n
con A 2 R regular, x 2 R y b 2 R . Se define el residuo
r(x) := Ax b
y se denota con un asterisco, x , a la solucin del sistema,
1
Ax = b , x =A b , r(x ) = 0:
1
En vez de construir una matriz G y un vector h es muy habitual la
0
siguiente estructura para los mtodos iterativos estacionarios: dado x ,
k+1 k
hallar x a partir de x realizando los siguientes pasos
k k (clculo del residuo) (2a)
r = Ax b
k k (resolucin de un sistema) (2b)
C x = r
k+1 k k (actualizacin de la aproximacin) (2c)
x = x + x
k k
donde se denota el residuo de la iteracin k como r = r(x ). La primera
instruccin (2a) permite evaluar el mdulo del residuo y as comprobar si se ha
llegado a convergencia. La segunda instruccin (2b) implica resolver un
sistema de ecuaciones. Aqu existe un compromiso entre tomar C = A (en una
iteracin converge pero con coste muy elevado, a veces no factible,
equivalente al de un mtodo directo) o tomar C = I (coste por iteracin
despreciable, pero requiere en principio muchas iteraciones y la convergencia
no est asegurada). A la prctica, para evitar tener que escribir cada vez las
ecuaciones descritas en (2), se simboliza el proceso en
(3)
xk+1 = xk C1 Axk b :
Esta forma simblica no implica la inversin de la matriz C, slo es una
ma-nera de reescribir el esquema de forma compacta para dejar claro
k+1 k
que se trata de un mtodo de iteracin funcional, x = (x ). De hecho,
representa un caso particular de (1) donde
G = I C
1 A
(4)
h = C 1b:
1.1. Consistencia y convergencia
2
2. x es el nico punto fijo:
n
Consideremos y 2 R tal que y = Gy + h, entonces,
(x y) = G(x y) , (I G)(x y) = 0:
Para que este sistema tenga slo la solucin trivial, es decir y = x ,
hay que exigir que (I G) sea regular.
k+1 k
Por lo tanto, el esquema iterativo x = Gx + h es consistente si y
1
slo si h = (I G)A b y (I G) es regular. En el caso particular de los
esquemas que se escriben como (3), es trivial verificar (se deja como
ejercicio) que x es el nico punto fijo. Por consiguiente, todos los
esquemas que pueden escribirse segn (3) son consistentes.
Definicin (Convergencia): un mtodo iterativo es convergente si el error
k k k 0
en la iteracin k, e := x x , verifica lm e = 0 para cualquier e .
k!1
3
Teorema 1. Para cada matriz A de orden n y cada real " > 0 arbitrario
1
existe una norma matricial asociada a una norma vectorial , kk, tal que
(A) kAk (A) + ":
La demostracin se puede encontrar en [1] (teorema 1.3) o en [2]
(teoremas 6.9.1 y 6.9.2).
Teorema 2. Un esquema iterativo definido por (1) es convergente si y
slo si (G) < 1.
Demostracin. Para que un mtodo sea convergente se debe cumplir que
k 0 0
lm e = 0 para cualquier e . En particular, considerando e un vector
k!1
k k 0
propio
k de la matriz G con valor propio , e = e y, por consiguiente, lm
e = 0 si jj < 1. Por lo tanto,
k!1
k 0
lm e = 0 8 e ) (G) < 1:
k!1
5
El parmetro R se puede interpretar como una velocidad de convergencia:
cuanto mayor es R menos iteraciones hay que hacer para incrementar la
precisin en la aproximacin. A la prctica se trabaja con la velocidad asin-
ttica de convergencia que corresponde al lmite cuando ! 1. Se puede
comprobar que lm k[G] k1 = (G) y, por lo tanto, la velocidad asinttica
k!1
de convergencia del mtodo es
1
R = log :
1 10 (G)
Para las matrices usuales en problemas de ingeniera (en la resolucin
con diferencias finitas o elementos finitos) el lmite con ! 1 converge
rpida-mente y es una buena aproximacin considerar por ejemplo R1 '
R10. El radio espectral hace el papel del factor asinttico de
convergencia del mtodo. Para (G) ' 0, la velocidad de convergencia
R1 es muy grande y el mtodo tiene una convergencia muy rpida. Para
(G) = 1 ", con " ' 0 positivo, la velocidad de convergencia es positiva
pero pequea y el mtodo converge per lo hace lentamente. En cambio,
si (G) > 1 la velocidad de convergencia es negativa y, tal como se
comenta en la seccin 1.1, la convergencia no est asegurada.
o, componente a componente,
n
Xj
k+1 k k
xi = xi aij xj + bi ; i = 1:::n; k = 0; 1; :::
=1
k+1 "b a xk a xk #
xi =
aii i =1 ij j j=i+1 ij j ; i = 1:::n; k = 0; 1; :::
7
Observacin 1. El mtodo de Jacobi no se puede utilizar si la matriz
tiene algn coeficiente nulo en la diagonal. Es decir, para poder usar el
mtodo es necesario que aii 6= 0 8 i.
Observacin 2. Una condicin suficiente para convergencia del mtodo de
4
Jacobi es que A sea diagonalmente dominante . En efecto, la condicin
suficiente de convergencia del corolario 1 para el mtodo de Jacobi, G =
1
I C A, con las normas matriciales (7) se reescribe como,
X X
kGk1 = maxi j aii j 1 o kGk1 = j j aii j
aij < max aij < 1;
j6=i i6=j
8
Premultiplicando esta ecuacin por la matriz (D A + LA) se obtiene
k+1 k k
(DA + LA)x = (DA + LA)x + (b Ax );
es decir,
k+1 k k+1
DAx = b LAx UAx :
5 T
Una matriz A es definida positiva si x Ax > 0 8 x =6 0. Otras condiciones
equivalentes para la definicin positiva de A son (1) todos los valores propios de A son
positivos o (2) todos los menores principales de A tienen determinante positivo.
9
k+1 k 1
k+1 k x = (1 !)x + !D A b
L Ax UAx :
10
De hecho, es uno de los llamados mtodos de Krylov [3]. Estos mtodos son
k
mtodos que en cada iteracin k calculan una aproximacin x que minimi-za
0 n
una cierta medida del error en el espacio x + Kk, donde Kk R es el llamado
k-esimo espacio de Krylov. Si no se llega a convergencia antes de la iteracin
n
n, el n-simo espacio de Krylov es Kn = R y la minimizacin sobre Kn
proporciona la solucin x . Los mtodos de Krylov se pueden con-siderar
mtodos directos, ya que encuentran la solucin x del sistema lineal como
mucho en n iteraciones. Sin embargo, para sistemas lineales con un gran
nmero de ecuaciones, se utilizan como mtodos iterativos.
El ms popular de los mtodos de Krylov es el mtodo de los gradientes
conjugados. Aunque se puede hacer una deduccin del mtodo de los
gradien-tes conjugados como un mtodo de Krylov, aqu se va a hacer una
deduccin ms sencilla motivada por el mtodo del mximo descenso. El
mtodo de los gradientes conjugados se basa en la minimizacin de una
cierta funcin . En la siguiente seccin se comprueba la equivalencia del
problema Ax = b con la minimizacin de la funcin . A continuacin, se
presenta el mtodo del mximo descenso. Finalmente, el mtodo de los
gradientes conjugados se plantea como una mejora de este mtodo.
Observacin 10. Para poder hacer la analoga con el problema de mini-
mizacin, el mtodo de los gradientes conjugados requiere que la matriz
sea simtrica y definida positiva. Sin embargo, existen mtodos de Krylov
que no tienen estas restricciones. El mtodo GMRES (Generalized
Minimum Resi-dual) slo necesita que la matriz sea regular. A cambio, tiene
un coste compu-tacional y unos requerimientos de memoria
considerablemente mayores que el mtodo de los gradientes conjugados.
11
1 ) x = arg mn (x) :
x =A b
n
x2R
Supongamos que x es solucin: Ax = b. Cualquier x 2 R puede
expresarse como x = z + x y, por consiguiente,
1
(x) = (z+x ) = 2 [hz; Azi + 2hz; Axi + hx ; Ax i]hz; bihx ; bi;
1 1
(x) = (x ) + 2hz; Azi + hz; Ax bi = (x ) + 2hz; Azi:
12
d(x+)
d
d 6
Imponiendo la condicin necesaria de extremo, d j=k = 0 , se
obtiene la ecuacin para k,
k k k k k k k k k
0 = hr ; r(x + kr )i = hr ; A(x + kr ) bi = hr ; r + kAr i;
de donde se despeja la expresin
= k k :
hr ; r i
k k k
hr ; Ar i
Observacin 11. Si no se ha llegado a convergencia, debido a la
definicin positiva de la matriz A el parmetro k es siempre negativo.
Por lo tanto, siempre se avanza en sentido contrario al gradiente.
k k k+1 k+1
Observacin 12. Teniendo en cuenta que r(x + kr ) = r(x ) = r ,
la ecuacin (9) est exigiendo que
k k+1
hr ; r i = 0:
Es decir, la direccin de avance en cada iteracin es perpendicular a la direc-
cin de avance anterior. Esto provoca que generalmente se repitan direcciones
de avance. Por ejemplo, en 2D el mtodo tiene slo 2 direcciones de avan-ce,
0
r y su perpendicular, que se alternan en cada iteracin. Esto provoca un
fenmeno de "zig-zag"que hace que la convergencia del mtodo pueda ser
extraordinariamente lenta (ver ejemplo en la seccin 2.3.3).
Observacin 13. Se deja como ejercicio verificar que considerando k =
1 constante se obtiene el mtodo de Richardson. As, el mtodo de
mximo des-censo se puede interpretar como una aceleracin o
extrapolacin del mtodo de Richardson.
13
La gran y nica diferencia con el mtodo del mximo descenso es la defini-cin
de las direcciones de avance. En el mtodo de los gradientes conjugados las
k
direcciones p se escogen de manera que sean A-conjugadas, es decir,
i T j i j
(p ) Ap = hp ; Ap i = ij. De esta forma se evitan las repeticiones que
tanto relentizan el mtodo del mximo descenso.
n
En R existen n direcciones A-conjugadas distintas,
0 1 k1
fp ; p ; : : : ; p g. Para obtenerlas se podra plantear una ortogonalizacin
de Gram-Schmidt con el producto escalar definido por A,
k 8 k1
p = r0 k=0;
>
< Xs
> >
>
rk +
"ksps k>0
: =0
k s
donde los escalares "ks se determinan al imponer hp ; p i = 0 para s =
0; : : : ; k 1. Esta opcin tiene un coste computacional importante que,
por suerte, se puede evitar, ya que para matrices simtricas y definidas
es sufi-ciente exigir que
( 0 k=0 ; (10)
r
pk = k k1
r + kp k>0
k k1 k
cons hp ; Ap i = 0 para obtener, como se comenta ms adelante, hp ;
Ap i = 0 para s = 0; : : : ; k 1.
k k1
El escalar k se determina al exigir que hp ; Ap i = 0,
k k1 k1 k k1 k1 k1
0 = hr + kp ; Ap i = hr ; Ap i + khp ; Ap i;
es decir,
= k k1 : (11)
hr ; Ap i
k
hpk1; Apk1i
As, el mtodo de los gradientes conjugados, mediante las ecuaciones (10) y
(11), proporciona una forma sencilla y eficiente de calcular las direcciones A-
conjugadas de avance. A continuacin se presenta el algoritmo resultante.
14
2.3.1. Algoritmo de gradientes conjugados (versin 1):
0
x : aproximacin inicial
0 0 0 0
k = 0, r = Ax b, p = r
do while (no convergencia)
k k
q = Ap
k k k
hp=k;q
hp
k ;r i
i
k+1 k k
x = x + kp
k+1 k+1
r = Ax b
= hrk+1;qki k+1
hpk;qki
k+1 k+1 k
p =r + k+1p
k=k+1
enddo
15
k i
(a) hr ; p i = 0 para i < k,
i i i i
(b) hr ; r i = hr ; p i para i k,
k i
(c) hr ; r i = 0 para i < k (residuos ortogonales),
k i
(d) hp ; Ap i = 0 para i < k (direcciones A-conjugadas).
Demostracin. La demostracin se hace por induccin sobre k. Comprobamos
primero que cada una de las propiedades es cierta para k =
0 0
1. Dado que p = r por definicin, las propiedades (a) y (c) son
equivalentes para k = 1. As, teniendo en cuenta la ecuacin (12), es
1 0 0
decir r = r +0Ap , se llega a
1 0 0 0 0 0 0 0 0 (13)
hr ; p i = hr + 0Ap ; p i = hr ; p i + 0hAp ; p i = 0;
16
i
(c) La tercera propiedad se comprueba utilizando la defincin de p ,
que se reescribe como
i i i1
r = p ip
y la propiedad (a) ya demostrada,
k+1 i k+1 i k+1 i1
hr ; r i = hr ; p i i hr ; p i = 0:
| {z } | {z }
0 0
T 1=2
donde kxkA = hx ; Axi es la norma inducida por A (norma de la
energa) y k2(A) es el nmero de condicin de la matriz.
La demostracin de este resultado se basa en la interpretacin del
mtodo como un mtodo de Krylov. Se basa en la propiedad de que el
mtodo de los gradientes conjugados minimiza el error en la
aproximacin, con la norma inducida por A, dentro de un subespacio de
n
R cuya dimensin se incrementa en cada iteracin.
Dado que la matriz es simtrica y definida positiva, el nmero de condicin
de A es el cociente entre sus valores propios mayor y menor en valor absoluto,
max
k2(A) =
:
min
p
k2(A)1
Observacin 15. El trmino p en la frmula de la proposicin 3 es
k2(A)+1
siempre menor que 1. Esto asegura la convergencia montona en la
norma inducida por A, es decir,
i+1 i
kx x kA kx x kA;
Observacin 16. Para matrices bien condicionadas k2(A) = 1 + ", con " >
0 pequeo, y la ecuacin de la proposicin 3 se aproxima como
"i
kxi xkA 2 2
p
7
kxk2 = hx; xi
18
log(error)
convergencia no montona
convergencia montona
iteracin
A bien condicionada
log(error)
A mal condicionada
iteracin
19
2.3.3. Ejemplo de dimensin 2
Se plantea la resolucin del sistema de ecuaciones de dimensin n = 2
Ax = b con 3 2 2
; b= :
8
A= 2 6
1
La figura 4 muestra la representacin grfica de la funcin (x) = 2 hx; Axi
0
15 0.5
10 1
5 1.5
y
0 2
5 2.5
0 3
1 4 3.5
2
2
3 4
1 2 3 4
y 4 0 0
x x
0.5 0.5
0 0
0.5 0.5
1 1
1.5 1.5
2 2
2.5 0.5 0 0.5 1 1.5 2 2.5 3 2.5 0.5 0 0.5 1 1.5 2 2.5 3
1 1
Figura 5: Curvas de nivel de (x) e iteraciones del mtodo del mximo des-
censo (izquierda) y del mtodo de los gradientes conjugados (derecha).
hx; bi para este ejemplo, as como sus curvas de nivel y el gradiente, r(x) =
20
Ax b. En la figura 5 se muestran las iteraciones del mtodo del mximo
descenso y del mtodo de los gradientes conjugados con la misma aproxi-
0
macin inicial, x = 0. En el mtodo del mximo descenso (izquierda) la
direccin de avance es perpendicular a las curvas de nivel, adems se
observa como la direccin de avance en cada iteracin es perpendicular a
la direccin de avance anterior. Esto provoca un fenmeno de "zig-zag"que
hace que la convergencia del mtodo sea realmente lenta: son necesarias
25 iteraciones para conseguir un error relativo en el residuo menor que 0.5
6 k 6
10 , es decir, kr k 0.5 10 kbk. El mtodo de los gradientes conjugados
(derecha), como cabe esperar, converge en n = 2 iteraciones.
21
0
x : aproximacin inicial
0 0 0 0 0 0
k = 0, r = Ax b, p = r , 0 = hr ; r i
do while (no convergencia)
k k
q = Ap
k
k = k k
hp ;q i
k+1 k k
x = x + kp
k+1 k k
r = r + kq
k+1 k+1
k+1 = hr ; r i
k+1
= k+1
k
k+1 k+1 k
p =r + k+1p
k=k+1
enddo
22
La razn es que, aunque P y A sean matrices simtricas y definidas
1
positivas, el producto P A en general no es una matriz simtrica y, por lo
tanto, no es posible aplicar el mtodo de los gradientes conjugados.
En el mtodo de los gradientes conjugados el precondicionamiento del
sistema se hace de manera que la matriz siga siendo simtrica y definida
positiva. Para ello se considera un precondicionador P simtrico y definido
9
positivo, de manera que es posible considerar su matriz raz cuadrada (aun-
que, como se comenta ms adelante, a la prctica no es necesario calcularla),
1
~
~ ~
Ax = b;
y calculando x = P 12 x~. Se deja como ejercicio para el lector comprobar que
~
b=P r x; ~r = Ax~
p
se puede deshacer el cambio para expresar el algoritmo en las variables
sin tilde. Simplificando algunas expresiones el algoritmo final se puede
escribir cmo
1
9
Dada una matriz P definida positiva, la matriz raz cuadrada P2 es una matriz que
1 1 1
cumple P = P2 P2 . Si P diagonaliza como P = SDS la matriz raz cuadrada se calcula
1 1 1
2 1
como P = SD2 S , donde D2 se obtiene calculando la raz cuadrada de cada coeficiente
de la matriz diagonal.
23
0
x : aproximacin inicial
0 0 0 1 0
k = 0, r = Ax b, q = P r ,
0 0 0 0
p = q , 0 = (r ; q )
do while (no convergencia)
k
k = k k
k+1
(p ;Ap ) x
k k
= x + kp
k+1 k k
r = r + kAp
qk+1 = P1rk+1
k+1 k+1
k+1 = (r ;q )
k+1
= k+1
k
k+1 k+1 k
p =q + k+1p
k=k+1
enddo
Referencias
[1] E. Isaacson and H.B. Keller, H.B. Analysis of numerical methods,
Wiley, 1966.
24
[2] J. Stoer and R. Bulirsch. Introduction to numerical analysis,
Springer-Verlag, 1980.
[3] R. Barret, M. Berry, T. Chan, J. Demmel, J. Donato, J. Dongarra, V.
Eijkhout, R. Pozo, C. Romine and H. van der Vorst. Templates for
the Solution of Linear Systems: Building Blocks for Iterative
Methods, SIAM, Philadelphia, PA, 1993.
25