M´ ethodes it´ eratives pour la r´ esolution des syst` emes lin´ eaires
4.4 M´ ethodes de Krylov
Nous introduisons dans cette section les m´ethodes bas´ees sur les sous-espaces de Krylov. Pour les d´emonstrations et pour plus de d´etails nous renvoyons `a [Saa96], [Axe94] et [Hac94].
Consid´erons la m´ethode de Richardson (4.23) avec P=I ; la relation entre lek-i`eme r´esidu et le r´esidu initial est donn´ee par
r(k)=
k−1 j=0
(I−αjA)r(0). (4.49)
Autrement dit r(k)=pk(A)r(0), o`u pk(A) est un polynˆome en A de degr´ek.
Si on d´efinit l’espace
Km(A;v) = vect
v,Av, . . . ,Am−1v
, (4.50)
il est imm´ediat d’apr`es (4.49) que r(k) ∈ Kk+1(A;r(0)). L’espace (4.50) est appel´esous-espace de Krylov d’ordrem. C’est un sous-espace de l’espace en-gendr´e par tous les vecteursu∈Rn de la formeu=pm−1(A)v, o`upm−1 est un polynˆome en A de degr´e≤m−1.
De mani`ere analogue `a (4.49), on montre que l’it´er´ee x(k) de la m´ethode de Richardson est donn´ee par
x(k)=x(0)+
k−1
j=0
αjr(j).
L’it´er´ee x(k)appartient donc `a l’espace Wk=
'
v=x(0)+y, y∈Kk(A;r(0)) (
. (4.51)
Remarquer aussi que k−1
j=0αjr(j) est un polynˆome en A de degr´e inf´erieur
`
a k−1. Dans la m´ethode de Richardson non pr´econditionn´ee, on cherche donc une valeur approch´ee dexdans l’espaceWk. Plus g´en´eralement, on peut imaginer des m´ethodes dans lesquelles on recherche des solutions approch´ees de la forme
x(k)=x(0)+qk−1(A)r(0), (4.52) o`uqk−1est un polynˆome choisi de mani`ere `a ce que x(k) soit, dans un sens `a pr´eciser, la meilleure approximation dexdansWk. Une m´ethode dans laquelle on recherche une solution de la forme (4.52) avec Wk d´efini par (4.51) est appel´eem´ethode de Krylov.
On a le r´esultat suivant :
Propri´et´e 4.6 SoitA∈Rn×netv∈Rn. On d´efinit le degr´e devpar rapport
`
a A, not´edegA(v), comme ´etant le degr´e minimum des polynˆomes non nuls p tels que p(A)v = 0. Le sous-espace de Krylov Km(A;v) a une dimension
´
egale `a m si et seulement si le degr´e de v par rapport `a A est strictement sup´erieur `am.
La dimension deKm(A;v) est donc ´egale au minimum entremet le degr´e de v par rapport `a A. Par cons´equent, la dimension des sous-espaces de Krylov est une fonction croissante dem. Remarquer que le degr´e devne peut pas ˆetre plus grand quend’apr`es le th´eor`eme de Cayley-Hamilton (voir Section 1.7).
Exemple 4.7 Consid´erons la matrice A = tridiag4(−1,2,−1). Le vecteur v = [1,1,1,1]T est de degr´e 2 par rapport `a A puisque p2(A)v = 0 avec p2(A) =
I4−3A+A2, et puisqu’il n’y a pas de polynˆomep1de degr´e 1 tel quep1(A)v=0. Par cons´equent, tous les sous-espaces de Krylov `a partir deK2(A;v) sont de dimension 2. Le vecteurw= [1,1,−1,1]T est de degr´e 4 par rapport `a A. •
Pour un m fix´e, il est possible de calculer une base orthonormale de Km(A;v) en utilisant l’algorithme d’Arnoldi.
En posantv1=v/ v 2, cette m´ethode g´en`ere une base orthonormale{vi} de Km(A;v1) en utilisant le proc´ed´e de Gram-Schmidt (voir Section 3.4.3).
Pour k= 1, . . . , m, l’algorithme d’Arnoldi consiste `a calculer : hik=vTi Avk, i= 1,2, . . . , k, wk = Avk−
k i=1
hikvi, hk+1,k= wk 2.
(4.53)
Si wk =0, le processus s’interrompt (on parle debreakdown) ; autrement, on posevk+1=wk/ wk 2et on reprend l’algorithme en augmentantkde 1.
On peut montrer que si la m´ethode s’ach`eve `a l’´etapem, alors les vecteurs v1, . . . ,vmforment une base deKm(A;v). Dans ce cas, en notant Vm∈Rn×m la matrice dont les colonnes sont les vecteurs vi, on a
VmTAVm= Hm, VTm+1AVm=Hm, (4.54) o`u Hm ∈ R(m+1)×m est la matrice de Hessenberg sup´erieure dont les coeffi-cientshij sont donn´es par (4.53) et Hm∈Rm×mest la restriction de Hmaux mpremi`eres lignes etmpremi`eres colonnes.
L’algorithme s’interrompt `a une ´etapek < msi et seulement si degA(v1) = k. Pour ce qui de la stabilit´e, tout ce qui a ´et´e dit pour le proc´ed´e de Gram-Schmidt peut ˆetre repris ici. Pour des variantes plus efficaces et plus stables de (4.53), nous renvoyons `a [Saa96].
Les fonctionsarnoldi_alget GSarnoldidu Programme 21, fournissent une impl´ementation MATLAB de l’algorithme d’Arnoldi. En sortie, les co-lonnes de V contiennent les vecteurs de la base construite, et la matrice H stocke les coefficients hik calcul´es par l’algorithme. Si m ´etapes sont effec-tu´ees, V= VmetH(1 :m,1 :m) = Hm.
Programme 21 - arnoldialg: M´ethode d’Arnoldi avec orthonormalisation de Gram-Schmidt
function [V,H]=arnoldialg(A,v,m)
% ARNOLDIALG Algorithme d’Arnoldi
% [B,H]=ARNOLDIALG(A,V,M) construit pour un M fix´e une base orthonormale
% B de K M(A,V) telle que VˆT*A*V=H.
v=v/norm(v,2); V=v; H=[]; k=0;
while k<= m-1
[k,V,H] = GSarnoldi(A,m,k,V,H);
end return
function [k,V,H]=GSarnoldi(A,m,k,V,H)
% GSARNOLDI M´ethode de Gram-Schmidt pour l’algorithme d’Arnoldi k=k+1; H=[H,V(:,1:k)’*A*V(:,k)];
s=0;
for i=1:k
s=s+H(i,k)*V(:,i);
end
w=A*V(:,k)-s; H(k+1,k)=norm(w,2);
if H(k+1,k)>=eps & k<m V=[V,w/H(k+1,k)];
else k=m+1;
end return
Ayant d´ecrit un algorithme pour construire la base d’un sous-espace de Krylov d’ordre quelconque, nous pouvons maintenant r´esoudre le syst`eme lin´eaire (3.2) par une m´ethode de Krylov. Pour toutes ces m´ethodes, le vecteur x(k) est toujours de la forme (4.52) et, pour unr(0) donn´e,x(k)est choisi comme
´
etant l’unique ´el´ement deWk qui satisfait un crit`ere de distance minimale `a x. C’est la mani`ere de choisirx(k) qui permet de distinguer deux m´ethodes de Krylov.
L’id´ee la plus naturelle est de chercher x(k)∈ Wk comme le vecteur qui minimise la norme euclidienne de l’erreur. Mais cette approche n’est pas uti-lisable en pratique carx(k)d´ependrait alors de l’inconnuex.
Voici deux strat´egies alternatives :
1. calculer x(k) ∈ Wk en imposant au r´esidu r(k) d’ˆetre orthogonal `a tout vecteur deKk(A;r(0)), autrement dit on cherche x(k)∈Wk tel que
vT(b−Ax(k)) = 0 ∀v∈Kk(A;r(0)); (4.55) 2. calculerx(k)∈Wk qui minimise la norme euclidienne du r´esidu r(k) 2,
c’est-`a-dire
b−Ax(k) 2= min
v∈Wk b−Av 2. (4.56)
La relation (4.55) conduit `a la m´ethode d’Arnoldi pour les syst`emes lin´eaires (´egalement connue sous le nom de FOM, pourfull orthogonalization method), tandis que (4.56) conduit `a la m´ethode GMRES.
Dans les deux prochaines sections, nous supposerons quek´etapes de l’algo-rithme d’Arnoldi auront ´et´e effectu´ees. Une base orthonormale deKk(A;r(0))
aura donc ´et´e construite et on la supposera stock´ee dans les vecteurs colonnes de la matrice Vk avecv1 =r(0)/ r(0) 2. Dans ce cas, la nouvelle it´er´ee x(k) peut toujours s’´ecrire comme
x(k)=x(0)+ Vkz(k), (4.57) o`uz(k)doit ˆetre choisi selon un crit`ere donn´e.
4.4.1 La m´ethode d’Arnoldi pour les syst`emes lin´eaires
Imposons `ar(k)d’ˆetre orthogonal `a Kk(A;r(0)) en imposant (4.55) pour tous les vecteurs de la base vi,i.e.
VkTr(k)= 0. (4.58)
Puisquer(k)=b−Ax(k)avecx(k)de la forme (4.57), la relation (4.58) devient VTk(b−Ax(0))−VTkAVkz(k)= VTkr(0)−VkTAVkz(k)= 0. (4.59) Grˆace `a l’orthonormalit´e de la base et au choix dev1, on a VkTr(0)= r(0) 2e1, e1 ´etant le premier vecteur unitaire deRk. Avec (4.54), il d´ecoule de (4.59) quez(k) est la solution du syst`eme lin´eaire
Hkz(k)= r(0) 2e1. (4.60) Une fois z(k) connu, on peut calculerx(k) `a partir de (4.57). Comme Hk est une matrice de Hessenberg sup´erieure, on peut facilement r´esoudre le syst`eme lin´eaire (4.60) en effectuant, par exemple, une factorisation LU de Hk.
Remarquons qu’en arithm´etique exacte la m´ethode ne peut effectuer plus de n ´etapes et qu’elle s’ach`eve en m < n ´etapes seulement si l’algorithme d’Arnoldi s’interrompt. Pour la convergence de la m´ethode, on a le r´esultat suivant.
Th´eor`eme 4.13 En arithm´etique exacte, la m´ethode d’Arnoldi donne la so-lution de (3.2)apr`es au plusnit´erations.
D´emonstration.Si la m´ethode s’arrˆete `a lan-i`eme it´eration, alors n´ecessairement x(n) =x puisque Kn(A;r(0)) =Rn. Si la m´ethode s’arrˆete `a la m-i`eme it´eration (breakdown), pour un m < n, alors x(m) = x. En effet, on inversant la premi`ere relation de (4.54), on a
x(m) =x(0)+ Vmz(m)=x(0)+ VmH−1mVTmr(0)= A−1b.
3 L’algorithme d’Arnoldi ne peut ˆetre utilis´e tel qu’on vient de le d´ecrire, puisque la solution ne serait calcul´ee qu’apr`es avoir achev´e l’ensemble du processus,
sans aucun contrˆole de l’erreur. N´eanmoins le r´esidu est disponible sans avoir
`
a calculer explicitement la solution ; en effet, `a lak-i`eme ´etape, on a b−Ax(k) 2=hk+1,k|eTkzk|,
et on peut d´ecider par cons´equent d’interrompre l’algorithme si
hk+1,k|eTkzk|/ r(0) 2≤ε, (4.61) o`uε >0 est une tol´erance fix´ee.
La cons´equence la plus importante du Th´eor`eme 4.13 est que la m´ethode d’Arnoldi peut ˆetre vue comme une m´ethode directe, puisqu’elle fournit la solution exacte apr`es un nombre fini d’it´erations. Ceci n’est cependant plus vrai en arithm´etique `a virgule flottante `a cause de l’accumulation des erreurs d’arrondi. De plus, si on prend en compte le coˆut ´elev´e du calcul (qui est de l’ordre de 2(nz+mn)flopspourm´etapes et une matrice creuse d’ordrenayant nz coefficients non nuls) et la m´emoire importante n´ecessaire au stockage de la matrice Vm, on comprend que la m´ethode d’Arnoldi ne peut ˆetre utilis´ee telle quelle en pratique, sauf pour de petites valeurs dem.
De nombreux rem`edes existent contre ce probl`eme. Un d’entre eux consiste
`
a pr´econditionner le syst`eme (en utilisant, par exemple, un des pr´ econdition-neurs de la Section 4.3.2). On peut aussi introduire des versions modifi´ees de la m´ethode d’Arnoldi en suivant deux approches :
1. on effectue au plus m´etapes cons´ecutives, m´etant un nombre petit fix´e (habituellementm10). Si la m´ethode ne converge pas, on posex(0) = x(m) et on recommence l’algorithme d’Arnoldi pourm nouvelles ´etapes.
La proc´edure est r´ep´et´ee jusqu’`a convergence. Cette m´ethode, appel´ee FOM(m) ou m´ethode d’Arnoldi avec red´emarrage (ourestart), permet de r´eduire l’occupation m´emoire puisqu’elle ne n´ecessite de stocker que des matrices d’au plusmcolonnes ;
2. on impose une limitation dans le nombre de directions qui entrent en jeu dans le proc´ed´e d’orthogonalisation d’Arnoldi. On obtient alors la m´ethode d’orthogonalisation incompl`ete ou IOM. En pratique, lak-i`eme
´
etape de l’algorithme d’Arnoldi g´en`ere un vecteur vk+1qui est orthonor-mal aux q vecteurs pr´ec´edents, o`u q est fix´e en fonction de la m´emoire disponible.
Il est important de noter que ces deux strat´egies n’ont plus la propri´et´e de donner la solution exacte apr`es un nombre fini d’it´erations.
Le Programme 22 donne une impl´ementation de l’algorithme d’Arnoldi (FOM) avec un crit`ere d’arrˆet bas´e sur le r´esidu (4.61). Le param`etre d’en-tr´eemest la taille maximale admissible des sous-espaces de Krylov. C’est par cons´equent le nombre maximum d’it´erations.
Programme 22 - arnoldimet: M´ethode d’Arnoldi pour la r´esolution des syst`emes lin´eaires
function [x,iter]=arnoldimet(A,b,x0,m,tol)
%ARNOLDIMET M´ethode d’Arnoldi.
% [X,ITER]=ARNOLDIMET(A,B,X0,M,TOL) tente de r´esoudre le syst`eme
% A*X=B avec la m´ethode d’Arnoldi. TOL est la tol´erance de la m´ethode.
% M est la taille maximale de l’espace de Krylov. X0 est la donn´ee
% initiale. ITER est l’it´eration `a laquelle la solution X a ´et´e calcul´ee.
r0=b-A*x0; nr0=norm(r0,2);
if nr0 ˜= 0
v1=r0/nr0; V=[v1]; H=[]; iter=0; istop=0;
while (iter<=m-1) & (istop == 0) [iter,V,H] = GSarnoldi(A,m,iter,V,H);
[nr,nc]=size(H); e1=eye(nc);
y=(e1(:,1)’*nr0)/H(1:nc,:);
residual = H(nr,nc)*abs(y*e1(:,nc));
if residual<=tol istop = 1; y=y’;
end end if istop==0
[nr,nc]=size(H); e1=eye(nc);
y=(e1(:,1)’*nr0)/H(1:nc,:); y=y’;
end
x=x0+V(:,1:nc)*y;
else x=x0;
end
0 10 20 30 40 50 60
10−16 10−14 10−12 10−10 10−8 10−6 10−4 10−2 100 102
Fig. 4.9.Comportement du r´esidu en fonction du nombre d’it´erations de la m´ethode d’Arnoldi appliqu´ee au syst`eme lin´eaire de l’Exemple 4.8
Exemple 4.8 R´esolvons le syst`eme lin´eaire Ax=bavec A = tridiag100(−1,2,−1) et btel que la solution soitx =1. Le vecteur initial est x(0) =0et tol=10−10. La m´ethode converge en 50 it´erations et la Figure 4.9 montre le comportement de la norme euclidienne du r´esidu normalis´ee par celle du r´esidu initial en fonction du nombre d’it´erations. Remarquer la r´eduction brutale du r´esidu : c’est le signal typique du fait que le dernier sous-espaceWkconstruit est assez riche pour contenir
la solution exacte du syst`eme. •
4.4.2 La m´ethode GMRES
Dans cette m´ethode, on choisit x(k) de mani`ere `a minimiser la norme eucli-dienne du r´esidu `a chaque it´erationk. On a d’apr`es (4.57)
r(k)=r(0)−AVkz(k). (4.62) Or, puisquer(0) =v1 r(0) 2, la relation (4.62) devient, d’apr`es (4.54),
r(k)= Vk+1( r(0) 2e1−Hkz(k)), (4.63) o`ue1est le premier vecteur unitaire deRk+1. Ainsi, dans GMRES, la solution
`
a l’´etapekpeut ˆetre calcul´ee avec (4.57) et
z(k)choisi de mani`ere `a minimiser r(0) 2e1−Hkz(k) 2. (4.64) Noter que la matrice Vk+1intervenant dans (4.63) ne modifie pas la valeur de · 2car elle est orthogonale. Comme on doit r´esoudre `a chaque ´etape un pro-bl`eme de moindres carr´es de taillek, GMRES est d’autant plus efficace que le nombre d’it´erations est petit. Exactement comme pour la m´ethode d’Arnoldi, GMRES s’ach`eve en donnant la solution exacte apr`es au plusnit´erations. Un arrˆet pr´ematur´e est dˆu `a une interruption dans le proc´ed´e d’orthonormalisa-tion d’Arnoldi. Plus pr´ecis´ement, on a le r´esultat suivant :
Propri´et´e 4.7 La m´ethode GMRES s’arrˆete `a l’´etape m (avec m < n) si et seulement si la solution calcul´ee x(m) co¨ıncide avec la solution exacte du syst`eme.
Une impl´ementation MATLAB ´el´ementaire de GMRES est propos´ee dans le Programme 23. Ce dernier demande en entr´ee la taille maximale admissible mdes sous-espaces de Krylov et la tol´erancetolsur la norme euclidienne du r´esidu normalis´ee par celle du r´esidu initial. Dans cette impl´ementation, on calcule la solutionx(k)`a chaque pas pour calculer le r´esidu, ce qui induit une augmentation du coˆut de calcul.
Programme 23 - gmres : M´ethode GMRES pour la r´esolution des syst`emes lin´eaires
function [x,iter]=gmres(A,b,x0,m,tol)
%GMRES M´ethode GMRES.
% [X,ITER]=GMRES(A,B,X0,M,TOL) tente de r´esoudre le syst`eme
% A*X=B avec la m´ethode GMRES. TOL est la tol´erance de la m´ethode.
% M est la taille maximale de l’espace de Krylov. X0 est la donn´ee
% initiale. ITER est l’it´eration `a laquelle la solution X a ´et´e calcul´ee.
r0=b-A*x0; nr0=norm(r0,2);
if nr0 ˜= 0
v1=r0/nr0; V=[v1]; H=[]; iter=0; residual=1;
while iter<=m-1 & residual>tol, [iter,V,H] = GSarnoldi(A,m,iter,V,H);
[nr,nc]=size(H); y=(H’*H)\ (H’*nr0*[1;zeros(nr-1,1)]);
x=x0+V(:,1:nc)*y; residual = norm(b-A*x,2)/nr0;
end else
x=x0;
end
Pour am´eliorer l’efficacit´e de l’impl´ementation de GMRES, il est n´ecessaire de d´efinir un crit`ere d’arrˆet qui ne requiert pas le calcul explicite du r´esidu
`
a chaque pas. Ceci est possible si on r´esout de fa¸con appropri´ee le syst`eme associ´e `a la matrice de Hessenberg Hk.
En pratique, Hk est transform´e en une matrice triangulaire sup´erieure Rk ∈R(k+1)×k avecrk+1,k= 0 telle que QTkRk =Hk, o`u Qk est le r´esultat du produit dek rotations de Givens (voir Section 5.6.3). On peut alors montrer que, Qk ´etant orthogonale, minimiser r(0) 2e1−Hkz(k) 2 est ´equivalent `a minimiser fk−Rkz(k) 2, avec fk= Qk r(0) 2e1. On peut aussi montrer que la valeur absolue de la k+ 1-i`eme composante de fk est ´egale `a la norme euclidienne du r´esidu `a l’it´erationk.
Tout comme la m´ethode d’Arnoldi, GMRES est coˆuteuse en calcul et en m´emoire `a moins que la convergence ne survienne qu’apr`es peu d’it´erations.
Pour cette raison, on dispose `a nouveau de deux variantes de l’algorithme : la premi`ere, GMRES(m), bas´ee sur un red´emarrage apr`es m it´erations, la seconde, Quasi-GMRES ou QGMRES, sur l’arrˆet du proc´ed´e d’orthogonalisa-tion d’Arnoldi. Dans les deux cas, on perd la propri´et´e de GMRES d’obtenir la solution exacte en un nombre fini d’it´erations.
Remarque 4.4 (m´ethodes de projection) Les it´erations de Krylov peu-vent ˆetre vues comme des m´ethodes de projection. En notant Yk etLk deux sous-espaces quelconques de Rn de dimensionm, on appellem´ethode de pro-jection un proc´ed´e qui construit une solution approch´ee x(k) `a l’´etapek, en
imposant que x(k) ∈ Yk et que le r´esidu r(k)= b−Ax(k) soit orthogonal `a Lk. SiYk =Lk, la projection est diteorthogonale; sinon, elle est diteoblique.
Par exemple, la m´ethode d’Arnoldi est une m´ethode de projection ortho-gonale o`u Lk = Yk = Kk(A;r(0)), tandis que GMRES est une m´ethode de projection oblique avecYk =Kk(A;r(0)) etLk = AYk. Remarquons d’ailleurs que certaines m´ethodes classiques introduites dans les sections pr´ec´edentes ap-partiennent aussi `a cette cat´egorie. Par exemple, la m´ethode de Gauss-Seidel est une projection orthogonale o`u Kk(A;r(0)) = vect(ek), pourk= 1, . . . , n.
Les projections sont effectu´ees de mani`ere cyclique de 1 `a njusqu’`a
conver-gence.