Esta pregunta ha estado abierta durante mucho tiempo, pero creo que aún merece ser respondida.
El problema fundamental con el uso de solucionadores de espacio Krylov en bloques individuales como preacondicionadores internos es que no son operadores lineales. Para entender esto, denotemos porel vector que obtienes como solución ejecutando un método de espacioK deKrylovKen el sistema linealAx=bpara a lo sumoNiteraciones o hasta quese alcanceuna toleranciaτ, utilizando un preacondicionadorP≈A-1. En otras palabras, puedes pensar enX~= K( A , P, τ, N; b )KA x = bnorteτPAGS≈ A- 1 como operador que actúa sobre b .Ksi
Ahora tenga en cuenta que es un operador lineal: requeriría resolver A x = b exactamente, es decir, K ( A , P , 0 , ∞ ; b ) = A - 1 b , que es lineal en b . En muchos casos, ejecutar un método de espacio de Krylov para exactamente una iteración a partir de un vector cero también es un operador lineal aplicado a bK( A , P, 0 , ∞ ; ⋅ )A x = bK( A , P, 0 , ∞ ; b ) = A- 1sisisir( 0 )= b - A x( 0 )K( A , P, τ, N; ⋅ )norteτ
K( A , P, τ, N; ⋅ )UNA
Esto contrasta con muchos otros métodos que se usan para precondicionar: por ejemplo, un paso SSOR es una operación lineal en el vector al que lo aplica, al igual que todos los demás métodos que aplican un paso de una iteración de punto fijo.
El problema fundamental ahora es que la mayoría de los métodos espaciales de Krylov requieren que el preacondicionador sea un operador lineal. Simplemente no convergerán si el preacondicionador no es lineal, lo que explica su observación. Por otro lado, hay variaciones de algunos métodos espaciales de Krylov, generalmente precedidos por la palabra "Flexible", como F-GMRES en "GMRES Flexible", que funcionan alrededor de esto y que pueden tratar con preacondicionadores que no son lineales operadores. Estas variantes flexibles de los métodos originales seguirán convergiendo, y a menudo son métodos poderosos cuando se combinan con preacondicionadores buenos (pero no lineales).