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 por. Denotemos el sistema (cuadrado) de ecuaciones lineales que se va a resolver mediante 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, que.
El n -ésimo subespacio de Krylov para este problema es dóndees el residuo inicial dada una suposición inicial. Claramentesi.
GMRES se aproxima a la solución exacta depor el vectorque minimiza la norma euclidiana del residuo.
Los vectorespodría ser casi linealmente dependiente , por lo que en lugar de esta base, se utiliza la iteración de Arnoldi para encontrar vectores ortonormales.que constituyen la base para. En particular,.
Por lo tanto, el vectorse puede escribir comocon, dóndees la matriz m por n formada por. En otras palabras, encontrar la n -ésima aproximación de la solución (es decir,) se reduce a encontrar el vector, que se determina minimizando el residuo como se describe a continuación .
El proceso de Arnoldi también construye, un ()-por-matriz de Hessenberg superior que satisface una igualdad que se utiliza para simplificar el cálculo de(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 deson ortonormales, tenemos dóndees el primer vector en la base estándar de, ysiendo el vector residual del primer ensayo (generalmente). Por eso,se puede encontrar minimizando la norma euclidiana del residuo Este es un problema de mínimos cuadrados lineales de tamaño n .
Esto da como resultado el método GMRES. En el-ª iteración:
- calcularcon el método Arnoldi;
- encontrar ello cual minimiza;
- calcular;
- Repita el proceso si el residuo aún no es lo suficientemente pequeño.
En cada iteración, un producto matriz-vectordebe calcularse. Esto cuesta aproximadamenteoperaciones de punto flotante para matrices densas generales de tamaño, pero el costo puede disminuir apara matrices dispersas . Además del producto matriz-vector,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.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, es definida positiva , entonces dóndeydenotan el valor propio más pequeño y el más grande de la matriz., respectivamente. [ 4 ]
Si A es simétrica y definida positiva, entonces incluso tenemos dóndedenota el número de condición de A en la norma euclidiana.
En el caso general, donde A no es definida positiva, tenemos 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( n² ), 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 vectorlo cual minimiza Tenga en cuenta quees 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. de tal manera que 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: dóndees 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: 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: Esto sería triangular si σ es cero. Para remediar esto, se necesita la rotación de Givens. dónde Con esta rotación de Givens, formamos En efecto, es una matriz triangular con.
Dada la descomposición QR, el problema de minimización se resuelve fácilmente observando que Denotando el vectorpor con g n ∈ R n y γ n ∈ R , esto es El vector y que minimiza esta expresión viene dado por Nuevamente, los vectoresson 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 endVéase también
Referencias
- ↑ 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 .
- ↑ 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
- ^ 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).
- ↑ 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.
- ↑ 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 ) - ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- Álgebra lineal numérica