El método residual conjugado es un método numérico iterativo utilizado para resolver sistemas de ecuaciones lineales . Es un método subespacial de Krylov muy similar al mucho más popular método del gradiente conjugado , con propiedades de construcción y convergencia similares.
Este método se utiliza para resolver ecuaciones lineales de la forma
![{\displaystyle \mathbf {A} \mathbf {x} =\mathbf {b} }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
donde A es una matriz hermitiana e invertible , y b es distinto de cero.
El método residual conjugado difiere del método del gradiente conjugado, estrechamente relacionado . Implica más operaciones numéricas y requiere más almacenamiento.
Dada una estimación inicial (arbitraria) de la solución , el método se describe a continuación:![{\displaystyle \mathbf {x} _ {0}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\begin{aligned}&\mathbf {x} _{0}:={\text{Alguna suposición inicial}}\\&\mathbf {r} _{0}:=\mathbf {b} - \mathbf {Ax} _{0}\\&\mathbf {p} _{0}:=\mathbf {r} _{0}\\&{\text{Iterar, con }}k{\text{ comenzando en }}0:\\&\qquad \alpha _{k}:={\frac {\mathbf {r} _{k}^{\mathrm {T} }\mathbf {Ar} _{k}}{ (\mathbf {Ap} _{k})^{\mathrm {T} }\mathbf {Ap} _{k}}}\\&\qquad \mathbf {x} _{k+1}:=\mathbf {x} _{k}+\alpha _{k}\mathbf {p} _{k}\\&\qquad \mathbf {r} _{k+1}:=\mathbf {r} _{k} -\alpha _{k}\mathbf {Ap} _{k}\\&\qquad \beta _{k}:={\frac {\mathbf {r} _{k+1}^{\mathrm {T } }\mathbf {Ar} _{k+1}}{\mathbf {r} _{k}^{\mathrm {T} }\mathbf {Ar} _{k}}}\\&\qquad \mathbf {p} _{k+1}:=\mathbf {r} _{k+1}+\beta _{k}\mathbf {p} _{k}\\&\qquad \mathbf {Ap} _{ k+1}:=\mathbf {Ar} _{k+1}+\beta _{k}\mathbf {Ap} _{k}\\&\qquad k:=k+1\end{aligned}} }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
la iteración puede detenerse una vez que se haya considerado convergente. La única diferencia entre este y el método de gradiente conjugado es el cálculo de y (más el cálculo incremental opcional de al final).![{\displaystyle \mathbf {x} _ {k}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \alpha _{k}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \beta _ {k}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \mathbf {Ap} _ {k}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Nota: el algoritmo anterior se puede transformar para realizar solo una multiplicación simétrica de matriz-vector en cada iteración.
Preacondicionamiento
Al realizar algunas sustituciones y cambios de variables, se puede derivar un método residual conjugado precondicionado de la misma manera que se hace para el método del gradiente conjugado:
![{\displaystyle {\begin{aligned}&\mathbf {x} _{0}:={\text{Alguna suposición inicial}}\\&\mathbf {r} _{0}:=\mathbf {M} ^ {-1}(\mathbf {b} -\mathbf {Ax} _{0})\\&\mathbf {p} _{0}:=\mathbf {r} _{0}\\&{\text {Iterar, con }}k{\text{ comenzando en }}0:\\&\qquad \alpha _{k}:={\frac {\mathbf {r} _{k}^{\mathrm {T} }\mathbf {A} \mathbf {r} _{k}}{(\mathbf {Ap} _{k})^{\mathrm {T} }\mathbf {M} ^{-1}\mathbf {Ap } _{k}}}\\&\qquad \mathbf {x} _{k+1}:=\mathbf {x} _{k}+\alpha _{k}\mathbf {p} _{k} \\&\qquad \mathbf {r} _{k+1}:=\mathbf {r} _{k}-\alpha _{k}\mathbf {M} ^{-1}\mathbf {Ap} _ {k}\\&\qquad \beta _{k}:={\frac {\mathbf {r} _{k+1}^{\mathrm {T} }\mathbf {A} \mathbf {r} _ {k+1}}{\mathbf {r} _{k}^{\mathrm {T} }\mathbf {A} \mathbf {r} _{k}}}\\&\qquad \mathbf {p} _{k+1}:=\mathbf {r} _{k+1}+\beta _{k}\mathbf {p} _{k}\\&\qquad \mathbf {Ap} _{k+1 }:=\mathbf {A} \mathbf {r} _{k+1}+\beta _{k}\mathbf {Ap} _{k}\\&\qquad k:=k+1\\\end {alineado}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
El precondicionador debe ser simétrico positivo definido. Tenga en cuenta que el vector residual aquí es diferente del vector residual sin precondicionamiento.![{\displaystyle \mathbf {M} ^{-1}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Referencias