• Aucun résultat trouvé

M´ ethodes de Krylov

Dans le document Méthodes Numériques (Page 159-168)

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.

Dans le document Méthodes Numériques (Page 159-168)