23.10.2014 Views

resolución de sistemas de ecuaciones lineales tipo sparse

resolución de sistemas de ecuaciones lineales tipo sparse

resolución de sistemas de ecuaciones lineales tipo sparse

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Segones Jorna<strong>de</strong>s sobre Mèto<strong>de</strong>s Numèrics en<br />

Ciències Aplica<strong>de</strong>s i Enginyería<br />

VALL DE NÚRIA 2003<br />

Laboratori <strong>de</strong> Càlcul Numèric (LaCàN)<br />

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES TIPO<br />

SPARSE: LA ESTRATEGIA RPK<br />

Gustavo Montero * , Rafael Montenegro * , José María Escobar * y Eduardo Rodríguez *<br />

* Instituto <strong>de</strong> Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería,<br />

Universitad <strong>de</strong> Las Palmas <strong>de</strong> Gran Canaria,<br />

Edificio Instituto Polivalente, Campus Universitario <strong>de</strong> Tafira, 35017 - Las Palmas <strong>de</strong> Gran Canaria<br />

e-mail: gustavo@dma.ulpgc.es<br />

Palabras clave: Métodos iterativos, Reor<strong>de</strong>nación, Precondicionamiento, Subespacios <strong>de</strong><br />

Krylov.<br />

Resumen. Se presenta una visión general <strong>de</strong> técnicas avanzadas para la resolución <strong>de</strong> gran<strong>de</strong>s<br />

<strong>sistemas</strong> <strong>de</strong> <strong>ecuaciones</strong> <strong>lineales</strong> con matriz hueca (<strong>sparse</strong>). En primer lugar se introducen<br />

diferentes algoritmos <strong>de</strong> reor<strong>de</strong>nación orientados a mejorar el efecto <strong>de</strong>l precondicionamiento<br />

<strong>de</strong> un sistema. Seguidamente, se <strong>de</strong>fine el concepto <strong>de</strong> precondicionamiento y se formulan<br />

algunos <strong>de</strong> los precondicionadores más usados en la actualidad, <strong>de</strong>stacando los <strong>de</strong>sarrollados<br />

recientemente basándose en la inversa aproximada <strong>de</strong> una matriz. Por otro lado, se consi<strong>de</strong>ran<br />

algunos métodos iterativos basados en los subespacios <strong>de</strong> Krylov para la resolución <strong>de</strong><br />

<strong>sistemas</strong> <strong>de</strong> <strong>ecuaciones</strong> <strong>lineales</strong>. Para el caso simétrico se propone el Gradiente Conjugado,<br />

mientras que para el no simétrico, existen varias alternativas que se pue<strong>de</strong>n clasificar en tres<br />

gran<strong>de</strong>s familias <strong>de</strong> métodos, los <strong>de</strong> ortogonalización, los <strong>de</strong> biortogonalización y los basados<br />

en la Ecuación Normal. Esta estrategia <strong>de</strong> resolución (RPK), que combina las tres técnicas<br />

anteriores, parece la más eficiente <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista computacional como muestran los<br />

experimentos numéricos aquí presentados.


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

1. INTRODUCCIÓN<br />

Se plantea la resolución <strong>de</strong> un sistema <strong>de</strong> <strong>ecuaciones</strong> <strong>de</strong> la forma,<br />

Ax = b (1)<br />

siendo A <strong>sparse</strong>, <strong>de</strong> or<strong>de</strong>n elevado y no singular. La primera cuestión a plantear es si conviene<br />

una resolución mediante un método directo o uno iterativo. La principal <strong>de</strong>sventaja <strong>de</strong> los<br />

directos frente a los iterativos es que los errores <strong>de</strong> redon<strong>de</strong>o se acumulan durante el proceso,<br />

a<strong>de</strong>más <strong>de</strong> requerir mayor espacio <strong>de</strong> memoria <strong>de</strong>bido al efecto fill-in. Por otro lado, en procesos<br />

evolutivos don<strong>de</strong> se tienen que resolver diversos <strong>sistemas</strong> <strong>de</strong>l mismo <strong>tipo</strong>, los métodos iterativos<br />

pue<strong>de</strong>n aprovechar, como aproximación inicial, la solución obtenida en el paso <strong>de</strong> tiempo<br />

anterior. Todo ello hace que actualmente, en general, se opte por la resolución iterativa.<br />

Las técnicas <strong>de</strong> reor<strong>de</strong>nación, que se aplicaban fundamentalmente en la resolución <strong>de</strong> <strong>sistemas</strong><br />

por métodos directos y que están basadas en la teoría <strong>de</strong> grafos, proporcionan matrices con<br />

ancho <strong>de</strong> banda o perfil menor, lo que reduce, en la resolución por métodos directos, el coste<br />

<strong>de</strong> almacenamiento en la factorización y, en cambio, son utilizadas en los métodos iterativos<br />

para mejorar el efecto <strong>de</strong>l precondicionamiento (distintas formas <strong>de</strong> reor<strong>de</strong>nación para diversos<br />

métodos <strong>de</strong> Krylov pue<strong>de</strong>n verse en [2, 5, 9, 10, 23, 24, 25, 26])<br />

Por otro lado, las técnicas <strong>de</strong> precondicionamiento mejoran sensiblemente la convergencia<br />

<strong>de</strong> los métodos iterativos. A<strong>de</strong>más <strong>de</strong> presentar las distintas formas <strong>de</strong> precondicionamiento,<br />

por la izquierda, por la <strong>de</strong>recha y por ambos lados, se estudian algunos <strong>tipo</strong>s <strong>de</strong> precondicionadores,<br />

Diagonal, el SSOR, el ILUT, un caso particular <strong>de</strong> éste, el ILU(0), y, por último, el<br />

<strong>de</strong> la Inversa Aproximada <strong>sparse</strong> y el <strong>de</strong> estructura Diagonal, <strong>de</strong>nominada precondicionador<br />

Diagonal Óptimo. Otros <strong>tipo</strong>s <strong>de</strong> precondicionadores han sido propuestos en los últimos años<br />

(ver por ejemplo [7, 29, 39]).<br />

El tercer lugar se estudian las tres gran<strong>de</strong>s familias <strong>de</strong> métodos <strong>de</strong> Krylov (ver [28, 30]):<br />

métodos <strong>de</strong> ortogonalización, los <strong>de</strong> biortogonalización y los basados en la ecuación normal.<br />

Para el caso particular <strong>de</strong> <strong>sistemas</strong> simétricos se estudia el método <strong>de</strong>l Gradiente Conjugado<br />

[18], basado en el método <strong>de</strong> ortogonalización <strong>de</strong> Lanczos [22], que es una simplificación <strong>de</strong>l<br />

algoritmo <strong>de</strong> Arnoldi para <strong>sistemas</strong> simétricos.<br />

Dentro <strong>de</strong> los métodos <strong>de</strong> ortogonalización orientados a <strong>sistemas</strong> no simétricos, que utilizan<br />

para su implementación el algoritmo <strong>de</strong> ortogonalización <strong>de</strong> Arnoldi [1], se estudia el GMRES<br />

(Generalized Minimum Residual Method) [33]. (Distintas versiones <strong>de</strong> este algoritmo pue<strong>de</strong>n<br />

verse en [16, 20, 21, 31, 37]).<br />

De entre los métodos basados en el algoritmo <strong>de</strong> biortogonalización <strong>de</strong> Lanczos se estudian<br />

los métodos Bi-CGSTAB (Biconjugate Gradient Stabilized) [36] y QMRCGSTAB [6].<br />

Por último, <strong>de</strong> los basados en la Ecuación Normal, presentamos el LSQR (Least-square QR)<br />

[32].<br />

2. RENUMERACIÓN<br />

Las técnicas <strong>de</strong> reor<strong>de</strong>nación, que se aplican fundamentalmente en la resolución <strong>de</strong> <strong>sistemas</strong><br />

<strong>de</strong> <strong>ecuaciones</strong> <strong>lineales</strong> por métodos directos, están basadas en la teoría <strong>de</strong> grafos y proporcionan<br />

2


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

una nueva matriz con un ancho <strong>de</strong> banda o pérfil menor, reduciendo el coste <strong>de</strong> almacenamiento<br />

y don<strong>de</strong> el efecto <strong>de</strong> relleno que se produce en la factorización queda disminuido. El objetivo<br />

que se persigue al aplicar estas técnicas a los algoritmos que hemos estudiado es conseguir<br />

que la factorización incompleta sea más cercana a la factorización completa, para que la matriz<br />

<strong>de</strong> precondicionamiento se asemeje lo más posible a la matriz <strong>de</strong>l sistema inicial A, lo que<br />

supone teóricamente, un mejor precondicionador, como reflejan los resultados obtenidos en los<br />

experimentos numéricos. Efectos similares se pue<strong>de</strong>n exten<strong>de</strong>r al precondicionador SSOR ya<br />

que es otra aproximación <strong>de</strong> la factorización <strong>de</strong> A.<br />

La reor<strong>de</strong>nación no afecta al almacenamiento <strong>de</strong> la matriz, ya que el número <strong>de</strong> elementos<br />

no nulos almacenados <strong>de</strong> forma compacta, se conserva aunque ocupen posiciones distinstas.<br />

Otro objetivo es investigar si la reor<strong>de</strong>nación reduce la cantidad <strong>de</strong> entradas en el precondicionador<br />

SPAI y si su uso mejora la convergencia <strong>de</strong>l método iterativo.<br />

Sea P la matriz <strong>de</strong> permutación asociada a un algoritmo <strong>de</strong> reor<strong>de</strong>nación. (P T AP ) −1 =<br />

P T A −1 P , es <strong>de</strong>cir, la inversa <strong>de</strong> la matriz reor<strong>de</strong>nada es la reor<strong>de</strong>nada <strong>de</strong> la matriz inversa.<br />

Entonces al reor<strong>de</strong>nar una matriz, su inversa aproximada <strong>de</strong>be ten<strong>de</strong>r a la inversa reor<strong>de</strong>nada.<br />

Si la tolerancia <strong>de</strong> la inversa aproximada está dada por ε, en el subespacio S ⊂ M n (R),<br />

mín ∥ M ′ P T AP − I ∥ M ′ ∈P T SP<br />

F<br />

=<br />

mín ‖MA − I‖<br />

M∈S<br />

F = ‖NA − I‖ F < ε (2)<br />

∥<br />

mín<br />

M ′ ∈P T SP<br />

∥ P M ′ P T A − I ∥ ∥<br />

F<br />

= mín<br />

M∈S<br />

‖MA − I‖ < ε (3)<br />

Sea S ′ un subespacio <strong>de</strong> M n (R) correspondiente al mismo número <strong>de</strong> entradas no nulas que S,<br />

don<strong>de</strong> la inversa aproximada óptima es obtienida para dicho número <strong>de</strong> entradas no nulas. Cabe<br />

<strong>de</strong>stacar, también, que el número <strong>de</strong> entradas no nulas en S es el mismo que el <strong>de</strong> P T SP . En<br />

este caso obtenemos,<br />

∥ N ′ P T AP − I ∥ ∥<br />

F<br />

= mín<br />

M ′ ∈S ′ ∥ ∥M ′ P T AP − I ∥ ∥<br />

F<br />

≤<br />

mín ∥ M ′ P T AP − I ∥ M ′ ∈P T SP<br />

F<br />

< ε (4)<br />

Evi<strong>de</strong>ntemente, el número <strong>de</strong> entradas no nulas necesarias en S ′ será menor o igual que el<br />

número <strong>de</strong> entradas no nulas en P T SP y en S. Concluimos que la reor<strong>de</strong>nación reduce la<br />

cantidad <strong>de</strong> entradas no nulas en la inversa aproximada para una tolerancia dada ε, o, al menos,<br />

no lo aumenta.<br />

Debido a los resultados dados en (4), los precondicionadores <strong>tipo</strong> inversa aproximada reor<strong>de</strong>nados<br />

adquieren mejores propieda<strong>de</strong>s <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong> su utilización para mejorar<br />

la convergencia <strong>de</strong> los métodos iterativos. La cercanía <strong>de</strong>l número <strong>de</strong> condición <strong>de</strong> M ′ P T AP a<br />

1 se caracteriza por,<br />

K 2 (M ′ P T AP ) ≤ 1 + ∥ ∥ M ′ P T AP − I ∥ ∥<br />

2<br />

1 − ‖M ′ P T AP − I‖ 2<br />

(5)<br />

La <strong>de</strong>sviación <strong>de</strong> la normalidad <strong>de</strong> (M ′ P T AP ) está acotada por,<br />

1<br />

n∑<br />

(|λ k | − σ k ) 2 ≤ 2 ∥ M ′ P T AP ∥ 2<br />

n<br />

n<br />

(1 − σ F n) (6)<br />

k=1<br />

3


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

siendo {λ k } n k=1 , {σ k} n k=1 los autovalores y valores singulares <strong>de</strong> P T AP M ′ (en secuencia <strong>de</strong><br />

módulos <strong>de</strong>creciente). Finalmente, la agrupación <strong>de</strong> los autovalores y valores singulares estará<br />

dada por,<br />

n∑<br />

(1 − σ k ) 2 ≤ ∥ M ′ P T AP − I ∥ 2 (7)<br />

F<br />

k=1<br />

n∑<br />

(1 − λ k ) 2 ≤ ∥ M ′ P T AP − I ∥ 2 (8)<br />

F<br />

k=1<br />

En los experimentos númericos, las técnicas que se han adaptado al esquema <strong>de</strong> almacenamiento<br />

<strong>de</strong>scrito, son el algoritmo <strong>de</strong> grado mínimo (MDG, Mínimum Degree) propuesto por<br />

George y Liu [14], el algoritmo inverso <strong>de</strong> Cuthill-Mckee (RCM, Reverse Cuthill-Mckee) [13]<br />

propuesto por George para mejorar el algoritmo <strong>de</strong> Cuthill-Mckee [8] y el algoritmo <strong>de</strong>l mínimo<br />

vecino (MN, Minimum Neighboring) [9], que es una variante <strong>de</strong>l MDG.<br />

2.1. Algoritmo <strong>de</strong> Grado Mínimo<br />

Este algoritmo se usa para matrices con estructura <strong>sparse</strong> simétrica. Consiste en hacer una<br />

renumeración <strong>de</strong> los nodos en or<strong>de</strong>n creciente <strong>de</strong> sus grados respectivos (conexiones <strong>de</strong> dicho<br />

nodo en el grafo asociado). Los nodos <strong>de</strong> mayor grado originarán en teoría, un mayor fill-in. La<br />

i<strong>de</strong>a es renumerarlos al final para evitar el incremento <strong>de</strong>l fill-in durante el proceso.<br />

ALGORITMO MDG<br />

1 - Construir el grafo asociado a la matriz A, g(x) = 〈V, E〉, don<strong>de</strong> V es<br />

el conjunto <strong>de</strong> nodos y E = {{a, b} : a ≠ b / a, b ∈ V }.<br />

2 - Mientras V ≠ ∅:<br />

2.1- Elegir un nodo v <strong>de</strong> grado mínimo en g(x) = 〈V, E〉 y reor<strong>de</strong>nar<br />

como nodo siguiente.<br />

2.2 - Definir:<br />

V v = V − {v} ,<br />

E v = {{a, b} ∈ E / a, b ∈ V v } ∪ {{a, b} a ≠ b / a, b ∈ Adj g (v)}.<br />

Siendo, Adj g (v) el conjunto <strong>de</strong> nodos conectados a v en el grafo<br />

g(x).<br />

y hacer<br />

V = V v , E = E v y g(x) = 〈V, E〉.<br />

3 - Fin<br />

2.2. Algoritmo <strong>de</strong> Cuthill-McKee Inverso<br />

El algoritmo <strong>de</strong> Cuthill-Mckee proporciona un método sencillo para reor<strong>de</strong>nar una matriz<br />

<strong>sparse</strong> con objeto <strong>de</strong> reducir el efecto fill-in) transformando la matriz en una matriz banda. La<br />

or<strong>de</strong>nación resultante al invertir el algoritmo <strong>de</strong> Cuthill-Mckee resulta frecuentemente mejor<br />

que el original, en términos <strong>de</strong> reducción <strong>de</strong> perfil, manteniendo la anchura <strong>de</strong> banda.<br />

4


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

ALGORITMO RCM<br />

1 - Construir el grafo asociado a la matriz A, g(x) = 〈V, E〉, siendo V el<br />

conjunto <strong>de</strong> nodos y E = {{a, b} : a ≠ b / a, b ∈ V }.<br />

2 - Determinar un nodo inicial (pseudo-periférico) y renumerarlo<br />

como x 1 .<br />

3 - Renumerar los nodos conectados a x i en or<strong>de</strong>n ascen<strong>de</strong>nte <strong>de</strong> grado.<br />

4 - Efectuar el or<strong>de</strong>namiento inverso.<br />

5 - Fin<br />

2.3. Algoritmo <strong>de</strong>l Mínimo Vecino<br />

Este algoritmo [14] es una variante <strong>de</strong>l algoritmo <strong>de</strong> grado mínimo que opera eliminando los<br />

nodos seleccionados en la estructura <strong>de</strong>l grafo asociado a la matriz y <strong>de</strong> forma que no se <strong>de</strong>fine<br />

ni se inserta en el grafo ninguna nueva conexión. Se selecciona consecutivamente el nodo que<br />

tiene el menor número <strong>de</strong> ”vecinos”. Es especialmente útil cuando se hace una factorización<br />

incompleta con el mismo patrón <strong>de</strong> sparsidad que la matriz <strong>de</strong>l sistema, por ejemplo cuando se<br />

utilizan precondicionadores como el ILU(0) o el SSOR.<br />

ALGORITMO MN<br />

1 - Construir el grafo asociado a la matriz A, g(x) = 〈V, E〉, don<strong>de</strong> V es<br />

el conjunto <strong>de</strong> nodos y E = {{a, b} : a ≠ b / a, b ∈ V }.<br />

2 - Mientras V ≠ ∅:<br />

2.1- Elegir un nodo v <strong>de</strong> grado mínimo en g(x) = 〈V, E〉 y reor<strong>de</strong>nar<br />

como nodo siguiente.<br />

2.2 - Definir:<br />

V v = V − {v} , E v = {{a, b} ∈ E / a, b ∈ V v }.<br />

y hacer<br />

V = V v , E = E v y g(x) = 〈V, E〉.<br />

3 - Fin<br />

2.4. Algoritmo <strong>de</strong> George<br />

La elección <strong>de</strong>l nodo inicial en el segundo paso <strong>de</strong> los algoritmos anteriores se ha <strong>de</strong>terminado<br />

usando el algoritmo <strong>de</strong> George [14], que nos <strong>de</strong>termina un nodo pseudo-periférico.<br />

Si <strong>de</strong>finimos la distancia d(x, y) entre dos nodos x e y en un grafo g(x) = 〈V, E〉, como la<br />

longitud <strong>de</strong> la trayectoria más corta que une ambos nodos, y la excentricidad <strong>de</strong> un nodo x por<br />

ε(x) = Max {d(x, y)/x, y ∈ V }, el algoritmo se escribe <strong>de</strong> la siguiente forma,<br />

ALGORITMO DE GEORGE PARA LA BÚSQUEDA<br />

DE NODOS PSEUDO-PERIFÉRICOS<br />

1- Elegir un nodo arbitrario r <strong>de</strong> V .<br />

5


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

2 . Generar una estructura con niveles enraizada en r,<br />

{<br />

L0 (r), L 1 (r), . . . , L ε(r) (r) } .<br />

siendo L i (r) = {x/d(x, r) = i}.<br />

3 - Elegir un nodo x <strong>de</strong> grado mínimo en L ε(r) (r).<br />

4 . Generar una estructura con niveles enraizada en x,<br />

{<br />

L0 (x), L 1 (x), . . . , L ε(x) (x) }<br />

5 - Si ε(x) > ε(r), establecer x → r y volver al paso 3.<br />

6 - Caso contrario tomamos x como nodo inicial.<br />

7 - Fin<br />

3. PRECONDICIONAMIENTO<br />

La convergencia <strong>de</strong> los métodos basados en los subespacios <strong>de</strong> Krylov mejora con el uso<br />

<strong>de</strong> las técnicas <strong>de</strong> precondicionamiento. Éstas consisten generalmente en cambiar el sistema<br />

original Ax = b por otro <strong>de</strong> idéntica solución, <strong>de</strong> forma que el número <strong>de</strong> condicionamiento<br />

<strong>de</strong> la matriz <strong>de</strong>l nuevo sistema sea menor que el <strong>de</strong> A, o bien tenga una mejor distribución <strong>de</strong><br />

autovalores.<br />

Generalmente, se consi<strong>de</strong>ra una matriz <strong>de</strong> precondicionamiento M −1 , siendo M una aproximación<br />

<strong>de</strong> A, esto es,<br />

M −1 Ax = M −1 b<br />

tal que, K (M −1 A) < K (A). El menor valor correspon<strong>de</strong> a M = A, K (A −1 A) = 1, que<br />

es el caso i<strong>de</strong>al y el sistema convergería en una sola iteración, pero el coste computacional <strong>de</strong>l<br />

cálculo <strong>de</strong> A −1 equivaldría a resolver el sistema por un método directo. Se sugiere que M que<br />

sea una matriz lo más próxima a A sin que su <strong>de</strong>terminación suponga un coste elevado.<br />

Por otro lado, la matriz M <strong>de</strong>be ser fácilmente invertible para po<strong>de</strong>r efectuar los productos<br />

M −1 por vector que aparecen en los algoritmos precondicionados sin excesivo coste adicional.<br />

Dependiendo <strong>de</strong> la forma <strong>de</strong> plantear el producto <strong>de</strong> M −1 por la matriz <strong>de</strong>l sistema obtendremos<br />

distintas formas <strong>de</strong> precondicionamiento. Éstas son,<br />

M −1 Ax = M −1 b (Precondicionamiento por la izquierda)<br />

AM −1 Mx = b<br />

(Precondicionamiento por la <strong>de</strong>recha) (9)<br />

M −1<br />

1 AM−1 2 M 2x = M −1<br />

1 b (Precondicionamiento por ambos lados)<br />

si M pue<strong>de</strong> ser factorizada como M = M 1 M 2 .<br />

El campo <strong>de</strong> posibles precondicionadores es muy amplio. Algunos <strong>de</strong> los más usados son el<br />

<strong>de</strong> Jacobi, SSOR, ILU, la Inversa Aproximada y el Diagonal Óptimo.<br />

3.1. Precondicionador <strong>de</strong> Jacobi<br />

Surge comparando la fórmula <strong>de</strong> recurrencia para la solución que resulta <strong>de</strong> aplicar el método<br />

<strong>de</strong> Richardson, cuya relación <strong>de</strong> recurrencia viene dada por x i+1 = x i + α (b − Ax i ), con<br />

α > 0, al sistema precondicionado con la fórmula correspondiente que se obtiene aplicando el<br />

6


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

método <strong>de</strong> Jacobi al sistema sin precondicionar. De la aplicación <strong>de</strong>l método <strong>de</strong> Richardson al<br />

sistema precondicionado M −1 Ax = M −1 b, se obtiene para el cálculo <strong>de</strong> los sucesivos valores<br />

<strong>de</strong> la solución,<br />

x i+1 = x i + α ( M −1 b − M −1 Ax i<br />

)<br />

Multiplicando por la matriz <strong>de</strong> precondicionamiento M, queda,<br />

Mx i+1 = Mx i + α (b − Ax i ) (10)<br />

Por otro lado, <strong>de</strong>scomponiendo la matriz <strong>de</strong>l sistema en A = D − E − F, (D matriz diagonal<br />

formada por los elementos <strong>de</strong> la diagonal <strong>de</strong> A y E y F matrices triangulares inferior y<br />

superior respectivamente), y utilizando el método <strong>de</strong> Jacobi para la resolución <strong>de</strong>l sistema, se<br />

obtiene,<br />

x i+1 = D −1 (E + F) x i + D −1 b<br />

que multiplicando por D y operando resulta,<br />

Dx i+1 = Dx i + (b − Ax i ) (11)<br />

Comparando las expresiones <strong>de</strong> recurrencia finales <strong>de</strong> ambos métodos, se observa que el<br />

método <strong>de</strong> Jacobi aplicado al sistema sin precondicionar, equivale al <strong>de</strong> Richardson, con α = 1,<br />

menos robusto y más simple, cuando este se aplica al sistema precondicionado con la matriz<br />

diagonal D = diag(A).<br />

3.2. Precondicionador SSOR<br />

Si aplicamos el método SSOR al sistema sin precondicionar, consi<strong>de</strong>rando la <strong>de</strong>scomposición<br />

<strong>de</strong> la matriz A en A = D − E − F, como en el caso anterior, y siendo ω el parámetro <strong>de</strong><br />

relajación, se obtiene,<br />

1<br />

ω (2 − ω) (D−ωE) D−1 (D−ωF) x i+1 =<br />

con lo que resulta como matriz <strong>de</strong> precondicionamiento,<br />

M = ( I−ωED −1) ( )<br />

D−ωF<br />

ω(2 − ω)<br />

1<br />

ω (2 − ω) (D−ωE) D−1 (D−ωF) x i + (b − Ax i )<br />

que en el caso <strong>de</strong> <strong>sistemas</strong> simétricos, po<strong>de</strong>mos expresarla como,<br />

[<br />

] [<br />

] T<br />

(D−ωE) D −1/2 (D−ωE) D −1/2<br />

M = √ √ (13)<br />

ω (2 − ω) ω (2 − ω)<br />

(12)<br />

3.3. Precondicionador ILU(0)<br />

Resulta <strong>de</strong> la aproximación <strong>de</strong> A por una factorización incompleta LU, guardando las mismas<br />

entradas nulas en las matrices triangulares L y U,<br />

A = LU ≈ ILU(0) = M (14)<br />

7


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

don<strong>de</strong> m ij son las entradas <strong>de</strong> M tal que,<br />

m ij = 0 if a ij = 0 (15)<br />

{A − LU} ij<br />

= 0 if a ij ≠ 0 (16)<br />

Es <strong>de</strong>cir que lo elementos nulos <strong>de</strong> la matriz <strong>de</strong>l sistema siguen siendo nulos en las posiciones<br />

respectivas <strong>de</strong> las matrices triangulares para no incrementar el coste computacional. Para<br />

<strong>sistemas</strong> simétricos se <strong>de</strong>fine, <strong>de</strong> forma similar, la factorización incompleta <strong>de</strong> Cholesky ILL t .<br />

3.4. Precondicionador Inversa Approximada<br />

Recientemente, el uso <strong>de</strong> inversas aproximadas se ha convertido en una buena alternativa para<br />

los precondicionadores implícitos <strong>de</strong>bido a su naturaleza paralelizable; para más <strong>de</strong>talles ver,<br />

[3, 17], y también un estudio comparativo completo en [4]. Aquí se construye una matriz inversa<br />

aproximada usando el producto escalar <strong>de</strong> Frobenius. Aunque el estudio se ha <strong>de</strong>sarrollado<br />

precondicionando por la <strong>de</strong>recha, los resultados por la izquierda son directos.<br />

Sea S ⊂ M n , el subespacio <strong>de</strong> las matrices M don<strong>de</strong> se busca una inversa aproximada<br />

explícita con un patrón <strong>de</strong> sparsidad <strong>de</strong>sconocido. La formulación <strong>de</strong>l problema es:<br />

encontrar M 0 ∈ S tal que<br />

M 0 = arg mín ‖AM − I‖ F<br />

(17)<br />

M∈S<br />

A<strong>de</strong>más, esta matriz inicial M 0 pudiera ser posiblemente una aproximada inversa <strong>de</strong> A en un<br />

sentido estricto, es <strong>de</strong>cir,<br />

‖AM 0 − I‖ F<br />

= ε < 1 (18)<br />

Existen dos razones para esto. Primero, la ecuación (18) permite asegurar que M 0 no es<br />

singular (lema <strong>de</strong> Banach), y segundo, esta será la base para construir un algoritmo explícito<br />

para mejorar M 0 y resolver la ecuación (1).<br />

Un trabajo reciente <strong>de</strong> Grote y otros [17] propone un algoritmo eficiente para obtener una<br />

inversa aproximada tan cercana a una matriz no singular A como se requiera. Hemos seguido<br />

dicha técnica pero variando el método <strong>de</strong> selección <strong>de</strong> las entradas en M 0 y el algoritmo usado<br />

para resolver el problema (17). La construcción <strong>de</strong> M 0 se realiza en paralelo, in<strong>de</strong>pendizando el<br />

cálculo <strong>de</strong> cada columna. Aunque nuestro algoritmo nos permite comenzar <strong>de</strong>s<strong>de</strong> cualquier entrada<br />

<strong>de</strong> la columna k, se acepta comúnmente el uso <strong>de</strong> la diagonal como primera aproximación.<br />

A<strong>de</strong>más, la expresión <strong>de</strong>l precondicionador diagonal óptimo es bien conocida. La siguiente entrada<br />

a consi<strong>de</strong>rar se selecciona <strong>de</strong>ntro <strong>de</strong>l conjunto <strong>de</strong> entradas candidatas, el cual se <strong>de</strong>fine<br />

siguiendo el criterio propuesto en [17]. Sea r k el residuo correspondiente a la columna k-ésima,<br />

r k = Am k − e k (19)<br />

y sea I k el conjunto <strong>de</strong> índices <strong>de</strong> las entradas no nulas en r k , es <strong>de</strong>cir, I k = {i ∈ {1, 2, ..., n}<br />

/ r ik ≠ 0}. Si L k = {l ∈ {1, 2, ..., n} / m lk ≠ 0}, entonces la nueva entrada se busca en el<br />

conjunto J k = {j ∈ L c k / a ij ≠ 0, ∀i ∈ I k }. En realidad, las únicas entradas consi<strong>de</strong>radas en m k<br />

son aquellas que afectan las entradas no nulas <strong>de</strong> r k . En lo que sigue, asumimos que L k ∪ {j} =<br />

8


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

{ }<br />

i<br />

k<br />

1 , i k 2, ..., i k p k es no vacío, siendo pk el número actual <strong>de</strong> entradas no nulas <strong>de</strong> m k , y que<br />

i k p k<br />

= j, para todo j ∈ J k . Para cada j, calculamos,<br />

p k<br />

[ ( )]<br />

∑ <strong>de</strong>t D<br />

k 2<br />

||Am k − e k || 2 2 = 1 −<br />

l<br />

<strong>de</strong>t ( ) ( ) (20)<br />

G k l−1 <strong>de</strong>t G<br />

k<br />

l<br />

l=1<br />

don<strong>de</strong>, para todo k, <strong>de</strong>t ( G0) k = 1 y G<br />

k<br />

l es la matriz <strong>de</strong> Gram <strong>de</strong> las columnas i k 1 , ik 2 , ..., ik l <strong>de</strong> la<br />

matriz A con respecto al producto escalar euclí<strong>de</strong>o, Dl<br />

k es la matriz que resulta <strong>de</strong> reemplazar<br />

la última fila <strong>de</strong> la matriz G k l por a k i k<br />

1<br />

, a k i k<br />

2<br />

, ..., a k i k<br />

l<br />

, con 1 ≤ l ≤ p k . Se selecciona el índice<br />

j k que minimiza el valor <strong>de</strong> ‖Am k − e k ‖ 2<br />

. Esta estrategia (ver [27]) <strong>de</strong>fine el nuevo índice<br />

seleccionado j k atendiendo solamente al conjunto L k , lo que nos lleva a un nuevo óptimo don<strong>de</strong><br />

se actualizan todas las entradas correspondientes a los índices <strong>de</strong> L k . Esto mejora el criterio<br />

<strong>de</strong> [17] don<strong>de</strong> el nuevo índice se selecciona manteniendo las entradas correspondientes a los<br />

índices <strong>de</strong> L k . Así m k se busca en el conjunto S k = {m k ∈ R n /m ik = 0; ∀i /∈ L k ∪ {j k }},<br />

p<br />

∑ k<br />

<strong>de</strong>t ( )<br />

Dl<br />

k m k =<br />

<strong>de</strong>t ( ) ( ) ˜m<br />

G k l−1 <strong>de</strong>t G<br />

k l (21)<br />

l<br />

l=1<br />

don<strong>de</strong> ˜m l es el vector con entradas no nulas i k h (1 ≤ h ≤ l). Cada una <strong>de</strong> ellas se obtiene<br />

evaluando el <strong>de</strong>terminante correspondiente que resulta <strong>de</strong> reemplazar la última fila <strong>de</strong> <strong>de</strong>t ( )<br />

G k l<br />

por e t h , con 1 ≤ l ≤ p k.<br />

Evi<strong>de</strong>ntemente, los cálculos <strong>de</strong> ||Am k − e k || 2 2 y m k pue<strong>de</strong>n actualizarse añadiendo la contribución<br />

<strong>de</strong> la última entrada j ∈ J k a la suma previa <strong>de</strong> 1 a p k − 1. En la práctica, <strong>de</strong>t ( )<br />

G k l se<br />

calcula usando la <strong>de</strong>scomposición <strong>de</strong> Cholesky puesto que G k l es una matriz simétrica y <strong>de</strong>finida<br />

positiva. Esto sólo involucra la factorización <strong>de</strong> la última fila y columna si aprovechamos la <strong>de</strong>scomposición<br />

<strong>de</strong> G k l−1 . Por otra parte, <strong>de</strong>t ( ) ( )<br />

Dl<br />

k / <strong>de</strong>t G<br />

k<br />

l es el valor <strong>de</strong> la última incógnita <strong>de</strong>l<br />

(<br />

) t<br />

sistema G k l d l = a k i k<br />

1<br />

, a k i k<br />

2<br />

, ..., a k i k<br />

l<br />

necesitándose solamente una sustitución por <strong>de</strong>scenso .<br />

Finalmente, para obtener ˜m l <strong>de</strong>be resolverse el sistema G k l v l = e l , con ˜m i k<br />

h l = v hl , (1 ≤ h ≤ l).<br />

3.5. Precondicionador Diagonal Óptimo<br />

En el caso particular en que S es el subespacio <strong>de</strong> las matrices diagonales <strong>de</strong> or<strong>de</strong>n n, el<br />

mejor precondicionador diagonal por la izquierda <strong>de</strong>l sistema es,<br />

(<br />

)<br />

M = diag<br />

a 11<br />

a 22<br />

a nn<br />

‖e T 1 A‖ 2 ,<br />

2<br />

‖e T 2 A‖ 2 , . . . ,<br />

‖e<br />

2<br />

T n A‖ 2 2<br />

n∑<br />

‖MA − I‖ 2 F = n − a ii<br />

i=1<br />

‖e T i A‖2 2<br />

De forma similar se obtiene el precondicionador por la <strong>de</strong>recha.<br />

(22)<br />

(23)<br />

9


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

4. MÉTODOS DE KRYLOV<br />

4.1. Método <strong>de</strong>l Gradiente Conjugado (CG)<br />

El método <strong>de</strong>l Gradiente Conjugado está basado en una técnica <strong>de</strong> proyección ortogonal<br />

sobre el subespacio <strong>de</strong> Krylov K k (A; r 0 ) don<strong>de</strong> r 0 es el residuo inicial, y fundamentado en el<br />

algoritmo D-Lanczos <strong>de</strong> la siguiente forma. Una aproximación x j+1 pue<strong>de</strong> ser expresada,<br />

entonces, los vectores residuos <strong>de</strong>ben satisfacer que,<br />

estos vectores residuos son ortogonales,<br />

〈<br />

rj − α j Ap j , r j<br />

〉<br />

= 0<br />

x j+1 = x j + α j p j (24)<br />

r j+1 = r j − α j Ap j (25)<br />

por tanto,<br />

α j = 〈r j, r j 〉<br />

〈<br />

Apj , r j<br />

〉 (26)<br />

como las siguientes direcciones p j+1 son una combinación lineal <strong>de</strong> r j+1 y p j , <strong>de</strong>spués <strong>de</strong><br />

reescalar los vectores p apropiadamente,<br />

p j+1 = r j+1 + β j p j (27)<br />

con lo cual, 〈<br />

Apj , r j<br />

〉<br />

=<br />

〈<br />

Apj , p j − β j−1 p j−1<br />

〉<br />

=<br />

〈<br />

Apj , p j<br />

〉<br />

ya que Ap j es ortogonal a p j−1 . Entonces, teniendo en cuenta (26) y (27) obtenemos que,<br />

〈 〉<br />

rj+1 , Ap j<br />

β j = − 〈 〉<br />

pj , Ap j<br />

y como <strong>de</strong> (25), po<strong>de</strong>mos escribir,<br />

Ap j = − 1 (r j+1 − r j ) (28)<br />

α j<br />

entonces,<br />

β j = − 1 α j<br />

〈r j+1 , (r j+1 − r j )〉<br />

〈<br />

Apj , p j<br />

〉 = 〈r j+1, r j+1 〉<br />

〈r j , r j 〉<br />

ALGORITMO DEL GRADIENTE CONJUGADO PRECONDICIONADO (PCG)<br />

Aproximación inicial x 0 . r 0 = b − Ax 0 ;<br />

Resolver Mz 0 = r 0 , p 0 = z 0 ;<br />

Mientras ‖ r j ‖ / ‖ r 0 ‖≥ ε (j = 0, 1, 2, 3, ...), hacer<br />

α j = 〈r j, z j 〉<br />

〈 〉; Apj , p j<br />

x j+1 = x j + α j p j ;<br />

10


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

Fin<br />

r j+1 = r j − α j Ap j ;<br />

Resolver Mz j+1 = r j+1 ;<br />

β j = 〈r j+1, z j+1 〉<br />

;<br />

〈r j , z j 〉<br />

p j+1 = z j+1 + β j p j ;<br />

4.2. Método <strong>de</strong> Mínimo Residuo Generalizado (GMRES)<br />

El algoritmo GMRES [33] es un método <strong>de</strong> proyección sobre K = K k con L = AK k don<strong>de</strong><br />

K k es un subespacio <strong>de</strong> Krylov <strong>de</strong> dimensión k, que minimiza la norma <strong>de</strong>l residuo. Así, el<br />

<strong>de</strong>sarrollo <strong>de</strong>l algoritmo consiste en encontrar un vector x <strong>de</strong> x 0 + K k tal que,<br />

imponiendo la condición <strong>de</strong> mínimo para,<br />

Como,<br />

x = x 0 + V k y<br />

J(y) = ‖b − Ax‖ (29)<br />

b − Ax = b − A (x 0 + V k y) = r 0 −AV k y<br />

teniendo en cuenta la ecuación obtenida <strong>de</strong>l algoritmo <strong>de</strong> Arnoldi<br />

y llamando y v 1 = r 0 / ‖ r 0 ‖, siendo β =‖ r 0 ‖, entonces,<br />

pero, v 1 = V k+1 e 1 , con e 1 ∈ R k+1 , por tanto:<br />

y la ecuación (29) quedará,<br />

AV k = V k+1 H k (30)<br />

b − Ax = βv 1 − V k+1 H k y<br />

b − Ax = V k+1<br />

(<br />

βe1 − H k y ) (31)<br />

J(y) = ∥ ∥ Vk+1<br />

(<br />

βe1 − H k y )∥ ∥<br />

Como las columnas <strong>de</strong> la matriz V k+1 son ortonormales por construcción, po<strong>de</strong>mos simplificar<br />

la anterior expresión,<br />

J(y) = ∥ ∥ ( βe 1 − H k y )∥ ∥ (32)<br />

El algoritmo GMRES busca el único vector <strong>de</strong> x 0 + K k que minimiza la funcional J(y).<br />

ALGORITMO GMRES<br />

Aproximación inicial x 0 . r 0 = b − Ax 0 ;<br />

Definir la (k + 1) × k matriz H k = {H} 1≤i≤k+1,1≤j≤k<br />

. Poner H k = 0.<br />

Des<strong>de</strong> j = 1, ..., k hacer<br />

w j = Av j<br />

Des<strong>de</strong> i = 1, ..., j hacer<br />

11


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

{H} ij<br />

= 〈w j , v i 〉;<br />

w j = w j − {H} ij<br />

v i ;<br />

Fin<br />

{H} j+1,j<br />

=‖ w j ‖; Si {H} j+1,j<br />

= 0 poner k = j y parar<br />

1<br />

v j+1 = w j ;<br />

{H} j+1,j<br />

Fin<br />

Hallar y k que minimiza ∥ ( βe 1 − H k y )∥ ∥;<br />

Determinar x k = x 0 + V k y k siendo V k = [v 1 , v 2 , ..., v k ];<br />

Calcular r k = b − Ax k<br />

El algoritmo GMRES resulta impracticable cuando k es muy gran<strong>de</strong> por el elevado coste<br />

computacional y <strong>de</strong> almacenamiento, por ello se suele usar la técnica <strong>de</strong> restart y truncamiento.<br />

Una modificación <strong>de</strong>l GMRES consiste en utilizar un método directo para la resolución <strong>de</strong>l<br />

problema <strong>de</strong> mínimos cuadrados que aparece en cada iteración [12] en lugar <strong>de</strong> la factorización<br />

QR [33] o la basada en la transformación <strong>de</strong> Househol<strong>de</strong>r [38]. Considérese la proyección<br />

ortogonal sobre el subespacio <strong>de</strong> soluciones mediante la multiplicación por la matriz H t k ,<br />

H t k H k u = H t k β i−1e 1 (33)<br />

La forma <strong>de</strong> H k sugiere <strong>de</strong>scomponer el producto H t k H k en una suma. En efecto, se advierte<br />

fácilmente que H k es una matriz (k + 1) × k con la siguiente estructura:<br />

⎛<br />

d t ⎞<br />

k<br />

U k<br />

H k =<br />

⎜<br />

⎟<br />

⎝<br />

⎠<br />

0<br />

La primera fila está <strong>de</strong>finida por un vector <strong>de</strong> dimensión k (d t k ) y el resto forma una matriz<br />

cuadrada triangular superior U k :<br />

{d k } i<br />

= d i = {H} 1i<br />

i = 1, ..., k (34)<br />

{<br />

{H}i+1<br />

{U k } ij<br />

= u ij =<br />

j<br />

1 ≤ i ≤ j ≤ k<br />

(35)<br />

0 en el resto<br />

Teorema. Sean d k y U k <strong>de</strong>finidos por (34) y (35), y ¯p k , p k , respectivamente, las soluciones<br />

<strong>de</strong> los <strong>sistemas</strong> triangulares U t k¯p k = d k y U k p k = ¯p k . Si se <strong>de</strong>fine,<br />

λ i =<br />

β i−1<br />

1 + 〈d k , p k 〉 ; u k = λ i p k<br />

entonces u k minimiza la forma cuadrática J(u) = ‖β i−1 e 1 − H k u‖ 2<br />

sobre R k .<br />

Demostración: Obsérvese en primer lugar que 1 + 〈d k , p k 〉 ≠ 0, ya que<br />

〈d k , p k 〉 = 〈 U t k U kp k , p k<br />

〉<br />

= ‖Uk p k ‖ 2 2 ≥ 0<br />

12


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

y, por tanto, λ i nunca pue<strong>de</strong> <strong>de</strong>generar.<br />

Consi<strong>de</strong>remos ahora el sistema lineal dado en (33). El (i, j)-ésimo elemento <strong>de</strong> H t k H k es:<br />

{ }<br />

k∑<br />

H<br />

t<br />

k H k = d ij id j + u mi u mj (36)<br />

m=1<br />

En <strong>de</strong>finitiva, se pue<strong>de</strong> expresar,<br />

(dk<br />

d t k + Ut k U )<br />

k u = H<br />

t<br />

k β i−1e 1 (37)<br />

Teniendo en cuenta que H t k e 1 = d k , se obtiene la siguiente formulación:<br />

(<br />

dk d t k + U t kU k<br />

)<br />

u =βi−1 d k (38)<br />

Si pasamos al segundo miembro el producto externo y aplicamos la propiedad asociativa <strong>de</strong> la<br />

multiplicación <strong>de</strong> matrices, se obtiene,<br />

U t k U ku = d k (β i−1 − 〈d k , u〉) (39)<br />

Si <strong>de</strong>finimos,<br />

λ i = β i−1 − 〈d k , u〉 (40)<br />

u = λ i p k (41)<br />

entonces se tiene que,<br />

U t k U kp k = d k (42)<br />

Esto supone resolver sólo dos <strong>sistemas</strong> triangulares, ya que U t k y U k son matrices triangulares<br />

inferiores y superiores, respectivamente. Una vez resuelto este sistema, se necesita calcular<br />

λ i para obtener u en la ecuación (41). Sustituyendo (41) en (40) se llega a,<br />

y por tanto, se <strong>de</strong>muestra que<br />

λ i = β i−1 − 〈d k , u〉 = β i−1 − λ i 〈d k , p k 〉<br />

λ i =<br />

β i−1<br />

1 + 〈d k , p k 〉<br />

El cálculo <strong>de</strong>l nuevo residuo se basa en el siguiente resultado,<br />

(43)<br />

r i = V k+1 (β i−1 e 1 − H k u) (44)<br />

don<strong>de</strong> se sabe que V k+1 = [v 1 , v 2 , ..., v k+1 ] y es unitaria. Así, se pue<strong>de</strong> escribir,<br />

r i = V k+1ˆr i (45)<br />

representando ˆr i el siguiente vector <strong>de</strong> dimensión (k + 1),<br />

ˆr i = β i−1 e 1 − H k u (46)<br />

A<strong>de</strong>más, es evi<strong>de</strong>nte que,<br />

‖r i ‖ 2<br />

= ‖ˆr i ‖ 2<br />

(47)<br />

13


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

A partir <strong>de</strong> la <strong>de</strong>scomposición <strong>de</strong> H k , la primera componente <strong>de</strong>l vector (H k u) <strong>de</strong> dimensión<br />

(k + 1) es el producto escalar 〈d k , u〉, y el resto <strong>de</strong> las componentes vienen dadas por el vector<br />

(U k u) <strong>de</strong> dimensión k. Por tanto, la primera componente <strong>de</strong> ˆr i es λ i , y las otras,<br />

−U k u = −λ i U k p k = −λ i¯p k (48)<br />

siendo posible almacenar el vector ¯p k <strong>de</strong>spués <strong>de</strong>l primer remonte al resolver (42).<br />

El algoritmo Variable GMRES es una variante <strong>de</strong>l GMRES-Modificado. A<strong>de</strong>más <strong>de</strong> la resolución<br />

directa <strong>de</strong>l problema <strong>de</strong> mínimos cuadrados [12] la i<strong>de</strong>a básica es usar el full GMRES al<br />

principio <strong>de</strong>l algoritmo hasta que satisface una cierta subtolerancia δ que pue<strong>de</strong> ser función <strong>de</strong> ε,<br />

la tolerancia exigida a la solución, y se incrementa la dimensión <strong>de</strong>l subespacio <strong>de</strong> Krylov k una<br />

unidad en cada paso mientras la norma <strong>de</strong>l vector residuo sea mayor o igual a δ y k sea menor<br />

que la dimensión máxima permitida (por ejemplo, por exigencias <strong>de</strong> memoria) <strong>de</strong>l subespacio<br />

<strong>de</strong> Krylov k top . A partir <strong>de</strong> este punto, con ese último valor <strong>de</strong> k, comienza el algoritmo como<br />

si se tratase <strong>de</strong>l estándar restarted GMRES hasta alcanzar la tolerancia ε dada [11].<br />

ALGORITMO VGMRES<br />

Aproximación inicial x 0 . r 0 = b − Ax 0 ;<br />

Elegir k init , k top , δ ∈ [0, 1], k = k init<br />

Mientras ‖ ̂r i−1 ‖ / ‖ r 0 ‖≥ ε (i = 1, 2, 3, ...),<br />

β i−1 = ‖ r i−1 ‖, v i = r i−1 /β i−1 ;<br />

Si ‖ r i−1 ‖ / ‖ r 0 ‖≥ δ y k < k top hacer k = k + 1;<br />

Para j = 1, ..., k hacer<br />

Resolver Mz j = v j ;<br />

w = Az j ;<br />

Para n = 1, ..., j hacer<br />

{H} nj<br />

= w t v n ;<br />

w = w − {H} nj<br />

v n ;<br />

Fin<br />

{H} j+1,j<br />

=‖ w ‖;<br />

v j+1 = w/ {H} j+1,j<br />

:<br />

Fin<br />

Resolver U t k¯p = d k y U k p = ¯p;<br />

Fin<br />

con {d k} m<br />

= {H} 1m<br />

l, m = 1, ..., k;<br />

{U k } lm<br />

= {H} l+1,m<br />

λ i =<br />

β i−1<br />

1 + d t k p;<br />

u k = λ i p;<br />

x i = x i−1 + Z k u k ; siendo Z k = [z 1 , z 2 , ..., z k ];<br />

r i = Z k+1ˆr i ; con {ˆr i} 1<br />

= λ i<br />

{ˆr i } l+1<br />

= −λ i {¯p} l<br />

l = 1, ..., k;<br />

14


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

Este algoritmo, al igual que el FGMRES, permite cambiar el precondicionador en cada iteración.<br />

4.3. Método Bi-CGSTAB (Biconjugate Gradient Stabilized)<br />

En el CGS [34], los vectores residuos verifican ̂r j = φ 2 j (A)r 0<br />

. Van <strong>de</strong>r Vorst en el Bi-<br />

CGSTAB [36], propone obtener un vector residuo por aplicación sucesiva <strong>de</strong> dos polinomios<br />

reductores distintos <strong>de</strong> la forma,<br />

r ′ j = ψ j(A)φ j (A)r 0<br />

(49)<br />

tal que las relaciones <strong>de</strong> recurrencia <strong>de</strong>l algoritmo don<strong>de</strong> intervenga este polinomio ψ j (A) no<br />

<strong>de</strong>ben ser excesivamente complicadas y los parámetros que figuren en su <strong>de</strong>finición sean fácilmente<br />

optimizables. En este sentido sugiere para ψ j (A) la expresión,<br />

ψ j+1 (A) = (I − w j A)ψ j (A) (50)<br />

<strong>de</strong>terminando w j , por la condición <strong>de</strong> mínimo para r j en la iteración j-ésima.<br />

Las relaciones <strong>de</strong> recurrencia se <strong>de</strong>rivan <strong>de</strong> forma similar que en el algoritmo CGS. Así,<br />

ψ j+1 (A)φ j+1 (A) = (I − w j A)ψ j (A)φ j+1 (A) = (I − w j A) [ψ j (A)φ j (A)−α j Aψ j (A)π j (A)]<br />

(51)<br />

Necesitamos una relación <strong>de</strong> recurrencia para la correspondiente dirección conjugada,<br />

Definimos,<br />

ψ j (A)π j (A) = ψ j (A) [φ j (A)+β j−1 π j−1 (A)]<br />

= ψ j (A)φ j (A)+β j−1 (I − w j−1 A)ψ j−1 (A)π j−1 (A)<br />

r j = ψ j (A)φ j (A)r 0<br />

,<br />

p j = ψ j (A)π j (A)r 0<br />

Teniendo en cuenta las anteriores relaciones, po<strong>de</strong>mos encontrar las correspondientes fórmulas<br />

<strong>de</strong> recurrencia en función <strong>de</strong> los escalares α j y β j ,<br />

r j+1 = (I − w j A) ( r j −α j Ap j<br />

)<br />

(52)<br />

p j+1 = r j+1 + β j (I − w j A)p j<br />

(53)<br />

Para obtener el algoritmo, se toma como referencia al igual que en el CGS el algoritmo<br />

BiCG, efectuando las transformaciones necesarias para que las relaciones <strong>de</strong> recurrencia <strong>de</strong> la<br />

solución sean función <strong>de</strong>l nuevo vector residuo.<br />

Recordando que en el algoritmo BiCG, β j = ρ j+1 /ρ j con,<br />

ρ j = 〈 φ j (A)r 0<br />

, φ j (A T )r ∗ 〈 〉<br />

0〉<br />

= φ<br />

2<br />

j (A)r 0<br />

, r ∗ 0<br />

Pero como ρ j no lo hallamos porque ninguno <strong>de</strong> los vectores φ j (A)r 0<br />

, φ j (A T )r ∗ 0 ó φ2 j(A)r 0<br />

están disponibles, lo po<strong>de</strong>mos relacionar con el escalar,<br />

˜ρ j = 〈 φ j (A)r 0<br />

, ψ j (A T )r ∗ 〉<br />

0<br />

15


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

que po<strong>de</strong>mos obtener como,<br />

˜ρ j = 〈ψ j (A)φ j (A)r 0<br />

, r ∗ 0 〉 = 〈r j, r ∗ 0 〉<br />

Desarrollando φ j (A T )r ∗ 0 explícitamente para relacionar los escalares, ρ j y ˜ρ j , incorporando<br />

la ortogonalidad <strong>de</strong> φ j (A)r 0<br />

respecto <strong>de</strong> todos los vectores (A T ) i r ∗ 0 , con i < j y teniendo en<br />

cuenta que sólo los coeficientes principales <strong>de</strong> los polinomios son relevantes en el <strong>de</strong>sarrollo<br />

<strong>de</strong>l anterior producto,<br />

〉<br />

˜ρ j =<br />

〈φ j (A)r 0<br />

, η1(A j T ) j r ∗ 0 + ηj 2(A T ) j−1 r ∗ 0 + ...<br />

Si γ j 1 es el principal coeficiente para el polinomio φ j (A), entonces,<br />

〈<br />

〉<br />

˜ρ j =<br />

φ j (A)r 0<br />

, ηj 1<br />

γ j φ j (A T )r ∗ 0<br />

1<br />

= ηj 1<br />

γ j ρ j<br />

1<br />

Examinando las relaciones <strong>de</strong> recurrencia para φ j+1 (A) y ψ j+1 (A), los coeficientes principales<br />

para estos polinomios fueron hallados para satisfacer las relaciones,<br />

Por tanto,<br />

η j+1<br />

1 = −w j η j 1 , γj+1 1 = −α j γ j 1<br />

˜ρ j+1<br />

˜ρ j<br />

= w j<br />

α j<br />

ρ j+1<br />

ρ j<br />

que nos permite encontrar la siguiente relación para β j ,<br />

β j = ˜ρ j+1<br />

˜ρ j<br />

De forma similar, y por una simple fórmula <strong>de</strong> recurrencia po<strong>de</strong>mos encontrar α j como,<br />

〈<br />

φj (A)r 0<br />

, φ j (A T )r ∗ 0〉<br />

α j =<br />

α j<br />

w j<br />

〈Aπ j (A)r 0<br />

, π j (A T )r ∗ 0 〉<br />

De la misma manera que anteriormente, en los productos <strong>de</strong> polinomios, tanto en el numerador<br />

como en el <strong>de</strong>nominador, sólo se consi<strong>de</strong>ran los términos correpondientes a sus respectivos<br />

coeficientes principales y como éstos para φ j (A T )r ∗ 0 y π j(A T )r ∗ 0<br />

son idénticos, se tiene,<br />

〈<br />

φj (A)r<br />

α j =<br />

0<br />

, φ j (A T )r ∗ 〈<br />

0〉<br />

〈Aπ j (A)r 0<br />

, φ j (A T )r ∗ 0 〉 = φj (A)r 0<br />

, ψ j (A T )r ∗ 〉<br />

0<br />

〈Aπ j (A)r 0<br />

, ψ j (A T )r ∗ 0 〉 = 〈ψ j(A)φ j (A)r 0<br />

, r ∗ 0 〉<br />

〈Aψ j (A)π j (A)r 0<br />

, r ∗ 0 〉<br />

Y como p j = ψ j (A)π j (A)r 0<br />

, entonces,<br />

A partir <strong>de</strong> la ecuación (52), si hacemos,<br />

α j =<br />

˜ρ j<br />

〈<br />

Apj , r ∗ 0〉 (54)<br />

s j = r j − α j Ap j (55)<br />

16


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

el valor óptimo para el parámetro w j que interviene en la construcción <strong>de</strong>l polinomio reductor<br />

ψ j (A) y que figura en las relaciones <strong>de</strong> recurrencia <strong>de</strong>l algoritmo lo obtendremos con la<br />

condición <strong>de</strong> minimizar la norma <strong>de</strong>l vector residuo,<br />

con lo que,<br />

r j+1 = s j − w j As j<br />

‖r j+1 ‖ 2 = 〈s j − w j As j , s j − w j As j 〉 = 〈s j , s j 〉 − 2w j 〈s j , As j 〉 + w 2 j 〈As j, As j 〉<br />

∂ ‖r j+1 ‖ 2<br />

La ecuación (52) ahora nos quedará,<br />

∂w j<br />

= −2 〈s j , As j 〉 + 2w j 〈As j , As j 〉 = 0<br />

〈<br />

Asj , s j<br />

〉<br />

w j = 〈 〉 (56)<br />

Asj , As j<br />

r j+1 = s j − w j As j = r j − α j Ap j − w j As j (57)<br />

y la relación <strong>de</strong> recurrencia para el vector solución viene dada por,<br />

x j+1 = x j + α j p j + w j s j (58)<br />

Una vez expresados todos los vectores en función <strong>de</strong>l nuevo residuo y <strong>de</strong>terminadas sus relaciones<br />

<strong>de</strong> recurrencia, así como los escalares que intervienen en las mismas, se pue<strong>de</strong> escribir el<br />

algoritmo, en el que figuran dos productos matriz por vector y cuatro productos internos, mientras<br />

que el CGS exige los mismos productos matriz por vector y sólo dos productos internos. Sin<br />

embargo, en la mayoría <strong>de</strong> los casos la convergencia <strong>de</strong>l Bi-CGSTAB es más rápida y uniforme<br />

e incluso necesita menor carga computacional para alcanzar una <strong>de</strong>terminada tolerancia, pues<br />

la reducción <strong>de</strong>l número <strong>de</strong> iteraciones compensa su mayor coste.<br />

Para cada forma <strong>de</strong> precondicionamiento [28], el valor <strong>de</strong>l parámetro ˜ω resulta:<br />

⎫<br />

˜ω =<br />

(As)T s<br />

precondicionamiento por la <strong>de</strong>recha<br />

(As) T As<br />

˜ω = (M−1 As) T (M −1 s)<br />

precondicionamiento por la izquierda<br />

(M −1 As) T (M −1 As)<br />

˜ω = (L−1 As) T (L −1 s)<br />

precondicionamiento por ambos lados<br />

(L −1 As) T (L −1 As)<br />

De este modo, el cálculo <strong>de</strong> ˜ω incluye un proceso <strong>de</strong> sustitución por iteración para el precondicionamiento<br />

por la izquierda y dos para el precondicionamiento por ambos lados. No obstante,<br />

si obtenemos ˜ω a partir <strong>de</strong> la minimización <strong>de</strong>l residuo <strong>de</strong>l sistema original sin precondicionar,<br />

todos los valores dados en la ecuación (59) coinci<strong>de</strong>n con el <strong>de</strong>l precondicionamiento por la<br />

<strong>de</strong>recha. En este caso se obtiene también un único algoritmo,<br />

ALGORITMO BICGSTAB PRECONDICIONADO<br />

Aproximación inicial x 0 . r 0 = b − Ax 0 ;<br />

17<br />

⎪⎬<br />

⎪⎭<br />

(59)


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

Elegir r ∗ 0 arbitrario tal 〈r 0 , r ∗ 0〉 ≠ 0;<br />

Resolver Mz 0 = r 0 ;<br />

p 0 = z 0 ;<br />

Mientras ‖ r j−1 ‖ / ‖ r 0 ‖≥ ε (j = 1, 2, 3, ...), hacer<br />

Resolver Mz j = r j ;<br />

y j = Ap j ;<br />

Resolver Mv j = y j ;<br />

α j = 〈z j, r ∗ 0〉<br />

〈v j , r ∗ 0<br />

s 〉;<br />

j = r j − α j y j ;<br />

u j = As j ;<br />

Resolver<br />

〈<br />

Mt<br />

〉 j = u j ;<br />

tj , s j<br />

˜ω j = 〈 〉;<br />

tj , t j<br />

Fin<br />

x j+1 = x j + α j p j + ˜ω j u j ;<br />

z j+1 = s j − ˜ω j t j ;<br />

β j = 〈z j+1, r ∗ 0 〉<br />

〈z j , r ∗ 0〉 × α j<br />

;<br />

˜ω j<br />

p j+1 = z j+1 + β j (p j − ˜ω j v j );<br />

Cualquier otra elección <strong>de</strong>l residuo inicial conducirá a una nueva forma <strong>de</strong> precondicionamiento<br />

(ver [35]).<br />

4.4. Método QMRCGSTAB<br />

Desarrollado por Chan y otros [6] está basado en la aplicación <strong>de</strong>l principio <strong>de</strong> minimización<br />

usado en el algoritmo Bi-CGSTAB al método QMR. Sea,<br />

Y k = [y 1 , y 2 , . . . y k ] ,<br />

W k+1 = [w 0 , w 1 , . . . w k ]<br />

tal que, {<br />

y2l−1 = p l para l = 1, . . . , [(k + 1)/2]<br />

y 2l = s l<br />

para l = 1, . . . , [k/2]<br />

y, {<br />

w2l−1 = s l para l = 1, . . . , [(k + 1)/2]<br />

w 2l = r l para l = 0, 1, . . . , [k/2]<br />

don<strong>de</strong> [k/2] y [(k + 1)/2] son la parte entera <strong>de</strong> k/2 y (k + 1)/2 respectivamente.<br />

Definiendo,<br />

{<br />

δ2l = ω<br />

[δ 1 , δ 2 , . . . δ k ] /<br />

l para l = 1, . . . , [(k + 1)/2]<br />

δ 2l−1 = α l para l = 1, . . . , [(k + 1)/2]<br />

18


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

Entonces, para cada columna <strong>de</strong> W k+1 y Y k las expresiones (55) y (57) resultan,<br />

o usando notación matricial,<br />

Ay m = (w m−1 − w m ) δm −1 , m = 1, . . . , k (60)<br />

AY k = W k+1 E k+1<br />

don<strong>de</strong> E k+1 es una matriz bidiagonal (k + 1)×k con elementos diagonales δm<br />

−1<br />

inferior −δ −1<br />

m .<br />

y en la diagonal<br />

Esto pue<strong>de</strong> ser facilmente comprobado hasta que el grado <strong>de</strong> los polinomios correspondientes<br />

a los vectores r j , s j y p j sean 2j, 2j−1, y 2j−2 respectivamente. Entonces, Y k y W k generarán<br />

el mismo subespacio <strong>de</strong> Krylov generado por r 0 pero <strong>de</strong> grado k − 1.<br />

La i<strong>de</strong>a principal <strong>de</strong>l QMRCGSTAB es encontrar una aproximación a la solución <strong>de</strong>l sistema<br />

(1) usando el subespacio <strong>de</strong> Krylov K k−1 en la forma,<br />

la expresión para el vector residuo queda,<br />

x k = x 0 + Y k g con g ∈ R n<br />

r k = r 0 − AY k g = r 0 − W k+1 E k+1 g<br />

Teniendo en cuenta el hecho <strong>de</strong> que el primer vector <strong>de</strong> W k+1 es justamente r 0 , entonces,<br />

r k = W k+1 (e 1 − E k+1 g)<br />

Como las columnas <strong>de</strong> W k+1 no están normalizadas, se usará una matriz <strong>de</strong> escala Σ k+1 =<br />

diag (σ 1 , . . . , σ k+1 ) con σ j = ‖w j ‖ para hacer unitarias las columnas <strong>de</strong> W k+1 . Entonces,<br />

r k = W k+1 Σ −1<br />

k+1 Σ k+1 (e 1 − E k+1 g) = W k+1 Σ −1<br />

k+1 (σ 1e 1 − H k+1 g)<br />

con H k+1 = Σ k+1 E k+1 .<br />

La aproximación QMR consiste en la minimización <strong>de</strong> ‖σ 1 e 1 − H k+1 g‖ para obtener el óptimo<br />

g k ∈ R k , don<strong>de</strong> este problema <strong>de</strong> mínimos cuadrados es resuelto usando la <strong>de</strong>scomposición<br />

QR <strong>de</strong> la matriz H k+1 <strong>de</strong> forma incremental utilizando las rotaciones <strong>de</strong> Givens y como H k+1<br />

es bidiagonal inferior, solamente es necesaria la rotación en los pasos previos.<br />

ALGORITMO QMRCGSTAB PRECONDICIONADO<br />

Aproximación inicial x 0 . r 0 = b − Ax 0 ;<br />

Resolver Mz 0 = r 0 ;<br />

Elegir ˜r 0 tal que 〈z 0 ,˜r 0 〉 ≠ 0<br />

p 0 = v 0 = d 0 = 0;<br />

ρ 0 = α 0 = ˜ω 0 = 1, τ 0 = ‖z 0 ‖, θ 0 = 0, η 0 = 0;<br />

Mientras √ j + 1 |˜τ| / ‖r 0 ‖ ≥ ε(j = 1, 2, ...), hacer:<br />

ρ j = 〈z j−1 ,˜r 0 〉, β j = (ρ j /ρ j−1 )(α j−1 /˜ω j−1 );<br />

p j = z j−1 + β j (p j−1 − ˜ω j−1 v j−1 );<br />

y j = Ap j ;<br />

Resolver Mv j = y j ;<br />

α j = ρ j / 〈v j ,˜r 0 〉;<br />

19


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

Fin<br />

s j = z j−1 − α j v j ;<br />

Primera cuasi-minimización<br />

1<br />

˜θ j = ‖s j ‖ /τ, c = √<br />

1 + ˜θ<br />

; ˜τ = τ ˜θ j c;<br />

j<br />

2<br />

˜η j = c 2 jα j ;<br />

˜d j = p j + θ2 j−1η j−1<br />

d j−1 ;<br />

α j<br />

˜x j = x j−1 + ˜η j˜dj ;<br />

u j = As j ;<br />

Resolver Mt j = u j ;<br />

˜ω j = 〈s j, t j 〉<br />

〈t j , t j 〉 ;<br />

z j = s j − ˜ω j t j ;<br />

Segunda cuasi-minimización<br />

1<br />

θ j = ‖z j ‖ /˜τ, c = √ ; τ = ˜τ θ j c;<br />

1 + θj<br />

2<br />

η j = c 2˜ω j ;<br />

˜θ j 2 d j = s j + ˜η j<br />

˜dj ;<br />

˜ω j<br />

x j = ˜x j + η j d j ;<br />

4.5. Método LSQR (Least-Square QR)<br />

La resolución <strong>de</strong>l sistema <strong>de</strong> <strong>ecuaciones</strong> (1), don<strong>de</strong> la matriz A es no simétrica, es equivalente<br />

a resolver el sistema A T Ax = A T b, don<strong>de</strong> A T A es simétrica <strong>de</strong>finida positiva. La ecuación<br />

A T Ax = A T b recibe el nombre <strong>de</strong> Ecuación Normal.<br />

Al igual que el CG, los métodos <strong>de</strong>sarrollados a partir <strong>de</strong> la Ecuación Normal cumplen<br />

las dos condiciones fundamentales <strong>de</strong> minimización <strong>de</strong> la norma residual y optimización <strong>de</strong>l<br />

coste computacional, sin embargo presentan el( inconveniente <strong>de</strong> que el condicionamiento <strong>de</strong>l<br />

nuevo sistema es el cuadrado <strong>de</strong>l inicial (K 2 A T A ) =K 2 (A) 2 ), lo cual, para <strong>sistemas</strong> mal<br />

condicionados pue<strong>de</strong> resultar <strong>de</strong>sastroso y a<strong>de</strong>más en cada iteración aparecen dos productos<br />

matriz por vector correspondientes a las matrices A y A T aumentando el coste computacional.<br />

El método LSQR, propuesto por Paige y Saun<strong>de</strong>rs [32], intenta corregir el posible empeoramiento<br />

<strong>de</strong>l número <strong>de</strong> condición <strong>de</strong> los <strong>sistemas</strong> al aplicar el método <strong>de</strong> Ecuación Normal. La<br />

i<strong>de</strong>a básica <strong>de</strong>l LSQR es hallar la solución <strong>de</strong>l sistema simétrico,<br />

( ) ( ) ( )<br />

I A r b<br />

A T −λ 2 =<br />

(61)<br />

I x 0<br />

20


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

minimizando,<br />

∥ ∥∥∥<br />

(<br />

A<br />

λI<br />

) (<br />

b<br />

x−<br />

0<br />

)∥ ∥∥∥2<br />

(62)<br />

don<strong>de</strong> λ es un número real arbitrario. De la aplicación <strong>de</strong>l proceso <strong>de</strong> Lanczos a este sistema<br />

simétrico resultan dos formas <strong>de</strong> bidiagonalización propuestas por Golub y Kahan [15].<br />

Forma bidiagonal inferior<br />

Si comenzamos tomando r 0 = β 1 u 1 , α 1 v 1 = A T u 1<br />

}<br />

β j+1 u j+1 = Av j − α j u j<br />

α j+1 v j+1 = A T j = 1, 2, ... (63)<br />

u j+1 − β j+1 v j<br />

los escalares α j ≥ 0 y β j ≥ 0 son elegidos tal que ‖u j ‖ = ‖v j ‖ = 1 y,<br />

⎛<br />

⎞<br />

α 1<br />

β 2 α 2<br />

B k =<br />

β 3 α 3<br />

⎜ · · · · · ·<br />

⎟<br />

⎝<br />

β k α k<br />

⎠<br />

β k+1<br />

Las relaciones <strong>de</strong> recurrencia dadas en (63) pue<strong>de</strong>n reescribirse,<br />

r 0 = U k+1 (β 1 e 1 ) , (64)<br />

AV k = U k+1 B k , (65)<br />

A T U k+1 = V k B T k + α k+1v k+1 e T k+1 (66)<br />

teniendo en cuenta que en aritmética exacta se verifica que U T k+1 U k+1 = I y Vk T V k = I.<br />

Forma bidiagonal superior<br />

En este caso se comienza a partir <strong>de</strong> A T r 0 = θ 1 v 1 , ρ 1 p 1 = Av 1<br />

}<br />

θ j+1 v j+1 = A T v j − ρ j v j<br />

j = 1, 2, ... (67)<br />

ρ j+1 p j+1 = Av j+1 − θ j+1 p j<br />

Los escalares ρ j ≥ 0 y θ j ≥ 0 son elegidos tal que ‖p j ‖ = ‖v j ‖ = 1 y,<br />

⎛<br />

⎞<br />

ρ 1 θ 2<br />

ρ 2 θ 3<br />

R k =<br />

⎜ · · · · · ·<br />

⎟<br />

⎝<br />

ρ k−1 θ k<br />

⎠<br />

ρ k<br />

Las relaciones dadas en (67) pue<strong>de</strong>n reescribirse,<br />

A T r 0 = V k (θ 1 e 1 ) , (68)<br />

AV k = P k R k , (69)<br />

A T P k = V k R T k + θ k+1v k+1 e T k (70)<br />

21


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

y también en aritmética exacta se verifica que P T k P k = I y Vk T V k = I.<br />

Otra forma <strong>de</strong> resolver el problema <strong>de</strong> Ecuación Normal se pue<strong>de</strong> <strong>de</strong>rivar <strong>de</strong> forma análoga.<br />

Definiendo s = −Ax, po<strong>de</strong>mos escribir la ecuación (61) como,<br />

( ) ( ) ( )<br />

I A s 0<br />

A T −λ 2 =<br />

I x −A T (71)<br />

b<br />

Aplicando <strong>de</strong> nuevo el algoritmo <strong>de</strong> Lanczos, <strong>de</strong>spués <strong>de</strong> 2k pasos se habrá transformado en,<br />

( ) ( ) ( )<br />

I Rk qk 0<br />

R T k −λ 2 =<br />

, (72)<br />

I y k −θ 1 e 1<br />

( ) ( ) ( )<br />

sk Pk 0 qk<br />

=<br />

(73)<br />

x k 0 V k y k<br />

don<strong>de</strong> R k es una matriz bidiagonal superior k × k e y k satisface,<br />

(<br />

R<br />

T<br />

k R k + λ 2 I ) y k = θ 1 e 1 (74)<br />

Se pue<strong>de</strong> ver que las matrices generadas en ambos procesos <strong>de</strong> bidiagonalización, B k , U k+1 ,<br />

R k , P k y V k son in<strong>de</strong>pendientes <strong>de</strong> λ, por tanto, son generadas igualmente cuando λ = 0.<br />

Las matrices, los vectores y parámetros generados en la primera bidiagonalización son usados<br />

para resolver el problema <strong>de</strong> Ecuación Normal,<br />

Los vectores,<br />

<strong>de</strong>pen<strong>de</strong>n <strong>de</strong> y k , y se tiene que,<br />

mín ‖b − Ax‖<br />

x k = V k y k (75)<br />

r k = b − Ax k (76)<br />

t k+1 = β 1 e 1 − B k y k (77)<br />

r k = U k+1 t k+1 (78)<br />

Debemos minimizar ‖r k ‖ y como teóricamente las columnas <strong>de</strong> la matriz U k+1 son ortonormadas,<br />

la elección <strong>de</strong> y k <strong>de</strong>be ser tal que minimice ‖t k+1 ‖. Es <strong>de</strong>cir, el problema a resolver es,<br />

mín ‖β 1 e 1 − B k y k ‖ (79)<br />

La factorización QR <strong>de</strong> B k es la misma <strong>de</strong> los procesos <strong>de</strong> bidiagonalización y toma la forma,<br />

⎛<br />

⎞<br />

ρ 1 θ 2<br />

φ 1<br />

(<br />

Q k Bk<br />

(<br />

) Rk<br />

β 1 e 1 = )<br />

ρ 2 θ 3<br />

φ 2<br />

f k<br />

≡<br />

· · · · · · · · ·<br />

φ k+1 ⎜<br />

ρ k−1 θ k φ k−1<br />

⎟<br />

⎝<br />

ρ k φ k<br />

⎠<br />

φ k+1<br />

don<strong>de</strong> Q k ≡ Q k,k+1 . . . Q 2,3 Q 1,2 es un producto <strong>de</strong> rotación <strong>de</strong> planos y los vectores y k y t k+1<br />

22


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

pue<strong>de</strong>n ser obtenidos <strong>de</strong> la forma,<br />

t k+1 = Q T k<br />

R k y k = f k (80)<br />

( 0<br />

φ k+1<br />

)<br />

Como ( R k f k<br />

)<br />

es la misma matriz que<br />

(<br />

Rk−1 f k−1<br />

)<br />

pero con una nueva fila y columna<br />

añadidas, se pue<strong>de</strong>n combinar a<strong>de</strong>cuadamente las <strong>ecuaciones</strong> (75) y (80) para obtener,<br />

(81)<br />

x k = V k R −1<br />

k f k = D k f k (82)<br />

don<strong>de</strong> las columnas <strong>de</strong> D k = ( d 1 d 2 · · · d k<br />

)<br />

se obtienen sucesivamente <strong>de</strong> la resolución<br />

<strong>de</strong>l sistema R T k D k = V T k . Con d 0 = x 0 = 0, se obtienen,<br />

d k = 1 ρ k<br />

(v k − θ k d k−1 ) , (83)<br />

x k = x k−1 + φ k d k (84)<br />

La factorización QR anterior es <strong>de</strong>teminada para construir el k-ésimo plano <strong>de</strong> rotación<br />

Q k,k+1 que opera en las filas k y k + 1 <strong>de</strong> ( )<br />

B k β 1 e 1 para eliminar βk+1 . Las relaciones <strong>de</strong><br />

recurrencia pue<strong>de</strong>n expresarse,<br />

( ) ( ) ( )<br />

ck s k ρk 0 φ k ρk θ<br />

=<br />

k+1 φ k<br />

(85)<br />

s k −c k β k+1 α k+1 0 0 ρ k+1 φ k+1<br />

don<strong>de</strong> ρ 1 = α 1 , φ 1 = β 1 y los escalares c k y s k son elementos no triviales <strong>de</strong> Q k,k+1 . Los escalares<br />

ρ k y φ k se van reemplazando secuencialmente por ρ k y φ k . Por otro lado, en la ecuación<br />

(83) se pue<strong>de</strong> usar el vector w k = ρ k d k en lugar <strong>de</strong> d k .<br />

Para la estimación <strong>de</strong> ‖r k ‖, se tiene en cuenta las expresiones (78) y (81),<br />

y, asumiendo que U T k+1 U k+1 = I, se obtiene,<br />

ALGORITMO LSQR PRECONDICIONADO<br />

Aproximación inicial x 0 . r 0 = b − Ax 0 ;<br />

Resolver Mz 0 = r 0 ;<br />

β 1 = ‖z 0 ‖, u 1 = z 0 /β 1 ;<br />

Resolver M T s 1 = u 1 ;<br />

α 1 = ∥ ∥ A T s 1<br />

∥ ∥, v1 = A T s 1 /α 1 , w 1 = v 1 ;<br />

φ 1 = β 1 , ρ 1 = α 1 ;<br />

Mientras φ j / ‖ r 0 ‖≥ ε ( j = 1, ...), hacer<br />

p j = Av j ;<br />

Resolver Mq j = p j ;<br />

β j+1 = ‖q j − α j u j ‖;<br />

r k = φ k+1 Q T k U k+1e k+1 (86)<br />

‖r k ‖ = φ k+1 = β 1 s k s k−1 · · · s 1 (87)<br />

23


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

Fin<br />

u j+1 = q j − α j u j<br />

β j+1<br />

;<br />

Resolver Ms j+1 = u j+1 ;<br />

α j+1 = ∥ ∥ A T s j+1 − β j+1 v j<br />

∥ ∥;<br />

v j+1 = AT s j+1 − β j+1 v j<br />

;<br />

α j+1<br />

ρ j = ( ρ 2 j + β2 j+1<br />

c j = ρ j<br />

ρ j<br />

;<br />

) 1<br />

2<br />

;<br />

s j = β j+1<br />

;<br />

ρ j<br />

θ j+1 = s j α j+1 ;<br />

ρ j+1 = −c j α j+1 ;<br />

φ j = c j φ j ;<br />

φ j+1 = s j φ j ;<br />

( )<br />

φj<br />

x j = x j−1 + w j ;<br />

ρ j<br />

w j+1 = v j+1 −<br />

(<br />

θj+1<br />

ρ j<br />

)<br />

w j ;<br />

5. EXPERIMENTOS NUMÉRICOS<br />

En esta sección consi<strong>de</strong>ramos algunos problemas obtenidos <strong>de</strong> aplicaciones científicas e<br />

industriales. Mostraremos la efectividad tanto <strong>de</strong> los precondicionadores <strong>sparse</strong> con tres <strong>de</strong><br />

los métodos iterativos expuestos anteriormente. Todos los cálculos númericos se realizaron<br />

en FORTRAN con doble precisión. Se tomó siempre como aproximación inicial x 0 = 0,<br />

˜r 0 = r 0 = b, y como criterio <strong>de</strong> parada ‖b−Ax i‖ 2<br />

< 10 −9 . A continuación mostramos una<br />

‖b‖ 2<br />

breve <strong>de</strong>scripción <strong>de</strong> los problemas.<br />

En problema LightTruck proviene <strong>de</strong> una simulación numérica <strong>de</strong> un filtro <strong>de</strong> carbón activo<br />

en 3D. El fenómeno físico dominante en estos dispositivos es el transporte <strong>de</strong> hidrocarburos.<br />

Huerta y otros [19], han <strong>de</strong>sarrollado un mo<strong>de</strong>lo <strong>de</strong> convección-difusión-reacción <strong>de</strong>l <strong>tipo</strong>,<br />

∂u<br />

+ v · ∇u − ν∆u + σ (u) u = f (u)<br />

∂t<br />

don<strong>de</strong> u es la concentración <strong>de</strong> hidrocarburos en el aire, v representa el campo <strong>de</strong> velocida<strong>de</strong>s<br />

<strong>de</strong>l aire, calculado previamente resolviendo un problema <strong>de</strong> flujo potencial y ν es el coeficiente<br />

<strong>de</strong> difusión. El término <strong>de</strong> reacción σ (u) u y el término fuente f (u) son fuertemente no<br />

<strong>lineales</strong>.<br />

Se han consi<strong>de</strong>rado tres <strong>sistemas</strong> <strong>de</strong> <strong>ecuaciones</strong> correspondientes a la discretización por elementos<br />

finitos para tres pasos <strong>de</strong> tiempo diferentes (4030, 10044 y 16802) <strong>de</strong>l proceso evolutivo,<br />

si bien sólo se presentan resultados para el último, al ser prácticamente los mismos en los tres<br />

24


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

casos. La matriz <strong>de</strong> coeficientes <strong>de</strong> or<strong>de</strong>n n = 17914, es simétrica y la misma para los tres <strong>sistemas</strong>,<br />

cambiando únicamente el segundo miembro en cada caso. Las figuras 1 y 2 muestran la<br />

comparativa <strong>de</strong> tiempos e iteraciones, respectivamente, <strong>de</strong>l CG con varios precondicionadores,<br />

don<strong>de</strong> se observa que este caso el SSOR es la mejor elección. En la figura 3 se comprueba que<br />

el coste computacional <strong>de</strong>l CG es muy inferior al <strong>de</strong> cualquier otro método correspondiente a<br />

<strong>sistemas</strong> no simétricos.<br />

El ejemplo (convdifhor) es un problema <strong>de</strong> convección difusión <strong>de</strong>finido en [0, 1]×[0, 1] por,<br />

( )<br />

∂u ∂ 2<br />

v 1<br />

∂x − K u<br />

∂x + ∂2 u<br />

= F<br />

2 ∂y 2<br />

don<strong>de</strong> v 1 = 10 4 ( y − 1 2)<br />

(x − x 2 ) ( 1<br />

2 − x) , K = 10 −5 − 10 2 , y F = 10 3 − 1.<br />

La matriz correspon<strong>de</strong> a una malla no estructurada <strong>de</strong> elementos finitos con n = 441 y<br />

nz = 2927, n = 1960 y nz = 13412, y n = 13190 y nz = 91227, respectivamente.<br />

La convergencia <strong>de</strong>l BiCGSTAB mejora cuando se usa el precondicionador <strong>sparse</strong> para convdifhor.<br />

El número <strong>de</strong> iteraciones disminuye claramente con ε k . Sin embargo, para obtener una<br />

inversa aproximada <strong>de</strong> A, las entradas por colmunas <strong>de</strong>ben aumentarse a 200. La figura 5 se<br />

muestra que las inversas aproximadas <strong>tipo</strong> <strong>sparse</strong> pue<strong>de</strong>n mejorar el comportamiento <strong>de</strong> algunos<br />

precondicionadores clásicos como el ILU(0) y ser competitivas cuando se realizan los<br />

cálculos en paralelos. En las figuras 4a-4b se muestran los gráficos <strong>de</strong> la estructura <strong>sparse</strong> <strong>de</strong> A<br />

y M, respectivamente, para este problema. Po<strong>de</strong>mos observar que los patrones <strong>de</strong> sparsidad <strong>de</strong><br />

A y A −1 son totalmente diferentes y no po<strong>de</strong>mos, por tanto, <strong>de</strong>finir la estructura <strong>de</strong> M igual a<br />

la <strong>de</strong> A, ni en general a la <strong>de</strong> una matriz fija.<br />

En la figura 6 se compara la convergencia <strong>de</strong> BiCGSTAB-SPAI(0.2) para las diferentes reor<strong>de</strong>naciones<br />

en el caso <strong>de</strong> n = 1960. Claramente, las reor<strong>de</strong>naciones producidas por los algoritmos<br />

<strong>de</strong> Grado Mínimo y Cuthill-Mckee Inverso tiene un efecto beneficioso en la velocidad <strong>de</strong><br />

convergencia <strong>de</strong>l algoritmo BiCGSTAB-SPAI. La reducción <strong>de</strong>l número <strong>de</strong> entradas en la SPAI<br />

es <strong>de</strong>l 40-50 % para los casos <strong>de</strong> reor<strong>de</strong>nación con Grado Mínimo y Cuthill-Mckee Inverso. El<br />

algoritmo <strong>de</strong> Mínimo Vecino no afecta a nz. A<strong>de</strong>más, el número <strong>de</strong> iteraciones <strong>de</strong>l BiCGSTAB<br />

se redujo mediante las renumericaciones <strong>de</strong>l 60-70 %. Como estamos interesados en el efecto<br />

<strong>de</strong> la reor<strong>de</strong>nación <strong>de</strong> A en las características <strong>de</strong> los precondicionadores SPAI, en las figuras<br />

7a-7b se muestra la estructura <strong>sparse</strong> <strong>de</strong> la matriz M con ε k = 0,3 para or<strong>de</strong>nación Original,<br />

Grado Mínimo, Cuthill-Mckee Inverso y Mínimo Vecino, respectivamente. La estructuras correspondientes<br />

representan matrices llenas, como cabía esperar. Sin embargo, se advierte cierto<br />

paralelismo con la estructura <strong>de</strong> A para las diferentes reor<strong>de</strong>naciones. La reducción <strong>de</strong>l ancho<br />

<strong>de</strong> banda y <strong>de</strong>l perfil llevada a cabo por el algoritmo <strong>de</strong> Cuthill-Mckee Inverso en la matriz A<br />

se conserva <strong>de</strong> alguna manera en la matriz M, incluso cuando existe una ten<strong>de</strong>ncia a explotar<br />

algunas entradas fuera <strong>de</strong>l perfil. Los patrones <strong>de</strong> las matrices SPAI correspondientes a Grado<br />

Mínimo y Mínimo Vecino también conservan en parte las estructuras <strong>de</strong> la matriz A reor<strong>de</strong>nada,<br />

respectivamente, aún cuando nuestro algoritmo SPAI no tiene por qué producir matrices M con<br />

estructura simétrica.<br />

25


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

2<br />

0<br />

CG<br />

CG+jacobi<br />

CG+illt<br />

CG+ssor<br />

CG+diagopt<br />

-2<br />

log(||r||/||b||)<br />

-4<br />

-6<br />

-8<br />

-10<br />

-12<br />

0 1 2 3 4 5<br />

Tiempo <strong>de</strong> CPU en s.<br />

Figura 1. Comportamiento <strong>de</strong> los prencondicionadores con CG (Tiempos)<br />

2<br />

0<br />

CG<br />

CG+jacobi<br />

CG+illt<br />

CG+ssor<br />

CG+diagopt<br />

-2<br />

log(||r||/||b||)<br />

-4<br />

-6<br />

-8<br />

-10<br />

-12<br />

0 50 100 150 200 250 300 350 400 450 500<br />

Iteraciones<br />

Figura 2. Comportamiento <strong>de</strong> los prencondicionadores con CG (Iteraciones)<br />

6<br />

4<br />

GC+ILLT<br />

VGMRES+ILLT<br />

BiCGSTAB+ILLT<br />

QMRCGSTAB+ILLT<br />

2<br />

0<br />

log(||r||/||b||<br />

-2<br />

-4<br />

-6<br />

-8<br />

-10<br />

-12<br />

1 2 3 4 5 6 7 8 9 10<br />

Tiempo <strong>de</strong> CPU en s.<br />

Figura 3. Comportamiento <strong>de</strong> los métodos <strong>de</strong> Krylov (Tiempos)<br />

26


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

(a) Estructura <strong>sparse</strong> <strong>de</strong> la matriz A<br />

(b) Estructura <strong>sparse</strong> <strong>de</strong> la inversa aproximada<br />

con ε k = 0,5 y máx nz(m 0k ) = 50<br />

(c) Estructura <strong>sparse</strong> <strong>de</strong> la inversa aproximada<br />

con ε k = 0,5 y máx nz(m 0k ) = 50<br />

(d) Estructura <strong>sparse</strong> <strong>de</strong> la inversa aproximada<br />

con ε k = 0,05 y máx nz(m 0k ) =<br />

200<br />

Figura 4. Patrón <strong>de</strong> sparsidad <strong>de</strong> A e inversas aproximadas para convdifhor, n = 441.<br />

27


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

2<br />

0<br />

-2<br />

"Unprec."<br />

"ILU0"<br />

"Tol=0.05_nz=200"<br />

"Tol=0.05"<br />

"Tol=0.2"<br />

"Tol=0.3"<br />

"Tol=0.4"<br />

"Tol=0.5"<br />

Log(||r||/||b||)<br />

-4<br />

-6<br />

-8<br />

-10<br />

20 40 60 80 100 120<br />

Iteraciones<br />

Figura 5. Comportamiento <strong>de</strong> los prencondicionadores con BiCGSTAB para convdifhor, n = 441.<br />

0<br />

-1<br />

-2<br />

SPAI(0.2)<br />

SPAI(0.2)-mdg<br />

SPAI(0.2)-rcm<br />

SPAI(0.2)-mn<br />

-3<br />

-4<br />

Log(||r||/||b||)<br />

-5<br />

-6<br />

-7<br />

-8<br />

-9<br />

-10<br />

-11<br />

0 10 20 30 40 50 60 70 80 90<br />

Iteraciones<br />

Figura 6. Comparación <strong>de</strong>l comportamiento <strong>de</strong> BiCGSTAB-SPAI con reor<strong>de</strong>nación para convdifhor, n = 1960.<br />

La figura 8 muestra la convergencia <strong>de</strong> los diferentes métodos <strong>de</strong> Krylov con ILU(0) para<br />

el caso n = 13190. Se observa una convergencia rápida pero irregular en el BiCGSTAB. En<br />

cambio, el QMRCGSTAB elimina estas irregularida<strong>de</strong>s aunque con un ligero aumento <strong>de</strong>l coste.<br />

En este caso, el ILU(0) se muestra más eficiente que el resto <strong>de</strong> precondicionadores para el<br />

QMRCGSTAB, como se observa en la figura 9. Finalmente, la reor<strong>de</strong>nación reduce el coste a<br />

menos <strong>de</strong>l 50 % para obtener convergencia con QMRCGSTAB-ILU(0).<br />

6. CONCLUSIONES<br />

Los métodos basados en subespacios <strong>de</strong> Krylov ofrecen un amplio abanico <strong>de</strong> posibilida<strong>de</strong>s<br />

para la resolución <strong>de</strong> <strong>sistemas</strong> <strong>de</strong> <strong>ecuaciones</strong> <strong>lineales</strong>. Si bien en el caso simétrico la elección<br />

está clara (CG), en el caso no simétrico ésta <strong>de</strong>pen<strong>de</strong> <strong>de</strong> varios factores: proceso evolutivo,<br />

capacidad <strong>de</strong> memoria disponible, posibilidad <strong>de</strong> gran<strong>de</strong>s oscilaciones en la convergencia, ...<br />

28


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

(a) Or<strong>de</strong>nación Original<br />

(b) Grado Mínimo<br />

(c) Cuthill-Mckee Inverso<br />

(d) Mínimo Vecino<br />

Figura 7. Patrón <strong>de</strong> sparsidad <strong>de</strong> la matriz SPAI(0.3) con diferentes reor<strong>de</strong>naciones para convdifhor, n = 1960.<br />

29


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

0<br />

-1<br />

VGMRES+ILU<br />

LSQR+ILU<br />

BiCGSTAB+ILU<br />

QMRCGSTAB+ILU<br />

-2<br />

-3<br />

-4<br />

log(||r||/||b||)<br />

-5<br />

-6<br />

-7<br />

-8<br />

-9<br />

0 5 10 15 20<br />

Iteraciones<br />

Figura 8. Comportamiento <strong>de</strong> los métodos <strong>de</strong> Krylov (Iteraciones)<br />

0<br />

-1<br />

QMRCGSTAB<br />

QMRCGSTAB+DIAG_OPT<br />

QMRCGSTAB+ILU<br />

QMRCGSTAB+JACOBI<br />

QMRCGSTAB+SSOR<br />

-2<br />

-3<br />

-4<br />

log(||r||/||b||)<br />

-5<br />

-6<br />

-7<br />

-8<br />

-9<br />

-10<br />

-11<br />

0 5 10 15 20 25 30 35 40 45<br />

Tiempo <strong>de</strong> CPU en s.<br />

Figura 9. Comportamiento <strong>de</strong> los precondicionadores con el QMRCGSTAB (Tiempos)<br />

El algoritmo propuesto para calcular un precondicionador <strong>sparse</strong> M 0 <strong>de</strong> una matriz <strong>sparse</strong><br />

no simétrica A, se pue<strong>de</strong> construir en paralelo ya que las columnas (o filas) <strong>de</strong> M 0 se obtienen<br />

in<strong>de</strong>pendientemente unas <strong>de</strong> otras. El patrón <strong>de</strong> sparsidad <strong>de</strong> estos precondicionadores se<br />

construye dinámicamente partiendo <strong>de</strong>l diagonal aumentando el número <strong>de</strong> entradas no nulas.<br />

Evi<strong>de</strong>ntemente, este precondicionador pue<strong>de</strong> ser competitivo, si se trabaja en paralelo, con los<br />

tradicionales precondicionadores implícitos. Esto <strong>de</strong>pen<strong>de</strong>rá en gran medida <strong>de</strong>l problema y<br />

<strong>de</strong> la arquitectura <strong>de</strong>l or<strong>de</strong>nador. No obstante, se ha <strong>de</strong>mostrado <strong>de</strong> forma teórica y práctica la<br />

eficacia <strong>de</strong> este precondicionador en la mejora la convergencia <strong>de</strong> los métodos iterativos.<br />

Hemos probado experimentalmente que las técnicas <strong>de</strong> reor<strong>de</strong>nación tienen efectos beneficiosos<br />

sobre los precondicionadores para la convergencia <strong>de</strong> los métodos <strong>de</strong> Krylov, y en concreto,<br />

en la ejecución <strong>de</strong> inversas aproximadas <strong>sparse</strong>. La reducción <strong>de</strong>l número <strong>de</strong> entradas no<br />

nulas <strong>de</strong>bido a la reor<strong>de</strong>nación permite obtener inversas aproximadas <strong>sparse</strong> con una exactitud<br />

30


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

0<br />

-1<br />

QMRCGSTAB+ILU<br />

QMRCGSTAB+ILU+MDG<br />

QMRCGSTAB+ILU+RCM<br />

-2<br />

-3<br />

-4<br />

log(||r||/||b||)<br />

-5<br />

-6<br />

-7<br />

-8<br />

-9<br />

-10<br />

-11<br />

0 1 2 3 4 5 6 7<br />

Tiempo <strong>de</strong> CPU en s.<br />

Figura 10. Efecto <strong>de</strong> la reor<strong>de</strong>nación en el QMRCGSTAB precondicionado con ILU (Tiempos)<br />

similar a las obtenidas sin reor<strong>de</strong>nación, pero con menores requerimientos <strong>de</strong> almacenamiento<br />

y coste computacional. A<strong>de</strong>más, la reor<strong>de</strong>nación produce precondicionadores con mejores cualida<strong>de</strong>s<br />

puesto que generalmente se reduce el número <strong>de</strong> pasos para alcanzar la convergencia.<br />

Sería interesante estudiar el efecto <strong>de</strong> otras técnicas <strong>de</strong> reor<strong>de</strong>nación que tengan en cuenta<br />

las entradas numéricas <strong>de</strong> A (ver [23], [26]). Aún cuando estas técnicas son caras, en el caso<br />

en que haya que resolver muchos <strong>sistemas</strong> <strong>de</strong> <strong>ecuaciones</strong> <strong>lineales</strong> con la misma matriz, dichas<br />

técnicas pue<strong>de</strong>n ser competitivas en máquinas en paralelo.<br />

AGRADECIMIENTOS<br />

Este trabajo ha sido parcialmente subvencionado por el Ministerio <strong>de</strong> Ciencia y Tecnología<br />

y fondos FEDER a través <strong>de</strong>l proyecto REN2001-0925-C03-02/CLI.<br />

REFERENCIAS<br />

[1] W.E. Arnoldi, The Principle of Minimized Iteration in the Solution of the Matrix Eingenvalue<br />

Problem, Quart. Appl. Math., 9, 17-29 (1951)<br />

[2] M. Benzi, D.B. Szyld y A. van Duin, Or<strong>de</strong>rings for incomplete factorization preconditioning<br />

of nonsymmetric problems, SIAM J. Sci. Comput., 20, 5, 1652-1670, 1999<br />

[3] M. Benzi y M. Tůma, A <strong>sparse</strong> approximate inverse preconditioner for nonsymmetric linear<br />

systems, SIAM J. Sci. Comput., 19, 3, 968-994, 1998<br />

[4] M. Benzi y M. Tůma, A comparative study of <strong>sparse</strong> approximate inverse preconditioners,<br />

Appl. Num. Math., 30, 305-340, 1999<br />

[5] M. Benzi y M. Tůma, Or<strong>de</strong>rings for factorized <strong>sparse</strong> approximate inverse preconditioners,<br />

SIAM J. Sci. Comput., to appear<br />

[6] T.F. Chan, E. Gallopoulos, V. Simoncini, T. Szeto y C.H. Tong, A Quasi-Minimal Residual<br />

Variant of the Bi-CGSTAB Algorithm for Nonsymmetric Systems, SIAM J. Sci. Statist.<br />

Comput., 15, 338-247 (1994)<br />

31


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

[7] T.F. Chan y T. Szeto, Composite Step Product Methods for Solving Nonsymmetric Linear<br />

Systems, SIAM J. Sci. Comput., 17, 6, 1491-1508 (1996)<br />

[8] E.H. Cuthill y J.M. Mckee, Reducing the Bandwidth of Sparse Symmetric Matrices, Proc.<br />

24th National Conference of the Association for Computing Machinery, Brondon Press,<br />

New Jersey, 157-172 (1969)<br />

[9] L.C. Dutto, The Effect of Or<strong>de</strong>ring on Preconditioned GMRES Algorithm, Int. Jour. Num,<br />

Meth. Eng., 36, 457-497 (1993)<br />

[10] E. Flórez, M.D. García, L. González y G. Montero, The effect of or<strong>de</strong>rings on <strong>sparse</strong> approximate<br />

inverse preconditioners for non-symmetric problems, Adv. Engng. Software, 33,<br />

7-10, 611-619, 2002<br />

[11] M. Galán, G. Montero y G. Winter, Variable GMRES: an Optimizing Self-Configuring<br />

Implementation of GMRES(k) with Dynamic Memory Allocation, Tech. Rep. of CEANI,<br />

(1994)<br />

[12] M. Galán, G. Montero y G. Winter, A Direct Solver for the Least Square Problem Arising<br />

From GMRES(k), Com. Num. Meth. Eng., 10, 743-749 (1994)<br />

[13] A. George, Computer Implementation of the Finite Element Method, Report Stan CS-71-<br />

208, (1971)<br />

[14] A. George y J.W. Liu, The Evolution of the Minimum Degree Or<strong>de</strong>ring Algorithms, SIAM<br />

Rev. 31, 1-19 (1989)<br />

[15] G.H. Golub y Kahan W., Calculating the Singular Values and Pseudoinverse of a Matrix.<br />

SIAM J. Numer. Anal., 2, 205-224 (1965)<br />

[16] A. Greenbaum y L.N. Trefethen, GMRES/CR and Arnoldi/Lanczos as Matrix Approximation<br />

Problems, SIAM J. Sci. Comput., 15, 2, 359-368 (1994)<br />

[17] M. Grote y T. Huckle, Parallel preconditioning with <strong>sparse</strong> approximate inverses, SIAM J.<br />

Sci. Comput., 18, 3, 838-853, 1997<br />

[18] M.R. Hestenes y E. Stiefel, Methods of Conjugate Gradients for Solving Linear Systems,<br />

Jour. Res. Nat. Bur. Sta., 49, 6, 409-436, (1952)<br />

[19] A. Huerta, A. Rodríguez-Ferrán, J. Sarrate, P. Díez. y S. Fernán<strong>de</strong>z-Mén<strong>de</strong>z, Numerical<br />

Mo<strong>de</strong>lling, a Tool to Improve the Design of Active Carbon Canisters, in Abstracts of the<br />

Sixth U.S. National Congress on Computational Mechanics, Dearborn, Michigan, (2001)<br />

[20] W. Joubert, A Robust GMRES-based Adaptive Polynomial Preconditioning Algorithm for<br />

Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 15, 2, 427-439 (1994)<br />

[21] E.M. Kasenally, GMBACK: A Generalised Minimum Backward Error Algorithm for<br />

Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 16, 3, 698-719 (1995)<br />

[22] C. Lanczos, Solution of Systems of Linear Equations by Minimized Iterations, Jour. Res.<br />

Nat. Bur. Sta., 49, 1, 33-53, (1952)<br />

[23] R.R. Lewis, Simulated Annealing for Profile and Fill Reduction of Sparce Matrices, Int.<br />

Jour. Num, Meth. Eng., 37, 905-925 (1994)<br />

[24] I.L. Lim, I.W. Johnston y S.K. Choi, A Comparison of Algorithms for Profile Reduction<br />

of Sparse Matrices, Computers & Structures, 57, 2, 297-302 (1995)<br />

[25] M. Monga-Ma<strong>de</strong>, Or<strong>de</strong>ring Strategies for Modified Block Incomplete Factorizations,<br />

32


⊳ Gustavo Montero, Rafael Montenegro, José María Escobar y Eduardo Rodríguez ⊲<br />

SIAM J. Sci. Comput., 16, 2, 378-399 (1995)<br />

[26] G. Montero, M. Galán, P. Cuesta y G. Winter, Effects of stochastic or<strong>de</strong>ring on preconditioned<br />

GMRES algorithm, in B.H.V. Topping & M. Papadrakakis editors,.Advances in<br />

Structural Optimization, 241-246, Civil-Comp Press, Edinburgh, 1994<br />

[27] G. Montero, L. González, E. Flórez, M.D. García y A. Suárez, Short Communication:<br />

Approximate inverse computation using Frobenius inner product, Num. Lin. Alg. Appl., 9,<br />

239-247, (2002)<br />

[28] G. Montero, G. Winter, A. Suárez, M. Galán y D. García, Contribution to Iterative Methods<br />

for Nonsymmetric Linear Systems: GMRES, BCG and QMR Type Methods, in Computational<br />

Methods and Neural Networks. Part Two: Computational Methods, M. Sambandhamy<br />

M.P. Bekakos, Eds., Dynamic Publishers, Inc., 97-128 (1999)<br />

[29] G. Montero, R. Montenegro, G. Winter y L. Ferragut, Aplicacion <strong>de</strong> Esquemas EBE en<br />

Procesos Adaptativos, Rev. Int. Met. Num. Cal. Dis. Ing., 6, 311-332 (1990)<br />

[30] N.M. Nachttigal, S.C. Reddy y L.N. Trefethen, How Fast Are Nonsymmetric Matrix Iterations?,<br />

SIAM J. Matr. Anal. Appl., 13, 3, 796-825 (1992)<br />

[31] N.M. Nachttigal, L. Reichel y L.N. Trefethen, A Hybrid GMRES Algorithm for Nonsymmetric<br />

Linear Systems, SIAM J. Matr. Anal. Appl., 13, 3, 778-795 (1992)<br />

[32] C.C. Paige y M.A. Saun<strong>de</strong>rs, LSQR: An Algorithm for Sparse Linear Equations and Sparse<br />

Least Squares, ACM Trans. Math. Sof., 8, 1, 43-71 (1982)<br />

[33] Y. Saad y M. Schultz, GMRES: A Generalized Minimal Residual Algorithm for Solving<br />

Nonsymmetric Linear Systems, SIAM J. Sci. Statist. Comput., 7, 856-869 (1986)<br />

[34] P. Sonneveld, CGS: a Fast Lanczos-Type Solver for Nonsymmetric Linear Systems, SIAM<br />

J.Sci. Statist. Comput., 10, 36-52 (1989)<br />

[35] A. Suárez, G. Montero, D. García y E. Flórez, Efecto <strong>de</strong> la Elección <strong>de</strong>l Vector Inicial en<br />

la Convergencia <strong>de</strong> los Algoritmos CGS y BICGSTAB, en Encuentro <strong>de</strong> Análisis Matricial<br />

y Aplicaciones (EAMA 97), Sevilla (1997)<br />

[36] H.A. van <strong>de</strong>r Vorst, Bi-CGSTAB: A Fast and Smoothly Converging Variant of Bi-CG for<br />

the Solution of Nonsymmetric Linear Systems, SIAM J. Sci. Comput., 13, 631-644 (1992)<br />

[37] H.A. van <strong>de</strong>r Vorst y C. Vuik, GMRESR: A Family of Nested GMRES Methods, Tech,<br />

Rep. 91-80, Delft University of Technology, Mathematics and Informatics, Delft, The Netherlands,<br />

(1991)<br />

[38] H.F. Walker, Implementation of the GMRES Method Using Househol<strong>de</strong>r Transformations,<br />

SIAM J. Sci. Comput., 9, 152-163 (1988)<br />

[39] P.M. <strong>de</strong> Zeeuw, Incomplete Line LU as Smoother and as Preconditioner, en Eighth<br />

GAMM-Seminar, Kiel, 215-224 (1992)<br />

33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!