Documente Academic
Documente Profesional
Documente Cultură
Universidad Polite
cnica Superior de Ingenieros de Minas
Escuela Te
tica Aplicada y Me
todos Informa
ticos
Departamento de Matema
x0
r1
x1
x2= x* d1
*
d1
r0
f(x)=cte.
Resoluci
on de sistemas lineales de ecuaciones:
M
etodo del gradiente conjugado
Ultano Kindelan
Indice
1. Introducci
on
2. Notaci
on
3. Funciones cuadr
aticas
4. El m
etodo del gradiente
11
5. El m
etodo del gradiente conjugado
16
5.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
16
20
21
A. Demostraci
on de la conjugaci
on de las direcciones de descenso
25
B. Condicionamiento de un sistema
27
Indice de Figuras
1.
2.
3.
4.
5.
6.
7.
8.
Representaci
on geometrica de un sistema lineal de dos ecuaciones. La
soluci
on es el punto de intersecci
on de ambas rectas. . . . . . . . . . . . .
Gr
afica de la forma cuadr
atica (5). El punto en donde esta funci
on
alcanza su valor mnimo es la soluci
on de Ax = b. . . . . . . . . . . . . .
10
11
El metodo del gradiente: (a) Se comienza en el punto (3, 1)t y se realiza la primera iteraci
on siguiendo la direcci
on de m
aximo descenso. (b)
Hay que encontrar el punto de lR2 en el que la curva (par
abola) intersecci
on de las dos superficies alcanza su mnimo absoluto. (c) La par
abola
intersecci
on de las dos superficies. (d) El gradiente en el punto donde
se alcanza el mnimo es ortogonal al gradiente en el punto obtenido en
la iteraci
on anterior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Dibujo de las dos primeras iteraciones del metodo del gradiente sobre
t
las curvas de nivel de la funci
on f (x) = 12 xt Ax b x. . . . . . . . . . . .
17
Dibujo de las dos primeras iteraciones del metodo del gradiente conjut
gado sobre las curvas de nivel de la funci
on f (x) = 12 xt Ax b x. En
dos iteraciones se alcanza la soluci
on exacta del sistema Ax = b. . . . . .
18
Indice de Algoritmos
1.
Algoritmo que resuelve el sistema Ax = b mediante el metodo del gradiente. Version preliminar. . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Algoritmo que resuelve el sistema Ax = b mediante el metodo del gradiente. Version mas eficiente con memoria. . . . . . . . . . . . . . . . .
15
Algoritmo que resuelve el sistema Ax = b mediante el metodo del gradiente. Version mas eficiente sin memoria. . . . . . . . . . . . . . . . . .
16
4.
16
5.
Algoritmo que resuelve el sistema Ax = b mediante el metodo del gradiente gradiente conjugado. Versi
on provisional. . . . . . . . . . . . . . . .
22
Algoritmo que resuelve el sistema Ax = b mediante el metodo del gradiente gradiente conjugado. Versi
on final. . . . . . . . . . . . . . . . . . .
23
2.
3.
6.
1. Introduccion
1.
Introducci
on
El metodo del gradiente conjugado es el metodo iterativo mas utilizado para resolver
grandes sistemas lineales de ecuaciones . El metodo del gradiente conjugado es efectivo
para sistemas de la forma
Ax = b,
(1)
en donde x es un vector desconocido, b es un vector conocido y A es una matriz cuadrada
simetrica y definida positiva tambien conocida. Estos sistemas de ecuaciones aparecen en
la aplicacion de tecnicas numericas de gran importancia como por ejemplo los metodos de
diferencias finitas o elementos finitos para resolver ecuaciones diferenciales en derivadas
parciales. Tambien surgen en la resolucion de problemas de ingeniera importantes como
el analisis estructural o la teora de circuitos.
El metodo del gradiente conjugado es un caso particular de metodo de descenso. Los
metodos de descenso estan especialmente indicados para la resolucion de sistemas huecos
(sistemas lineales cuya matriz de coeficientes tiene un n
umero importante de ceros). Si A
es una matriz llena suele ser mas aconsejable factorizar la matriz A y despues resolver el
sistema mediante la tecnica de remonte (metodo directo). El tiempo consumido factorizando la matriz A es mas o menos el mismo que el necesario para resolver el sistema por
un metodo iterativo ; y una vez que la matriz de coeficientes esta factorizada, el sistema
se puede resolver rapidamente para m
ultiples valores de b. Por el contrario si la matriz
A es una matriz hueca, en su factorizacion triangular apareceran muchos elementos nulos, con el consiguiente desperdicio de operaciones y memoria. Los metodos de descenso,
y en general los metodos iterativos, consiguen ahorrar memoria y operaciones operando
u
nicamente sobre los elementos no nulos.
El orden que se ha seguido para la elaboracion de estos apuntes es el siguiente: en el
apartado 2 se hace un breve repaso de la notacion que se utilizara en el resto de las
secciones. En el apartado 3 se repasan algunas ideas basicas de optimizacion de funciones
de varias variables, con el objetivo de mostrar la equivalencia entre resolver el sistema
Ax = b y hallar el mnimo de una funcion cuadratica cuando A es una matriz simetrica y
definida positiva. En el apartado 4 se explica el metodo del gradiente. El interes de estudiar
el metodo del gradiente radica en su utilidad pedagogica para introducir el metodo del
gradiente conjugado y no en su eficacia para resolver sistemas lineales puesto que no puede
competir en velocidad de convergencia con este u
ltimo. Finalmente en el apartado 5 se
explica el metodo del gradiente conjugado demostrando las propiedades mas importantes
del mismo, exceptuando la demostracion de la conjugacion de las direcciones de descenso
que por su longitud se incluye separadamente en un apendice.
Estos apuntes estan escritos con la idea de utilizarlos en la asignatura de Programacion
y Metodos Numericos del segundo curso de la titulacion de Ingeniero de Minas de la
Universidad Politecnica de Madrid. Presuponen, por tanto, unos conocimientos basicos de
Algebra
lineal y Analisis en varias variables.
Existen variantes del metodo para resolver sistemas cuya matriz no sea simetrica ni definida positiva.
2. Notacion
2.
Notaci
on
b1
x1
a11 a12 . . . a1n
a21 a22 . . . a2n x2 b2
..
..
.. .. = ..
..
.
.
.
.
.
.
an1 an2 . . . ann
bn
xn
...
Por u
ltimo se recuerda que una matriz de dimension n que verifique
xt Ax > 0,
x lRn (x 6= 0).
(2)
se dice que es una matriz definida positiva. Si ademas es simetrica se dira que es una
matriz sim
etrica definida positiva.
3.
Funciones cuadr
aticas
(3)
3 2
4
A=
,
b=
,
c = 0.
(4)
2
4
8
La representacion geometrica del sistema Ax = b se muestra en la figura 1. En general la
solucion x se encuentra en el punto de intersecci
on de n hiperplanos, cada uno de ellos de
3. Funciones cuadraticas
10
6
x2
2x1+4x2=8
2
3x12x2=4
2
x1
2
Figura 1: Representaci
on geometrica de un sistema lineal de dos ecuaciones. La soluci
on
es el punto de intersecci
on de ambas rectas.
x1 f (x)
f (x)
0
x
f (x) = f (x) = 2 .
.
..
(6)
xn f (x)
(7)
(8)
Igualando el gradiente a cero se recupera el sistema (1). De este modo la solucion del
sistema Ax = b, que en lo sucesivo se denominara x , es un punto crtico de f (x). Si la
matriz A, ademas de ser simetrica, es definida positiva, entonces la soluci
on del sistema
Ax = b es un mnimo de f ; esto se puede demostrar facilmente estudiando el valor de f
en un punto distinto de x , p.e. x + e: si se supone que A es simetrica (definida positiva
3. Funciones cuadraticas
60
40
f(x)
20
20
0
88
x2
x1
Figura 2: Gr
afica de la forma cuadr
atica (5). El punto en donde esta funci
on alcanza su
valor mnimo es la soluci
on de Ax = b.
x2
x1
3. Funciones cuadraticas
10
10
6
y
4
x
2
Tambien se puede demostrar comprobando que la matriz Hessiana de f es constante e igual a A; para
ello basta con derivar parcialmente las n componentes del gradiente respecto a las n variables x1 , . . . , xn .
11
(a)
f(x)
(b)
1.5
0.5
f(x)
0.5
1
1.5
0
1
2
1
1
0.5
0.5
x2
1
0.5
0.5
x1
x2
0.5
0.5
(c)
f(x)
x1
0.5
0.5
(d)
1.5
0.5
f(x)
0.5
0
0.5
0
1
1
0.5
0.5
x2
1
1
x1
x2
0.5
0.5
1
0.5
0.5
0
x1
0.5
0.5
4.
El m
etodo del gradiente
(9)
12
La pregunta que hay que hacer para calcular 0 es: de que tama
no se dara el paso en
la iteracion 1? Para contestar a esta pregunta, supondremos que en cada iteracion se
realizara una b
usqueda lineal a lo largo de la direccion de descenso correspondiente (en el
caso del metodo del gradiente en la direccion contraria al gradiente):
f (x0 + 0 r0 ) = mn f (x0 + r0 ).
lR
(10)
Una b
usqueda lineal es un procedimiento que busca un 0 que minimice a lo largo de una
lnea. En la figura 6 se muestra el procedimiento: nos restringimos a buscar un punto en la
curva (la parabola que se muestra en la figura 6(c)) intersecci
on del plano vertical con el
paraboloide, por lo que se trata de resolver un problema de optimizacion unidimensional:
hallar tal que
d
f (x0 + r0 ) = 0.
(11)
d
Al derivar se obtiene:
d
d
f (x0 + r0 ) =
d
d
1 0
t 0
0 t
0
0
0
(x + r ) A(x + r ) b (x + r ) + c =
2
0 t
0 t
(12)
t 0
(r ) Ar + (r ) Ax b r = 0.
De donde se deduce:
0 =
(b Ax0 )t r0
(r0 )t r0
=
.
(r0 )t Ar0
(r0 )t Ar0
(13)
Una vez conocidos la direccion de descenso (r0 ) y 0 , se calcula x1 mediante (9). Despues
de obtener x1 se calcula x2 de identica manera:
x2 = x1 + 1 r1 ,
en donde 1 se calcula igual que 0 . El proceso seguira de forma iterativa calculando los
sucesivos valores aproximados de la solucion de Ax = b:
x1 = x0 + 0 r0
x2 = x1 + 1 r1
x3 = x2 + 2 r2
..
.
xi = xi1 + i1 ri1
xi+1 = xi + i ri ,
..
.
o, en forma abreviada:
xi+1 = xi + i ri ,
i = 0, . . .
(14)
13
(a)
(b)
150
100
x2
50
x*
0
2
10
8
6
x0
x2
x1
4
2
0
(c)
10
x1
(d)
140
120
6
100
f(x0+rho*r0)
80
x2
x*
60
x1
2
40
20
2
0.2
0.1
0
20
0.1
0.2
0.3
0.4
0.5
0.6
x0
rho
x1
Figura 6: El metodo del gradiente: (a) Se comienza en el punto (3, 1)t y se realiza la
primera iteraci
on siguiendo la direcci
on de m
aximo descenso. (b) Hay que encontrar el
punto de lR2 en el que la curva (par
abola) intersecci
on de las dos superficies alcanza su
mnimo absoluto. (c) La par
abola intersecci
on de las dos superficies. (d) El gradiente en
el punto donde se alcanza el mnimo es ortogonal al gradiente en el punto obtenido en la
iteraci
on anterior.
con:
x0 = vector inicial arbitrario
ri = b Axi
(ri )t ri
i = i t i
(r ) Ar
Para definir de forma completa el esquema iterativo anterior hace falta determinar cuando
se para de iterar (hasta que valor de i se llega). Para ello hay que estimar el error cometido
en cada iteracion. Se citan a continuaci
on dos formas de estimar el error en la iteracion i:
1. La norma del residuo, ||ri ||. Como se ha explicado mas arriba ri = Aei , lo cual
implica que si ri = 0 entonces ei = 0 (siempre y cuando A sea una matriz no
singular). En consecuencia cuanto mas peque
no sea ||ri || m
as cerca se estara de la
solucion.
2. La norma del vector diferencia entre los resultados en la iteracion i + 1 y la iteracion
i, ||xi+1 xi ||. Si la norma de este vector diferencia se hace cada vez mas peque
na
entonces la sucesion de vectores {xi } tiene un lmite. En el caso de que se demuestre
que el esquema iterativo converge hacia la solucion del sistema (lo cual sucede en el
14
Observaci
on 4.1. En el algoritmo anterior y en todos los restantes se va a utilizar como
estimador del error la norma del residuo. Tiene la ventaja respecto a ||xi+1 xi || que no hay
que efectuar ninguna resta puesto que ri ya esta calculado y ademas no obliga a almacenar
mas vectores de la sucesion que el u
ltimo calculado. El valor de ||ri || se almacena en tol,
observese que inicialmente se le asigna a tol un valor artificialmente grande (mayor que )
para que el algoritmo realice al menos una iteracion.
Observaci
on 4.2. El dato maxiter representa el n
umero maximo de iteraciones que el
algoritmo puede realizar independientemente de que haya alcanzado la solucion o no.
Si analizamos el coste en operaciones del algoritmo 1, llegamos a lo siguiente:
Operacion vectorial
ri b Axi
i t ri
i (r(ri ))t Ar
i
i+1
i
x
x + i ri
tol ||ri ||
No de operaciones elementales
2n2
2n2 + 3n 1
2n
2n
15
el algoritmo del gradiente. Observando la tabla se comprueba que las dos operaciones que
determinan el costo de cada una de las iteraciones del metodo del gradiente son Axi y
Ari . La primera se puede evitar si tenemos en cuenta que:
ri = b Axi = b A(xi1 + i1 ri1 ) = b Axi1 i1 Ari1 = ri1 i1 Ari1 . (15)
Por lo tanto, salvo en la iteracion inicial, no es necesario calcular el producto Axi ; basta
con calcular Ari y utilizarlo en la siguiente iteracion.
Teniendo en cuenta lo anterior se puede introducir una ligera modificacion en el algoritmo
1 para conseguir un algoritmo del gradiente mas eficiente:
Algoritmo 2 Algoritmo que resuelve el sistema Ax = b mediante el metodo del gradiente.
Version mas eficiente con memoria.
Leer A, b, x0 , maxiter,
i 0, r0 b Ax0 , tol ||r0 ||
mientras i < maxiter y tol > hacer
b Arii t i
i (r(ri))trb
xi+1 xi + i ri
ri+1 ri i b
tol ||ri+1 ||
ii+1
fin mientras
n3
3
16
5.
5.1.
El m
etodo del gradiente conjugado
Introducci
on
5.2.
Determinaci
on de la direcci
on de descenso
Supongase que se utiliza el metodo del gradiente para resolver un sistema de dos ecuaciones
con dos incognitas: Ax = b (A M2 (lR), simetrica y definida positiva). La representaci
on
17
x0
r1
x2
x1
x*
r0
f(x)=cte.
Figura 7: Dibujo de las dos primeras iteraciones del metodo del gradiente sobre las curvas
t
de nivel de la funci
on f (x) = 12 xt Ax b x.
geometrica de las dos primeras iteraciones del metodo del gradiente aparece en la figura
7.
Nos podramos plantear modificar el metodo del gradiente eligiendo una direccion de
descenso distinta al gradiente en la segunda iteracion: la direccion que une x1 con la
solucion exacta x . En este caso tendramos un metodo que obtiene (si se trabaja con
aritmetica exacta) la solucion exacta en dos iteraciones (ver la figura 8). El problema es
como determinar esta nueva direccion sin conocer la solucion exacta del sistema. Para
1
resolver el problema llamaremos d al vector que une x1 con x :
1
d = x x1 = x x0 0 d .
0
Proposici
on 5.1. Los vectores d y d son conjugados respecto a la matriz A.
0
Demostraci
on. Basta con comprobar que (d )t Ad = 0:
z}|{
0
1
0
0
0
0
0 0
0
0
(d )t Ad = (d )t A x x0 0 d = (d )t |Ax {z
Ax}0 0 Ad = d d 0 (d )t Ad =
d
0
d d
r0 d
0
0 (d
(d )t Ad
0 t
) Ad = d d d d = 0.
18
x0
r1
x1
x2= x* d1
*
d1
r0
f(x)=cte.
Figura 8: Dibujo de las dos primeras iteraciones del metodo del gradiente conjugado sobre
t
las curvas de nivel de la funci
on f (x) = 21 xt Ax b x. En dos iteraciones se alcanza la
soluci
on exacta del sistema Ax = b.
d = 1 r1 + 2 d .
1
No es preciso obtener el vector d , basta con determinar cual es su direccion, para ello se
realiza lo siguiente:
1 1
0
1
0
d =
d = r 1 + 2 d = r 1 + 0 d .
(17)
1
1
En donde 0 se puede obtener facilmente a partir de la proposicion 5.1:
0
(d )t Ad = (d )t A(r1 + 0 d ) = 0 0 =
(d )t Ar1
0
(d )t Ad
0.
(18)
Por lo tanto se tiene expresada la direccion que pasa por x1 y x en funcion de datos que
se han calculado en la primera iteracion. En vista de todo lo anterior se puede dise
nar un
nuevo metodo para resolver un sistema de dos ecuaciones y dos incognitas (el metodo del
gradiente conjugado):
19
Esquema iterativo para resolver un sistema de dos ecuaciones con dos inc
ognitas
(Ax = b) mediante el metodo del gradiente conjugado
d = r0 = b Ax0
r0 d
0 =
(d )t Ad
0
0
x1 = x0 + 0 d
r1 = b Ax1
0
0 =
(d )t Ar1
0
(d )t Ad
d = r 1 + 0 r 0
r1 d
1 =
(d )t Ad
1
1
Solucion exacta x2 = x1 + 1 d
i1
d = ri + i1 d
con
i1 =
(19)
i1 t
) Ari
(d
(d
i1 t
i1
) Ad
d = r0 = b Ax0
0 =
r0 d
(d )t Ad
0
0
x1 = x0 + 0 d
r1 = b Ax1
0
0 =
1
(d )t Ar1
0
(d )t Ad
d = r 1 + 0 r 0
..
.
20
i
i =
ri d
i
(d )t Ad
xi+1 = xi + i d
ri+1 = b Axi+1
i
i =
d
i+1
(d )t Ari+1
i
(d )t Ad
= ri+1 + i d
..
.
En principio nada asegura que el metodo anterior converja hacia la solucion del sistema
Ax = b. En la siguiente seccion se demostrara no solamente que el esquema anterior
converge hacia la solucion de Ax = b, sino que obtiene la solucion exacta en menos de n
iteraciones si la dimension de A es n y se utiliza aritmetica exacta en los calculos.
5.3.
Propiedades del m
etodo del gradiente conjugado
En esta seccion se supondra que se esta resolviendo mediante el metodo del gradiente
conjugado el sistema Ax = b de n ecuaciones con n incognitas con matriz de coeficientes
simetrica y definida positiva.
on de descenso del metodo del gradiente conjugado es conProposici
on 5.2. Cada direcci
jugada, respecto a la matriz A, con todas las direcciones de descenso calculadas anteriormente:
i
j
(d )t Ad = 0,
0 j < i.
(20)
Demostraci
on. Consultar el apendice A.
t
Proposici
on 5.3. Los gradientes de f (f (x) = 12 xt Ax b x) en los puntos generados
en el metodo del gradiente conjugado son ortogonales a las direcciones de descenso de las
iteraciones anteriores:
j
ri d = 0,
0 j < i.
Demostraci
on. Para realizar la demostracion se estudiaran por separado los casos j =
i 1 y j < i 1:
1. j = i 1
d
i1
ri = d
i1
(ri1 i1 Ad
d
i1
i1
i1
)=d
ri1 d
i1
i1
ri1
ri1 d
i1
i1
(d )t Ad
i1 t
(d
i1
) Ad
ri1 = 0.
i1
21
2. j < i 1
j
d r = d (r
i1
i1 Ad
i1
prop. 5.2
parte 1.
z}|{
j
j
i1
j+1 z}|{
)
=
d r
= ... = d r
= 0.
Proposici
on 5.4. Si se utiliza aritmetica exacta al realizar las operaciones, el metodo
del gradiente conjugado alcanza la soluci
on exacta del sistema Ax = b en no m
as de n
iteraciones:
k n/rk = 0.
Demostraci
on. Supongase que se han realizado n 1 iteraciones sin alcanzar la solucion
t
de Ax = b, o, lo que es lo mismo, sin hallar el mnimo de la funcion f (x) = 12 xt Ax b x.
Si a continuacion se realiza la iteracion n se obtiene:
xn = xn1 + n d
n1
.
0
n1
ri d = ri ri .
Demostraci
on.
i
r d = r (r + i1 d
i1
prop. 5.3
z}|{
)
=
ri ri .
Proposici
on 5.6.
ri rj = 0
0 j < i.
j
Demostraci
on. En la iteracion j del gradiente conjugado se verifica d = rj + j1 d
si se despeja rj de la expresion anterior se obtiene:
j
rj = d j1 d
0
j1
j1
5.4.
Algoritmo del m
etodo del gradiente conjugado
A partir del esquema del metodo del gradiente conjugado para el caso de dimension n
es facil dise
nar un algoritmo que resuelva el sistema Ax = b en donde A es una matriz
cuadrada de dimension n simetrica y definida positiva:
Esta proposici
on implica que el metodo del gradiente conjugado, en teora, es un metodo directo. En
la pr
actica no es as debido a los errores de redondeo y a que el metodo se parar
a en una iteraci
on muy
inferior a la iteraci
on n.
22
(ri )t d
i
i
(d )t Ad
xi+1 xi + i d
ri+1 b Axi+1
i
i+1 t
i (r i t) Adi
i+1
(d ) Ad
d
ri+1 + i d
tol ||ri+1 ||
ii+1
fin mientras
El n
umero de operaciones en cada iteracion del algoritmo anterior es: 8n2 + 11n 1.
El problema, al igual que en el caso del gradiente, son los productos matriz por vector.
Utilizando las propiedades que se han demostrado en el apartado anterior se va a modificar
el algoritmo para conseguir que en cada iteracion solamente haya que realizar un producto
matriz vector.
1. Modificacion del termino
i =
i
(ri+1 )t Ad
i
(d )t Ad
(21)
Ad =
1 i
(r ri+1 ),
i
e introduciendo Ad en (21)
i =
1
i+1 )t (r i r i+1 )
i (r
i t i
1
i+1 )
i (d ) (r r
d ri d ri+1
ri+1 ri+1
.
ri ri
(22)
i
ri+1 = ri i Ad .
3. Modificacion del termino
(23)
i =
(ri )t d
i
(d )t Ad
(24)
23
i =
(ri )t d
i
(d )t Ad
(ri )t ri
i
(d )t Ad
(25)
x x + d
r r z
rt r
d r + d
tol ||r||
ii+1
fin mientras
En este algoritmo se realiza un solo producto matriz por vector, siendo el n
umero de
operaciones total 2n2 + 11n. Por lo tanto el n
umero de operaciones por iteracion es, al
igual que en el metodo del gradiente, aproximadamente igual (para n grande) a 2n2 . Sin
embargo a la hora de escoger entre los dos metodos, siempre se debera escoger el del
gradiente conjugado puesto que el n
umero de iteraciones necesarias para alcanzar una
reduccion del error dada (velocidad de convergencia) es mucho mas peque
no en el
metodo del gradiente conjugado que en el metodo del gradiente. La estimacion de la
velocidad de convergencia es una tarea complicada para ambos metodos, tarea que queda
fuera de los objetivos de estos apuntes. Se aconseja consultar [1], [2], [7] y [8] para estudiar
como se obtienen las expresiones de la velocidad de convergencia que se dan a continuaci
on
para ambos metodos:
1. Velocidad de convergencia en el m
etodo del gradiente,
1
cond(A)
ln
.
k
4
2. Velocidad de convergencia en el m
etodo del gradiente conjugado,
p
cond(A)
2
k
ln
.
2
24
n2
2 2 .
9 ln
Observaci
on 5.2. Si la matriz es hueca el n
umero de operaciones a realizar en cada
iteracion del orden de 2nc en donde c es un coeficiente que indica el n
umero medio de
elementos no nulos en cada fila y que generalmente es mucho mas peque
no que n. En este
caso el n
umero
total de operaciones necesarias para conseguir reducir el error inicial veces
p
sera nc ln 2
cond(A). Si, por ejemplo, c = n se tendra un n
umero de operaciones
p
2
3/2
igual a n ln
cond(A) y en este caso el gradiente conjugado podra competir con
Cholesky siempre que
n3
cond(A) 2 .
9 ln 2
A.
25
Demostraci
on de la conjugaci
on de las direcciones de
descenso
(d )t Ad = 0,
0 j < i.
(26)
i1 t
) Ad = 0, 0 j < i 1
(27)
i1
d = ri + i1 d
i = 1, 2, 3 . . . ,
(28)
con d = r0 .
i
(d )t Ad
i1
i1
= (ri )t Ad
i1 t
+ i1 (d
i1
) Ad
= 0.
c) Para el resto de los casos (j < i 1) se deduce, volviendo a utilizar (28), que:
i
(d )t Ad = (ri )t Ad + i1 (d
i1 t
) Ad
0 j < i 1.
(29)
El segundo sumando de la derecha de (29) es nulo por (27), queda, por tanto,
j
demostrar que (ri )t Ad = 0 para j < i 1. Para esta u
ltima tarea sera conveniente definir el siguiente subespacio:
D
E
0 1
j
Vj+1 = d , d , . . . , d .
j
rj = d j1 d
0
j1
0 1
j
Vj+1 = d , d , . . . , d = r0 , r1 , . . . , rj .
26
Ad =
rj rj+1
j
En consecuencia:
E
D 0 1
j
j j+1
Ad Vj+2 = r0 , r1 , . . . , rj , rj+1 = d , d , . . . , d , d
,
y se habra concluido la demostracion si se demuestra que ri es ortogonal a Vj+2 .
(para 0 j < i 1). Para ello bastara con demostrar que
j
ri d = 0
0 j < i.
(30)
r1 d = r1 r0 = 0.
2) Se supone cierto que
j
ri1 d = 0,
0 j < i 1.
(31)
i1
ri d = ri1 d i1 (d )t Ad
i1
i1
i1 (d
i1 t
i1
) Ad
j <i1
=r
i1
i1
ri1 d
i1
i1
i1
(d )t Ad
i1 t
(d
i1
) Ad
= 0.
i1
r|i1{z d} i1 (d )t Ad
= 0,
| {z }
0
B. Condicionamiento de un sistema
B.
27
Condicionamiento de un sistema
x
0,1 3,0 3,0 4,0
0,4 12,2 20,1 26,1 y
10,1
= 58,8
19,2
29,4
0
0,1 3,0 3,0 4,0
x
0,4 12,2 20,1 26,1 y 0
10,095
= 58,805
19,195
29,395
00
0,100 3,005 3,000 4,000
x
0,400 12,200 20,100 26,100 y 00
10,1
= 58,8
19,2
29,4
Ax = b
x = A1 b
B. Condicionamiento de un sistema
28
b kAk kxk
kxk = A1 b
1 b
kxk
kAk A
b
kxk
kAk
kxk
kAk A1
kx + xk
kAk
Es decir, tanto si perturbamos la matriz del sistema como si perturbamos el vector de
segundos miembros, el error relativo de la solucion est
en funcion de los errores
a acotado
cond (A), al n
umero kAk A1 , donde kk es la norma elegida en el espacio de las matrices
cuadradas de orden n e invertibles.
De la definicion anterior se desprenden de forma inmediata las siguientes propiedades:
1. cond (A) 1
6= 0
Ademas, en el caso de usar kk2 , pueden demostrarse las dos propiedades siguientes:
1. Si la matriz A es sim
etrica y denotamos por M a su valor propio de mayor modulo
y por m a su valor propio de menor modulo, se cumple:
cond2 (A) =
|M |
|m |
2. Si la matriz A no es sim
etrica y denotamos por M al valor propio de mayor
T
modulo de A A y por m el valor propio de menor modulo de AT A, se cumple:
cond2 (A) =
|M |
|m |
1/2
B. Condicionamiento de un sistema
29
M = A, aunque esta eleccion tiene escaso interes practico, pues equivale a resolver el
sistema:
Ax = b ;
Si M = A
M 1 Ax = M 1 b
A1 Ax = A1 b
x = A1 b
No obstante, esta idea nos proporciona una pista de como actuar: buscar matrices de
precondicionamiento parecidas a la matriz del sistema y faciles de invertir. Un ejemplo
clasico es el precondicionamiento diagonal que consiste en utilizar como matriz de precondicionamiento una matriz diagonal cuyos elementos no nulos coincidan con los elementos
diagonales de A. Este precondicionamiento es muy economico desde el punto de vista
computacional, pues:
A=
a11
a21
..
.
an1
a12 . . . a1n
a22 . . . a2n
.. , M =
..
.
.
an2 . . . ann
1/a11
0
...
0
1/a22 . . .
M 1 = .
..
.
.
.
0
a11 0 . . . 0
0 a22 . . . 0
..
..
..
.
.
.
0
0 . . . ann
0
0
..
. . . 1/ann
y solo a
nade 2n operaciones (divisiones) al proceso de calculo.
Sin embargo, hay que tomar algunas precauciones a la hora de precondicionar un sistema.
La mas importante es tener en cuenta que se puede destruir la estructura de la matriz del
sistema. Por ejemplo, si la matriz A es simetrica, la matriz M 1 A no tiene por que serlo,
o si la matriz A es definida positiva, la matriz M 1 A puede no serlo. En particular, si
se trabajo con metodos de resolucion de tipo gradiente se prefiere precondicionar de la
siguiente manera:
Ax = b
1
1
Mx = M
M
AM 1} |{z}
{z
|
| {z }b
P
Py = c
BIBLIOGRAFIA
30
Bibliografa
[1] O. Axelsson. Iterative Solution Methods. Ed. Cambridge University Press, 1996.
[2] O. Axelsson, V.A. Barker. Finite Element Solution of Boundary Value Problems.
Theory and Computations. Ed. Academic Press, 1984.
[3] R. L. Burden y J. D. Faires. Metodos Numericos (3a Edicion). Ed. Thomson, 2004.
[4] C. Conde y G. Winter. Metodos y algoritmos basicos del algebra numerica. Ed. Reverte, 1989.
[5] G. H. Golub y C. F. Van Loan. Matrix computations (III Ed.), 1996.
[6] G. H. Golub y J. M. Ortega. Scientific computing: an introduction with parallel
computing. Academic Press Inc., 1993.
[7] P.Lascaux y R. Theodor. Analyse numerique appliquee a lart de lingenieur (2 tomos).
Ed. Dunod, 2000.
[8] J.R. Shewchuk. An Introduction to the Conjugate Gradient Method Without the
Agonizing Pain. School of Computer Science. Carnegie Mellon University, 1994.