Una cosa que CG tiene a su favor es que no está minimizando la discreta norma para sus polinomios residuales (lo que hace GMRES). En cambio, está minimizando una norma inducida por la matriz, y muy a menudo esta norma inducida por la matriz termina siendo muy cercana a la norma de energía para la discretización de problemas físicos, y con frecuencia esta es una norma mucho más razonable para medir el error debido a las propiedades de conservación. de la físical2
De hecho, también puede lograr este tipo de efecto con GMRES si realizar una factorización Cholesky de una matriz de masa no es demasiado costoso, puede forzar a los productos internos a ser los productos internos de energía que desea.
Entonces, los casos en los que uno debería esperar que CG funcione de manera muy diferente a GMRES es cuando las constantes implicadas en la equivalencia de normas son muy diferentes. Esto puede ser cierto, por ejemplo, en un método de Galerkin espectral de alto orden donde la discreta norma utilizada en GMRES trata todos los grados de libertad como iguales, cuando en realidad los gradientes polinomiales son límites cercanos más nítidos (por lo tanto, agrupamiento de nodos), y así las constantes de equivalencia de la norma entre esa norma y decir la norma continua dada por la matriz de masa puede ser muy grande.L 2l2L2
Sospecho que en general no hay mucha diferencia entre GMRES y CG para una matriz SPD.
Digamos que estamos resolviendo con A simétrica definida positiva y la suposición de partida x 0 = 0 y itera generando con CG y GMRES, los llaman x c k y x g k . Ambos métodos iterativos construirán x k desde el mismo espacio de Krylov K k = { b , A b , A 2 b , ... } . Lo harán de maneras ligeramente diferentes.UN x = b UN X0 0= 0 XCk Xsolk Xk Kk= { B , A b , A2b , ... }
CG se caracteriza por reducir al mínimo el error en la norma de la energía inducida por A , de manera que ( A e c k , e c k ) = ( A ( x - x c k ) , x - x c k ) = min y ∈ K ( A ( x - y ) , x -miCk= x - xCk UN
GMRES minimiza en cambio el residuo , y lo hace en la norma discreta ℓ 2 , de modo que ( r k , r k ) = ( b - A x g k , b - A x g k ) = min y ∈ K ( b - A y , b - A y ) .rk= B - A xsolk ℓ2
Para ser aún más específico, en la primera iteración con el espacio Krylov , tanto CG como GMRES construirán una aproximación de la forma x 1 = α b . CG elegirá α = ( b , b )K1= { b } X1= α b
y GMRES elegirá
α=(Ab,b)
fuente
Una cosa es que GMRES nunca se utiliza siempre que sea CG se puede aplicar. No creo que tiene sentido comparar estos dos. Para matrices SPD, CG es sin duda el ganador debido a los requisitos de almacenamiento y las razones que usted ha mencionado anteriormente. Una pregunta que sería interesante es, para encontrar una extensión de CG, que es aplicable a problemas donde CG no se puede aplicar. Existen métodos como BICG-puñalada que no requieren que aumenta linealmente memoria como GMRES, pero la convergencia no es tan buena como GMRES (algunas veces incluso con GMRES renovadas).
fuente