Documente Academic
Documente Profesional
Documente Cultură
CN Lab5
CN Lab5
Definitia 5.1 Fie A Cnn . Un vector x Cnn este un vector propriu al matricei
A, asociat valorii proprii C, daca sunt satisfacute urmatoarele doua proprietati
a) x 6= 0
b) Ax = x.
(5.1)
Cateva dintre cele mai importante proprietati ale valorilor proprii ale unei matrice patrate sunt prezentate mai jos.
Teorema 5.2 Fie A IRnn . Num
arul C este o valoare proprie a lui A dac
a
si numai dac
a matricea I A este singular
a. Mai mult, matricea A sunt exact n
valori proprii, incluz
and multiplicit
atile, care sunt zerourile polinomului caracteristic
p() = det(In A).
(5.2)
Dac
a A IRnn , atunci valorile proprii complexe apar n perechi conjugate.
Notand cu
(A) = {1 , 2 , ..., n } = { C | det(I A) = 0}
(5.3)
(5.4)
(5.6)
5.2
Forma Schur (reala) joaca un rol central n calculul eficient al valorilor proprii ale
unei matrice.
Definitia 5.5 O matrice S IRnn se numeste
structura
S11 S12
0
S22
S=
0
0 ...
form
a Schur real
a (FSR) daca are
S1q
S2q
Sqq
(5.7)
unde Sii IR11 sau Sii IR22 si toate blocurile diagonale 2 2 au valori proprii
complexe.
O consecinta imediata a structurii Schur este date n propozitia urmatoare.
Propositia 5.6 Fie S IRnn n FSR. Atunci:
(S) = qi=1 (Sii ).
(5.8)
5.2. FORMA SCHUR (REALA)
xT Ax
.
xT x
Mai mult, printr-o procedura de deflatie, dupa determinarea unui vector propriu
si a valorii proprii asociate, problema si reduce dimensiunea. De aceea, exista
metode de calcul iterativ a unui vector propriu n absenta cunoasterii valorii proprii
asociate, metode care stau la baza algoritmului QR, de calcul iterativ al formei
Schur (reale). Prezentam direct algoritmii corespunzatori celor mai folosite astfel de
metode: metoda puterii si metoda puterii inverse.
5.2.1
Metoda puterii
Presupunem ca matricea A IRnn are o valoare proprie dominanta, i.e. mai mare
n modul decat toate celelalte, si fie aceasta 1 . Metoda puterii se bazeaza faptul ca
sirul vectorial
y (k) = Ak y0 , k = 1, 2, ,
(5.10)
unde y0 este un vector aleator ales, tinde, ca directie, catre directia vectorului propriu
asociat valorii proprii dominante. Introducand si normarea vectorilor din acest sir,
acesta poate fi definit recurent prin
y (k) = k Ay (k1) , k = 1, 2,
unde k =
1
kAy (k1) k
(5.11)
5.2.2
Metoda puterii inverse pentru matricea A este, n fapt, metoda puterii pentru matricea (I A)1 , unde este un scalar adecvat ales la fiecare pas, numit deplasare.
(y (k1) )T Ay (k1)
= (y (k1) )T Ay (k1) .
ky (k1) k2
(5.13)
5.3. ALGORITMUL QR
3.
4.
5.
6.
5.3
z z/kzk
e = |1 |z H y| |
yz
i i + 1.
Algoritmul QR
5.3.1
(5.14)
1. Pentru k = 1 : n 2
1. Se calculeaza un reflector elementar Uk+1
astfel ncat (Uk+1 A)(k + 2 : n, k) = 0.
2. A Uk+1 A
3. A AUk+1 .
(5.15)
Preciz
am c
a matricea H IRnn este n form
a superior Hessenberg dac
a hij = 0, i > j + 1.
unde
Q = U2 U3 Un1 .
(5.16)
"
Ik 0
1
0 U
1 A(k + 1 : n, :),
A(k + 1 : n, :) U
A AUk+1
1 .
A(:, k + 1 : n) A(:, k + 1 : n)U
Prin urmare, pentru obtinerea formei superior Hessenberg este suficient sa stim sa
operam numai cu reflectori de indice 1. In acest scop introducem urmatoarele
proceduri:
H (Procedura de calcul a elementelor definitorii u si ale unui reflector de
indice 1 U1 astfel ncat (U1 x)(2 : n) = 0 si de calcul x U1 x, unde x IRn
este un vector dat.) q
P
n
2
1. = sign(x1 )
i=1 xi
2. u1 = x1 +
3. Pentru i = 2 : n
1. ui = xi
2. xi = 0
4. = u1
5. x1 =
5.3. ALGORITMUL QR
5.3.2
Faza iterativ
a a algoritmului QR
Presupunem ca matricea H IRnn are o structura superior Hessenberg. Algoritmul QR cu deplasare explicita construieste un sir de matrice
H = H1 , H2 , , Hk , Hk+1 ,
(5.17)
H k k In = Q k R k
, k = 1, 2, ,
Hk+1 = Rk Qk + k In
H1 = H,
(5.18)
H ] = HQ(A)
[ Q,
iter = 0
k=n
C^
at timp k > 1
1. = H(k, k)
2. Pentru i = 1 : k
1. H(i, i) = H(i, i)
3. [ Q, R ] = qr(H(1 : k, 1 : k))
4. H(1 : k, 1 : k) = R Q
5. Pentru i = 1 : k
1. H(i, i) = H(i, i) +
6. Dac
ak<n
1. H(1 : k, k + 1 : n) = QT H(1 : k, k + 1 : n)
1 : k) = Q(:,
1 : k)Q
7. Q(:,
8. iter = iter + 1
9. Tip
are
ste iter s
i H
10. Dac
a |H(k, k 1)| < tol
1. H(k, k 1) = 0
2. k = k 1
Observatii.
1. Daca nu aveti timp sa scrieti o procedura eficienta de factorizare QR a unei
matrice superior Hessenberg puteti folosi functia qr din MATLAB pentru factorizarea QR a matricelor generale.
2. Daca nu v-a reusit obtinerea unui program de reducere la forma superior
Hessenberg, n locul functiei dv. HQ puteti utiliza functia hess din MATLAB.
3. La instructiunea 4.10, pentru neglijarea elementelor subdiagonale se prefera
satisfacerea unei tolerante relative, e.g. a unei conditii de forma
|H(k, k 1)| < tol (|H(k 1, k 1)| + |H(k, k)|) .
5.4
Sarcini de lucru
5.4.1
A. In laborator
10
5.4.2
B. Acas
a
1 Se va edita si testa un program MATLAB eficient de triangularizare ortogonala cu rotatii a unei matrice superior Hessenberg si un program MATLAB
pentru implementarea algoritmului QR cu deplasare explicita cu pasi simpli,
de reducere a unei matrice cu spectru real n forma superior Hessenberg la
forma Schur (reala) fara a calcula explicit matricea Q din factorizarea QR a
matricei H I.
2 Se va edita si testa un program MATLAB pentru implementarea algoritmului
QR cu deplasare implicit
a cu pasi simpli, de reducere a unei matrice cu spectru
real n forma superior Hessenberg la forma Schur (reala). Programul va afisa
matricea curenta din sirul QR pentru a se putea urmari anularea asimptotica
a elementelor subdiagonale.