Articulo de referencia

Método generalizado de residuos mínimos

En matemáticas , el método generalizado de residuos mínimos (GMRES) es un método iterativo para la solución numérica de un sistema de ecuaciones lineales no simétrico e indefini...

En matemáticas , el método generalizado de residuos mínimos (GMRES) es un método iterativo para la solución numérica de un sistema de ecuaciones lineales no simétrico e indefinido . El método aproxima la solución mediante un vector en un subespacio de Krylov con residuo mínimo . La iteración de Arnoldi se utiliza para hallar este vector.

El método GMRES fue desarrollado por Yousef Saad y Martin H. Schultz en 1986. [ 1 ] Es una generalización y mejora del método MINRES debido a Paige y Saunders en 1975. [ 2 ] [ 3 ] El método MINRES requiere que la matriz sea simétrica , pero tiene la ventaja de que solo requiere el manejo de tres vectores. GMRES es un caso especial del método DIIS desarrollado por Peter Pulay en 1980. DIIS es aplicable a sistemas no lineales .

El método

Denotemos la norma euclidiana de cualquier vector v porv{\displaystyle \|v\|}. Denotemos el sistema (cuadrado) de ecuaciones lineales que se va a resolver medianteAincógnita=b.{\displaystyle Ax=b.} Se supone que la matriz A es invertible y de tamaño m x m . Además, se supone que b está normalizada, es decir, queb=1{\displaystyle \|b\|=1}.

El n -ésimo subespacio de Krylov para este problema esKnorte=Knorte(A,r0)=durar{r0,Ar0,A2r0,,Anorte1r0}.{\displaystyle K_{n}=K_{n}(A,r_{0})=\operatorname {span} \,\{r_{0},Ar_{0},A^{2}r_{0},\ldots ,A^{n-1}r_{0}\}.\,} dónder0=bAincógnita0{\displaystyle r_{0}=b-Ax_{0}}es el residuo inicial dada una suposición inicialincógnita00{\displaystyle x_{0}\neq 0}. Claramenter0=b{\displaystyle r_{0}=b}siincógnita0=0{\displaystyle x_{0}=0}.

GMRES se aproxima a la solución exacta deAincógnita=b{\displaystyle Ax=b}por el vectorincógnitanorteincógnita0+Knorte{\displaystyle x_{n}\in x_{0}+K_{n}}que minimiza la norma euclidiana del residuornorte=bAincógnitanorte{\displaystyle r_{n}=b-Ax_{n}}.

Los vectoresr0,Ar0,Anorte1r0{\displaystyle r_{0},Ar_{0},\ldots A^{n-1}r_{0}}podría ser casi linealmente dependiente , por lo que en lugar de esta base, se utiliza la iteración de Arnoldi para encontrar vectores ortonormales.q1,q2,,qnorte{\displaystyle q_{1},q_{2},\ldots ,q_{n}\,}que constituyen la base paraKnorte{\displaystyle K_{n}}. En particular,q1=r021r0{\displaystyle q_{1}=\|r_{0}\|_{2}^{-1}r_{0}}.

Por lo tanto, el vectorincógnitanorteincógnita0+Knorte{\displaystyle x_{n}\in x_{0}+K_{n}}se puede escribir comoincógnitanorte=incógnita0+Qnorteynorte{\ Displaystyle x_ {n} = x_ {0} + Q_ {n} y_ {n}}conynorteRnorte{\displaystyle y_{n}\in \mathbb {R} ^{n}}, dóndeQnorte{\displaystyle Q_{n}}es la matriz m por n formada porq1,,qnorte{\displaystyle q_{1},\ldots ,q_{n}}. En otras palabras, encontrar la n -ésima aproximación de la solución (es decir,incógnitanorte{\displaystyle x_{n}}) se reduce a encontrar el vectorynorte{\displaystyle y_{n}}, que se determina minimizando el residuo como se describe a continuación .

El proceso de Arnoldi también construyeH~norte{\displaystyle {\tilde {H}}_{n}}, un (norte+1{\displaystyle n+1})-por-norte{\displaystyle n}matriz de Hessenberg superior que satisfaceAQnorte=Qnorte+1H~norte{\displaystyle AQ_{n}=Q_{n+1}{\tilde {H}}_{n}\,} una igualdad que se utiliza para simplificar el cálculo deynorte{\displaystyle y_{n}}(véase §  Resolución del problema de mínimos cuadrados ). Nótese que, para matrices simétricas, se obtiene una matriz tridiagonal simétrica, lo que da lugar al método MINRES .

Porque columnas deQnorte{\displaystyle Q_{n}}son ortonormales, tenemosrnorte=bAincógnitanorte=bA(incógnita0+Qnorteynorte)=r0AQnorteynorte=βq1AQnorteynorte=βq1Qnorte+1H~norteynorte=Qnorte+1(βmi1H~norteynorte)=βmi1H~norteynorte{\displaystyle {\begin{aligned}\left\|r_{n}\right\|&=\left\|b-Ax_{n}\right\|\\&=\left\|b-A(x_{0}+Q_{n}y_{n})\right\|\\&=\left\|r_{0}-AQ_{n}y_{n}\right\|\\&=\left\|\beta q_{1}-AQ_{n}y_{n}\right\|\\&=\left\|\beta q_{1}-Q_{n+1}{\tilde {H}}_{n}y_{n}\right\|\\&=\left\|Q_{n+1}(\beta e_{1}-{\tilde {H}}_{n}y_{n})\right\|\\&=\left\|\beta e_{1}-{\tilde {H}}_{n}y_{n}\right\|\end{aligned}}} dóndemi1=(1,0,0,,0)T{\displaystyle e_{1}=(1,0,0,\ldots ,0)^{T}\,}es el primer vector en la base estándar deRnorte+1{\displaystyle \mathbb {R} ^{n+1}}, yβ=r0,{\displaystyle \beta =\|r_{0}\|\,,}r0{\displaystyle r_{0}}siendo el vector residual del primer ensayo (generalmenteb{\displaystyle b}). Por eso,incógnitanorte{\displaystyle x_{n}}se puede encontrar minimizando la norma euclidiana del residuornorte=H~norteynorteβmi1.{\displaystyle r_{n}={\tilde {H}}_{n}y_{n}-\beta e_{1}.} Este es un problema de mínimos cuadrados lineales de tamaño n .

Esto da como resultado el método GMRES. En elnorte{\displaystyle n}-ª iteración:

  1. calcularqnorte{\displaystyle q_{n}}con el método Arnoldi;
  2. encontrar elynorte{\displaystyle y_{n}}lo cual minimizarnorte{\displaystyle \|r_{n}\|};
  3. calcularincógnitanorte=incógnita0+Qnorteynorte{\displaystyle x_{n}=x_{0}+Q_{n}y_{n}};
  4. Repita el proceso si el residuo aún no es lo suficientemente pequeño.

En cada iteración, un producto matriz-vectorAqnorte{\displaystyle Aq_{n}}debe calcularse. Esto cuesta aproximadamente2metro2{\displaystyle 2m^{2}}operaciones de punto flotante para matrices densas generales de tamañometro{\displaystyle m}, pero el costo puede disminuir aO(metro){\displaystyle O(m)}para matrices dispersas . Además del producto matriz-vector,O(nortemetro){\displaystyle O(nm)}Las operaciones de punto flotante deben calcularse en la n -ésima iteración.

Convergencia

La enésima iteración minimiza el residuo en el subespacio de Krylov.Knorte{\displaystyle K_{n}}Dado que cada subespacio está contenido en el siguiente, el residuo no aumenta. Tras m iteraciones, donde m es el tamaño de la matriz A , el espacio de Krylov K m es todo R m y, por lo tanto, el método GMRES alcanza la solución exacta. Sin embargo, la idea es que, tras un número reducido de iteraciones (en relación con m ), el vector x n ya constituye una buena aproximación a la solución exacta.

Esto no ocurre en general. De hecho, un teorema de Greenbaum, Pták y Strakoš establece que para toda secuencia no creciente a 1 , ..., a m 1 , a m = 0, se puede encontrar una matriz A tal que r n = a n para todo n , donde r n es el residuo definido anteriormente. En particular, es posible encontrar una matriz para la cual el residuo permanece constante durante m 1 iteraciones, y solo se reduce a cero en la última iteración.  

En la práctica, sin embargo, GMRES suele funcionar bien. Esto se puede demostrar en situaciones específicas. Si la parte simétrica de A , es decir(AT+A)/2{\displaystyle (A^{T}+A)/2}, es definida positiva , entonces rnorte(1λmin2(1/2(AT+A))λmáximo(ATA))norte/2r0,{\displaystyle \|r_{n}\|\leq \left(1-{\frac {\lambda _{\min }^{2}(1/2(A^{T}+A))}{\lambda _{\max }(A^{T}A)}}\right)^{n/2}\|r_{0}\|,} dóndeλmetroinorte(METRO){\displaystyle \lambda _{\mathrm {min} }(M)}yλmetroaincógnita(METRO){\displaystyle \lambda _{\mathrm {max} }(M)}denotan el valor propio más pequeño y el más grande de la matriz.METRO{\displaystyle M}, respectivamente. [ 4 ]

Si A es simétrica y definida positiva, entonces incluso tenemos rnorte(κ2(A)21κ2(A)2)norte/2r0.{\displaystyle \|r_{n}\|\leq \left({\frac {\kappa _{2}(A)^{2}-1}{\kappa _{2}(A)^{2}}}\right)^{n/2}\|r_{0}\|.} dóndeκ2(A){\displaystyle \kappa _{2}(A)}denota el número de condición de A en la norma euclidiana.

En el caso general, donde A no es definida positiva, tenemos rnortebinfpagPAGnortepag(A)κ2(V)infpagPAGnortemáximoλσ(A)|pag(λ)|,{\displaystyle {\frac {\|r_{n}\|}{\|b\|}}\leq \inf _{p\in P_{n}}\|p(A)\|\leq \kappa _{2}(V)\inf _{p\in P_{n}}\max _{\lambda \in \sigma (A)}|p(\lambda )|,\,} donde P n denota el conjunto de polinomios de grado como máximo n con p (0) = 1, V es la matriz que aparece en la descomposición espectral de A , y σ ( A ) es el espectro de A. En términos generales, esto significa que la convergencia rápida ocurre cuando los autovalores de A se agrupan lejos del origen y A no está demasiado lejos de la normalidad . [ 5 ]

Todas estas desigualdades limitan únicamente los residuos en lugar del error real, es decir, la distancia entre la iteración actual x n y la solución exacta.

Extensiones del método

Al igual que otros métodos iterativos, GMRES se suele combinar con un método de preacondicionamiento para acelerar la convergencia.

El coste de las iteraciones crece como O( ), donde n es el número de iteración. Por lo tanto, a veces el método se reinicia después de un número, digamos k , de iteraciones, con x k como estimación inicial. El método resultante se denomina GMRES( k ) o GMRES reiniciado. Para matrices no definidas positivas, este método puede sufrir estancamiento en la convergencia, ya que el subespacio reiniciado suele estar cerca del subespacio anterior.

Las deficiencias de GMRES y GMRES reiniciado se abordan mediante el reciclaje del subespacio de Krylov en los métodos de tipo GCRO, como GCROT y GCRODR. [ 6 ] El reciclaje de subespacios de Krylov en GMRES también puede acelerar la convergencia cuando se necesitan resolver secuencias de sistemas lineales. [ 7 ]

Comparación con otros solucionadores

La iteración de Arnoldi se reduce a la iteración de Lanczos para matrices simétricas. El método del subespacio de Krylov correspondiente es el método de residuos mínimos (MinRes) de Paige y Saunders. A diferencia del caso asimétrico, el método MinRes se define mediante una relación de recurrencia de tres términos . Se puede demostrar que no existe un método del subespacio de Krylov para matrices generales que, a pesar de tener una relación de recurrencia corta, minimice las normas de los residuos, como lo hace GMRES.

Otro tipo de métodos se basa en la iteración asimétrica de Lanczos , en particular el método BiCG . Estos métodos utilizan una relación de recurrencia de tres términos, pero no alcanzan el residuo mínimo, por lo que el residuo no disminuye monótonamente. Ni siquiera se garantiza la convergencia.

La tercera clase la conforman métodos como CGS y BiCGSTAB . Estos también trabajan con una relación de recurrencia de tres términos (por lo tanto, sin optimalidad) e incluso pueden terminar prematuramente sin alcanzar la convergencia. La idea detrás de estos métodos es elegir adecuadamente los polinomios generadores de la secuencia de iteración.

Ninguna de estas tres clases es la mejor para todas las matrices; siempre hay ejemplos en los que una clase supera a la otra. Por lo tanto, en la práctica se prueban varios algoritmos de resolución para determinar cuál es el más adecuado para un problema dado.

Resolver el problema de mínimos cuadrados

Una parte del método GMRES consiste en encontrar el vectorynorte{\displaystyle y_{n}}lo cual minimiza H~norteynorteβmi1.{\displaystyle \left\|{\tilde {H}}_{n}y_{n}-\beta e_{1}\right\|.} Tenga en cuenta queH~norte{\displaystyle {\tilde {H}}_{n}}es una matriz de ( n  +  1) por n , por lo tanto da un sistema lineal sobredeterminado de n + 1 ecuaciones para n incógnitas.

El mínimo se puede calcular utilizando una descomposición QR : encontrar una matriz ortogonal Ω n de ( n  +  1) × ( n  +  1) y una matriz triangular superior de ( n + 1) × n.  R~norte{\displaystyle {\tilde {R}}_{n}}de tal manera que ΩnorteH~norte=R~norte.{\displaystyle \Omega _{n}{\tilde {H}}_{n}={\tilde {R}}_{n}.} La matriz triangular tiene una fila más que columnas, por lo que su fila inferior consta de ceros. Por lo tanto, se puede descomponer como: R~norte=[Rnorte0],{\displaystyle {\tilde {R}}_{n}={\begin{bmatrix}R_{n}\\0\end{bmatrix}},} dóndeRnorte{\displaystyle R_{n}}es una matriz triangular de n por n (por lo tanto, cuadrada).

La descomposición QR se puede actualizar de forma económica de una iteración a la siguiente, porque las matrices de Hessenberg difieren solo en una fila de ceros y una columna: H~norte+1=[H~nortehnorte+10hnorte+2,norte+1],{\displaystyle {\tilde {H}}_{n+1}={\begin{bmatrix}{\tilde {H}}_{n}&h_{n+1}\\0&h_{n+2,n+1}\end{bmatrix}},} donde h n+1 = ( h 1, n +1 , ..., h n +1, n +1 ) T . Esto implica que premultiplicar la matriz de Hessenberg por Ω n , aumentada con ceros y una fila con identidad multiplicativa, produce casi una matriz triangular: [Ωnorte001]H~norte+1=[Rnorternorte+10ρ0σ]{\displaystyle {\begin{bmatrix}\Omega _{n}&0\\0&1\end{bmatrix}}{\tilde {H}}_{n+1}={\begin{bmatrix}R_{n}&r_{n+1}\\0&\rho \\0&\sigma \end{bmatrix}}} Esto sería triangular si σ es cero. Para remediar esto, se necesita la rotación de Givens.GRAMOnorte=[Inorte000donortesnorte0snortedonorte]{\displaystyle G_{n}={\begin{bmatrix}I_{n}&0&0\\0&c_{n}&s_{n}\\0&-s_{n}&c_{n}\end{bmatrix}}} dónde donorte=ρρ2+σ2ysnorte=σρ2+σ2.{\displaystyle c_{n}={\frac {\rho }{\sqrt {\rho ^{2}+\sigma ^{2}}}}\quad {\text{and}}\quad s_{n}={\frac {\sigma }{\sqrt {\rho ^{2}+\sigma ^{2}}}}.} Con esta rotación de Givens, formamos Ωnorte+1=GRAMOnorte[Ωnorte001].{\displaystyle \Omega _{n+1}=G_{n}{\begin{bmatrix}\Omega _{n}&0\\0&1\end{bmatrix}}.} En efecto, Ωnorte+1H~norte+1=[Rnorternorte+10rnorte+1,norte+100]{\displaystyle \Omega _{n+1}{\tilde {H}}_{n+1}={\begin{bmatrix}R_{n}&r_{n+1}\\0&r_{n+1,n+1}\\0&0\end{bmatrix}}}es una matriz triangular conrnorte+1,norte+1=ρ2+σ2{\textstyle r_{n+1,n+1}={\sqrt {\rho ^{2}+\sigma ^{2}}}}.

Dada la descomposición QR, el problema de minimización se resuelve fácilmente observando que H~norteynorteβmi1=Ωnorte(H~norteynorteβmi1)=R~norteynorteβΩnortemi1.{\displaystyle {\begin{aligned}\left\|{\tilde {H}}_{n}y_{n}-\beta e_{1}\right\|&=\left\|\Omega _{n}({\tilde {H}}_{n}y_{n}-\beta e_{1})\right\|\\&=\left\|{\tilde {R}}_{n}y_{n}-\beta \Omega _{n}e_{1}\right\|.\end{aligned}}} Denotando el vectorβΩnortemi1{\displaystyle \beta \Omega _{n}e_{1}}por gramo~norte=[gramonorteγnorte]{\displaystyle {\tilde {g}}_{n}={\begin{bmatrix}g_{n}\\\gamma _{n}\end{bmatrix}}} con g nR n y γ nR , esto es H~norteynorteβmi1=R~norteynorteβΩnortemi1=[Rnorte0]ynorte[gramonorteγnorte].{\displaystyle {\begin{aligned}\left\|{\tilde {H}}_{n}y_{n}-\beta e_{1}\right\|&=\left\|{\tilde {R}}_{n}y_{n}-\beta \Omega _{n}e_{1}\right\|\\&=\left\|{\begin{bmatrix}R_{n}\\0\end{bmatrix}}y_{n}-{\begin{bmatrix}g_{n}\\\gamma _{n}\end{bmatrix}}\right\|.\end{aligned}}} El vector y que minimiza esta expresión viene dado por ynorte=Rnorte1gramonorte.{\displaystyle y_{n}=R_{n}^{-1}g_{n}.} Nuevamente, los vectoresgramonorte{\displaystyle g_{n}}son fáciles de actualizar. [ 8 ]

Código de ejemplo

GMRES estándar (MATLAB / GNU Octave)

función [x, e] = gmres ( A, b, x, max_iterations, umbral ) n = longitud ( A ); m = max_iterations ;% usar x como vector inicial r = b - A * x ;beta = norm ( r ); % El residuo relativo se rastreará y se comparará con el umbral de entrada para la verificación de convergencia b_norm = norm ( b );% Inicializar los vectores 1D sn = zeros ( m , 1 ); cs = zeros ( m , 1 ); g = zeros ( m + 1 , 1 ); g ( 1 ) = beta ; Q (:, 1 ) = r / beta ; para k = 1 : m% Ejecutar arnoldi [ H ( 1 : k + 1 , k ), Q (:, k + 1 )] = arnoldi ( A , Q , k ); % Eliminar el último elemento en H i-ésima fila (calculando así R in situ) y actualizar la matriz de rotación [ H ( 1 : k + 1 , k ), cs ( k ), sn ( k )] = apply_givens_rotation ( H ( 1 : k + 1 , k ), cs , sn , k ); % Aplicar la rotación de Givens para calcular la g recién extendida g ( k + 1 ) = - sn ( k ) * g ( k ); g ( k ) = cs ( k ) * g ( k );% Como mínimo, ||r_k|| = |g(k+1)| current_relative_tol = abs ( g ( k + 1 )) / b_norm ; if ( current_relative_tol <= threshold ) break ; end end % Si no se alcanza el umbral, k = m en este punto (y no m+1) % calcular el resultado y = H ( 1 : k , 1 : k ) \ g ( 1 : k ); x = x + Q (:, 1 : k ) * y ; end%----------------------------------------------------% % Función de Arnoldi % %----------------------------------------------------% function [h, q] = arnoldi ( A, Q, k ) q = A * Q (:, k ); % Vector de Krylov para i = 1 : k % Gram-Schmidt modificado, manteniendo la matriz de Hessenberg h ( i ) = q ' * Q (:, i ); q = q - h ( i ) * Q (:, i ); end h ( k + 1 ) = norm ( q ); q = q / h ( k + 1 ); end%---------------------------------------------------------------------% % Aplicando la rotación de Givens a la columna H % %---------------------------------------------------------------------% function [h, cs_k, sn_k] = apply_givens_rotation ( h, cs, sn, k ) % aplicar para la i-ésima columna for i = 1 : k - 1 temp = cs ( i ) * h ( i ) + sn ( i ) * h ( i + 1 ); h ( i + 1 ) = - sn ( i ) * h ( i ) + cs ( i ) * h ( i + 1 ); h ( i ) = temp ; end% actualiza los siguientes valores de seno y coseno para la rotación [ cs_k , sn_k ] = givens_rotation ( h ( k ), h ( k + 1 ));% eliminar H(i + 1, i) h ( k ) = cs_k * h ( k ) + sn_k * h ( k + 1 ); h ( k + 1 ) = 0.0 ; fin%%----Calcular la matriz de rotación de Givens----%% function [cs, sn] = givens_rotation ( v1, v2 ) % if (v1 == 0) % cs = 0; % sn = 1; % else t = sqrt ( v1 ^ 2 + v2 ^ 2 ); % cs = abs(v1) / t; % sn = cs * v2 / v1; cs = v1 / t ; % see http://www.netlib.org/eispack/comqr.f sn = v2 / t ; % end end

Véase también

Referencias

  1. Saad, Youcef; Schultz, Martin H. (1986). "GMRES: Un algoritmo generalizado de residuos mínimos para resolver sistemas lineales no simétricos" . SIAM Journal on Scientific and Statistical Computing . 7 (3): 856– 869. doi : 10.1137/0907058 . ISSN 0196-5204 . 
  2. Paige y Saunders, "Solución de sistemas dispersos indefinidos de ecuaciones lineales", SIAM J. Numer. Anal., vol. 12, página 617 (1975) https://doi.org/10.1137/0712047
  3. ^ Nifa, Naoufal (2017). Solveurs performants pour l'optimisation sous contraintes en identificación de paramètres [ Solucionadores eficientes para optimización restringida en problemas de identificación de parámetros ] (Tesis) (en francés).
  4. Eisenstat, Elman y Schultz 1983 , Teorema 3.3 . Nota: todos los resultados para GCR también son válidos para GMRES, cf. Saad y Schultz 1986.
  5. Trefethen, Lloyd N.; Bau, David, III. (1997). Álgebra lineal numérica . Filadelfia: Society for Industrial and Applied Mathematics. Teorema 35.2. ISBN 978-0-89871-361-9.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  6. Amritkar, Amit; de Sturler, Eric; Świrydowicz, Katarzyna; Tafti, Danesh; Ahuja, Kapil (2015). "Reciclaje de subespacios de Krylov para aplicaciones de CFD y un nuevo solucionador híbrido de reciclaje". Journal of Computational Physics . 303 : 222. arXiv : 1501.03358 . Bibcode : 2015JCoPh.303..222A . doi : 10.1016/j.jcp.2015.09.040 . S2CID 2933274 . 
  7. Gaul, André (2014). Métodos de subespacio de Krylov reciclados para secuencias de sistemas lineales (Tesis doctoral). TU Berlín. doi : 10.14279/depositonce-4147 .
  8. Stoer, Josef; Bulirsch, Roland (2002). Introducción al análisis numérico . Textos de matemáticas aplicadas (3.ª ed.). Nueva York: Springer. §8.7.2. ISBN  978-0-387-95452-3.
  • Maestro, Andreas; Vömel, Christof (2005). Numerik linearer Gleichungssysteme . Wiesbaden: Vieweg. ISBN 978-3-528-13135-7.
  • Saad, Y. (2003). Métodos iterativos para sistemas lineales dispersos (2.ª  ed.). Filadelfia: SIAM. ISBN 978-0-89871-534-7.
  • Eisenstat, Stanley C.; Elman, Howard C.; Schultz, Martin H. (1983). "Métodos iterativos variacionales para sistemas no simétricos de ecuaciones lineales". SIAM Journal on Numerical Analysis . 20 (2): 345– 357. doi : 10.1137/0720023 . ISSN 0036-1429 . 
  • Dongarra et al., Plantillas para la solución de sistemas lineales: bloques de construcción para métodos iterativos , 2.ª edición, SIAM, Filadelfia, 1994.
  • Imankulov, Timur; Lebedev, Danil; Matkerim, Bazargul; Daribayev, Beimbet; Kassymbek, Nurislam (2021-10-08). "Simulación numérica de flujo multicomponente multifásico en medios porosos: análisis de eficiencia del método basado en Newton" . Fluids . 6 (10): 355. doi : 10.3390/fluids6100355 . ISSN 2311-5521 .