Método del gradiente biconjugado estabilizado

De testwiki
Ir a la navegación Ir a la búsqueda

En álgebra lineal numérica, el método del gradiente biconjugado estabilizado, generalmente abreviado como BiCGSTAB (del inglés «biconjugate gradient stabilized method»), es un método iterativo propuesto por H. A. van der Vorst para la resolución numérica de los sistemas de ecuaciones lineales no simétricos. Es una variante del método del gradiente biconjugado (BiCG) y ofrece convergencia más rápida y suave que el original BiCG así como otras variantes como el método del gradiente conjugado cuadrado (CGS). Es un método del subespacio de Krylov.

Pasos algorítmicos

BiCGSTAB sin precondicionamiento

Para resolver el sistema 𝑨𝒙=𝒃, el BiCGSTAB comienza con una aproximación inicial 𝒙0 y procede como sigue:

  1. 𝒓0=𝒃𝑨𝒙0
  2. Elige un vector arbitrario 𝒓^0 tal que (𝒓^0,𝒓0)0, por ejemplo, 𝒓^0=𝒓0
  3. 𝒑0=𝒓0
  4. Para i=0,1,2,
    1. αi=(𝒓i,𝒓^0)/(𝑨𝒑i,𝒓^0)
    2. 𝒔i=𝒓iαi𝑨𝒑𝒊
    3. ωi=(𝑨𝒔i,𝒔i)/(𝑨𝒔i,𝑨𝒔i)
    4. 𝒙i+1=𝒙i+αi𝒑i+ωi𝒔i
    5. Termina si 𝒙i+1 cumple el criterio de convergencia
    6. 𝒓i+1=𝒔iωi𝑨𝒔i
    7. βi=(αi/ωi)(𝒓i+1,𝒓^0)/(𝒓i,𝒓^0)
    8. 𝒑i+1=𝒓i+1+βi(𝒑iωi𝑨𝒑i)

BiCGSTAB precondicionado

Generalmente se utiliza los precondicionadores para acelerar la convergencia de los métodos iterativos. Para resolver el sistema 𝑨𝒙=𝒃 con un precondicionador 𝑲=𝑲1𝑲2𝑨, el BiCGSTAB precondicionado comienza con una aproximación inicial 𝒙0 y procede como sigue:

  1. 𝒓0=𝒃𝑨𝒙0
  2. Elige un vector arbitrario 𝒓^0 tal que (𝒓^0,𝒓0)0, por ejemplo, 𝒓^0=𝒓0
  3. ρ0=α=ω0=1
  4. 𝒗0=𝒑0=0
  5. Para i=1,2,3,
    1. ρi=(𝒓^0,𝒓i1)
    2. β=(ρi/ρi1)(α/ωi1)
    3. 𝒑i=𝒓i1+β(𝒑i1ωi1𝒗i1)
    4. 𝒚=𝑲1𝒑i
    5. 𝒗i=𝑨𝒚
    6. α=ρi/(𝒓^0,𝒗i)
    7. 𝒔=𝒓iα𝒗i
    8. 𝒛=𝑨𝒔
    9. 𝒕=𝑲1𝒛
    10. ωi=(𝑲11𝒕,𝑲11𝒔)/(𝑲11𝒔,𝑲11𝒔)
    11. 𝒙i=𝒙i1+α𝒚+ωi𝒛
    12. Termina si 𝒙i es lo suficientemente preciso
    13. 𝒓i=𝒔ωi𝒕

Esta formulación es equivalente a aplicar el BiCGSTAB sin precondicionamiento al sistema explícitamente precondicionado

𝑨~𝒙~=𝒃~

con 𝑨~=𝑲11𝑨𝑲21, 𝒙~=𝑲2𝒙, 𝒃~=𝑲11𝒃. En otras palabras, precondicionamiento a ambas la izquierda y la derecha es posible en esta formulación.

Generalización

BiCGSTAB puede ser visto como una combinación de BiCG y GMRES en que cada paso de BiCG se sigue por un paso de GMRES(1) (GMRES reiniciado en cada paso) para reparar el comportamiento irregular de convergencia de CGS, de lo cual BiCGSTAB fue desarrollado como una mejora. No obstante, debido al uso de los polinomios del residuo mínimo de grado uno, la dicha reparación puede no ser eficaz si la matriz 𝑨 tiene pares propios complejos grandes. En tales casos, es probable que BiCGSTAB se estanca como lo confirman los experimentos numéricos.

Se puede esparar que los polinomios del residuo mínimo de grado más alto pueda mejor manejar esta situación. Esto da lugar a los métodos que incluyen BiCGSTAB2[1] y el más general BiCGSTAB(l).[2] En BiCGSTAB(l), un paso de GMRES(l) sigue cada l pasos de BiCG. BiCGSTAB2 es equivalente a BiCGSTAB(l) con l=2.

Véase también

Referencias

Plantilla:Listaref

Bibliografía

Plantilla:Control de autoridades