El algoritmo Elige tu primera suposiciónincógnita 0 {\displaystyle x_{0}\,} , otros dos vectoresincógnita 0 ∗ {\displaystyle x_{0}^{*}} yb ∗ {\displaystyle b^{*}\,} y un preacondicionador METRO {\displaystyle M\,} r 0 ← b − A incógnita 0 {\displaystyle r_{0}\leftarrow bA\,x_{0}\,} r 0 ∗ ← b ∗ − incógnita 0 ∗ A ∗ {\displaystyle r_{0}^{*}\leftarrow b^{*}-x_{0}^{*}\,A^{*}} pag 0 ← METRO − 1 r 0 {\displaystyle p_{0}\leftarrow M^{-1}r_{0}\,} pag 0 ∗ ← r 0 ∗ METRO − 1 {\displaystyle p_{0}^{*}\leftarrow r_{0}^{*}M^{-1}\,} parak = 0 , 1 , … {\displaystyle k=0,1,\ldots } hacer α k ← r k ∗ METRO − 1 r k pag k ∗ A pag k {\displaystyle \alpha _{k}\leftarrow {r_{k}^{*}M^{-1}r_{k} \over p_{k}^{*}Ap_{k}}\,} incógnita k + 1 ← incógnita k + α k ⋅ pag k {\displaystyle x_{k+1}\leftarrow x_{k}+\alpha _{k}\cdot p_{k}\,} incógnita k + 1 ∗ ← incógnita k ∗ + α k ¯ ⋅ pag k ∗ {\displaystyle x_{k+1}^{*}\leftarrow x_{k}^{*}+{\overline {\alpha _{k}}}\cdot p_{k}^{*}\,} r k + 1 ← r k − α k ⋅ A pag k {\displaystyle r_{k+1}\leftarrow r_{k}-\alpha _{k}\cdot Ap_{k}\,} r k + 1 ∗ ← r k ∗ − α k ¯ ⋅ pag k ∗ A ∗ {\displaystyle r_{k+1}^{*}\leftarrow r_{k}^{*}-{\overline {\alpha _{k}}}\cdot p_{k}^{*}\,A^{*}} β k ← r k + 1 ∗ METRO − 1 r k + 1 r k ∗ METRO − 1 r k {\displaystyle \beta _{k}\leftarrow {r_{k+1}^{*}M^{-1}r_{k+1} \over r_{k}^{*}M^{-1}r_{k}}\,} pag k + 1 ← METRO − 1 r k + 1 + β k ⋅ pag k {\displaystyle p_{k+1}\leftarrow M^{-1}r_{k+1}+\beta _{k}\cdot p_{k}\,} pag k + 1 ∗ ← r k + 1 ∗ METRO − 1 + β k ¯ ⋅ pag k ∗ {\displaystyle p_{k+1}^{*}\leftarrow r_{k+1}^{*}M^{-1}+{\overline {\beta _{k}}}\cdot p_{k}^{*}\,} En la formulación anterior, el calculador k {\displaystyle r_{k}\,} yr k ∗ {\displaystyle r_{k}^{*}} satisfacer
r k = b − A incógnita k , {\displaystyle r_{k}=b-Ax_{k},\,} r k ∗ = b ∗ − incógnita k ∗ A ∗ {\displaystyle r_{k}^{*}=b^{*}-x_{k}^{*}\,A^{*}} y por lo tanto son los residuos respectivos correspondientes aincógnita k {\displaystyle x_{k}\,} yincógnita k ∗ {\displaystyle x_{k}^{*}} como soluciones aproximadas a los sistemas
A incógnita = b , {\displaystyle Ax=b,\,} incógnita ∗ A ∗ = 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 Elige tu primera suposiciónincógnita 0 {\displaystyle x_{0}\,} , r 0 ← b − A incógnita 0 {\displaystyle r_{0}\leftarrow bA\,x_{0}\,} r ^ 0 ← b ^ − incógnita ^ 0 A ∗ {\displaystyle {\hat {r}}_{0}\leftarrow {\hat {b}}-{\hat {x}}_{0}A^{*}} pag 0 ← r 0 {\displaystyle p_{0}\leftarrow r_{0}\,} pag ^ 0 ← r ^ 0 {\displaystyle {\hat {p}}_{0}\leftarrow {\hat {r}}_{0}\,} parak = 0 , 1 , … {\displaystyle k=0,1,\ldots } hacer α k ← r ^ k r k pag ^ k A pag k {\displaystyle \alpha _{k}\leftarrow {{\hat {r}}_{k}r_{k} \over {\hat {p}}_{k}Ap_{k}}\,} incógnita k + 1 ← incógnita k + α k ⋅ pag k {\displaystyle x_{k+1}\leftarrow x_{k}+\alpha _{k}\cdot p_{k}\,} incógnita ^ k + 1 ← incógnita ^ k + α k ⋅ pag ^ k {\displaystyle {\hat {x}}_{k+1}\leftarrow {\hat {x}}_{k}+\alpha _{k}\cdot {\hat {p}}_{k}\,} r k + 1 ← r k − α k ⋅ A pag k {\displaystyle r_{k+1}\leftarrow r_{k}-\alpha _{k}\cdot Ap_{k}\,} r ^ k + 1 ← r ^ k − α k ⋅ pag ^ k A ∗ {\displaystyle {\hat {r}}_{k+1}\leftarrow {\hat {r}}_{k}-\alpha _{k}\cdot {\hat {p}}_{k}A^{*}} β k ← r ^ k + 1 r k + 1 r ^ k r k {\displaystyle \beta _{k}\leftarrow {{\hat {r}}_{k+1}r_{k+1} \over {\hat {r}}_{k}r_{k}}\,} pag k + 1 ← r k + 1 + β k ⋅ pag k {\displaystyle p_{k+1}\leftarrow r_{k+1}+\beta _{k}\cdot p_{k}\,} pag ^ k + 1 ← r ^ k + 1 + β k ⋅ pag ^ 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ógnita k := incógnita j + PAG k A − 1 ( b − A incógnita j ) , {\displaystyle x_{k}:=x_{j}+P_{k}A^{-1}\left(b-Ax_{j}\right),} incógnita k ∗ := incógnita j ∗ + ( b ∗ − incógnita j ∗ A ) PAG k A − 1 , {\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
PAG k := tú k ( v k ∗ A tú k ) − 1 v k ∗ A , {\displaystyle P_{k}:=\mathbf {u} _{k}\left(\mathbf {v} _{k}^{*}A\mathbf {u} _{k}\right)^{-1}\mathbf {v} _{k}^{*}A,} con
tú k = [ tú 0 , tú 1 , … , tú k − 1 ] , {\displaystyle \mathbf {u} _{k}=\left[u_{0},u_{1},\dots ,u_{k-1}\right],} v k = [ v 0 , v 1 , … , v k − 1 ] . {\displaystyle \mathbf {v} _{k}=\left[v_{0},v_{1},\dots ,v_{k-1}\right].} Estas proyecciones relacionadas pueden ser iteradas a su vez como
PAG k + 1 = PAG k + ( 1 − PAG k ) tú k ⊗ v k ∗ A ( 1 − PAG k ) v k ∗ A ( 1 − PAG k ) tú 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 porPAG k = A k − 1 A {\displaystyle P_{k}=A_{k}^{-1}A} yincógnita k + 1 = incógnita k − A k + 1 − 1 ( A incógnita k − b ) {\displaystyle x_{k+1}=x_{k}-A_{k+1}^{-1}\left(Ax_{k}-b\right)} , dónde
A k + 1 − 1 = A k − 1 + ( 1 − A k − 1 A ) tú k ⊗ v k ∗ ( 1 − A A k − 1 ) v k ∗ A ( 1 − A k − 1 A ) tú 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
pag k = ( 1 − PAG k ) tú k , {\displaystyle p_{k}=\left(1-P_{k}\right)u_{k},} pag k ∗ = v k ∗ A ( 1 − PAG k ) A − 1 {\displaystyle p_{k}^{*}=v_{k}^{*}A\left(1-P_{k}\right)A^{-1}} son entonces ortogonales a los residuos:
v i ∗ r k = pag i ∗ r k = 0 , {\displaystyle v_{i}^{*}r_{k}=p_{i}^{*}r_{k}=0,} r k ∗ tú j = r k ∗ pag j = 0 , {\displaystyle r_{k}^{*}u_{j}=r_{k}^{*}p_{j}=0,} que en sí mismas satisfacen
r k = A ( 1 − PAG k ) A − 1 r j , {\displaystyle r_{k}=A\left(1-P_{k}\right)A^{-1}r_{j},} r k ∗ = r j ∗ ( 1 − PAG k ) {\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
tú k = METRO − 1 r k , {\displaystyle u_{k}=M^{-1}r_{k},\,} v k ∗ = r k ∗ METRO − 1 . {\displaystyle v_{k}^{*}=r_{k}^{*}\,M^{-1}.\,} Con esta elección en particular, evaluaciones explícitas dePAG k {\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ógnita 0 ∗ = incógnita 0 {\displaystyle x_{0}^{*}=x_{0}} yb ∗ = b {\displaystyle b^{*}=b} , entoncesr k = r k ∗ {\displaystyle r_{k}=r_{k}^{*}} ,pag k = pag k ∗ {\displaystyle p_{k}=p_{k}^{*}} y el método del gradiente conjugado produce la misma secuenciaincógnita k = incógnita k ∗ {\displaystyle x_{k}=x_{k}^{*}} con la mitad del coste computacional. Las secuencias producidas por el algoritmo son biorthogonales , es decir,pag i ∗ A pag j = r i ∗ METRO − 1 r j = 0 {\displaystyle p_{i}^{*}Ap_{j}=r_{i}^{*}M^{-1}r_{j}=0} parai ≠ j {\displaystyle i\neq j} . siPAG j ′ {\displaystyle P_{j'}\,} es un polinomio congrados ( PAG j ′ ) + j < k {\displaystyle \deg \left(P_{j'}\right)+j<k} , entoncesr k ∗ PAG j ′ ( METRO − 1 A ) tú 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 . siPAG i ′ {\displaystyle P_{i'}\,} es un polinomio coni + grados ( PAG i ′ ) < k {\displaystyle i+\deg \left(P_{i'}\right)<k} , entoncesv i ∗ PAG i ′ ( A METRO − 1 ) r k = 0 {\displaystyle v_{i}^{*}P_{i'}\left(AM^{-1}\right)r_{k}=0} .
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 .