Anda di halaman 1dari 48

32

Universidad de la Habana
Facultad de Matemtica y Computacin
TRABAJO DE DIPLOMA
Estudio e Implementacin Amigable del
mtodo Gradiente Conjugado con el uso de
precondicionadores
AUTOR
Lida Gonzlez lvarez
TUTORES
Lic. Isidro Abell Ugalde
Msc. ngela M. Len Mecas.

Trabajo publicado en www.ilustrados.com
La mayor Comunidad de difusin del conocimiento
RESUMEN
La resolucin mediante mtodos numricos de aplicaciones cada vez ms
complejas en el rea de la ciencia y la tcnica ha trado como consecuencia la
necesidad creciente de resolver sistemas de ecuaciones lineales a gran escala,
provenientes de la discretizacin de los modelos matemticos de dichos
problemas. Con el objetivo de contar con herramientas eficientes y de fcil
manipulacin por el usuario se desarroll este trabajo.
Se realiz un estudio de los mtodos iterativos y se seleccion el mtodo del
gradiente conjugado por ser de gran efectividad en la resolucin de sistemas
dispersos de grandes dimensiones y adems porque la estructura de las
matrices que provienen de las aplicaciones, son frecuentemente simtricas y
definidas positivas. Como las matrices pueden tener un nmero de condicin
elevado, es decir estar mal condicionadas tambin se tuvo en cuenta el estudio
de tcnicas para precondicionar los sistemas.
Se implement una aplicacin de fcil manipulacin, proporcionando una
interfaz cmoda a los usuarios, con el objetivo de resolver sistemas de
ecuaciones lineales mediante el mtodo Gradiente Conjugado, dando la
posibilidad de precondicionar el sistema, para lo cual se programaron los
precondicionadores de Jacobi y Cholesky Incompleto. Se utiliz para esto el
paquete de software Matlab en su versin 6.5.
INDICE
TRABAJO DE DIPLOMA....................................................................................................................1
AUTOR.........................................................................................................................1
Lida Gonzlez lvarez......................................................................................................1
TUTORES.....................................................................................................................1
INTRODUCCIN
La necesidad de resolver sistemas de ecuaciones lineales (SEL) aparece en
una gran cantidad de problemas cientficos. Como ejemplos, podemos citar los
SEL que aparecen al resolver ecuaciones diferenciales usando mtodos de
discretizacin como son diferencias finitas y elementos finitos. Otras fuentes
frecuentes son problemas de aproximacin de funciones, problemas inversos,
etc.
Debido a la frecuencia con que problemas diversos conducen a la resolucin
de sistemas de ecuaciones lineales de grandes dimensiones y esparcidos, es
uno de los objetivos del presente trabajo realizar un estudio de los mtodos
iterativos para resolver los mismos, en particular el mtodo de Gradiente
Conjugado , el cual ha demostrado ser de los ms eficientes.
El desarrollo de una implementacin del mismo con una interfaz clara y
amigable es otra de nuestras metas as como la introduccin de los
precondicionadores para el caso de matrices mal condicionadas.
Este trabajo consta de 5 captulos distribuidos de la siguiente manera:
En el primero contiene resultados auxiliares sobre la teora de la existencia de
la solucin para SEL, as como mtodos de solucin. El segundo captulo
contempla lo referente a los mtodos iterativos para resolver sistemas de
ecuaciones lineales. El tercero aborda detalladamente el mtodo de gradiente
conjugado y el uso de los precondicionadores.
Las especificaciones sobre la aplicacin que se realiz se dan en el cuarto
capitulo de este trabajo y en el quinto se realiza una discusin de los resultados
numricos obtenidos al correr algunos ejemplos de sistema de ecuaciones
lineales provenientes de aplicaciones.
Finalmente aparecen las conclusiones y algunas recomendaciones para
trabajos futuros.
32
CAPTULO 1 Presentacin general del problema

En una gran cantidad de problemas de investigacin cientfica, al resolver los
modelos matemticos que los simulan, se emplean mtodos numricos de
discretizacin que conducen en algn momento a resolver sistemas de
ecuaciones lineales de menor o mayor tamao. La resolucin de un sistema de
ecuaciones lineales aparece tambin en procesos de optimizacin lineales o no
lineales, por ello resulta de gran importancia conocer cundo un sistema de
ecuaciones lineales tiene solucin nica, o infinitas soluciones, o sencillamente
no la tiene.
Un sistema de ecuaciones lineales es un conjunto de ecuaciones lineales que
podemos escribir de manera general como:
n m nm n n n
m m
m m
m m
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
+ + + +
+ + + +
+ + + +
+ + + +

3 3 2 2 1 1
3 3 33 2 32 1 31
2 2 3 23 2 22 1 21
1 1 3 13 2 12 1 11
3
Un sistema as denotado cuenta con n ecuaciones y m incgnitas, los
valores
ij
a
se llaman coeficientes del sistema, los
n
b
trminos independientes
del sistema y los
m
x
incgnitas del sistema. La forma matricial sera:

,
_

,
_

,
_


n m nm n n n
m
m
m
b
b
b
b
x
x
x
x
a a a a
a a a a
a a a a
a a a a
b Ax

3
2
1
3
2
1
3 2 1
3 33 32 31
2 23 22 21
1 13 12 11
Cuando resolvemos un sistema de ecuaciones lineales podemos distinguir 3
situaciones,
1. La matriz A es no singular (
0 ) det( A
) y tiene una solucin nica dada
por
b A x
1

.
2. La matriz A es singular y
) ( A Ran b
, entonces existen infinitas
soluciones.
3. La matriz A es singular y
) ( A Ran b
, entonces el sistema no tiene
solucin.
Los mtodos que se emplean para resolver sistemas de ecuaciones lineales
dependen en gran medida de la estructura de la matriz A, as por ejemplo:
diremos que una matriz es cuadrada si
n m
, es decir si tiene igual cantidad
de incgnitas y ecuaciones; es simtrica si
T
A A
y definida positiva si para
todo vector 0 x se verifica que
0 > Ax x
T
.
Los mtodos para la resolucin de sistemas lineales podemos dividirlos en 2
grupos: los directos y los iterativos.
Los mtodos directos despus de un nmero finito de pasos conducen a la
solucin exacta del problema si se evitaran los errores de redondeo, es decir
en una aritmtica exacta. Estos mtodos no son factibles para aplicarlos a
sistemas grandes (miles o decenas de miles de ecuaciones) pues requieren un
mayor nmero de operaciones y esto traera mayores errores de redondeo y
consecuentemente inestabilidad en la solucin, adems los requerimientos de
almacenamiento seran muy grandes.
Consideremos el problema a resolver
N x N
A b Ax , no singular y
N
b

con N grande, por ejemplo tomemos 000 250
1
N y 000 700
2
N , . Para el
mtodo de eliminacin de Gauss, mtodo directo estndar en la solucin de
sistemas lineales, se estima que se requiere un almacenamiento del orden
2
N ,
esto sera
10
10 * 25 , 6 para el caso de
1
N y
11
10 * 9 , 4 para el caso de
2
N . El
nmero de operaciones en punto flotante para este mismo mtodo se
considera que es de
3
3
8
N
, as para
1
N tendramos
16
10 * 17 , 4 y
17
10 * 15 , 9
para
2
N . Si tenemos una computadora que realiza
8
10
operaciones en punto
flotante por segundo, considerada rpida para el estndar actual, encontrar la
solucin del sistema con dimensin
1
N tardara ms de 13 aos corriendo a
tiempo completo, y para uno con dimensin
2
N tomara 291 aos.
Si el sistema surge por ejemplo, de la discretizacin de una ecuacin
diferencial, la matriz A tpicamente tiene grandes dimensiones y pocos valores
distintos de ceros, para resolver sistemas con estas caractersticas no es
factible utilizar mtodos directos, para ello entonces se utilizan los mtodos
iterativos a los cuales dedicar el prximo captulo.
2
CAPTULO 2 Mtodos Iterativos para resolver sistemas de ecuaciones
lineales
Muchos de los grandes problemas que se plantean habitualmente en la
industria y en la tcnica conducen a tener que resolver sistemas de
ecuaciones lineales muy grandes (miles o decenas de miles de ecuaciones e
incgnitas), donde las matrices aunque de gran dimensin, tienen pocos
componentes distintos de cero, tal es el caso de los problemas que surgen en
el anlisis y planificacin de sistemas electrnicos de generacin de transporte
de energa , en problemas de contorno para ecuaciones en derivadas parciales,
en anlisis de estructuras mecnicas mediante elementos finitos, etc.
Consideremos el problema a resolver
b Ax ( ) 1 . 2
N x N
A
no singular ,
N
b , N grande.
La aplicacin en estos casos de mtodos directos traera algunas dificultades
como: mayores requerimientos de almacenamiento y mayor nmero de
operaciones. Una forma ms clsica de resolver estos problemas de grandes
dimensiones son los mtodos iterativos.
2.1 Mtodos Iterativos
Mtodos Iterativos: Son aquellos que se basan en la construccin de una
sucesin de vectores, que bajo ciertas condiciones converja a la solucin
exacta, es decir partiendo de una aproximacin inicial de la solucin
0
x
,
generar una sucesin
, , ,
3 2 1
x x x
que converja a la solucin del sistema. El
clculo de estas aproximaciones a la solucin se realiza bsicamente mediante
Presentacin general del problema
productos matriz-vector lo cual requiere en muchos casos poco costo
computacional.
Los mtodos iterativos son de programacin sencilla pero la convergencia
puede ser lenta. stos se emplean rara vez para resolver problemas de
dimensiones pequeas ya que el tiempo requerido para lograr una precisin
suficiente excede al de las tcnicas directas.
Los mtodos iterativos se clasifican en mtodos estacionarios y no
estacionarios, los primeros, ms antiguos, simples y mejores de entender que
los segundos que son a su vez ms efectivos.
2.1.1 Mtodos Estacionarios
De manera general estos pueden expresarse como:

c Bx x
i i
+
+1

( ) 2 . 2
donde
( ) 2 . 2 ser equivalente a
( ) 1 . 2 . La eleccin particular de B (matriz de
iteracin) y c definirn cada mtodo, donde se tiene en cuenta la
descomposicin de la matriz A como sigue :
F E D A + + ,
7
Presentacin general del problema

,
_

nn
a
a
a
a
D
0 0 0 0
0 0 0
0 0 0
0 0 0
33
22
11

,
_

0
0 0
0 0 0
0 0 0 0
3 2 1
32 31
21

n n n
a a a
a a
a
E
y

,
_

0 0 0 0 0
0 0 0
0 0
0
3
2 23
1 13 12

n
n
n
a
a a
a a a
F
Mtodo de Jacobi:
Se elige ) (
1
A D I B

y
b D c
1

, a la matriz B la llamaremos en esto caso


matriz de Jacobi.
La expresin general del mtodo quedar entonces:

i
m
j
j i
ij
m
i
c x b x +

) (
) 1 ( ) (

) 3 . 2 (
donde

'

j i
j i
a
a
b
ii
ij
ij
, 0
,
( ) 4 . 2
y
j i
a
b
c
ii
i
i
,
( ) 5 . 2
8
Presentacin general del problema
Mtodo de Gauss-Seidel
Para este mtodo F E D B
1
) (

+ y ( ) b E D c
1
+ y llamaremos a B matriz
de Gauss-Seidel.
La expresin general del mtodo quedar entonces:
i
i
j
n
i j
m
j ij
m
j ij
m
i
c x b x b x + +

1
1 1
) 1 ( ) ( ) (
) ( ) (
( ) 6 . 2
ij
b
y
i
c
mantiene la expresin dada en
) 4 . 2 (
y
) 5 . 2 (
.
SOR (Mtodo de sobre relajacin sucesiva)
Este mtodo surge con el fin de acelerar la convergencia del mtodo de Gauss-
Seidel y para ello se introduce el parmetro 2 0 < < para relajar la
recurrencia en cada iteracin.
Su expresin general tiene la forma:

( )
) 1 (
1
1 1
) 1 ( ) ( ) (
1 ) ( ) (

+
,
_

+ +

m
i i
i
j
n
i j
m
j ij
m
j ij
m
i
x c x b x b x
( ) 7 . 2
en este caso ( ) ( ) ( ) F D E D B +

1
1
y b E D c
1
) (

+ , cuando
1 equivale al mtodo de Gauss-Seidel.
De manera general estos mtodos estacionarios convergen cuando la matriz
del sistema es de diagonal dominante y lo hacen lentamente.
9
Presentacin general del problema
2.1.2 Mtodos No Estacionarios
Se consideran los ms eficaces para resolver sistemas de ecuaciones lineales.
Estos mtodos difieren de los estacionarios en que las variables contienen
informacin que vara para cada iteracin.
Tambin se les llama mtodos de minimizacin
1
. La mayora de estas tcnicas
iterativas no estacionarias utilizan procesos de proyeccin, es decir extraen la
solucin aproximada del sistema de un subespacio
N
K
. Si m es la
dimensin de K , en general se imponen m restricciones para extraer tal
aproximacin que definirn a L como el subespacio de restricciones.
Sea
0
x
una aproximacin inicial de la solucin de
) 1 . 2 (
, con
0 0
Ax b r

residuo inicial y x la solucin de

0
r x A

) 8 . 2 (
Corrigiendo el valor de la aproximacin inicial
0
x
obtendremos la solucin
exacta del problema, esto quedara

( ) b r r b x A Ax x x A + + +
0 0 0 0

1
A los mtodos iterativos no estacionarios tambin se les conoce como mtodos de
minimizacin por lo siguiente:
Teorema: Sea A una matriz simtrica y definida positiva. La solucin x de la ecuacin
b Ax es el vector para el cual la forma cuadrtica x b Ax x x Q
T T

2
1
) ( alcanza su
mnimo, cuyo valor es: b A b
T 1
2
1

.
10
Presentacin general del problema
Para encontrar una solucin aproximada de
( ) 8 . 2 se sigue la siguiente idea:
Escoger una sucesin de subespacios
N
l
K ,
, 3 , 2 , 1 l
tal que


3 2 1
K K K

( ) 9 . 2
y aproximar x por
l l
K x
. Para calcular un vector aproximado a partir de
l
K

se necesita una base de
l
K
fcil de computar.
Considerando ( ) 9 . 2 tomaremos el conjunto de vectores base
, , ,
3 2 1
q q q
tal
que

{ } , 3 , 2 , 1 , ,
1
l K q q span
l l
( ) 10 . 2
Sea
l x N
l
Q la matriz que tiene como vectores columnas
, , ,
3 2 1
q q q

[ ]
l l
q q q Q , , ,
2 1


Entonces cualquier
l
K w
podr ser expresado como
l l
z Q w
, donde
l
l
z .
2.1.2.1 Estrategias para encontrar
l
z
Existen 4 estrategias a seguir para encontrar
l
z
, tal que
l l
z Q
sea una buena
aproximacin para x ,.
1- Aproximacin de Ritz-Galerkin:
Calcular
l
z
tal que
l l
K r
, es decir que:
11
Presentacin general del problema
l l
T
l
T
l l
T
l
z AQ Q r Q r Q
0
0
En este caso ser necesario resolver el sistema lineal

0
r Q z AQ Q
T
l l l
T
l

) 11 . 2 (
de dimensin l para obtener
l
z
.
2- Aproximacin al residual mnimo:
Determinar
l
l
z tal que
2
l
r
sea mnima sobre
l
K
, esto sera:
2
0
2
0
2
min r z AQ z AQ r r
l l
R z
l l l
l


) 12 . 2 (
,
aqu habra que resolver un problema de mnimos cuadrados,
0
r z AQ
l l

de
dimensin
l x N
, para obtener el resultado
l
z
.
3- Aproximacin de Petrov-Galerkin.
Encontrar
l
l
z tal que el residual
l l
AQz r r
0
sea ortogonal a algn otro
subespacio
l K
de dimensin l . Si las columnas de
l
Q son base de
l K
,
entonces en analoga con la aproximacin de Ritz-Galerkin obtendremos a
l
z

como solucin del sistema

0
r Q z AQ Q
T
l l l
T
l
( ) 13 . 2
4- Aproximacin del error mnimo
12
Presentacin general del problema
Calcular
l
l
z tal que el error
A
l l
z Q x
para una norma
A

adecuada, sea
mnimo.
En cada caso anterior se obtiene
l
z
, tal que
l
Qz w
es elemento de
l
K
. Estos
subespacios
l
K
pueden ser generados de diferentes formas, nosotros
estudiaremos los llamados subespacios de Krylov, los cuales poseen
propiedades notables, convenientes para la aproximacin de la solucin de
sistemas. A los mtodos que se basan en la proyeccin sobre estos
subespacios se les denomina Mtodos de los subespacios de Krylov, estos
aproximan
b A
1
por
b A p ) (
, donde
p
es un polinomio.
2.2 Subespacios de Krylov
De
) 8 . 2 (
podemos expresar a x como

0
1
r A x

,
) 14 . 2 (
y
1
A
a su vez podemos expresarla como un polinomio en A.
Recordemos que se define como polinomio minimal de una matriz (A) al
polinomio mnico (coeficiente principal=1) p de menor grado tal que
( ) 0 A p .
Se define entonces el polinomio minimal de A como
( )

d
j
j
j
m
0

, donde
representa los valores propios de A
1
, con
0
0

por ser A no singular,
1
Diremos que es un valor propio de A si y slo si 0 ) det( I A y ste se define
como sigue:
Definicin: Sea
N x N
C A
una matriz cuadrada de dimensin N , C , es un valor
propio de A si existe
N
C v
no nulo , tal que :
v Av
13
Presentacin general del problema
entonces
( )
n
d
j
j
j
I A A m
0
1
0 +

. Multiplicando sta ecuacin por


1
A

obtenemos
j
d
j
j
j
d
j
j
A A A


1
0
0
1
1
1
0
1

,
y como se observa
1
A
viene expresada como un polinomio en A, de aqu se
deduce que la solucin de
) 14 . 2 (
se puede escribir como

0
1
0 0
1
0
1
r A r A x
j
d
j
j


) 15 . 2 (

De la expresin anterior queda claro entonces que
{ }
0
1
0
2
0 0
, , , , r A r A Ar r span x
d
de aqu se obtiene la definicin de subespacio
de Krylov .
Definicin: Se define como l-simo subespacio de Krylov para un sistema de
ecuaciones lineales con residual inicial
0 0
Ax b r
a:
{ }
0
1
0
2
0 0 0
. , , , ) , ( r A r A Ar r span r A K
l
l


( ) 16 . 2
Los subespacios de Krylov cumplen con la condicin
( ) 9 . 2 , esto quiere decir
que

( ) ( ) ( )
0 3 0 2 0 1
, , , r A K r A K r A K

( ) 17 . 2
y v ser un vector propio asociado al valor propio .
14
Presentacin general del problema
Finalmente como la solucin x de
0
r x A
est contenida en
( )
0 1
, r A K
d

entonces podemos asegurar que la solucin
x
de b Ax cumple
) (
0 1 0
Ar K x x
d
+
.
Para encontrar una aproximacin de x a partir del subespacio de Krylov se
necesita una base de ste, para ello es comn utilizar los procesos de
ortogonalizacin de Arnoldi y Lanczos.
2.2.1 Mtodos de Arnoldi y Lanczos
La base que obviamente podemos obtener del subespacio K sera
, , ,
0
2
0 0
r A Ar r pero sta no es conveniente, si la obtenemos sin normalizar, el
valor de
0
r A
k
puede hacerse rpidamente muy grande o muy pequeo
dependiendo de la norma de A, normalizarla ocasiona frecuentemente que
sta tienda rpidamente al vector propio dominante de A y como resultado los
vectores sean linealmente dependientes.
Una base ortonormal podra resolver este problema, para esto se construir
una base ortonormal
, , ,
3 2 1
q q q
a partir del vector de secuencias
, , ,
0
2
0 0
r A Ar r
Sea
1
1
1
1
1
1
]
1

n
c
c
c
c
C AK K
1 0 0 0
0 0
1 0
0 0 1
0 0 0
3
2
1
1

, con C matriz de Hessenberg


superior,
QR K
la descomposicin ortogonal de K, entonces
C QR A Q R QR A QR AK K
T


) ( ) ( ) ( ) (
1 1 1
y de aqu H RCR AQ Q
T

1
. El
15
Presentacin general del problema
procedimiento que calcula
, , ,
3 2 1
q q q
y , ,
2 1
H H es el que llamamos Mtodo
de Arnoldi.
Si A es simtrica el mtodo se simplifica al ser H tridiagonal y simtrica,
denotemos por T a la matriz H tridiagonal y simtrica, quedando entonces
T AQ Q H
T
, donde

1
1
1
1
]
1

l l
l
l
T




1
1 1
) 18 . 2 (
Al mtodo que calcula
, , ,
3 2 1
q q q
y
, ,
2 1
T T
lo llamamos Mtodo de
Lanczos.
2.2.2 Mtodos de subespacios de Krylov
Siguiendo la segunda estrategia (aproximacin al residual mnimo), para el
clculo de
l
z
se llega al mtodo GMRES (Generalized Minimal Residual)
generalizacin del residuo mnimo el cual es aplicable para A no simtrica. Este
mtodo tiene alto costo computacional que va creciendo en cada iteracin pues
se necesitan todos los vectores bases
l
q q q , , ,
2 1

para encontrar el siguiente
1 + l
q .
Si A es simtrica, entonces se obtiene una variante de GMRES nombrada
MINRES (Minimum Residual ) Residual Mnimo. Para este caso la matriz no
necesita ser definida positiva y disminuye el costo computacional ya que al
calcular un vector base
l
q , slo se necesitan los 2 ltimos calculados.
16
Presentacin general del problema
Existen adems otros mtodos de los subespacios de Krylov como son: QMR
(Quasi-Minimal Residual), SYMMLQ (Symmetric LQ Method ), BICG
(Biconjugate Gradient).
Pero entre los ms antiguos y populares mtodos de los subespacios de
Krylov est el Mtodo de Gradiente Conjugado , que constituye el objetivo
principal de nuestro trabajo. ste se utiliza para resolver sistemas lineales
cuando la matriz A es simtrica y definida-positiva, un estudio ms profundo
del mismo se har en el captulo siguiente.
17
2
CAPTULO 3 Gradiente conjugado con precondicionamiento
El advenimiento de las computadoras electrnicas a mediados del siglo 20
estimul el rpido desarrollo de algoritmos numricos que pudieran aplicarse a
problemas computacionales de mucha ms dificultad que los que podan
resolverse hasta ese momento. Por ese entonces Magnus Hestenes y Eduard
Stiefel utilizaban 2 tipos de algoritmos para resolver sistemas de ecuaciones
lineales, uno tena la dificultad de requerir gran costo computacional (n
3
) donde
n es la cantidad de incgnitas en el problema y el otro algoritmo por su parte
tena la dificultad de requerir mucho tiempo para llegar a la solucin. Un
trabajo conjunto de estos dos cientficos en busca de perfeccionar estos
algoritmos condujo al desarrollo del mtodo Gradiente Conjugado en el ao
1952 .
Este mtodo es muy efectivo en la resolucin de sistemas de ecuaciones
cuando A es una matriz cuadrada, simtrica y definida-positiva.
Como se vio en el captulo anterior en el epgrafe 2.2.1, la transformacin
H AQ Q
T

( ) 1 . 3
convierte a la matriz A en una matriz de Hessenberg superior (H) y para el,
caso de A simtrica H ser una matriz tridiagonal (T) que se expresa como

1
1
1
1
]
1

l l
l
l
T




1
1 1
, la descomposicin de Cholesky de la matriz
l
T

podemos escribirla como

T
l l
B B T ) 2 . 3 (
con
l
B matriz triangular inferior, no singular y adems bidiagonal por ser T
tridiagonal, esto quedara
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
1
1
1
1
]
1

1
1
1
1
]
1


l
l
l l
T
l l l
a
b
b a
a b
b
a
B B T

1 1
1
1
, consecuentemente resolver el
sistema
l l
z T w
es extremadamente simple y de muy bajo costo.
Utilizando la aproximacin de Ritz-Galerkin para buscar el valor aproximado de
x
en
) , (
0
r A K
l
habr que buscar
l
l
z segn lo expresado en
) 11 . 2 (
, tal que
1
2
0 0
e r r Q z AQ Q
T
l l l
T
l

, sustituyendo en
) 2 . 3 (
quedar resolver
1
2
0
e r z T
l l

,
Se puede aprovechar la simplicidad con que pueden ser resueltos estos
sistemas, lo cual depende de una modificacin en el cmputo de
l l
z Q x
para
el caso del mtodo del gradiente conjugado, esto ser posible teniendo no solo
la norma de los residuos sino los residuos en si. Esta transformacin consiste
en diagonalizar T.
Siguiendo las declaraciones y notaciones dadas para
l
B w y
, enunciemos el
siguiente teorema:
Teorema 3.1
Existe una matriz diagonal
m
m m
d d diag D ) , , (
1
con todos los elementos
de la diagonal positivos tal que se cumple lo siguiente:
Para
m m m
D Q W
, tendremos
) (
1
2
m m m m m
T
m m m
T
m
diag D D Q Q D W W
) 3 . 3 (
y
2
2
0 1
r
Para
1
1
1
]
1


m m m
m D T D T
se obtiene
T
m m m
m B B T con
19
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
1
1
1
1
1
1
1
1
1
1
1
1
]
1

1
1
1
1
1
2
3
1
2
m
m
m
B


, y
) , , (
1 m m
diag
.
Las columnas de W difieren de las de
Q
solo por un factor ya que segn lo
declarado anteriormente
m m m
D Q W
con D matriz diagonal tal que
m
m m
d d diag D ) , , (
1

, si denotamos como i i
q w y
las i-simas
columnas W y Q respectivamente quedar
i i i
q d w
, lo cual quiere decir que
las primeras l columnas de W son una base ortogonal de
) , (
0
r A K
l
pero no
ortonormal.
De
) 2 . 3 (
se deduce
QT AQ
, haciendo uso de sta nueva expresin y las
obtenidas anteriormente podemos formular lo siguiente:
T
m m m m m
m
m m
m
m m m m m m m m m m
B B W T W T D D D Q D T Q D AQ AW
1 1 1 1
, si
definimos
T
m m m
B W Y

, entonces
m m m m m
B W AY
1

) 4 . 3 (
y
m
T
m m
W B Y
) 5 . 3 (
De acuerdo con la definicin de
m
Y
y
) 4 . 3 (
:
) , , (
1
1 1 1
m m m m m m m m m m
T
m m
T
m
diag B B B W Y AY Y


) 6 . 3 (
,
de aqu que quede en evidencia que los vectores columnas de
m
Y
son A-
ortogonales. Adems
20
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
1
1
1
1
1
1
1
1
1
1
1
1
]
1

m m
m m
B


1 1
1 1
1 1
1
1
3 2
2 1
1
1

) 7 . 3 (
y si
) , , , (
2 1 m m
w w w W
entonces
0 1
2
0
0
1 1 1
r
r
r
d q w

) 8 . 3 (
.
Evaluando sucesivamente
) 5 . 3 (
y
) 4 . 3 (
columna por columna junto con
) 3 . 3 (
,
) 6 . 3 (
y
) 7 . 3 (
obtenemos una recursin para el clculo de los valores , ,
2 1
w w y
, ,
2 1
y y .
El propsito final es calcular
l l
z Q x
, donde
1
2
0
e r z T
l l

para { } m l , , 1 ,
l
x

podemos calcularla teniendo los valores de , ,
2 1
w w y , ,
2 1
y y ya que

l l l l l l l
z W z D D Q x
1
con
l l l
z D z
1
.
) 9 . 3 (
Entonces
.
1 0 0 1
2
0
1
e r r e r D z D D T D z T
T
l l l l l l l l


Como
T
m m m m
B B T
y
m
B
es una matriz triangular inferior entonces para m l
T
l l l l
B B T
y de este modo
1
1 1
0 0
e B B r r z
l l
T
l
T
l

y por consiguiente
1
1 1
0 0 1
1 1
0 0
e B Y r r e B B W r r x
l l l
T
l l
T
l l
T
l

.
21
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
Los elementos
1 0 0
1 1
e r r B
T
l l

estn dados por
{ } l l j
j
, , 1 ,

, as finalmente
l
l
l
l
j
l j
j
j
l
y x y x

+
1
1
.
El mtodo gradiente conjugado quedar entonces:
Algoritmo 3.1
Como se mencion anteriormente los mtodos no estacionarios tambin son
conocidos como mtodos de minimizacin y esto de debe precisamente al
enfoque de optimizacin que les podemos dar.
3.1 Enfoque de Optimizacin.
Consideremos la funcin cuadrtica
c x b Ax x x f
T T
+
2
1
) ( ,
) 10 . 3 (
22
Dada la aproximacin
0
x
Calcular
0 0
Ax b r
Hacer:
0 1 1
r y w
1 l
mientras 0
l
w hacer

1
1 1 1
1
1
+
+

+

+ + +
+

l l
y w
Ay w w
y x x
Ay y
w w
l l l l
l l l l
l l l l
l
T
l
l
T
l
l

fin
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
donde
N x N
A
una matriz no singular, simtrica y definida positiva,
N
b
un
vector y c un escalar. Por definicin una funcin alcanza su valor mnimo
en el punto en que la derivada de sta se anula.
La expresin del gradiente de
) (x f
quedara:
b Ax x A x f
T
+
2
1
2
1
) (
'
,
) 11 . 3 (
Como se asumi A simtrica (
T
A A
),
) 11 . 3 (
se simplificara quedando:
b Ax x f ) (
'
.
) 12 . 3 (
Igualando a cero ) (
'
x f se obtiene la expresin del sistema de ecuaciones con
A como matriz del sistema, b vector independiente y x vector solucin, luego
podemos asegurar que buscando el mnimo de
) 10 . 3 (
encontraremos la
solucin del sistema ( b Ax ).
Una de las estrategias para minimizar
) (x f
es el mtodo de mximo descenso.
Tomando un punto
c
x
podemos decir que la funcin
f
decrece ms
rpidamente en la direccin opuesta al gradiente en el punto, es decir
c c
Ax b x f ) (
. Denominamos
c c
Ax b r
el residual en
c
x
(el residual nos
da idea de cuan distante estamos del valor correcto de b), si el residual es
distinto de cero, entonces existe un

tal que
) ( ) (
c c c
x f r x f < +
, definamos
tambin el vector de error
x x e
i i

, que es el vector que nos indica cuan lejos
estamos de la solucin.
Llamaremos Bsqueda en la recta al procedimiento que calcula el valor de


tal que minimice el valor de
f
a lo largo de la recta. En el caso del mtodo del
mximo descenso se sigue el siguiente anlisis

minimiza a
f
cuando la
derivada direccional ) (
1
x f
d
d

es igual a cero, esto seria:


23
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
0 ) ( ) ( ) (
0 1
'
1 1
'
1
r x f x
d
d
x f x f
d
d
T T


) 13 . 3 (
,
de manera general podemos plantear por lo visto hasta ahora que
i i
r x f ) (
'
,
haciendo uso de esto y
) 13 . 3 (
se puede arribar al valor de

como sigue:
( )
0 0
0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 1
0 1
) (
) ( ) (
0 ) ( ) (
0 )) ( (
0
0
Ar r
r r
Ar r r r
r Ar r Ax b
r Ar r Ax b
r r x A b
r Ax b
r r
T
T
T T
T T
T T
T
T
T


) 14 . 3 (
De manera general entonces podemos plantear que el mtodo del mximo
descenso busca la solucin de
) 12 . 3 (
teniendo en cuenta la siguiente
secuencia de iteracin
i i i i
d x x +
+1
donde

i
T
i
i
T
i
i
Ar r
r r


) 15 . 3 (
,
en analoga con
) 14 . 3 (
y
i i i
r x f d ) (
'
.
El mtodo de mximo descenso en ocasiones mantiene el paso en una
direccin ya tomada, con el objetivo de mejorar en este aspecto es que se llega
a plantear el mtodo del gradiente conjugado como se explica a continuacin.
Una primera idea consiste en escoger un conjunto de direcciones
{ } , ,
1 0
d d

ortogonales de manera que en cada direccin de bsqueda efectuemos un solo
paso del algoritmo. Siguiendo sta idea llegamos a que
1
e es ortogonal a
0
d

como se muestra en la figura 3.1
24
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
Figura 3.1 Mtodo de direcciones ortogonales
De manera general para cada paso buscaremos un punto de la siguiente
manera:

i i i i
d x x +
+1

) 16 . 3 (
Para buscar el valor de

, usaremos el hecho de que


i i
d e
+1
, tendremos
entonces:

i
T
i
i
T
i
i
i i i
T
i
i
T
i
d d
e d
por d e d
e d

+
+

) 15 . 3 ( 0 ) (
0
1
1

) 17 . 3 (
Esta expresin desafortunadamente no la podemos utilizar porque no se
conoce el valor de
i
e
,
si lo conociramos el problema ya estara resuelto.
Una segunda idea entonces nos conducira a escoger un conjunto de
direcciones
{ } , ,
1 0
d d
en vez de ortogonales, A-ortogonales, esto es, tales que
0
j i
Ad d
y tendramos como nuevo requerimiento que
i
e
sea A-ortogonal a
i
d
, sta nueva condicin de ortogonalidad es equivalente a buscar un punto de
d
0
x
0
e
1
x
1
x
25
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
mnimo a lo largo de la direccin
i
d
.De manera anloga a como se obtuvo en
el mtodo de mximo descenso
) 14 . 3 (
llegamos al valor de
i
T
i
i
T
i
Ad d
Ae d

.
Siguiendo el proceso de ortogonalizacin de Gram-Schmidt se obtiene el
conjunto direcciones
{ } , ,
1 0
d d
A-ortogonales segn la siguiente expresin:

+
1
0
i
k
k ik i i
d u d

) 18 . 3 (
,
con
1 1 0
, , ,
n
u u u
conjunto de vectores linealmente independientes y
j i
Ad d
Ad u
j
T
j
j
T
i
ij
> ,

) 19 . 3 (
Al igual que con mximo descenso se utilizan los residuales para construir la
direccin de bsqueda de la solucin. Todos los residuales son ortogonales
entre si, ya que cada uno de ellos es ortogonal al subespacio creado por los
vectores de bsqueda que le anteceden, de ah que
j i r r
j
T
i
, 0
.
Esta relacin entre los residuales nos lleva a simplificar
) 19 . 3 (
al obtener la
siguiente expresin para

'

caso otro en
j i r r
j i r r
a
Ad r
i
T
i
i
i
T
i
i
j
T
i
, 0
1 ,
1
, ,
1
1

, y consecuentemente

'

+ >
+


. 1 , 0
, 1 ,
1
1 1 1
j i
j i
Ad d
r r
a
i
T
i
i
T
i
i ij

Usando la notacin
1 ,

i i i

podemos simplificar ms aun siendo:
26
Mtodos Iterativos para resolver sistemas de ecuaciones lineales

1 1

i
T
i
i
T
i
i
r r
r r


) 20 . 3 (
Con el enfoque de optimizacin que se ha dado hasta aqu y algunas
consideraciones que se explicarn seguidamente, el mtodo de gradiente
conjugado quedar:

Algoritmo 3.2
Cuando los mtodos de mximo descenso y gradiente conjugado alcanzan el
punto de mnimo con la tolerancia deseada, el residual se aproxima a cero y al
evaluar las expresiones
) 15 . 3 (
o
) 20 . 3 (
en la iteracin siguiente puede
ocasionar una divisin por cero, esto indica que debemos parar cuando el
residual es cero.
27
new
T
new
r r
r d
Ax b r
i

0
0 0
0
mientras
max
i i < y
0
2
>
new
hacer
Ax b r
por divisible es i if
d x x
q d
Ad q
T
new

+

50

1 +
+


i i
d r d
r r
q r r
else
old
new
T
new
new old

Fin
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
Cada cierto nmero de pasos el valor del residual se actualiza como Ax b r
ya que la acumulacin de errores de redondeo en la formulacin recursiva
q r r
puede ocasionar que el residual tome valor cero incorrectamente.
3.2 Anlisis de Convergencia
Las propiedades de convergencia del Gradiente conjugado estn
estrechamente vinculadas a la distribucin de los valores propios de la matriz
A. De manera general podemos decir que converger rpidamente si los
valores propios de A estn agrupados cerca de 1 o si el nmero de condicin
sta prximo a 1, de no ser as puede converger lentamente o no converger.
Para el caso de matrices simtricas y definidas-positivas podemos acotar el
residual como sigue:
0
2
1
2
2
2
2
) (
1 ) (
r
A cond
A cond
r
l

,
_

,
donde
2
1
2
2
) (

A A A cond
denota el nmero de condicin de la matriz A.
Los mtodos iterativos se combinan con precondicionamiento con el fin de
alcanzar una convergencia ms rpida.
3.3 Precondicionamiento
Precondicionar un sistema consiste en transformar el sistema original
b Ax
) 20 . 3 (

en uno con la misma solucin, esto sera, en lugar de resolver
) 20 . 3 (

resolveramos el nuevo sistema
b M A M
1 1

) 21 . 3 (
,
tal que
A M
1
sea mejor condicionada que A, es decir que sus valores propios
estn agrupados cercanos a 1, asegurando as la convergencia del mtodo
iterativo empleado en su resolucin. A la matriz
1
M
le llamaremos
28
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
precondicionador de A. Las matrices M o M
-1
(segn el caso), se escogen
teniendo en cuenta las siguientes condiciones:
M
-1
este prxima a

A
-1
en algn sentido
Su clculo no sea muy costoso
Y el sistema
z My
sea mucho ms fcil de resolver que el sistema
original para cuando hay que calcular M.
An cuando M sea simtrica y definida positiva,
A M
1
puede no serlo. Esta
dificultad puede ser prevenida ya que para toda matriz simtrica y definida-
positiva M, existe una matriz E (no necesariamente nica) que tiene la
propiedad que
T
EE M
(E puede ser obtenida por ejemplo mediante la
factorizacin de Cholesky). Las matrices
A M
1
y
T
AE E
1
tienen los mismos
valores propios y por consiguiente igual nmero de condicin, denotemos por
v al vector propio de
A M
1
asociado al valor propio y entonces diremos
que
v E
T
es un vector propio de
T
AE E
1
con valor propio , sera:
v E Av M E Av E E E Av E v E AE E
T T T T T T

1 1 1 1
) ( ) )( ( .
El sistema original entonces lo transformaremos en:
) 22 . 3 ( ,
1 1
x E x b E x AE E
T T


,
donde
T
AE E
1
es simtrica y definida-positiva. A la expresin anterior se llega
modificando
) 21 . 3 (
como sigue:
x E x b, E x AE E
T 1 T 1









) (
) (
,
, ) ( ) (
1 1
1 1
1 1
1 1
1 1 1
1 1
b E x E AE E
b E x E E A E
E b E Ax E
b E E Ax E E
EE M b EE Ax EE
b M Ax M
T T
T T
T
T T
T T T
por miembros ambos ndo multiplica
por do sustituyen
29
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
EL proceso que se sigue para resolver el nuevo sistema
) 22 . 3 (
es el siguiente:
Como puede verse este procedimiento es equivalente al Algoritmo 3.2 dado
anteriormente para gradiente conjugado, sta vez aplicado al sistema (3.22).
Este tiene una caracterstica no atrayente ya que E debe ser calculada, esto se
resuelve con las sustituciones de variables
i
T
i i i
d E d r E r

1
y y usando
las igualdades y
1 1


M E E x E x
T
i
T
i
, derivndose el proceso
anterior en:
De sta forma se obtiene el Algoritmo que describe el mtodo de gradiente
conjugado con precondicionamiento, quedando expresado as:
30
i i i i
i
T
i
i
T
i
i
i
T
i i i
i i i i
i
T T
i
i
T
i
i
T
d r d
r r
r r
d AE E r r
d x x
d AE E d
r r
x AE E b E r d

1 1 1
1 1
1
1
1
1
1
0
1 1
0 0
+ + +
+ +
+

+
+


+

i i i i
i
T
i
i
T
i
i
i i i i
i i i i
i
T
i
i
T
i
i
d r M d
r M r
r M r
Ad r r
d x x
Ad d
r M r
r M d
Ax b r
1 1
1
1
1
1
1
1
1
1
1
1
0
1
0
0 0
+ +

+
+
+
+

new
T
new
r r
r M d
Ax b r
i

0
1
0 0
0
mientras
max
i i < y
0
2
>
new
hacer
1
50
1
+
+

i i
d r d
s r
r M s
q r r
else
Ax b r
por divisible es i if
d x x
q d
Ad q
old
new
T
new
new old
T
new

fin
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
Encontrar un buen precondicionador es un hecho decisivo al aplicar un mtodo
iterativo. A continuacin veremos algunas formas de encontrar M.
3.3.1 Estrategias de Precondicionamiento.
Una de las clasificaciones que se da a los precondicionadores es aquella que
los divide en algebraicos y multinivel. Los algebraicos dependen solo de la
estructura algebraica de la matriz A, tambin suelen llamarse a posteriori ya
que solo dependen de la matriz de coeficientes y no de los detalles del proceso
de construccin del sistema lineal. Ejemplos tpicos de los precondicionadores
algebraicos son las factorizaciones incompletas como Cholesky y LU, as
como escalado diagonal de la matriz.
Los precondicionadores multinivel son menos generales ya que dependen del
conocimiento del proceso que dio lugar al sistema, stos se califican como a
priori ya que dependen de la informacin que dio lugar a la matriz, ms que de
la matriz en si.
31
Mtodos Iterativos para resolver sistemas de ecuaciones lineales
El mayor rendimiento se consigue con los precondicionadores multinivel, ya
que muchos de ellos consiguen una tasa de convergencia ptima
Dentro de los precondicionadores algebraicos el ms simple consiste en la
matriz diagonal cuyos elementos de la diagonal son los mismos que la matriz
A, al proceso de aplicar este precondicionador se conoce como
Precondicionador diagonal o Precondicionador de Jacobi. Evidentemente
una matriz diagonal es muy fcil de invertir pero desafortunadamente estos
precondicionadores con frecuencia no resultan buenos en la aceleracin de la
convergencia.
Varias clases de precondicionadores estn basados en factorizaciones
incompletas de la matriz del sistema de la forma LU A con L matriz triangular
inferior y U triangular superior. Tal es el caso por ejemplo del precondicionador
de Cholesky Incompleto.
La factorizacin de Cholesky es una tcnica para factorizar una matriz A de la
forma
T
LL
, donde L es una matriz triangular inferior, sta es solo vlida para
matrices simtricas y definidas positivas. La factorizacin incompleta de
Cholesky es una variante que aproxima por
T
L L

, donde
L

tendr la misma
estructura que A en cuanto a elementos distintos de cero.
Los precondicionadores de Cholesky Incompleto y Jacobi sern los que
implementaremos en este trabajo.
32
2
CAPTULO 4 Implementacin
Cuando se escribe un programa, un sistema, una coleccin de rutinas, se debe
tener en cuenta que otra persona usar el sistema por lo que es necesario que
la interaccin con ese usuario final sea amigable.
En este trabajo se desarroll una aplicacin con ayuda de una interfaz
interactiva que permite resolver sistemas de ecuaciones lineales con matrices
simtricas y definidas positivas, mediante el mtodo Gradiente conjugado.
La aplicacin cuenta con una ventana principal para la eleccin del mtodo a
utilizar, en este caso solo sta programado el de gradiente conjugado, se
contempla la eleccin de otro mtodo para una versin futura. Cuenta adems
con 2 ventanas para la entrada de datos, una para los datos principales (Figura
4.1) y otra para datos adicionales, la de datos principales contiene lo referente
a la matriz del sistema y el vector de los trminos independiente que son lo
mnimo que se requiere para aplicar un mtodo de resolucin de sistemas
lineales, en sta tambin existe un men con las opciones de ver el nmero de
condicin de la matriz y adems ver una imagen que muestra la estructura de
la matriz.
En ocasiones conocemos la estructura de la matriz y resulta muy conveniente
tener una funcin que efecte el producto de sta por un vector en lugar de
almacenarla en memoria, sta es la razn por la que para entrar la matriz del
sistema brindamos las opciones de localizar dicha funcin o el fichero que
contiene la matriz. Los datos que se carga de fichero, ya sean en este caso la
matriz del sistema o el vector independiente deben estar almacenados en un
archivo de datos de matlab (de extensin mat) y adems estar nombrados
como A y b respectivamente.
Gradiente Conjugado con Precondicionamiento
Figura 4.1 Vista de la ventana de entrada de datos principal
La ventana de datos adicionales (Figura 4.2) se divide en 2 grupos, uno para la
entrada de datos ms comunes y otro para datos ms avanzados, en el primer
grupo se encuentran las condiciones de parada como cantidad de iteraciones o
tolerancia (en este caso la habitual para el mtodo que es con respecto a la
norma 2 de los residuales
2
1
2
i
i
r
r
), la aproximacin inicial de la solucin y la
matriz de precondicionamiento que se desee utilizar. El segundo apartado de
datos avanzados contempla la cantidad de pasos del algoritmo que se deben
esperar para corregir el valor del residual.
Cada uno de estos parmetros tiene un valor por defecto que se muestra en el
edit correspondiente.
34
Gradiente Conjugado con Precondicionamiento
Figura 4.2 Vista de la ventana de entrada de datos adicionales
Para la programacin de la funcin se aprovech el cdigo de la funcin pcg de
matlab, programada de manera bastante eficiente, a sta se le adicion como
parmetro el valor para la correccin del residual y se introdujo el cambio
respectivo a la funcin resultante. Las funciones iterapp, itermsg e iterchk
programadas conjuntamente con la funcin pcg fueron utilizadas tambin, la
primera para efectuar el producto de la matriz por un vector mediante la funcin
definida para esto, la segunda para dar informacin sobre el fin de la ejecucin
del mtodo gradiente conjugado y la ltima para determinar si se entr la matriz
explcitamente o una funcin para operar con ella.
Para precondicionar el sistema se tuvo en cuenta el precondicionador de
Jacobi y el de Cholesky incompleto , para este ltimo se utiliz la funcin
cholinc de matlab a la cual se le pasa como parmetro la matriz y una
tolerancia necesaria para la descomposicin incompleta de sta, el
precondicionador de Jacobi si se program para la aplicacin.
En la ventana de datos principal como ya se mencion se ofrecen las opciones
de ver la estructura de la matriz as como su nmero de condicin, para esto
35
Gradiente Conjugado con Precondicionamiento
nos apoyamos en las funciones spy para el primer caso y para el segundo
cond o condest segn la matriz fuera o no sparse
1
La ventana que muestra la solucin alcanzada durante la ejecucin del mtodo
tiene la opcin de ver un grfico de tolerancia contra cantidad de iteraciones
que nos da idea de cual fue el comportamiento del mtodo, esto se logr con la
funcin plot de matlab.
La aplicacin se desarroll apoyndose en la interfaz grafica de usuario (GUI)
de la versin 6.5 del paquete de software MatLab (Matrix Laboratory).
MatLab es un programa interactivo para clculo numrico y tratamiento de
datos. Contiene muchas herramientas y utilidades que permiten adems
diversas funcionalidades, como la presentacin grfica en 2 y 3 dimensiones,
contando tambin con un potente lenguaje de programacin.
Los GUI nos permiten crear botones, mens, edit y otros objetos para el
intercambio de informacin con el usuario. La primera vez que se crea o se
corre un GUI se crean 2 tipos de ficheros uno de extensin m y uno de
extensin fig, el .fig contiene una descripcin completa del diseo de la figura y
las componentes de la interfaz grfica (botones, mens, etc) y el .m contiene el
conjunto de funciones asociadas a cada objeto que son las que se programan
para responder a cada accin que se realice sobre stos.
1
Sparse es una funcin de matlab que almacena los datos en una estructura diferente con
el objetivo de ahorrar memoria, esta es de gran utilidad cuando las matrices tiene gran
cantidad de ceros, por ejemplo si denotamos por A a la matriz identidad de dimensin 1000
, A requiere 8000000 bytes para su almacenamiento en memoria y si la convertimos en
sparse por medio de la instruccin A=sparse(A) entonces requiere solo 16004 bytes,
mucho menos que de la otra forma.
36
2
CAPITULO 5 Resultados de la Aplicacin
Para mostrar algunos resultados se tomar una muestra de sistemas con
matrices de caractersticas diferentes.
Caso1:
Este primer caso cuenta con una matriz que tiene un nmero de condicin
3.058770*10
5
, por lo que podemos considerarla mal condicionada. La figura 1.1
muestra un esbozo de la estructura de sta. De los 3844 elementos que tiene
solo 1306 son distintos de cero.
Figura 5.1 Esbozo de la estructura de la matriz Caso1
Sin alterar el valor de tolerancia por defecto (10
-6
) se necesitan 120 iteraciones
para alcanzar la convergencia, esto sin utilizar precondicionamiento, utilizando
el precondicionador de Jacobi se logra converger en 81 iteraciones y con el de
Cholesky Incompleto con tolerancia 1 se necesitan 93 iteraciones (Figuras 5.2
a y b)
Implementacin

(a) (b)
Figura 5.2 Gradiente Conjugado con Precondicionamiento de Jacobi (a) y Cholesky
Incompleto con tolerancia 1 (b) aplicado a la matriz caso1.
Ambos precondicionadores cumplieron la funcin de mejorar la condicin de la
matriz original y con ello lograr acelerar la convergencia en cierta medida, otra
clase de precondicionador quizs sera ms efectivo.
Caso 2:
La nueva matriz proviene de la discretizacin por el mtodo de Elementos
Finitos de una ecuacin de Poisson , utilizando una malla cuadrada de 10x10
nodos.
La ecuacin de Poisson puede modelar diferentes procesos, como distribucin
estacionaria del calor, ecuacin esttica del movimiento, etc.
La matriz tiene 10000 elementos de los cuales slo 460 son distintos de cero y
un nmero de condicin 69,86337 ms pequeo que en el caso anterior (Figura
5.3)
38
Implementacin
Figura 5.3 Estructura de la matriz caso2
En este caso la convergencia se alcanza en 27 iteraciones para el caso del
sistema precondicionado y sin precondicionar, es decir no mejora con el
precondicionamiento.
Caso 3:
Esta matriz se obtiene al aplicar el mtodo de elementos finitos a una ecuacin
elptica bidimensional, tomando como elemento de discretizacin un
cuadriltero de 8 nodos.
Es una matriz sparse de dimensin 133, de sus 17689 elementos 1789 son
distintos de cero y su nmero de condicin es 3996 (Figura 5.4).
39
Implementacin
Figura 5.4 Estructura de la matriz caso 3
El mtodo de gradiente conjugado sin precondicionar aplicado al sistema
anterior requiere efectuar 101 iteraciones, reducindose a 48 con el
precondicionador de Cholesky incompleto y a 28 con el precondicionador de
Jacobi (Figura 5.5).

(a) (b)
Figura 5.5 Gradiente Conjugado con Precondicionamiento de Jacobi (a) y Cholesky
Incompleto con tolerancia 1 (b) aplicado a la matriz caso1.
40
Implementacin
En este caso es notable la mejora usando precondicionamiento.
Caso 4:
En este caso la matriz proviene de la aplicacin del mtodo de diferencias
finitas a un problema de fronteras para una ecuacin de Laplace bidimensional
con coeficientes discontinuos. La matriz es de dimensin 49, con nmero de
condicin bien pequeo 1,5 y de sus 2401 elementos solo 145 son distintos de
cero (Ver Figura 5.6).

Figura 5.6 Estructura de la matriz caso 4.
La convergencia se alcanz para el caso precondicionado en 4 iteraciones e
igual nmero utilizando el precondicionador de Cholesky Incompleto, para el
caso del precondicionador de Jacobi disminuye en una iteracin. (Ver Figura
5.7)
41
Implementacin

(a) (b)
Figura 5.7 Gradiente Conjugado con precondicionamiento de Jacobi (a) y
precondicionamiento de Cholesky Incompleto (b).
42
Resultados de la Aplicacin
CONCLUSIONES
Se estudi con profundidad el mtodo Gradiente Conjugado y el uso de los
precondicionadores para el caso de matrices mal condicionadas.
Se desarroll una aplicacin con una interfaz fcil de manipular que incluye la
mejora de la implementacin del Gradiente Conjugado con que cuenta MatLab,
la implementacin de los precondicionadores de Jacobi y Cholesky Incompleto.
Se realiz una experimentacin numrica (4 casos) para comparar los mtodos
citados, utilizando matrices provenientes de diferentes aplicaciones. Para todos
los casos el precondicionador de Jacobi fue ms efectivo, en el primero el
sistema est muy mal condicionado y se nota la mejora al aplicar
precondicionador , aunque quizs otra clase de precondicionador resulte ms
efectiva; el segundo caso es de menor condicin y no hubo mejoras al
precondicionar. En el caso 3 es ms notable la mejora en la convergencia al
precondicionar el sistema, su nmero de condicin tambin es bastante
elevado aunque no como el caso1. En el ltimo caso la matriz est muy bien
condicionada y se alcanza la convergencia en solo 4 pasos, el
precondicionador de Jacobi redujo la cantidad de iteraciones a 3, no as con
Cholesky incompleto que tard 4 iteraciones en converger.
43
RECOMENDACIONES
El trabajo presentado se considera concluido en su primera versin. En una
revisin posterior debern tenerse en cuenta los siguientes aspectos.
1- Incluir la implementacin de los restantes mtodos iterativos no
estacionarios que aparecen en la ventana principal de la aplicacin,
agregando si se desea algn otro mtodo que no este aqu incluido.
2- Incluir otras tcnicas de precondicionamiento, de mayor complejidad,
podran ser algunas multinivel.
3- Ampliar la experimentacin numrica.
44
BIBLIOGRAFA
[1] Bunse-Gerstner A, A short introduction to iterative methods for large
linear systems, Zentrum fuer Technomathematik, Fachbereich
Mathematik/Informatik, Universitaet Bremen, Germany, 2003.
[2] de la Fuente OConnor Jos L., Tecnologas Computacionales para
sistemas de ecuaciones, optimizacin lineal y entera, Editorial Revert,
1993.Duff, S.I.; Erisman, A.M. and Reid J.K. Direct Methods for Sparse.
Matrices. Ed. Oxford Science publications. 1986.
[3] Golub Gene H., Van Loan Charles F., Matrix Computations second
edition , The Johns Hopkins University Press, Baltimore and London,
1990.
[4] Hestenes Magnus R. and Eduard Stiefel, Methods of Conjugate
Gradients for Solving Linear Systems, J. Res. Natl. Bur. Stand.49,409-
436, 1952.
[5] Jones Mark T, An Improve Incomplete Cholesky Factorization, Argonne
National Laboratory, 1992.
[6] Latsis Symposium, Iterative Solvers for Large Linear Systems, ETH
Zurich, 2002.
[7] Lawson, Terry. Algebra Linear.Ed. Edgard-Blcher LTDA. 1996.
[8] MatLab, The Language of Technical Computing Versin 6.5
[9] Meurant Grard, Numerical Experiments with Algebraic Multilevel
Preconditioners, Electronic Transactions on Numerical Analysis, Volume
12, 2001.
[10] Saad Yousef, Iterative Methods for Sparse Linear Systems, Second
edition, Copyright , 2000.
45
[11] Shewchuk Jonathan R, An Introduction to the Conjugate Gradient Method
Without the Agonizing Pain, School of Computer Science Carnegie Mellon
University, 1994.
Datos del Autor
Licenciada en Ciencia de la Computacin. Universidad de la Habana, 2003
Profesor Instructor de la Universidad de las Ciencias Informticas.
Email : lida@uci.cu
46

Anda mungkin juga menyukai