métodos de krylov -...

57
etodos de Krylov Dami´ an Ginestar Peir´ o Departamento de Matem´ atica Aplicada Universidad Polit´ ecnica de Valencia Curso 2013-2014 (UPV) etodos de Krylov Curso 2013-2014 1 / 57

Upload: ngothu

Post on 30-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Metodos de Krylov

Damian Ginestar Peiro

Departamento de Matematica Aplicada

Universidad Politecnica de Valencia

Curso 2013-2014

(UPV) Metodos de Krylov Curso 2013-2014 1 / 57

Indice

1 Introduccion

2 Matrices simetricasMetodo del residuo conjugado

3 Matrices no simetricasmetodo FOM (full orthogonalization method)Metodo GMRESMetodos BICG

Metodo Bi-CG

Metodo QMRAlgoritmo GC cuadradoMetodo Bi-CGSTAB

4 Metodos de Krylov en Matlab

(UPV) Metodos de Krylov Curso 2013-2014 2 / 57

Metodos de Krylov

Vimos que el metodo de Richardson construye la sucesion

xk+1 = x0 +k∑

i=0

(I − A)i r0

ası xk+1 ∈ span{x0, r0,Ar0,A2r0, · · · ,Ak r0}.

Para los residuos se tiene

rk+1 = b − Ax0 − Ak∑

i=0

(I − A)i r0 = r0 − Ak∑

i=0

(I − A)i r0 .

y ası rk+1 ∈ span{r0,Ar0,A2r0, · · · ,Ak+1r0}.

(UPV) Metodos de Krylov Curso 2013-2014 3 / 57

Metodos de Krylov

El espacio span{r0,Ar0,A2r0, · · · ,Ak−1r0} se llama subespacio de Krylovde dimension k, correspondiente a la matriz A y residuo inicial r0

K k(A; r0) = span{r0,Ar0,A2r0, · · · ,Ak−1r0}

¿Se puede usar la informacion contenida en K k(A; r0) de forma maseficiente que con el metodo de Richardson?

(UPV) Metodos de Krylov Curso 2013-2014 4 / 57

Metodos de Krylov

Por ejemplo, como ya hemos visto, el metodo de descenso mas rapido sebasa en iteraciones de la forma

xk+1 = xk + αk rk

rk+1 = b − Axk+1 = rk − αkArk .

Para este metodo xk+1 ∈ x0 ∪ K k+1(A; r0)

(UPV) Metodos de Krylov Curso 2013-2014 5 / 57

Metodos de Krylov

Los metodos de proyeccion de un paso se basan en una combinacionoptima de los dos ultimos vectores base del subespacio de Krylov.

¿Es posible contruir una combinacion lineal optima de todos los vectoresbase del subespacio de Krylov?

La respuesta en dos pasos:

Primero vemos como construir una base para K k(A; r0);

Despues veremos como construir una aproximacion optima como unacombinacion lineal de los vectores base. Primero para matricessimetricas.

(UPV) Metodos de Krylov Curso 2013-2014 6 / 57

Metodos de Krylov

La base mas simple para el subespacio de Krylov K k(A; r0) es la base:r0,Ar0,A

2r0, · · ·Ak−1r0.

Pero esta base esta mal condicionada ya que Ak−1r0 apuntara cada vezmas en la direccion del autovector dominante de A.

Una base estable y ortogonal se puede construir usando el metodo deArnoldi.

(UPV) Metodos de Krylov Curso 2013-2014 7 / 57

Metodos de Krylov

Se elige un vector inicial q1 con ‖q1‖2 = 1.FOR k = 1, · · · DO (iteracion)

v = AqkFOR i = 1, ..., k (ortogonalizacion)

hi ,k = vTqiv = v − hi ,kqi

END FORhk+1,k = ‖v‖2

IF hk+1,k = 0 STOP (subespacio invariante)qk+1 = v/hk+1,k (nuevo vector)

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 8 / 57

Metodos de Krylov

El metodo de Arnoldi se puede resumir en:

Hk =

h1,1 . . . . . . h1,k

h2,1. . .

.... . .

. . ....

O hk,k−1 hk,k

y Qk = [q1 q2 · · · qk ] entonces

AQk = QkHk + hk+1,kqk+1eTk

donde ek es el k − esimo vector de la base canonica de Rk .

(UPV) Metodos de Krylov Curso 2013-2014 9 / 57

Metodos de Krylov

Si A es simetrica de acuerdo a la relacion de Arnoldi

QTk AQk = Hk .

Como A es simetrica

HTk = QT

k ATQk = QTk AQk = Hk .

Ası Hk es simetrica y Hessenberg superior luego Hk es tridiagonal.

(UPV) Metodos de Krylov Curso 2013-2014 10 / 57

Metodos de Krylov

Ası

Hk =

h1,1 h2,1 O

h2,1. . .

. . .. . .

. . . hk,k−1

O hk,k−1 hk,k

.

Con αk = hk,k y βk = hk−1,k el metodo de Arnoldi se simplifica en elmetodo de Lanczos.

Con el metodo de Lanczos es posible calcular un nuevo vector baseortogonal utilizando solo los dos vectores base previos.

(UPV) Metodos de Krylov Curso 2013-2014 11 / 57

Metodos de Krylov

El metodo de Arnoldi y el metodo de Lanczos se propusieron originalmentecomo metodos iterativos para calcular autovalores de la matriz A:

QTk AQk = Hk

es ‘casi’ una transformacion de similaridad. Los autovalores de Hk sellaman los valores de Ritz de A.

(UPV) Metodos de Krylov Curso 2013-2014 12 / 57

Metodos de Krylov

El metodo de Lanczos nos proporciona un metodo economico para calcularvectores base ortogonales para el subespacio de Krylov K k(A; r0).Nuestra aproximacion se escribe

xk = x0 + Qkyk

donde yk se determina de forma que o bien se minimiza

f (xk) = ‖xk − x‖2A = (xk − x)TA(xk − x)

respecto de la norma inducida por A (simetrica y definida positiva) o bien

g(xk) = ‖A(xk − x)‖22 = rTk rk ,

se minimiza la norma del residuo.

(UPV) Metodos de Krylov Curso 2013-2014 13 / 57

Metodos de Krylov

Se considera la minimizacion del error en la A-norma:

xk = x0 + Qkyk ⇒ f (xk) = (x0 + Qkyk − x)TA(x0 + Qkyk − x) .

Se calcula la derivada respecto de yk , ∂f (xk )∂yk

= 0. Con lo que

QTk AQkyk = QT

k r0

y con QTk AQk = Tk , r0 = ‖r0‖q1 se tiene

Tkyk = ‖r0‖e1

con e1 el primer vector de la base canonica.

(UPV) Metodos de Krylov Curso 2013-2014 14 / 57

Metodos de Krylov

Es facil ver que los residuos son orgonales a los vectores base

rk = r0 − AQkyk ⇒ QTk rk = QT

k r0 − QTk AQkyk = 0

Esta condicion es equivalente a minimizar f (xk) cuando A es SPD.

En este caso se obtiene el metodo del gradiente conjugado.

(UPV) Metodos de Krylov Curso 2013-2014 15 / 57

Metodo del residuo conjugado

El gradiente conjugado minimiza la A-norma del error.Otra forma de construir una aproximacion optima xk es minimizar elresiduo

g(xk) = ‖A(xk − x)‖22 = rTk rk

sobre todos los xk ∈ {x0 ∪ K k(A; b)}.Definiendo

T k =

α1 β2 0

β2 α2. . .

. . .. . .

. . .

0. . .

. . . βkβk αk

βk+1

El metodo de Lanczos se escribe

AQk = Qk+1T k

(UPV) Metodos de Krylov Curso 2013-2014 16 / 57

Metodo del residuo conjugado

El problema es encontrar xk = x0 + Qkyk tal que ‖rk‖ es mınimo.

rk = b − Axk = r0 − AQkyk = ‖r0‖q1 − AQkyk

ası hay que minimizar

‖rk‖ = ‖‖r0‖q1 − AQkyk‖= ‖‖r0‖Qk+1e1 − Qk+1T kyk‖= ‖‖r0‖e1 − T kyk‖

(UPV) Metodos de Krylov Curso 2013-2014 17 / 57

Metodo del residuo conjugado

Resolviendo el sistema sobredeterminado T kyk = ‖r0‖e1 se tienen lasiteraciones

xk = x0 + Qkyk

que minimizan el residuo.

El algoritmo resultante se llama MINRES (o residuo conjugado)

(UPV) Metodos de Krylov Curso 2013-2014 18 / 57

Metodo del residuo conjugado

MINRES

r0 = b − Ax0; p0 = r0 initializacionFOR k = 0, 1, · · · , DO

αk =rTk Ark

(Apk )TApk

xk+1 = xk + αkpkrk+1 = rk − αkApk actualizacion residuo

βk =rTk+1Ark+1

rTk Ark

pk+1 = rk+1 + βkpk actualizacion direccionApk+1 = Ark+1 + βkApk

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 19 / 57

Metodo FOM

En el caso de A simetrica el metodo de Lanczos es muy eficiente, losvectores base nuevos se pueden calcular con una recurrencia de tresterminos.

Esto permite construir metodos muy eficientes que combinanrecurrencias cortas y una condicion de optimalidad para el error.

Veremos ahora como se pueden construir metodos para el caso nosimetrico. Estos metodos usan el metodo de Arnoldi.

(UPV) Metodos de Krylov Curso 2013-2014 20 / 57

Metodo FOM

Metodo de Arnoldi.Se elige un vector inicial q1 con ‖q1‖2 = 1.

FOR k = 1, · · · DO (iteracion)v = AqkFOR i = 1, ..., k ortogonalizacion

hi ,k = vTqiv = v − hi ,kqi

END FORhk+1,k = ‖v‖2

IF hk+1,k = 0 STOP subespacio invarianteqk+1 = v/hk+1,k nuevo vector base

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 21 / 57

Metodo FOM

En forma compacta

Hk =

h1,1 . . . . . . h1,k

h2,1. . .

.... . .

. . ....

O hk,k−1 hk,k

y Qk = [q1 q2 · · · qk ] entonces

AQk = QkHk + hk+1,kqk+1eTk

(UPV) Metodos de Krylov Curso 2013-2014 22 / 57

Metodo FOM

Definiendo

Hk =

h1,1 . . . . . . h1,k

h2,1. . .

.... . .

. . ....

hk,k−1 hk,kO hk+1,k

el metodo de Arnoldi se escribe

AQk = Qk+1Hk

(UPV) Metodos de Krylov Curso 2013-2014 23 / 57

Metodo FOM

El metodo de Anoldi nos da una base ortogonal para el subespacio deKrylov K k(A; r0).Se tiene la aproximacion

xk = x0 + Qkyk

yk es tal que minimiza el error

f (xk) = ‖xk − x‖2A = (xk − x)TA(xk − x)

respecto de la A-norma, o bien minimiza el

g(xk) = ‖A(xk − x)‖22 = rTk rk ,

residuo.

(UPV) Metodos de Krylov Curso 2013-2014 24 / 57

Metodo FOM

Si A no es SPD, la A-norma no esta bien definida.Imponiendo ahora que los residuos sean ortogonales a Qk se tiene

QTk (r0 − AQkyk) = 0⇒ ‖r0‖e1 − Hkyk = 0

Resolviendo el sistema pequeno

yk = ‖r0‖H−1k e1 xk = x0 + Qkyk

Este metodo se llama FOM (Full orthogonalization method).

(UPV) Metodos de Krylov Curso 2013-2014 25 / 57

Metodo FOM

El FOM es equivalente al GC si A es SPD. Pero tiene inconvenientes:

FOM no trata de forma eficiente la memoria: Qk se tiene que guardarcompleta. En cada iteracion, un nuevo vector base se tiene quecalcular y guardar. La ortogonalizacion va siendo cada vez mas caracon k.

FOM no tiene una propiedad de optimalidad.

El metodo es finito, pero esto solo tiene interes teorico ya que setendrıan que calcular n vectores base y guardarlos.

FOM no es robusto ya que Hk podrıa ser singular.

(UPV) Metodos de Krylov Curso 2013-2014 26 / 57

Metodo FOM

El metodo FOM para obtener xk es parte de una familia de tecnicaspara extraer una solucion aproximada a partir de un espacio debusqueda Qk haciendo que el residuo sea ortogonal a un espacio testWk .

Esto se formula como:

Sea xk = x0 + Qkyk . Encontrar yk tal que

W Tk (r0 − AQkyk) = 0

Estas son las condiciones de Petrov-Galerkin.Si Wk = Qk se llaman condiciones de Galerkin.

(UPV) Metodos de Krylov Curso 2013-2014 27 / 57

Metodo GMRES

Veamos un segundo metodo para obtener un mınimo del residuo.

Minimizarg(xk) = ‖A(xk − x)‖2

2 = rTk rk

es un problema bien definido incluso si A es no simetrica.

(UPV) Metodos de Krylov Curso 2013-2014 28 / 57

Metodo GMRES

El problema es encontrar xk = x0 + Qkyk tal que ‖rk‖ es mınimo.

rk = b − Axk = r0 − AQkyk = ‖r0‖q1 − AQkyk

ası

‖rk‖ = ‖‖r0‖q1 − AQkyk‖= ‖‖r0‖Qk+1e1 − Qk+1Hkyk‖= ‖‖r0‖e1 − Hkyk‖

(UPV) Metodos de Krylov Curso 2013-2014 29 / 57

Metodo GMRES

Resolviendo el problema sobredeterminado

Hkyk = ‖r0‖e1

se tienen las iteracionesxk = x0 + Qkyk

que minimizan el residuo.

El algoritmo resultatnte se llama GMRES. GMRES, es uno de los metodosmas populares para resolver sistemas no simetricos

(UPV) Metodos de Krylov Curso 2013-2014 30 / 57

Metodo GMRES

El metodo GMRES es equivalente al MINRES si A es simetrica.Otras caracterısticas son:

GMRES no tiene limitada la memoria: Qk se ha de guardarcompletamente. En cada iteracion se ha de calcular y guardar unnuevo vector de la base. La ortogonalizacion de un nuevo vector sehace cada vez mas cara al aumentar k.

GMRES minimiza la norma del residuo.

El metodo es finito, pero esto solo tiene interes teorico. Para llegar aeste punto, se han de calcular n vectores de la base y se han deguardar.

GMRES es robusto: Hkyk = ‖r0‖e1 tiene siempre una solucion demınimos cuadrados.

(UPV) Metodos de Krylov Curso 2013-2014 31 / 57

Metodos BICG

Los metodos de Arnoldi minimzan el residuo, calculando un nuevo vectorortogonal de la base en cada iteracion. El coste de hacer esto se haceprohibitivo si se hacen muchas iteraciones.

Ahora veremos otro tipo de metodos que se basan en el metodo debi-Lanczos. Usan relaciones de recurrencia cortas, pero las iteraciones noson optimas.

(UPV) Metodos de Krylov Curso 2013-2014 32 / 57

Metodo Bi-Lanczos

El metodo de Lanzcos simetrico construye una matriz Qk tal queQT

k Qk = I yQT

k AQk = Tk tridiagonal .

El metodo Bi-Lanczos construye matrices Wk y Vk tales que

WkTAVk = Tk tridiagonal

y tales queWk

TVk = I

Ası Wk y Vk no son ortogonales, pero forman un par biortogonal.

(UPV) Metodos de Krylov Curso 2013-2014 33 / 57

Metodo Bi-Lanczos

Se eligen dos vectores v1 y w1 tales que vT1 w1 = 1β1 = δ1 = 0 w0 = v0 = 0 inicializacionFOR k = 1, · · · DO iteracion

αk = wTk Avk

vk+1 = Avk − αkvk − βkvk−1 nuevawk+1 = ATwk − αkwk − δkwk−1 direccion vδk+1 = |vTk+1wk+1| ortogonal alβk+1 = vTk+1wk+1/δk+1 w previo.wk+1 = wk+1/βk+1

vk+1 = vk+1/δk+1

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 34 / 57

Metodo Bi-Lanczos

Sea

Tk =

α1 β2 0

δ2 α2. . .

. . .. . .

. . .

0. . .

. . . βkδk αk

y

Vk = [v1 v2 . . . vk ] Wk = [w1 w2 . . .wk ] .

Entonces

AVk = VkTk + δk+1vk+1eTk , ATWk = WkT

Tk + βk+1wk+1e

Tk

(UPV) Metodos de Krylov Curso 2013-2014 35 / 57

Metodo Bi-Lanczos

Notar quespan{v1 · · · vk} es una base deK k(A; v1)

yspan{w1 · · ·wk} es una basis de K k(AT ;w1)

(UPV) Metodos de Krylov Curso 2013-2014 36 / 57

Metodo Bi-Lanczos

El metodo Bi-Lanczos se estropea si

wTk+1vk+1 = 0

Esto puede ocurrir si:

vk+1 = 0 : {v1 · · · vk} generan un subespacio invariante de A

wk+1 = 0 : {w1 · · ·wk} generan un subespacio invariante de AT

wk+1 6= 0 y vk+1 6= 0 : fallo serio

(UPV) Metodos de Krylov Curso 2013-2014 37 / 57

Metodo Bi-CG

Un metodo de tipo GC se puede definir como

v1 = r0/‖r0‖ y w1 = r0/‖r0‖ (con r0 = r0).

- Calcular Wk y Vk usando el metodo de Bi-Lanczos

- Calcular xk = x0 + Vkyk con yk tal que

W Tk AVkyk = W T

k r0 ⇔ Tkyk = ‖r0‖e1

Este algoritmo se puede escribir de forma compacta como el metodo CG.El algoritmo resultante se llama metodo Bi-CG.

(UPV) Metodos de Krylov Curso 2013-2014 38 / 57

Algoritmo Bi-CG

r0 = b − Ax0 Elige r0, p0 = r0, p0 = r0 inicializacionFOR k = 0, 1, · · · , DO

αk =rTk rk

pTk Apk

xk+1 = xk + αkpkrk+1 = rk − αkApkrk+1 = rk − αkA

T pk

βk =rTk+1rk+1

rTk rk

pk+1 = rk+1 + βkpkpk+1 = rk+1 + βk pk

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 39 / 57

Algoritmo Bi-CG

El metodo usa memoria limitada: Solo se necesita almacenar cincovectores

El metodo no es optimo. Si A es SDP y r0 = r0 se obtiene el metodoGC.

El metodo es finito: todos los residuos son ortogonales rTi rj = 0 sii 6= j .

El metodo no es robusto: rTk rk puede ser cero y rk 6= 0.

(UPV) Metodos de Krylov Curso 2013-2014 40 / 57

Metodo QMR

De forma analoga al GC y al MINRES se puede definir un algoritmo deresiduos ‘casi-mınimos’

Se reescriben las relaciones del metodo Bi-Lanczos.

(UPV) Metodos de Krylov Curso 2013-2014 41 / 57

Metodo QMR

Se define T k como

T k =

α1 β2

δ2 α2. . .

. . .. . .

. . .. . .

. . . βkδk αk

δk+1

.

Se escribeAVk = Vk+1T k

(UPV) Metodos de Krylov Curso 2013-2014 42 / 57

Metodo QMR

Se quiere resolver el problema: encontrar xk = x0 + Vkyk tal que ‖rk‖ esmınimo.

rk = b − Axk = r0 − AVkyk = ‖r0‖v1 − AVkyk

Ası el problema es minimizar

‖rk‖ = ‖‖r0‖v1 − AVkyk‖= ‖‖r0‖Vk+1e1 − Vk+1T kyk‖ .

Si Vk+1 tiene columnas ortogonales esto serıa equivalente a minimizar

‖rk‖ = ‖‖r0‖e1 − T kyk‖

(UPV) Metodos de Krylov Curso 2013-2014 43 / 57

Algoritmo QMR

En general Vk no tiene columnas ortogonales.

Se puede ignorar este hecho y calcular yk minimizando

‖‖r0‖e1 − T kyk‖

el algoritmo resultante se llama QMR.Para muchos problemas el metodo QMR converge de forma mas suave queel Bi-CG, pero no necesariamente mas rapido.

(UPV) Metodos de Krylov Curso 2013-2014 44 / 57

Algoritmo GC cuadrado

El metodo Bi-CG construye las aproximaciones como combinacioneslineales de las columnas de Vk . Se construyen vectores ‘sombra’ paracalcular los parametros αk y βk .Otra desventaja de Bi-CG y QMR es que se han de realizar operacionescon AT .

Se estudian las siguientes cuestiones:

¿Se puede usar mejor el trabajo computacional del Bi-CG?

¿Se pueden evitar las operaciones con AT?

(UPV) Metodos de Krylov Curso 2013-2014 45 / 57

Algoritmo GC cuadrado

En el metodo Bi-CG el residuo se puede expresar como

rk = φk(A)r0

y el vector de direcciones como

pk = πk(A)r0

con φk y πk polinomios de grado k.

Los vectores sombra rk y pk se definen mediante las mismas recurrenciasque rk y pk . Ası

rk = φk(AT )r0, pk = πk(AT )r0

(UPV) Metodos de Krylov Curso 2013-2014 46 / 57

Algoritmo GC cuadrado

El escalar αk en el Bi-CG viene dado por

αk =(φk(AT )r0)T (φk(A)r0)

(πk(AT )r0)T (Aπk(A)r0)=

rT0 φ2k(A)r0

rT0 Aπ2k(A)r0

La idea es encontrar un algoritmo que de los residuos rk que satisfagan

rk = φk2(A)r0.

(UPV) Metodos de Krylov Curso 2013-2014 47 / 57

Algoritmo GC cuadrado

CGSx0 estimacion inicial; r0 = b − Ax0;r0 arbitrario, tal que rT0 r0 6= 0 , ρ0 = rT0 r0 ;β−1 = ρ0 ; p−1 = q0 = 0 ;FOR i = 0, 1, 2, ... DO

ui = ri + βi−1qi ;pi = ui + βi−1(qi + βi−1pi−1) ;v = Api ;αi = ρi

rT0 v;

qi+1 = ui − αi v ;si = ui + qi+1

xi+1 = xi + αi (ui + qi+1) ;ri+1 = ri − αiA(ui + qi+1) ;ρi+1 = rT0 ri+1 ; βi = ρi+1

ρi;

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 48 / 57

Algoritmo GC cuadrado (CGS)

Para muchos problemas este algoritmo converge mas rapido que elBi-CG, pero la convergencia es mas erratica.

Los picos en el error pueden hacer que el metodo no converja.

La basqueda de un algoritmo mas estable dio lugar al metodoBi-CGSTAB de Van der Vorst.

(UPV) Metodos de Krylov Curso 2013-2014 49 / 57

Metodo Bi-CGSTAB

El metodo Bi-CGSTAB se basa en lo siguiente. En vez de elevar alcuadrado el polinomio del Bi-CG, se construye un metodo iterativo quegenera xk de forma que

rk = ψk(A)φk(A)r0

Bi-CGSTAB considera un polinomio de la forma

ψk(x) = (1− ω1x)(1− ω2x) · · · (1− ωkx)

Los ωk se eligen de tal forma que se minimiza el residuo.

(UPV) Metodos de Krylov Curso 2013-2014 50 / 57

Metodo Bi-CGSTAB

Bi-CGSTABx0 vector inicial; r0 = b − Ax0;r0 arbitrario, tal que rT0 r0 6= 0 , ρ−1 = α−1 = ω−1 = 1 ;v−1 = p−1 = 0 ;

FOR k = 0, 1, 2, ... DOρk = rT0 rk ; βk−1 = (ρk/ρk−1)(αk−1/ωk−1) ;pk = rk + βk−1(pk−1 − ωk−1vk−1) ;vk = Apk ;αk = ρk/(rT0 vk) ;s = rk − αkvk ;t = As ;ωk = (tT s)/(tT t) ;xk+1 = xk + αkpk + ωks ;rk+1 = s − ωkt ;

END FOR

(UPV) Metodos de Krylov Curso 2013-2014 51 / 57

Metodos de Krylov en Matlab

En Matlab hay implementados diversos metodos de Krylov. Por ejemplo,se tienen las funciones gmres(), bicg(), bicgstab().

Si introduciomos el codigo

matriz=gallery(’poisson’,50);

spy(matriz)

title(’poisson 50’)

b=ones(length(matriz),1);

max_it = 1000;

tol = 1.e-5;

restrt =50;

[x,flag,relres,iter,resvec1] = gmres(matriz,b,restrt,tol,max_it);

[x,flag,relres,iter,resvec2] = bicg(matriz,b,tol,max_it);

[x,flag,relres,iter,resvec3] = bicgstab(matriz,b,tol,max_it);

figure

semilogy(1:length(resvec1),resvec1,’r’,1:length(resvec2),resvec2,’b’,...

1:length(resvec3),resvec3,’k’)

legend(’gmres’, ’bicg’, ’bicgstab’)

grid

title(’convergencia poisson 50’)

(UPV) Metodos de Krylov Curso 2013-2014 52 / 57

Metodos de Krylov en Matlab

0 500 1000 1500 2000 2500

0

500

1000

1500

2000

2500

nz = 12300

poisson 50

(UPV) Metodos de Krylov Curso 2013-2014 53 / 57

Metodos de Krylov en Matlab

0 20 40 60 80 100 120 14010−4

10−3

10−2

10−1

100

101

102

103convergencia poisson 50

gmresbicgbicgstab

(UPV) Metodos de Krylov Curso 2013-2014 54 / 57

Metodos de Krylov en Matlab

0 100 200 300 400

0

50

100

150

200

250

300

350

400

450

nz = 1888

weston 0479

(UPV) Metodos de Krylov Curso 2013-2014 55 / 57

Metodos de Krylov en Matlab

0 100 200 300 400 500 600101

102

103

104

105

106

107

108

109

iteraciones

erro

rconvergencia weston

bicgbicgstab

(UPV) Metodos de Krylov Curso 2013-2014 56 / 57

Metodos de Krylov en Matlab

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 610−8

10−6

10−4

10−2

100

102

iteraciones

erro

rconvergencia weston precond

bicgbicgstab

(UPV) Metodos de Krylov Curso 2013-2014 57 / 57