Anda di halaman 1dari 28

Mtodos iterativos para sistemas

lineales de ecuaciones
Laboratori de Clcul Numric (LaCN)
23 de septiembre de 2010

Se desea resolver el sistema lineal de ecuaciones

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. Mtodos iterativos estacionarios


Un mtodo iterativo estacionario es un esquema iterativo que genera una
0 1 k
sucesin de vectores fx ; x ; : : : ; x g a partir de una expresin de la forma
k+1 k (1)
x = Gx + h;
donde G y h son una matriz y un vector constantes que no dependen de
la iteracin k. La sucesin de vectores generados a partir de la frmula
anterior debera converger a la nica solucin del sistema de ecuaciones
planteado. Es decir,
k
lm x = x :
k!1

Para ello, se estudia la consistencia y la convergencia en las siguientes


sec-ciones.

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

Definicin (Consistencia para sistemas lineales de ecuaciones): Un


1
mtodo iterativo es consistente si y slo si x = A b es el nico punto fijo
del esquema iterativo.
Para esquemas iterativos estacionarios, exigir consistencia equivale
a ase-gurar que

1. x es punto fijo:
1
x = Gx + h , h = (I G)A b:

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

Para estudiar las condiciones de convergencia de los mtodos iterativos


k
estacionarios se analiza la evolucin del error, e , iteracin a iteracin. Se
supone la consistencia del esquema, es decir se asume que (nico punto fijo)
(5)
x = Gx + h
Restando las ecuaciones (5) y (1), se obtiene la ecuacin que relaciona
el error en dos iteraciones consecutivas,
k+1 k (6)
e =Ge :
Aplicando esta igualdad recursivamente se obtiene una expresin que
rela-ciona el error con el error en la aproximacin inicial
k k 0
e = [G] e ;
k
donde [G] denota la potencia k de la matriz G. De manera que, el
esquema iterativo ser convergente si
k
lm [G] = 0:
k!1

El teorema 2 demuestra que esta condicin es equivalente a decir que el


esquema ser convergente si y slo si el radio espectral de la matriz G
es menor que 1,
(G) := max jij 1:
i
Sin embargo, la demostracin de este resultado requiere de un
resultado pre-vio que se enuncia a continuacin.

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

Para ver la implicacin inversa, es suficiente comprobar que (G) < 1 )


k
lm k[G] k = 0. Para ello se considera el teorema 1. Si (G) < 1, por el
k!1
teorema anterior considerando " > 0 tal que (G) + " < 1, existe una
norma matricial tal que kGk (G) + " = < 1. Utilizando la desigualdad
2 k k k
de Schwarz , k[G] k kGk y, por lo tanto, se concluye que
(G) < 1 ) lm k[G]kk = 0 ) lm ek = 0 8 e0:
k!1 k!1

Notar que para cualquier norma matricial la desigualdad (G) kGk


es siempre cierta. En efecto, cualquier vector propio u i de G, de valor
propio i, verifica
jijkuik = kiuik = kGuik kGkkuik:
Por lo tanto, jij kGk para cualquier valor propio i. Es decir,
(G) kGk;
para cualquier norma matricial y cualquier matriz G. Esto da lugar al si-
guiente corolario del teorema 2.
1
Dada una norma vectorial kk la norma matricial asociada es kAk = max kAxk. El
kxk=1
hecho de tener una norma matricial asociada a una norma vectorial permite utilizar la
desigualdad kAxk kAkkxk.
2
La desigualdad de Schwarz asegura que cualquier norma matricial cumple kA Bk
kAkkBk para matrices cualesquiera A y B.
4
Corolario 1. Una condicin suficiente de convergencia para el esquema
(1) es kGk < 1.
En particular este resultado es cierto para las normas matriciales
n n
X Xi
g max g (7)
kGk1 = maxi j ijj y kGk1 = j j ijj
j=1 =1

puesto que se trata de normas matriciales asociadas a normas


vectoriales. A diferencia del clculo del radio espectral, (G), la
evaluacin de estas normas es sencilla y, por lo tanto, tienen un gran
inters a la hora de establecer condiciones suficientes de convergencia.

1.2. Velocidad de convergencia


En el diseo de un mtodo iterativo, adems de asegurar la
consisten-cia y convergencia del mtodo, es importante el concepto de
velocidad de convergencia.
k
Supongamos que se dispone de una aproximacin de la solucin, x ,
k 1 q
con q cifras significativas, ke k 2 10 kx k, y se desea saber cuntas
itera-ciones ms se tienen que hacer para obtener m cifras correctas
ms. In-teresa, por lo tanto, saber cuntas iteraciones hay que hacer
k+ 1 (q+m)
para que, ke k 2 10 kx k, es decir
k+ m k
ke k 10 ke k:
Esto nos dar informacin sobre la velocidad con que la sucesin de apro-
k
ximaciones x se acerca a la solucin. Aplicando recursivamente la igualdad
k+ () k
(6) se obtiene la relacin e = [G] e , que tomando normas es
k+ k
ke k k[G] kke k:
De manera que para conseguir las m cifras significativas es suficiente
m
exigir que k[G] k 10 o, equivalentemente

log10k[G] k m:
As, para conseguir m cifras significativas es suficiente hacer iteraciones con
m
;
R
donde se define
1
R := log10k[G] k = log10 k[G] k1 :

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.

1.3. Descripcin de los mtodos


Vistas las condiciones por las que un mtodo estacionario es
consistente y convergente, estas se pueden particularizar para los
esquemas segn (4), es decir,
k+1 k 1 k
x = x C (Ax b):
Estos esquemas son consistentes por definicin, y sern convergentes si y
1
slo si (G) = (I C A) < 1. A continuacin se presentan algunos mtodos
clsicos que corresponden a diferentes elecciones de la matriz C. Para ello en
lo sucesivo se considera la descomposicin aditiva de la matriz A como
A = LA + DA + UA
donde LA es la parte triangular inferior de la matriz sin incluir la diagonal,
DA es la diagonal de A, y U A es la parte triangular superior sin incluir la
diagonal (ver figura 1).

1.3.1. Mtodo de Richardson: C = I


El mtodo de Richardson corresponde a considerar la opcin ms barata
computacionalmente, es decir C = I, obteniendo el

esquema xk+1 = xk Axk b ;
6
A = LA + DA + UA

Figura 1: Descomposicin aditiva de la matriz

o, componente a componente,
n
Xj
k+1 k k
xi = xi aij xj + bi ; i = 1:::n; k = 0; 1; :::
=1

El inconveniente del mtodo es que la condicin para convergencia es


muy restrictiva: el mtodo es convergente slo si (IA) < 1. Es decir,
para tener una convergencia rpida es necesario que todos los valores
3
propios de A sean cercanos a la unidad , que evidentemente es una
condicin que no se suele verificar.

1.3.2. Mtodo de Jacobi: C = DA


El mtodo de Jacobi se escribe como
1 X
j
i1 n
X

k+1 "b a xk a xk #
xi =
aii i =1 ij j j=i+1 ij j ; i = 1:::n; k = 0; 1; :::

La expresin del algoritmo se puede interpretar como la aproximacin que


se obtiene al despejar la incgnita xi de la ecuacin i-sima del sistema. Sin
embargo, este mtodo se puede clasificar dentro de los mtodos segn (4)
considerando C como la diagonal de A, C = DA. En efecto el esquema para
C = DA,
k+1 k 1 k
x = x + D A (b Ax );
se puede reescribir como
k+1 k k
DAx = DAx + b Ax :
Utilizando la descomposicin aditiva de A y simplificando se llega a la
ex-presin
k+1 k k
DAx = b LAx UAx ;
que corresponde a la forma matricial del algoritmo.
3
Si A tiene valores propios fi gi=1;:::;n, entonces A pI tiene valores propios fi
pgi=1;:::;n con los mismos vectores propios (traslacin).

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

respectivamente. La primera es trivial de verificar si la matriz es


diagonal-mente dominante por filas y la segunda si lo es por columnas.
Observacin 3. La velocidad asinttica de convergencia se puede estimar
recordando que (G) kGk y, por consiguiente 1
R1 = log10
(G)

log10
mn( G 1; G 1) :
1
k k k k
Observacin 4. Para la implementacin del mtodo es necesario
k
dimensio-nar dos vectores para almacenar la aproximacin actual, x , y
k+1
la aproxima-cin nueva, x , en cada iteracin.

1.3.3. Mtodo de Gauss-Seidel: C = DA + LA


k +1
En el mtodo de Jacobi cada componente x i se calcula utilizando las
k
componentes de la aproximacin anterior, x . Sin embargo, a la hora de
k +1
calcular la componente x i ya se han calculado previamente las componentes
k +1 k +1 k +1
anteriores, x 1 ; x 2 ; : : : ; x i 1. En el mtodo de Gauss-Seidel se aprovechan
k +1
estas i 1 componentes para el clculo de x i . El esquema resultante es
1 " i1 n
k#
X
j X
k+1 k+1 aij xj ; i = 1:::n; k = 0; 1; ::: ; (8)
xi = aij xj
aii bi =1 j=i+1

donde se ha resaltado el superndice k + 1 para destacar la diferencia con el


mtodo de Jacobi. En cada paso se utiliza la informacin ms actual de que se
dispone. Este mtodo se clasifica en los mtodos segn (4) considerando C =
DA + LA. En efecto, la particularizacin de (4) para C = DA + LA es
k+1 k 1 k
x = x + (DA + LA) (b Ax ):
X
4
Una matriz A es diagonalmente dominante si verifica jaiij > jaijj 8 i
j=6i

8
Premultiplicando esta ecuacin por la matriz (D A + LA) se obtiene
k+1 k k
(DA + LA)x = (DA + LA)x + (b Ax );

que, teniendo en cuenta la descomposicin aditiva de A, es


k+1 k
(DA + LA)x = b UAx :

Esta ecuacin finalmente se escribe como


k+1 k+1 k
DAx = b LAx UAx ;

que es la versin matricial del algoritmo.


Observacin 5. El mtodo de Gauss-Seidel se puede implementar dimen-
sionando un slo vector para almacenar las componentes que interesan de
k k+1
x yx . El mismo vector se va actualizando en cada iteracin.
Observacin 6. Se puede comprobar que el mtodo es convergente
para ma-trices diagonalmente dominantes, y para matrices simtricas y
5
definidas po-sitivas (ver [1] y [2]).
Observacin 7. Generalmente, si ambos convergen, la velocidad de
conver-gencia del mtodo de Gauss-Seidel es mayor que la del mtodo
de Jacobi. De hecho, para matrices diagonalmente dominantes kGGSk1
kGJ k1, aunque eso no siempre implica que (GGS) (GJ ).
Observacin 8. A diferencia del mtodo de Jacobi, en el mtodo de
k
Gauss-Seidel las aproximaciones x dependen de la numeracin de las
incgnitas. Para reducir esta dependencia de la numeracin es habitual
utilizar una ver-sin simetrizada del mtodo en la que se alterna una
iteracin con aproxi-macin estndar (8) y una iteracin donde el clculo
de las componentes se hace en sentido inverso,
1 " i1 n
#
k+1
Xj X
; i = n; : : : ; 1;
xi = bi =1 a xk a x k+1
aii ij j j=i+1 ij j

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 :

Observacin 9. Considerando una descomposicin por bloques de la


matriz A, del vector b y de la solucin x,
0 0 1 0 1
A21 A22 : : : A2s 1 b2 x2
B A11 A12 : : : A1s C Bb C B x1 C
1
..
.. ..
.. ....
A= B As1 As42 : : : Ass C
; b= B bs C
; x= B xs C
;
B C B C B C
@ A @ A @ A

se puede plantear el llamado mtodo de Gauss-Seidel por bloques,


i1 s
Xj X
k+1 k+1 k
Aiixi = bi Aij xj Aij xj ; i = 1:::s; k = 0; 1; : : : ;
=1 j=i+1

cuya implementacin slo requiere resolver sistemas con las matrices


Aii (de dimensin pequea).

1.3.4. Mtodo de sobrerelajaciones sucesivas (SOR)


Existen infinidad de mtodos para acelerar la convergencia,
extrapolar o relajar los distintos mtodos iterativos. Todos ellos se basan
en introducir como mnimo un parmetro ! en la definicin de G, de
manera que se puede considerar un valor ptimo del parmetro
!opt = arg mn (G(!));
!

y as acelerar la convergencia. De estos mtodos el ms conocido es el mtodo de


sobrerelajaciones sucesivas (SOR). La forma general se puede escribir
como,
Se deja como ejercicio para el lector comprobar que este mtodo
1
corresponde a considerar C = ! (!LA + DA). El parmetro ! se puede elegir
de manera que el radio espectral sea lo ms pequeo posible y as obtener
una con-vergencia rpida. Este mtodo es popular sobretodo en el contexto
de las diferencias finitas, en el que existen varios resultados que permiten
determi-nar el parmetro ptimo de forma analtica.

2. Mtodos de los gradientes conjugados


El mtodo de los gradientes conjugados es un mtodo iterativo no esta-
cionario. Es decir, es un mtodo cuya definicin depende de la iteracin k.

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.

2.1. Problema de minimizacin equivalente


Notacin: Para simplificar las expresiones en lo sucesivo se denota el
pro-ducto escalar de vectores como
T
hu; vi = u v:

Proposicin 1. Sea A es simtrica y definida positiva (SDP). Entonces, x es
la solucin de Ax = b si y slo si es el mnimo del funcional cuadrtico
1 T T 1
(x) = 2x Ax x b = 2hx; Axi hx; bi:
1
Es decir, x = A b , x = arg mn (x) .
n
x2R

Demostracin. La demostracin comprueba las dos implicaciones:

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;

donde se ha tenido en cuenta la simetra de la matriz A. Empleando



ahora la hiptesis de que x es solucin del sistema se obtiene

1 1
(x) = (x ) + 2hz; Azi + hz; Ax bi = (x ) + 2hz; Azi:

Puesto que A es una matriz definida positiva, hz; Azi 0, se deduce


que

(x) (x ) 8 x:

Adems, slo habr una igualdad si z = 0, es decir, x = x .
1 ( x = arg mn (x) :
x =A b
n
x2R

Si x es un mnimo de la funcin , debe verificar la condicin
necesaria de extremo relativo r(x) = 0. Dado que r(x) = r(x) = Ax
b, la condicin de extremo es
Ax b = 0:

2.2. Motivacin: mtodo del mximo descenso, del gra-


diente o de mxima pendiente
El mtodo del mximo descenso se basa en el hecho de que el
k
gradiente de una funcin en un punto x es la direccin en la que esta
k
funcin crece ms rpidamente. Por esto, dado x , la nueva
k+1 k
aproximacin x se busca avanzando en la direccin de r = r ,
k+1 k k
x = x + kr :

El parmetro k se elige de forma que se minimice en esta direccin.


k+1
Se trata de un problema de minimizacin unidimensional de (x ) =
k k k
(x + kr ) en la direccin de r , es decir,
k k (9)
k = arg mn (x + r ):
2R

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.

2.3. Mtodo de los gradientes conjugados


Con la misma idea que en el mtodo del mximo descenso, en cada
itera-cin del mtodo de los gradientes conjugados se busca una
aproximacin de la forma
k+1 k k
x = x + kp
que minimice . De nuevo el parmetro escalar k se escoge para minimizar
k
en la direccin de avance, en este caso p . Tal como se vio en el apartado
anterior, la minimizacin unidireccional proporciona la expresin para k,
= k k :
hp ; r i
k k k
hp ; Ap i
6
La derivada de una funcin en una direccin se puede calcular aplicando la regla
T
de la cadena como = [r(x + )] .

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

El coste computacional por iteracin de este algoritmo es el de 2 pro-ductos


de matriz por vector, 2 clculos de vector ms escalar por vector, 3 productos
escalares vector por vector y 1 suma de vectores. Obviamente, el coste
computacional ms importante es debido al producto matriz por vector.

Observacin 14. El coste computacional del mtodo se puede reducir


su-primiendo un clculo de matriz por vector. En efecto, multiplicando
k+1 k k
por A y restando b a los dos lados de la ecuacin x = x + kp se
obtiene la siguiente expresin recursiva para el clculo del residuo
k+1 k k (12)
r = r + kq ;
k+1 k+1
con coste computacional considerablemente menor que r = Ax b. Sin
embargo, para matrices mal condicionadas en la prctica es recomendable
k+1 k+1
calcular el residuo, r = Ax b, cada cierto nmero de iteraciones para
corregir errores de redondeo acumulados por la frmula recursiva.

2.3.2. Propiedades del mtodo de los gradientes conjugados


Proposicin 2. Las iteraciones del algoritmo de los gradientes
conjugados verifican, para todo k n, las siguientes propiedades:

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;

por definicin de 0, lo cual demuestra (a) y (c). La propiedad (b) se


1 1 0
com-prueba teniendo en cuenta (13) y la definicin p = r + 1p ,
1 1 1 1 1 0 1 1
hr ; p i = hr ; r i + 1 h|r {z;p }i = hr ; r i:
0

El caso k = 1 se completa con la comprobacin de la propiedad (d),


1
usando la definicin de p y del parmetro 1,
1 0 1 0 0 1 0 0 0
hp ; Ap i = hr + 1p ; Ap i = hr ; Ap i + 1hp ; Ap i = 0:

A continuacin, suponiendo que las cuatro propiedades son ciertas para k


(hiptesis de induccin) se comprueba que tambin son ciertas para k + 1:

(a) La primera propiedad se comprueba utilizando la ecuacin (12), es


k+1 k k
decir r = r + kAp , de donde se deduce
k+1 i k i k i
hr ; p i = hr ; p i + khp ; Ap i:
k+1 k
As, para i = k tenemos hr ; p i = 0 por definicin de k. Para k < i, por
k
hiptesis de induccin con las propiedades (a) y (d), se verifica que hr ;
i k i k+1 i
p i = 0 y hp ; Ap i = 0, de lo que se concluye que hr ; p i = 0.
(b) Para demostrar la segunda propiedad se utiliza la definicin de
k+1
p y la propiedad (a) para k + 1 e i = k (acabada de demostrar),
k+1 k+1 k+1 k+1 k+1 k k+1 k+1
hr ;p i = hr ;r i + k+1 h|r {z; p }i = hr ;r 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

(d) Para comprobar la ltima propiedad se utiliza la ecuacin (12) para


k = i, que se reescribe como
1
Api = (ri+1 ri);
i
k+1 k+1 k
y la definicin de p =r + k+1p ,
k+1 i k+1 i k i
hp ; Ap i = hr ; Ap i + k+1hp ; Ap i
1 k+1 i+1 i k i
=
hr ; r r i + k+1hp ; Ap i:
i
Para i < k el primer trmino de abajo es cero por la propiedad (c) y el
segundo trmino es nulo por hiptesis de induccin con la propiedad
k+1 i
(d). Por lo tanto, hp ; Ap i = 0 para i < k. Para i=k, utilizando la
k+1
definicin de p y k+1,
k+1 k k+1 k k k
hp ; Ap i = hr ; Ap i + k+1hp ; Ap i
hrk+1; Apki
= hrk+1; Apki k k
hpk; Apki = 0;
hp ; Ap i
tal como se quiere demostrar.

Corolario 2. El mtodo de los gradientes conjugados converge como


mximo en n iteraciones.
Demostracin. La propiedad (a) de la proposicin 2 particularizada para
k = n asegura que el residuo tras n iteraciones es ortogonal a las n
direcciones de avance utilizadas,
n j
hr ; p i = 0 para j = 0; : : : ; n 1:
Dado que las direcciones son A conjugadas y, por lo tanto, linealmente
inde-pendientes (si el residuo no se anula antes de la iteracin n), esta
n n
condicin es equivalente a decir que r es ortogonal a una base de R ,
n
de lo que se concluye que r = 0.
17
0
kx x kA;
De hecho, el mtodo de GC se desarroll como un mtodo directo,
pero se dej de utilizar por su alto coste computacional (si se realizan las
n ite-raciones). Ahora se ha recuperado como mtodo iterativo y se
suele utilizar con matrices de dimensin grande pero casi vacas sin
llegar generalmente a hacer las n iteraciones.
Proposicin 3. (Convergencia) El error en las iteraciones del mtodo de
los gradientes conjugados est acotado por la siguiente expresin
k i kA "p k2 (A) + 1 #i k 0 kA
x x 2 k2 (A) 1 x x
p

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;

(ver representacin grfica en la figura 2). En general esto no implica la


7
convergencia en norma kk2 o kk1. Sin embargo, para el mtodo de
los gradientes conjugados se puede demostrar que la convergencia es
montona tambin en estas normas.

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

Figura 2: Representacin del error para un mtodo con convergencia


mon-tona y un mtodo con convergencia no montona.

de donde se deduce que el error decrece rpidamente. Si la matriz es mal p


k2(A) 1
condicionada, k2(A) ' 1, entonces p = 1 " con " > 0 pequeo. k2(A) + 1
Entonces, la frmula de la proposicin 3 se escribe como
i i 0
kx x kA 2 (1 ") kx x kA;

de donde se deduce que la sucesin converger lentamente a la


solucin. En general, la velocidad de convergencia depende del nmero
de condicin de la matriz (ver figura 3). Cuanto menor sea el nmero de
condicin de la matriz ms rpida ser la convergencia del mtodo de
los gradientes conjugados. Para mejorar la convergencia se pueden
usar precondicionadores, tal como se comenta en la seccin 2.3.5.

A bien condicionada
log(error)

A mal condicionada

iteracin

Figura 3: Ejemplo de convergencia del mtodo de los gradientes


conjugados para una matriz mal condicionada y una matriz con nmero
de condicin cercano a 1

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

Figura 4: Funcin (x) (izquierda), curvas de nivel y gradientes (derecha)

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.

2.3.4. Algoritmo de gradientes conjugados (versin 2)


Utilizando las propiedades enunciadas en la proposicin 2, se
pueden sim-plificar algunas de las expresiones que aparecen en el
algoritmo realizando los clculos de forma ms eficiente.
k k k1
Utilizando la definicin p = r + kkp k1y una particularizacin de la
propiedad (a) de la proposicin 2, hr ; p i = 0, se obtiene una nueva
expresin para k:
= hpk; rki = hrk + kpk1; rki = hrk; rki (14)
k
k
hp ; q i
k
hp ; q i
k k hpk; qki
El clculo de kk+1 se puede optimizar utilizando la frmula recursiva (12),
reescrita como q = rk+1 rk =k, la propiedad (c) de ortogonalidad de
k+1 k
los residuos, hr ; r i = 0, y la expresin de k dada por la ecuacin (14),
k+1 ; qk k+1 ; rk+1rk i 1 k+1 k+1
= hr i = hr k
= hr ;r i
k k k
k+1 ;q i
h pk hp ;q i k h pk ; qk i (15)
= hrk+1; rk+1i :
k k
hr ; r i
La nueva versin del algoritmo, ms eficiente, se obtiene utilizando las
ex-presiones dadas por (14) y (15) y la frmula recursiva introducida en
(12). El coste computacional de esta nueva versin es de 1 producto
matriz por vector, 3 operaciones vector ms escalar por vector y 2
productos escalares vector por vector.

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

2.3.5. Mtodo de gradientes conjugados precondicionado


Como ya se ha comentado, la convergencia del mtodo de
gradientes con-jugados depende del nmero de condicin de la matriz
(ver proposicin 3). La convergencia del mtodo se puede mejorar
resolviendo un sistema equivalente pero con una matriz con nmero de
condicin menor, es decir, precondicio-nado.
8
Consideremos una matriz P (precondicionador) fcilmente invertible
1
y con k2(P A) ' 1 (tpicamente se trata de una matriz P ' A). El sistema
de ecuaciones
P1A x = P1b;
sistema precondicionado, es equivalente al sistema Ax = b. Es decir, tiene la
misma solucin. Sin embargo, al reducir el numero de condicin la convergen-
cia del mtodo sea ms rpida para el sistema precondicionado, obteniendo
as la solucin con la precisin deseada en menos iteraciones. Esta transfor-
macin del sistema se denomina precondicionamiento por la derecha y es muy
utilizada para mejorar la convergencia de mtodos iterativos en general. Sin
embargo, no es la utilizada en el caso del mtodo de gradientes conjugados.
8
Se dice que una matriz es fcilmente invertible cuando es sencillo resolver sistemas
con esa matriz. En la prctica nunca resulta rentable calcular la inversa de una matriz.

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

P2 , y se puede transformar el sistema de ecuaciones Ax = b en


1 1 1 1
P 2 AP

2 P2 x = P 2
b:
1 1 |{z}1 1
x~

~
~ ~

As, definiendo A = P 2 AP 2 , x = P2 x y b = P 2 b, se puede obtener la


solucin resolviendo con gradientes conjugados el sistema equivalente
~~ ~

Ax = b;

y calculando x = P 12 x~. Se deja como ejercicio para el lector comprobar que
~

la matriz del sistema equivalente A es una matriz simtrica y definida positiva


y, por lo tanto, no hay problemas para resolver el sistema mediante gradientes
conjugados. Adems, si P ' A es de esperar que el nmero de condicin de
~

A sea pequeo y que, por lo tanto, la velocidad se acelere. La mejora en la


velocidad de convergencia depender de la eleccin del precondicionador
P. A la prctica el algoritmo se simplifica evitando el clculo de la matriz
1
raz cuadrada P2 . Si al aplicar el mtodo de gradientes conjugados al
sistema equivalente se utilizan las variables auxiliares
1 1
x~ k 1
=P k k ~k ~ 2 k ;
p~ k
=P k ;
2
2

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

donde se puede observar que no aparece la matriz P 2 y slo es necesario


resolver un sistema con el precondicionador P en cada iteracin.
Existen varias posibilidades para la eleccin del precondicionador P,
te-niendo en cuenta que el nico requisito que debe cumplir es que sea
simtrico y definido positivo. Algunos de los ms populares son P = D A,
precondiciona-dor diagonal, u otros precondicionadores inspirados en
los mtodo iterativos estacionarios, y las factorizaciones incompletas, P
T
= LL . Las factorizacio-nes incompletas son similares a las
T
factorizaciones estndar de la matriz, por ejemplo LL ' A, pero sin
almacenar algunos de los coeficientes. De esta manera se obtiene un
precondicionador fcilmente invertible, con P ' A, pe-ro sin un excesivo
llenado de la factorizacin y manteniendo bajo el tiempo de CPU.

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

Anda mungkin juga menyukai