Articulo de referencia

Método del gradiente biconjugado

En matemáticas , más específicamente en álgebra lineal numérica , el método del gradiente biconjugado es un algoritmo para resolver sistemas de ecuaciones lineales. A incógnita ...

En matemáticas , más específicamente en álgebra lineal numérica , el método del gradiente biconjugado es un algoritmo para resolver sistemas de ecuaciones lineales.

Aincógnita=b.{\displaystyle Ax=b.\,}

A diferencia del método del gradiente conjugado , este algoritmo no requiere la matriz.A{\displaystyle A}para ser autoadjunto , pero en su lugar es necesario realizar multiplicaciones por la transpuesta conjugada A * .

El algoritmo

  1. Elige tu primera suposiciónincógnita0{\displaystyle x_{0}\,}, otros dos vectoresincógnita0{\displaystyle x_{0}^{*}}yb{\displaystyle b^{*}\,}y un preacondicionadorMETRO{\displaystyle M\,}
  2. r0bAincógnita0{\displaystyle r_{0}\leftarrow bA\,x_{0}\,}
  3. r0bincógnita0A{\displaystyle r_{0}^{*}\leftarrow b^{*}-x_{0}^{*}\,A^{*}}
  4. pag0METRO1r0{\displaystyle p_{0}\leftarrow M^{-1}r_{0}\,}
  5. pag0r0METRO1{\displaystyle p_{0}^{*}\leftarrow r_{0}^{*}M^{-1}\,}
  6. parak=0,1,{\displaystyle k=0,1,\ldots }hacer
    1. αkrkMETRO1rkpagkApagk{\displaystyle \alpha _{k}\leftarrow {r_{k}^{*}M^{-1}r_{k} \over p_{k}^{*}Ap_{k}}\,}
    2. incógnitak+1incógnitak+αkpagk{\displaystyle x_{k+1}\leftarrow x_{k}+\alpha _{k}\cdot p_{k}\,}
    3. incógnitak+1incógnitak+αk¯pagk{\displaystyle x_{k+1}^{*}\leftarrow x_{k}^{*}+{\overline {\alpha _{k}}}\cdot p_{k}^{*}\,}
    4. rk+1rkαkApagk{\displaystyle r_{k+1}\leftarrow r_{k}-\alpha _{k}\cdot Ap_{k}\,}
    5. rk+1rkαk¯pagkA{\displaystyle r_{k+1}^{*}\leftarrow r_{k}^{*}-{\overline {\alpha _{k}}}\cdot p_{k}^{*}\,A^{*}}
    6. βkrk+1METRO1rk+1rkMETRO1rk{\displaystyle \beta _{k}\leftarrow {r_{k+1}^{*}M^{-1}r_{k+1} \over r_{k}^{*}M^{-1}r_{k}}\,}
    7. pagk+1METRO1rk+1+βkpagk{\displaystyle p_{k+1}\leftarrow M^{-1}r_{k+1}+\beta _{k}\cdot p_{k}\,}
    8. pagk+1rk+1METRO1+βk¯pagk{\displaystyle p_{k+1}^{*}\leftarrow r_{k+1}^{*}M^{-1}+{\overline {\beta _{k}}}\cdot p_{k}^{*}\,}

En la formulación anterior, el calculadork{\displaystyle r_{k}\,}yrk{\displaystyle r_{k}^{*}}satisfacer

rk=bAincógnitak,{\displaystyle r_{k}=b-Ax_{k},\,}
rk=bincógnitakA{\displaystyle r_{k}^{*}=b^{*}-x_{k}^{*}\,A^{*}}

y por lo tanto son los residuos respectivos correspondientes aincógnitak{\displaystyle x_{k}\,}yincógnitak{\displaystyle x_{k}^{*}}como soluciones aproximadas a los sistemas

Aincógnita=b,{\displaystyle Ax=b,\,}
incógnitaA=b;{\displaystyle x^{*}\,A^{*}=b^{*}\,;}

incógnita{\displaystyle x^{*}}es el adjunto yα¯{\displaystyle {\overline {\alpha }}}es el conjugado complejo .

Versión no precondicionada del algoritmo

  1. Elige tu primera suposiciónincógnita0{\displaystyle x_{0}\,},
  2. r0bAincógnita0{\displaystyle r_{0}\leftarrow bA\,x_{0}\,}
  3. r^0b^incógnita^0A{\displaystyle {\hat {r}}_{0}\leftarrow {\hat {b}}-{\hat {x}}_{0}A^{*}}
  4. pag0r0{\displaystyle p_{0}\leftarrow r_{0}\,}
  5. pag^0r^0{\displaystyle {\hat {p}}_{0}\leftarrow {\hat {r}}_{0}\,}
  6. parak=0,1,{\displaystyle k=0,1,\ldots }hacer
    1. αkr^krkpag^kApagk{\displaystyle \alpha _{k}\leftarrow {{\hat {r}}_{k}r_{k} \over {\hat {p}}_{k}Ap_{k}}\,}
    2. incógnitak+1incógnitak+αkpagk{\displaystyle x_{k+1}\leftarrow x_{k}+\alpha _{k}\cdot p_{k}\,}
    3. incógnita^k+1incógnita^k+αkpag^k{\displaystyle {\hat {x}}_{k+1}\leftarrow {\hat {x}}_{k}+\alpha _{k}\cdot {\hat {p}}_{k}\,}
    4. rk+1rkαkApagk{\displaystyle r_{k+1}\leftarrow r_{k}-\alpha _{k}\cdot Ap_{k}\,}
    5. r^k+1r^kαkpag^kA{\displaystyle {\hat {r}}_{k+1}\leftarrow {\hat {r}}_{k}-\alpha _{k}\cdot {\hat {p}}_{k}A^{*}}
    6. βkr^k+1rk+1r^krk{\displaystyle \beta _{k}\leftarrow {{\hat {r}}_{k+1}r_{k+1} \over {\hat {r}}_{k}r_{k}}\,}
    7. pagk+1rk+1+βkpagk{\displaystyle p_{k+1}\leftarrow r_{k+1}+\beta _{k}\cdot p_{k}\,}
    8. pag^k+1r^k+1+βkpag^k{\displaystyle {\hat {p}}_{k+1}\leftarrow {\hat {r}}_{k+1}+\beta _{k}\cdot {\hat {p}}_{k}\,}

Discusión

El método del gradiente biconjugado es numéricamente inestable (compárese con el método del gradiente biconjugado estabilizado ), pero muy importante desde un punto de vista teórico. Defina los pasos de iteración mediante

incógnitak:=incógnitaj+PAGkA1(bAincógnitaj),{\displaystyle x_{k}:=x_{j}+P_{k}A^{-1}\left(b-Ax_{j}\right),}
incógnitak:=incógnitaj+(bincógnitajA)PAGkA1,{\displaystyle x_{k}^{*}:=x_{j}^{*}+\left(b^{*}-x_{j}^{*}A\right)P_{k}A^{-1},}

dóndej<k{\displaystyle j<k}utilizando la proyección relacionada

PAGk:=k(vkAk)1vkA,{\displaystyle P_{k}:=\mathbf {u} _{k}\left(\mathbf {v} _{k}^{*}A\mathbf {u} _{k}\right)^{-1}\mathbf {v} _{k}^{*}A,}

con

k=[0,1,,k1],{\displaystyle \mathbf {u} _{k}=\left[u_{0},u_{1},\dots ,u_{k-1}\right],}
vk=[v0,v1,,vk1].{\displaystyle \mathbf {v} _{k}=\left[v_{0},v_{1},\dots ,v_{k-1}\right].}

Estas proyecciones relacionadas pueden ser iteradas a su vez como

PAGk+1=PAGk+(1PAGk)kvkA(1PAGk)vkA(1PAGk)k.{\displaystyle P_{k+1}=P_{k}+\left(1-P_{k}\right)u_{k}\otimes {v_{k}^{*}A\left(1-P_{k}\right) \over v_{k}^{*}A\left(1-P_{k}\right)u_{k}}.}

Una relación con los métodos cuasi-Newton viene dada porPAGk=Ak1A{\displaystyle P_{k}=A_{k}^{-1}A}yincógnitak+1=incógnitakAk+11(Aincógnitakb){\displaystyle x_{k+1}=x_{k}-A_{k+1}^{-1}\left(Ax_{k}-b\right)}, dónde

Ak+11=Ak1+(1Ak1A)kvk(1AAk1)vkA(1Ak1A)k.{\displaystyle A_{k+1}^{-1}=A_{k}^{-1}+\left(1-A_{k}^{-1}A\right)u_{k}\otimes {v_{k}^{*}\left(1-AA_{k}^{-1}\right) \over v_{k}^{*}A\left(1-A_{k}^{-1}A\right)u_{k}}.}

Las nuevas direcciones

pagk=(1PAGk)k,{\displaystyle p_{k}=\left(1-P_{k}\right)u_{k},}
pagk=vkA(1PAGk)A1{\displaystyle p_{k}^{*}=v_{k}^{*}A\left(1-P_{k}\right)A^{-1}}

son entonces ortogonales a los residuos:

virk=pagirk=0,{\displaystyle v_{i}^{*}r_{k}=p_{i}^{*}r_{k}=0,}
rkj=rkpagj=0,{\displaystyle r_{k}^{*}u_{j}=r_{k}^{*}p_{j}=0,}

que en sí mismas satisfacen

rk=A(1PAGk)A1rj,{\displaystyle r_{k}=A\left(1-P_{k}\right)A^{-1}r_{j},}
rk=rj(1PAGk){\displaystyle r_{k}^{*}=r_{j}^{*}\left(1-P_{k}\right)}

dóndei,j<k{\displaystyle i,j<k}.

El método del gradiente biconjugado ahora hace una elección especial y utiliza la configuración

k=METRO1rk,{\displaystyle u_{k}=M^{-1}r_{k},\,}
vk=rkMETRO1.{\displaystyle v_{k}^{*}=r_{k}^{*}\,M^{-1}.\,}

Con esta elección en particular, evaluaciones explícitas dePAGk{\displaystyle P_{k}}y A 1 se evitan, y el algoritmo toma la forma indicada anteriormente.

Propiedades

  • SiA=A{\displaystyle A=A^{*}\,}es autoadjunto ,incógnita0=incógnita0{\displaystyle x_{0}^{*}=x_{0}}yb=b{\displaystyle b^{*}=b}, entoncesrk=rk{\displaystyle r_{k}=r_{k}^{*}},pagk=pagk{\displaystyle p_{k}=p_{k}^{*}}y el método del gradiente conjugado produce la misma secuenciaincógnitak=incógnitak{\displaystyle x_{k}=x_{k}^{*}}con la mitad del coste computacional.
  • Las secuencias producidas por el algoritmo son biorthogonales , es decir,pagiApagj=riMETRO1rj=0{\displaystyle p_{i}^{*}Ap_{j}=r_{i}^{*}M^{-1}r_{j}=0}paraij{\displaystyle i\neq j}.
  • siPAGj{\displaystyle P_{j'}\,}es un polinomio congrados(PAGj)+j<k{\displaystyle \deg \left(P_{j'}\right)+j<k}, entoncesrkPAGj(METRO1A)j=0{\displaystyle r_{k}^{*}P_{j'}\left(M^{-1}A\right)u_{j}=0}. El algoritmo produce así proyecciones sobre el subespacio de Krylov .
  • siPAGi{\displaystyle P_{i'}\,}es un polinomio coni+grados(PAGi)<k{\displaystyle i+\deg \left(P_{i'}\right)<k}, entoncesviPAGi(AMETRO1)rk=0{\displaystyle v_{i}^{*}P_{i'}\left(AM^{-1}\right)r_{k}=0}.

Véase también

Referencias

  • Fletcher, R. (1976). «Métodos de gradiente conjugado para sistemas indefinidos». En Watson, G. Alistair (ed.). Análisis numérico  : actas de la Conferencia de Dundee sobre Análisis Numérico . Lecture Notes in Mathematics. Vol.  506. Springer. pp. 73–89 . doi : 10.1007/BFb0080116 . ISBN  978-3-540-07610-0.
  • Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). «Sección 2.7.6» . Numerical Recipes: The Art of Scientific Computing (3.ª  ed.). Nueva York: Cambridge University Press. ISBN 978-0-521-88068-8.