5.6 La m´ ethode QR pour les matrices de Hessenberg
191
Programme 29 - qrgivens : Factorisation QR avec rotations de Givens
function [Q,R,c,s]= qrgivens(H)
%QRGIVENS Factorisation QR avec rotations de Givens.
[m,n]=size(H);
for k=1:n-1
[c(k),s(k)]=givcos(H(k,k),H(k+1,k));
H=garow(H,c(k),s(k),k,k+1,k,n);
end
R=H; Q=prodgiv(c,s,n);
return
function Q=prodgiv(c,s,n)
n1=n-1; n2=n-2;
Q=eye(n); Q(n1,n1)=c(n1); Q(n,n)=c(n1);
Q(n1,n)=s(n1); Q(n,n1)=-s(n1);
for k=n2:-1:1,
k1=k+1; Q(k,k)=c(k); Q(k1,k)=-s(k);
q=Q(k1,k1:n); Q(k,k1:n)=s(k)*q;
Q(k1,k1:n)=c(k)*q;
end
return
Exemple 5.8 Consid´ erons la matrice A (d´ ej` a sous forme de Hessenberg)
A =
⎡
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎣
3
17
−37
18
−40
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎦
.
Pour calculer ses valeurs propres ( −4, ±i, 2 et 5), on applique la m´ ethode QR et
on obtient la matrice T
(40) apr` es 40 it´ erations du Programme 28. Remarquer que
l’algorithme converge vers la d´ ecomposition de Schur r´ eelle de A (5.34), avec trois
blocs Rii d’ordre 1 (i = 1, 2, 3) et le bloc R44 = T
(40) (4 : 5, 4 : 5) ayant pour valeurs
propres ±i
T
(40) =
⎡
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎣
4.9997
18.9739
−34.2570
32.8760
−28.4604
0
−3.9997
6.7693
−6.4968
5.6216
0
0
2
−1.4557
1.1562
0
0
0
0 .3129
−0.8709
0
0
0
1 .2607
−0.3129
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎦
.
•
Précédent

- 202/540

Suivant