• Aucun résultat trouvé

La m´ ethode de la puissance

Dans le document Méthodes Numériques (Page 182-192)

Approximation des valeurs propres et des vecteurs propres

5.3 La m´ ethode de la puissance

a un petit r´esidu dans l’approximation du vecteur propre associ´e `a la valeur propre de A qui est la plus proche de λ, `a condition que les valeurs propres de A soient bien s´epar´ees (c’est-`a-dire que δsoit assez grand).

Pour une matrice A non hermitienne quelconque, on ne sait donner une esti-mationa posterioripour la valeur propreλque si l’on dispose de la matrice des vecteurs propres de A. On a en effet le r´esultat suivant (pour la preuve, voir [IK66], p. 146) :

Propri´et´e 5.6 Soient A ∈ Cn×n une matrice diagonalisable et X une ma-trice de vecteurs propres ind´ependants X = [x1, . . . ,xn] telle que X−1AX = diag (λ1, . . . , λn). Si, pour unε >0,

r 2≤ε x 2, alors

min

λiσ(A)|λ−λi| ≤ε X−1 2 X 2.

Cette estimation est d’une utilit´e pratique limit´ee car elle requiert la connais-sance de tous les vecteurs propres de A. Des estimationsa posterioripouvant ˆ

etre effectivement impl´ement´ees dans un algorithme num´erique seront propo-s´ees aux Sections 5.3.1 et 5.3.2.

5.3 La m´ ethode de la puissance

Lam´ethode de la puissancefournit une tr`es bonne approximation des valeurs propres extr´emalesd’une matrice et des vecteurs propres associ´es. On notera λ1etλn les valeurs propres ayant respectivement le plus grand et le plus petit module.

La r´esolution d’un tel probl`eme pr´esente un grand int´erˆet dans beaucoup d’applications concr`etes (sismique, ´etude des vibrations des structures et des machines, analyse de r´eseaux ´electriques, m´ecanique quantique,. . .) dans les-quelles λn et le vecteur propre associ´e xn permettent la d´etermination de la fr´equence propreet dumode fondamentald’un syst`eme physique donn´e.

Il peut ˆetre aussi utile de disposer d’approximations de λ1 et λn pour analyser des m´ethodes num´eriques. Par exemple, si A est sym´etrique d´efinie

positive, λ1 et λn permettent de calculer la valeur optimale du param`etre d’acc´el´eration de la m´ethode de Richardson, d’estimer son facteur de r´eduction d’erreur (voir Chapitre 4), et d’effectuer l’analyse de stabilit´e des m´ethodes de discr´etisation des syst`emes d’´equations diff´erentielles ordinaires (voir Chapitre 10).

5.3.1 Approximation de la valeur propre de plus grand module Soit A ∈ Cn×n une matrice diagonalisable et soit X ∈ Cn×n la matrice de ses vecteurs propresxi, pouri= 1, . . . , n. Supposons les valeurs propres de A ordonn´ees de la fa¸con suivante

1|>|λ2| ≥ |λ3|. . .≥ |λn|, (5.16) et supposons queλ1ait une multiplicit´e alg´ebrique ´egale `a 1. Sous ces hypo-th`eses, λ1 est appel´ee valeur propredominantede la matrice A.

Etant donn´e un vecteur initial arbitraireq(0)∈Cnde norme euclidienne ´egale

`

a 1, consid´erons pourk= 1,2, . . .la m´ethode it´erative suivante, connue sous le nom dem´ethode de la puissance :

z(k)= Aq(k−1), q(k)=z(k)/ z(k) 2, ν(k)= (q(k))Aq(k).

(5.17)

Analysons les propri´et´es de convergence de la m´ethode (5.17). Par r´ecurrence surk, on peut v´erifier que

q(k)= Akq(0)

Akq(0) 2, k≥1. (5.18)

Cette relation rend explicite le rˆole jou´e par les puissances de A. Ayant suppos´e la matrice A diagonalisable, ses vecteurs propres xi forment une base deCn sur laquelle on peut d´ecomposer q(0) :

q(0)= n i=1

αixi, αi∈C, i= 1, . . . , n. (5.19) De plus, comme Axiixi, on a

Akq(0)1λk1

x1+ n i=2

αi α1

λi λ1

k

xi

, k= 1,2, . . . (5.20) Quand k augmente, comme|λi1| <1 pouri = 2, . . . , n, la composante le long dex1 du vecteur Akq(0) (et donc aussi celle deq(k)d’apr`es (5.18)) aug-mente, tandis que ses composantes suivant les autres directionsxj diminuent.

En utilisant (5.18) et (5.20), on obtient

Le vecteurq(k)s’aligne donc le long de la direction du vecteur propre x1 quand k→ ∞. On a de plus l’estimation d’erreur suivante `a l’´etapek: Th´eor`eme 5.6 Soit A ∈ Cn×n une matrice diagonalisable dont les valeurs propres satisfont (5.16). En supposant α1= 0, il existe une constante C >0 telle que D´emonstration.On peut, sans perte de g´en´eralit´e, supposer que les colonnes de la matrice X ont une norme euclidienne ´egale `a 1, c’est-`a-direxi2 = 1 pour

L’estimation (5.21) exprime la convergence de la suite ˜q(k) versx1. La suite des quotients de Rayleigh

Si la matrice A est r´eelle et sym´etrique, on peut prouver, toujours en supposantα1= 0, que (voir [GL89], p. 406-407)

1−ν(k)| ≤ |λ1−λn|tan20) ----λ2

λ1

----2k, (5.23)

o`u cos(θ0) = |xT1q(0)| = 0. L’in´egalit´e (5.23) montre que la convergence de la suiteν(k)versλ1 estquadratiquepar rapport `a |λ21| (voir Section 5.3.3 pour des r´esultats num´eriques).

Nous concluons cette section en proposant un crit`ere d’arrˆet pour les it´ era-tions (5.17). Introduisons pour cela le r´esidu `a l’´etapek

r(k)= Aq(k)−ν(k)q(k), k≥1, et, pour ε > 0, la matrice εE(k) = −r(k).

q(k)/

∈ Cn×n avec E(k) 2 = 1.

Puisque

εE(k)q(k)=−r(k), k≥1, (5.24) on obtient

A +εE(k)

q(k)(k)q(k). Ainsi, `a chaque ´etape de la m´ethode de la puissance ν(k) est unevaleur propre de la matrice perturb´eeA +εE(k). D’apr`es (5.24) et (1.20), ε = r(k) 2 pour k = 1,2, . . .. En utilisant cette identit´e dans (5.10) et en approchant la d´eriv´ee partielle dans (5.10) par le quotient|λ1−ν(k)|/ε, on obtient

1−ν(k)| r(k) 2

|cos(θλ)|, k≥1, (5.25) o`u θλ est l’angle entre les vecteurs propres `a droite et `a gauche, x1 et y1, associ´es `aλ1. Remarquer que si A est hermitienne, alors cos(θλ) = 1 et (5.25) conduit `a une estimation analogue `a (5.13).

En pratique, pour pouvoir utiliser les estimations (5.25), il est n´ecessaire de remplacer `a chaque ´etape |cos(θλ)|par le module du produit scalaire des deux approximationsq(k)et w(k)dex1 et y1calcul´ees par la m´ethode de la puissance. On obtient alors l’estimationa posteriorisuivante

1−ν(k)| r(k) 2

|(w(k))q(k)|, k≥1. (5.26) Des exemples d’applications de (5.26) seront donn´es `a la Section 5.3.3.

5.3.2 M´ethode de la puissance inverse

Dans cette section, nous recherchons une approximation de la valeur propre d’une matrice A ∈ Cn×n la plus proche d’un nombre µ ∈ C donn´e, avec µ ∈σ(A). On peut pour cela appliquer la m´ethode de la puissance (5.17) `a la matrice (Mµ)−1= (A−µI)−1, ce qui conduit `a la m´ethode desit´erations inversesou m´ethode de lapuissance inverse. Le nombreµest appel´eshiften anglais.

Les valeurs propres de M−1µ sont ξi = (λi−µ)−1; supposons qu’il existe un entier mtel que

m−µ|<|λi−µ|, ∀i= 1, . . . , n et i=m. (5.27)

Cela revient `a supposer que la valeur propreλmqui est la plus proche deµa une multiplicit´e ´egale `a 1. De plus, (5.27) montre queξmest la valeur propre de M−1µ de plus grand module ; en particulier, siµ= 0,λmest la valeur propre de A de plus petit module.

Etant donn´e un vecteur initial arbitraireq(0) ∈Cn de norme euclidienne

´

egale `a 1, on construit pourk= 1,2, . . .la suite d´efinie par (A−µI)z(k)=q(k−1),

q(k)=z(k)/ z(k) 2, σ(k)= (q(k))Aq(k).

(5.28)

Remarquer que les vecteurs propres de Mµ sont les mˆemes que ceux de A puisque Mµ= X (Λ−µIn) X−1, o`u Λ = diag(λ1, . . . , λn). Pour cette raison, on calcule directement le quotient de Rayleigh dans (5.28) `a partir de la matrice A (et non `a partir de M−1µ ). La diff´erence principale par rapport `a (5.17) est qu’on doit r´esoudre `a chaque it´erationk un syst`eme lin´eaire de matrice Mµ = A−µI. D’un point de vue num´erique, la factorisation LU de Mµ est calcul´ee une fois pour toute quandk= 1, de mani`ere `a n’avoir `a r´esoudre `a chaque it´eration que deux syst`emes triangulaires, pour un coˆut de l’ordre de n2 flops.

Bien qu’´etant plus coˆuteuse que la m´ethode de la puissance (5.17), la m´ethode de la puissance inverse a l’avantage de pouvoir converger vers n’im-porte quelle valeur propre de A (la plus proche deµ). Les it´erations inverses se prˆetent donc bien au raffinement de l’approximationµd’une valeur propre de A. Cette approximation peut ˆetre par exemple obtenue en appliquant les techniques de localisation introduites `a la Section 5.1. Les it´erations inverses peuvent aussi ˆetre utilis´ees efficacement pour calculer le vecteur propre associ´e

`

a une valeur propre (approch´ee) donn´ee.

En vue de l’analyse de convergence des it´erations (5.28), supposons A diago-nalisable et d´ecomposonsq(0)sous la forme (5.19). En proc´edant de la mˆeme mani`ere que pour la m´ethode de la puissance, on a

˜q(k)=xm+ n i=1,i=m

αi

αm ξi

ξm k

xi,

o`u lesxi sont les vecteurs propres de M−1µ (et donc aussi ceux de A), et les αi sont comme en (5.19). Par cons´equent, en rappelant la d´efinition desξi et en utilisant (5.27), on obtient

lim

k→∞(k)=xm, lim

k→∞σ(k)m.

La convergence sera d’autant plus rapide que µ est proche de λm. Sous les mˆemes hypoth`eses que pour prouver (5.26), on peut obtenir l’estimation a

posteriorisuivante de l’erreur d’approximation sur λm

m−σ(k)| r(k) 2

|(w(k))q(k)|, k≥1, (5.29) o`ur(k)= Aq(k)−σ(k)q(k)et o`uw(k)est lak-i`eme it´er´ee de la m´ethode de la puissance inverse pour approcher le vecteur propre `a gauche associ´e `a λm. 5.3.3 Impl´ementations

L’analyse de convergence de la Section 5.3.1 montre que l’efficacit´e de la m´ e-thode de la puissance d´epend fortement des valeurs propres dominantes. Plus pr´ecis´ement, la m´ethode est d’autant plus efficace que les valeurs dominantes sont bien s´epar´ees, i.e.|λ2|/|λ1| 1. Analysons `a pr´esent le comportement des it´erations (5.17) quand il y a deux valeurs propres dominantes de mˆeme module (c’est-`a-dire quand|λ2|=|λ1|). On doit distinguer trois cas :

1. λ21: les deux valeurs propres dominantes co¨ıncident. La m´ethode est encore convergente, puisque pourkassez grand, (5.20) implique

Akq(0)λk11x12x2)

qui est un vecteur propre de A. Pour k→ ∞, la suite ˜q(k) (convenable-ment red´efinie) converge vers un vecteur appartenant `a l’espace engendr´e parx1 etx2. La suite ν(k)converge encore vers λ1.

2. λ2 = −λ1 : les deux valeurs propres dominantes sont oppos´ees. Dans ce cas, la valeur propre de plus grand module peut ˆetre approch´ee en appliquant la m´ethode de la puissance `a la matrice A2. En effet, pour i = 1, . . . , n, λi(A2) = [λi(A)]2, donc λ21 = λ22 et on est ramen´e au cas pr´ec´edent avec la matrice A2.

3. λ21: les deux valeurs propres dominantes sont complexes conjugu´ees.

Cette fois, des oscillations non amorties se produisent dans la suite q(k) et la m´ethode de la puissance ne converge pas (voir [Wil65], Chapitre 9, Section 12).

Pour l’impl´ementation de (5.17), il est bon de noter que le fait de normaliser le vecteur q(k)`a 1 permet d’´eviter les probl`emes d’overflow(quand|λ1|>1) ou d’underflow(quand|λ1|<1) dans (5.20). Indiquons aussi que la condition α1 = 0 (qui est a prioriimpossible `a remplir quand on ne dispose d’aucune information sur le vecteur proprex1) n’est pas essentielle pour la convergence effective de l’algorithme. En effet, bien qu’on puisse prouver qu’en arithm´ e-tique exacte la suite (5.17) converge vers le couple (λ2,x2) si α1 = 0 (voir Exercice 8), les in´evitables erreurs d’arrondi font qu’en pratique le vecteur q(k) contient aussi une composante non nulle dans la direction de x1. Ceci permet `a la valeur propreλ1 d’ˆetre “visible” et `a la m´ethode de la puissance de converger rapidement vers elle.

Une impl´ementation MATLAB de la m´ethode de la puissance est donn´ee dans le Programme 24. Dans cet algorithme comme dans les suivants, le test de convergence est bas´e sur l’estimationa posteriori(5.26).

Ici, et dans le reste du chapitre, les valeurs en entr´eez0,toletnmaxsont respectivement le vecteur initial, la tol´erance pour le test d’arrˆet et le nombre maximum d’it´erations admissible. En sortie, les vecteurs lambda et relres contiennent les suites {ν(k)} et { r(k) 2/|cos(θλ)|} (voir (5.26)), x et iter sont respectivement les approximations du vecteur propre x1 et le nombre d’it´erations n´ecessaire `a la convergence de l’algorithme.

Programme 24 - powerm: M´ethode de la puissance function [lambda,x,iter,relres]=powerm(A,z0,tol,nmax)

%POWERM M´ethode de la puissance

% [LAMBDA,X,ITER,RELRES]=POWERM(A,Z0,TOL,NMAX) calcule la

% valeur propre LAMBDA de plus grand module de la matrice A et un vecteur

% propre correspondant X de norme un. TOL est la tol´erance de la m´ethode.

% NMAX est le nombre maximum d’it´erations. Z0 est la donn´ee initiale.

% ITER est l’it´eration `a laquelle la solution X a ´et´e calcul´ee.

q=z0/norm(z0); q2=q;

relres=tol+1; iter=0; z=A*q;

while relres(end)>=tol & iter<=nmax q=z/norm(z); z=A*q;

lambda=q’*z; x=q;

z2=q2’*A; q2=z2/norm(z2); q2=q2’;

y1=q2; costheta=abs(y1’*x);

if costheta>= 5e-2 iter=iter+1;

temp=norm(z-lambda*q)/costheta;

relres=[relres; temp];

else

fprintf(’Valeur propre multiple’); break;

end end return

Un code MATLAB pour la m´ethode de la puissance inverse est donn´e dans le Programme 25. Le param`etre d’entr´ee muest l’approximation initiale de la valeur propre. En sortie, les vecteurs sigmaet relres contiennent les suites {σ(k)} et { r(k) 2/(|(w(k))q(k)|)} (voir (5.29)). La factorisation LU (avec changement de pivot partiel) de la matrice Mµ est effectu´ee en utilisant la fonctionlude MATLAB, tandis que les syst`emes triangulaires sont r´esolus avec les Programmes 2 et 3 du Chapitre 3.

Programme 25 - invpower: M´ethode de la puissance inverse function [sigma,x,iter,relres]=invpower(A,z0,mu,tol,nmax)

%INVPOWER M´ethode de la puissance inverse

% [SIGMA,X,ITER,RELRES]=INVPOWER(A,Z0,MU,TOL,NMAX) calcule la

% valeur propre LAMBDA de plus petit module de la matrice A et un vecteur

% propre correspondant X de norme un. TOL est la tol´erance de la m´ethode.

% NMAX est le nombre maximum d’it´erations. X0 est la donn´ee initiale.

% MU est le shift. ITER est l’it´eration `a laquelle la solution X a

% ´et´e calcul´ee.

Exemple 5.3 On se donne les matrices

A = les vecteur propres correspondants sont les vecteurs colonnes de la matrice V.

Pour approcher le couple (λ1,x1), nous avons ex´ecut´e le Programme 24 avecz(0)= [1,1,1]T pour donn´ee initiale. Apr`es 71 it´erations de la m´ethode de la puissance, les erreurs absolues sont|λ1−ν(71)|= 7.91·10−11et x1−x(71)1 = 1.42·10−11.

Dans un second cas, nous avons prisz(0)=x2+x3(remarquer qu’avec ce choix on aα1= 0). Apr`es 215 it´erations les erreurs absolues sont|λ1−ν(215)|= 4.26·10−14 etx1−x(215)1 = 1.38·10−14.

La Figure 5.2 (`a gauche) montre la fiabilit´e de l’estimationa posteriori(5.26) : on a repr´esent´e les suites|λ1−ν(k)|(trait plein) et les estimations a posteriori(5.26) correspondantes (trait discontinu) en fonction du nombre d’it´erations (en abscisses).

Noter l’excellente ad´equation entre les deux courbes.

0 10 20 30 40 50 60 70 80

Fig. 5.2. Comparaison entre l’estimation d’erreura posterioriet l’erreur absolue effective pour la matrice (5.30) (`a gauche); courbes de convergence de la m´ethode de la puissance appliqu´ee `a la matrice (5.31) dans sa forme sym´etrique (S) et non sym´etrique (NS) (`a droite)

Consid´erons les matrices λ3 =−0.8868 (avec 4 chiffres significatifs).

Il est int´eressant de comparer le comportement de la m´ethode de la puissance quand on calculeλ1 pour la matrice sym´etrique A et pour la matrice M = T−1AT qui lui est semblable, o`u T est la matrice inversible (et non orthogonale) d´efinie en (5.31).

En ex´ecutant le Programme 24 avec z(0) = [1,1,1]T, la m´ethode de la puissance converge vers la valeur propre λ1 en 18 it´erations pour la matrice A et en 30 it´ e-rations pour la matrice M. La suite des erreurs absolues |λ1−ν(k)|est trac´ee sur la Figure 5.2 (`a droite) o`u (S) et (NS) se rapportent respectivement aux calculs effectu´es sur A et sur M. Remarquer la r´eduction rapide de l’erreur dans le cas sy-m´etrique, conform´ement `a la propri´et´e de convergence quadratique de la m´ethode de la puissance (voir Section 5.3.1).

Nous utilisons enfin la m´ethode de la puissance inverse (5.28) pour calculer λ3 = 0.512 qui est la valeur propre de plus petit module de la matrice A d´efinie en (5.30).

En ex´ecutant le Programme 25 avecq(0)= [1,1,1]T/√

3, la m´ethode converge en 9 it´erations, avec comme erreurs absolues|λ3−σ(9)|= 1.194·10−12etx3−x(9)3 =

4.59·10−13. •

5.4 La m´ ethode QR

Nous pr´esentons dans cette section des m´ethodes it´eratives pour approcher simultan´ement toutesles valeurs propres d’une matrice A donn´ee. L’id´ee de base est de transformer A en une matrice semblable pour laquelle le calcul des valeurs propres est plus simple.

Le probl`eme serait r´esolu si on savait d´eterminer de mani`ere directe,

c’est-`

a-dire en un nombre fini d’it´erations, la matrice unitaire U de la d´ecomposition de Schur 1.4, i.e. la matrice U telle que T = UAU, o`u T est triangulaire sup´erieure avec tii = λi(A) pour i = 1, . . . , n. Malheureusement, d’apr`es le th´eor`eme d’Abel, d`es que n ≥ 5 la matrice U ne peut pas ˆetre calcul´ee de fa¸con directe (voir Exercice 6). Notre probl`eme ne peut donc ˆetre r´esolu que de mani`ere it´erative.

L’algorithme de r´ef´erence sur ce th`eme est lam´ethode QR que nous n’exami-nerons que dans le cas des matrices r´eelles (pour des remarques sur l’extension des algorithmes au cas complexe, voir [GL89], Section 5.2.10 et [Dem97], Sec-tion 4.2.1).

Soit A∈Rn×n; on se donne une matrice orthogonale Q(0) ∈Rn×n et on pose T(0) = (Q(0))TAQ(0). Les it´erations de la m´ethode QR s’´ecrivent pour k= 1,2, . . ., jusqu’`a convergence :

d´eterminer Q(k),R(k)telles que

Q(k)R(k)= T(k−1) (factorisation QR);

puis poser T(k)= R(k)Q(k).

(5.32)

A chaque ´etape k ≥ 1, la premi`ere phase consiste en la factorisation de la matrice T(k−1) sous la forme du produit d’une matrice orthogonale Q(k) par une matrice triangulaire sup´erieure R(k)(voir Section 5.6.3). La seconde phase est un simple produit matriciel. Remarquer que

T(k) = R(k)Q(k)= (Q(k))T(Q(k)R(k))Q(k)= (Q(k))TT(k−1)Q(k)

= (Q(0)Q(1)· · ·Q(k))TA(Q(0)Q(1)· · ·Q(k)), k≥0,

(5.33)

autrement dit, toute matrice T(k)estorthogonalement semblable`a A. Ceci est particuli`erement appr´eciable pour lastabilit´ede la m´ethode. On a en effet vu

`

a la Section 5.2 que dans ce cas le conditionnement du probl`eme aux valeurs propres pour T(k)est au moins aussi bon que celui pour A (voir aussi [GL89], p. 360).

On examine `a la Section 5.5 une impl´ementation basique de la m´ethode QR (5.32) o`u on prend Q(0) = In. Un version plus efficace en termes de calcul, qui d´emarre avec T(0) sous la forme d’une matrice de Hessenberg sup´erieure, est d´ecrite en d´etail `a la Section 5.6.

Si A poss`ede des valeurs propres r´eelles, distinctes en valeur absolue, nous verrons `a la Section 5.5 que la limite de T(k) est une matrice triangulaire sup´erieure (avec bien sˆur les valeurs propres de A sur la diagonale). En re-vanche, si A a des valeurs propres complexes, la limite T de T(k)ne peut pas

ˆ

etre triangulaire sup´erieure. Si c’´etait le cas, les valeurs propres de T seraient n´ecessairement r´eelles et T semblable `a A, ce qui est contradictoire.

Il peut aussi ne pas y avoir convergence vers une matrice triangulaire dans des situations plus g´en´erales comme le montre l’Exemple 5.9.

Pour cette raison, il est n´ecessaire d’introduire des variantes de la m´ethode QR (5.32) bas´ees sur des techniques de translation et d´eflation (voir Section 5.7 et, pour une discussion plus d´etaill´ee sur ce sujet, voir [GL89], Chapitre 7, [Dat95], Chapitre 8 et [Dem97], Chapitre 4).

Ces techniques permettent `a T(k) de converger vers une matrice quasi-triangulairesup´erieure, connue sous le nom ded´ecomposition de Schur r´eelle de A, pour laquelle on a le r´esultat suivant (nous renvoyons `a [GL89], p.

341-342 pour la preuve).

Propri´et´e 5.7 Etant donn´e une matrice A ∈ Rn×n, il existe une matrice orthogonaleQ∈Rn×n telle que

QTAQ =

⎢⎢

⎢⎢

⎢⎢

R11 R12 . . . R1m 0 R22 . . . R2m ... ... . . . ...

0 0 . . . Rmm

⎥⎥

⎥⎥

⎥⎥

, (5.34)

o`u chaque bloc diagonal Rii est soit un nombre r´eel soit une matrice d’ordre 2 ayant des valeurs propres complexes conjugu´ees. De plus

Q = lim

k→∞

0

Q(0)Q(1)· · ·Q(k) 1

(5.35) o`uQ(k) est la matrice orthogonale construite `a lak-i`eme ´etape de la m´ethode QR (5.32).

Dans le document Méthodes Numériques (Page 182-192)