• Aucun résultat trouvé

La m´ ethode QR pour les matrices de Hessenberg

Dans le document Méthodes Numériques (Page 194-200)

Approximation des valeurs propres et des vecteurs propres

5.6 La m´ ethode QR pour les matrices de Hessenberg

L’impl´ementation na¨ıve de la m´ethode QR vue `a la section pr´ec´edente repr´ e-sente un calcul dont le coˆut (pour une matrice pleine) est de l’ordre de n3 flops par it´eration. Dans cette section, nous proposons une variante, appel´ee m´ethode QR-Hessenberg, qui permet une grande ´economie de calcul. L’id´ee consiste `a d´emarrer les it´erations avec une matrice T(0) de type Hessenberg sup´erieure, c’est-`a-dire telle que t(0)ij = 0 pour i > j+ 1. On peut en effet montrer qu’avec ce choix le calcul de T(k)dans (5.32) ne requiert quen2flops par it´eration.

Afin d’assurer l’efficacit´e et la stabilit´e de l’algorithme, on utilise des ma-trices de transformationappropri´ees. Plus pr´ecis´ement, la r´eduction pr´ elimi-naire de la matrice A sous la forme de Hessenberg sup´erieure est r´ealis´ee avec des matrices de Householder, tandis que la factorisation QR de T(k)est effec-tu´ee avec des matrices de Givens, plutˆot que par le proc´ed´e de Gram-Schmidt modifi´e vu `a la Section 3.4.3.

Nous d´ecrivons bri`evement les matrices de Householder et de Givens dans la prochaine section, et nous renvoyons `a la Section 5.6.5 pour les impl´ emen-tations. L’algorithme ainsi que des exemples de calcul de la forme de Schur

r´eelle de A en partant de la forme de Hessenberg sup´erieure sont pr´esent´es `a la Section 5.6.4.

5.6.1 Matrices de transformation de Householder et Givens Pour tout vecteurv∈Rn, introduisons la matrice sym´etrique et orthogonale

P = I−2vvT/ v 22. (5.38)

Etant donn´e un vecteur x∈Rn, le vecteury= Pxest le sym´etrique dexpar rapport `a l’hyperplan π= vect{v} constitu´e des vecteurs orthogonaux `a v (voir Figure 5.3, `a gauche). La matrice P est appel´eematrice de Householder et le vecteur vest unvecteur de Householder.

v

Fig. 5.3. Sym´etrie par rapport `a l’hyperplan orthogonal `a v(`a gauche) ; rotation d’angleθdans le plan (xi, xk) (`a droite)

Les matrices de Householder peuvent ˆetre utilis´ees pour annuler un bloc de composantes d’un vecteurx∈Rn donn´e. Si, par exemple, on souhaite annuler toutes les composantes de x, sauf la m-i`eme, le vecteur de Householder doit ˆ

Si, pourk ≥1, on veut laisser les kpremi`eres composantes de xinchang´ees et annuler toutes les composantes `a partir de la k+ 2-i`eme, la matrice de Householder P = P(k) prend la forme suivante

P(k)= Comme d’habitude, Ik est la matrice identit´e d’ordrek, et Rnkest la matrice de Householder ´el´ementaire d’ordre n−kassoci´ee `a la sym´etrie par rapport

`

a l’hyperplan orthogonal au vecteur w(k)∈Rnk. D’apr`es (5.39), le vecteur de Householder est donn´e par

w(k)=x(nk)± x(nk) 2e(1nk), (5.42) o`ux(nk)∈Rnk est le vecteur constitu´e par lesn−kderni`eres composantes dexete(1nk)est le premier vecteur de la base canonique deRnk. Nous dis-cuterons `a la Section 5.6.5 d’un crit`ere pour choisir le signe dans la d´efinition dew(k).

Nous utiliserons les matrices de Householder `a la Section 5.6.2 pour transfor-mer une matrice A en une matrice de Hessenberg sup´erieure H(0). Ceci consti-tue la premi`ere ´etape d’une impl´ementation efficace de la m´ethode QR (5.32) avec T(0)= H(0). 0 0.4082 0.7710 −0.3053 −0.3816 0 0.5443 −0.3053 0.5929 −0.5089 0 0.6804 −0.3816 −0.5089 0.3639

⎤ Les matrices ´el´ementaires de Givens sont des matrices orthogonales de ro-tation qui permettent d’annuler certains coefficients d’un vecteur ou d’une

matrice. Pour un couple donn´e d’indices i et k, et un angle θ, ces matrices effec-tuer une rotation de xd’angleθ (dans le sens trigonom´etrique) dans le plan des coordonn´ees (xi, xk) (voir Figure 5.3). En posantc= cosθ, s= sinθ, on

Les matrices de Givens seront utilis´ees `a la Section 5.6.3 pour effectuer l’´etape de factorisation QR de l’algorithme 5.32 et `a la Section 5.8.1 pour la m´ethode de Jacobi appliqu´ee aux matrices sym´etriques.

Remarque 5.3 (D´eflation de Householder) On peut utiliser les trans-formations ´el´ementaires de Householder pour calculer les premi`eres (plus grandes ou plus petites) valeurs propres d’une matrice A∈Rn×n. Supposons les valeurs propres ordonn´ees comme en (5.16) et supposons que les paires valeurs propres/vecteurs propres (λ1,x1) aient ´et´e calcul´ees en utilisant la m´ethode de la puissance. La matrice A peut alors ˆetre transform´ee en (voir

[Dat95], Th´eor`eme 8.5.4, p. 418) : celles de A, except´ee λ1. La matrice H peut ˆetre calcul´ee en utilisant (5.38) avecv=x1± x1 2e1.

La m´ethode ded´eflationconsiste `a calculer la seconde valeur propre domi-nante (ou “sous-domidomi-nante”) de A en appliquant la m´ethode de la puissance `a A2, `a condition queλ2etλ3aient des modules distincts. Une fois calcul´eeλ2, le vecteur propre correspondantx2peut ˆetre calcul´e en appliquant la m´ethode de la puissance inverse `a la matrice A avecµ =λ2 (voir Section 5.3.2). On proc`ede de mˆeme pour les autres valeurs propres et vecteurs propres de A.

5.6.2 R´eduction d’une matrice sous la forme de Hessenberg Une matrice A∈Rn×n peut ˆetre transform´ee en une matrice semblable de la forme de Hessenberg sup´erieure avec un coˆut de l’ordre de n3 flops. L’algo-rithme n´ecessiten−2 ´etapes et la transformation Q peut ˆetre calcul´ee comme produit de matrices de Householder P(1)· · ·P(n−2). C’est pourquoi ce proc´ed´e de r´eduction est connu sous le nom dem´ethode de Householder.

Lak-i`eme ´etape consiste `a transformer A `a l’aide d’une matrice de House-holder P(k)afin d’annuler les ´el´ements situ´es sur les lignesk+ 2,. . . , nde la

o`u les•d´esignent les coefficients de la matricea priorinon nuls. Etant donn´e A(0) = A, la m´ethode g´en`ere une suite de matrices A(k) qui sont v´erifier que l’op´eration PT

(k)A(k−1)laisse inchang´ees leskpremi`eres lignes de A(k−1), tandis que PT

(k)A(k−1)P(k)= A(k)fait de mˆeme pour leskpremi`eres

colonnes. Apr`es n−2 ´etapes de la r´eduction de Householder, on obtient une matrice H = A(n−2) sous la forme de Hessenberg sup´erieure.

Remarque 5.4 (le cas sym´etrique) Si A est sym´etrique, la transforma-tion (5.45) conserve cette propri´et´e. En effet

(A(k))T = (QT(k)AQ(k))T = A(k), ∀k≥1,

H doit donc ˆetre tridiagonale. Ses valeurs propres peuvent ˆetre calcul´ees de mani`ere efficace en utilisant lam´ethode des suites de Sturmqui a un coˆut de l’ordre de nflops. Nous verrons ceci `a la Section 5.8.2.

Une impl´ementation MATLAB de la m´ethode de Householder est propos´ee dans le Programme 27. On utilise le Programme 30 pour calculer le vecteur de Householder. En sortie, la matrice H est de Hessenberg, Q est orthogonale et H = QTAQ.

Programme 27 - houshess: M´ethode de Householder-Hessenberg function [H,Q]=houshess(A)

%HOUSHESS M´ethode de Householder-Hessenberg.

% [H,Q]=HOUSHESS(A) calcule les matrices H et Q telles que H=Q’AQ.

[n,m]=size(A);

if n˜=m; error(’Seulement pour les matrices carr´ees’); end Q=eye(n); H=A;

for k=1:n-2

[v,beta]=vhouse(H(k+1:n,k)); I=eye(k); N=zeros(k,n-k);

m=length(v);

R=eye(m)-beta*v*v’;

H(k+1:n,k:n)=R*H(k+1:n,k:n);

H(1:n,k+1:n)=H(1:n,k+1:n)*R; P=[I, N; N’, R]; Q=Q*P;

end return

L’algorithme du Programme 27 a un coˆut de 10n3/3 flops et il est bien conditionn´e par rapport aux erreurs d’arrondi. On a en effet l’estimation (voir [Wil65], p. 351)

H = Q T(A + E) Q, E F ≤cn2u A F, (5.46) o`u H est la matrice de Hessenberg calcul´ ee par le Programme 27, Q est une matrice orthogonale, cest une constante, uest l’unit´e d’arrondi et · F est la norme de Frobenius (voir (1.19)).

Exemple 5.7 Consid´erons la r´eduction de la matrice de Hilbert H4∈R4×4sous la forme de Hessenberg sup´erieure. Comme H4est sym´etrique, sa forme de Hessenberg

doit ˆetre triadiagonale sym´etrique. Le Programme 27 donne le r´esultat suivant

La pr´ecision de la transformation (5.45) peut ˆetre mesur´ee en calculant la norme · F de la diff´erence entre H et QTH4Q. On trouveH−QTH4QF = 3.38·10−17, ce qui confirme l’in´egalit´e de stabilit´e (5.46). •

5.6.3 Factorisation QR d’une matrice de Hessenberg

Nous expliquons dans cette section comment impl´ementer efficacement une

´

etape de la m´ethode QR quand on part d’une matrice T(0) = H(0) sous la forme de Hessenberg sup´erieure.

Pour toutk≥1, la premi`ere phase consiste `a calculer la factorisation QR de H(k−1)au moyen den−1 rotations de Givens j-i`eme matrice de rotation de Givens (5.43) dans laquelleθj est choisi d’apr`es (5.44) de mani`ere `a ce que les coefficients d’indices (j + 1, j) de la

L’´etape suivante consiste `a compl´eter la transformation orthogonale H(k)= R(k)Q(k)= R(k)

est de la forme de Hessenberg sup´erieure. En effet, en prenant par exemple n = 3, on obtient (d’apr`es la Section 5.6.1) Le coˆut de (5.48) est ´egalement de l’ordre de 3n2 op´erations, le coˆut total est donc de l’ordre de 6n2 flops. En conclusion, effectuer la factorisation QR en utilisant les rotations de Givens sur une matrice de d´epart de Hessenberg sup´erieure entraine une r´eduction du coˆut de calcul d’un ordre de grandeur par rapport `a la factorisation utilisant le proc´ed´e de Gram-Schmidt modifi´e de la Section 5.5.

Dans le document Méthodes Numériques (Page 194-200)