Je soupçonne qu'il n'y a en général pas beaucoup de différence entre GMRES et CG pour une matrice SPD.
Disons que nous résolvons avec A défini positif symétrique et la supposition de départ x 0 = 0 et générons des itérations avec CG et GMRES, appelons-les x c k et x g k . Les deux méthodes itératives construiront x k à partir du même espace de Krylov K k = { b , A b , A 2 b , … } . Ils le feront de manières légèrement différentes.Ax=bAx0=0xckxgkxkKk={b,Ab,A2b,…}
CG se caractérise en minimisant l'erreur dans la norme d'énergie induite par A , de sorte que
( A e c k , e c k ) = ( A ( x - x c k ) , x - x c k ) = min y ∈ K ( A ( x - y ) , x -eck=x−xckA
( A eck, eck) = ( A ( x - xck) , x - xck) = miny∈ K( A ( x - y) , x - y) .
GMRES minimise à la place le résidu , et le fait dans la norme discrète ℓ 2 , de sorte 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 xgkℓ2
( rk, rk) = ( b - A xgk, b - A xgk) = miny∈ K( b - A y, b - A y) .
Maintenant, en utilisant l'équation d'erreur
nous pouvons également écrire GMRES comme minimisant
( r k , r k ) = ( A e g k , A e g k ) = ( A 2 e g k , e g k )
où Je tiens à souligner que ce ne vaut que pour une matrice SPD
A . Ensuite, nous avons CG minimisant l'erreur par rapport à l'
AA ek= rk( rk, rk) = ( A egk, A egk) = ( A2egk, egk)
UNEUNEnorme et GMRES minimisant l'erreur par rapport à la norme
. Si nous voulons qu'ils se comportent très différemment, nous aurions besoin intuitivement d'un
A tel que ces deux normes soient très différentes. Mais pour le SPD
A, ces normes se comporteront de manière assez similaire.
UNE2UNEUNE
Pour être encore plus précis, dans la première itération avec l'espace de Krylov , CG et GMRES construiront une approximation de la forme x 1 = α b . CG choisira
α = ( b , b )K1= { b }X1= α b
α = ( b , b )( A b , b )
α = ( A b , b )( A2b , b ).
UNE( ϵ , 1 , 1 , 1 , … )b = ( 1 , 1 , 0 , 0 , 0 , … )ϵ → 0UNEb de sorte que ce facteur de différence deux continue tout au long de l'itération, mais je doute qu'il s'aggrave.