Problèmes où le gradient conjugué fonctionne beaucoup mieux que GMRES


17

Je m'intéresse aux cas où le gradient conjugué fonctionne bien mieux que la méthode GMRES.

En général, le CG est le choix préférable dans de nombreux cas de SPD (symétrique-positif-défini) car il nécessite moins de stockage et le taux théorique de convergence pour le CG est le double de celui du GMRES. Y a-t-il des problèmes où ces taux sont effectivement observés? Existe-t-il une caractérisation des cas où GMRES fonctionne mieux ou est comparable à CG pour le même nombre de spmv (multiplications matricielles-vecteur éparses).

Réponses:


8

Une chose que CG a en sa faveur est qu'elle ne minimise pas la norme discrète pour ses polynômes résiduels (ce que fait GMRES). Cela minimise plutôt une norme induite par la matrice, et très souvent cette norme induite par la matrice finit par être très proche de la norme énergétique pour la discrétisation des problèmes physiques, et souvent c'est une norme beaucoup plus raisonnable pour mesurer l'erreur en raison des propriétés de conservation à venir de la physique.l2

Vous pouvez également obtenir ce type d'effet avec GMRES si effectuer une factorisation Cholesky d'une matrice de masse n'est pas trop cher, vous pouvez forcer les produits internes à être les produits énergétiques internes que vous souhaitez.

Ensuite, les cas où l'on devrait s'attendre à ce que CG fonctionne très différemment de GMRES, c'est quand les constantes impliquées dans l'équivalence de normes sont très différentes. Cela peut être vrai par exemple dans une méthode spectrale de Galerkin d'ordre élevé où la norme discrète utilisée dans GMRES traite tous les degrés de liberté comme étant égaux, alors qu'en réalité les gradients polynomiaux sont les plus nets près des frontières (d'où le regroupement de nœuds), etc. les constantes d'équivalence de norme entre cette norme et disons que la norme continue donnée par la matrice de masse peut être très grande.L 2l2L2


Je voulais donner un exemple ici avec une méthode d'ordre élevé et des historiques de convergence de CG, GMRES et GMRES + astuce Cholesky .. mais malheureusement le seul code que j'ai en main pour les problèmes de second ordre est DG de la variété non symétrique .. donc CG isn 'ne s'applique pas, aimerait voir cela en action.
Reid.Atcheson

3
Je pense que votre réponse atteint quelque chose d'important, mais j'aimerais que vous clarifiiez. En particulier, la question est une question d'algèbre linéaire pure, et votre réponse parle de normes physiques et de matrices de masse et ainsi de suite à partir d'un PDE numérique. Pouvons-nous dire quelque chose de précis sur la façon dont la minimisation dans différentes normes au sein d'un même espace Krylov conduit à des itérations différentes?
Andrew T.Barker

Mis à part les exemples numériques, je ne pense pas qu'il y ait encore eu une étude théorique approfondie expliquant comment différentes normes donnent des réponses substantiellement différentes. Je pense que le problème est que les résultats tournent autour de l'asymptotique, et pour un système linéaire fixe, les résultats théoriques seront des facteurs constants modulo identiques. S'il y a des études théoriques, j'aimerais les voir, mais après avoir demandé à certains des experts en algèbre linéaire numérique de mon département, il ne semble pas qu'il y ait encore une analyse théorique précise montrant ce qui se passe avec différentes normes.
Reid.Atcheson

4

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=0xkcxkgxkKk={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 -ekc=xxkcUNE

(UNEekc,ekc)=(UNE(X-Xkc),X-Xkc)=minyK(UNE(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-UNEXkg2

(rk,rk)=(b-UNEXkg,b-UNEXkg)=minyK(b-UNEy,b-UNEy).
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' AUNEek=rk
(rk,rk)=(UNEekg,UNEekg)=(UNE2ekg,ekg)
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)(UNEb,b)
α=(UNEb,b)(UNE2b,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.

2
b=(1,ϵ,0,0,)|b|=1+ϵbTUNEb=2ϵbTUNE2b=ϵ1+ϵ2αCG=ϵ-1+12ϵ-1αGMRES=21+ϵ22ϵ-1

3

Une chose est que GMRES n'est jamais utilisé partout où CG peut être appliqué. Je ne pense pas qu'il soit logique de comparer ces deux. Pour les matrices SPD, CG est définitivement le gagnant en raison des exigences de stockage et des raisons que vous avez mentionnées ci-dessus. Une question qui serait intéressante est de trouver une extension de CG, applicable aux problèmes où CG ne peut pas être appliqué. Il existe des méthodes comme BiCG-stab qui ne nécessitent pas d'augmentation linéaire de la mémoire comme GMRES, mais la convergence n'est pas aussi bonne que GMRES (parfois même avec GMRES redémarré).


2
Il existe des schémas IDR qui comblent le fossé entre GMRES et BiCG en termes d'économies de mémoire, de stabilité et de convergence: ta.twi.tudelft.nl/nw/users/gijzen/IDR.html Je ne suis pas sûr d'être d'accord que GMRES ne devrait pas être utilisé si CG pouvait l'être. Si vous pouvez effectuer une factorisation cholesky d'une matrice qui induit votre norme énergétique, vous pouvez l'injecter dans une itération symétrique de Lanczos et obtenir une solution de récurrence à trois termes qui se comportera de manière très similaire à CG. Bien sûr, CG est l'option la plus facile, mais l'option est disponible :)
Reid.Atcheson

2
Si vous utilisez un lisseur Krylov, par exemple, alors GMRES est probablement préférable car il utilise une norme plus faible qui cible des valeurs propres plus grandes qui ont tendance à être plus fréquentes.
Jed Brown
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.