Calculul valorilor si vectorilor proprii
Calculul valorilor si vectorilor proprii
Calculul valorilor si vectorilor proprii
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capitolul 4<br />
<strong>Calculul</strong> <strong>valorilor</strong> şi<br />
<strong>vectorilor</strong> <strong>proprii</strong><br />
Valorile şi vectorii <strong>proprii</strong> joacă un rol fundamental în descriereamatematică a unor<br />
categoriifoartelargide procese tehnice, economice, biologiceetc. Astfel, proprietăţi<br />
esenţiale (cum este, e.g. stabilitatea)ale modelelormatematice cunoscutesub denumirea<br />
de <strong>si</strong>steme dinamice se exprimă în raport cu valorile <strong>proprii</strong> ale unor matrice.<br />
În acestcontext, calculul câtmaieficient şimai exactal<strong>valorilor</strong>şi <strong>vectorilor</strong><strong>proprii</strong><br />
se impune cu nece<strong>si</strong>tate.<br />
Cadrul cel mai natural de abordare a problemei este cel al matricelor complexe,<br />
în care caz valorile şi vectorii <strong>proprii</strong> sunt, în general, numere complexe, respectiv<br />
vectori complecşi. Totuşi, majoritatea problemelor tehnice conduc la nece<strong>si</strong>tatea<br />
calculului <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> pentru matrice reale. Deşi valorile <strong>proprii</strong><br />
şi vectorii <strong>proprii</strong> asociaţi ai unei matrice reale pot fi numere complexe, respectiv<br />
vectori complecşi, calculul cu numere complexe este sen<strong>si</strong>bil mai puţin eficient şi,<br />
din acest motiv, în cazul datelor iniţiale reale, dezvoltările procedurale vor urmări<br />
utilizarea, practic exclu<strong>si</strong>vă, a calculului cu numere reale.<br />
4.1 Formularea problemei<br />
4.1.1 Valori şi vectori <strong>proprii</strong><br />
Valorileşi vectorii<strong>proprii</strong>pentru o matricepătratăA ∈ IC n×n sunt noţiuni introduse<br />
în capitolul 1 în contextul prezentării unor algoritmi de calcul elementari (secţiunea<br />
1.10). Problemadeterminării <strong>valorilor</strong>şi <strong>vectorilor</strong><strong>proprii</strong>poate fi apreciatăca fiind<br />
<strong>si</strong>mplă numai pentru matrice cu structură triunghiulară, caz care a şi fost tratat în<br />
capitolul menţionat (v. algoritmul 1.23).<br />
Cu riscul de a ne repeta, reluăm câteva definiţii şi rezultate fundamentale introduse<br />
în §1.10 cu dezvoltările corespunzătoare necesare abordării problemei în cazul<br />
general.
210 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Definiţia 4.1 Fie o matrice A ∈ IC n×n . Un număr λ ∈ IC se numeşte valoare<br />
proprie a matricei A, dacă există un vector nenul x ∈ IC n astfel încât<br />
Ax = λx. (4.1)<br />
Un vector x ≠ 0 care satisface (4.1) se numeşte vector propriu al matricei A asociat<br />
valorii <strong>proprii</strong> λ.<br />
Valorile <strong>proprii</strong> ale matricei A ∈ IC n×n , conform teoremei 1.13, sunt zerourile<br />
polinomului caracteristic<br />
p(λ) = det(λI n −A), (4.2)<br />
care este un polinom de gradul n cu coeficienţi complecşi 1 . În consecinţă, orice<br />
matrice A ∈ IC n×n are exact n valori <strong>proprii</strong> complexe, nu neapărat distincte.<br />
Dacă matricea este reală, atunci polinomul caracteristic are coeficienţii reali şi<br />
valorile <strong>proprii</strong>complexe apar înperechi complex-conjugate 2 . Dacă x = u+iv ∈ IC n<br />
cu u, v ∈ IR n , este un vector propriu asociat valorii <strong>proprii</strong> λ = α+iβ, α, β ∈ IR,<br />
β ≠ 0, a unei matrice reale, atunci ¯x = u−iv este un vector propriu asociat valorii<br />
<strong>proprii</strong> ¯λ = α−iβ (verificaţi!).<br />
Ordinuldemultiplicitate n i alrădăciniiλ i apolinomuluicaracteristicsenumeşte<br />
multiplicitate algebrică a valorii <strong>proprii</strong> respective. Dacă n i = 1 valoarea proprie λ i<br />
se numeşte <strong>si</strong>mplă.<br />
Mulţimea<br />
λ(A) = {λ 1 ,λ 2 ,...,λ n } = {λ ∈ IC | det(λI −A) = 0} (4.3)<br />
a <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice A ∈ IC n×n se numeşte spectrul matricei A, iar<br />
numărul real nenegativ<br />
ρ(A) = max(|λ 1 |,|λ 2 |,...,|λ n |) (4.4)<br />
se numeşte raza spectrală a matricei A. Deci, în planul complex IC, valorile <strong>proprii</strong><br />
ale unei matrice A sunt <strong>si</strong>tuate în discul închis de rază ρ(A) cu centrul în origine.<br />
Se poate arăta imediat că valorile <strong>proprii</strong> ale unei matrice A ∈ IC n×n satisfac<br />
relaţiile<br />
n∑<br />
λ i =<br />
i=1<br />
n∑<br />
i=1<br />
a ii<br />
def<br />
= tr(A),<br />
n∏<br />
λ i = det(A), (4.5)<br />
unde tr(A) este, prin definiţie, urma matricei A. În particular, o matrice este<br />
<strong>si</strong>ngulară dacă şi numai dacă are (cel puţin) o valoare proprie nulă.<br />
Vectorii <strong>proprii</strong> introduşi prin definiţia 4.1 sunt denumiţi uneori vectori <strong>proprii</strong><br />
la dreapta ai matricei A şi satisfac <strong>si</strong>stemul liniar omogen <strong>si</strong>ngular<br />
i=1<br />
(λI n −A)x = 0. (4.6)<br />
Deci, fiecăreivalori<strong>proprii</strong>îicorespundecelpuţinunvectorpropriu. Vectorii<strong>proprii</strong><br />
asociaţi <strong>valorilor</strong> <strong>proprii</strong> distincte sunt liniar independenţi.<br />
1 Ecuaţia p(λ) = 0 se numeşte ecuaţie caracteristică a matricei A.<br />
2 O mulţime de numere (reale şi complexe) în care numerele complexe apar în perechi complexconjugate<br />
va fi numită în continuare mulţime <strong>si</strong>metrică.
4.1. FORMULAREA PROBLEMEI 211<br />
În acest context, vectorii <strong>proprii</strong> la stânga sunt vectorii nenuli y ∈ IC n ce satisfac<br />
condiţia<br />
y H A = λy H , (4.7)<br />
unde H reprezintă operatorul cumulat de transpunere şi conjugare. Aplicând operatorul<br />
H relaţiei (4.7) obţinem<br />
A H y = ¯λy, (4.8)<br />
i.e. vectorii <strong>proprii</strong> la stânga ai matricei A asociaţi valorii <strong>proprii</strong> λ sunt vectori<br />
<strong>proprii</strong> (la dreapta) ai matricei A H asociaţi valorii <strong>proprii</strong> ¯λ ∈ λ(A H ). De aici<br />
rezultă<br />
λ(A H ) = ¯λ(A), (4.9)<br />
adică valorile <strong>proprii</strong> ale matricei A H sunt conjugatele <strong>valorilor</strong> <strong>proprii</strong> ale matricei<br />
A.<br />
Întrucât det(λI n − A) = det(λI n − A T ) matricele A şi A T au acelaşi polinom<br />
caracteristic şi, deci, aceleaşi valori <strong>proprii</strong> dar vectorii <strong>proprii</strong>, în general, diferă.<br />
Cum un vector propriu y al matricei A T asociat valorii <strong>proprii</strong> λ satisface A T y = λy<br />
sau y T A = λy T vectorii <strong>proprii</strong> reali ai matricei A T sunt vectori <strong>proprii</strong> la stânga<br />
ai matricei A.<br />
Dacă x i este un vector propriu al matricei A asociat valorii <strong>proprii</strong> λ i , vectorul<br />
y i = αx i este, de asemenea, un vector propriu al matricei A asociat aceleiaşi valori<br />
<strong>proprii</strong> λ i , oricare ar fi α ∈ IC, α ≠ 0. Mai mult, este clar că mulţimea <strong>vectorilor</strong><br />
<strong>proprii</strong> asociaţi unei valori <strong>proprii</strong> λ i împreună cu vectorul nul din IC n formează<br />
subspaţiul liniar V i = Ker(λ i I n −A) ⊂ IC n numit subspaţiul propriu asociat valorii<br />
<strong>proprii</strong> λ i . Dimen<strong>si</strong>unea ν i = dimV i a subspaţiului propriu, i.e. numărul de vectori<br />
<strong>proprii</strong> liniar independenţi asociaţi lui λ i , se numeşte multiplicitate geometrică a<br />
valorii <strong>proprii</strong> λ i . Este evident că<br />
ν i ≤ n i . (4.10)<br />
4.1.2 Subspaţii invariante<br />
Subspaţiile <strong>proprii</strong> sunt subspaţii A-invariante în sensul definiţiei următoare<br />
(v. şi §1.10).<br />
Definiţia 4.2 Fie o matrice A ∈ IC n×n . Un subspaţiu liniar V ⊂ IC n se numeşte<br />
subspaţiu invariant al matricei A sau, pe scurt, subspaţiu A-invariant dacă<br />
AV ⊂ V i.e. Ax ∈ V, ∀x ∈ V. (4.11)<br />
Cum IR n ⊂ IC n , pot exista subspaţii A-invariante în IR n pentru matrice A complexe.<br />
De asemenea, pentru matrice A reale pot exista subspaţii A-invariante care nu sunt<br />
în IR n . Dintre proprietăţile subspaţiilor A-invariante amintim următoarele.
212 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Propoziţia 4.1 Fie matricea A ∈ IC n×n .<br />
1 ◦ . Dacă x 1 , x 2 , ... ,x p sunt vectori <strong>proprii</strong> ai matricei A, atunci subspaţiul<br />
S = Im[x 1 x 2 ... x p ] ⊂ IC n este A-invariant.<br />
2 ◦ . Dacă S este un subspaţiu A-invariant cu dimS = p şi coloanele matricei<br />
(monice) V = [v 1 v 2 ... v p ] ∈ IC n×p formează o bază a lui S, atunci există o matrice<br />
B ∈ IC p×p astfel încât<br />
AV = VB. (4.12)<br />
Mai mult, avem<br />
λ(B) ⊂ λ(A). (4.13)<br />
(Matricea B se numeşte restricţia matricei A la subspaţiul A-invariant S şi se<br />
notează B = A|S.)<br />
În particular, orice subspaţiu A-invariant nenul (i.e. p ≥ 1) conţine un vector<br />
propriu al matricei A. Reciproc, dacă are loc o relaţie de forma (4.12), atunci ImV<br />
este un subspaţiu A-invariant.<br />
3 ◦ Complementul ortogonal T = S ⊥ în IC n al subspaţiului A-invariant S este un<br />
subspaţiu A H -invariant.<br />
În cazul real un subspaţiu A-invariant generat de vectori <strong>proprii</strong> reali este, evident,<br />
real. Dacă x 1,2 = v 1 ± iv 2 , v 1 , v 2 ∈ IR n , sunt vectori <strong>proprii</strong> asociaţi unei<br />
perechi de valori <strong>proprii</strong> complex conjugate λ 1,2 = α ± iβ, α, β ∈ IR, β ≠ 0,<br />
atunci vectorii v 1 , v 2 sunt liniar independenţi şi S = Im[v 1 v 2 ] este un subspaţiu<br />
A-invariant. Mai mult, dacă are loc o relaţie de forma (4.12), unde coloanele lui<br />
V ∈ IR n×p formează o bază a unui subspaţiu A-invariant S ⊂ IR n , atunci restricţia<br />
B ∈ IR p×p a lui A la S satisface (4.13) cu λ(B) o mulţime <strong>si</strong>metrică. În sfârşit,<br />
complementul ortogonal T = S ⊥ în IR n al subspaţiului A-invariant real S este un<br />
subspaţiu A T -invariant.<br />
Demonstraţie. Proprietatea 1 ◦ este evidentă. Pentru a arăta 2 ◦ să observăm<br />
că Av j ∈ S, de unde rezultă Av j = Vb j , j = 1 : p, i.e. (4.12) este adevărată.<br />
Dacă z ∈ IC p este un vector propriu al matricei B, i.e. Bz = µz, asociat valorii<br />
<strong>proprii</strong> µ ∈ λ(B), atunci din (4.12) avem AVz = µVz. Cum z ≠ 0 iar V este<br />
monică, rezultă y = Vz ≠ 0, i.e. y este un vector propriu al lui A conţinut în<br />
S. În consecinţă, S conţine un vector propriu al matricei A şi avem µ ∈ λ(A),<br />
deci (4.13) este adevărată. Acum, dacă are loc o relaţie de forma (4.12), atunci<br />
AVz = VBz = Vw ∈ ImV, ∀z ∈ IC p , i.e. ImV este A-invariant. 3 ◦ . Fie x ∈ S,<br />
y ∈ T doi vectori arbitrari. Atunci Ax ∈ S şi, deci, y H Ax = (A H y) H x = 0. Cum<br />
x ∈ S este arbitrar, rezultă A H y ⊥ S, respectiv A H y ∈ T , i.e. T este A H -invariant.<br />
În cazul real, din A(v 1 ±iv 2 ) = (α±iβ)(v 1 ±iv 2 ) rezultă<br />
{ [ ]<br />
Av1 = αv 1 −βv 2<br />
α −β<br />
, i.e. AV = VB cu B = . (4.14)<br />
Av 2 = βv 1 +αv 2 β α<br />
Dacă v 1 , v 2 sunt liniar dependenţi, atunci v 2 = γv 1 cu γ ≠ 0 şi din (4.14) rezultă<br />
β(1 + γ 2 )v 1 = 0. Cum β ≠ 0, obţinem v 1 = 0, de unde v 2 = 0 şi x 1,2 = 0, ceea<br />
ce contrazice definiţia <strong>vectorilor</strong> <strong>proprii</strong>. Celelalte afirmaţii se demonstrează <strong>si</strong>milar<br />
cazului complex.<br />
✸
4.1. FORMULAREA PROBLEMEI 213<br />
Exemplul 4.1 Se con<strong>si</strong>deră matricea<br />
⎡<br />
A = 1 6<br />
care are polinomul caracteristic<br />
⎣ 5 25 9<br />
−1 −5 −9<br />
0 24 24<br />
p(λ) = det(λI 3 −A) = λ 3 −4λ 2 +6λ−4<br />
şi valorile <strong>proprii</strong> λ 1 = 2, λ 2,3 = 1±i. Vectorii<br />
⎡<br />
def<br />
x 1 = v 1 = ⎣ −1 ⎤<br />
−1<br />
2<br />
⎦, x 2,3<br />
def<br />
= v 2 ±iv 3 =<br />
⎤<br />
⎦<br />
⎡<br />
⎣ 5<br />
−1<br />
2<br />
⎤<br />
⎦±i<br />
⎡<br />
⎣ 2 2<br />
−2<br />
sunt vectori <strong>proprii</strong> ai matricei A asociaţi <strong>valorilor</strong> <strong>proprii</strong> λ 1 şi, respectiv, λ 2,3 . Fie<br />
V 1 = v 1 şi V 23 = [v 2 v 3 ]. Avem următoarele relaţii de tipul (4.12) (verificaţi!):<br />
[ ]<br />
1 1<br />
AV 1 = V 1 B 1 cu B 1 = 2, AV 23 = V 23 B 23 cu B 23 =<br />
−1 1<br />
şi, prin urmare, S 1 = ImV 1 şi S 23 = ImV 23 (vezi fig.4.1) sunt subspaţii A-invariante,<br />
⎤<br />
⎦<br />
✻3<br />
IR<br />
❅<br />
S 3<br />
1 =ImV 1<br />
✘✘ ✘✘✘ ✘ ✘✘✘ ✘ ✘✘ ❈<br />
❅ ❈❈❈❈❈❈❈❈<br />
❅ S 23 =ImV 23<br />
❈ ❅❅■<br />
v 1<br />
v 2<br />
❈❈ ❅<br />
✘ ✘✘✘ ✘✘✿<br />
❅<br />
❈<br />
✑<br />
0<br />
✑ ❈<br />
❈❈❈❈❈ ✑ ❈❈❈❲<br />
✑<br />
✑ v 3<br />
✑<br />
✑<br />
✑✰ ✑ ✘ ✘ ✘ ✘✘✘ ✘ ✘✘✘ ✘✘<br />
2<br />
❅<br />
❅<br />
❅<br />
✲1<br />
Fig. 4.1: Vectori <strong>proprii</strong> şi subspaţii A-invariante pentru matricea A din exemplul<br />
4.1.<br />
iar B 1 = A|S 1 şi B 23 = A|S 23 sunt restricţii ale matricei A la cele două subspaţii<br />
(sunt aceste restricţii unic determinate). Propunem cititorului să calculeze complementele<br />
ortogonale înIR 3 ale celordouă subspaţii şi săverificecă acestesubspaţii<br />
sunt A T -invariante.<br />
✸<br />
Problema de calcul care face obiectul acestui capitol este determinarea <strong>valorilor</strong><br />
şi <strong>vectorilor</strong> <strong>proprii</strong> ai unei matrice date. Deşi pentru calculul unei valori <strong>proprii</strong>
214 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
sau al unui grup de valori <strong>proprii</strong> pot fi utilizate tehnici specifice, ne vom concentra<br />
demersul nostru, în principal, asupra problema de calcul al întregului spectru. Problema<br />
calculului <strong>vectorilor</strong> <strong>proprii</strong> va fi tratată în sub<strong>si</strong>diar, ţinând seama şi de<br />
faptul că în multe aplicaţii calculul explicit al <strong>vectorilor</strong> <strong>proprii</strong> poate fi (şi este bine<br />
să fie) evitat.<br />
4.1.3 Matrice asemenea<br />
Urmând metodologia generală de reducere a unei probleme de calcul la alte probleme<br />
mai <strong>si</strong>mple, utilizată şi în capitolele precedente, suntem interesaţi să evidenţiem<br />
transformările matriceale care conservă spectrul unei matrice date.<br />
Aşa cum s-a specificat şi în §1.10, valorile <strong>proprii</strong> sunt conservate de transformările<br />
de asemănare definite mai jos.<br />
Definiţia 4.3 Două matrice A,B ∈ IC n×n se numesc asemenea dacă există o matrice<br />
ne<strong>si</strong>ngulară T ∈ IC n×n astfel încât<br />
B = T −1 AT. (4.15)<br />
Dacă matricea de transformare T este unitară, atunci matricele A şi B se numesc<br />
unitar asemenea. În cazul real, dacă matricea de transformare T este ortogonală,<br />
matricele A şi B se numesc ortogonal asemenea.<br />
Într-adevăr,conformteoremei1.14,dacămatriceleA,B ∈ IC n×n satisfacorelaţie<br />
de forma (4.15), i.e. sunt asemenea, atunci ele au acelaşi spectru 3<br />
λ(A) = λ(B) (4.16)<br />
şi dacă x este un vector propriu al matricei A asociat valorii <strong>proprii</strong> λ ∈ λ(A),<br />
atunci vectorul<br />
y = T −1 x (4.17)<br />
este un vector propriu al matricei B, asociat aceleiaşi valori <strong>proprii</strong>.<br />
În dezvoltările din această lucrare vom in<strong>si</strong>sta asupra cazului generic al matricelorde<br />
ordinn careadmit un set (complet) de n vectori<strong>proprii</strong>liniar independenţi.<br />
Aşa cum s-a demonstrat în teorema 1.15, în acest caz, utilizând în (4.15) ca matrice<br />
de transformare T = X, unde X este o matrice având drept coloane n vectori<br />
<strong>proprii</strong> liniar independenţi ai matricei A, obţinem o matrice diagonală:<br />
X −1 AX = Λ = diag(λ 1 ,λ 2 ,...,λ j ,...,λ n ) ∈ IC n×n . (4.18)<br />
Astfel de matrice se numesc diagonalizabile (peste IC). Dacă o matrice n×n are n<br />
valori <strong>proprii</strong> distincte, atunci este diagonalizabilă dar reciproca nu este, în general,<br />
adevărată 4 .<br />
3 De remarcat faptul că transformările uzuale cum ar fi multiplicările cu matrice (la stânga<br />
sau la dreapta) alterează spectrul matricei date. În particular, operaţiile elementare cu linii sau<br />
coloane, inclu<strong>si</strong>v permutările, pot modifica valorile şi vectorii <strong>proprii</strong>.<br />
4 O matrice cu toate valorile <strong>proprii</strong> <strong>si</strong>mple (i.e. distincte) se numeşte cu spectru <strong>si</strong>mplu, iar<br />
matricele care admit seturi complete de vectori <strong>proprii</strong> liniar independenţi sunt cunoscute sub<br />
denumirea de matrice <strong>si</strong>mple. În acest din urmă caz multiplicităţile algebrice ale <strong>valorilor</strong> <strong>proprii</strong><br />
distincte coincid cu multiplicităţile lor geometrice. Evident, matricele cu spectru <strong>si</strong>mplu sunt<br />
<strong>si</strong>mple dar nu şi reciproc.
4.1. FORMULAREA PROBLEMEI 215<br />
În cazul general, structura ”fină” a unei matrice, care poate fi dezvăluită prin<br />
transformărideasemănarecorespunzătoare,estedatădeaşanumitaformă canonică<br />
Jordan. Deşi forma canonică Jordan joacă un rol esenţial în analiza matriceală,<br />
conţinând maximum de informaţie structurală privitor la o matrice dată, totuşi<br />
rolul ei în calculul numeric este mult diminuat de sen<strong>si</strong>bilitatea structurii Jordan la<br />
perturbaţii numerice în elementele matricei iniţiale, perturbaţii inerente în calcule<br />
efectuate pe un calculator datorită reprezentării informaţiei numerice în virgulă<br />
mobilă. Acesta este motivul pentru care în toate dezvoltările numerice se preferă<br />
o structură mult mai robustă şi anume forma Schur reală sau complexă prezentată<br />
într-una din secţiunile următoare 5 .<br />
4.1.4 Valorile <strong>proprii</strong> ale matricelor <strong>si</strong>metrice şi hermitice<br />
Prezentăm în continuare câteva rezultate referitoare la valorile şi vectorii <strong>proprii</strong><br />
pentru matricele hermitice (<strong>si</strong>metrice). Matricele hermitice (<strong>si</strong>metrice) se întâlnesc<br />
în numeroase aplicaţii şi prezintă particularităţi remarcabile.<br />
Definiţia 4.4 Fie A ∈ IC n×n . Matricea A se numeşte normală dacă<br />
A H A = AA H . (4.19)<br />
În cazul real, matricea A ∈ IR n×n este normală dacă<br />
A T A = AA T . (4.20)<br />
În acest context reamintim că matricea A se numeşte hermitică dacă A H = A<br />
şi <strong>si</strong>metrică dacă A T = A. De asemenea, o matrice A ∈ IC n×n se numeşte unitară<br />
dacă A H A = I n şi ortogonală dacă A T A = I n .<br />
Se constată imediat că matricele hermitice şi cele unitare sunt matrice normale.<br />
Matricele hermitice au proprietatea că elementele <strong>si</strong>metrice faţă de diagonala principală<br />
sunt complex conjugate, i.e. a ij = ā ji , i,j ∈ 1 : n, deci elementele diagonale<br />
ale matricelor hermitice sunt reale. O matrice hermitică reală este <strong>si</strong>metrică. O<br />
matrice unitară reală este ortogonală. Prin urmare matricele reale <strong>si</strong>metrice sau<br />
ortogonale sunt normale. Există [ matrice ] normale care nu sunt nici <strong>si</strong>metrice nici<br />
1 −1<br />
ortogonale, de exemplu A = .<br />
1 1<br />
Prezentăm în continuare câteva rezultate fundamentale, urmând ca aspectele<br />
specifice legate de calculul efectiv al <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> pentru matrice<br />
hermitice (<strong>si</strong>metrice) să fie date în două secţiuni distincte (§4.8 şi §4.9), iar cele<br />
legate de condiţionare şi stabilitate în §4.10 şi §4.11.<br />
Teorema 4.1 O matrice n×n complexă A este normală dacă şi numai dacă admite<br />
un set complet de n vectori <strong>proprii</strong> ortogonali, adică există o matrice unitară Q ∈<br />
∈ IC n×n ale cărei coloane sunt vectori <strong>proprii</strong> ai matricei A astfel încât<br />
Q H AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ) ∈ IC n×n . (4.21)<br />
5 Algoritmii de reducere la forma canonică Jordan, prezentaţi în unele lucrări de matematică<br />
(vezi, e.g. [XVI]) nu prezintă interes practic decât în contextul unor medii de calcul exact. Pentru<br />
detalii privitoare la aspectele numerice şi algoritmice ale calculului formei canonice Jordan, vezi<br />
secţiunea 4.7.
216 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Altfel spus, matricele normale sunt matricele unitar diagonalizabile (peste IC).<br />
În cazul real, matricea A este normală dacă şi numai dacă satisface aceleaşi<br />
condiţii, i.e. este unitar diagonalizabilă.<br />
Demonstraţie.<br />
Presupunem că matricea A este normală. Demonstrăm mai întâi următorul<br />
rezultat preliminar.<br />
Lema 4.1 Dacă S este un subspaţiu <strong>si</strong>multan A-invariant şi A H -invariant, atunci<br />
A şi A H admit un vector propriu comun x conţinut în S 6 . Dacă Ax = λx atunci<br />
A H x = ¯λx.<br />
Subspaţiul S fiind A-invariant, în conformitate cu propoziţia 4.1, punctul 2 ◦ , există<br />
un vector propriu x al matricei A (i.e. care satisface Ax = λx, x ≠ 0) conţinut în<br />
S. Din (4.19) rezultă imediat că A(A H ) k = (A H ) k A. Deci A(A H ) k x = λ(A H ) k x,<br />
k = 0,1,2,..., i.e. y k = (A H ) k x ≠ 0 sunt vectori <strong>proprii</strong> ai matricei A asociaţi<br />
aceleiaşi valori <strong>proprii</strong> λ. Cum subspaţiul S este şi A H -invariant rezultă că toţi<br />
vectorii y k sunt conţinuţi în S. Fie p întregul pentru care y 0 ,y 1 ,...,y p−1 sunt<br />
liniar independenţi, iar y p este o combinaţie liniară a acestora. Atunci, subspaţiul<br />
S ′ = ImY ⊂ S, unde Y = [y 0 y 1 ... y p−1 ] este A-invariant (conform propoziţiei<br />
4.1, punctul 1 ◦ ) şi, fiind generat de vectori <strong>proprii</strong> asociaţi aceleiaşi valori <strong>proprii</strong>,<br />
orice vector nenul din S ′ este vector propriu al lui A. Pe de altă parte, S ′ este<br />
şi A H -invariant întrucât ∀x = Yu ∈ S avem A H x = A H Yu = Yv ∈ S ′ . În<br />
consecinţă, conform propoziţiei 4.1, 2 ◦ , există o matrice B astfel încât A H Y = YB,<br />
de unde rezultă A H Yz = YBz = µYz pentru orice vector propriu z al ei asociat<br />
valorii <strong>proprii</strong> µ ∈ λ(B). Prin urmare, notând x = Yz avem A H x = µx cu µ ∈<br />
∈ λ(B) ⊂ λ(A H ). Altfel spus, există un vector propriu al matricei A H conţinut<br />
în S ′ . Cum toţi vectorii nenuli din S ′ sunt vectori <strong>proprii</strong> ai lui A, am arătat că<br />
matriceanormalăAşimatriceaA H au(cel puţin) un vectorpropriucomunconţinut<br />
în S ′ , deci şi în S. Mai mult, din Ax = λx şi A H x = µx cu acelaşi x ≠ 0, avem<br />
λ‖x‖ 2 = λx H x = x H Ax = (A H x) H x = (µx) H x = ¯µ‖x‖ 2 , de unde rezultă µ = ¯λ.<br />
Demonstraţia lemei este completă.<br />
Vom construi acum un set complet de vectori <strong>proprii</strong> ortogonali ai matricei<br />
normale A.<br />
Pasul 1 ◦ . Spaţiul IC n fiind <strong>si</strong>multan A- şi A H -invariant, conform lemei de mai sus<br />
matricele A şi A H admit un vector propriu comun x 1 care poate fi normat:<br />
Ax 1 = λ 1 x 1 , A H x 1 = ¯λ 1 x 1 , ‖x 1 ‖ = 1.<br />
Subspaţiul S 1 = Im[x 1 ] este <strong>si</strong>multan A-invariant şi A H -invariant. Conform propoziţiei<br />
4.1, 3 ◦ complementul său ortogonal T 1 = S ⊥ 1 în ICn este, de asemenea,<br />
<strong>si</strong>multan A- şi A H -invariant. În consecinţă matricele A şi A H admit un vector<br />
propriu (normat) comun x 2 ∈ T 1 , i.e. ortogonal cu x 1 :<br />
Ax 2 = λ 2 x 2 , A H x 2 = ¯λ 2 x 2 , ‖x 2 ‖ = 1, x 2 ⊥ x 1 .<br />
6 Un rezultat mai general este următorul: două matrice care comută admit un vector propriu<br />
comun (v. exerciţiul 4.7).
4.1. FORMULAREA PROBLEMEI 217<br />
Pasul k ◦ . Presupunem că am construit un set de k < n vectori <strong>proprii</strong> ortogonali<br />
x 1 , x 2 , ... ,x k ai matricei normale A (şi, <strong>si</strong>multan, ai matricei A H ). Subspaţiul<br />
S k = Im[x 1 x 2 ... x k ] este <strong>si</strong>multan A-invariant şi A H -invariant. Cu aceleaşi argumente,<br />
complementul său ortogonal T k = S ⊥ k în ICn este, de asemenea, <strong>si</strong>multan A-<br />
şi A H -invariant. În consecinţă, matricele A şi AH admit un vector propriu(normat)<br />
comun x k+1 ∈ T 1 , i.e. ortogonal cu x 1 , x 2 , ... ,x k :<br />
Ax k+1 = λ k+1 x k+1 , A H x k+1 = ¯λ k+1 x k+1 , ‖x k+1 ‖ = 1, x k+1 ⊥ S k .<br />
Procesul recurent de construcţie a <strong>vectorilor</strong> <strong>proprii</strong> ortogonali conduce după k =<br />
= n−1paşiladeterminareaunui setortogonalcompletdevectori<strong>proprii</strong>aimatricei<br />
A şi, <strong>si</strong>multan, ai matricei A H . Notând cu Q matricea <strong>vectorilor</strong> <strong>proprii</strong>, implicaţia<br />
directă este demonstrată.<br />
Reciproc, presupunem că matricea A admite un set complet de vectori <strong>proprii</strong><br />
ortogonali x i , i ∈ 1 : n, respectiv o matrice unitară Q def<br />
= X = [x 1 x 2 ··· x n ] de<br />
vectori <strong>proprii</strong>. Avem<br />
de unde rezultă<br />
X H AX = Λ = diag(λ 1 ,λ 2 ,...,λ n ) ∈ IC n×n ,<br />
X H A H X = ¯Λ.<br />
Din ultimele două relaţii avem Λ¯Λ = ¯ΛΛ = X H AA H X = X H A H AX, i.e. AA H =<br />
= A H A şi teorema este complet demonstrată. ✸<br />
Observaţia 4.1 Demonstraţiaprezentatămaisusevidenţiază,printrealtele,următoarele<br />
proprietăţi suplimentare ale matricelor normale:<br />
1 ◦ Dacă A este normală, atunci matricele A şi A H au aceiaşi vectori <strong>proprii</strong>.<br />
2 ◦ Dacă S este un subspaţiu A-invariant, atunci şi complementul său ortogonal<br />
în IC n este A-invariant.<br />
✸<br />
Teorema 4.2 O matrice n × n complexă A este hermitică dacă şi numai dacă<br />
admite un set complet de n vectori <strong>proprii</strong> ortogonali şi toate valorile <strong>proprii</strong> sunt<br />
reale adică există o matrice unitară Q, ale cărei coloane sunt vectori <strong>proprii</strong>, astfel<br />
încât<br />
Q H AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ) ∈ IR n×n . (4.22)<br />
Altfel spus, matricele hermitice sunt matricele unitar diagonalizabile cu spectru real.<br />
În cazul real matricea A este <strong>si</strong>metrică dacă şi numai dacă admite un set complet<br />
de n vectori <strong>proprii</strong> ortogonali reali şi toate valorile <strong>proprii</strong> sunt reale adică există<br />
o matrice ortogonală Q, ale cărei coloane sunt vectori <strong>proprii</strong>, astfel încât<br />
Q T AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ) ∈ IR n×n , (4.23)<br />
i.e. matricele reale <strong>si</strong>metrice 7 sunt matricele ortogonal diagonalizabile cu spectru<br />
real.<br />
7 Matricele complexe <strong>si</strong>metrice sunt matrice cu multe proprietăţi esenţial diferite de cele ale<br />
matricelor hermitice sau ale matricelor reale <strong>si</strong>metrice (vezi [I], [II] şi exerciţiul 4.31).
218 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Demonstraţie. Matricele hermitice fiind normale, conform teoremei precedente<br />
sunt unitar diagonalizabile, i.e. are loc (4.21). Acum, din A H = A rezultă că Λ H =<br />
Λ, i.e. spectrul este real. În cazul realaceastaare drept consecinţă faptul că vectorii<br />
<strong>proprii</strong> sunt reali. Reciproc, din (4.22) rezultă Λ H = Λ, i.e. Q H AQ = Q H A H Q, de<br />
unde obţinem A H = A.<br />
✸<br />
Faptul că matricele hermitice (în cazul real, <strong>si</strong>metrice) au spectrul real şi sunt<br />
unitar(ortogonal)diagonalizabileareimplicaţiimajoreasupratehnicilordecalculal<br />
<strong>valorilor</strong> <strong>proprii</strong>, a<strong>si</strong>gurând o complexitate relativ redusă a algoritmilor şi o precizie<br />
ridicată a rezultatelor. Pentru dezvoltarea algoritmilor de calcul se vor dovedi utile<br />
rezultatele prezentate în continuare. Formularea rezultatelor şi demonstraţiile vor<br />
fi prezentate pentru matricele hermitice, particularizarea pentru matricele reale<br />
<strong>si</strong>metrice (care se reduce, în esenţă, la înlocuirea mulţimii IC cu mulţimea IR şi<br />
a operatorului hermitic H cu operatorul de transpunere T ) fiind lăsată în sarcina<br />
cititorului.<br />
Fie matricea hermitică A ∈ IC n×n şi funcţia reală de n variabile complexe<br />
µ : IC\{0} → IR definită de µ(x) = xH Ax<br />
x H . Vom fi interesaţi de extremele funcţiei<br />
x<br />
µ. Pentru determinarea acestora, observăm mai întâi că µ(x) = µ(αx) pentru toţi<br />
α nenuli din IC. În consecinţă, este suficient să ne rezumăm la vectorii x de normă<br />
euclidiană unitară, i.e. să con<strong>si</strong>derăm funcţia<br />
µ : S → IR, x ↦→ µ(x) = x H Ax, (4.24)<br />
unde<br />
S = { x ∈ IC n ‖x‖ 2 = x H x = 1 } (4.25)<br />
estesferaderazăunitarădinIC n . Vomcon<strong>si</strong>deracăspectrulλ(A) = {λ 1 ,λ 2 ,...,λ n }<br />
al matricei A este ordonat descrescător, i.e.<br />
λ 1 ≥ λ 2 ≥ ... ≥ λ n , (4.26)<br />
şi fie q j ∈ IC n , j = 1 : n un set complet de vectori <strong>proprii</strong>, de normă euclidiană<br />
unitară, ai matricei A, asociaţi <strong>valorilor</strong> <strong>proprii</strong> λ j . Vom nota<br />
Q = [ ]<br />
q 1 q 2 ··· q n , Q<br />
′<br />
k = Q(:,1 : k), Q ′′<br />
k = Q(:,k +1 : n). (4.27)<br />
Avem următorul rezultat.<br />
Teorema 4.3 Valorile extreme absolute ale funcţiei µ definite în (4.24), (4.25) sunt<br />
date de<br />
M = max<br />
x ∈ S xH Ax = λ 1 , m = min<br />
x ∈ S xH Ax = λ n . (4.28)<br />
Mai mult, dacă W k = ImQ ′′<br />
k este subspaţiul A-invariant asociat <strong>valorilor</strong> <strong>proprii</strong><br />
λ j , j = k +1 : n, atunci<br />
max x H Ax = λ k+1 . (4.29)<br />
x ∈ S ∩W k
4.1. FORMULAREA PROBLEMEI 219<br />
Demonstraţie. Conform teoremei 4.2, matricea Q este unitară, A = QΛQ H unde<br />
Λ = diag(λ 1 ,λ 2 ,...,λ n ) şi, prin urmare,<br />
µ(x) = x H Ax = y H Λy =<br />
n∑<br />
λ k |y (k) | 2 , y = Q H x = [y (1) y (2) ··· y (n) ] T .<br />
k=1<br />
(4.30)<br />
Cum vectorii x şi y din (4.30) se află într-o relaţie biunivocă, iar transformările<br />
unitare conservă norma euclidiană, rezultă că extremele funcţiei µ coincid cu extremele<br />
funcţiei ν : S → IR, ν(y) = y H Λy. Din faptul că vectorii y sunt de normă<br />
unitară, i.e. ∑ n<br />
j=1 |y(j) | 2 = 1, rezultă<br />
ν(y) = λ 1 −<br />
n∑<br />
n−1<br />
∑<br />
(λ 1 −λ j )|y (j) | 2 = (λ j −λ n )|y (j) | 2 +λ n . (4.31)<br />
j=2<br />
Întrucât sumele din relaţia (4.31) sunt, datorită (4.26), nenegative, iar valoarea<br />
nulă a acestor sume se poate realiza, e.g. pentru y (j) = 0, j = 2 : n în primul<br />
caz şi j = 1 : n − 1 în cel de al doilea, avem egalităţile (4.28). Dacă valorile<br />
<strong>proprii</strong> maximă, respectiv minimă, sunt <strong>si</strong>mple, atunci valorile extreme ale funcţiei<br />
ν se ating pentru vectorii y de forma y 1 = [y (1) 0 ··· 0] T = e iθ1 e 1 , respectiv<br />
y n = [0 ··· 0 y (n) ] T = e iθn e n , cu θ 1 , θ n ∈ IR. Prin urmare, cele două extreme ale<br />
funcţiei µ se ating pentru vectorii x de forma x 1 = e iθ1 q 1 şi, respectiv x n = e iθn q n .<br />
Dacă λ 1 are multiplicitatea s, iar λ n multiplicitatea t, atunci maximul se atinge<br />
pentru orice vector x de normă unitară din V s = ImQ ′ s, i.e. subspaţiul A-invariant<br />
asociat <strong>valorilor</strong> <strong>proprii</strong> λ j , j = 1 : s, iar minimul se atinge pentru orice vector de<br />
normă unitară din W n−t .<br />
Pentru cea de a doua parte a teoremei, dacă x ∈ W k = V ⊥ k atunci xH Q ′ k = 0 şi<br />
y = Q H x = [0 ··· 0 y (k+1) ··· y (n) ] T . Prin urmare,<br />
µ(x) = ν(y) = λ k+1 −<br />
n∑<br />
j=k+2<br />
j=1<br />
de unde, cu aceleaşi argumente ca mai sus, se obţine (4.29).<br />
(λ k+1 −λ j )|y (j) | 2 , (4.32)<br />
Rezultatul următor prezintă o interesantă caracterizareminimax a <strong>valorilor</strong><strong>proprii</strong><br />
ale unei matrice hermitice (în cazul real, <strong>si</strong>metrice) şi este util prin consecinţele<br />
sale. Notăm, generic, cu V subspaţiile liniare ale spaţiului IC n şi cu W = V ⊥ complementele<br />
lor ortogonale în IC n . De asemenea, vom nota cu V S = V ∩S şi, respectiv,<br />
W S = W ∩S, mulţimile <strong>vectorilor</strong> de normă euclidiană unitară din V şi W.<br />
Teorema 4.4 (Courant – Fisher) Dacă matricea hermitică A ∈ IC n×n are valorile<br />
<strong>proprii</strong> ordonate ca în (4.26) atunci pentru toţi k ∈ 1 : n avem<br />
λ k = max<br />
dimV = k<br />
min x H Ax = min<br />
x ∈ V S dimV = k<br />
✸<br />
max x H Ax 8 . (4.33)<br />
x ∈ W S<br />
8 Întrucât oricărui subspaţiu n − k dimen<strong>si</strong>onal din IC n îi corespunde un complement ortogonal<br />
k dimen<strong>si</strong>onal, ultimul termen al egalităţilor (4.33) poate fi scris şi în forma λ k =<br />
= min dimV = n−k max x ∈ VS x H Ax.
220 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Demonstraţie. Fie V un subspaţiu arbitrar de dimen<strong>si</strong>une k şi v j , j = 1 : k, o bază<br />
a lui V. Fie, de asemenea, w j , j = 1 : n−k, o bază a lui W. Notăm cu V ∈ IC k ,<br />
respectiv W ∈ IC n−k , matricele <strong>vectorilor</strong> care formează bazele celor două subspaţii<br />
complementare. Conform teoremei precedente<br />
λ n ≤ x H Ax ≤ λ 1 (4.34)<br />
pentru toţi x din S, i.e. funcţia µ este mărginită pe compactul V S şi, în consecinţă,<br />
îşi atinge marginile pe această mulţime. La fel ca în demonstraţia teoremei precedente,<br />
fie y = Q H x, unde Q este o matrice unitară de vectori <strong>proprii</strong>, ordonaţi<br />
conform (4.26). Avem, evident, ‖y‖ = ‖x‖ şi x = Qy ∈ V dacă şi numai dacă este<br />
ortogonal pe W, i.e.<br />
W H x = W H Qy = 0. (4.35)<br />
[ ]<br />
Întrucât W este monică, factorizarea QR a matricei ˜W = Q H W = ˜Q R<br />
are<br />
0<br />
matriceasuperior triunghiularăR ∈ IC (n−k)×(n−k) ne<strong>si</strong>ngulară. În consecinţă, (4.35)<br />
devine [<br />
R H 0 ] ˜QH y = 0. (4.36)<br />
Notând z def<br />
= ˜Q H y relaţia (4.36) impune z(1 : n−k) = 0. Notând, încă o dată,<br />
u def<br />
= z(n−k +1 : n) ∈ IC k şi ţinând seama de faptul că transformările unitare<br />
conservă norma euclidiană, din (4.35), (4.36) rezultă că x = Qy = Q˜Qz = ˆQu, unde<br />
ˆQ = Q˜Q(:,n−k+1 : n), aparţine mulţimii V S dacă şi numai dacă ‖u‖ = 1, fără<br />
nici o altă restricţie asupra lui u. Acum, putem alege u astfel încât y(1 : k−1) = 0.<br />
Într-adevăr, y = ˜Q(:,n−k+1: n)u şi orice soluţie normată(i.e. de normă euclidiană<br />
unitară)a<strong>si</strong>stemuluisubdeterminat ˆQ(1 : k−1,,n−k+1 : n)u = 0a<strong>si</strong>gurăsatisfacerea<br />
acestei condiţii. Cu această alegere a lui u, pentru vectorul corespunzător x din V S ,<br />
avem<br />
n∑<br />
µ(x) = x H Ax = y H Λy = λ k − (λ k −λ j )|y (j) | 2 ≤ λ k , (4.37)<br />
j=k+1<br />
unde am ţinut seama de faptul că ∑ n<br />
j=k |y(j) | 2 = ‖y‖ 2 = 1 şi de ordonarea descrescătoare<br />
a <strong>valorilor</strong> <strong>proprii</strong>. Natural, din (4.37) rezultă<br />
min x H Ax ≤ λ k (4.38)<br />
x ∈ V S<br />
şi, cum subspaţiul V, de dimen<strong>si</strong>une k, era arbitrar, inegalitatea (4.38) are loc în<br />
toate subspaţiile de aceeaşi dimen<strong>si</strong>une sau, altfel spus,<br />
max<br />
dimV = k<br />
min x H Ax ≤ λ k . (4.39)<br />
x ∈ V S<br />
Rămâne să arătăm că această margine este atinsă efectiv. Aceasta se întâmplă în<br />
subspaţiul A-invariant asociat primelor k valori <strong>proprii</strong> din secvenţa (4.26). Întradevăr,<br />
fie V = ImQ ′ k şi x = Q′ k z cu ‖z‖ = 1. Rezultă ‖x‖ = 1, i.e. x ∈ V S şi<br />
k−1<br />
∑<br />
µ(x) = x H Ax = (λ j −λ k )|z (j) | 2 +λ k ≥ λ k , (4.40)<br />
j=1
4.1. FORMULAREA PROBLEMEI 221<br />
de unde, în acest subspaţiu,<br />
min x H Ax ≥ λ k (4.41)<br />
x ∈ V S<br />
egalitatea obţinându-se pentru z = [0 ··· 0 1] T . Prima egalitate din (4.33) este<br />
demonstrată. Demonstraţia celei de a doua egalităţi (4.33) urmează aceleaşi idei.<br />
Întrucât dimW = n−k, există un vector x ∈ W S astfel încât vectorul y = Q H x are<br />
componentele k+1 : n nule (demonstraţi!). Pentru această alegere a lui x avem o<br />
relaţie de forma (4.40)<br />
de unde rezultă<br />
k−1<br />
∑<br />
µ(x) = x H Ax = y H Λy = (λ j −λ k )|y (j) | 2 +λ k ≥ λ k , (4.42)<br />
j=1<br />
max x H Ax ≥ λ k . (4.43)<br />
x ∈ W S<br />
Cum subspaţiul (n−k)-dimen<strong>si</strong>onal W a fost arbitrar, rezultă că inegalitatea (4.43)<br />
are loc în toate subspaţiile de această dimen<strong>si</strong>une sau, altfel spus,<br />
min<br />
dimV = k<br />
max x H Ax ≥ λ k . (4.44)<br />
x ∈ W S<br />
Adăugând faptul că marginea din (4.44) se atinge efectiv în subspaţiul W = ImQ ′′<br />
k ,<br />
cea de a doua egalitate (4.33), şi o dată cu ea întreaga teoremă, sunt complet<br />
demonstrate.<br />
✸<br />
Teorema Courant – Fisher este importantă, în contextul calculatoriu al acestei<br />
lucrări, prin consecinţele sale, dintre care câteva sunt prezentate în continuare.<br />
Notăm A [k] def<br />
= A(1:k,1:k) submatricele lider principale de ordinul k ale matricei<br />
hermitice A ∈ IC n×n , care sunt la rândul lor, evident, hermitice. Presupunem<br />
că spectrele λ(A [k] ) = {λ [k]<br />
1 ,λ[k] 2 ,...,λ[k] k<br />
} (evident, reale) ale submatricelor lider<br />
principale sunt, şi ele, ordonate descrescător, i.e.<br />
λ [k]<br />
1 ≥ λ [k]<br />
2 ≥ ... ≥ λ [k]<br />
k . (4.45)<br />
Teorema 4.5 (Teoremade separare) Valorile <strong>proprii</strong> ale submatricelor lider principale<br />
de ordinul k ale unei matrice hermitice separă valorile <strong>proprii</strong> ale submatricelor<br />
lider principale de ordinul k +1, i.e.<br />
λ [k+1]<br />
1 ≥ λ [k]<br />
1 ≥ λ [k+1]<br />
2 ≥ λ [k]<br />
2 ≥ ... ≥ λ [k]<br />
k−1 ≥ λ[k+1] k<br />
≥ λ [k]<br />
k ≥ λ[k+1] k+1 , (4.46)<br />
pentru toţi k ∈ 1 : n−1.<br />
Demonstraţie. Este suficient să con<strong>si</strong>derăm cazul k = n−1. Pentru <strong>si</strong>mplificarea<br />
notaţiilor, fie λ ′ def<br />
i = λ [n−1]<br />
i , i = 1 : n−1. Cu aceste notaţii, este suficient să dovedim<br />
inegalităţile<br />
λ i ≥ λ ′ i ≥ λ i+1 , i = 1 : n−1. (4.47)
222 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Avem, evident,<br />
x H A [n−1] x = [ x H<br />
0 ] [ x<br />
A<br />
0<br />
]<br />
, ∀x ∈ IC n−1 . (4.48)<br />
Pe această bază, între mulţimile<br />
M i = { µ ∈ IR<br />
µ = max x∈WS x H Ax, W ⊂ IC n , dimW = n−i<br />
}<br />
, (4.49)<br />
M ′ i ={ µ ′ ∈ IR µ ′ =max x∈WS x H A [n−1] x, W ⊂ IC n−1 , dimW = n−1−i } ,<br />
(4.50)<br />
există relaţiile<br />
M i ⊆ M ′ i ⊆ M i+1, (4.51)<br />
de unde rezultă<br />
minM i+1 ≤ minM ′ i ≤ minM i , (4.52)<br />
inegalităţi care, în baza teoremei Courant-Fisher, sunt echivalente cu (4.47). Teorema<br />
este demonstrată.<br />
✸<br />
O relaţie dintre valorile <strong>proprii</strong> a două matrice hermitice şi valorile <strong>proprii</strong> ale<br />
sumei lor, utilă în aprecierea influenţei perturbaţiilor numerice hermitice, este dată<br />
în teorema următoare.<br />
Teorema 4.6 Dacă matricele hermitice A,E ∈ IC n×n au spectrele ordonate descrescător,<br />
atunci, cu notaţii evidente, avem<br />
pentru toţi k ∈ 1 : n.<br />
λ k (A)+λ 1 (E) ≥ λ k (A+E) ≥ λ k (A)+λ n (E) (4.53)<br />
Demonstraţie. Conform teoremei Courant-Fisher<br />
λ k (A+E) =<br />
≤<br />
≤<br />
min<br />
dimV = k<br />
max x H (A+E)x ≤<br />
x ∈ W S<br />
min<br />
dimV = k ( x max x H Ax+ max x H Ex) ≤<br />
∈ W S x ∈ W S<br />
min<br />
dimV = k ( x max x H Ax+λ 1 (E)) = λ k (A)+λ 1 (E). (4.54)<br />
∈ W S<br />
Pentru a demonstra a doua inegalitate (4.53) avem, <strong>si</strong>milar,<br />
λ k (A+E) = max<br />
dimV = k<br />
min x H (A+E)x ≥<br />
x ∈ V S<br />
≥ max<br />
dimV = k ( min<br />
x ∈ V S<br />
x H Ax+ min<br />
x ∈ V S<br />
x H Ex) ≥<br />
≥ max<br />
dimV = k ( x min x H Ax+λ n (E)) = λ k (A)+λ n (E).<br />
∈ V S<br />
(4.55)<br />
Teorema este demonstrată.<br />
✸<br />
În sfârşit, cu notaţiile utilizate în teorema 4.8, formulăm următorul rezultat<br />
util, de asemenea, în evaluarea influenţelor perturbaţiilor numerice asupra <strong>valorilor</strong><br />
<strong>proprii</strong> ale matricelor hermitice.
4.1. FORMULAREA PROBLEMEI 223<br />
Teorema 4.7 (Wielandt – Hoffmann) Dacă matricele A,E ∈ IC n×n sunt hermitice,<br />
atunci<br />
n∑<br />
(λ j (A+E)−λ j (A)) 2 ≤ ‖E‖ 2 F, (4.56)<br />
∑ i−1<br />
j=1 |e ij| 2 = √ ∑ n<br />
i=1 λ2 i (E) este norma Fro-<br />
unde ‖E‖ F =<br />
benius a matricei E.<br />
j=1<br />
√ ∑n<br />
i=1 |e ii| 2 +2 ∑ n<br />
i=2<br />
Demonstraţie. Pentru demonstraţie se poate consulta [IV].<br />
Un rezultat remarcabil, de o factură aparte, se referă la inerţia unei matrice.<br />
Inerţia unei matrice hermitice A ∈ IC n×n se defineşte prin tripletul (n − ,n 0 ,n + )<br />
unde n − este numărul <strong>valorilor</strong> <strong>proprii</strong> negative, n 0 este numărul <strong>valorilor</strong> <strong>proprii</strong><br />
nule şi, respectiv, n + este numărul <strong>valorilor</strong> <strong>proprii</strong> pozitive ale matricei A. De<br />
asemenea, se spune că două matrice (hermitice) A,B ∈ IC n×n sunt congruente dacă<br />
există o matrice ne<strong>si</strong>ngulară T ∈ IC n×n astfel încât B = T H AT. Rezultatul, datorat<br />
lui Sylvester, are următorul enunţ.<br />
Teorema 4.8 Două matrice hermitice congruente au aceeaşi inerţie.<br />
Demonstraţie. Fie A ∈ IC n×n hermitică, B = T H AT cu T ne<strong>si</strong>ngulară şi λ k (A)<br />
o valoare proprie nenulă a matricei A. Presupunem că spectrele matricelor A şi B<br />
sunt ordonate descrescător. Conform teoremei Courant-Fisher avem<br />
λ k (B) = max<br />
dimV = k<br />
min x H Bx ≥ min x H x H Bx<br />
Bx = min<br />
x ∈ V S x ∈ ṼS x ∈ Ṽ∗ x H x , (4.57)<br />
unde Ṽ este orice subspaţiu particular de dimen<strong>si</strong>une k, iar Ṽ∗ = Ṽ \ {0}. Con<strong>si</strong>derând<br />
Ṽ = ImT−1 Q ′ k , cu Q′ k definit în (4.27), avem x ∈ Ṽ∗ dacă şi numai dacă<br />
x = T −1 Q ′ k z cu z ∈ ICk , z ≠ 0. Pe de altă parte, matricea R def<br />
= TT H este hermitică,<br />
pozitiv definită (i.e. x H Rx > 0, ∀x ≠ 0) şi, prin urmare, are spectrul real şi<br />
pozitiv (demonstraţi!) aceleaşi proprietăţi avându-le şi matricea R −1 = T −H T −1 .<br />
Cu aceste precizări, pentru toţi x ∈ Ṽ∗ , avem<br />
{<br />
x H Bx = x H T H QΛ A Q H Tx = z H diag(λ 1 (A),λ 2 (A),...,λ k (A))z<br />
x H x = z H Q ′H<br />
k R−1 Q ′ k z, , (4.58)<br />
de unde, ţinând seama de ordonarea <strong>valorilor</strong> <strong>proprii</strong>, rezultă<br />
✸<br />
Cu aceste inegalităţi, din (4.57), obţinem<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
x H Bx ≥ λ k (A)z H z<br />
λ min (R −1 )z H z ≤ x H x ≤ λ max (R −1 )z H z.<br />
λ k (B) ≥<br />
λ k(A)<br />
λ max (R −1 ) , dacă λ k(A) > 0<br />
λ k (B) ≥ λ k(A)<br />
λ min (R −1 ) , dacă λ k(A) < 0.<br />
(4.59)<br />
(4.60)
224 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Schimbând rolul matricelor A şi B, cu un raţionament analog obţinem următoarele<br />
corespondente ale relaţiilor (4.60)<br />
{<br />
λk (B) ≤ λ max (R)λ k (A), dacă λ k (A) > 0<br />
(4.61)<br />
λ k (B) ≤ λ min (R)λ k (A), dacă λ k (A) < 0.<br />
În concluzie, în toate cazurile, αλ k (A) ≤ λ k (B) ≤ βλ k (A) cu α > 0, β > 0, i.e.<br />
λ k (A) şi λ k (B) au acelaşi semn. Rezultă că A şi B au aceeaşi inerţie. ✸<br />
În contextul acestuiparagrafeste natural săintroducem matriceleantihermitice,<br />
respectiv anti<strong>si</strong>metrice în cazul real.<br />
Definiţia 4.5 Matricea A ∈ IC n×n se numeşte antihermitică dacă<br />
A H = −A. (4.62)<br />
În cazul real, matricea A ∈ IR n×n se numeşte anti<strong>si</strong>metrică dacă<br />
A T = −A. (4.63)<br />
O matrice antihermitică are elementele diagonale pur imaginare. Este uşor de observat<br />
că dacă matricea complexă A este antihermitică, atunci matricea B = −iA<br />
este hermitică. În consecinţă, A este unitar diagonalizabilă şi are toate valorile<br />
<strong>proprii</strong> pur imaginare. Matricele antihermitice sunt normale.<br />
În cazul real, o matrice anti<strong>si</strong>metrică are elementele diagonale nule. Dacă A<br />
este anti<strong>si</strong>metrică, atunci B = −iA este o matrice complexă hermitică. Rezultă<br />
că A este unitar diagonalizabilă şi are toate valorile <strong>proprii</strong> pur imaginare. Cum,<br />
în această <strong>si</strong>tuaţie, valorile <strong>proprii</strong> apar în perechi complex conjugate rezultă că o<br />
matrice anti<strong>si</strong>metrică de ordin impar are, în mod necesar, o valoare proprie nulă,<br />
i.e. este <strong>si</strong>ngulară. Evident, o matrice anti<strong>si</strong>metrică este normală.<br />
Ultimulrezultatpecareîlprezentămsereferălavalorileşivectorii<strong>proprii</strong>pentru<br />
matricele unitare şi ortogonale.<br />
Teorema 4.9 O matrice n×n complexă A este unitară dacă şi numai dacă admite<br />
un set complet de n vectori <strong>proprii</strong> ortogonali şi toate valorile <strong>proprii</strong> sunt de modul<br />
unitar, adică este unitar diagonalizabilă cu spectru unitar, respectiv există o matrice<br />
unitară Q ∈ IC n×n astfel încât<br />
Q H AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ) cu |λ i | = 1, ∀ λ i . (4.64)<br />
În cazul real matricea A este ortogonală dacă şi numai satisface aceleaşi condiţii,<br />
i.e. este unitar diagonalizabilă cu spectru unitar.<br />
Demonstraţie. O matrice unitară A ∈ IC n×n fiind normală, conform teoremei<br />
4.1, este unitar diagonalizabilă, i.e. există o matrice unitară Q ∈ IC n×n astfel încât<br />
Q H AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ), de unde rezultă A = QΛQ H . În plus, din<br />
A H A = I n obţinem ¯ΛΛ = I n , i.e. ¯λj λ j = |λ j | 2 = 1, de unde rezultă |λ j | = 1,<br />
j = 1 : n. Deci toate valorile <strong>proprii</strong> sunt de modul unitar, i.e. pot fi scrise sub<br />
forma λ j = e iθj , cu θ j ∈ IR, j = 1 : n. Reciproc, dacă avem Q H AQ = Λ, cu Q
4.1. FORMULAREA PROBLEMEI 225<br />
unitară şi Λ diagonală cu elementele diagonale de modul unitar, atunci prin calcul<br />
direct rezultă imediat A H A = I n , i.e. A este unitară. În cazul real demonstraţia<br />
este identică cu <strong>si</strong>ngura menţiune suplimentară că alături de orice valoare proprie<br />
complexă λ j = e iθj ∈ IC\IR apare şi conjugata ei λ j = e −iθj . ✸<br />
Observaţia 4.2 Este <strong>si</strong>mplu de constatat că dacă o matrice complexă A este<br />
normală, hermitică sau unitară, atunci orice matrice B unitar asemenea cu A are<br />
aceleaşi proprietăţi. Similar, în cazul real, proprietăţile de normalitate, <strong>si</strong>metrie şi<br />
ortogonalitate sunt conservate de transformările ortogonale de asemănare. Această<br />
invarianţă explică utilizarea exclu<strong>si</strong>vă a transformărilor unitare (ortogonale) în demersul<br />
calculatoriu legat de valorile şi vectorii <strong>proprii</strong>.<br />
✸<br />
Încheiem acest paragraf cu precizarea că principala proprietate comună a celor<br />
trei tipuri de matrice menţionate mai sus, indusă de proprietatea de normalitate,<br />
constă în faptul că toate admit seturi complete de vectori <strong>proprii</strong> ortogonali, fapt<br />
care le conferă o perfectă condiţionare a spectrelor de valori <strong>proprii</strong> (v. § 4.10).<br />
4.1.5 Localizarea <strong>valorilor</strong> <strong>proprii</strong><br />
În finalul acestei secţiuni introductive vom prezenta câteva rezultate privitoare la<br />
localizarea <strong>valorilor</strong> <strong>proprii</strong> în planul complex, rezultate utile atât prin ele însele cât<br />
şi în contextul stabilirii iniţializărilor pentru diverse metode iterative de calcul sau<br />
al analizei sen<strong>si</strong>bilităţii <strong>valorilor</strong> <strong>proprii</strong> la perturbaţii în matricea dată.<br />
Unele din cele mai cunoscute rezultate în această privinţă sunt oferite de teoremele<br />
următoare.<br />
Teorema 4.10 Oricare ar fi matricea A ∈ IC n×n şi ‖·‖ o familie arbitrară de norme<br />
con<strong>si</strong>stente avem<br />
ρ(A) ≤ ‖A‖. (4.65)<br />
Demonstraţie. Din proprietatea de con<strong>si</strong>stenţă a familiei de norme pentru orice<br />
λ ∈ λ(A) şi vector propriu asociat x cu ‖x‖ = 1 avem |λ| = ‖λx‖ = ‖Ax‖ ≤<br />
≤ ‖A‖‖x‖ = ‖A‖, de unde rezultă (4.65) 9 .<br />
✸<br />
Teorema 4.11 (Gershgorin) Valorile <strong>proprii</strong> ale unei matrice A ∈ IC n×n sunt <strong>si</strong>tuate<br />
în domeniul D din planul complex definit de<br />
D =<br />
n⋃<br />
D i , (4.66)<br />
i=1<br />
9 Există şi un rezultat, datorat lui Householder (v. exerciţiul 4.32), care arată că pentru<br />
orice ε > 0 există o normă con<strong>si</strong>stentă ‖ · ‖ astfel încât ‖A‖ ≤ ρ(A) + ε, relaţie care, împreună<br />
cu (4.65), permite aproximarea oricât de bună a razei spectrale a unei matrice cu ajutorul unei<br />
norme a acesteia. Din păcate, această normă este o normă specială care depinde de A şi ε, astfel<br />
că rezultatul menţionat are o valoare în primul rând teoretică.
226 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
unde D i sunt discurile<br />
numite discuri Gershgorin.<br />
D i = {z ∈ IC | |z −a ii | ≤<br />
n∑<br />
|a ij |}, i = 1 : n, (4.67)<br />
j=1<br />
j≠i<br />
Demonstraţie. Fie x un vector propriu asociat valorii <strong>proprii</strong> λ ∈ λ(A). Atunci<br />
linia i a relaţiei Ax = λx se scrie<br />
(λ−a ii )x i =<br />
n∑<br />
a ij x j , (4.68)<br />
de unde rezultă |λ − a ii ||x i | ≤ ∑ n<br />
j=1 |a ij ||x j |. Alegând linia i astfel încât |x i | =<br />
j≠i<br />
= max k=1:n (|x k |) ≠ 0, rezultă<br />
|λ−a ii | ≤<br />
j=1<br />
j≠i<br />
n∑<br />
|a ij | |x j|<br />
n<br />
|x i | ≤ ∑<br />
|a ij |, (4.69)<br />
j=1<br />
j≠i<br />
j=1<br />
j≠i<br />
i.e. λ ∈ D i .<br />
✸<br />
Dacă o linie a matricei A are elementele extradiagonale nule, atunci elementul<br />
diagonal este o valoare proprie a matricei A, iar discul Gershgorin corespunzător<br />
liniei respective se reduce la punctul {a ii }. De asemenea, se poate arăta [I] că dacă<br />
m discuri Gershgorin formează o mulţime disjunctă de mulţimea celorlalte n −m<br />
discuri, atunci exact m valori <strong>proprii</strong> se găsesc <strong>si</strong>tuate în reuniunea celor m discuri.<br />
În particular, un disc disjunct de celelalte conţine exact o valoare proprie 10 .<br />
✻Imλ<br />
✻Imλ<br />
✬✩ ✬✩<br />
λ 2<br />
✓✏ ✓✏ ✓✏λ 2<br />
✓✏<br />
× λ 1 Reλ<br />
× ✲ × λ 1 Reλ<br />
× ✲<br />
×<br />
×<br />
λ 3 ✒✑ ✒✑ ✒✑λ 3 ✒✑<br />
✫✪ ✫✪<br />
a) b)<br />
Fig. 4.2: Utilizarea discurilor Gershgorin ”pe linii” (a) şi ”pe coloane” (b) pentru<br />
localizarea <strong>valorilor</strong> <strong>proprii</strong> ai matricei din exemplul 4.2.<br />
10 Discurile Gershgorin (4.67) ar putea fi denumite discuri-linie întrucât sunt construite cu<br />
ajutorul liniilor matricei date. Cum transpusa matricei are acelaşi spectru, aplicând teorema<br />
4.11 matricei transpuse obţinem o localizare a <strong>valorilor</strong> <strong>proprii</strong> în reuniunea discurilor Gershgorin<br />
definite pe coloane. Evident, o localizare mai bună se obţine intersectând cele două domenii.
4.2. FORMA SCHUR 227<br />
Exemplul 4.2 Con<strong>si</strong>derăm matricea<br />
⎡<br />
A =<br />
⎣ 1 0 1<br />
1 5 0<br />
−1 1 −1<br />
pentru care cele trei discuri Gershgorinsunt D 1 de centru 1 şi rază1, D 2 de centru 5<br />
şirază1şiD 3 decentru-1şirază2(v. fig. 4.2), iarvalorile<strong>proprii</strong>suntλ 1 = 5.0394,<br />
λ 2,3 = −0.0197± 0.4450i. Raza spectrală este deci ρ(A) = 5.0394, inferioară e.g.<br />
normei ‖A‖ F<br />
= 5.5678.<br />
✸<br />
Teoremalui Gershgorineste utilă, de exemplu, pentru deciziile de neglijareaelementelor<br />
extradiagonale la o precizie fixată a <strong>valorilor</strong> <strong>proprii</strong> calculate în tehnicile<br />
de diagonalizareiterativăprintransformăride asemănare. Generalizărialeteoremei<br />
4.11 fac obiectul exerciţiilor 4.40 şi 4.41. Alte rezultate privind localizarea <strong>valorilor</strong><br />
<strong>proprii</strong> se pot gă<strong>si</strong> în [I], [II].<br />
⎤<br />
⎦<br />
4.2 Forma Schur<br />
Transformările de asemănare unitare, respectiv ortogonale în cazul real, prezintă<br />
marele avantaj de a conserva condiţionarea spectrului de valori <strong>proprii</strong> ale unei<br />
matrice date (v. §4.10). De aceea vom fi interesaţi în utilizarea lor exclu<strong>si</strong>vă pentru<br />
determinarea <strong>valorilor</strong> <strong>proprii</strong>. Pe de altă parte, structurile canonice, cum este<br />
formaJordan, nuse pot obţine, îngeneral, prin astfelde transformări 11 . Rezultatul<br />
principalalacestuiparagrafaratăcăoricematriceesteunitar asemeneacuomatrice<br />
triunghiulară, numită forma Schur. În acest fel este po<strong>si</strong>bilă evidenţierea <strong>valorilor</strong><br />
<strong>proprii</strong> ale unei matrice (elementele diagonale ale formei sale Schur), utilizând o<br />
secvenţă de transformări unitare de asemănare.<br />
4.2.1 Forma Schur (complexă)<br />
<strong>Calculul</strong> <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice este intim legat de calculul <strong>vectorilor</strong><br />
<strong>proprii</strong> asociaţi. Dacă λ ∈ λ(A) este cunoscută, atunci vectorul propriu asociat este<br />
o soluţie nenulă a unui <strong>si</strong>stem liniar omogen. Dacă se cunoaşte un vector propriu x<br />
al matricei A, atunci valoarea proprie asociată poate fi calculată cu relaţia<br />
x H Ax<br />
x H x = xH λx<br />
x H x = λ (4.70)<br />
care, pentru x de normă euclidiană unitară, i.e. ‖x‖ = 1, devine<br />
λ = x H Ax. (4.71)<br />
Întrucât valorile <strong>proprii</strong> sunt rădăcinile unei ecuaţii algebrice, calculul lor pentru<br />
matrice de ordin superior lui patru, în absenţa cunoaşterii <strong>vectorilor</strong> <strong>proprii</strong>, este<br />
11 Matricele normale, care sunt unitar diagonalizabile (v. teorema 4.10), nu constituie un caz<br />
generic.
228 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
în mod necesar un proces (iterativ) infinit, aceeaşi <strong>si</strong>tuaţie apărând şi la calculul<br />
<strong>vectorilor</strong> <strong>proprii</strong> fără a se cunoaşte valorile <strong>proprii</strong> asociate.<br />
De aceea, una din ideile aflate la baza a<strong>si</strong>gurării eficienţei tehnicilor de calcul<br />
a <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> este exploatarea rezultatelor parţiale prin reducerea<br />
corespunzătoare a dimen<strong>si</strong>unii problemei. În sprijinul aplicării acestei idei vin<br />
următoarele rezultate.<br />
Propoziţia 4.2 Fie A ∈ IC n×n şi X ⊂ IC n un subspaţiu A-invariant p-dimen<strong>si</strong>onal<br />
dat printr-o bază ortogonală x 1 , x 2 , ..., x p . Atunci există o matrice unitară Q ∈<br />
∈ IC n×n cu Q(:,j) = x j , j = 1:p, astfel încât<br />
[ ]<br />
Q H S11 S<br />
AQ = 12<br />
, (4.72)<br />
0 S 22<br />
cu S 11 ∈ IC p×p .<br />
În cazul real, i.e. A ∈ IR n×n şi X ⊂ IR n , matricea Q poate fi reală (i.e. ortogonală),<br />
iar matricea reală Q T AQ are structura (4.72).<br />
Demonstraţie. Fie Q(:,1:p) = X def<br />
= [x 1 x 2 ··· x p ] şi Y ∈ IC n×(n−p) o bază<br />
ortogonală a complementului ortogonal Y = X ⊥ al lui X în IC n . Atunci matricea<br />
Q = [X Y ] este unitară. Conform propoziţiei 4.1, punctul 2 ◦ , există o matrice<br />
S 11 ∈ IC p×p cu λ(S 11 ) ⊂ λ(A) astfel încât AX = XS 11 , i.e. X H AX = S 11 . În plus<br />
Y H AX = Y H XS 11 = 0. În consecinţă avem<br />
[ ]<br />
S=Q H X<br />
H<br />
AQ=<br />
Y H A [ X Y ] [ ] [ ]<br />
X<br />
=<br />
H AX X H AY S11 S<br />
Y H AX Y H = 12<br />
AY 0 S 22<br />
(4.73)<br />
unde, evident, S 12 = X H AY, S 22 = Y H AY. q.e.d.<br />
În cazul real, conform aceleiaşi propoziţii 4.1, toate subspaţiile implicate în<br />
demonstraţia de mai sus sunt în IR n , iar matricea Q este ortogonală. Evident, în<br />
acest caz spectrul matricei S 11 este o submulţime <strong>si</strong>metrică a spectrului matricei A.<br />
Demonstraţia este completă.<br />
✸<br />
Observaţia 4.3 <strong>Calculul</strong>matriceiunitaredeasemănareQestecondiţionatesenţial<br />
de cunoaşterea unei baze V = [v 1 v 2 ··· v p ] a subspaţiului A-invariant X. În acest<br />
caz, construcţia unei baze ortogonale X a lui X şi a unei completări ortogonale Y<br />
se poate face după recomandările din capitolul 3. Concret, dacă<br />
[ ]<br />
R1<br />
V = Q<br />
0<br />
este factorizarea QR (complexă) a matricei V, unde Q ∈ IC n×n este unitară, iar<br />
R 1 ∈ IC p×p este ne<strong>si</strong>ngulară, atunci X = Q(:,1 : p), Y = Q(:,p +1 : n) sunt<br />
cele două baze ortogonale căutate, iar Q este matricea de transformare unitară de<br />
asemănare din (4.72).<br />
✸<br />
Pentru p = 1 baza V a subspaţiului A-invariant din propoziţia 4.2 se reduce<br />
la un vector propriu x de normă unitară asociat valorii <strong>proprii</strong> λ. În acest caz<br />
propoziţia 4.2 se particularizează în următoarea lemă.
4.2. FORMA SCHUR 229<br />
Lema 4.2 (Deflaţie unitară) Fie A ∈ IC n×n şi λ ∈ λ(A). Atunci există o matrice<br />
unitară Q ∈ IC n×n astfel încât<br />
[ ] λ<br />
Q H S12<br />
AQ = . (4.74)<br />
0 S 22<br />
Conform observaţiei 4.3, matricea de transformare poate fi Q = U H 1 , unde U 1 este<br />
reflectorul (complex) care anulează elementele 2 : n ale vectorului propriu x asociat<br />
valorii <strong>proprii</strong> λ.<br />
Aplicarea consecventă a lemei 4.2 ne conduce la următorul rezultat important.<br />
Teorema 4.12 (Forma Schur) Oricare ar fi matricea A ∈ IC n×n există o matrice<br />
unitară Q ∈ IC n×n astfel încât matricea<br />
Q H AQ = S, (4.75)<br />
este superior triunghiulară. Elementele diagonale ale matricei S sunt valorile <strong>proprii</strong><br />
ale matricei A şi pot fi dispuse în orice ordine predeterminată.<br />
Matricea S se numeşte forma Schur (FS) a matricei A, iar coloanele matricei<br />
de transformare Q se numesc vectori Schur ai matricei A asociaţi formei Schur S.<br />
Demonstraţie. Pasul 1 ◦ . Conform lemei 4.2, dacă λ 1 ∈ λ(A), atunci există o<br />
matrice unitară Q 1 astfel încât<br />
⎡ ⎤<br />
S 1 = Q H 1 AQ 1 = ⎣ λ 1 S (1)<br />
12<br />
0 S (1) ⎦,<br />
22<br />
realizându-se o deflaţie în prima coloană.<br />
Pasul k ◦ . Presupunem că în primii k − 1 paşi am realizat triangularizarea în<br />
primele k −1 coloane prin transformări unitare de asemănare<br />
S k−1 = Q H k−1 ... Q H 2 Q H 1 AQ 1 Q 2 ... Q k−1 =<br />
⎡<br />
⎣ S(k−1) 11 S (k−1)<br />
12<br />
0 S (k−1)<br />
22<br />
⎤<br />
⎦,<br />
unde S (k−1)<br />
11 ∈ IC (k−1)×(k−1) este superior triunghiulară. Vom aplica lema 4.2 pentru<br />
a realiza deflaţia în coloana k. Pentru aceasta, dacă λ k ∈ λ(S (k−1)<br />
22 ), atunci există<br />
o matrice unitară ˜Q k astfel încât<br />
˜Q H k S(k−1) 22<br />
˜Q k =<br />
[<br />
λk Ŝ (k)<br />
12<br />
0 S (k)<br />
22<br />
]<br />
.<br />
Acum, matricea<br />
Q k =<br />
[<br />
Ik−1 0<br />
0 ˜Qk<br />
]<br />
∈ IC n×n
230 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
este unitară şi<br />
S k = Q H k S k−1 Q k =<br />
[<br />
(k) S 11 S (k)<br />
12<br />
0 S (k)<br />
22<br />
este superior triunghiulară în primele k coloane.<br />
Procesul de triangularizare prin transformări unitare de asemănare, iniţiat conform<br />
pasului 1 ◦ şi continuat conform celor prezentate la pasul k ◦ , produce după<br />
n−1 paşi matricea superior triunghiulară<br />
unde matricea<br />
S = Q H AQ,<br />
Q = Q 1 Q 2 ... Q n−1 , (4.76)<br />
este unitară ca produs de matrice unitare.<br />
Evident, ordinea elementelor diagonale ale matricei S poate fi aleasă în mod<br />
arbitrar prin selectarea corespunzătoare a <strong>vectorilor</strong> <strong>proprii</strong> în aplicarea lemei 4.2.<br />
Demonstraţia este completă.<br />
✸<br />
Încheiem paragrafulsubliniind faptul că oricematrice pătrată este unitar asemeneacu<br />
omatricesuperiortriunghiulară. DacămatriceaAeste reală,darareşivalori<br />
<strong>proprii</strong> complexe, atunci forma Schur S este complexă ca şi matricea de transformare<br />
Q. În acest caz se spune că S este forma Schur complexă (FSC) a matricei A.<br />
]<br />
4.2.2 Forma Schur reală<br />
În majoritateaaplicaţiilor încareestenecesarcalculul<strong>valorilor</strong><strong>proprii</strong>, matriceaare<br />
elementele reale. În aceste <strong>si</strong>tuaţii este mult mai eficientă utilizarea unei aritmetici<br />
reale. Pentru aceasta, perechile de valori <strong>proprii</strong> complexe şi perechile de vectori<br />
<strong>proprii</strong>asociaţi(care,dupăcums-amaiprecizat,potficon<strong>si</strong>deraţi, larândullor,sub<br />
forma unor vectori complex conjugaţi) trebuie şi pot fi tratate în mod unitar, într-o<br />
aritmetică reală, prin intermediul unor blocuri matriceale 2 ×2, respectiv al unor<br />
subspaţii A-invariantereale. Corespondentulformei Schurdin cazulcomplex devine<br />
o matrice cva<strong>si</strong>-superior triunghiulară în care perechile de valori <strong>proprii</strong> complex<br />
conjugate sunt evidenţiate prin blocuri diagonale 2×2, numită forma Schur reală.<br />
În acest context vom formula şi, în măsura încare apar aspecte noi, vom demonstra<br />
corespondentele ”reale” ale lemei 4.2 şi teoremei 4.12.<br />
Lema 4.3 (Deflaţie ortogonală) Fie A ∈ IR n×n .<br />
a) Dacă λ ∈ λ(A)∩IR, atunci există o matrice ortogonală Q ∈ IR n×n astfel încât<br />
[ ]<br />
Q T λ S12<br />
AQ = . (4.77)<br />
0 S 22<br />
b) Dacă λ 1,2 = α±iβ ∈ λ(A), β ≠ 0, atunci există o matrice ortogonală Q ∈ IR n×n<br />
astfel încât<br />
[ ]<br />
Q T S11 S<br />
AQ = 12<br />
, (4.78)<br />
0 S 22
4.2. FORMA SCHUR 231<br />
unde<br />
S 11 ∈ IR 2×2 , cu λ(S 11 ) = {λ 1 ,λ 2 }. (4.79)<br />
Demonstraţie. Prima parte a lemei se demonstreazăla fel cu lema 4.2 con<strong>si</strong>derând<br />
o matrice ortogonală Q a cărei primă coloană este un vector propriu de normă<br />
euclidiană unitarăasociat valorii<strong>proprii</strong>λ. Pentruadouaparte a lemei con<strong>si</strong>derăm<br />
vectorii <strong>proprii</strong> x 1,2 = v 1 ± iv 2 asociaţi <strong>valorilor</strong> <strong>proprii</strong> complex conjugate λ 1,2 şi<br />
Y = [y 1 y 2 ] ∈ IR n×2 o bază ortogonală a subspaţiului liniar A-invariant S = ImV,<br />
unde V = [v 1 v 2 ] ∈ IR n×2 şi Z ∈ IR n×(n−2) o bază ortogonală a complementului<br />
ortogonal T = S ⊥ a lui S în IR n 12 . Evident, matricea Q = [Y Z] este ortogonală.<br />
Pe de altă parte, întrucât vectorii v 1 şi v 2 sunt liniar independenţi (vezi propoziţia<br />
4.1), există o matrice ne<strong>si</strong>ngulară P[ ∈ IR 2×2 astfel ] încât V = YP. În consecinţă,<br />
α −β<br />
din (4.14) avem AV = VB cu B = . Rezultă<br />
β α<br />
unde<br />
şi, deci,<br />
A 1 = Q T AQ =<br />
AY = AVP −1 = VBP −1 = YS 11 ,<br />
[<br />
α −β<br />
S 11 = P<br />
β α<br />
[ ]<br />
Y<br />
T<br />
Z T A [ Y Z ] [<br />
Y<br />
=<br />
T AY Y T AZ<br />
0 Z T AZ<br />
]<br />
P −1 . (4.80)<br />
]<br />
=<br />
[ ]<br />
S11 S 12<br />
,<br />
0 S 22<br />
(4.81)<br />
punându-se în evidenţă blocul diagonal de ordinul 2 real S 11 având valorile <strong>proprii</strong><br />
complexe λ 1,2 .<br />
✸<br />
<strong>Calculul</strong> matricei ortogonale de asemănare Q din lema de mai sus este condiţionat<br />
esenţial de cunoaşterea unui vector propriu (real) x asociat valorii <strong>proprii</strong> reale<br />
evidenţiate respectiv a parţii reale <strong>si</strong> a celei imaginare a unui vector propriu asociat<br />
unei valori <strong>proprii</strong> complexe. Altfel spus, po<strong>si</strong>bilitatea deflaţiei este condiţionată de<br />
cunoaşterea subspaţiului A-invariant corespunzător.<br />
Procedând ca în demonstraţia teoremei 4.12, i.e. efectuând deflaţia matricei<br />
A pentru valorile <strong>proprii</strong> reale, respectiv pentru perechile de valori <strong>proprii</strong> complexe,<br />
prin aplicarea <strong>si</strong>stematică a lemei de mai sus, până la epuizarea întregului<br />
spectru şi cumulând transformările ortogonale parţiale, obţinem următorul rezultat<br />
important.<br />
Teorema 4.13 (Forma Schurreală) Oricare ar fi matricea reală A ∈ IR n×n , există<br />
o matrice ortogonală Q ∈ IR n×n astfel încât<br />
⎡ ⎤<br />
S 11 S 12 ··· S 1p<br />
Q T AQ = S = ⎢ 0 S 22 ··· S 2p<br />
⎥<br />
⎣ ··· ··· ··· ··· ⎦ , (4.82)<br />
0 0 ··· S pp<br />
12 Pentru construcţia acestor baze vezi observaţia 4.3.
232 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
unde S ii ∈ IR 1×1 sau S ii ∈ IR 2×2 şi toate blocurile diagonale 2×2 au valorile <strong>proprii</strong><br />
complexe. Avem, evident,<br />
λ(A) = λ(S) =<br />
p⋃<br />
λ(S ii ). (4.83)<br />
Matricea cva<strong>si</strong>-superior triunghiulară S se numeşte forma Schur reală (FSR) a matricei<br />
A, iar coloanele matricei de transformare Q se numesc vectori Schur ai matricei<br />
A asociaţi formei Schur reale S.<br />
Evident, ordinea paşilor de deflaţie fiind arbitrară, forma Schur reală a unei<br />
matrice poate avea blocurile diagonale în orice ordine predeterminată.<br />
Conform (4.83) valorile <strong>proprii</strong> reale ale unei matrice pot fi determinate prin<br />
<strong>si</strong>mplăinspecţieaelementelordiagonalealeformeisaleSchurreale,iarcelecomplexe<br />
se pot calcula prin rezolvarea ecuaţiilor caracteristice (de gradul 2) ale blocurilor<br />
diagonale ale acesteia.<br />
Procedura de deflaţie sugerează o tehnică de calcul a <strong>valorilor</strong> <strong>proprii</strong> ale unei<br />
matrice prin reducerea acesteia la forma Schur (reală). Din păcate, punerea în<br />
evidenţă a fiecărei valori <strong>proprii</strong> nece<strong>si</strong>tă cunoaşterea unui vector propriu asociat,<br />
care, la rândul său, nu poate fi calculat direct fără a cunoaşte valoarea proprie<br />
respectivă. De aceea, procedura de deflaţie trebuie să fie completată cu o metodă<br />
de calcul a unui vector propriu fără cunoaşterea valorii <strong>proprii</strong> asociate.<br />
Metodelecelemaifolo<strong>si</strong>tedecalculiterativalunuivectorpropriusuntcunoscute<br />
sub denumirile de metoda puterii şi metoda puterii inverse.<br />
i=1<br />
4.3 Metoda puterii. Metoda puterii inverse<br />
În această secţiune vom prezenta două modalităţi de construcţie recurentă a unor<br />
şiruri de vectori convergente, în condiţii precizate, către un vector propriu al unei<br />
matrice date. Aceste metode se bazează pe următorul rezultat <strong>si</strong>mplu, a cărui<br />
demonstraţie face obiectul exerciţiului 4.11.<br />
Lema 4.4 Fie o matrice A ∈ IC n×n cu spectrul<br />
λ(A) = {λ 1 ,λ 2 ,...,λ n }. (4.84)<br />
Atuncimatricele A k , k ∈ IN ∗ , A−µI n , µ ∈ IC, şi, în cazul în care A este ne<strong>si</strong>ngulară,<br />
A −1 au aceiaşi vectori <strong>proprii</strong> cu matricea A şi spectrele<br />
λ(A k ) = {λ k 1 ,λk 2 ,...,λk n }, (4.85)<br />
λ(A−µI n ) = {λ 1 −µ,λ 2 −µ,...,λ n −µ}, (4.86)<br />
{ } 1<br />
λ(A −1 1 1<br />
) = , ,..., .<br />
λ 1 λ 2 λ n<br />
(4.87)
4.3. METODA PUTERII. METODA PUTERII INVERSE 233<br />
4.3.1 Metoda puterii<br />
Con<strong>si</strong>derăm o matrice A ∈ IC n×n care are o valoare proprie dominantă, i.e. o valoare<br />
proprie de modul strict superior modulelor tuturor celorlalte. Numerotăm valorile<br />
<strong>proprii</strong> ale matricei A în ordinea descrescătoare a modulelor<br />
|λ 1 | > |λ 2 | ≥ |λ 3 | ≥ ... ≥ |λ n |. (4.88)<br />
Fie y (0) ∈ IC n un vector de normă euclidiană unitară a cărui proiecţie ortogonală<br />
pe ”direcţia” vectorului propriu x 1 asociat valorii <strong>proprii</strong> dominante λ 1 ∈ λ(A) este<br />
nenulă, i.e. x H 1 y(0) ≠ 0. Generic, un vector aleator normat satisface o astfel de<br />
condiţie. Dacă A este o matrice <strong>si</strong>mplă, i.e. există o bază a spaţiului IC n formată<br />
din vectorii <strong>proprii</strong> x 1 , x 2 , ..., x n ai acesteia, atunci y (0) poate fi descompus, în mod<br />
unic, în raport cu acestă bază<br />
unde<br />
y (0) =<br />
n∑<br />
γ i x i , (4.89)<br />
i=1<br />
Dacă definim şirul vectorial (y (k) ) k∈IN prin<br />
γ 1 ≠ 0. (4.90)<br />
y (k) = ρ k Ay (k−1) , k = 1,2,··· (4.91)<br />
cu iniţializarea y (0) şi ρ k un factor de normare definit de<br />
ρ k =<br />
atunci, folo<strong>si</strong>nd inducţia, este uşor de arătat că<br />
1<br />
‖Ay (k−1) ‖ , (4.92)<br />
y (k) = ˜ρ k A k y (0) , (4.93)<br />
unde ˜ρ k este un factor de normare cumulat ˜ρ k = 1/‖A k y (0) ‖. Din (4.89), (4.93) şi<br />
lema 4.2 rezultă<br />
∑ n n<br />
( )<br />
∑<br />
n∑<br />
y (k) = ˜ρ k A k x i = ˜ρ k γ i λ k i x i = ˜ρ k λ k 1 γ 1 x 1 + γ i ( λ i<br />
) k x i . (4.94)<br />
λ 1<br />
i=1<br />
i=1<br />
∣ ∣∣<br />
Utilizând (4.88) obţinem ∣ λi<br />
λ 1<br />
< 1, i = 2 : n, de unde rezultă<br />
şi<br />
i=2<br />
( ) k λi<br />
lim = 0, i = 2 : n, (4.95)<br />
k→∞ λ 1<br />
lim<br />
k→∞ y(k) = γx 1 , (4.96)<br />
în care γ este un scalar nenul astfel încât ‖γx 1 ‖ = 1. Prin urmare, şirul vectorial<br />
construit cu schema de calcul
234 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
MP 1. Pentru k = 1,2,...<br />
1. Se calculează vectorul y (k) = Ay (k−1)<br />
2. y (k) ← y (k) /‖y (k) ‖<br />
bazată pe relaţia de recurenţă (4.91), care defineşte metoda puterii, este convergent<br />
către vectorul propriu (4.95) asociat valorii <strong>proprii</strong> dominante a matricei A. Viteza<br />
de convergenţă este determinată de raportul |λ 2 /λ 1 |, fiind cu atât mai mare cu cât<br />
acest raport este mai mic. În consecinţă, metoda este eficientă în cazul matricelor<br />
care au o valoare proprie net dominantă şi o structură cu multe elemente nule (în<br />
vederea unei implementări eficiente a produsului Ay (k−1) ).<br />
Pentru oprirea iterării este necesar un criteriu care să a<strong>si</strong>gure o precizie de calcul<br />
impusă. Având în vedere faptul că un vector propriu de normă unitară este<br />
determinat până la o multiplicare cu un număr de modul unitar (i.e. e iθ cu θ ∈ IR<br />
în cazul complex şi ±1 în cazul real), un criteriu po<strong>si</strong>bil este a<strong>si</strong>gurarea unei colinearităţi<br />
impuse între vectorii calculaţi la doi paşi consecutivi. Cum, în cazul<br />
complex unghiul dintre doi vectori u şi v este definit de φ(u,v) = arccos<br />
iar în cazul real de φ(u,v) = arccos<br />
v H u<br />
‖u‖·‖v‖<br />
v T u<br />
, condiţia de oprire a iterării poate fi<br />
‖u‖·‖v‖<br />
e k = |1−|(y (k) ) H y (k−1) || < tol, respectiv e k = |1−|(y (k) ) T y (k−1) || < tol,<br />
(4.97)<br />
unde tol esteotoleranţăprescrisă(vezi şiexerciţiul 4.48). Introducândşi abandonul<br />
iterării la atingerea unui număr maxim de iteraţii, obţinem următorul algoritm.<br />
Algoritmul 4.1 (Metoda puterii) (Dată o matrice A ∈ IC n×n , un<br />
niveldetoleranţătol ∈ IR, tol > 1,şiunnumărmaximadmismaxiterde<br />
iteraţii, algoritmul calculează un vector propriu unitar y asociat valorii<br />
<strong>proprii</strong>dominanteamatricei date sautipăreşteun mesajdacăobiectivul<br />
nu a fost atins în numărul de iteraţii admis.)<br />
1. Se alege aleator un vector y ∈ IC n .<br />
2. y ← y/‖y‖<br />
3. i = 0, e = 1<br />
4. C^at timp e > tol<br />
1. Dacă i > maxiter atunci<br />
1. Tipăreşte ’S-a atins numărul maxim de iteraţii fără a se<br />
fi obţinut nivelul prescris al toleranţei.’<br />
2. Stop<br />
2. z = Ay<br />
3. z ← z/‖z‖<br />
4. e = |1−|z H y||<br />
5. y ← z<br />
6. i ← i+1
4.3. METODA PUTERII. METODA PUTERII INVERSE 235<br />
Comentarii. Având în vedere <strong>si</strong>mplitatea relaţiei de recurenţă, metoda puterii<br />
se poate dovedi atractivă dacă se cunoaşte apriori existenţa unei valori <strong>proprii</strong> net<br />
dominante. În caz contrar, viteza de convergenţă poate fi nesatisfăcătoare, iar în<br />
cazul absenţei unei valori <strong>proprii</strong> dominante şirul poate fi divergent. De aceea,<br />
folo<strong>si</strong>nd rezultatele lemei 4.4, trebuie realizate transformări ale matricei A care,<br />
fără a afecta vectorii <strong>proprii</strong>, să creeze o astfel de valoare proprie (net) dominantă.<br />
O po<strong>si</strong>bilitate este de a utiliza o ”deplasare” µ (eventual variabilă µ k ) a spectrului<br />
matricei A astfel încât matricea A−µI n să aibă o valoare proprie (net) dominantă.<br />
În acest caz schema de calcul pentru o iteraţie a metodei puterii cu deplasare devine<br />
MP’ 1. Pentru k = 1,2,...<br />
1. Se calculează vectorul y (k) = (A−µ k )y (k−1) .<br />
2. y (k) ← y (k) /‖y (k) ‖.<br />
Din nefericire, determinarea deplasării µ k efectiv utile nu este deloc <strong>si</strong>mplă, motiv<br />
pentru care această idee este folo<strong>si</strong>tă în paragraful următor pentru rezolvarea<br />
aceleiaşi probleme într-un context modificat.<br />
✸<br />
4.3.2 Metoda puterii inverse<br />
Presupunem din nou că matricea A ∈ IC n×n este <strong>si</strong>mplă având valorile <strong>proprii</strong> λ i ,<br />
i = 1:n (nu neapărat într-o ordine anumită) şi vectorii <strong>proprii</strong> asociaţi x i , i = 1 : n.<br />
Fieµ ∉ λ(A)oaproximaţiealuiλ 1 . Atunci, conformlemei4.4,matricea(µI n −A) −1<br />
are valorile <strong>proprii</strong> (µ−λ i ) −1 , i = 1 : n, şi aceiaşi vectori <strong>proprii</strong> cu cei ai matricei<br />
A. Prin urmare, dacă alegem un vector iniţial y (0) nedefectiv în raport cu x 1 , i.e.<br />
satisfăcând (4.89) şi (4.90), putem defini, utilizând metoda puterii pentru matricea<br />
(µI n −A) −1 , şirul de vectori unitari<br />
y (k) = ρ k (µI −A) −1 y (k−1) , k = 1,2,... (4.98)<br />
unde ρ k este un factor scalar de normare. Acum, dacă deplasarea µ este mult mai<br />
apropiată de λ 1 decât de λ i , i = 2 : n, atunci |(µ − λ 1 ) −1 | va fi mult mai mare<br />
decât |(µ−λ i ) −1 |, i = 2 : n, i.e.,<br />
max i=2:n |(µ−λ i ) −1 |<br />
|(µ−λ 1 ) −1 |<br />
≪ 1, (4.99)<br />
şi, în consecinţă şirul (y (k) ) este foarte rapid convergent către γx 1 .<br />
Relaţia de recurenţă(4.98) defineşte metoda puterii pentru matricea(µI n −A) −1<br />
şi este cunoscută sub denumirea de metoda puterii inverse cu deplasare pentru<br />
matricea A. De<strong>si</strong>gur, pentru calculul iteraţiei (4.98) nu se inversează matricea<br />
µI n −A ci se rezolvă <strong>si</strong>stemul liniar corespunzător, conform următoarei scheme de<br />
calcul, definitorie pentru o iteraţie a metodei puterii inverse.<br />
MPI 1. Pentru k = 1,2,...<br />
1. Se rezolvă <strong>si</strong>stemul (µI n −A)y (k) = y (k−1) în raport cu y (k) .<br />
2. y (k) ← y (k) /‖y (k) ‖.
236 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Rezolvarea <strong>si</strong>stemului liniar din schema de mai sus nece<strong>si</strong>tă un efort de calcul apreciat<br />
la ≈ n 3 /3 operaţii scalare în virgulă mobilă de tipul α∗β+γ, ceea ce reprezintă<br />
un preţ foarte ridicat pentru o <strong>si</strong>ngură iteraţie a procesului de calcul al unui <strong>si</strong>ngur<br />
vector propriu. Din fericire, cel mai adesea metoda se aplică unor matrice având<br />
structura superior Hessenberg ceea ce reduce numărul de operaţii la ≈ n 2 pentru<br />
o iteraţie. Utilizarea unei deplasări constante µ a<strong>si</strong>gură convergenţa către vectorul<br />
propriu asociat valorii <strong>proprii</strong> dominante a matricei (A−µI n ) −1 , i.e. asociat valorii<br />
<strong>proprii</strong> a matricei A celei mai apropiate de deplasarea µ.<br />
În continuare prezentăm o ver<strong>si</strong>une importantă a metodei puterii inverse care<br />
utilizează o deplasare µ k variabilă cu pasul k şi optimală într-un sens precizat.<br />
Conform celor arătate mai sus, deplasarea care a<strong>si</strong>gură cea mai mare viteză de<br />
convergenţăesteegală”cu cea mai bună”aproximaţieauneivalori<strong>proprii</strong>amatricei<br />
A, disponibilă la pasul respectiv. O modalitate cu excelente rezultate practice este<br />
aceea în care această aproximaţie se obţine rezolvând, în sens CMMP, <strong>si</strong>stemul<br />
supradeterminat<br />
y (k−1) µ k = Ay (k−1) (4.100)<br />
de n ecuaţii cu necunoscuta scalară µ k , <strong>si</strong>stem obţinut prin ”actualizarea”, pentru<br />
pasul curent, a relaţiei a<strong>si</strong>mptotice y (∞) µ ∞ = Ay (∞) , care este chiar relaţia de<br />
definiţie a <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong>. Pseudosoluţia în sens CMMP a <strong>si</strong>stemului<br />
(4.100) (vezi cap. 3) este aşa numitul cât Rayleigh al perechii (A,y (k−1) ) definit de<br />
µ k = (y(k−1) ) H Ay (k−1)<br />
‖y (k−1) ‖ 2 = (y (k−1) ) H Ay (k−1) . (4.101)<br />
Având în vedere faptul că această aproximare este din ce în ce mai bună rezultă că<br />
viteza de convergenţă a şirului (y (k) ) k∈IN este din ce în ce mai ridicată. Concret, se<br />
poate demonstra că are loc aşa-numitaconvergenţă pătratică, i.e. există o constantă<br />
τ astfel încât<br />
‖y (k+1) −γx 1 ‖ ≤ τ‖y (k) −γx 1 ‖ 2 . (4.102)<br />
Criteriile practice de trunchiere a şirului construit prin metoda puterii inverse sunt<br />
aceleaşi cu cele utilizate în cadrul algoritmului 4.1. Cu aceste precizări prezentăm<br />
algoritmul de implementare a metodei puterii inverse cu deplasările (4.101).<br />
Algoritmul 4.2 (Metoda puterii inverse cu deplasare Rayleigh)<br />
(Dată o matrice A ∈ IC n×n , un nivel de toleranţă tol ∈ IR, tol < 1, şi un<br />
numărmaxim admismaxiter de iteraţii, algoritmulcalculeazăun vector<br />
propriu unitar y al matricei date sau tipăreşte un mesaj dacă obiectivul<br />
nu a fost atins în numărul admis de iteraţii.)<br />
1. Se alege aleator un vector y ∈ IC n .<br />
2. y ← y/‖y‖<br />
3. i = 0, e = 1<br />
4. C^at timp e > tol<br />
1. Dacă i > maxiter atunci<br />
1. Tipăreşte ’S-a atins numărul maxim de iteraţii fără a se<br />
fi obţinut nivelul prescris al toleranţei.’
4.3. METODA PUTERII. METODA PUTERII INVERSE 237<br />
2. Stop<br />
2. µ = y H Ay<br />
3. Se rezolvă <strong>si</strong>stemul liniar (µI n −A)z = y<br />
4. z ← z/‖z‖<br />
5. e = |1−|z H y||<br />
6. y ← z<br />
7. i ← i+1<br />
Comentarii. Metoda puterii inverse cu deplasare variabilă dată de câtul Rayleigh<br />
reprezintă cea mai bună cale de calcul al unui vector propriu al unei matrice. Convergenţa<br />
pătratică este foarte rapidă (după cum se poate vedea şi din exemplul<br />
4.3). Astfel, e.g. dacă ‖y (0) − γx 1 ‖ ≤ ε şi τ = 1, atunci ‖y (k) − γx 1 ‖ ≤ ε 2k .<br />
Simultan cu calculul vectorului propriu, algoritmul calculează şi valoarea proprie<br />
asociată, dată de valoarea finală a deplasării µ. În vederea obţinerii unei eficienţe<br />
sporite, este utilă transformarea prealabilă a matricei date la o formă (e.g., forma<br />
superior Hessenberg) care să aibă ca efect reducerea efortului de calcul necesar<br />
pentru rezolvarea <strong>si</strong>stemului liniar de la instrucţiunea 4.3. ✸<br />
Metoda puterii Metoda puterii inverse<br />
k e k λ (k)<br />
1 e k µ k = λ (k)<br />
1<br />
0 1.0000000000000 2.0000000000000 1.0000000000000 2.0000000000000<br />
1 0.1055728090001 3.2000000000000 0.1322781687254 2.9411764705882<br />
2 0.0262710088797 3.1481481481482 0.2003991735561 3.0045159755566<br />
3 0.0026194296043 2.8921933085502 0.0000155353785 3.0000169808688<br />
4 0.0006379322733 3.0572569906791 0.0000000000709 3.0000000001717<br />
5 0.0002519147863 2.9922635151170 0.0000000000000 3.0000000000000<br />
6 0.0000549638856 2.9945140858135<br />
7 0.0000060060669 3.0060698628267<br />
8 0.0000014882055 2.9974207755674<br />
9 0.0000006272018 3.0004545082285<br />
.<br />
.<br />
.<br />
23 0.00000000000000 3.0000000351815<br />
Tabelul 4.1: Rezultate numerice privind evoluţia erorii de pas e k şi aproximaţiei<br />
curente λ (k)<br />
1 = (y (k) ) H Ay (k) a valorii <strong>proprii</strong> dominante din exemplul 4.3.<br />
Exemplul 4.3 Se con<strong>si</strong>deră matricea companion<br />
⎡ ⎤<br />
2 3 2 −6<br />
A = ⎢ 1 0 0 0<br />
⎥<br />
⎣ 0 1 0 0 ⎦ ,<br />
0 0 1 0
238 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
având valorile <strong>proprii</strong> (exacte)<br />
λ 1 = 3, λ 2,3 = −1±i, λ 4 = 1.<br />
Un vector propriu exact asociat valorii <strong>proprii</strong> dominante λ 1 = 3 şi, respectiv,<br />
vectorul propriu normat calculat pe baza valorii exacte sunt (verificaţi!)<br />
⎡ ⎤ ⎡ ⎤<br />
999<br />
0.94288089928893<br />
x 1 = ⎢ 333<br />
⎥<br />
⎣ 111 ⎦ , ˜x 1 = x 1<br />
‖x 1 ‖ = ⎢ 0.31429363309631<br />
⎥<br />
⎣ 0.10476454436544 ⎦ .<br />
37<br />
0.03492151478848<br />
Evoluţia erorii curente e k din (4.97) şi a aproximaţiei curente λ 1k a valorii <strong>proprii</strong><br />
dominante, calculate cu metoda puterii şi metoda puterii inverse în variantele algoritmice<br />
4.1 şi 4.2, sunt prezentate în tabelul 4.1, unde au fost utilizate iniţializarea<br />
y (0) = [1 0 0 0] T pentru vectorul propriu şi toleranţa de 1.0×10 −15 . Se verifică<br />
faptul că, în aceleaşi condiţii iniţiale, convergenţa metodei puterii inverse este mult<br />
mai rapidă. Mai mult, valoarea proprie şi vectorul propriu asociat (vezi tabelul<br />
4.2), calculate în aceleaşi condiţii de oprire a iterării (i.e. cu aceeaşi toleranţă) sunt<br />
y (23) =<br />
Metoda puterii<br />
⎡<br />
⎢<br />
⎣<br />
0.94288089793487<br />
0.31429363608802<br />
0.10476454880574<br />
0.03492151110188<br />
⎤<br />
⎥<br />
⎦ y (5) =<br />
Metoda puterii inverse<br />
⎡<br />
⎢<br />
⎣<br />
0.94288089928893<br />
0.31429363309631<br />
0.10476454436544<br />
0.03492151478848<br />
⎤<br />
⎥<br />
⎦<br />
Tabelul 4.2: Vectorii <strong>proprii</strong> calculaţi pentru datele din exemplul 4.3.<br />
sen<strong>si</strong>bil mai precise în cazul metodei puterii inverse (nu se constată nici o diferenţă<br />
în cele 15 cifre semnificative utilizate la afişare faţă de valoarea con<strong>si</strong>derată exactă).<br />
✸<br />
În conformitate cu cele prezentate în această secţiune, problema calculului <strong>valorilor</strong><br />
şi <strong>vectorilor</strong> <strong>proprii</strong> 13 se poate rezolva astfel:<br />
1. Se calculează un vector propriu, utilizând metoda puterii sau metoda<br />
puterii inverse.<br />
2. Se calculează valoarea proprie asociată, utilizând câtul Rayleigh.<br />
3. Se aplică procedura de deflaţie, punând în evidenţă valoarea proprie<br />
calculată şi reducând dimen<strong>si</strong>unea problemei.<br />
4. Dacă nu s-au calculat toate valorile <strong>proprii</strong> se revine la pasul 1.<br />
Această procedură este elegant exprimată, într-o formă implicită, în cadrul unui<br />
algoritm performant, cunoscut în literatura de specialitate sub denumirea de algoritmul<br />
QR.<br />
13 În cadrul procedurii de deflaţie, este vorba de vectorii <strong>proprii</strong> ai matricei (reduse) curente<br />
care, de la al doilea pas, nu mai sunt vectori <strong>proprii</strong> ai matricei iniţiale. Totuşi aceşti vectori<br />
<strong>proprii</strong> pot servi, ulterior, la calculul <strong>vectorilor</strong> <strong>proprii</strong> ai matricei iniţiale (vezi exerciţiul 4.49).
4.4. ALGORITMUL QR 239<br />
4.4 Algoritmul QR<br />
Algoritmul QR este, în esenţă, o procedură de deflaţie iterativă care construieşte<br />
(recurent)unşirdematriceunitarasemeneacu matriceainiţială, şircare, încondiţii<br />
precizate,esteconvergentcătreformaSchur. Încazulrealsepoateimpuneutilizarea<br />
exclu<strong>si</strong>vă a aritmeticii reale. În această <strong>si</strong>tuaţie termenii şirului sunt matrice ortogonal<br />
asemenea, iar limita sa este o formă Schur reală a matricei iniţiale.<br />
În vederea minimizării efortului de calcul, într-o fază preliminară, matricea dată<br />
este adusă, prin transformări de asemănare ce implică un număr (teoretic) finit<br />
şi (practic) rezonabil de mic de operaţii, la cea mai apropiată structură po<strong>si</strong>bilă<br />
de forma Schur (reală). Această structură este forma superior Hessenberg 14 . În<br />
continuare, structura Hessenberg este conservată de recurenţa fazei iterative a algoritmului.<br />
În acest fel, se obţine o importantă reducere a complexităţii unei iteraţii<br />
QR, fapt esenţial în economia algoritmului.<br />
Performanţele deosebite ale algoritmului QR se explică atât prin deciziile teoretice<br />
– cum sunt cele referitoare la maximizarea vitezei de convergenţă – cât şi<br />
prin numeroase decizii ”tehnice” de gestionare structurală optimă pe parcursul<br />
desfăşurării calculului.<br />
În vederea unei prezentări mai clare şi mai concise a algoritmilor din această<br />
secţiune vom folo<strong>si</strong> o serie de proceduri dezvoltate în capitolul 3. Sintaxa utilizată<br />
şi o descriere succintă a acestor proceduri sunt date în tabelul 4.3 15 . Precizăm<br />
că, dacă în apelul acestor proceduri, unii dintre parametrii de ieşire au acelaşi<br />
nume cu unii dintre parametrii de intrare, atunci suprascrierea are loc în interiorul<br />
procedurii respective, cu efecte benefice corespunzătoare pentru economia spaţiului<br />
de memorie necesar. De asemenea, pentru a crea po<strong>si</strong>bilitatea unor comparaţii<br />
corecte a complexităţilor, numărul a<strong>si</strong>mptotic de operaţii aritmetice dat în tabel<br />
este cel corespunzător operaţiilor cu numere reale 16 .<br />
14 Reamintim că matricea H ∈ IC n×n este în formă superior Hessenberg dacă h ij = 0, ∀i > j+1.<br />
15 Atragem atenţia că, din dorinţa de a prezenta cât mai unitar şi mai limpede algoritmii<br />
din capitolele 4, 5 şi 6, procedurile din tabelul 4.3 au denumirile şi <strong>si</strong>ntaxele po<strong>si</strong>bil diferite de<br />
cele introduse în capitolul 3. Evident, pentru o implementare performantă a acestor proceduri<br />
(acurateţe maximă, memorare optimă etc.) vor fi urmate recomandările date în capitolul 3. Facem,<br />
de asemenea, precizarea că reflectorii complecşi utilizaţi în algoritmii din capitolele 4, 5 şi 6 sunt, în<br />
exclu<strong>si</strong>vitate, reflectori hermitici. Acolo unde utilizarea reflectorilor nehermitici oferă o alternativă<br />
de calcul viabilă (cum este cazul unor algoritmi din capitolul 5), ver<strong>si</strong>unile respective fac obiectul<br />
unor exerciţii.<br />
16 În cadrul algoritmilor care operează cu numere complexe evaluarea numărului a<strong>si</strong>mptotic de<br />
operaţii aritmetice s-a realizat cu următoarele corespondenţe:<br />
Operaţie cu numere complexe Operaţii cu numere reale<br />
adunare/scădere 2<br />
înmulţire 6<br />
împărţire 11.<br />
Totuşi, chiar cu acceptarea aritmeticii complexe, acolo unde economia de efort de calcul este evidentă,<br />
evaluarea s-a făcut con<strong>si</strong>derându-se că s-au utilizat explicit operaţiile aritmetice cu numere<br />
reale. Astfel, de exemplu, pentru un vector x ∈ IC n , ‖x‖ 2 2 se calculează cu expre<strong>si</strong>a ‖x‖2 2 =<br />
= ‖Rex‖ 2 2 + ‖Imx‖2 2 şi nu folo<strong>si</strong>nd ‖x‖2 2 = xH x = ∑ n<br />
i=1 ¯x ix i , realizându-se un efort de 4n flopi<br />
în loc de 7n flopi. Precizăm, de asemenea, că evaluările numărului de operaţii nu includ operaţii<br />
conexe cum ar fi scalarea.
240 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Sintaxa Intrări Ieşiri Descriere N op<br />
b ∈ IR n <strong>Calculul</strong> unui reflector real<br />
[b,u,β] = Hr(a) a ∈ IR n u ∈ IR n U 1 = I n −uu T /β astfel 2n<br />
β ∈ IR încât (b = U 1a)(2 : n) = 0.<br />
b ∈ IC n <strong>Calculul</strong> unui reflector com-<br />
[b,u,β] = Hc(a) a ∈ IC n u ∈ IC n plex U 1 = I n −uu H /β astfel 4n<br />
β ∈ IR încât (b = U 1a)(2 : n) = 0.<br />
u ∈ IR n Înmulţirea la stânga a ma-<br />
B = Hrs(u,β,A) β ∈ IR B ∈ IR n×m tricei A cu reflectorul real 4nm<br />
A ∈ IR n×m U 1 = I n −uu T /β, i.e.<br />
B = U 1A.<br />
A ∈ IR m×n Înmulţirea la dreapta a ma-<br />
B = Hrd(A,u,β) u ∈ IR n B ∈ IR m×n tricei A cu reflectorul real 4mn<br />
β ∈ IR U 1 = I n −uu T /β, i.e.<br />
B = AU 1.<br />
u ∈ IC n Înmulţirea la stânga a ma-<br />
B = Hcs(u,β,A) β ∈ IR B ∈ IC n×m tricei A cu reflectorul com- 14nm<br />
A ∈ IC n×m plex U 1 = I n −uu H /β,<br />
i.e. B = U 1A.<br />
A ∈ IC m×n Înmulţirea la dreapta a ma-<br />
B = Hcd(A,u,β) u ∈ IC n B ∈ IC m×n tricei A cu reflectorul com- 14mn<br />
β ∈ IR plex U 1 = I n −uu H /β,<br />
i.e. B = AU 1.<br />
b ∈ IR 2 <strong>Calculul</strong> unei rotaţii reale P,<br />
[b,c,s] = Gr(a) a ∈ IR 2 c ∈ IR de ordinul 2, astfel încât 6<br />
s ∈ IR (b = P T a)(2) = 0.<br />
b ∈ IC 2 <strong>Calculul</strong> unei rotaţii comple-<br />
[b,c,s] = Gc(a) a ∈ IC 2 c ∈ IR xe P, de ordinul 2, astfel încât 18<br />
(b = P H a)(2) = 0.<br />
c ∈ IR Înmulţirea la stânga a matri-<br />
B = Grs(c,s,A) s ∈ IR B ∈ IR 2×m cei A cu P T , i.e. B = P T A, 6m<br />
A ∈ IR 2×m unde P este o rotaţie reală<br />
de ordinul 2.<br />
A ∈ IR m×2 Înmulţirea la dreapta a ma-<br />
B = Grd(A,c,s) c ∈ IR B ∈ IR m×2 tricei A cu rotaţia reală de 6m<br />
s ∈ IR ordinul 2 P, i.e. B = AP.<br />
c ∈ IR Înmulţirea la stânga a matri-<br />
B = Gcs(c,s,A) s ∈ IC B ∈ IC 2×m cei A cu P H , i.e. B = P H A, 26m<br />
A ∈ IC 2×m unde P este o rotaţie complexă<br />
de ordinul 2.<br />
A ∈ IC m×2 Înmulţirea la dreapta a ma-<br />
B = Gcd(A,c,s) c ∈ IR B ∈ IC m×2 tricei A cu rotaţia complexă 26m<br />
s ∈ IC P de ordinul 2, i.e. B = AP.<br />
Tabelul 4.3: Proceduri utilizate pentru scrierea algoritmilor din capitolele 4, 5 şi<br />
6. Evaluarea numărului a<strong>si</strong>mptotic de operţii N op s-a efectuat în flopi cu numere<br />
reale, pentru operaţiile cu numere complexe utilizându-se echivalările din nota de<br />
subsol alăturată. Nu au fost incluse eventuale operaţii de scalare pentru evitarea<br />
depăşirilor în format virgulă mobilă.
4.4. ALGORITMUL QR 241<br />
4.4.1 Reducerea la forma superior Hessenberg<br />
Este binecunoscută teorema conform căreia rezolvarea ecuaţiilor algebrice generale<br />
de grad superior lui patru nu este po<strong>si</strong>bilă printr-o secvenţă finită de operaţii aritmetice<br />
(inclu<strong>si</strong>v extrageri de radical). Întrucât calculul <strong>valorilor</strong> <strong>proprii</strong> este echivalent<br />
cu rezolvarea ecuaţiei caracteristice, deducem că nu există un algoritm direct<br />
care să reducă o matrice dată, de ordin superior lui patru, la o formă mai<br />
”apropiată” de forma Schur decât forma Hessenberg şi care, în acelaşi timp, să<br />
conserve valorile <strong>proprii</strong>.<br />
Po<strong>si</strong>bilitatea reducerii unei matrice A ∈ IC n×n la forma superior Hessenberg, cu<br />
conservarea <strong>valorilor</strong> <strong>proprii</strong>, este dată de următorul rezultat.<br />
Teorema 4.14 Oricare ar fi matricea A ∈ IC n×n , există o matrice unitară Q ∈<br />
∈ IC n×n , calculabilă printr-o secvenţă finită de operaţii aritmetice, astfel încât matricea<br />
H = Q H AQ (4.103)<br />
este superior Hessenberg.<br />
În cazul real matricele H şi Q sunt reale, i.e. matricea Q este ortogonală.<br />
Demonstraţie. Vom da o demonstraţie constructivă bazată pe următoareaschemă<br />
de calcul<br />
HQ 1. Pentru k = 1 : n−2<br />
1. Se calculează un reflector elementar (complex) U k+1<br />
astfel încât (Uk+1 H A)(k +2 : n,k) = 0.<br />
2. A ← Uk+1 H A<br />
3. A ← AU k+1<br />
care suprascrie matricea A cu matricea<br />
Notând<br />
A ← H = U H n−1···UH 3 UH 2 AU 2U 3···U n−1 . (4.104)<br />
Q = U 2 U 3···U n−1 (4.105)<br />
avem Q H = U n−1···UH H 3 UH 2 şi, în consecinţă, (4.104) poate fi scrisă în forma<br />
(4.103). Rămâne de arătat că schema de calcul de mai sus creazăefectiv o structură<br />
superior Hessenberg. Vom aplica un procedeu bazat pe inducţie finită.<br />
Pasul 1 ◦ . Există un reflector elementar (complex) U 2 de ordinul n astfel încât<br />
(U2 H A)(3:n,1) = 0 (vezi cap. 3), care realizează structura superior Hessenberg în<br />
prima coloană. Matricea U 2 are structura<br />
[ ] 1 0<br />
U 2 = . (4.106)<br />
0 Ũ 2<br />
Prinurmare, postmultiplicareamatriceiU H 2 A cu U 2 nu modifică prima coloanăa lui<br />
U H 2 A, i.e. zerourile create în prima coloană a lui U H 2 A sunt conservate în U H 2 AU 2 .
242 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Pasul k ◦ . Presupunem că în cadrul primilor k −1 paşi (k < n−1) am obţinut<br />
o matrice având o structură superior Hessenberg în primele k −1 coloane:<br />
A ← A k<br />
def<br />
= U H k ···U H 2 AU 2···U k . (4.107)<br />
Acum, există un reflector elementar U k+1 astfel încât (Uk+1 H A)(k +2:n,k) = 0, i.e.<br />
premultiplicarea cu Uk+1 H creează structura superior Hessenberg în coloana k fără<br />
să afecteze structura de zerouri din primele k −1 coloane. Mai mult, structura<br />
[ ]<br />
Ik 0<br />
U k+1 =<br />
(4.108)<br />
0 Ũ k+1<br />
a reflectorului utilizat la acest pas, ne a<strong>si</strong>gură, de asemenea, că postmultiplicarea<br />
cu U k+1 nu afectează nici una din primele k coloane ale matricei (Uk+1 H A k).<br />
Prin urmare, schema de calcul prezentată la începutul demonstraţiei realizează<br />
reducerea matricei date la forma superior Hessenberg prin transformarea unitară<br />
de asemănare (4.104).<br />
În cazul real demonstraţia este identică cu precizarea că transformarea ortogonală<br />
de asemănare este un produs de reflectori reali. Caracterul finit al calculului<br />
este evident.<br />
✸<br />
Utilizând procedurile din tabelul 4.3, demonstraţia de mai sus conduce imediat<br />
la următorul algoritm.<br />
Algoritmul 4.3 (HQc – Reducerea la forma superior Hessenberg)<br />
(Date o matrice A ∈ IC n×n şi o matrice unitară Q ∈ IC n×n , algoritmul<br />
calculează o secvenţă de reflectori (complecşi) U 2 , U 3 , ···, U n−1 astfel<br />
încât matricea transformată A ← H = U H n−1···UH 3 UH 2 AU 2U 3···U n−1<br />
este în forma superior Hessenberg. Opţional se calculează actualizarea<br />
matricei de transformare, i.e. Q ← QU 2 U 3···U n−1 . Opţiunea se exprimă<br />
prin intermediul unei variabile logice opt de tipul şir de caractere<br />
ce poate lua valorile ′ da ′ sau ′ nu ′ . Dacă opt = ′ nu ′ , matricea Q rămâne<br />
nemodificată.)<br />
1. Pentru k = 1 : n−2<br />
1. [A(k +1 : n,k),u,β] = Hc(A(k +1 : n,k))<br />
2. A(k +1 : n,k +1 : n) = Hcs(u,β,A(k +1 : n,k +1 : n))<br />
3. A(1 : n,k +1 : n) = Hcd(A(1 : n,k +1 : n),u,β)<br />
4. Dacă opt = ′ da ′ atunci<br />
Q(1 : n,k +1 : n) = Hcd(Q(1 : n,k +1 : n),u,β)<br />
Comentarii. Pentru apelul algoritmului HQc va fi utilizată <strong>si</strong>ntaxa generală<br />
[H,V ] = HQc(A,Q,opt),<br />
careexprimăpo<strong>si</strong>bilitatea de a memorarezultatele înalte tablouridecât cele iniţiale<br />
deşi calculele se fac cu suprascrierea internă a matricei iniţiale şi a matricei de<br />
transformare. Sintaxa propusă mai sus se poate dovedi utilă în a<strong>si</strong>gurarea unei
4.4. ALGORITMUL QR 243<br />
prezentări clare a procedurilor care utilizează algoritmul HQc. De exemplu, apelul<br />
[A,U ] = HQc(A,I n , ′ da ′ ) calculează, pe loc, reducerea la forma Hessenberg şi<br />
creează matricea de transformare din (4.104).<br />
În cazul real reflectorii utilizaţi vor fi reali şi, în consecinţă, matricea Hessenberg<br />
rezultată va fi reală. Întrucât această particularizare se obţine pur şi <strong>si</strong>mplu<br />
înlocuind identificatorii procedurilor ”complexe” cu cei ai procedurilor ”reale” corespunzătoare,<br />
ne mărginim să precizăm <strong>si</strong>ntaxa de apel cu care această variantă va<br />
fi folo<strong>si</strong>tă în continuare:<br />
[H,V ] = HQr(A,Q,opt).<br />
Complexitatea algoritmului este O(n 3 ), execuţia sa implicând N op ≈ 10n 3 /3<br />
operaţii cu numere complexe în format virgulă mobilă. Acumularea matricei de<br />
transformare nece<strong>si</strong>tă N ′ op ≈ 4n3 /3 operaţii suplimentare. Algoritmul HQ este numeric<br />
stabil, i.e. matricea superior Hessenberg calculată într-o aritmetică în virgulă<br />
mobilă este o matrice exact unitar (ortogonal) asemenea cu o matrice uşor perturbată<br />
A+E, unde matricea de perturbaţie E satisface condiţia ‖E‖ ≤ p(n)ε M ‖A‖,<br />
cu p(n) o funcţie cu creştere ”modestă” de dimen<strong>si</strong>unea n a problemei. ✸<br />
Observaţia 4.4 Pentru obţinerea formei Hessenberg se pot utiliza şi transformări<br />
deasemănareneunitare(neortogonale). Într-adevăr,folo<strong>si</strong>ndtransformărigaus<strong>si</strong>ene<br />
elementare stabilizate M k P k , k = 2 : n − 1, unde M k este o matrice inferior triunghiulară<br />
elementară, iar P k este o matrice de permutare elementară (v. cap.2),<br />
determinate corespunzător pentru anularea elementelor k +1 : n din coloana k −1<br />
a matricei curente, matricea<br />
H = M n−1 P n−1 ...M 2 P 2 AP 2 M −1<br />
2 ...P n−1 M −1<br />
n−1<br />
va fi superior Hessenberg. O implementare îngrijită a secvenţei de transformări de<br />
mai sus conduce la un efort de calcul redus la jumătate faţa de cel necesar pentru<br />
execuţia algoritmului HQ. Detaliile algoritmului fac obiectul exerciţiului 4.50.<br />
Anumite reţineri existente în utilizarea acestei soluţii sunt datorate unor po<strong>si</strong>bile<br />
instabilităţi numerice (a căror existenţă este dovedită teoretic, dar care apar foarte<br />
rar în practică) precum şi unor dificultăţi în analiza erorilor, dificultăţi induse de<br />
faptul că transformările neunitare (neortogonale) nu conservă condiţionarea <strong>valorilor</strong><br />
<strong>proprii</strong>.<br />
✸<br />
4.4.2 Faza iterativă a algoritmului QR<br />
Etapa iterativă a algoritmului QR utilizează, într-o manieră implicită, metodele<br />
puterii şi puterii inverse pentru reducerea unei matrice la forma Schur (reală). Deşi<br />
implementările profe<strong>si</strong>onale ale algoritmului QR utilizează, în exclu<strong>si</strong>vitate, din<br />
motive de eficienţă calculatorie (în cazul matricelor reale), varianta cu deplasare<br />
implicită cu pas dublu, din raţiuni pedagogice vom prezenta şi variantele cu deplasare<br />
explicită.
244 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
A. Algoritmul QR cu deplasare explicită<br />
PresupunemcămatriceaH ∈ IC n×n areostructurăsuperiorHessenberg. Algoritmul<br />
QR cu deplasare explicită construieşte un şir de matrice<br />
H = H 1 ,H 2 ,···,H k ,H k+1 ,··· (4.109)<br />
pe baza relaţiei de recurenţă<br />
{<br />
Hk −µ k I n = Q k R k<br />
H k+1 = R k Q k +µ k I n<br />
, k = 1,2,···, H 1 = H, (4.110)<br />
unde scalarul µ k , denumit deplasare, este folo<strong>si</strong>t pentru a<strong>si</strong>gurarea convergenţei. În<br />
prima relaţie (4.110) matricea H k −µ k I n este factorizată QR, i.e. scrisă sub forma<br />
unui produs dintre matricea unitară Q k şi matricea superior triunghiulară R k (vezi<br />
cap.3). În relaţia a doua din (4.110) matricea succesor H k+1 se obţine înmulţind<br />
matricele Q k şi R k în ordine inversă şi anulând deplasarea prin adunarea matricei<br />
µ k I n . Şirul (4.109), generat de (4.110), este denumit şirul QR. Corespunzător,<br />
tranziţia H k → H k+1 se numeşte un pas sau o transformare QR.<br />
Principalele proprietăţi ale şirului QR sunt date de următoarea propoziţie.<br />
Propoziţia 4.3 a) Dacă matricea iniţială H 1 = H a şirului matriceal QR este<br />
superior Hessenberg, atunci toate matricele şirului au aceeaşi structură. Altfel spus,<br />
structura Hessenberg este invariantă la transformările QR.<br />
b) Toate matricele şirului QR sunt unitar asemenea şi, prin urmare, au acelaşi<br />
spectru de valori <strong>proprii</strong>.<br />
În cazul real afirmaţiile de mai sus rămân valabile dacă în locul operatorului<br />
hermitic, de transpunere şi conjugare, se utilizează operatorul de transpunere.<br />
Demonstraţie. a) Dacă H k din (4.110) este o matrice superior Hessenberg, aceeaşi<br />
structură o are şi matricea H k −µ k I n . Algoritmul de factorizareQR (v. cap.3) aplicat<br />
matricei superior Hessenberg H k −µ k I n produce o matrice unitară Q k superior<br />
Hessenberg 17 . Întrucât R k este superior triunghiulară rezultă că matricea unitară<br />
Q k este, de asemenea, superiorHessenberg. Cum produsul dintreomatricesuperior<br />
triunghiulară şi o matrice superior Hessenberg este o matrice superior Hessenberg<br />
(verificaţi!) rezultă că R k Q k este superior Hessenberg şi, evident, aceeaşi structură<br />
o are şi matricea H k+1 . Prin inducţie, dacă H 1 = H este superior Hessenberg,<br />
atunci toate matricele H k ,k = 2,3,... sunt matrice superior Hessenberg.<br />
b) Din prima relaţie (4.110) avem<br />
R k = Q H k (H k −µ k I n ), (4.111)<br />
care, introdusă în cea de a doua relaţie (4.110), conduce la<br />
H k+1 = Q H k (H k −µ k I n )Q k +µ k I n = Q H k H kQ k , (4.112)<br />
17 Dacă µ k ∉ λ(H k ) (care este cazul curent), atunci matricea superior triunghiulară R k este<br />
ne<strong>si</strong>ngulară şi matricea Q k este, în mod necesar, superior Hessenberg.
4.4. ALGORITMUL QR 245<br />
i.e. H k+1 şi H k sunt unitar asemenea şi au acelaşi spectru. Aplicând (4.112) în<br />
mod repetat obţinem<br />
H k = Q H k−1 QH k−2···QH 1 H 1Q 1···Q k−2 Q k−1 = ˜Q H k H ˜Q k , (4.113)<br />
unde<br />
˜Q k = Q 1 Q 2···Q k−1 (4.114)<br />
este o matrice unitară (ca produs de matrice unitare). Prin urmare, toate matricele<br />
din şirul QR sunt unitar asemenea şi, în consecinţă, au acelaşi spectru. Transformarea<br />
unitară cumulată (4.114) poate fi construită recurent cu relaţia<br />
˜Q k+1 = ˜Q k Q k , k = 1,2,···, ˜Q1 = I n . (4.115)<br />
Propoziţia este demonstrată.<br />
✸<br />
În continuare, vom arăta că, prin alegerea adecvată a deplasărilor µ k , k =<br />
= 1,2,..., înafaraunor<strong>si</strong>tuaţiipatologice(veziexemplul4.4), şirulQResteconvergent<br />
către forma Schur (reală). Mai precis, vom arăta că, în primul rând, elementul<br />
extradiagonal al ultimei linii a matricei H k se anulează a<strong>si</strong>mptotic pentru k → ∞.<br />
Mai mult, generic, toate elementele subdiagonale, cu viteze diferite, au tendinţa de<br />
anulare. Argumentele sunt următoarele.<br />
(i) Cu o alegere adecvată a deplasărilor µ k , şirul QR implementează, într-o<br />
formă implicită, o ver<strong>si</strong>une a metodei puterii inverse cu deplasare Rayleigh şi, în<br />
consecinţă, a<strong>si</strong>gură o convergenţă pătratică a ultimei coloane a matricei de transformare<br />
cumulate ˜Q k către un vector propriu al matricei H H ceea ce are ca efect<br />
anularea a<strong>si</strong>mptotică a elementului H k (n,n−1).<br />
Pentru a justifica această afirmaţie observăm mai întâi faptul că din relaţiile<br />
(4.111), (4.113) şi (4.115) rezultă<br />
R k = Q H k (˜Q H k H ˜Q k −µ k I n ) = Q H k ˜Q H k (H−µ kI n )˜Q k = ˜Q H k+1 (H−µ kI n )˜Q k , (4.116)<br />
de unde<br />
R k ˜QH k = ˜Q H k+1 (H −µ kI n ). (4.117)<br />
Putem scrie acum dependenţa dintre ultimele coloane ˜q n<br />
(k+1) şi ˜q n (k) ale matricelor<br />
˜Q k+1 şi, respectiv, ˜Q k . Într-adevăr, prin transpunerea şi conjugarea relaţiei (4.117)<br />
se obţine<br />
˜Q k Rk H = (H H − ¯µ k I n )˜Q k+1 , (4.118)<br />
este inferior triunghiulară, ega-<br />
unde ¯µ k este conjugata deplasării µ k . Întrucât RH k<br />
litatea ultimelor coloane din (4.118) conduce la<br />
¯r (k)<br />
nn˜q(k) n = (HH − ¯µ k I n )˜q (k+1)<br />
n (4.119)<br />
sau, dacă µ k ∉ λ(H),<br />
˜q (k+1)<br />
n<br />
= ¯r (k)<br />
nn(H H − ¯µ k I n )<br />
−1˜q<br />
(k)<br />
n , (4.120)
246 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
unde ¯r nn (k) este conjugatul lui r nn. (k) Relaţia (4.120) defineşte iteraţia puterii inverse<br />
pentru determinarea unui vector propriu al matricei H H . În continuare vom arăta<br />
că dacă ultima coloană a matricei unitare de transformare este un vector propriu al<br />
matricei H H atunci elementele extradiagonale ale ultimei linii ale matricei H se a-<br />
nulează, <strong>si</strong>milar cu procedurastandard de deflaţie. Pentru aceastareamintim faptul<br />
că valorile <strong>proprii</strong> ale matricei H H sunt conjugatele <strong>valorilor</strong> <strong>proprii</strong> ale matricei H<br />
şi con<strong>si</strong>derăm transformarea unitară definită de matricea<br />
cu v n un vector propriu al matricei H H , i.e.<br />
˜Q = [ ˆQ vn<br />
]<br />
, (4.121)<br />
H H v n = ¯λ n v n , cu λ n ∈ λ(H). (4.122)<br />
Atunci, din (4.121) şi (4.122) avem<br />
{<br />
v<br />
H<br />
n H ˆQ = λ n v H n ˆQ = 0,<br />
v H n Hv n = λ n v H n v n = λ n ,<br />
(4.123)<br />
de unde rezultă<br />
[<br />
˜Q H H ˜Q<br />
ˆQH<br />
=<br />
v T n<br />
]<br />
H [ [<br />
] ˆQ ˆQH H ˆQ ˆQ ] [ ]<br />
H Hv<br />
vn =<br />
n Ĥ h<br />
H<br />
vn H H ˆQ vn H = .<br />
Hv n 0 λ n<br />
(4.124)<br />
Viteza pătraticăde convergenţăavectoruluicoloană ˜q n (k) din (4.120)cătreun vector<br />
propriu al matricei H H poate fi obţinută alegând pentru deplasarea ¯µ k valoarea<br />
(4.101) a câtului Rayleigh<br />
¯µ k = (˜q(k) n ) H H<br />
(˜q n (k) )<br />
respectiv,<br />
H˜q<br />
(k)<br />
n<br />
(k) H˜q n<br />
= (˜q n (k) ) H (k)<br />
H<br />
H˜q n = e T ˜Q n H k H H ˜Qk e n = e T nHk H (k)<br />
e n = ¯h nn,<br />
µ k = h (k)<br />
nn. (4.125)<br />
Alegerea (4.125) a deplasării originii garantează o rată excelentă de convergenţă<br />
a şirului QR către forma Schur în ultima linie, i.e. de anulare a<strong>si</strong>mptotică a<br />
elementului h (k)<br />
n,n−1 . Când elementul h(k) satisface o condiţie de forma<br />
n,n−1<br />
|h (k)<br />
n,n−1 | < tol(|h(k)<br />
n−1,n−1 |+|h(k) nn<br />
|), (4.126)<br />
unde tol este un nivel prescris de toleranţă, putem con<strong>si</strong>dera că h (k)<br />
n,n−1 este numeric<br />
neglijabil şi îl putem anula efectiv. Astfel h (k)<br />
nn devine o valoare proprie calculată a<br />
lui H. După această operaţie, dimen<strong>si</strong>unea problemei s-a redus cu o unitate.<br />
(ii) Şirul QR implementează <strong>si</strong>multan o ver<strong>si</strong>une a metodei puterii cu deplasare.<br />
Astfel, în acelaşi timp, şirul QR pune a<strong>si</strong>mptotic în evidenţă, chiar dacă<br />
cu o viteză mai redusă, şi alte valori <strong>proprii</strong> pe diagonala matricei curente a şirului.
4.4. ALGORITMUL QR 247<br />
Într-adevăr, din (4.116), avem<br />
˜Q k+1 R k = (H −µ k I n )˜Q k . (4.127)<br />
Egalitatea primelor coloane ale matricelor din (4.121) conduce la<br />
˜Q k+1 r (k)<br />
1 = (H −µ k I n )˜q (k)<br />
1 , (4.128)<br />
unde ˜q (k)<br />
1 = ˜Q k e 1 este prima coloană a matricei ˜Qk şi r (k)<br />
1 = R k e 1 este prima<br />
coloană a matricei R k . Întrucât R k este superior triunghiulară, avem r (k)<br />
1 = r (k)<br />
11 e 1<br />
şi, deci, (4.128) poate fi scrisă în forma echivalentă<br />
˜q (k+1)<br />
1 = 1<br />
r (k)<br />
11<br />
(H −µ k I n )˜q (k)<br />
1 , (4.129)<br />
care exprimă recurenţa ce defineşte metoda puterii pentru calculul unui vector propriu<br />
al matricei H, utilizând un parametru scalar de deplasare µ k . Conform celor<br />
arătate în secţiunea 4.3, dacă µ k evoluează astfel încât matricea H − µ k I n are o<br />
valoare proprie dominantă atunci prima coloană a matricei unitare de transformare<br />
˜Q k converge către un vector propriu asociat acestei valori <strong>proprii</strong>. În conformitate<br />
cuproceduradedeflaţie(vezisecţiunea4.2)primacoloanăamatricei ˜Q H k H ˜Q k = H k<br />
converge către prima coloană a formei Schur a lui A, i.e. elementul subdiagonal din<br />
prima coloană a lui H se anulează a<strong>si</strong>mptotic. Viteza de convergenţă depinde de<br />
evoluţia modulului raportului primelor două valori <strong>proprii</strong> (enumerate în ordinea<br />
descrescătoare a modulelor) ale matricei H −µ k I n .<br />
Având în vedere faptul că cele două procese de deflaţie au loc <strong>si</strong>multan şi că,<br />
odată luată decizia de neglijare a elementelor subdiagonale suficient de mici, dimen<strong>si</strong>unea<br />
problemei de calcul scade, o experienţă numerică destul de con<strong>si</strong>stentă<br />
a condus la evaluarea că, în mod obişnuit, pentru calculul unei valori <strong>proprii</strong> a unei<br />
matrice Hessenberg sunt suficiente, în medie, 1.5-2 iteraţii QR. Această viteză de<br />
convergenţăexcepţionalăsedatoreazăfaptului, constatatexperimental, căodatăcu<br />
elementele subdiagonale din ultima linie şi prima coloană, toate celelalte elemente<br />
subdiagonale au tendinţa de anulare a<strong>si</strong>mptotică.<br />
Pe de altă parte, aşa cum s-a precizat, şirul QR nu converge întotdeauna, existând<br />
<strong>si</strong>tuaţii în care elementele subdiagonale, inclu<strong>si</strong>v cel de pe poziţia (n,n−1),<br />
nu se anulează a<strong>si</strong>mptotic. În practica numerică astfel de <strong>si</strong>tuaţii sunt rare, ”patologice”,<br />
şi se pot lua măsuri care să le facă extrem de rare. Prezentăm în continuare<br />
un astfel de caz.<br />
Exemplul 4.4 Se con<strong>si</strong>deră matricea H ∈ IR 4×4 în formă superior Hessenberg<br />
⎡ ⎤<br />
0 0 0 1<br />
H = ⎢ 1 0 0 0<br />
⎥<br />
⎣ 0 1 0 0 ⎦ ,<br />
0 0 1 0<br />
având valorile <strong>proprii</strong> (exacte), ordonate arbitrar,<br />
λ 1 = −1, λ 2,3 = ±i, λ 4 = 1.
248 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
k<br />
µ 1 = 0.001<br />
h (k)<br />
21<br />
h (k)<br />
32<br />
h (k)<br />
43<br />
1 1.00000000000000 1.00000000000000 1.00000000000000<br />
2 0.99999900000088 0.99999999999950 0.99999949999887<br />
3 0.99999800000800 0.99999999999800 0.99999799999200<br />
.<br />
.<br />
11 0.89589063292443 0.99770241027003 0.86085664887513<br />
12 0.74524339988451 0.99080233083311 0.48323652626445<br />
13 0.58630453030022 0.99453900211462 0.04719725489411<br />
14 0.44579447911603 0.99846792286246 0.00003625307539<br />
15 0.32803260297652 0.99959510209257 0.00000000000002<br />
16 0.23685107105612 0.99989584829055 0.00000000000000<br />
.<br />
.<br />
.<br />
.<br />
25 0.01069551270948 0.99999999959102 0<br />
.<br />
.<br />
.<br />
.<br />
50 0.00000184648291 1.00000000000000 0<br />
.<br />
.<br />
.<br />
.<br />
100 0.00000000000006 1.00000000000000 0<br />
.<br />
.<br />
Tabelul 4.4: Rezultate numerice pentru exemplul 4.4 privind evoluţia elementelor<br />
subdiagonale h (k)<br />
i+1,i , i = 1:3, ale matricelor H k cu iniţializarea µ 1 = 0.001 ≠ 0 a<br />
deplasării.
4.4. ALGORITMUL QR 249<br />
Se observă că H este o matrice ortogonală (de permutare). De asemenea nu este<br />
greu de văzut că şirul QR construit cu relaţiile (4.110) cu deplasările (4.125) lasă<br />
matricea H nemodificată, i.e.<br />
H k = H, k = 1,2,...<br />
def<br />
Într-adevăr, fie H 1 = H. Avem µ 1 = h 44 = 0, deci H 1 − µ 1 I 4 = H 1 . Cum H 1<br />
este ortogonală, o factorizare QR a lui H 1 se obţine pentru Q 1 = H 1 şi R 1 = I 4 .<br />
Rezultă H 2 = H 1 şi, prin inducţie, se obţine relaţia de mai sus pentru toţi k.<br />
Evoluţia elementelor subdiagonale h (k)<br />
i+1,i , i = 1 : 3, ale matricelor H k pentru<br />
iniţializarea µ 1 = 0.001 ≠ 0 a deplasării este prezentată în tabelul 4.4, iar pentru<br />
iniţializarea ”recomandată” µ 1 = 2 ≠ 0 a deplasării este prezentată în tabelul 4.5,<br />
din care se poate observa viteza diferită de anulare a<strong>si</strong>mptotică a elementelor h 43<br />
k<br />
µ 1 = 2<br />
h (k)<br />
21<br />
h (k)<br />
32<br />
h (k)<br />
43<br />
1 1.00000000000000 1.00000000000000 1.00000000000000<br />
2 0.91651513899117 0.98169181562325 −0.80868982852162<br />
3 0.78445125612917 0.97895246315181 −0.34595766230725<br />
4 0.63665525316291 0.99162466881300 −0.01531773203215<br />
5 0.49164479289711 0.99761224919910 −0.00000122920448<br />
6 0.36518170914743 0.99936015720678 −0.00000000000000<br />
.<br />
.<br />
.<br />
.<br />
25 0.00053197970928 1.00000000000000 0<br />
.<br />
.<br />
.<br />
.<br />
50 0.00000009183752 1.00000000000000 0<br />
.<br />
.<br />
.<br />
.<br />
100 0.000000000000000 1.00000000000000 0<br />
Tabelul 4.5: Rezultate numerice pentru exemplul 4.4 privind evoluţia elementelor<br />
subdiagonale h (k)<br />
i+1,i , i = 1 : 3, ale matricelor H k cu iniţializarea µ 1 = 2 ≠ 0 a<br />
deplasării.<br />
şi h 21 şi evidenţierea <strong>valorilor</strong> <strong>proprii</strong> reale λ 1 şi λ 4 în poziţiile diagonale 11 şi 44 .<br />
Iterând de un număr suficient de ori cititorul interesat va avea confirmarea faptului<br />
că limita şirului QR construit cu una din iniţializările date pentru µ este<br />
Faptul că elementul h (k)<br />
32<br />
H k −→ H ∞ =<br />
⎡<br />
⎢<br />
⎣<br />
−1 0 0 0<br />
0 0 −1 0<br />
0 1 0 0<br />
0 0 0 1<br />
⎤<br />
⎥<br />
⎦ .<br />
nu se anulează a<strong>si</strong>mptotic se datorează utilizării exclu<strong>si</strong>ve
250 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
a aritmeticii reale şi alegerii µ k = h (k)<br />
44 , a deplasării pentru toţi k ≥ 2. Modul în<br />
care se gestionează întreaga structură a matricei H k este tratat mai departe. ✸<br />
Observaţia 4.5 Situaţiile de genul celor evidenţiate în exemplul 4.4 se pot se<strong>si</strong>za<br />
prin supravegherea elementului h n,n−1 şi dacă, după un număr convenit de<br />
iteraţii 18 modulul său nu scade sub o toleranţă impusă, se intervine, de obicei prin<br />
renunţarea, pentru un <strong>si</strong>ngur pas, la deplasarea dată de (4.125). În literatura de<br />
specialitate (vezi [X]) există unele recomandări pentru alegerea acestei deplasări<br />
modificate, bazate pe o bogată experienţa numerică dar lip<strong>si</strong>te de o justificare teoretică<br />
corespunzătoare. Dacă o astfel de măsură nu dă rezultate, în general se<br />
renunţă la continuarea calculului 19 . Detaliile vor fi precizate în descrierea algoritmilor.<br />
✸<br />
În concluzie, algoritmul QR cu deplasare explicită este definit, în esenţă, de<br />
recurenţa (4.110), cu alegerea (4.125) a deplasării. Avându-se în vedere structura<br />
superior Hessenberg a tuturor matricelor şirului QR, pentru factorizarea QR se<br />
recomandă utilizarea rotaţiilor. În consecinţă, un pas <strong>si</strong>mplu QR cu deplasare<br />
explicită (fără acumularea transformării) constă în efectuarea următoarelor calcule,<br />
pe loc, în spaţiul de memorie al matricei H.<br />
1. µ = h nn<br />
2. H ← H −µI n<br />
3. Pentru j = 1 : n−1<br />
1. Se determină rotaţia plană (complexă) P j,j+1 astfel<br />
încât (P H j,j+1 H) j+1,j = 0.<br />
2. H ← P H j,j+1 H<br />
4. Pentru j = 1 : n−1<br />
1. H ← HP j,j+1<br />
5. H ← H +µI n<br />
Matricea de transformare curentă este dată de<br />
Q k = P 12 P 23···P n−1,n ,<br />
iar completarea algoritmului cu acumularea transformărilor (care se face numai în<br />
caz de nece<strong>si</strong>tate) este lăsată în sarcina cititorului.<br />
Complexitatea unui pas QR cu deplasare explicită aplicat unei matrice superior<br />
Hessenberg este O(n 2 ) algoritmul de mai sus nece<strong>si</strong>tând N ≈ 6n 2 flopi (complecşi).<br />
PasulQRdemaisusseajusteazăladimen<strong>si</strong>uneacurentăaproblemei,pemăsură<br />
ce se pun în evidenţă valorile <strong>proprii</strong> calculate. O modalitate concretă de gestionare<br />
a <strong>valorilor</strong> <strong>proprii</strong> calculate va fi prezentată în cadrul algoritmului QR cu deplasare<br />
implicită.<br />
18 Valorile uzuale sunt în jurul lui 10.<br />
19 Numărul de iteraţii la care se ia decizia de ”lipsă de convergenţă” şi de oprire a calculului<br />
este, uzual, între 20 şi 30.
4.4. ALGORITMUL QR 251<br />
B. Strategia paşilor dubli<br />
În cazul matricelorrealese poate impune utilizarea exclu<strong>si</strong>văaunei aritmetici reale.<br />
Dacă matricea are şi valori <strong>proprii</strong> complex conjugate alegerearecomandatămai sus<br />
pentru deplasarea µ k nu mai poate a<strong>si</strong>gura convergenţa procesului de evidenţiere a<br />
<strong>valorilor</strong> <strong>proprii</strong>. Aşa cum s-a văzut în demonstraţia lemei 4.3, pentru evidenţierea<br />
unui bloc 2×2 alformei Schurreale, deflaţia se face cu ajutorulunei baze ortogonale<br />
(reale) a subspaţiului A-invariantgenerat de parteareală şi cea imaginarăaperechii<br />
devectori<strong>proprii</strong>asociaţi. Aceastaaconduslaideeacomasăriiadoipaşiconsecutivi<br />
QR într-unul <strong>si</strong>ngur 20 şi a utilizării unei perechi de deplasări complex conjugate<br />
care, în pasul dublu, apar în combinaţii reale.<br />
Concret, fie H ∈ IR n×n o matrice superior Hessenberg şi doi paşi consecutivi<br />
QR cu deplasare explicită<br />
{<br />
Hk −µ k I n = Q k R k<br />
H k+1 = R k Q k +µ k I n<br />
,<br />
{<br />
Hk+1 −µ k+1 I n = Q k+1 R k+1<br />
H k+2 = R k+1 Q k+1 +µ k+1 I n<br />
, (4.130)<br />
care pot fi contraşi în transformarea directă H k −→ H k+2 , numită pas dublu QR.<br />
Într-adevăr, pasul k produce matricea H k+1 = Q H k H kQ k astfel încât factorizarea<br />
QR din cadrul pasului k + 1 poate fi scrisă sub forma Q H k H kQ k − µ k+1 I n =<br />
= Q k+1 R k+1 . Înmulţind această relaţie la stânga cu Q k, la dreapta cu R k şi utilizând<br />
factorizareaQR din cadrulpasului k, rezultă căun pasdublu QReste descris<br />
de { (Hk −µ k I n )(H k −µ k+1 I n ) = Q k Q k+1 R k+1 R k<br />
, (4.131)<br />
H k+2 = (Q k Q k+1 ) T H k Q k Q k+1<br />
şi implică efectuarea următoarelor calcule:<br />
1. SecalculeazămatriceaM def<br />
= H 2 k −s kH k +p k I n ,undes k = µ k +µ k+1<br />
şi p k = µ k µ k+1 .<br />
2. Se calculează factorizarea QR a matricei M, i.e. M = ˘Q˘R, unde<br />
˘Q = Q k Q k+1 şi ˘R = Rk R k+1 .<br />
3. H k+2 = ˘Q T H k ˘Q.<br />
Deplasările µ k şi µ k+1 se aleg, în concordanţă cu cele discutate mai sus, egale cu<br />
valorile <strong>proprii</strong> ale blocului 2×2 din colţul din dreapta jos al matricei H k :<br />
[<br />
(k) h n−1,n−1 h (k) ]<br />
n−1,n<br />
H k (n−1 : n, n−1 : n) =<br />
. (4.132)<br />
h (k)<br />
n,n−1<br />
h (k)<br />
n,n<br />
Important este faptul că, în schema de calcul aferentă unui pas dublu QR, cele<br />
două valori <strong>proprii</strong> apar sub formă de sumă şi produs:<br />
⎧<br />
⎨<br />
⎩<br />
s k = µ k +µ k+1 = h (k)<br />
n−1,n−1 +h(k) n,n<br />
p k = µ k µ k+1 = h (k)<br />
n−1,n−1 h(k) n,n −h (k)<br />
n−1,n h(k) n,n−1<br />
, (4.133)<br />
20 Se poate imagina şi o comasare a mai mulţi paşi QR în cadrul unei strategii a paşilor<br />
”multipli”. O astfel de soluţie este utilizată în LAPACK [XV] pentru procedurile bloc de calcul<br />
al <strong>valorilor</strong> <strong>proprii</strong>.
252 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
care sunt reale chiar dacă cele două deplasări individuale sunt complexe.<br />
Strategia pasului dublu QR nu se aplică însă în forma explicită de mai sus<br />
întrucât implementarea schemei de calcul prezentate conduce la o reducere sen<strong>si</strong>bilă<br />
a eficienţei. Într-adevăr, complexitatea unui pas <strong>si</strong>mplu QR este O(n2 ) şi la fel<br />
este şi complexitatea a doi paşi <strong>si</strong>mpli QR în timp ce numărul de operaţii necesar<br />
pentru execuţia unui pas dublu QR, datorită calculului explicit al matricei M, este<br />
de ordinul O(n 3 ). Aceasta înseamnă că forma explicită a pasului dublu QR nu este<br />
optimală. Refacerea complexităţii la O(n 2 ) este po<strong>si</strong>bilă (dar nu apare în mod <strong>si</strong>mplu),<br />
iar varianta de calcul este cunoscută sub denumirea de varianta cu deplasare<br />
implicită şi este utilizată în toate implementările profe<strong>si</strong>onale ale algoritmului QR<br />
pentru matrice reale.<br />
C. Ideea algoritmului QR cu deplasare implicită<br />
Scopul fundamental al dezvoltării variantei cu deplasare implicită a algoritmului<br />
QR este reducerea complexităţii unui pas dublu QR aplicat unei matrice reale<br />
în formă superior Hessenberg la nivelul complexităţii a doi paşi <strong>si</strong>mpli QR. Deşi,<br />
principial, există toate motivele ca acest lucru să fie po<strong>si</strong>bil, aspectele tehnice sunt<br />
departe de a fi triviale. Algoritmul QR cu deplasare implicită datează din anul<br />
1961 şi a fost propus de J.G.F. Francis [26] şi V.N. Kublanovskaia [39].<br />
Conform celor prezentate mai sus referitor la pasul dublu QR, matricele H k<br />
şi H k+2 = ˘Q T k H k ˘Q k au structura superior Hessenberg şi sunt ortogonal asemenea.<br />
Şansele de a gă<strong>si</strong> o cale alternativă de calcul a matricei succesor H k+2 şi, eventual,<br />
a matricei de transformare asociate, sunt legate nemijlocit de evidenţierea gradelor<br />
de libertate existente. Având în vedere această observaţie, suntem interesaţi de<br />
condiţiile în care transformarea care defineşte un pas QR este unică sau poate fi<br />
restrânsă la o clasă bine precizată.<br />
Pentru început, observăm că, în general, matricea unitară Q k care defineşte<br />
relaţia de asemănare dintre matricele superior Hessenberg H k şi H k+1 din şirul QR<br />
nu este unică. Într-adevăr, fie V ∈ IC n×n o matrice unitară arbitrară. Aplicarea<br />
algoritmului HQc matricei V H H k V conduce la obţinerea unei matrice superior<br />
Hessenberg unitar asemenea cu H k şi care depinde de alegerea lui V.<br />
Restrângerea transformărilor la o clasă de transformări, ”echivalente” din punctul<br />
de vedere al convergenţei către forma Schur, va fi făcută pentru matricele superior<br />
Hessenberg ireductibile 21 definite mai jos.<br />
Definiţia 4.6 O matrice n × n complexă sau reală H superior Hessenberg se numeşte<br />
ireductibilă dacă are toate elementele subdiagonale nenule, i.e.<br />
h j+1,j ≠ 0, j ∈ 1 : n−1. (4.134)<br />
Pentru matricele superior Hessenberg ireductibile prezentăm teorema următoare.<br />
21 Problema calculului <strong>valorilor</strong> <strong>proprii</strong> ale unor matrice superior Hessenberg reductibile se<br />
reduce la calculul <strong>valorilor</strong> <strong>proprii</strong> ale unor matrice superior Hessenberg ireductibile de dimen<strong>si</strong>uni<br />
mai mici (vezi mai departe).
4.4. ALGORITMUL QR 253<br />
Teorema 4.15 Fie matricea A ∈ IC n×n şi matricele unitare U ∈ IC n×n şi V ∈ IC n×n<br />
astfel încât matricele<br />
H = U H AU, G = V H AV (4.135)<br />
sunt ambele superior Hessenberg ireductibile. Dacă matricele U şi V au aceeaşi<br />
primă coloană, i.e.<br />
Ue 1 = Ve 1 , (4.136)<br />
atunci<br />
Ue j = e iθj Ve j , θ j ∈ IR, j = 2 : n, (4.137)<br />
i.e. există o matrice diagonală unitară D = diag(1,δ 2 ,...,δ n ) cu δ j = e iθj , j = 2:n,<br />
astfel încât<br />
H = D H GD. (4.138)<br />
În cazul real, i.e. A ∈ IR n×n şi matricele U ∈ IR n×n şi V ∈ IR n×n ortogonale,<br />
condiţia (4.136) implică Ue j = ±Ve j , j = 2 : n, i.e. matricea diagonală din (4.138)<br />
este ortogonală având δ j ∈ {−1, 1}, j = 2 : n. Dacă elementele subdiagonale<br />
corespondente ale matricelor G şi H din (4.135) au acelaşi semn, atunci (4.136)<br />
implică U = V, i.e transformarea este unic determinată.<br />
Observaţia 4.6 Având în vedere obiectivele urmărite, putem afirma că, în condiţiile<br />
teoremei 4.15, matricele H şi G sunt esenţial aceleaşi. Într-adevăr, este uşor<br />
de constatat că |h ij | = |g ij | (în cazul real aceasta înseamnă h ij = ±g ij ) pentru toţi<br />
i şi j şi, prin urmare, ”distanţa” (în norma Frobenius) până la forma Schur ”cea<br />
mai apropiată” a celor două matrice poate fi con<strong>si</strong>derată aceeaşi. ✸<br />
Demonstraţia teoremei 4.15. Fie W def<br />
= V H U şi W = [w 1 w 2 ··· w n ] partiţia sa<br />
pe coloane. Atunci, din (4.136), rezultă w 1 = We 1 = e 1 , iar din (4.135) avem<br />
GW = WH relaţie care, scrisă pe coloane, devine<br />
j∑<br />
Gw j = WH(:,j) = w k h kj +w j+1 h j+1,j , j = 1 : n−1.<br />
k=1<br />
Întrucât h j+1,j ≠ 0, obţinem următoarea exprimare a coloanei j +1 a matricei W<br />
în funcţie de coloanele precedente<br />
w j+1 = 1<br />
h j+1,j<br />
(Gw j −<br />
j∑<br />
w k h kj ),<br />
expre<strong>si</strong>e care, cu iniţializarea w 1 = e 1 , probează faptul că matricea W este superior<br />
triunghiulară. Cum o matrice unitară triunghiulară este în mod necesar diagonală<br />
cu toate elementele diagonale de modul unitar (vezi exerciţiul 4.20), rezultă w j =<br />
= We j = e iθj e j , j = 2:n, şi, deci, în (4.138) matricea diagonală D este chiar W,<br />
i.e. avem D def<br />
= W. Relaţiile (4.137) sunt o consecinţă imediată a relaţiei (4.138).<br />
În cazul real demonstraţia este aceeaşi dacă se ţine seama de faptul că operaţia de<br />
conjugare nu are efect şi că <strong>si</strong>ngurele numere reale de modul unitar sunt −1 şi 1.<br />
Fie δ 1 = 1. Atunci elementele diagonale ale matricei D se determină cu relaţia de<br />
recurenţă δ i = g i,i−1<br />
δ i−1 de unde rezultă că, dacă g i,i−1 şi h i,i−1 au acelaşi semn,<br />
h i,i−1<br />
atunci δ i = 1, i = 2:n, i.e. D = I n .<br />
✸<br />
k=1
254 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
D. Un pas QR cu deplasare implicită<br />
pentru matrice complexe<br />
Teorema 4.15 reprezintă fundamentul teoretic pentru variantele cu deplasare implicită<br />
ale algoritmului QR. Ideea centrală a acestora constă în a<strong>si</strong>gurarea condiţiei<br />
ca prima coloană a matricei de transformare cumulate aferente unui pas QR să<br />
coincidă cu prima coloană a matricei de transformare de la varianta cu deplasare<br />
explicită corespunzătoare, <strong>si</strong>multan cu minimizarea numărului de operaţii aritmetice,<br />
prin exploatarea eficientă a structurilor de zerouri ale matricelor implicate.<br />
Concret, pentru implementarea unui pas <strong>si</strong>mplu QR cu deplasare implicită se<br />
procedează în felul următor:<br />
1. Se calculează prima coloană q (k)<br />
1 a matricei Q k din (4.110) ce defineşte<br />
transformarea unitară aferentă unui pas <strong>si</strong>mplu QR cu deplasare<br />
explicită.<br />
2. Se determină o matrice unitară U 1 astfel încât prima sa coloană să<br />
fie q (k)<br />
1 , i.e. U 1e 1 = q (k)<br />
1 .<br />
3. Se calculează matricea B = U H 1 H kU 1 (a cărei structură nu mai<br />
este superior Hessenberg).<br />
4. Se reface structura superior Hessenberg, aplicând algoritmul HQc<br />
matricei B: [H k+1 , ˜Q k+1 ] = HQc(B, ˜Q k ,opt). Transformările implicate<br />
de această reducere nu afectează prima coloană a matricei<br />
de transformare cumulate.<br />
AceastăschemădecalculdefineşteunpasQRcu deplasare implicită. Dacămatricea<br />
H k este ireductibilă, atunci rezultatul H k+1 al aplicării schemei de calcul de mai<br />
sus va fi esenţial acelaşi, în sensul observaţiei 4.6, cu cel dat de un pas QR cu<br />
deplasare explicită. Pentru ca procedura cu deplasare implicită sa nu fie inferioară,<br />
din punctul de vedere al eficienţei, celei cu deplasare explicită, trebuie exploatate<br />
corespunzător avantajele structurale date de forma Hessenberg a matricelor iniţială<br />
şi finală. Detaliile unei implementări eficiente sunt prezentate în continuare.<br />
not<br />
Fie, pentru <strong>si</strong>mplificarea notaţiilor, H k = H matricea curentă a şirului QR,<br />
not<br />
presupusă ireductibilă, H k+1 = H ′ not<br />
matricea succesor, µ k = µ etc. (i.e. renunţăm<br />
la indicele k). Aceste notaţii se justifică şi prin faptul că atât matricea H ′ cât şi<br />
matricea intermediară B pot suprascrie matricea H, i.e. toate calculele aferente<br />
unui pas <strong>si</strong>mplu QR cu deplasare implicită se pot desfăşura pe loc, în tabloul H.<br />
Urmând etapele din schema de calcul de mai sus avem următoarele particularităţi.<br />
1. Presupunem că µ = h nn ∉ λ(H), i.e. matricea H − µI n este ne<strong>si</strong>ngulară.<br />
PrinurmarematriceasuperiortriunghiularăR k<br />
not<br />
= R din (4.110)este, de asemenea,
4.4. ALGORITMUL QR 255<br />
ne<strong>si</strong>ngulară, iar prima coloană a matricei de transformare Q k<br />
not<br />
= Q este<br />
⎡<br />
q 1 = Qe 1 = 1<br />
r 11 ⎢<br />
⎣<br />
h 11 −µ<br />
h 21<br />
0<br />
.<br />
.<br />
0<br />
⎤<br />
. (4.139)<br />
⎥<br />
⎦<br />
Numim vectorul<br />
w =<br />
[ ]<br />
h11 −µ<br />
∈ IC 2 (4.140)<br />
h 21<br />
vector de deplasare implicită aferent unui pas QR.<br />
2. Matricea unitară U 1 de la instrucţiunea 2 a schemei de calcul de mai sus<br />
poate fi un reflector (complex) sau, şi mai <strong>si</strong>mplu, datorită structurii vectorului q 1<br />
din (4.139), o rotaţie (complexă) U 1 = P 12 , astfel calculată încât<br />
În ambele <strong>si</strong>tuaţii, structura matricei U 1 este<br />
U H 1 q 1 = ±‖q 1 ‖e 1 . (4.141)<br />
U 1 =<br />
[ ]<br />
Û1 0<br />
, (4.142)<br />
0 I n−2<br />
cu Û 1 ∈ IC 2×2 . Vom opta pentru utilizarea rotaţiilor, aşadar elementele definitorii<br />
c 1 şi s 1 ale rotaţiei P 12 se obţin cu ajutorul funcţiei Gc în cazul complex, respectiv<br />
Gr în cel real (vezi tabelul 4.3) aplicate vectorului de deplasare implicită w.<br />
3. Datorită structurii (4.142) a matricei U 1 alterarea formei Hessenberg prin<br />
calculul matricei B de la instrucţiunea 3 are loc numai în poziţia (3,1).<br />
4. Matricea B având un <strong>si</strong>ngur element nenul ce alterează forma superior<br />
Hessenberg, pentru a<strong>si</strong>gurarea eficienţei se impune adaptarea algoritmului HQc<br />
la această <strong>si</strong>tuaţie structurală. Concret, putem utiliza o transformare unitară de<br />
asemănare definită de o secvenţă de rotaţii (complexe) care elimină elementul nenul<br />
din afara structurii Hessenberg prin ”deplasarea”lui de-a lungul unui traseu paralel<br />
cu diagonala principală. Schema de calcul este următoarea:<br />
1. Pentru i = 2 : n−1<br />
1. Se calculează rotaţia (complexă) P i,i+1 astfel încât<br />
(Pi,i+1 H B)(i+1,i−1)= 0.<br />
2. B ← Pi,i+1 H B. % Se anulează elementul (i+1,i−1).<br />
3. B ← BP i,i+1 . % Pentru i < n−1 apare un element nenul<br />
în poziţia (i+2,i).<br />
Pentru exemplificare prezentăm evoluţia structurală a matricei B în cazul n = 5.<br />
În diagramele structurale de mai jos zerourile nou create au fost marcate cu ∅, iar<br />
alterările de zerouri de la transformarea curentă au fost marcate cu +. Încadrările
256 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
marchează liniile şi/sau coloanele afectate de transformarea curentă.<br />
⎡ ⎤<br />
× × × × ×<br />
H ← B = U1 H HU × × × × ×<br />
1 =<br />
⎢ + × × × ×<br />
⎥<br />
⎣ 0 0 × × × ⎦ ,<br />
0 0 0 × ×<br />
⎡<br />
H ← P23 H H = ⎢<br />
⎣<br />
⎡<br />
H ← HP 23 =<br />
⎢<br />
⎣<br />
⎡<br />
H ← P34 H H = ⎢<br />
⎣<br />
⎡<br />
H ← HP 34 =<br />
⎢<br />
⎣<br />
⎡<br />
H ← P45 H H = ⎢<br />
⎣<br />
⎡<br />
H ← HP 45 =<br />
⎢<br />
⎣<br />
× × × × ×<br />
× × × × ×<br />
∅ × × × ×<br />
×<br />
×<br />
0<br />
0<br />
0<br />
0 0 × × ×<br />
0 0 0 × ×<br />
× ×<br />
× ×<br />
× ×<br />
+ ×<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
× × × × ×<br />
× × × × ×<br />
0 × × × ×<br />
0 ∅ × × ×<br />
0 0 0 × ×<br />
× ×<br />
× ×<br />
0 ×<br />
0 0<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
+ ×<br />
×<br />
×<br />
×<br />
×<br />
×<br />
× × × × ×<br />
× × × × ×<br />
0 × × × ×<br />
0 × × × ×<br />
0 0 ∅ × ×<br />
× × ×<br />
× × ×<br />
0 × ×<br />
0 0 ×<br />
0 0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
<strong>Calculul</strong>elementelordefinitoriic i şis i alerotaţieiP i,i+1 sefacecufuncţiaGc, iar<br />
calculul economic al produselor Pi,i+1 H B <strong>si</strong> ¸ BP i,i+1 exploatează structura (aproape)<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
.<br />
⎥<br />
⎦
4.4. ALGORITMUL QR 257<br />
Hessenberg a matricei B. Varianta adaptată a algoritmului HQc dată de schema<br />
de calcul de mai sus calculează matricea superior Hessenberg<br />
H ← H ′ = P H n−1,n···PH 34 PH 23 BP 23P 34···P n−1,n =<br />
= P H n−1,n···PH 23 PH 12 HP 12P 23···P n−1,n = Q H k HQ k, (4.143)<br />
i.e. matricea succesor a lui H din şirul QR cu paşi <strong>si</strong>mpli.<br />
Din raţiuni de organizare judicioasă a algoritmului QR şi, mai ales, a algoritmului<br />
de ordonare a formei Schur (vezi secţiunea 4.6), vom introduce un algoritm<br />
distinct de calcul al vectorului de deplasare implicită asociat unui pas <strong>si</strong>mplu QR.<br />
Algoritmul 4.4 (VD1 – <strong>Calculul</strong> vectorului de deplasare implicită<br />
pentru un pas <strong>si</strong>mplu QR) (Dată o matrice superior Hessenberg ireductibilă<br />
H ∈ IC n×n , algoritmul calculează vectorul w ∈ IC 2 de deplasare<br />
implicită pentru un pas <strong>si</strong>mplu QR.)<br />
1. µ = h nn<br />
[ ]<br />
h11 −µ<br />
2. w =<br />
h 21<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
w = VD1(H),<br />
iar execuţia sa implică efectuarea unei <strong>si</strong>ngure operaţii cu numere complexe.<br />
Cu aceste precizări putem prezenta algoritmul de implementare a unui pas <strong>si</strong>mplu<br />
QR cu deplasare implicită. Sunt utilizate proceduri prezentate în tabelul 4.3.<br />
Algoritmul 4.5 (IT QR1 – Un pas <strong>si</strong>mplu QR cu deplasare implicită)<br />
(Date o matrice superior Hessenberg ireductibilă H ∈ IC n×n şi<br />
vectorul de deplasare implicită w ∈ IC 2 , algoritmul suprascrie matricea<br />
H cu matriceasuccesorH ← H ′ = Q k HQ H k din şirul QR.De asemenea,<br />
algoritmul furnizează vectorii c ∈ IR n−1 şi s ∈ IC n−1 ale căror elemente<br />
(c i ,s i ) definesc rotaţiile P i,i+1 utilizate.)<br />
1. % <strong>Calculul</strong> şi aplicarea rotaţiei P 12<br />
1. [w,c 1 ,s 1 ] = Gc(w)<br />
2. H(1 : 2,:) = Gcs(c 1 ,s 1 ,H(1 : 2,:))<br />
3. H(1 : min(3,n),1 : 2) = Gcd(H(1 : min(3,n),1 : 2),c 1 ,s 1 )<br />
2. % Refacerea structurii Hessenberg<br />
Pentru i = 2 : n−1<br />
1. [H(i : i+1, i−1),c i ,s i ] = Gc(H(i : i+1,i−1))<br />
2. H(i : i+1, i : n) = Gcs(c i ,s i ,H(i : i+1, i : n))<br />
3. H(1 : min(i+2,n), i : i+1) =<br />
= Gcd(H(1 : min(i+2,n), i : i+1),c i ,s i ).<br />
✸
258 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Comentarii. Vom utiliza următoarea <strong>si</strong>ntaxă de apel a algoritmului de mai sus<br />
[H,c,s] = IT QR1(H,w).<br />
Complexitatea unui pas <strong>si</strong>mplu QR este O(n 2 ) în ambele variante de utilizare a<br />
deplasării. Concret, pentru execuţia algoritmului 4.5 sunt necesari N op ≈ 6n 2 flopi<br />
complecşi, cărora le corespund N op ≈ 26n 2 flopi reali, la care se adaugă cele n−1<br />
extrageri de radical.<br />
Preferinţa pentru varianta cu deplasare implicită este justificată de o anume<br />
omogenitate a demersului de calcul al <strong>valorilor</strong> <strong>proprii</strong>, ţinând seama de faptul că<br />
în cazul matricelor reale această variantă se impune cu nece<strong>si</strong>tate. ✸<br />
E. Algoritmul QR pentru matrice complexe<br />
Algoritmul QR pentru matrice complexe 22 se obţine prin iterarea algoritmului<br />
4.5, anularea efectivă a elementelor subdiagonale devenite neglijabile şi exploatarea<br />
structurală a acestor anulări în vederea obţinerii unei eficienţe maxime.<br />
Pentru deciziile de anulare a elementelor subdiagonale criteriul uzual este de<br />
forma (4.126), i.e.<br />
|h i+1,i | < tol(|h ii |+|h i+1,i+1 |), (4.144)<br />
unde scalarul tol defineşte nivelul de toleranţă şi are, în mod obişnuit, un ordin<br />
de mărime comparabil cu eroarea de reprezentare din formatul virgulă mobilă al<br />
maşinii ţintă. Acest criteriu îşi găseşte o fundamentare, în sensul a<strong>si</strong>gurării unei<br />
erori de evaluare a <strong>valorilor</strong> <strong>proprii</strong> de ordinul de mărime al toleranţei tol, mai<br />
ales în <strong>si</strong>tuaţiile în care are loc o scalare prealabilă a matricei date (vezi § 4.4 H).<br />
De asemenea, având în vedere faptul că testul (4.144) are o pondere importantă în<br />
economiaalgoritmului,efectuâdu-selafiecareiteraţiepentrutoateelementelesubdiagonaleale<br />
submatriceisuperiorHessenbergireductibile curente, încazul matricelor<br />
complexe se obţine un spor semnificativ de eficienţă dacă se utilizează criteriul<br />
|Reh i+1,i |+|Imh i+1,i | < tol(|Reh ii |+|Imh ii |+|Reh i+1,i+1 |+|Imh i+1,i+1 |),<br />
(4.145)<br />
practic echivalent cu criteriul (4.144).<br />
Pentru monitorizarea evoluţiei structurale a matricelor din şirul QR, la fiecare<br />
iteraţie, după anularea elementelor subdiagonale h i+1,i , care satisfac condiţia din<br />
(4.145), se va determina cel mai mic întreg p şi cel mai mare întreg q astfel încât<br />
matricea Hessenberg curentă să aibă structura<br />
⎡<br />
H = ⎣ H ⎤<br />
11 H 12 H 13<br />
0 H 22 H 23<br />
⎦ }p<br />
}n−p−q , (4.146)<br />
0 0 H 33 }q<br />
22 Algoritmul ce urmează se poate aplica, evident, şi matricelor reale, cu condiţia acceptării<br />
efectuării operaţiilor aritmetice cu numere complexe. Cum o operaţie elementară cu numere complexe<br />
implică între două şi unsprezece operaţii cu numere reale, utilizarea acestui algoritm pentru<br />
matrice reale este ineficientă. De aceea, în cazul real se utilizează algoritmul 4.10 care operează<br />
numai cu date reale.
4.4. ALGORITMUL QR 259<br />
cu H 11 ∈ IC p×p , H 22 ∈ IC (n−p−q)×(n−p−q) superior Hessenberg ireductibilă şi H 33 ∈<br />
∈ IR q×q superior triunghiulară. Astfel, elementele diagonale ale blocului H 33 reprezintă<br />
valori <strong>proprii</strong> deja evidenţiate 23 , iar iteraţia QR se va aplica, de fapt, numai<br />
blocului H 22<br />
H 22 ← H ′ 22 = Q H 22H 22 Q 22 , (4.147)<br />
echivalentă cu aplicarea transformării (4.110) cu<br />
Q = diag(I p ,Q 22 ,I q ). (4.148)<br />
Această transformare afectează celelalte blocuri ale matricei H din (4.146) în felul<br />
următor:<br />
⎡<br />
H ← H ′ = Q H HQ = ⎣ H ⎤<br />
11 H 12 Q 22 H 13<br />
0 Q H 22H 22 Q 22 Q H 22H 23<br />
⎦. (4.149)<br />
0 0 H 33<br />
Algoritmul QR se termină în momentul în care se anulează toate elementele<br />
subdiagonale, i.e. q devine n−1.<br />
Aşa cum s-a arătat în exemplul 4.4, există <strong>si</strong>tuaţii în care algoritmul QR, cu<br />
deplasările utilizate în pasul QR cu deplasare implicită din algoritmul 4.4, nu este<br />
convergent. Conform recomandărilor din observaţia 4.5, în marea majoritate a<br />
acestor<strong>si</strong>tuaţiiconvergenţapoatefirestabilitămodificând, pentruo<strong>si</strong>ngurăiteraţie,<br />
modul de calcul al vectorului de deplasare implicită. Pentru constatarea lipsei de<br />
convergenţă sau a unei rate de convergenţă prea reduse vom contoriza iteraţiile<br />
efectuate pentru evidenţierea valorii <strong>proprii</strong> din poziţia curentă (n−q,n−q) (vezi<br />
(4.146)). Dacă după 10 sau 20 iteraţii elementul subdiagonal (n−q,n−q −1) nu<br />
satisface condiţia (4.145), vectorul w de deplasare implicită (4.140) va fi calculat<br />
folo<strong>si</strong>nd deplasarea empirică, recomandată e.g. în [X],<br />
µ = |Reh n−q,n−q−1 |+|Reh n−q−1,n−q−2 |+i(|Imh n−q,n−q−1 |+|Imh n−q−1,n−q−2 |),<br />
(4.150)<br />
unde i este unitatea imaginară. Dacă nici această dublă măsură nu a<strong>si</strong>gură o<br />
viteză de convergenţă satisfăcătoare, fapt apreciat prin efectuarea a încă 10 iteraţii<br />
fără satisfacerea condiţiei (4.145) de către elementul (n − q,n − q − 1), atunci se<br />
declară eşecul rezolvării problemei de calcul al <strong>valorilor</strong> <strong>proprii</strong> ale matricei date.<br />
Menţionăm că deşi, teoretic, o astfel de po<strong>si</strong>bilitate nu este exclusă, practic ea nu<br />
apare decât pentru date special create în acest scop.<br />
Utilizând <strong>si</strong>ntaxele de apel menţionate ale algoritmilor 4.4 şi 4.5 precum şi ale<br />
procedurilor din tabelul 4.3, algoritmul QR cu pa<strong>si</strong> ¸ <strong>si</strong>mpli, cu deplasări implicite,<br />
se scrie astfel.<br />
Algoritmul 4.6 (QR1– Algoritmul QR cu paşi <strong>si</strong>mpli, cu deplasări<br />
implicite) (Date o matrice A ∈ IC n×n , o matrice unitară Q ∈ IC n×n<br />
şi un nivel de toleranţă tol pentru anularea elementelor subdiagonale,<br />
algoritmul calculează forma Schur A ← S = ˜Q H A˜Q a matricei A (şi,<br />
deci, valorile <strong>proprii</strong> ale matricei A care sunt elementele diagonale ale<br />
23 Alte valori <strong>proprii</strong> evidenţiate se pot gă<strong>si</strong> printre elementele diagonale ale blocului H 11 .
260 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
lui S). Toate calculele se efectuează pe loc, în locaţiile de memorie ale<br />
tabloului A. Opţional, se acumulează transformările înmatricea unitară<br />
Q ← Q˜Q. Opţiunea se exprimă cu ajutorul variabilei logice opt de tipul<br />
şir de caractere care poate lua valorile ′ da ′ sau ′ nu ′ . Dacă nu se doreşte<br />
acumularea transformărilor, matricea Q rămâne nemodificată.)<br />
1. Dacă n = 1 atunci return<br />
2. % Reducerea la forma Hessenberg<br />
1. [A,Q] =HQc(A,Q,opt)<br />
3. % Faza iterativă<br />
1. p = 0, q = 0, cont it = 0<br />
2. C^at timp q < n<br />
1. % Anularea elementelor subdiagonale neglijabile<br />
1. Pentru i = p+1 : n−q −1<br />
1. Dacă |Rea i+1,i |+|Ima i+1,i | <<br />
< tol(|Rea ii |+|Ima ii |+|Rea i+1,i+1 |+|Ima i+1,i+1 |)<br />
atunci a i+1,i = 0<br />
2. % Determinarea lui q<br />
1. C^at timp a n−q,n−q−1 = 0<br />
1. q ← q +1<br />
2. % Terminarea normală a algoritmului<br />
Dacă q = n−1 atunci return.<br />
3. cont it = 0<br />
3. % Terminarea prin eşec a algoritmului<br />
1. Dacă cont it > 30 atunci<br />
1. Tipăreşte ’S-au consumat 30 iteraţii QR pentru<br />
evidenţierea unei valori <strong>proprii</strong> fără a se atinge<br />
acest obiectiv. Este po<strong>si</strong>bil ca, pentru aceste date<br />
de intrare, algoritmul QR să nu fie convergent.’<br />
2. Return.<br />
4. % Determinarea lui p<br />
1. p = n−q −1<br />
2. C^at timp a p+1,p ≠ 0<br />
1. p ← p−1<br />
2. Dacă p = 0 atunci break<br />
5. % Iteraţia curentă<br />
1. k = p+1, l = n−q<br />
2. w = VD1(A(k:l,k:l))<br />
3. % <strong>Calculul</strong> deplasării implicite modificate<br />
1. Dacă cont it = 10 sau cont it = 20 atunci<br />
1. µ = |Reh l,l−1 |+i|Imh l,l−1 |<br />
2. Dacă l > k +1 atunci<br />
µ = µ+|Reh l−1,l−2 |+i|Imh l−1,l−2 |<br />
3. w = [h kk −µ h k+1,k ] T
4.4. ALGORITMUL QR 261<br />
4. [A(k : l,k : l),c,s] = IT QR1(A(k:l,k:l),w)<br />
5. Dacă k > 1 atunci<br />
1. Pentru i = 1 : l−k<br />
1. A(1:p,p+i : p+i+1)=<br />
= Gcd(A(1:p,p+i : p+i+1),c i ,s i ).<br />
6. Dacă l < n atunci<br />
1. Pentru i = 1 : l−k<br />
1. A(p+i : p+i+1,l+1: n) =<br />
= Gcs(c i ,s i ,A(p+i : p+i+1,l+1: n))<br />
7. cont it ← cont it+1<br />
6. Dacă opt = ′ da ′ atunci<br />
1. Pentru i = 1 : l−k<br />
1. Q(:, p+i : p+i+1)= Gcd(Q(:, p+i : p+i+1),c i ,s i )<br />
Comentarii. Algoritmul implementează ideile expuse în prezentarea teoretică premergătoare,<br />
iar comentariile incluse a<strong>si</strong>gură, sperăm, transparenţa necesară pentru<br />
identificarea lor. Menţionăm suplimentar că, pentru contorizarea iteraţiilor, a fost<br />
utilizată variabila întreagă cont it care se reiniţializeză la zero ori de câte ori se a-<br />
nulează un nou element subdiagonal. De asemenea, s-a utilizat instrucţiunea break<br />
(de ieşire forţată din cicluri de tip pentru sau c^at timp) pentru încadrarea indexărilor<br />
în limitele permise de dimen<strong>si</strong>unile matricelor. Vom apela în continuare<br />
acest algoritm utilizând <strong>si</strong>ntaxa<br />
[S,Q] = QR1(A,Q,tol,opt).<br />
În aspectele sale esenţiale, algoritmul de mai sus stă la baza tuturor programelor<br />
profe<strong>si</strong>onale de calcul al <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice complexe. Utilizarea lui<br />
pentru calculul formei Schur a unei matrice reale este po<strong>si</strong>bilă 24 , dar este mai puţin<br />
eficientă în raportcu variantaspecial elaboratăpentru această<strong>si</strong>tuaţie şi prezentată<br />
în continuarea acestui capitol.<br />
Datorită procesului iterativ complexitatea algoritmului depinde de datele de intrare<br />
precum şi de toleranţa practicată. Pentru un nivel de toleranţă de ordinul<br />
de mărime al erorilor de reprezentare 25 , evaluările experimentale converg către<br />
aprecierea că, în medie, două iteraţii sunt suficiente pentru a pune în evidenţă o<br />
valoare proprie. În această <strong>si</strong>tuaţie, pentru matrice de ordin superior (de exemplu<br />
n > 100), se poate aprecia că algoritmul QR1 are o complexitate O(n 3 ). Evaluarea<br />
de mai sus este corectă pentru matrice de dimen<strong>si</strong>uni medii şi mari. În exemplele<br />
academice sau aplicaţiile studenţeşti apar, de regulă, matrice de ordin redus<br />
24 Pentru probleme de mică dimen<strong>si</strong>une diferenţa de eficienţă nu este deci<strong>si</strong>vă astfel că acest<br />
algoritm poate fi folo<strong>si</strong>t cu succes. Atragem însă atenţia că procedura Gc de calcul a unei rotaţii<br />
complexe (vezi capitolul 3) aplicată unui vector real calculează de fapt o rotaţie reală astfel încât<br />
pentru date reale acest algoritm va lucra exclu<strong>si</strong>v cu numere reale privite ca numere complexe şi<br />
nu va fi capabil să reducă blocurile diagonale 2 × 2 cu valori <strong>proprii</strong> complexe. Pentru a depăşi<br />
acest impas se poate proceda, de exemplu, ca în algoritmul special destinat cazului real (vezi mai<br />
departe) prin identificarea unor astfel de <strong>si</strong>tuaţii şi monitorizarea blocurilor diagonale sau prin<br />
introducerea unor deplasări implicite modificate cu parte imaginară nenulă.<br />
25 În pachetele comerciale de programe acest nivel de toleranţa este practicat uzual şi nu poate<br />
fi modificat de utilizator.
262 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
(e.g. în jurul lui n = 10), pentru care numărul mediu de iteraţii necesar pentru<br />
evidenţierea unei valori prorii este ceva mai mare (din experienţa noastră didactică<br />
apreciem acest număr la 3-4). Aceasta se explică prin faptul că, <strong>si</strong>multan cu<br />
elementele subdiagonale din ultima linie şi prima coloană, toate elementele subdiagonale<br />
ale blocului iterat au tendinţă de anulare a<strong>si</strong>mptotică astfel încât, la matrice<br />
de dimen<strong>si</strong>uni mai mari, ultima fază a procesului iterativ este extrem de rapidă.<br />
Evaluări mai fine sunt date la varianta reală.<br />
Utilizarea exclu<strong>si</strong>vă a transformărilorunitare conferă algoritmului QR1 o foarte<br />
bună stabilitate numerică. Aspectele cantitative ale acestei aprecieri calitative a algoritmuluiQR1,precumşispectesuplimentarereferitoarelacondiţionarea<strong>valorilor</strong><br />
<strong>proprii</strong> sunt prezentate în secţiunile §4.10 şi §4.11.<br />
✸<br />
F. Un pas dublu QR cu deplasare implicită<br />
pentru matrice reale<br />
În cazul matricelor reale un spor important de eficienţă se obţine utilizând o aritmetică<br />
reală şi strategia paşilor dubli QR. La fel ca în cazul pasului <strong>si</strong>mplu, un<br />
pas dublu QR cu deplasare implicită are ca bază teoretică aceeaşi teoremă 4.15. Şi<br />
aici, ideea centrală constă în a<strong>si</strong>gurarea coincidenţei primei coloane a matricei de<br />
transformare cumulate aferente unui pas dublu QR cu prima coloană a matricei de<br />
transformare cumulate de la doi paşi <strong>si</strong>mpli consecutivi din varianta cu deplasare<br />
explicită. Reducerea efortului de calcul la nivelul a doi paşi cu deplasare explicită se<br />
bazează esenţial pe minimizarea numărului de operaţii aritmetice, prin exploatarea<br />
eficientă a structurilor de zerouri ale matricelor implicate.<br />
Concret, un pas dublu QR cu deplasare implicită constă din următoarele transformări.<br />
1. Se calculează prima coloană ˘q (k)<br />
1 a matricei ˘Q = Qk Q k+1 ce defineşte<br />
transformarea ortogonală aferentă unui pas dublu QR cu<br />
deplasare explicită.<br />
2. Se determină o matrice ortogonalăU 1 astfel încât prima sa coloană<br />
să fie ˘q (k)<br />
1 , i.e. U 1e 1 = ˘q (k)<br />
1 .<br />
3. Se calculeazămatricea B = U1 TH kU 1 (a cărei structură nu mai este<br />
superior Hessenberg).<br />
4. Se reface structura superior Hessenberg aplicând algoritmul HQ<br />
matriceiB: [H k+2 ,Ū] = HQ(B). Transformărileimplicatedeaceastă<br />
reducere nu afectează prima coloanăamatricei de transformare<br />
cumulate.<br />
Dacă matricea H k este ireductibilă atunci rezultatul H k+2 al aplicării schemei de<br />
calcul de mai sus va fi esenţial acelaşi, în sensul observaţiei 4.5, cu cel dat de un pas<br />
dublu QR cu deplasare explicită. Mai mult, schema de mai sus este determinant<br />
mai eficientă decât varianta cu deplasare explicită. Într-adevăr, exploatând corespunzător<br />
avantajele structurale date de forma Hessenberg a matricelor iniţială şi<br />
finală se poate reduce complexitatea pasului dublu de la O(n 3 ) la O(n 2 ), ceea ce în<br />
economia întregului algoritm este esenţial. Detaliile sunt prezentate în continuare.
4.4. ALGORITMUL QR 263<br />
not<br />
Con<strong>si</strong>derăm şi aici, pentru <strong>si</strong>mplificarea notaţiilor, H k = H matricea curentă a<br />
not<br />
şirului QR, presupusă ireductibilă, iar H k+2 = H ′ matricea succesor în varianta<br />
cu utilizarea paşilor dubli. Urmând etapele din schema de calcul de mai sus avem<br />
următoarele particularităţi.<br />
1. Fără a reduce generalitatea, presupunem că matricea superior triunghiulară<br />
not<br />
R k R k+1 = ˘R este ne<strong>si</strong>ngulară. Atunci prima coloană a matricei de transformare<br />
not<br />
Q k Q k+1 = ˘Q este<br />
⎡<br />
˘q 1 = ˘Qe 1 = 1<br />
˘r 11 ⎢<br />
⎣<br />
h 2 11 +h 12h 21 −sh 11 +p<br />
h 21 (h 11 +h 22 −s)<br />
h 21 h 32<br />
0<br />
.<br />
.<br />
0<br />
⎤<br />
, (4.151)<br />
⎥<br />
⎦<br />
not not<br />
unde s k = s şi p k = p sunt scalari reali definiţi în (4.133). Similar cu cazul pasului<br />
<strong>si</strong>mplu, numim ⎡<br />
⎤<br />
w = ⎣ h2 11 +h 12 h 21 −sh 11 +p<br />
h 21 (h 11 +h 22 −s) ⎦ ∈ IR 3 (4.152)<br />
h 21 h 32<br />
vector de deplasare implicită aferent pasului dublu QR.<br />
2. Matricea ortogonală U 1 de la instrucţiunea 2 a schemei de calcul de mai sus<br />
poate fi un reflector (real) astfel calculat încât<br />
U T 1 ˘q 1 = U 1˘q 1 = ±‖˘q 1 ‖e 1 . (4.153)<br />
Datorită structurii vectorului ˘q 1 din (4.151), structura matricei U 1 este<br />
[ ]<br />
Û1 0<br />
U 1 =<br />
0 I n−3<br />
(4.154)<br />
cu Û1 ∈ IR 3×3 reflector elementar (real) de ordinul 3.<br />
3. Datorită structurii (4.154) a matricei U 1 , alterarea formei Hessenberg prin<br />
calculul matricei B de la instrucţiunea 3 are loc numai în poziţiile (3,1), (4,1) şi<br />
(4,2).<br />
4. Matricea B având numai trei elemente nenule ce alterează forma superior<br />
Hessenberg,sporuldeeficienţăseobţineprinadaptareaalgoritmuluiHQrlaaceastă<br />
<strong>si</strong>tuaţie structurală. Concret, se evită operaţiile de adunare şi înmulţire cu zerouri,<br />
ţinându-se seama de următoarea structură<br />
⎡ ⎤<br />
I i−1 0 0<br />
[ ]<br />
U i = ⎣<br />
In−2 0<br />
0 Û i 0 ⎦, i = 2 : n−2, U n−1 = (4.155)<br />
0 Û<br />
0 0 I n−1<br />
n−i−2<br />
areflectorilorU i , i = 2 : n−1, utilizaţi în cadrulalgoritmuluiHQr, unde Ûi ∈ IR 3×3<br />
şi Ûn−1 ∈ IR 2×2 sunt reflectori elementari de indice 1.<br />
Schema de calcul este următoarea:
264 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. Pentru i = 2 : n−2<br />
1. Se calculează reflectorul elementar U i cu structura (4.155)<br />
astfel încât (Ui T B)(i+1 : i+2, i−1) = 0.<br />
2. B ← Ui T B. % Se anulează elementele (i+1 : i+2,i−1).<br />
3. B ← BU i . % Pentru i < n−2 sunt alterate zerourile<br />
din poziţiile (i+3,i : i+1).<br />
2. % Ultima transformare<br />
1. Se calculează reflectorul elementar U n−1 astfel încât<br />
(Un−1 T B)(n, n−2) = 0.<br />
2. B ← Un−1B. T % Se anulează elementul (n,n−2).<br />
3. B ← BU n−1 .<br />
În acest fel, eliminarea elementelor nenule care alterează structura Hessenberg se<br />
realizează prin ”deplasarea” lor de-a lungul unor trasee paralele cu diagonala principală.<br />
Pentruexemplificareprezentăm evoluţia structuralăamatricei B în cazul n = 5.<br />
Şi aici zerourile nou create au fost marcate cu ∅, alterările de zerouri au fost<br />
evidenţiate cu +, iar încadrările indică liniile şi/sau coloanele afectate de transformarea<br />
curentă.<br />
⎡<br />
H ← B = U1 T HU 1 =<br />
⎢<br />
⎣<br />
× × × × ×<br />
× × × × ×<br />
+ × × × ×<br />
+ + × × ×<br />
0 0 0 × ×<br />
⎤<br />
⎥<br />
⎦ ,<br />
⎡<br />
H ← U2 T H =<br />
⎢<br />
⎣<br />
× × × × ×<br />
× × × × ×<br />
∅ × × × ×<br />
∅ + × × ×<br />
0 0 0 × ×<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎡<br />
H ← HU 2 =<br />
⎢<br />
⎣<br />
×<br />
×<br />
0<br />
0<br />
0<br />
× × ×<br />
× × ×<br />
× × ×<br />
+ × ×<br />
+ + ×<br />
×<br />
×<br />
×<br />
×<br />
×<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎡<br />
H ← U3 T H = ⎢<br />
⎣<br />
× × × × ×<br />
× × × × ×<br />
0 × × × ×<br />
0 ∅ × × ×<br />
0 ∅ + × ×<br />
⎤<br />
,<br />
⎥<br />
⎦
4.4. ALGORITMUL QR 265<br />
⎡<br />
H ← HU 3 =<br />
⎢<br />
⎣<br />
⎡<br />
H ← U4 T H = ⎢<br />
⎣<br />
⎡<br />
H ← HU 4 =<br />
⎢<br />
⎣<br />
× ×<br />
× ×<br />
0 ×<br />
0 0<br />
0 0<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
+ × ×<br />
× × × × ×<br />
× × × × ×<br />
0 × × × ×<br />
0 0 × × ×<br />
0 0 ∅ × ×<br />
× × ×<br />
× × ×<br />
0 × ×<br />
0 0 ×<br />
0 0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
.<br />
⎥<br />
⎦<br />
Şi în această variantă adaptată a algoritmului HQr, atât matricea succesor<br />
H ′ cât şi matricea intermediară B pot suprascrie matricea H, i.e. toate calculele<br />
aferenteunui pasdublu QRcudeplasareimplicită sepot desfăşurape loc, întabloul<br />
matricei H.<br />
Din aceleaşi raţiuni de organizare corespunzătoare a algoritmului QR pentru<br />
matrice reale şi, mai ales, a algoritmului de ordonare a formei Schur reale (vezi<br />
secţiunea 4.6), vom introduce şi aici un algoritm distinct de calcul al vectorului de<br />
deplasare implicită asociat unui pas dublu QR.<br />
Algoritmul 4.7 (VD2 – <strong>Calculul</strong> vectorului de deplasare implicită<br />
pentru un pas dublu QR) (Dată o matrice superior Hessenberg H ∈<br />
∈ IR n×n , algoritmul calculează vectorul w ∈ IR 3 , de deplasare implicită<br />
pentru un pas dublu QR.)<br />
1. s = h n−1,n−1 +h nn<br />
2. p = h n−1,n−1 h nn −h n−1,n h n,n−1<br />
⎡<br />
⎤<br />
3. w = ⎣ h2 11 +h 12 h 21 −sh 11 +p<br />
h 21 (h 11 +h 22 −s) ⎦<br />
h 21 h 32<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
iar complexitatea sa este, evident, O(1).<br />
w = VD2(H),<br />
Cu acesteprecizăriputem prezentaalgoritmulde implementare aunui pas dublu<br />
QR cu deplasare implicită.<br />
✸
266 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Algoritmul 4.8 (IT QR2 – Pas dublu QR cu deplasare implicită)<br />
(Date o matrice superior Hessenberg ireductibilă H ∈ IR n×n şi vectorul<br />
de deplasare implicită w ∈ IR 3 , algoritmul suprascrie matricea H cu matricea<br />
succesor H ← H ′ = ˘Q T H ˘Q din şirul QR. Algoritmul furnizează,<br />
de asemenea, elementele definitorii semnificative ale reflectorilor utilizaţi,<br />
i.e. elementele definitorii ale blocurilor reflector 3×3 în matricele<br />
V ∈ IR 3×(n−1) şi b ∈ IR n−1 .)<br />
1. % <strong>Calculul</strong> şi aplicarea reflectorului U 1<br />
1. [w,V(:,1),b 1 ] = Hr(w)<br />
2. H(1:3,:) = Hrs(V(:,1),b 1 ,H(1:3,:))<br />
3. H(1:min(4,n),1:3) = Hrd(H(1:min(4,n),1:3),V(:,1),b 1 )<br />
2. % Refacerea formei superior Hessenberg<br />
1. Pentru i = 2 : n−2<br />
1. [H(i : i+2,i−1),V(:,i),b i ] = Hr(H(i : i+2,i−1))<br />
2. H(i : i+2,i: n) = Hrs(V(:,i),b i ,H(i : i+2,i : n))<br />
3. H(1 : min(i+3,n),i : i+2) =<br />
= Hrd(H(1 : min(i+3,n),i : i+2),V(:,i),b i )<br />
3. % Ultimul pas<br />
1. [H(n−1 : n, n−2),V(1:2, n−1),b n−1 ] =<br />
= Hr(H(n−1 : n,n−2))<br />
2. H(n−1 : n, n−1 : n) =<br />
= Hrs(V(1:2, n−1),b n−1 ,H(n−1 : n, n−1 : n))<br />
3. H(:, n−1 : n) = Hrd(H(:,n−1 : n),V(1:2,n−1),b n−1 ).<br />
Comentarii. Vom utiliza următoarea <strong>si</strong>ntaxă de apel a algoritmului de mai sus<br />
[H,V,b] = IT QR2(H,w).<br />
Complexitatea unui pas dublu QR realizat de algoritmul 4.8 este O(n 2 ). Concret,<br />
pentru execuţia algoritmului sunt necesari N op ≈ 24n 2 flopi (reali) la care se<br />
adaugă cele n−1 extrageri de radical. Subliniem faptul că această soluţie este cea<br />
mai eficientă implementare cunoscută a iteraţiilor QR pentru matricele reale, fiind<br />
utilizată în toate programele profe<strong>si</strong>onale de calcul al <strong>valorilor</strong> <strong>proprii</strong>.<br />
Algoritmul 4.8 nu calculează actualizarea matricei de transformare curente Q<br />
dar oferă, prin matricea V şi vectorul b, informaţia necesară pentru un eventual<br />
calcul al acesteia.<br />
✸<br />
G. Algoritmul QR pentru matrice reale<br />
Algoritmul QR pentru matrice reale 26 se obţine prin iterarea algoritmului 4.8,<br />
anularea efectivă a elementelor subdiagonale devenite neglijabile şi exploatarea<br />
26 Algoritmul ce urmează se poate aplica şi pentru calculul <strong>valorilor</strong> <strong>proprii</strong> ale matricelor<br />
complexe (mai mult, în unele pachete profe<strong>si</strong>onale de calcul numeric aşa se şi procedează).<br />
Într-adevăr, dacă C ∈ IC n×n se scrie C = A+iB cu A, B ∈ IR n×n , atunci este uşor de arătat că
4.4. ALGORITMUL QR 267<br />
structurală a acestor anulări în vederea obţinerii unei eficienţe maxime. După<br />
epuizarea procedurii de iterare se obţine o matrice cva<strong>si</strong>superior triunghiulară, ortogonal<br />
asemenea cu matricea iniţială, cu blocurile diagonale de dimen<strong>si</strong>une cel<br />
mult 2×2. Pentru obţinerea unei forme Schur reale a matricei iniţiale, algoritmul<br />
se completează cu reducerea la forma superior triunghiulară a blocurilor diagonale<br />
2×2 care au valori <strong>proprii</strong> reale.<br />
Aspectele tehnice, pe care le trecem succint în revistă mai jos, sunt <strong>si</strong>milare cu<br />
cele din cazul complex.<br />
Pentrudeciziiledesetarelazeroaelementelorsubdiagonaleseutilizeazăcriteriul<br />
dat de relaţia (4.144).<br />
Similarcualgoritmul4.6, pentru monitorizareaevoluţieistructuraleamatricelor<br />
din şirul QR, la fiecare iteraţie, după anularea elementelor subdiagonale care satisfac<br />
condiţia (4.144), se va determina cel mai mic întreg p şi cel mai mare întreg q<br />
astfel încât matricea Hessenberg curentă să aibă structura (4.146) cu H 11 ∈ IC p×p ,<br />
H 22 ∈ IC (n−p−q)×(n−p−q) superior Hessenberg ireductibilă şi H 33 ∈ IR q×q cva<strong>si</strong>superior<br />
triunghiulară (i.e. cu blocurile diagonale de dimen<strong>si</strong>une cel mult 2 × 2).<br />
Astfel, blocurile diagonale ale submatricei H 33 au valori <strong>proprii</strong> pe care le con<strong>si</strong>derăm<br />
”deja evidenţiate” (alte valori<strong>proprii</strong> evidenţiate se pot gă<strong>si</strong> printrevalorile<br />
<strong>proprii</strong> ale blocurilor diagonale de dimen<strong>si</strong>une cel mult 2×2 ale submatricei H 11 ),<br />
iar iteraţia QR se va aplica, de fapt, numai submatricei H 22 (v. (4.146)-(4.148)).<br />
Această transformare afectează celelalte blocuri ale matricei H din (4.146) ca în<br />
relaţia (4.149).<br />
Faza iterativă a algoritmului QR se termină în momentul în care ordinul submatricei<br />
H 22 scade la cel mult 2, i.e. q devine mai mare sau egal cu n−2.<br />
Supravegherea convergenţei procesului iterativ se efectuează <strong>si</strong>milar cu cazul<br />
complex, cu următoarele aspecte specifice:<br />
– aprecierea convergenţei se face la nivelul evidenţierii unui bloc diagonal în<br />
colţul din dreapta jos al submatricei H 22 (în 10 sau 20 de iteraţii pentru modificarea<br />
modului de calcul alvectoruluide deplasareimplicită, respectiv 30de iteraţii pentru<br />
renunţarea la continuarea calculului);<br />
– pentru calculul vectorului de deplasare implicită w modificat în (4.152) se vor<br />
utiliza următoarele relaţii empirice pentru suma şi produsul deplasărilor µ 1 şi µ 2<br />
{<br />
s = 1.5(|hn−q,n−q−1 |+|h n−q−1,n−q−2 |)<br />
p = (|h n−q,n−q−1 |+|h n−q−1,n−q−2 |) 2 (4.156)<br />
,<br />
valorile şi vectorii [ <strong>proprii</strong> ale ] matricei C se pot exprima în funcţie de valorile şi vectorii <strong>proprii</strong> ale<br />
A −B<br />
matricei F = ∈ IR<br />
B A<br />
2n×2n . Concret, fiecărei valori <strong>proprii</strong> complexe λ k a matricei C,<br />
cu x k = u k +iv k (u k ,v k ∈ IR n ) vector propriu asociat, îi corespund [ valorile ] <strong>proprii</strong> λ]<br />
k şi conjugata<br />
ei ¯λ uk<br />
k , ale matricei reale F, cu vectorii <strong>proprii</strong> asociaţi de forma −i[ −vk<br />
şi, respectiv,<br />
v k u<br />
[ ] ]<br />
k<br />
uk<br />
+i[ −vk<br />
, iar fiecărei valori <strong>proprii</strong> reale λ<br />
v k u k , cu vectorul propriu asociat notat identic,<br />
k<br />
i.e. x k = u k + iv k cu u[ k , v k ∈]<br />
IR n [, a matricei ] C, îi corespunde o valoare proprie dublă λ k şi doi<br />
uk −vk<br />
vectori <strong>proprii</strong> asociaţi şi ai matricei reale F. Dacă se calculează numai valorile<br />
v k u k<br />
<strong>proprii</strong> ale matricei F nu se poate deduce prin mijloace <strong>si</strong>mple care din valorile <strong>proprii</strong> complex<br />
conjugate ale matricei F aparţin spectrului lui C.
268 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
recomandate în [X].<br />
La terminarea cu succes a fazei iterative, triangularizarea blocurilor diagonale<br />
2×2 cu valori <strong>proprii</strong> reale se poate face aplicând procedura standard de deflaţie.<br />
Dacă G ∈ IR 2×2 are valorile <strong>proprii</strong> reale, i.e.<br />
∆ = (g 11 −g 22 ) 2 +4g 12 g 21 ≥ 0, (4.157)<br />
atunci<br />
x 1 =<br />
[ ]<br />
λ1 −g 22<br />
g 21<br />
este un vector propriu asociat valorii <strong>proprii</strong> λ 1 ∈ λ(G) dată de<br />
(4.158)<br />
λ 1 = g 11 +g 22 +sgn(g 11 +g 22 ) √ ∆<br />
. (4.159)<br />
2<br />
Atunci rotaţia P ∈ IR 2×2 , care a<strong>si</strong>gură satisfacerea condiţiei (P T x 1 )(2) = 0, are<br />
prima coloană coliniară cu x 1 şi, conform lemei 4.3, realizează triangularizarea<br />
urmărită<br />
[ ]<br />
˜G = P T λ1 ˜g<br />
GP = 12<br />
. (4.160)<br />
0 λ 2<br />
Dacă blocul diagonal ce trebuie triangularizat, pe care îl notăm generic cu G, se<br />
află în poziţia definită de liniile şi coloanele k şi k + 1, atunci rezultatul dorit se<br />
obţine aplicând matricei date o transformare ortogonală de asemănare definită de<br />
matricea diag(I k−1 ,P,I n−k−1 ).<br />
Învedereaunei scrierimaiconciseaalgoritmuluiQRcudeplasareimplicită pentru<br />
matrice reale, prezentăm aici un algoritm preliminar care procesează perechea<br />
bloc-diagonală 2×2 aflată în poziţia (k,k +1).<br />
Algoritmul 4.9 (TRID2 – Triangularizarea unui bloc diagonal<br />
2 × 2) (Dată o matrice S ∈ IR n×n în formă cva<strong>si</strong>superior triunghiulară<br />
şi întregul k ∈ 1 : n−1 algoritmul testează dacă submatricea<br />
S(k : k+1,k : k+1) are valorile <strong>proprii</strong> reale şi, în caz afirmativ, calculează<br />
triangularizarea ortogonală a blocului diagonal vizat, rezultatul<br />
suprascriindmatriceaS. Deasemenea, algoritmulreturneazăelementele<br />
definitorii c şi s ale rotaţiei reale calculate. În caz contrar matricea<br />
S rămâne nemodificată şi, pentru identificarea acestei <strong>si</strong>tuaţii, se returnează<br />
c = 1, s = 0.)<br />
1. c = 1, s = 0<br />
2. β = s k,k +s k+1,k+1 , γ = s k,k s k+1,k+1 −s k,k+1 s k+1,k , ∆ = β 2 −4γ.<br />
3. Dacă ∆ ≥ 0 atunci<br />
1. λ = (β +sgn(β) √ ∆)/2<br />
[ ]<br />
λ−sk+1,k+1<br />
2. x =<br />
s k+1,k<br />
3. [x,c,s] = Gr(x)<br />
4. S(1 : k+1,k:k+1) = Grd(S(1 : k+1,k:k+1),c,s)
4.4. ALGORITMUL QR 269<br />
5. S(k:k+1,k:n) = Grs(c,s,S(k: k+1,k:n))<br />
6. S(k+1,k) = 0 % Zeroul calculat devine un zero efectiv.<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
iar complexitatea sa este O(n).<br />
[S,c,s] = TRID2(S,k),<br />
Cu precizările de mai sus, algoritmul QR standard cu paşi dubli cu deplasări<br />
implicite pentru calculul formei Schur reale se scrie astfel.<br />
Algoritmul 4.10 (QR2– Algoritmul QR cu paşi dubli, cu deplasări<br />
implicite) (Date o matrice A ∈ IR n×n , o matrice ortogonală Q ∈ IR n×n<br />
şi un nivel de toleranţă tol pentru anularea elementelor subdiagonale,<br />
algoritmul calculează forma Schur reală a matricei A ← S = ˜Q T A˜Q.<br />
Toate calculele se efectuează pe loc, în locaţiile de memorie ale tabloului<br />
A. Opţional, se acumulează transformările prin actualizarea matricei<br />
ortogonale Q, i.e. Q ← Q˜Q. Opţiunea se exprimă prin intermediul<br />
variabilei logice opt de tip şir de caractere care poate lua valorile ’da’<br />
sau ’nu’. Dacă opt = ′ nu ′ , matricea Q rămâne nemodificată.)<br />
1. Dacă n = 1 atunci return<br />
2. % Reducerea la forma Hessenberg<br />
1. [A,Q] =HQr(A,Q,opt)<br />
3. % Faza iterativă<br />
1. p = 0, q = 0, cont it = 0<br />
2. C^at timp q < n<br />
1. % Anularea elementelor subdiagonale neglijabile<br />
1. Pentru i = p+1 : n−q −1<br />
1. Dacă |a i+1,i | ≤ tol(|a ii |+|a i+1,i+1 |) atunci<br />
1. a i+1,i = 0<br />
2. % Determinarea lui q<br />
1. continuă = ′ da ′<br />
2. C^at timp continuă = ′ da ′<br />
1. Dacă q ≥ n−2 atunci break<br />
2. Dacă a n−q,n−q−1 = 0<br />
atunci<br />
1. q ← q +1<br />
2. cont it = 0<br />
altfel<br />
1. Dacă a n−q−1,n−q−2 = 0<br />
atunci<br />
1. q ← q +2<br />
2. cont it = 0<br />
altfel continuă = ′ nu ′ .<br />
✸
270 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
3. % Terminarea normală a fazei iterative<br />
1. Dacă q ≥ n−2 atunci break<br />
4. % Terminarea prin eşec a algoritmului<br />
1. Dacă cont it > 30 atunci<br />
1. Tipăreşte ’S-au consumat 30 iteraţii QR pentru<br />
evidenţierea unui bloc diagonal fără a se atinge<br />
acest obiectiv. Este po<strong>si</strong>bil ca, pentru aceste date<br />
de intrare, algoritmul QR să nu fie convergent.’<br />
2. Return<br />
5. % Determinarea lui p<br />
1. p = n−q −1<br />
2. C^at timp a p+1,p ≠ 0<br />
1. p = p−1<br />
2. Dacă p = 0 atunci break<br />
6. % Iteraţia curentă<br />
1. k = p+1, l = n−q<br />
2. w = VD2(A(k:l,k:l))<br />
3. % <strong>Calculul</strong> deplasării implicite modificate<br />
1. Dacă cont it = 10 sau cont it = 20 atunci<br />
1. s = 1.5(|a l,l−1 |+|a l−1,l−2 |)<br />
2. p = (|a l,l−1 |+|a l−1,l−2 |) 2<br />
⎡<br />
3. w = ⎣ a2 kk +a k,k+1a k+1,k −sa kk +p<br />
a k+1,k (a kk +a k+1,k+1 −s) ⎦<br />
a k+1,k a k+2,k+1<br />
4. [A(k : l,k : l),V,b] = IT QR2(A(k:l,k:l),w)<br />
5. t = 3<br />
6. Pentru i = 1 : l−k<br />
1. Dacă i = l−k atunci t = 2<br />
2. r = min(p+i+2,l)<br />
3. Dacă k > 1 atunci<br />
1. A(1 : p,p+i : r) =<br />
= Hrd(A(1 : p,p+i : r),V(1:t,i),b i )<br />
4. Dacă l < n atunci<br />
1. A(p+i : r,l+1 : n) =<br />
= Hrs(V(1:t,i),b i ,A(p+i : r,l+1 : n))<br />
7. cont it = cont it+1<br />
7. Dacă opt =’da’ atunci<br />
1. t = 3<br />
2. Pentru i = 1 : l−k<br />
1. Dacă i = l−k atunci t = 2<br />
2. r = min(p+i+2,l)<br />
3. Q(:, p+i : r) = Hrd(Q(:, p+i : r),V(1:t,i),b i ))<br />
⎤
4.4. ALGORITMUL QR 271<br />
4. % Triangularizareablocurilor diagonale 2×2 cu valori <strong>proprii</strong> reale<br />
1. k = 1<br />
2. C^at timp k < n<br />
1. Dacă a k+1,k = 0 atunci k = k +1,<br />
altfel<br />
1. [A,c,s] =TRID2(A,k)<br />
2. Dacă opt =’da’ şi c ≠ 1 atunci<br />
1. Q(:,k:k+1) = Grd(Q(:,k:k+1),c,s)<br />
3. k = k +2<br />
Comentarii. În aspectele sale esenţiale, algoritmul de mai sus stă la baza tuturor<br />
programelor profe<strong>si</strong>onale de calcul al <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice reale.<br />
Precizările referitoare la aspectele de organizare a algoritmului făcute la varianta<br />
complexă rămân valabile. Sintaxa de utilizare a algoritmului de mai sus va fi<br />
[A,Q] = QR2(A,Q,tol,opt).<br />
Acceptând evaluarea conform căreia sunt suficiente, în medie, două iteraţii<br />
pentru a pune în evidenţă o valoare proprie, algoritmul nece<strong>si</strong>tă un număr de<br />
Nop A = 30n3 flopi fără acumularea transformărilor, Nop Q = 16n3 flopi suplimentari<br />
pentru calculul <strong>vectorilor</strong> Schur, i.e. al matricei ortogonale Q. Putem, deci,<br />
con<strong>si</strong>dera că pentru matrice de ordin superior (e.g. n > 100) algoritmul QR2 are o<br />
complexitate O(n 3 ).<br />
Şi aici, utilizarea exclu<strong>si</strong>vă a transformărilor ortogonale conferă algoritmului<br />
QR2 o foarte bună stabilitate numerică. Pentru aspecte suplimentare, referitoare<br />
la condiţionarea <strong>valorilor</strong> <strong>proprii</strong> şi stabilitatea numerică a algoritmului de mai sus,<br />
vezi secţiunile §4.10 şi §4.11.<br />
✸<br />
H. Permutare şi echilibrare<br />
Implementările profe<strong>si</strong>onale ale algoritmului QR conţin o fază de prelucrări preliminare<br />
efectuate asupra matricei A care urmăresc două obiective:<br />
– a) creşterea eficienţei prin evidenţierea eventualelor valori <strong>proprii</strong> ”izolate”<br />
utilizând exclu<strong>si</strong>v transformări de asemănaredefinite de matrice de permutare (deci<br />
fără efectuarea de operaţii aritmetice);<br />
– b) îmbunătăţirea condiţionării spectrului de valori <strong>proprii</strong> prin transformări<br />
de asemănare diagonale şi, în acest mod, a<strong>si</strong>gurarea unei acurateţi superioare a<br />
rezultatelor.<br />
Permutare<br />
Dacă matricea A ∈ IC n×n are toate elementele extradiagonale ale liniei sau coloanei<br />
i nule, atunci elementul diagonal (i,i) este o valoare proprie a matricelor A T şi A<br />
şi, fapt esenţial, e i este un vector propriu al matricei A T , respectiv A, asociat ei.<br />
De aceea, elementul diagonal (i,i) poate fi adus în poziţia (1,1) sau (n,n) printr-o
272 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
”deflaţiedepermutare”, i.e. printr-otransformaredeasemănaredefinită deomatrice<br />
de permutare elementară P 1i 27 , respectiv P in . Evident, acest proces poate continua<br />
examinând matricea rămasă A(2 : n,2 : n) sau A(1 : n−1,1 : n−1). Pentru<br />
a <strong>si</strong>stematiza procesul de căutare şi permutare vom deplasa mai întâi liniile cu<br />
elementele extradiagonalenule în jos (i.e. pe ultima linie a matricei rămasecurente)<br />
conformschemeiprezentatemaijos. Pentruclaritate, utilizăminstrucţiunea”break<br />
i”pentruieşireaforţatădinciclul”pentrui = ...”, variabiladeindexareirămânând<br />
cu valoarea avută în momentul ieşirii din ciclu.<br />
1. Pentru l = n : −1 : 1<br />
1. Pentru i = l : −1 : 1<br />
1. Dacă elementele extradiagonale ale liniei i ale matricei A(1 : l,1 : l)<br />
sunt nule atunci<br />
1. Se permută liniile i şi l ale matricei A<br />
2. Se permută coloanele i şi l ale matricei A<br />
3. break i<br />
altfel dacă i = 1 (i.e. nu există nici o linie a matricei A(1 : l,1 : l)<br />
cu toate elementele extradiagonale nule) atunci<br />
1. break l<br />
Se obţine o matrice având structura<br />
Ǎ = P T 1 AP 1 =<br />
[ ]<br />
Ǎ11 Ǎ 12<br />
, (4.161)<br />
0 Ǎ 22<br />
cuǍ11 ∈ IC l×l fărănicioliniecutoateelementeleextradiagonalenuleşiǍ22 superior<br />
triunghiulară. Matricea de permutare P 1 cumulează toate permutările efectuate.<br />
Procedând <strong>si</strong>milar cu matricea Ā11 prin deplasarea coloanelor cu toate elementele<br />
extradiagonale nule spre stânga (i.e., la fiecare pas, în prima coloană a<br />
matricei ”rămase”) se obţine în final o matrice cu structura<br />
⎡ ⎤<br />
à 11 à 12 à 13<br />
à = P T AP = ⎣ 0 à 22 à 23<br />
⎦, (4.162)<br />
0 0 Ã 33<br />
cu Ã11, à 33 superior triunghiulare şi à 22 fără nici o linie şi nici o coloană cu toate<br />
elementele extradiagonale nule. Matricea de permutare P cumulează permutările<br />
efectuate.<br />
Elementele diagonale ale matricelor Ã11 şi à 33 sunt valori <strong>proprii</strong> ale matricei A<br />
careau fost puse în evidenţă fără a efectua nici o operaţie aritmetică. Pentruaflarea<br />
celorlalte valori <strong>proprii</strong> algoritmul QR se aplică numai blocului à 22 . Dacă pe lângă<br />
calculul <strong>valorilor</strong> <strong>proprii</strong> se urmăreşte şi calculul <strong>vectorilor</strong> <strong>proprii</strong>, atunci trebuie<br />
reţinută matricea de permutare P (de obicei, în formă factorizată, prin reţinerea<br />
27 Amintim că matricea de permutare elementară P ij se obţine din matricea unitate prin permutarea<br />
liniilor (sau coloanelor) i şi j. Premultiplicarea (postmultiplicarea) unei matrice cu P ij<br />
are ca efect permutarea liniilor (coloanelor) i şi j.
4.4. ALGORITMUL QR 273<br />
elementelor definitorii ale permutărilor elementare). Transformările efectuate de<br />
algoritmul QR aplicat blocului à 22 definite Ã22 ← S 22 = Q H 22Ã22Q 22 vor acţiona<br />
şi asupra blocurilor Ã12 şi à 23 , i.e. vom efectua Ã12 ← Ã12Q 22 şi, respectiv,<br />
à 23 ← Q H 22Ã23.<br />
Algoritmul de reducere la forma (4.162), în care este utilizată instrucţiunea<br />
break având semnificaţia precizată mai sus, este următorul.<br />
Algoritmul 4.11 (Π – Evidenţierea, prin permutări, a <strong>valorilor</strong><br />
<strong>proprii</strong> izolate) (Dată matricea A ∈ IC n×n , algoritmul calculează o matrice<br />
de permutare P astfel încât matricea à = PT AP să aibă structura<br />
(4.162) având blocurile Ã11 = Ã(1 : k−1,1 : k−1) şi à 33 =<br />
= Ã(l+1:n,l+1:n) superior triunghiulare iar blocul à 22 = Ã(k : l,k : l)<br />
nu are nici o linie şi nici o coloană cu toate elementele extradiagonale<br />
nule. Matricea à suprascrie matricea A, iar permutările elementare<br />
sunt memorate prin elementele vectorului p ∈ IN n , p(i) ≠ i având<br />
drept semnificaţie faptul că linia (şi coloana) i a fost permutată cu<br />
linia (respectiv, coloana) p(i). Ordinea de aplicare a permutărilor este<br />
p(n),p(n−1),...,p(l+1),p(1),p(2),...,p(k −1).)<br />
1. p = [0 0 ... 0]<br />
2. Pentru l = n : −1 : 1<br />
1. Pentru i = l : −1 : 1<br />
1. Dacă A(i,j) = 0, j = 1 : l, j ≠ i, atunci<br />
1. A(i, :) ↔ A(l, :)<br />
2. A(1 : l,i) ↔ A(1 : l,l)<br />
3. p(l) = i<br />
4. break i<br />
altfel dacă i = 1 atunci<br />
1. break l<br />
3. Pentru k = 1 : l<br />
1. Pentru j = k : l<br />
1. Dacă A(i,j) = 0, i = k : l, i ≠ j, atunci<br />
1. A(j,k : n) ↔ A(k,k : n)<br />
2. A(1 : l,j) ↔ A(1 : l,k)<br />
3. p(k) = j<br />
4. break j<br />
altfel dacă j = l atunci<br />
1. break k<br />
Comentarii. Vom utiliza în continuare următoarea <strong>si</strong>ntaxă pentru apelarea algoritmului<br />
de permutare de mai sus:<br />
[A,p,k,l] = Π(A),<br />
unde semnificaţia parametrilor este evidentă.
274 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Trebuie precizat că algoritmul Π nu pune în evidenţă, în cazul general, toate<br />
valorile<strong>proprii</strong>”izolate”, i.e. cares-arputeaobţine fărăaefectua calculearitmetice.<br />
Astfel, dacă matricea iniţială are, e.g. structura<br />
⎡<br />
A =<br />
⎢<br />
⎣<br />
× × × × × ×<br />
× × × × × ×<br />
0 0 × × × ×<br />
0 0 0 × × ×<br />
0 0 0 0 × ×<br />
0 0 0 0 × ×<br />
unde elementele marcate × sunt nenule, aceasta nu va fi modificată de algoritmul<br />
de mai sus (întrucât nu are nici o linie şi nici o coloană cu toate elementele extradiagonale<br />
nule) deşi se vede clar că elementele (3,3) şi (4,4) sunt valori <strong>proprii</strong>.<br />
Obţinerea prin transformări de asemănare cu permutări a structurii bloc (4.162)<br />
nu mai este po<strong>si</strong>bilă în acest caz pentru că vectorii <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong><br />
remarcate au o structură mai complexă.<br />
✸<br />
Echilibrare<br />
Aşa cum vom vedea în §4.10, condiţionarea spectrului de valori <strong>proprii</strong> ale unei<br />
matrice A este dependentă de ‖A‖ F şi este de dorit ca această normă să fie cât<br />
mai mică. Pe de altă parte, toate transformările efectuate în diversele variante ale<br />
algoritmului QR sunt unitare (ortogonale) deci, printre altele, a<strong>si</strong>gură conservarea<br />
condiţionării spectrului. Se ridică în mod natural problema dacă, într-o fază preliminară,<br />
această condiţionare nu ar putea fi îmbunătăţită aplicând transformări de<br />
asemănare neunitare (neortogonale).<br />
Din motive de eficienţă, în practica numerică s-a pus numai problema unei preprocesări<br />
a matricei A în sensul reducerii iniţiale a normei ‖A‖ F<br />
prin transformări<br />
de asemănare definite de matrice diagonale, i.e. a determinării matricei diagonale<br />
D = diag(d 1 ,d 2 ,...,d n ), astfel încât ‖D −1 AD‖ F<br />
să fie minimă 28 .<br />
Fie D⊂IR n×n mulţimea tuturor matricelor diagonale ne<strong>si</strong>ngulare de ordinul n.<br />
Procesul de minimizare a normei ‖D −1 AD‖ F<br />
are la bază următoarelerezultate [X].<br />
1 ◦ . Pentru orice matrice ireductibilă 29 A ∈ IR n×n 30 există o matrice A c ∈<br />
∈ IR n×n astfel încât ‖A c ‖ F = inf D∈D ‖D −1 AD‖ F<br />
.<br />
2 ◦ . Se poate construi recurent un şir de matrice (A k ), diagonal asemenea cu A,<br />
astfel încât A ∞ = lim k→∞ A k = A c .<br />
3 ◦ . Matricea A c este echilibrată în sensul că normele euclidiene ale liniilor şi<br />
coloanelor cu acelaşi indice sunt egale, i.e. ‖A c (k,:)‖ = ‖A c (:,k)‖, ∀ k ∈ 1 : n.<br />
4 ◦ . Oricarear fi matriceadiagonalăne<strong>si</strong>ngularăD 0 şirurile (A k ) şi (B k ) asociate<br />
matricelor iniţiale A şi, respectiv, B = D0 −1 AD 0 au aceeaşi limită A c .<br />
Aceste rezultate teoretice nu pot fi utilizate ca atare într-o operaţie de precondiţionare<br />
a unei matrice întrucât înseşi aceste calcule sunt afectate de erorile de<br />
28 Evident, pot fi utilizate şi alte norme matriceale con<strong>si</strong>stente.<br />
29 O matrice A ∈ IR n×n (sau A ∈ IC n×n ), n[ ≥ 2 se numeşte ] ireductibilă dacă nu există nici o<br />
B C<br />
matrice de permutare P astfel încât P T AP = cu B ∈ IR<br />
0 D<br />
r×r , 1 ≤ r < n.<br />
30 Cazul matricelor complexe se tratează analog.<br />
⎤<br />
,<br />
⎥<br />
⎦
4.4. ALGORITMUL QR 275<br />
rotunjire şi, în consecinţă, se obţine o matrice cu un spectru mai robust dar, po<strong>si</strong>bil,<br />
deja afectat de erori de nivel inadmi<strong>si</strong>bil.<br />
Ţinând seama de aceste observaţii, algoritmii de precondiţionare utilizaţi în<br />
practică au drept obiectiv concret o echilibrare cât mai bună a normelor euclidiene<br />
ale liniilor şi coloanelor cu acelaşi indice prin utilizarea unor matrice de transformarediagonalecarepermitefectuareaunorcalculeexacteînformatulvirgulămobilă<br />
(FVM) al maşinii ţintă. Pentru aceastafie β baza de numeraţie a FVM utilizat 31 şi<br />
D β ⊂ D mulţimea matricelor diagonale de forma D = diag(β σ1 ,β σ2 ,...,β σn ), σ i ∈<br />
∈ Z, i = 1 : n. Întrucât calculul matricei D −1 AD implică numai operaţii de<br />
înmulţire şi împărţire, aceste calcule se efectuează exact 32 şi precondiţionarea matricei<br />
este efectiv utilă pentru îmbunătăţirea preciziei <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong><br />
calculaţi.<br />
Pentru prezentarea algoritmului de echilibrare con<strong>si</strong>derăm matricea A ∈ IR n×n<br />
şi scriem<br />
A = A D +A 0 , unde A D = diag(A), (4.163)<br />
i.e. A 0 este matricea elementelor extradiagonale ale lui A. Se constată imediat că<br />
pentru orice matrice D ∈ D avem<br />
D −1 AD = A D +D −1 A 0 D, (4.164)<br />
i.e. elementele diagonalenu sunt afectate de transformărilediagonalede asemănare.<br />
Prin urmare, pentru reducerea normei lui D −1 AD este suficient să acţionăm numai<br />
asupra matricei A 0 . Vom presupune în continuare că matricea A 0 nu are nici o linie<br />
şi nici o coloană nule 33 .<br />
Reducerea ‖D −1 A 0 D‖ F<br />
se face iterativ construind şirul A k , k = 0,1,2,...,<br />
printr-o relaţie recurentă de forma<br />
A k+1 = D −1<br />
k A kD k , (4.165)<br />
cu D k ∈ D β astfel calculat încât ‖A k+1 ‖ F să fie cât mai mică. Vom efectua această<br />
minimizare descompunând matricea D k într-un produs de matrice diagonale elementare<br />
D k = D k1 D k2···D kn , (4.166)<br />
cu D ki = diag(1,1,...,d ki ,...,1) cu d ki = β σ ki<br />
(pe poziţia diagonală (i,i)) şi<br />
maximizând scăderea de normă<br />
δ ki<br />
def<br />
= ‖A ki ‖ F 2 −‖A k,i+1 ‖ F 2 , (4.167)<br />
unde A ki = D k,i−1···D−1 −1<br />
k2 D−1 k1 A kD k1 D k2···D k,i−1 , i = 0 : n − 1, A k0 = A k ,<br />
A kn = A k+1 . Pentru aceasta fie, pentru început, d ki = ν o variabilă reală şi<br />
31 Uzual β = 2, dar se întâlnesc şi <strong>si</strong>tuaţii cu β = 10 sau β = 16.<br />
32 Dacă α = (m,e) este reprezentarea în FVM a numărului real α, unde m este mantisa iar e<br />
exponentul, atunci α ∗ β σ = (m,e + σ) şi α/β σ = (m,e − σ) deci este afectat numai exponentul<br />
care, fiind întreg, se calculează exact. Dacă se utilizează un limbaj de programare de nivel înalt<br />
este po<strong>si</strong>bil să fie necesar ca porţiunile de cod pentru efectuarea acestor operaţii să fie scrise în<br />
limbaj de asamblare.<br />
33 În caz contrar se foloseşte algoritmul de permutare Π şi precondiţionarea se aplică unei<br />
matrice de ordin redus.
276 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
ρ ki = ‖A ki (i,:)‖, κ ki = ‖A ki (:,i)‖ normele liniei, respectiv a coloanei i a matricei<br />
A ki , <strong>si</strong>ngurele afectate de transformarea definită de D ki . (Datorită ipotezei că<br />
matricea A 0 nu are linii sau coloane nule avem ρ ki κ ki ≠ 0). Atunci diferenţa din<br />
(4.167), ca funcţie de ν, are expre<strong>si</strong>a<br />
δ ki (ν) = ‖A ki ‖ F 2 −‖A k,i+1 ‖ F 2 = ρ 2 ki +κ 2 ki −( ρ2 ki<br />
ν 2 +κ2 kiν 2 ) (4.168)<br />
şi este maximă pentru<br />
ν ∗ =<br />
√<br />
ρki<br />
κ ki<br />
. (4.169)<br />
Acum, con<strong>si</strong>derăm d ki = β σ ki<br />
cel mai apropiat de valoarea de mai sus a lui ν ∗ , i.e.<br />
acel σ ki întreg (unic determinat) pentru care<br />
sau, echivalent,<br />
β σ ki− 1 2 < ν ∗ ≤ β σ ki+ 1 2 (4.170)<br />
β 2σ ki−1 < ρ ki<br />
κ ki<br />
≤ β 2σ ki+1 . (4.171)<br />
<strong>Calculul</strong> efectiv al lui σ def<br />
= σ ki , pentru µ def<br />
= ρ ki<br />
κ ki<br />
> 0 dat, se poate face eficient<br />
observând că<br />
β 2σ−1 < µ ≤ β 2σ+1 ⇐⇒ µ ≤ β 2σ+1 < µβ 2 , (4.172)<br />
observaţie care conduce la următoarea schemă de calcul.<br />
σ 1. σ = 0<br />
2. ν = 1<br />
3. α = β<br />
4. C^at timp α < µ<br />
1. σ ← σ +1<br />
2. ν = νβ<br />
3. α = αβ 2<br />
5. C^at timp α ≥ µβ 2<br />
1. σ ← σ −1<br />
2. ν = ν β<br />
3. α = α β 2<br />
De reţinut că toate calculele din schema de mai sus se pot efectua exact (i.e.<br />
instrucţiunile 4.2, 4.3, 5.2, 5.3 conţin operaţii aritmetice care se efectuează, esenţial,<br />
în numere întregi), iar după execuţia lor avem α = β 2σ+1 şi ν = β σ , cea mai<br />
apropiată valoare de acest tip de valoarea optimă ν ∗ .<br />
Pentru a se evita cicluri, po<strong>si</strong>bile datorită formei speciale a elementelor matricelor<br />
diagonale de transformare, modificarea efectivă a unei perechi linie-coloană<br />
i are loc numai atunci când valoarea relativă a lui δ de la un pas elementar este<br />
superioară unei toleranţe tol impuse, i.e.<br />
δ ki (d ki ) = ρ 2 ki +κ2 ki −(ρ2 ki<br />
d 2 +κ 2 ki d2 ki ) > tol(ρ2 ki +κ2 ki ) (4.173)<br />
ki
4.4. ALGORITMUL QR 277<br />
sau<br />
( ρ ki<br />
) 2 +(κ ki d ki ) 2 < γ(ρ 2 ki<br />
d +κ2 ki )) (4.174)<br />
ki<br />
unde γ = 1−tol. Valoarea recomandată în [X] pentru tol este 0.05, respectiv 0.95<br />
pentru γ.<br />
Procesuldeiterareseopreşteatuncicândlapasulcurentk nuarelocmodificarea<br />
nici unei perechi linie-coloană.<br />
Rezultă următorul algoritm.<br />
Algoritmul 4.12 (ECH – Echilibrare) (Date matricea A ∈ IC n×n<br />
şi baza β a <strong>si</strong>stemului de numeraţie, algoritmul calculează matricea diagonală<br />
D, având ca elemente diagonale numai puteri întregi ale bazei β,<br />
astfel încât matricea à = D−1 AD să aibă norma Frobenius minimă în<br />
raport cu toate transformările de acest tip. Matricea à suprascrieA, iar<br />
puterile σ i ale bazei β, care definesc elementele diagonale D(i,i) = β σi ,<br />
sunt memorate în vectorul s ∈ Z n .)<br />
1. Pentru i = 1 : n<br />
1. s i = 0<br />
2. η = β 2<br />
3. final = ′ nu ′<br />
4. C^at timp final = ′ nu ′<br />
1. final = ′ da ′<br />
2. Pentru i = 1 : n<br />
1. ρ = ∑ n<br />
j=1 |a ij | 2 , κ = ∑ n<br />
j=1 |a ji | 2<br />
j≠i j≠i<br />
2. µ = ρ κ<br />
3. ν = 1<br />
4. α = β<br />
5. σ = s(i)<br />
6. C^at timp α < µ<br />
1. σ ← σ +1<br />
2. ν = νβ<br />
3. α = αη<br />
7. C^at timp α ≥ µη<br />
1. σ ← σ −1<br />
2. ν = ν β<br />
3. α = α η<br />
8. Dacă ρ ν 2 +κν2 < 0.95(ρ+κ) atunci<br />
1. s(i) = σ<br />
2. A(i,:) ← A(i,:) , A(:,i) ← A(:,i)ν<br />
ν<br />
3. final = ′ nu ′ .
278 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Comentarii. Apelul algoritmului se poate face cu <strong>si</strong>ntaxa<br />
[A,s] = ECH(A,β).<br />
Variabila logică final este utilizată pentru se<strong>si</strong>zarea apariţiei unui pas în care nu<br />
are loc modificarea nici unei perechi linie-coloană şi a stabili astfel terminarea algoritmului.<br />
În unele implementări profe<strong>si</strong>onale ale algoritmului, pentru reducerea efortului<br />
de calcul, în locul echilibrării normelor euclidiene ale liniilor şi coloanelor, se<br />
efectuează o echilibrare a normelor ‖ · ‖ 1 ale acestora. Ţinând seama de faptul<br />
că ‖z‖ ≤ ‖z‖ 1 ≤ √ n‖z‖, o echilibrare a normelor ‖ · ‖ 1 are drept consecinţă şi o<br />
echilibrare, con<strong>si</strong>derată corespunzătoare în aplicaţiile curente, a normelor euclidiene.<br />
Într-un astfel de caz, instrucţiunea 4.2.1 se modifică adecvat.<br />
Avându-se în vedere caracterul iterativ, complexitatea algoritmului nu poate<br />
fi evaluată exact. Totuşi, întrucât majoritatea calculelor se fac practic cu numere<br />
întregi,sepoateapreciacăpondereaeventualeiutilizăriaalgoritmuluideechilibrare<br />
în calculul <strong>valorilor</strong> <strong>proprii</strong> este puţin semnificativă.<br />
✸<br />
Permutare şi echilibrare<br />
Algoritmii de permutare şi echilibrare se utilizează de obicei în tandem, <strong>si</strong>tuaţie<br />
în care apar detalii tehnice interesante. Dintre acestea, semnalăm po<strong>si</strong>bilitatea<br />
memorăriipermutărilorelementareşiaelementelordefinitoriialematriceidiagonale<br />
D de echilibrare în cadrul aceluiaşi vector de întregi. Într-adevăr, după evidenţierea<br />
<strong>valorilor</strong> <strong>proprii</strong> izolate, echilibrarea se efectuează numai asupra blocului diagonal<br />
median A 22 = A(k : l,k : l), i.e.<br />
⎡<br />
⎤<br />
A 11 A 12 D 22 A 13<br />
A ← D −1 P T APD = ⎣ 0 D22 −1 A 22D 22 D22 −1 A 23<br />
⎦. (4.175)<br />
0 0 A 33<br />
Prin urmare, pentru memorarea elementelor diagonale se poate utiliza porţiunea<br />
din vectorul destinat memorării permutărilor neafectată de acestea. Tandemul permutare<br />
echilibrare poate fi descris în felul următor:<br />
Algoritmul 4.13 (ΠECH – Permutare şi echilibrare) (Date matricea<br />
A ∈ IC n×n şi baza de numeraţie β, algoritmul calculează matricea<br />
de permutare P şi matricea diagonală D 22 (prin puterile bazei β<br />
care dau valorile elementelor diagonale ale lui D 22 ) astfel încât matricea<br />
A obţinută în (4.175) să aibe submatricele A(1 : k − 1,1 : k − 1) şi<br />
A(l+1 : n,l+1 : n) superior triunghiulare iar submatricea A(k : l,k : l)<br />
echilibrată. Permutările sunt memorate în subvectorii d(1 : k − 1) şi<br />
d(l + 1 : n) iar puterile bazei care definesc elementele diagonale ale<br />
matricei D 22 în subvectorul d(k : l).)<br />
1. [A,d,k,l] = Π(A)<br />
2. Dacă l > k<br />
1. [A(k : l,k : l),d(k : l)] = ECH(A(k : l,k : l),β)
4.4. ALGORITMUL QR 279<br />
2. Pentru i = k : l<br />
1. c i = 1<br />
2. Pentru j = 1 : |d i |<br />
1. Dacă d i > 0 atunci<br />
1. c i = c i β<br />
altfel<br />
1. c i = c i<br />
β<br />
3. Dacă l < n<br />
1. Pentru i = k : l<br />
1. A(i,l+1 : n) ← A(i,l+1 : n)/c i<br />
4. Dacă k > 1<br />
1. Pentru j = k : l<br />
1. A(1 : k −1,j) ← A(1 : k −1,j)c j<br />
Comentarii. Apelul algoritmului se va face cu <strong>si</strong>ntaxa<br />
[A,d,k,l] = ΠECH(A,β).<br />
Evident, calculele de la instrucţiunile 4 şi 5 se pot efectua exact. Dacă porţiunile<br />
de interes se codifică în limbaj de asamblare, atunci calculul efectiv al numerelor c i<br />
nu este necesar, operaţiile de la instrucţiunile 4 şi 5 realizându-se prin modificarea<br />
exponenţilor.<br />
Complexitatea algoritmului este dictată esenţial de valorile parametrilor k şi<br />
l, dar aprecierea că ponderea sa în economia unui algoritm de calcul al <strong>valorilor</strong><br />
<strong>proprii</strong> este puţin semnificativă rămâne valabilă.<br />
✸<br />
4.4.3 Programe principale (”driver”-e)<br />
Utilizareaalgoritmilorprezentaţi înaceastăsecţiune încadrulunorprogramedecalcul<br />
al <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> (vezi şi secţiunea următoare) se poate face în diverse<br />
variante, în raport cu tipul datelor iniţiale şi al obiectivelor concrete urmărite.<br />
Deşi o astfel de întreprindere nu prezintă dificultăţi de principiu, prezentăm, totuşi,<br />
o exemplificare pentru următoarea <strong>si</strong>tuaţie concretă:<br />
• date iniţiale: o matrice reală A ∈ IR n×n , baza β a <strong>si</strong>stemului de numeraţie a<br />
FVM utilizat şi toleranţa tol pentru aprecierea elementelor neglijabile;<br />
• obiective: calculul formei Schur reale, acumularea tuturor transformărilor şi<br />
calculul părţilor reale şi complexe ale tuturor <strong>valorilor</strong> <strong>proprii</strong>.<br />
Admitem în continuare, pentru <strong>si</strong>mplificare, că o mulţime de tipul M = n 1 : n 2 , cu<br />
n 2 < n 1 , este vidă şi că orice operaţie care implică (cel puţin) o mulţime vidă nu<br />
se execută. O soluţie po<strong>si</strong>bilă pentru problema formulată, incluzând permutarea şi<br />
echilibrarea, este următoarea.
280 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. [A,d,l,k] = ΠECH(A,β)<br />
2. T = I n<br />
3. % Acumularea transformărilor din faza de permutare<br />
1. Pentru j = n : −1 : l+1<br />
1. T(:,j) ↔ T(:,d j )<br />
2. Pentru j = 1 : k −1<br />
1. T(:,j) ↔ T(:,d j )<br />
4. % Acumularea transformărilor din faza de echilibrare<br />
1. Pentru j = k : l<br />
1. c = 1<br />
2. Pentru i = 1 : |d j |<br />
1. Dacă d j > 0 atunci<br />
1. c = cβ<br />
altfel<br />
1. c = c β<br />
3. T(:,j) ← T(:,j)c<br />
5. % Aplicarea algoritmului QR pentru matrice reale<br />
1. [A(k : l,k : l),Q] = QR2(A(k : l,k : l),I l−k+1 ,tol, ′ da ′ )<br />
2. A(1 : k −1,k : l) = A(1 : k −1,l : k)Q<br />
3. A(k : l,l+1 : n) = Q T A(k : l,l+1 : n)<br />
4. T(:,k : l) = T(:,k : l)Q<br />
6. % <strong>Calculul</strong> <strong>vectorilor</strong> cu părţile reale şi imaginare ale <strong>valorilor</strong> <strong>proprii</strong><br />
1. Pentru i = 1 : k −1<br />
2. i = k<br />
1. λ re (i) = a ii , λ im (i) = 0<br />
3. C^at timp i < l<br />
1. Dacă a i+1,i ≠ 0 atunci<br />
1. ∆ = (a ii −a i+1,i+1 ) 2 +4a i,i+1 a i+1,i<br />
2. λ re (i) = (a ii +a i+1,i+1 )/2, λ im (i) = √ −∆/2<br />
3. λ re (i+1) = λ re (i), λ im (i+1) = −λ im (i)<br />
4. i ← i+2<br />
altfel<br />
1. λ re (i) = a ii , λ im (i) = 0<br />
2. i ← i+1
4.5. CALCULUL VECTORILOR PROPRII 281<br />
4. Pentru i = l+1 : n<br />
1. λ re (i) = a ii , λ im (i) = 0<br />
Acest program calculează matricea de transformare ne<strong>si</strong>ngulară (dar nu în mod<br />
necesar ortogonală) T ∈ IR n×n şi matricea A ← S ∈ IR n×n în formă Schur reală,<br />
astfel încât A ← S = T −1 AT, precum şi toate valorile<strong>proprii</strong>. El poate fi completat<br />
cu calculul <strong>vectorilor</strong><strong>proprii</strong>, al unorbazepentru subspaţii invarianteetc., probleme<br />
tratate în alte secţiuni ale capitolului.<br />
4.5 <strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong><br />
Este important de precizat că în multe aplicaţii (cum este, e.g. calculul subspaţiilor<br />
invariante) vectorii <strong>proprii</strong> pot fi înlocuiţi cu succes de către vectorii Schur.<br />
Dacăsedoreştetotuşideterminareaexplicităa<strong>vectorilor</strong><strong>proprii</strong>x i , i ∈ I ⊂ 1:n,<br />
ai unei matrice n×n A date, aceştia pot fi calculaţi în următoarele două modalităţi<br />
folo<strong>si</strong>te curent.<br />
a) Dacă numărul <strong>vectorilor</strong> <strong>proprii</strong> ce trebuie calculaţi depăşeşte 25 de procente<br />
din numărul total, atunci se recomandă următoarea schemă de calcul:<br />
VP 1 1. Se calculează formă Schur (reală), utilizând algoritmul QR corespunzător,<br />
cu acumularea transformărilor, i.e. se calculează matricea (cva<strong>si</strong>-)<br />
superior triunghiulară S şi matricea unitară (ortogonală) Q astfel încât<br />
S = Q H AQ.<br />
2. Se calculează vectorii <strong>proprii</strong> v i ai matricei S, asociaţi <strong>valorilor</strong> <strong>proprii</strong><br />
de interes, prin rezolvarea <strong>si</strong>stemelor liniare omogene corespunzătoare.<br />
3. Vectorii <strong>proprii</strong> x i ai matricei iniţiale A se calculează cu relaţia<br />
x i = Qv i .<br />
În cadrul acestei scheme <strong>si</strong>ngura problemă netratată exhaustiv până acum este<br />
calculul <strong>vectorilor</strong> <strong>proprii</strong> ai formelor Schur (reale).<br />
b) Dacă numărul <strong>vectorilor</strong> <strong>proprii</strong> ce trebuie calculaţi este relativ mic, atunci<br />
se con<strong>si</strong>deră mai economică următoarea schemă de calcul:<br />
VP 2 1. Se determină, utilizând algoritmul HQ, forma superior Hessenberg<br />
H = Q H AQ, a matricei A, cu acumularea transformărilor Q.<br />
2. Se calculează valorile <strong>proprii</strong> de interes, cel mai adesea prin execuţia<br />
fazei iterative a algoritmului QR corespunzător, fără acumularea<br />
transformărilor.<br />
3. Se calculează vectorii <strong>proprii</strong> w i ai matricei H, asociaţi <strong>valorilor</strong> <strong>proprii</strong><br />
de interes, prin câteva iteraţii (teoretic, datorită cunoaşterii <strong>valorilor</strong><br />
<strong>proprii</strong>, într-o <strong>si</strong>ngură iteraţie) ale metodei puterii inverse.<br />
4. Vectorii <strong>proprii</strong> x i ai matricei iniţiale A se calculează cu relaţia<br />
x i = Qw i .
282 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
În cadrul acestei scheme <strong>si</strong>ngura problemă care nece<strong>si</strong>tă o tratare suplimentară este<br />
aplicarea metodei puterii inverse în contextul unei cunoaşteri (aproape exacte) a<br />
<strong>valorilor</strong> <strong>proprii</strong> asociate.<br />
Prezentăm succint unele aspecte importante referitoare la cele două probleme<br />
semnalate mai sus.<br />
4.5.1 <strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong> ai formelor Schur<br />
Con<strong>si</strong>derăm matricea n × n A complexă sau reală. Presupunem obţinute forma<br />
Schur (reală) S şi, implicit, valorile <strong>proprii</strong> ale matricei A, precum şi vectorii Schur<br />
definiţi de coloanele matricei de transformare unitară (ortogonală) cumulate Q.<br />
În cazul complex, matricea S ∈ IC n×n este superior triunghiulară, iar elementele<br />
sale diagonale sunt valorile <strong>proprii</strong> ale matricei S. <strong>Calculul</strong> <strong>vectorilor</strong><strong>proprii</strong> pentru<br />
matricele triunghiulare a fost tratat în capitolul 1 (algoritmul 1.23 – TRV).<br />
În cazul real, forma Schur reală S este o matrice cva<strong>si</strong>-superior triunghiulară.<br />
Fie structura ⎡<br />
S = ⎣ S ⎤<br />
11 S 12 S 13<br />
0 S 22 S 23<br />
⎦ (4.176)<br />
0 0 S 33<br />
a matricei S, unde vom con<strong>si</strong>dera, pe rând, că blocul S 22 este un scalar, respectiv<br />
o matrice 2 × 2 cu valori <strong>proprii</strong> complex conjugate, iar matricele S 11 ∈ IR n1×n1 ,<br />
S 33 ∈ IR n3×n3 sunt cva<strong>si</strong>-superior triunghiulare. În primul caz, dacă λ = S 22 este o<br />
valoare proprie distinctă a matricei S, atunci orice vector de forma<br />
⎡<br />
u = α⎣ u ⎤<br />
1<br />
1 ⎦, (4.177)<br />
0<br />
unde u 1 este soluţia <strong>si</strong>stemului liniar cva<strong>si</strong>-superior triunghiular<br />
(S 11 −λI n1 )u 1 = −S 12 (4.178)<br />
şi α un scalarrealnenul, estevectorpropriuasociatvalorii<strong>proprii</strong>λ = S 22 . În cel de<br />
al doilea caz, vectorii <strong>proprii</strong> asociaţi perechii de valori <strong>proprii</strong> complex conjugate<br />
α ± iβ ale blocului S 22 se pot con<strong>si</strong>dera, la rândul lor, ca doi vectori complex<br />
conjugaţi u±iv, u,v ∈ IR n . Pentru a rămâne în limitele utilizării aritmeticii reale,<br />
în practica numerică se obişnuieşte calculul exclu<strong>si</strong>v al <strong>vectorilor</strong> reali u şi v ca<br />
soluţie nenulă a <strong>si</strong>stemului omogen, <strong>si</strong>ngular, 2n-dimen<strong>si</strong>onal<br />
[ ][ ] [ ]<br />
S −αIn βI n u 0<br />
= . (4.179)<br />
−βI n S −αI n v 0<br />
Presupunem că perechea de valori <strong>proprii</strong> α ± iβ este distinctă şi con<strong>si</strong>derăm o<br />
partiţie conformă ⎡<br />
u = ⎣ u ⎤ ⎡<br />
1<br />
u 2<br />
⎦, v = ⎣ v ⎤<br />
1<br />
v 2<br />
⎦, (4.180)<br />
u 3 v 3
4.5. CALCULUL VECTORILOR PROPRII 283<br />
a[ părţilor reală u şi imaginară ] v ale <strong>vectorilor</strong> <strong>proprii</strong> asociaţi. Întrucât matricea<br />
S33 −αI n3 βI n3<br />
este ne<strong>si</strong>ngulară rezultă u<br />
−βI n3 S 33 −αI 3 = 0, v 3 = 0. Acum, dacă<br />
n3<br />
vectoriibidimen<strong>si</strong>onali u 2 şi v 2 formeazăosoluţie nenulă a <strong>si</strong>stemului liniar omogen,<br />
<strong>si</strong>ngular, real, de patru ecuaţii cu patru necunoscute,<br />
[ ]<br />
S22 −αI 2 βI 2<br />
, (4.181)<br />
−βI 2<br />
S 22 −αI 2<br />
][<br />
u2<br />
v 2<br />
]<br />
=<br />
atunci u 1 , v 1 se calculeazărezolvând, cu mijloacele cla<strong>si</strong>ce, <strong>si</strong>stemul liniarne<strong>si</strong>ngular<br />
[ ][ ] [ ]<br />
S11 −αI n1 βI n1 u1 S12 u<br />
= − 2<br />
. (4.182)<br />
−βI n1 S 11 −αI n1 v 1 S 12 v 2<br />
Pentru calculul unei soluţii nenule a <strong>si</strong>stemului liniar omogen (4.181) se constată<br />
uşorcă, de exemplu, vectorulnenul u 2 ∈ IR 2 poate fi alesarbitrar, e.g. u 2 = [1 0] T ,<br />
caz în care vectorul v 2 ∈ IR 2 se obţine rezolvând <strong>si</strong>stemul liniar, ne<strong>si</strong>ngular, de două<br />
ecuaţii<br />
(S 22 −αI 2 )v 2 = βu 2 . (4.183)<br />
Cuacesteprecizăriputem prezentaurmătorulalgoritmdecalculal<strong>vectorilor</strong><strong>proprii</strong><br />
ale unei matrice în formă Schur reală.<br />
Algoritmul 4.14 (VPS – <strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong> ai unei matrice<br />
în formă Schur reală) (Dată matricea S ∈ IR n×n , în formă Schur<br />
reală, cu valori <strong>proprii</strong> distincte, algoritmul calculează un set de vectori<br />
<strong>proprii</strong> ai matricei S. Vectorii <strong>proprii</strong> x j , asociaţi <strong>valorilor</strong> <strong>proprii</strong> reale<br />
λ j = s jj sunt <strong>si</strong>tuaţi în coloanele j ale matricei X, i.e. x j = X(:,j).<br />
Pentru valorile <strong>proprii</strong> complex conjugate corespunzătoare blocului diagonal<br />
S(j : j +1,j : j +1), vectorii <strong>proprii</strong> asociaţi x j,j+1 = u j ±iv j<br />
sunt obţinuţi prin calculul <strong>vectorilor</strong> reali u j şi v j care se memorează în<br />
coloanele j şi j+1 ale matricei X, i.e. u j = X(:,j) şi v j = X(:,j+1).)<br />
1. Dacă n = 1 atunci<br />
1. X = 1<br />
2. Return<br />
2. j = 1<br />
3. C^at timp j < n<br />
[ 0<br />
0<br />
1. Dacă s j+1,j = 0 atunci<br />
1. X(j +1 : n,j) = 0<br />
2. x jj = 1<br />
3. Dacă j > 1 atunci<br />
1. Se rezolvă <strong>si</strong>stemul cva<strong>si</strong>superior triunghiular<br />
(S(1:j−1,1:j−1)−s jj I j−1 )X(1:j−1,j) = −S(1:j−1,j)<br />
4. j ← j +1<br />
altfel
284 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. α = (s jj +s j+1,j+1 )/2<br />
2. β = √ −(s jj −s j+1,j+1 ) 2 −4s j+1,j s j,j+1 /2<br />
3. X(j +2 : n,j : j +1) = 0<br />
4. x j,j = 1, x j+1,j = 0<br />
5. Fie S 22 = S(j : j +1,j : j +1).<br />
Se rezolvă <strong>si</strong>stemul ne<strong>si</strong>ngular de două ecuaţii<br />
(S 22 −αI 2 )X(j : j +1,j +1) = βX(j : j +1,j)<br />
6. Dacă j > 1 atunci<br />
1. Fie S 11 [ = S(1:j−1,1:j−1), S 12 = S(1:j−1,j:j+1) ]<br />
S11 −αI<br />
şi F = j−1 βI j−1<br />
.<br />
−βI j−1 S 11 −αI j−1<br />
Se[<br />
rezolvă <strong>si</strong>stemul ne<strong>si</strong>ngular ] [<br />
X(1 : j−1,j)<br />
F<br />
=<br />
X(1 : j−1,j +1)<br />
7. j ← j +2<br />
4. Dacă j = n atunci<br />
−S 12 X(j:j+1,j)<br />
−S 12 X(j:j−1,j+1)<br />
1. x jj = 1<br />
2. Se rezolvă <strong>si</strong>stemul cva<strong>si</strong>superior triunghiular<br />
(S(1:j−1,1:j−1)−s jj I j−1 )X(1:j−1,j) = −S(1:j−1,j)<br />
Comentarii. Sintaxa de apel a algoritmului este<br />
X = VPS(S).<br />
În cadrul algoritmului nu are loc o verificare a faptului că matricea S este în formă<br />
Schur reală. De asemenea, utilizarea matricei <strong>vectorilor</strong> <strong>proprii</strong> X se poate face<br />
numai în conjuncţie cu structura blocurilor diagonale ale matricei S, care trebuie<br />
cunoscută pentru a putea forma vectorii <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong> complex<br />
conjugate.<br />
✸<br />
<strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong> multiple ridică dificultăţi<br />
<strong>si</strong>milare celor evidenţiate în cazul matricelor triunghiulare (v. cap. 1). Într-o astfel<br />
de <strong>si</strong>tuaţie, în algoritmul VPS, <strong>si</strong>stemele liniare ce se rezolvă devin <strong>si</strong>ngulare şi<br />
trebuie luate măsuri speciale pentru a evita împărţirile cu 0 sau cu numere foarte<br />
mici. O cale de urmat este utilizată în algoritmul de calcul al <strong>vectorilor</strong> <strong>proprii</strong><br />
pentru matrice triunghiulare prezentat în capitolul 1. O altă cale, utilizată, de<br />
exemplu, în [X], înlocuieşte diferenţele λ i −λ j , apreciate ca fiind nule, cu ε M ‖S‖,<br />
erorile introduse de o astfel de decizie fiind de nivelul erorilor de calcul. În orice<br />
caz, calculul <strong>vectorilor</strong> <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong> apropiate ridică probleme<br />
datorită relei condiţionări a <strong>si</strong>stemelor liniare menţionate.<br />
4.5.2 <strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong> ai matricelor<br />
superior Hessenberg<br />
În cazul în care numărul <strong>vectorilor</strong> <strong>proprii</strong> care se calculează este inferior procentului<br />
de 25%, în practica numerică s-a format convingerea că este mai avantajoasă<br />
]
4.5. CALCULUL VECTORILOR PROPRII 285<br />
schema de calcul VP 2 , care presupune acumularea transformărilor numai în faza<br />
directă (neiterativă) a algoritmuluiQR şi aplicareametodei puterii inverse matricei<br />
superior Hessenberg rezultată în această fază 34 . De aceea con<strong>si</strong>derăm util să semnalăm<br />
unele dificultăţi ce pot apărea la rezolvarea unor <strong>si</strong>steme (de tip Hessenberg)<br />
aproape <strong>si</strong>ngulare.<br />
Fie A ∈ IC n×n şi H = Q H AQ matricea superior Hessenberg obţinută, e.g. cu algoritmulHQ.Reamintimcămetodaputeriiinverse(v.<br />
§4.3)decalculalunuivector<br />
propriu al matricei H constă într-un proces iterativ bazat pe relaţia de recurenţă<br />
(H −µI n )z k+1 = ρ k z k , k = 0,1,..., z 0 arbitrar, (4.184)<br />
unde ρ k este un factor scalar de normare. Spre deosebire de cazul curent, aici<br />
vom presupune că deplasarea µ este o valoare proprie calculată a matricei H (şi,<br />
în limitele preciziei de calcul, a matricei A). Notăm cu λ 1 valoarea proprie exactă<br />
a matricei H a cărei aproximaţie este µ. Admiţând că µ a fost calculată cu un<br />
algoritm numeric stabil (cum este, e.g. algoritmul QR) rezultă că µ este o valoare<br />
proprie exactă a matricei G = H +E unde E este o matrice de perturbaţie<br />
de normă spectrală ”mică”, i.e. satisfăcând ‖E‖ ≤ ǫ‖H‖, unde ǫ are ordinul de<br />
mărime al erorilor de reprezentare (v. § 4.11). Dacă, în plus, λ 1 este o valoare bine<br />
condiţionată (v. §4.10) atunci<br />
η = λ 1 −µ (4.185)<br />
esteşieadeordinulde mărimeallui ǫ‖H‖. PresupunândcămatriceaH este<strong>si</strong>mplă,<br />
i.e. există vectorii <strong>proprii</strong> w i , i = 1 : n, care formează o bază a lui IC n , şi scriind<br />
rezultă<br />
z 0 =<br />
n∑<br />
γ i w i , (4.186)<br />
i=1<br />
z k = ˜ρ k (γ 1 w 1 +η k n ∑<br />
i=2<br />
γ i<br />
(λ i −µ) kw i), (4.187)<br />
unde ˜ρ k este un factor cumulat de normare. Dacă γ 1 nu este neglijabilă (ceea ce este<br />
o ipoteză plauzibilă) şi λ 1 este o valoareproprie <strong>si</strong>mplă şi ”suficient de bine separată<br />
de celelalte”, i.e. |λ i −µ| ≫ |η|, i = 2 : n (ceea ce nu este întotdeauna adevărat),<br />
atunci z k devine coliniar cu w 1 , cu precizia formatului virgulă mobilă, practic într-o<br />
<strong>si</strong>ngură iteraţie, cu toate că <strong>si</strong>stemul (4.184) este aproape <strong>si</strong>ngular şi, deci, po<strong>si</strong>bil<br />
rău condiţionat. Dacă însă λ 1 nu este <strong>si</strong>mplă, sau nu este suficient de departe<br />
de celelalte sau este rău condiţionată, atunci analiza de mai sus nu poate garanta<br />
acurateţea rezultatului, chiar dacă se execută mai multe iteraţii. Pentru a depista<br />
astfel de <strong>si</strong>tuaţii şi pentru a le depăşi, în [X] se propune determinarea unui factor<br />
de creştere definit după cum urmează. Fie z vectorul propriu de normă euclidiană<br />
unitară (i.e. ‖z‖ 2 = z H z = 1) calculat cu metoda puterii inverse. Con<strong>si</strong>derăm<br />
reziduul<br />
r = Hz −µz. (4.188)<br />
34 Renunţarea completă la acumularea transformărilor şi aplicarea, după determinarea <strong>valorilor</strong><br />
<strong>proprii</strong>, a metodei puterii inverse matricei iniţiale se con<strong>si</strong>deră a fi o procedură mai puţin avantajoasă.
286 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Relaţia anterioară poate fi scrisă şi sub forma<br />
(H −rz H )z = µz. (4.189)<br />
Avem ‖rz H ‖ = ‖r‖ şi, dacă norma ‖r‖ a reziduului este mică (e.g. de ordinul<br />
de mărime al lui ε M ‖H‖), atunci z este un vector propriu al unei matrice foarte<br />
uşor perturbate faţă de H, ceea ce este tot ce se poate spera într-o aritmetică<br />
aproximativă. Pentru evaluarea normei reziduului r se procedează astfel. Fie z 0<br />
vectorul iniţial având ‖z 0 ‖ = 1 şi y soluţia <strong>si</strong>stemului<br />
(H −µI n )y = z 0 , (4.190)<br />
i.e. rezultatul primei iteraţii a metodei puterii inverse fără normarea acestuia.<br />
Atunci definind vectorul succesor al lui z 0 prin normarea lui y, i.e.<br />
obţinem<br />
z 1 = y<br />
‖y‖ , (4.191)<br />
(H −µI n )z 1 = 1<br />
‖y‖ z 0. (4.192)<br />
Prin urmare, cu cât ‖y‖ este mai mare cu atât norma reziduului definit în (4.188)<br />
este mai mică. De aceea putem defini ‖y‖ drept factor de creştere şi cere ca acesta<br />
să fie superior unei valori impuse. Mecanismul de realizare a acestui deziderat este<br />
modificarea iniţializării z 0 şi reluarea primei iteraţii (în locul continuării iteraţiilor<br />
care nu oferă şansa îmbunătăţirii rezultatului). În [X] este propusă o strategie de<br />
modificare a iniţializării. Pentru detalii recomandăm consultarea referinţei citate.<br />
Încheiemacestăsecţiunesemnalândfaptulcă, înmajoritateaaplicaţiilor,vectorii<br />
<strong>proprii</strong> pot fi supliniţi cu succes de către vectorii Schur, al căror calcul, apelând în<br />
exclu<strong>si</strong>vitate la transformări unitare (ortogonale), este mult mai fiabil.<br />
4.6 Forma Schur ordonată.<br />
<strong>Calculul</strong> subspaţiilor invariante<br />
Aşacums-aarătatînsecţiunea4.1,conceptuldesubspaţiuinvariantaluneimatrice,<br />
introdus prin definiţia 4.2, este intim legat de valorile şi vectorii <strong>proprii</strong> ale matricei<br />
respective şi joacă un rol fundamental în tratarea operatorială a spaţiilor liniare IC n<br />
sau IR n . În sens larg, subspaţiile invariante sunt subspaţii generate de vectori <strong>proprii</strong>.<br />
În contextul problemelor de calcul numeric abordate în prezenta lucrare, acest<br />
concept a fost folo<strong>si</strong>t pentru a demonstra po<strong>si</strong>bilitatea reducerii, prin transformări<br />
unitare (ortogonale) de asemănare, a unei matrice la forma Schur (propoziţia 4.2 şi<br />
lemele 4.2, 4.3).<br />
Reciproc, cunoaşterea formei Schur şi a <strong>vectorilor</strong> Schur asociaţi permite calculul<br />
subspaţiilor invariante asociate unor grupuri precizate de valori <strong>proprii</strong> ale<br />
matricei iniţiale. Mai precis, prin calculul subspaţiilor invariante vom înţelege aici<br />
determinarea unor baze ortonormale pentru acestea.
4.6. CALCULUL SUBSPAŢIILOR INVARIANTE 287<br />
Fie o matrice A ∈ IC n×n , S = Q H AQ o formă Schur a acesteia şi următoarele<br />
partiţii ale matricelor S şi Q<br />
Avem<br />
S =<br />
k n−k<br />
{}}{ {}}{<br />
k n−k<br />
[ ] {}}{ {}}{<br />
S11 S 12 }k<br />
0 S 22 }n−k , Q = [ ]<br />
Q1 Q 2<br />
. (4.193)<br />
AQ 1 = Q 1 S 11 (4.194)<br />
i.e., conform propoziţiei 4.1, V = ImQ 1 este un subspaţiu A-invariant, subspaţiu<br />
pe care îl asociem, în mod natural, cu setul de valori <strong>proprii</strong> λ(S 11 ) ⊂ λ(A), unde<br />
S 11 = A|S este restricţia lui A la V. Altfel spus, coloanelematricei Q 1 = Q(:, 1 : k)<br />
formează o bază ortonormală a subspaţiului A-invariant asociat <strong>valorilor</strong> <strong>proprii</strong> ale<br />
matricei A date de primele k elemente diagonale ale matricei S.<br />
În cazul real, con<strong>si</strong>deraţiile de mai sus rămân valabile cu <strong>si</strong>ngurul amendament<br />
că subspaţiile invariante reale ale unei matrice reale se asociază întotdeauna unor<br />
seturi<strong>si</strong>metricede valori<strong>proprii</strong> 35 , faptindus de po<strong>si</strong>bilitateaunorpartiţiide forma<br />
(4.193) unde, de data aceasta, S este în formă Schur reală.<br />
Ţinând seama de cele de mai sus, un subspaţiu A-invariant este complet definit<br />
de un set de valori <strong>proprii</strong>, iar calculul său se reduce, în definitiv, la obţinerea unei<br />
forme Schur S = Q H AQ în care setul de valori <strong>proprii</strong> precizat coincide cu spectrul<br />
de valori <strong>proprii</strong> al submatricei lider principale de dimen<strong>si</strong>une corespunzătoare.<br />
O dată obţinută această formă Schur, baza căutată este dată de primele coloane<br />
ale matricei de transformare Q. Prin urmare, după aplicarea algoritmului QR şi<br />
obţinerea unei prime forme Schur, în care elementele (blocurile, în cazul real) diagonale<br />
nu au o ordine predeterminată, calculul unui subspaţiu invariant se reduce<br />
la ordonarea elementelor diagonale (i.e. aducerea în primele poziţii diagonale a<br />
<strong>valorilor</strong> <strong>proprii</strong> vizate), prin transformări unitare (ortogonale) de asemănare, şi<br />
actualizarea matricei de transformare Q.<br />
Avându-se în vedere faptul că, datorită structurii (cva<strong>si</strong>)superior triunghiulare<br />
a matricei S, permutarea a două elemente (blocuri) neadiacente nu este po<strong>si</strong>bilă<br />
printr-o transformare elementară (rotaţie sau reflector) fără alterarea structurii,<br />
mecanismul de ordonare a formei Schur constă dintr-o secvenţă de permutări de<br />
elemente (blocuri) diagonale adiacente.<br />
4.6.1 Ordonarea formei Schur<br />
În cazul complex forma Schur este triunghiulară astfel că este suficient să stabilim<br />
o procedură de permutare a două elemente diagonale adiacente (vecine). Pentru<br />
aceasta, con<strong>si</strong>derăm mai întâi o matrice superior triunghiulară de ordinul doi S ∈<br />
∈ IC 2×2 cu valorile <strong>proprii</strong> distincte, i.e. s 11 ≠ s 22 . Fie x 2 un vector propriu unitar<br />
al matricei S asociat valorii <strong>proprii</strong> λ 2 = s 22 , i.e. (exerciţiu pentru cititor),<br />
x 2 = e iθ y<br />
‖y‖ , unde y = [<br />
]<br />
s 12<br />
, (4.195)<br />
s 22 −s 11<br />
35 Reamintim că prin set <strong>si</strong>metric înţelegem o mulţime numerică în care elementele complexe<br />
apar în perechi complex conjugate.
288 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
şi unde, fără a reduce generalitatea, putem con<strong>si</strong>dera θ = 0, i.e. x 2 = y/‖y‖.<br />
Conform lemei de deflaţie unitară 4.2, o transformare de asemănare S ′ = P H SP,<br />
în care matricea unitară P are ca primă coloană vectorul propriu x 2 , va evidenţia,<br />
în poziţia 11 a matricei S ′ valoarea proprie asociată vectorului propriu x 2 , i.e. s 22 ,<br />
conservând, în acelaşi timp, zeroul din poziţia 21 . Concret, dacă P ∈ IC 2×2 este<br />
rotaţia (complexă) care a<strong>si</strong>gură<br />
(P H y)(2) = 0, (4.196)<br />
unde y este vectorul definit în (4.195), obţinem (încă un exerciţiu pentru cititor)<br />
[ ]<br />
S ′ = P H s22 s<br />
SP = 12<br />
. (4.197)<br />
0 s 11<br />
S-a realizat astfel permutarea celor două valori <strong>proprii</strong>.<br />
Pentru o matrice superior triunghiulară S de ordinul n permutarea <strong>valorilor</strong><br />
<strong>proprii</strong> adiacente s kk şi s k+1,k+1 se realizează folo<strong>si</strong>nd transformarea unitară de<br />
asemănare S ′ = Q H SQ cu<br />
Q = diag(I k−1 ,P,I n−k−1 ), (4.198)<br />
unde transformarea definită de matricea de ordinul doi P a<strong>si</strong>gură permutarea <strong>valorilor</strong><br />
<strong>proprii</strong> ale matricei S(k : k+1,k : k+1).<br />
Rezumând cele prezentate mai sus, rezultă următoarea schemă de calcul<br />
P11c<br />
1. Dacă s kk ≠ s k+1,k+1 atunci<br />
1. Se calculează vectorul y din (4.195).<br />
2. Se calculează rotaţia P astfel încât (P H y)(2) = 0.<br />
3. S ← diag(I k−1 ,P H ,I n−k−1 )S<br />
4. S ← Sdiag(I k−1 ,P,I n−k−1 )<br />
iar algoritmul corespunzător, bazat pe procedurile din tabelul 4.3, este prezentat în<br />
continuare.<br />
Algoritmul 4.15 (P11c – Permutarea a două valori <strong>proprii</strong> adiacente)<br />
(Date o matrice S ∈ IC n×n în formă Schur, matricea de transformare<br />
iniţială Q ∈ IC n×n şi întregul k ∈ 1 : n−1, algoritmul suprascrie<br />
matriceaS cu matriceaS ′ = ˜Q H S ˜Qcarerealizeazăpermutarea<strong>valorilor</strong><br />
<strong>proprii</strong> s kk , s k+1,k+1 şi actualizează matricea de transformare Q.)<br />
1. Dacă s kk ≠ s k+1,k+1 atunci<br />
[ ]<br />
s<br />
1. y = k,k+1<br />
s k+1,k+1 −s kk<br />
2. [y,c,s] = Gc(y)<br />
3. s kk ↔ s k+1,k+1<br />
4. Dacă k > 1 atunci<br />
1. S(1 : k−1,k : k+1) = Gcd(S(1 : k−1,k,k+1),c,s)<br />
5. Dacă k < n−1 atunci
4.6. CALCULUL SUBSPAŢIILOR INVARIANTE 289<br />
1. S(k : k+1,k+2 : n) = Gcs(c,s,S(k : k+1,k+2 : n))<br />
6. Q(:,k : k+1) = Gcd(Q(:,k : k+1),c,s)<br />
Comentarii. Sintaxa de apel a algoritmului de mai sus va fi<br />
[S,Q] = P11c(S,Q,k).<br />
Complexitatea unei permutări a două valori <strong>proprii</strong> vecine distincte este O(n),<br />
numărul a<strong>si</strong>mptotic de flopi (reali) fiind N op = 52n (independent de k). ✸<br />
Din momentul în care dispunem de procedura de permutare a două valori <strong>proprii</strong><br />
învecinate, algoritmul de ordonare a formei Schur se reduce, în esenţă, la<br />
un algoritm de sortare a unei mulţimi bazat pe interschimbarea elementelor adiacente.<br />
Vom prezenta mai întâi cazul unei ordonări totale care dispune valorile<br />
<strong>proprii</strong> ale unei forme Schur S a matricei A în ordinea impusă de o permutare dată<br />
π = {i 1 ,i 2 ,...,i n } a mulţimii 1 : n, în sensul că elementul diagonal aflat iniţial<br />
în poziţia (k,k) va fi plasat în final în poziţia (i k ,i k ). Prin actualizarea matricei<br />
unitare de transformare Q, se calculează bazele ortogonale pentru subspaţiile A-<br />
invariante asociate unor grupuri impuse de valori <strong>proprii</strong>. Concret, coloanele 1 : k<br />
ale matricei actualizate, i.e. Q(:,1:k), formează o bază a subspaţiului A-invariant<br />
V k asociat setului de valori <strong>proprii</strong> Λ k = {λ i = s ii | i = 1 : k} (în numerotarea<br />
finală). Prezentăm un algoritm de ordonare bazat pe o procedură de sortare prin<br />
selecţie. Invităm cititorul să elaboreze alte variante care să aibe la bază algoritmi<br />
de sortare alternativi.<br />
Algoritmul 4.16 (FSC ORD – Ordonarea formei Schur) (Date<br />
o matrice S ∈ IC n×n în formă Schur, matricea unitară Q ∈ IC n×n şi permutarea<br />
π = {i 1 ,i 2 ,...,i n }, algoritmul suprascrie matricea S cu matricea<br />
unitar asemenea S ′ = ˜Q H S ˜Q care are s ′ i k ,i k<br />
= s kk şi actualizează<br />
în mod corespunzător matricea de transformare Q.)<br />
1. Pentru k = 1 : n−1<br />
1. mută =’nu’<br />
2. l = k<br />
3. Pentru j = k+1 : n<br />
1. Dacă i j < i l atunci<br />
1. l = j<br />
2. mută =’da’<br />
4. Dacă mută =’da’ atunci<br />
1. Pentru j = (l−1) : −1 : k<br />
1. [S,Q] = P11c(S,Q,j)<br />
2. i j ↔ i j+1<br />
Comentarii. Sintaxa naturală de apel a algoritmului prezentat este<br />
[S,Q] = FSC ORD(S,Q,π).
290 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Complexitatea unei ordonări este dictată esenţial de natura permutării. Cazurile<br />
limită sunt permutarea identică, pentru care nu se face nici o operaţie aritmetică, şi<br />
inver<strong>si</strong>unea, pentru care se efectuează Cn 2 = n(n+1)/2 apelări ale procedurii P11c<br />
care conduc la o complexitate O(n 3 ).<br />
De multe ori este mai comod ca în locul permutării π să utilizăm permutarea<br />
inversă σ = π −1 = {j 1 ,j 2 ,...,j n }. În acest caz, algoritmul suprascrie matricea S<br />
cu matricea unitar asemenea S ′ = ˜Q H S ˜Q care are s ′ kk = s j k ,j k<br />
. O variantă a unui<br />
astfel de algoritm de ordonare arată astfel.<br />
FSC ORD −1 1. Pentru k = 1 : n−1<br />
1. Dacă k ≠ j k atunci<br />
1. Pentru i = (j k −1) : −1 : k<br />
1. [S,Q] = P11c(S,Q,i)<br />
2. Pentru i = k+1 : n<br />
1. Dacă j i < j k atunci j i = j i +1.<br />
După execuţia acestui algoritm coloanele 1 : k ale matricei de transformare actualizate,<br />
i.e. Q(:,1:k), formează o bază ortonormală a subspaţiului A-invariant V k<br />
asociatsetuluidevalori<strong>proprii</strong>Λ k = {λ i = s ii | i ∈ {j 1 ,j 2 ,...,j k }}(înnumerotarea<br />
iniţială). Observaţiile de mai sus privitoare la complexitate rămân valabile.<br />
Algoritmul de mai sus realizează o ordonare totală a perechilor diagonale. Dacă<br />
se urmăreşteexclu<strong>si</strong>v construcţia unei baze unitare pentru un subspaţiu A-invariant<br />
k-dimen<strong>si</strong>onal (k < n), este suficientă o ordonare parţială constând în aducerea, pe<br />
căile cele mai ”scurte”, a <strong>valorilor</strong> <strong>proprii</strong> vizate în primele k poziţii diagonale. O<br />
variantă po<strong>si</strong>bilă pentru rezolvarea acestei probleme este următoarea. Presupunem<br />
că dorim construcţia unei baze ortonormale a subspaţiului A-invariant asociat <strong>valorilor</strong><br />
<strong>proprii</strong> s i1i 1<br />
, s i2i 2<br />
, ..., s ik i k<br />
. Fără a reduce generalitatea, putem con<strong>si</strong>dera că<br />
i 1 < i 2 < ... < i k . Aducerea celor k elemente diagonale ale matricei S în primele k<br />
poziţii diagonale se face cu următorul algoritm <strong>si</strong>mplu.<br />
FSC ORD p 1. Pentru j = 1 : k−1<br />
1. Dacă i j > j atunci<br />
1. Pentru l = (i j −1) : −1 : j<br />
1. [S,Q] = P11c(S,Q,l)<br />
Încheiem aici comentariile la algoritmul 4.16şi con<strong>si</strong>deraţiile privitoarela ordonarea<br />
formeiSchurcomplexecumenţiuneacăacesteaspectevorfiîntâlniteşi laordonarea<br />
formei Schur reale.<br />
✸<br />
4.6.2 Ordonarea formei Schur reale<br />
Încazulrealvomcon<strong>si</strong>derapartiţiablocdictatădedimen<strong>si</strong>unilel k ×l k cul k ∈ {1,2},<br />
k = 1 : p, ale blocurilor diagonale ale formei Schur reale S = Q T AQ a matricei<br />
A ∈ IR n×n ⎡ ⎤<br />
S 11 S 12 ··· S 1p<br />
0 S 22 ··· S 1p<br />
S = ⎢<br />
⎣<br />
.<br />
. . ..<br />
⎥<br />
. ⎦ . (4.199)<br />
0 0 ··· S pp
4.6. CALCULUL SUBSPAŢIILOR INVARIANTE 291<br />
ProblemacalcululuisubspaţiilorA-invarianterealeasociateunorseturi<strong>si</strong>metrice<br />
de valori <strong>proprii</strong> revine la ordonarea corespunzătoare a blocurilor diagonale ale<br />
formei Schur reale. În acest scop este necesar să ştim să permutăm două blocuri<br />
diagonale adiacente. Permutarea a două blocuri vecine 1×1 se face cu algoritmul<br />
P11c, cu <strong>si</strong>ngura menţiune că toate transformările utilizate sunt reale. Întrucât<br />
scrierea variantei reale a algoritmului se rezumă la înlocuirea <strong>si</strong>glei c cu <strong>si</strong>gla r în<br />
identificatorii procedurilor, ne mărginim să introducem <strong>si</strong>ntaxa de utilizare<br />
[S,Q] = P11r(S,Q,k),<br />
cu menţiunea ca aici k reprezintă linia (şi coloana) pe care se află primul dintre cele<br />
două blocuri 1×1 ce se permută.<br />
Rămâne să arătăm cum se pot permuta, prin transformări ortogonale de asemănare,<br />
două blocuri diagonale vecine din care cel puţin unul are ordinul 2.<br />
Con<strong>si</strong>derăm acum matricea de ordinul 3 sau 4<br />
[ ]<br />
S11 S<br />
S = 12<br />
, (4.200)<br />
0 S 22<br />
unde, prin urmare, cel puţin unul din blocurile diagonale S 11 , S 22 este 2 × 2. În<br />
principiu, putem aplica ideile utilizate la elaborarea algoritmului P11, i.e. calculul<br />
unei baze ortogonale a subspaţiului invariant asociat <strong>valorilor</strong> <strong>proprii</strong> ale matricei<br />
S 22 şi aplicarea lemei de deflaţie ortogonală, soluţie propusă cititorului. Aici vom<br />
urmaocaleechivalentăcareutilizeazăalgoritmulQRcudeplasareimplicită. Având<br />
în vedere faptul că matricea S din (4.200) este deja în formă Schur reală rezultă că<br />
putem determina deplasarea(în formă implicită) exactă care, utilizată în algoritmul<br />
QR2 pune în evidenţă, în poziţia (2,2), blocul cu valorile <strong>proprii</strong> dorite, în cazul<br />
nostru, în vederea permutării, cu valorile <strong>proprii</strong> ale matricei S 11 . Cunoaşterea<br />
exactă a deplasării face ca, teoretic, să fie suficientă o <strong>si</strong>ngură iteraţie QR pentru<br />
obţinerea rezultatului dorit. În practică, dacă nivelul de toleranţă practicat este de<br />
ordinul de mărime al erorilor de rotunjire, este po<strong>si</strong>bil să fie necesare câteva (douătrei)<br />
iteraţii pentru a putea con<strong>si</strong>dera elementele blocului (2,1) neglijabile. De<br />
asemenea, întrucât algoritmul QR cu deplasare implicită acţionează corect numai<br />
asupramatricelor înformăHessenbergireductibilă este necesarmai întâiun pas QR<br />
artificial,cuunvectordedeplasareimplicităaleator,caresăalterezestructuraSchur<br />
reală a matricei S în sensul obţinerii formei Hessenberg ireductibile. În consecinţă,<br />
toate cele trei tipuri de permutare se vor supune următoarei scheme de calcul.<br />
Pij<br />
1. Se determină elementele definitorii exacte pentru vectorul de deplasare<br />
implicită (i.e. valoarea proprie dacă primul bloc este 1×1, respectiv suma<br />
şi produsul <strong>valorilor</strong> <strong>proprii</strong> în cazul când primul bloc este 2×2).<br />
2. Se executa un pas QR cu un vector de deplasare implicită fixat aleator<br />
(e.g. alegerea w = [1 1 1] T dă bune rezultate).<br />
3. Se aplică algoritmul QR cu deplasarea implicită exactă (i.e. calculată cu<br />
elementele de la punctul 1).
292 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Pentrumatricean×ndin (4.199)permutareablocuriloradiacenteS rr şiS r+1,r+1<br />
ale formei Schur reale S ∈ IR n×n se obţine folo<strong>si</strong>nd transformarea ortogonală de<br />
asemănare S ′ = ˜Q T S ˜Q definită de<br />
˜Q = diag(I k−1 , ˆQ,I s ), (4.201)<br />
undetransformareadefinitădematricea ˆQ, deordinul2,3sau4,a<strong>si</strong>gurăpermutarea<br />
blocurilor diagonale ale matricei<br />
[ ]<br />
Srr S ˜S = r,r+1<br />
, (4.202)<br />
0 S r+1,r+1<br />
şi unde k este poziţia diagonală a elementului 11 al blocului diagonal S rr , iar s este<br />
ordinul cumulat al blocurilor diagonale r+2 : p.<br />
Vomimplementaschemadecalculdemaisus într-unalgoritmcarevatratatoate<br />
cazurile dimen<strong>si</strong>onale. Pentru aceasta vom utiliza rezultatele stabilite şi procedurile<br />
elaborate în acest capitol.<br />
Pentru o înţelegere mai lesnicioasă a algoritmului facem următoarele precizări:<br />
– localizarea blocurilor diagonale ale matricei S care vor fi permutate se face<br />
prin poziţia diagonală k a elementului 11 al primului bloc diagonal şi ordinele i şi j<br />
ale celor două blocuri;<br />
– elementele definitorii ale <strong>vectorilor</strong> de deplasare implicită exactă în vederea<br />
permutării blocurilor diagonale ale submatricei (4.202) sunt deplasarea µ = s kk în<br />
cazul în care i = 1 şi, respectiv, suma şi produsul deplasărilor exacte σ = µ 1 +µ 2 =<br />
= s kk +s k+1,k+1 şi π = µ 1 µ 2 = s kk s k+1,k+1 −s k+1,k s k,k+1 în cazul în care i = 2;<br />
după efectuarea unui pas dublu QR cu deplasare aleatoare, vectorii de deplasare<br />
exactă, în cele două cazuri, vor fi<br />
şi, respectiv,<br />
w exact =<br />
⎡<br />
w exact =<br />
⎡<br />
⎣ s kk −µ<br />
s k+1,k<br />
0<br />
⎣ s2 kk +s k,k+1s k+1,k −σs kk +π<br />
s k+1,k (s kk +s k+1,k+1 −σ)<br />
s k+1,k s k+2,k+1<br />
vezi (4.140), (4.152);<br />
– vom renunţa la apelarea algoritmului QR2 şi vom adapta ideile acestuia la<br />
<strong>si</strong>tuaţia concretă existentă; pentru aprecierea ca neglijabile a elementelor subdiagonalevomutilizatoleranţatol,<br />
uzualdeordinuldemărimealerorilordereprezentare;<br />
– actualizarea blocurilor nediagonale de pe bloc-liniile şi bloc-coloanele afectate,<br />
conform relaţiei (4.201), se va face utilizând elementele definitorii ale reflectorilor<br />
implicaţi memorate în tablourile de lucru V şi b.<br />
Cu convingerea că pentru cititorul interesat nu va fi greu să identifice ideile<br />
menţionate mai sus, prezentăm acest algoritm.<br />
Algoritmul 4.17 (Pr – Permutarea a doua blocuri diagonale adiacente)<br />
(Date o matrice S ∈ IR n×n în formă Schur reală, matricea de<br />
⎤<br />
⎦<br />
⎤<br />
⎦,
4.6. CALCULUL SUBSPAŢIILOR INVARIANTE 293<br />
transformare iniţială Q ∈ IR n×n , întregul k care marchează poziţia elementului<br />
11 al primului bloc diagonal, precum şi ordinele i,j ∈ {1,2}<br />
ale celor două blocuri diagonale, algoritmul suprascrie matricea S cu<br />
matricea S ′ = ˜Q T S ˜Q care realizează permutarea blocurilor diagonale<br />
menţionate şi actualizează matricea de transformare Q.)<br />
1. Dacă i = 1 şi j = 1 atunci<br />
1. [S,Q] = P11r(S,Q,k)<br />
2. Return<br />
2. Dacă i = 1 şi j = 2 atunci<br />
1. l = k +2<br />
2. µ = s kk<br />
3. w = [1 1 1] T<br />
4. [S(k : l,k : l),V,b] = IT QR2(S(k : l,k : l),w)<br />
5. Dacă k > 1 atunci<br />
1. S(1 : k −1,k : l) = Hrd(S(1 : k −1,k : l),V(:,1),b(1))<br />
2. S(1 : k −1,k+1 : l) =<br />
= Hrd(S(1 : k −1,k+1 : l),V(1 : 2,2),b(2))<br />
6. Dacă l < n atunci<br />
1. S(k : l,l+1 : n) = Hrs(V(:,1),b(1),S(k : l,l+1 : n))<br />
2. S(k +1 : l,l+1 : n) =<br />
= Hrs(V(1 : 2,2),b(2),S(k+1 : l,l+1 : n))<br />
7. Q(:,k : l) = Hrd(Q(:,k : l),V(:,1),b(1))<br />
8. Q(:,k +1 : l) = Hrd(Q(:,k +1 : l),V(1 : 2,2),b(2))<br />
9. C^at timp |s k+2,k+1 | ≥ tol(|s k+1,k+1 |+|s k+2,k+2 |)<br />
1. w exact = [s kk −µ s k+1,k 0] T<br />
2. [S(k : l,k : l),V,b] = IT QR2(S(k : l,k : l),w exact )<br />
3. Dacă k > 1 atunci<br />
1. S(1 : k −1,k : l) = Hrd(S(1 : k −1,k : l),V(:,1),b(1))<br />
2. S(1 : k −1,k+1 : l) =<br />
= Hrd(S(1 : k −1,k+1 : l),V(1 : 2,2),b(2))<br />
4. Dacă l < n atunci<br />
1. S(k : l,l+1 : n) = Hrs(V(:,1),b(1),S(k : l,l+1 : n))<br />
2. S(k +1 : l,l+1 : n) =<br />
= Hrs(V(1 : 2,2),b(2),S(k+1 : l,l+1 : n))<br />
5. Q(:,k : l) = Hrd(Q(:,k : l),V(:,1),b(1))<br />
6. Q(:,k +1 : l) = Hrd(Q(:,k +1 : l),V(1 : 2,2),b(2))<br />
10. s k+2,k+1 = 0 % anularea efectivă a elementului neglijabil<br />
11. Return<br />
3. Dacă i = 2 atunci<br />
1. l = k +1+j
294 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
2. σ = s kk +s k+1,k+1<br />
3. π = s kk s k+1,k+1 −s k+1,k s k,k+1<br />
4. w = [1 1 1] T<br />
5. [S(k : l,k : l),V,b] = IT QR2(S(k : l,k : l),w)<br />
6. Dacă k > 1 atunci<br />
1. Pentru q = 1 : i+j −2<br />
1. S(1 : k −1,k+q −1 : k +q +1) =<br />
= Hrd(S(1 : k+q−1,k+q−1 : k+q+1),V(:,q),b(q))<br />
2. S(1 : k −1,l−1 : l) =<br />
= Hrd(S(1 : k−1,l−1 : l),V(1 : 2,i+j−1),b(i+j−1))<br />
7. Dacă l < n atunci<br />
1. Pentru q = 1 : i+j −2<br />
1. S(k +q −1 : k +q +1,l+1 : n) =<br />
= Hrs(V(:,q),b(q),S(k +q −1 : k +q +1,l+1 : n))<br />
2. S(l−1 : l,l+1 : n) =<br />
= Hrs(V(1 : 2,i+j −1),b(i+j −1),S(l−1 : l,l+1 : n))<br />
8. Pentru q = 1 : i+j −2<br />
1. Q(:,k +q −1 : k +q +1) =<br />
= Hrd(Q(:,k +q −1 : k +q +1),V(:,q),b(q))<br />
9. Q(:,l−1 : l) =<br />
= Hrd(Q(:,l−1 : l),V(1 : 2,i+j −1),b(i+j −1))<br />
10. r = k +j −1<br />
11. C^at timp |s r+1,r | ≥ tol(|s r,r |+|s r+1,r+1 |)<br />
⎡<br />
1. w exact = ⎣ s2 kk +s ⎤<br />
k,k+1s k+1,k −σs kk +π<br />
s k+1,k (s kk +s k+1,k+1 −σ) ⎦<br />
s k+1,k s k+2,k+1<br />
2. [S(k : l,k : l),V,b] = IT QR2(S(k : l,k : l),w exact )<br />
3. Dacă k > 1 atunci<br />
1. Pentru q = 1 : i+j −2<br />
1. S(1 : k −1,k +q −1 : k +q +1) =<br />
= Hrd(S(1 : k −1,k+q −1 : k +q +1),V(:,q),b(q))<br />
2. S(1 : k −1,l−1 : l) =<br />
= Hrd(S(1 : k−1,l−1 : l),V(1 : 2,i+j−1),b(i+j−1))<br />
4. Dacă l < n atunci<br />
1. Pentru q = 1 : i+j −2<br />
1. S(k +q −1 : k +q +1,l+1 : n) =<br />
= Hrs(V(:,q),b(q),S(k +q −1 : k +q +1,l+1 : n))<br />
2. S(l−1 : l,l+1 : n) =<br />
= Hrs(V(1 : 2,i+j−1),b(i+j−1),S(l−1 : l,l+1 : n))<br />
5. Pentru q = 1 : i+j −2<br />
1. Q(:,k +q −1 : k +q +1) =<br />
= Hrd(Q(:,k +q −1 : k +q +1),V(:,q),b(q))
4.6. CALCULUL SUBSPAŢIILOR INVARIANTE 295<br />
6. Q(:,l−1:l) = Hrd(Q(:,l−1:l),V(1:2,i+j−1),b(i+j−1))<br />
12. s r+1,r = 0 % anularea efectivă a elementului neglijabil<br />
13. Return<br />
Comentarii. Sintaxa de apel naturală a algoritmului de mai sus este<br />
[S,Q] = Pr(S,Q,k,i,j,tol).<br />
Numărul de operaţii necesar depinde, evident, de tipul blocurilor permutate dar nu<br />
depinde de poziţia acestora. A<strong>si</strong>mptotic, în toate cazurile complexitatea algoritmului<br />
se încadrează totuşi în categoria O(n).<br />
✸<br />
Dispunând de procedura de mai sus, de permutare a două blocuri diagonale<br />
adiacente, algoritmul de ordonare a formei Schur reale este, în esenţă, identic cu cel<br />
de ordonare a formei Schur complexe. Pentru un plus de claritate, facem, şi aici,<br />
câteva precizări:<br />
–structura blocurilordiagonaleale matricei S în FSR va fi memorată învectorul<br />
strbl, i.e. strbl(k), k = 1:p, este ordinul blocului diagonal k al matricei S la momentul<br />
curent al procesării; structura iniţială este unul din parametrii de intrare;<br />
– pentru localizarea blocurilor diagonale ale matricei S vom utiliza vectorul lcbl<br />
care va conţine poziţiile elementelor 11 ale acestora, i.e. lcbl(k), k = 1 : p, este<br />
linia (şi coloana) elementului 11 al blocului diagonal k al matricei S de la momentul<br />
curent al procesării.<br />
Rezultă următorul algoritm.<br />
Algoritmul 4.18 (FSR ORD – Ordonarea formei Schur reale)<br />
(Date o matrice S ∈ IR n×n în formă Schur reală (4.199), matricea de<br />
transformare iniţială Q ∈ IR n×n , numărul p al blocurilor diagonale,<br />
vectorul strbl ∈ IN p al ordinelor blocurilor diagonale şi permutarea<br />
π = {i 1 ,i 2 ,...,i p }, algoritmul suprascrie matricea S cu matricea ortogonal<br />
asemenea S ′ = ˜Q T S ˜Q având s ′ i k i k<br />
= s kk şi actualizează, în mod<br />
corespunzător, matricea de transformare Q.)<br />
1. Pentru k = 1 : (p−1)<br />
1. mută =’nu’<br />
2. l = k<br />
3. Pentru j = (k +1) : n<br />
1. Dacă i j < i l atunci<br />
1. l = j<br />
2. mută =’da’<br />
4. Dacă mută =’da’ atunci<br />
1. Pentru j = (l−1) : −1 : k<br />
1. lcbl(1) = 1<br />
2. Pentru i = 2 : j<br />
1. lcbl(i) = lcbl(i−1)+strbl(i−1)
296 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
3. [S,Q] = Pr(S,Q,lcbl(j),strbl(j),strbl(j +1),tol)<br />
4. i j ↔ i j+1<br />
5. strbl(j) ↔ strbl(j +1)<br />
Comentarii. Sintaxa de apel a algoritmului de mai sus este<br />
[S,Q] = FSR ORD(S,Q,p,strbl,π,tol).<br />
La fel ca în cazul complex, volumul de calcul necesar pentru ordonare este dictat<br />
esenţial de natura permutării. În cazul cel mai defavorabil, când permutarea este o<br />
inver<strong>si</strong>une şi toate blocurile sunt 2×2, se efectuează 1 2p(p+1) permutări de blocuri<br />
2×2 adiacente care conduc la o complexitate de O(n 3 ).<br />
Încazul încaresepreferăutilizareapermutăriiinverseσ = π −1 = {j 1 ,j 2 ,...,j p }<br />
se poate utiliza o schemă de calcul FSR ORD −1 , <strong>si</strong>milară cu FSC ORD −1 ,<br />
prezentată în comentariile la algoritmul 4.16.<br />
Şi aici, dacă se urmăreşte exclu<strong>si</strong>v construcţia unei baze unitare pentru un<br />
subspaţiu A-invariant asociat unui set <strong>si</strong>metric de valori <strong>proprii</strong> definite de k blocuri<br />
diagonale (k < p), este suficientă o ordonare parţială. Adaptarea algoritmului la<br />
această<strong>si</strong>tuaţie este <strong>si</strong>milarăcu ceadin cazul complex (vezi schema FSC ORD p ),<br />
şi este propusă ca exerciţiu cititorului.<br />
✸<br />
4.7 Forma bloc-diagonală<br />
Forma Schur S a unei matrice reale sau complexe A, împreună cu matricea ortogonală<br />
sau unitară Q utilizată pentru obţinerea acesteia, joacă un rol fundamental<br />
în rezolvarea multor probleme concrete care au o legătură mai mult sau mai puţin<br />
directă cu conceptele de valori şi vectori <strong>proprii</strong>. Există însă şi probleme 36 în care<br />
este necesară o descompunere suplimentară a formei Schur, descompunere care să<br />
ofere informaţii structurale cu semnificaţie mai profundă.<br />
Precizăm, de la început, că transformările de asemănare unitare (ortogonale, în<br />
cazul real) şi-au epuizat potenţele în evidenţierea formei Schur (ordonate) şi orice<br />
alte transformări structurale suplimentare, cu conservarea spectrului, fac apel, în<br />
mod necesar, la transformări de asemănare neunitare (neortogonale).<br />
Po<strong>si</strong>bilităţile de construcţie a aşa numitei forme bloc-diagonale a unei matrice<br />
pătrate sunt intim conexatecu existenţa şi calculul soluţiilor unorecuaţii matriceale<br />
Sylvester asociate. De aceea, consacrăm paragraful următor acestei probleme.<br />
4.7.1 Ecuaţia matriceală Sylvester<br />
Con<strong>si</strong>derăm date matricele A ∈ IC m×m , B ∈ IC n×n şi C ∈ IC m×n . Ecuaţia matriceală<br />
liniară<br />
AX −XB = C, (4.203)<br />
36 Amintim, în acest sens, problemele de descompunere spectrală a <strong>si</strong>stemelor dinamice liniare<br />
în care se urmăreşte obţinerea unor submatrice ”decuplate” cu spectre având proprietăţi specifice.<br />
De asemenea, forma bloc diagonală este utilă în calculul funcţiilor de matrice.
4.7. FORMA BLOC-DIAGONALĂ 297<br />
cu matricea necunoscutelor X ∈ IC m×n , se numeşte ecuaţie matriceală Sylvester<br />
37 şi este echivalentă cu un <strong>si</strong>stem liniar determinat de mn ecuaţii scalare cu mn<br />
necunoscute 38 .<br />
Având în vedere structurarea matricei coeficienţilor acestui <strong>si</strong>stem în cele două<br />
matrice de date A şi B este interesant şi util să exprimăm condiţiile de existenţă<br />
şi unicitate ale soluţiei în raport cu aceste matrice şi să gă<strong>si</strong>m metode specifice de<br />
rezolvare.<br />
Teorema de existenţă şi unicitate a soluţiei are următorul enunţ.<br />
Teorema 4.16 Ecuaţia Sylvester (4.203) admite o soluţie X ∈ IC m×n şi această<br />
soluţie este unic determinată dacă şi numai dacă<br />
λ(A)∩λ(B) = ∅ 39 . (4.204)<br />
Demonstraţie. Fie formele Schur 40 S = U H AU şi T = V H BV ale matricelor A<br />
şi B. Avem A = USU H şi B = VTV H , expre<strong>si</strong>i care, introduse în (4.203), conduc<br />
la ecuaţia<br />
USU H X −XVTV H = C, (4.205)<br />
echivalentă, datorită ne<strong>si</strong>ngularităţii matricelor unitare U şi V, cu ecuaţia (4.203).<br />
Notând<br />
Y = U H XV, ˜C = U H CV, (4.206)<br />
ecuaţia (4.205) devine<br />
SY −YT = ˜C. (4.207)<br />
Cu aceleaşi argumente ca mai sus, ecuaţia (4.203) admite o soluţie X şi această<br />
soluţie este unic determinată dacă şi numai dacă ecuaţia (4.207) admite o soluţie<br />
Y unic determinată. Dar ecuaţia matriceală (4.207) poate fi scrisă sub forma unui<br />
<strong>si</strong>stem bloc-inferior triunghiular de mn ecuaţii cu mn necunoscute. Într-adevăr,<br />
37 Într-un context <strong>si</strong>stemic, ecuaţia (4.203) este cunoscută sub denumirea de ecuaţie Sylvester<br />
”continuă”, context în care ecuaţia Sylvester ”discretă” are forma AXB −X = C.<br />
38 Dacă ˜x ∈ IC mn şi ˜c ∈ IC mn sunt vectorii definiţi, de exemplu, prin concatenarea, în ordinea naturală,<br />
a coloanelor matricelor X şi, respectiv C, atunci <strong>si</strong>stemul de mn ecuaţii şi mn necunoscute<br />
(4.203) poate fi scris ”explicit” sub forma<br />
(I n ⊗A+B T ⊗I m)˜x = ˜c.<br />
În relaţia de mai sus ⊗ este operatorul pentru produsul Kronecker a două matrice definit în felul<br />
următor: dacă M ∈ IC p×q şi N ∈ IC r×s , atunci P def = M ⊗ N ∈ IC pr×qs este matricea având<br />
structura bloc P = [P ij ] i=1:p,j=1:q cu P ij = m ij N.<br />
39 Dacă (4.204) nu este satisfăcută, atunci ecuaţia Sylvester (neomogenă) (4.203) poate să<br />
admită sau să nu admită soluţii (alternativa lui Fredholm) în raport cu matricea termenilor liberi<br />
C. Dacă admite soluţii, atunci soluţia generală este de forma X = X p + X o, unde X p este o<br />
soluţie particulară a ecuaţiei Sylvester neomogene (4.203), iar X o este soluţia generală a ecuaţiei<br />
omogene AX −XB = 0. În aceasta <strong>si</strong>tuaţie, ecuaţia omogenă are soluţia generală Xo dependentă<br />
de N ∑ parametri arbitrari (sau, altfel spus, admite un <strong>si</strong>stem de N soluţii liniar independente). Aici<br />
p q<br />
N =<br />
i=1∑<br />
l=1 ν il cu ν il = min(m i ,n l ) unde m i şi, respectiv, n l sunt ordinele celulelor Jordan<br />
ale matricelor A şi, respectiv, B care au aceeaşi valoare proprie. Pentru detalii se poate consulta<br />
referinţa [I].<br />
40 Dacă matricele A şi B sunt reale atunci S şi, respectiv, T sunt forme Schur complexe ale<br />
acestora.
298 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
având în vedere structura superior triunghiulară a matricelor S şi T ecuaţia (4.207)<br />
se poate scrie ”pe coloane” sub forma<br />
Sy j −Yt j = ˜c j , j = 1 : n, (4.208)<br />
unde y j = Ye j , t j = Te j = [t 1j t 2j ... t jj 0 ... 0] T şi ˜c j = ˜Ce j . Prin urmare,<br />
ecuaţiile (4.208) devin<br />
Sy j −<br />
j∑<br />
t kj y k = ˜c j , j = 1 : n, (4.209)<br />
k=1<br />
care se scriu sub forma matriceală 41<br />
⎡<br />
⎤⎡<br />
⎤ ⎡<br />
S−t 11 I m 0 ··· 0 y 1<br />
−t 12 I m S−t 22 I m 0 0<br />
y 2<br />
⎢ . .<br />
⎣<br />
.<br />
. . ..<br />
. ⎥⎢<br />
. ⎥<br />
. ⎦⎣<br />
. ⎦ = ⎢<br />
⎣<br />
−t 1n I m −t 2n I m ··· S−t nn I m y n<br />
⎤<br />
˜c 1<br />
˜c 2..<br />
⎥<br />
˜c n<br />
⎦ . (4.210)<br />
Acest <strong>si</strong>stem admite o soluţie unică dacă şi numai dacă matricea <strong>si</strong>stemului este<br />
ne<strong>si</strong>ngulară, i.e. dacă şi numai dacă matricele S−t jj I m , j = 1 : n, sunt ne<strong>si</strong>ngulare,<br />
respectiv<br />
s ii −t jj ≠ 0, i = 1 : m, j = 1 : n. (4.211)<br />
Având în vedere faptul că λ(A) = {s 11 ,s 22 ,...,s mm } şi λ(B) = {t 11 ,t 22 ,...,t nn }<br />
condiţia(4.211)esteechivalentăcu(4.204). Aceastăobservaţieîncheiedemonstraţia<br />
teoremei.<br />
✸<br />
Structura bloc-inferior triunghiulară a <strong>si</strong>stemului (4.210) împreună cu structura<br />
superior triunghiulară a blocurilor diagonale fac ca rezolvarea <strong>si</strong>stemului (4.210) să<br />
fie po<strong>si</strong>bilă prin rezolvarea <strong>si</strong>stemelor<br />
∑j−1<br />
(S −t jj I m )y j = ˜c j + t kj y k , j = 1 : n, (4.212)<br />
în ordinea j = 1,2,...,n, necunoscutele scalare y ij calculându-se, în ordinea i =<br />
= n,n−1,...,2,1, cu formula<br />
k=1<br />
y ij = ˜c ij + ∑ j−1<br />
k=1 y ikt kj − ∑ m<br />
k=i+1 s iky kj<br />
s ii −t jj<br />
. (4.213)<br />
După calculul matricei Y, matricea necunoscută iniţială se determină din prima<br />
relaţie (4.206) cu formula<br />
X = UYV H . (4.214)<br />
Valorificarea algoritmică a părţii constructive a demonstraţiei teoremei 4.16 o<br />
vom face în două etape. Mai întâi vom prezenta un algoritm pentru rezolvarea<br />
unei ecuaţii Sylvester ”triunghiulare” de tipul (4.207) care va fi apoi folo<strong>si</strong>t într-un<br />
algoritm pentru rezolvarea ecuaţiei Sylvester având forma generală (4.203).<br />
41 Vezi şi una din notele de subsol precedente, referitoare la utilizarea produselor Kronecker.
4.7. FORMA BLOC-DIAGONALĂ 299<br />
Algoritmul 4.19 (SYLVtri - Rezolvarea ecuaţiei Sylvester triunghiulare)<br />
(Date matricele superior triunghiulare S ∈ IC m×m , T ∈ IC n×n<br />
cuλ(A)∩λ(B) = ∅, precumşimatriceaC ∈ IC m×n , algoritmulcalculează<br />
soluţia Y ∈ IC m×n a ecuaţiei Sylvester SY −YT = C.<br />
1. Pentru j = 1 : n<br />
1. Dacă j > 1 atunci<br />
1. Pentru i = 1 : m<br />
1. c ij = c ij + ∑ j−1<br />
k=1 y ikt kj .<br />
2. Pentru i = m : −1 : 1<br />
1. Dacă i < m atunci<br />
1. c ij = c ij − ∑ m<br />
k=i+1 s iky kj .<br />
c ij<br />
2. y ij = .<br />
s ii −t jj<br />
Comentarii. Sintaxa de apel a algoritmului 4.19 este<br />
Y = SYLVtri(S,T,C).<br />
Complexitatea algoritmului este O(n 3 ) (sau O(m 3 )), numărul de flopi complecşi<br />
fiind N ∗<br />
(c) = 1 4 (m2 n+mn 2 ) înmulţiri şi N (c)<br />
± = 1 4 (m2 n+mn 2 ) adunări şi scăderi,<br />
echivalat cu evaluările uzuale la N = 2(m 2 n+mn 2 ) flopi reali. În cazul real, evident,<br />
N op = 1 2 (m2 n+mn 2 ). Algoritmul fiind, în esenţă, o colecţie de rezolvări de<br />
<strong>si</strong>steme triunghiulare are, cel puţin în parte, proprietăţile algoritmilor de rezolvare<br />
ale acestora. Se poate afirma că dacă spectrele matricelor S şi T sunt bine ”separate”,<br />
i.e. în acest caz |s ii − t jj | sunt suficient de mari, atunci algoritmul este<br />
numeric stabil. Asupra conceptului de separare a spectrelor se va reveni, într-un<br />
context mai general, în secţiunea 4.10.<br />
✸<br />
Algoritmul de rezolvare a ecuaţiei Sylvester triunghiulare serveşte ca bază, conform<br />
celor arătate mai sus, pentru rezolvarea ecuaţiei Sylvester generale. Avem<br />
următorul algoritm.<br />
Algoritmul 4.20(SYLVc-Rezolvarea ecuaţiei matriceale Sylvester<br />
complexe) (Date matricele A ∈ IC m×m , B ∈ IC n×n , C ∈ IC m×n cu λ(A)∩<br />
∩λ(B) = ∅ şi toleranţa tol, algoritmul calculează soluţia X ∈ IC m×n a<br />
ecuaţiei Sylvester continue AX − XB = C utilizând algoritmul QR1<br />
pentru reducerea matricelor A şi B la forma Schur. Se presupune că<br />
algoritmul QR1 se termină normal în ambele cazuri.)<br />
1. [S, U ] = QR1(A,I m ,tol, ′ da ′ )<br />
2. [T, V ] = QR1(B,I n ,tol, ′ da ′ )<br />
3. C ← ˜C = U H CV<br />
4. Y = SYLVtri(S,T,C)<br />
5. X = UYV H .
300 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Comentarii. Sintaxa de apel a algoritmului 4.20 este<br />
X = SYLVc(A,B,C).<br />
Complexitateaalgoritmuluieste O(n 3 ). Evident, efortulde calculcel maiimportant<br />
se consumă în execuţia instrucţiunilor 1 şi 2 de aducere la forma Schur a matricelor<br />
A, B şi de acumulare a transformărilor (dar nici efortul pentru rezolvarea ecuaţiei<br />
Sylvester triunghiulare şi efectuarea produselor matriceale nu poate fi neglijat).<br />
Dacă numim, ad-hoc, metoda prezentată mai sus varianta Schur-Schur, din motive<br />
de a<strong>si</strong>gurare a unei eficienţe maxime, se impune analiza alternativelor în care se<br />
renunţă la aducerea la forma Schur a ambelor matrice A şi B. Astfel, în aşa numita<br />
variantă Hessenberg-Schur numai matricea B este adusă la forma Schur apărând<br />
următoarele diferenţe în raport cu algoritmul 4.20 de mai sus:<br />
– în instrucţiunea 1 matricea A este adusă, printr-un algoritm de calcul direct<br />
(neiterativ) – algoritmul HQc – la forma superior Hessenberg; în acest fel se evită<br />
faza iterativă a algoritmului QR1;<br />
– în compensaţie, la instrucţiunea 3, în loc de rezolvarea unei ecuaţii Sylvester<br />
triunghiulare se rezolvă o ecuaţie Sylvester Hessenberg-triunghiulară, ceea ce presupune<br />
rezolvarea a n <strong>si</strong>steme de tip Hessenberg, incluzând eliminare gaus<strong>si</strong>ană cu<br />
eventuală pivotare.<br />
Evaluările existente apreciază că varianta Hessenberg-Schur este cu 30 până la<br />
80 procente mai eficientă. Scrierea explicită a algoritmului Hessenberg-Schur este<br />
propusă cititorului ca exerciţiu.<br />
Evident, matricele S şi T pot suprascrie matricele A şi, respectiv, B după cum<br />
matricea Y a rezultatelor intermediare şi soluţia X pot suprascrie matricea C dar<br />
s-a preferat scrierea de mai sus pentru claritatea prezentării algoritmului. ✸<br />
În cazul uzual, în care datele de intrare, i.e. matricele A, B şi C, sunt reale<br />
soluţia X este reală şi toate calculele se pot efectua într-o aritmetică reală. Pentru<br />
aceasta, în locul formei Schur complexe se utilizează reducerea la forma Schur reală.<br />
Ne propunem mai întâi să rezolvăm ecuaţia Sylvester<br />
SY −YT = C, (4.215)<br />
în care matricele S ∈ IR m×m şi T ∈ IR n×n au structuri cva<strong>si</strong>-superior triunghiulare<br />
(i.e. cu blocurile diagonale de ordin cel mult 2)<br />
⎡ ⎤ ⎡ ⎤<br />
S 11 S 12 ··· S 1p T 11 T 12 ··· T 1q<br />
0 S 22 ··· S 2p<br />
S = ⎢ . .<br />
⎣<br />
.<br />
. . ..<br />
. ⎥<br />
. ⎦ , T = 0 T 22 ··· T 2q<br />
⎢ . .<br />
⎣<br />
.<br />
. . ..<br />
. ⎥<br />
. ⎦ , (4.216)<br />
0 0 ··· S pp 0 0 ··· T qq<br />
iar C ∈ IR m×n . Algoritmul corespunzător acestei <strong>si</strong>tuaţii structurale este cunoscut<br />
sub denumirea de algoritmul Bartels-Stewart [4].<br />
Procedura urmăreşte cu fidelitate ideile din algoritmul 4.19, cu <strong>si</strong>ngura deosebire<br />
că în locul unor scalari apar blocuri i × j cu i,j ∈ {1,2}. Partiţionăm<br />
matricea necunoscutelor Y = [Y ij ] i=1:p,j=1:q şi matricea termenilor liberi C =<br />
= [C ij ] i=1:p,j=1:q conform cu partiţiile (4.216) ale matricelor S şi T.
4.7. FORMA BLOC-DIAGONALĂ 301<br />
În acest fel, corespondentele relaţiilor (4.212) sunt ecuaţiile bloc<br />
S ii Y ij −Y ij T jj = ˜C<br />
∑j−1<br />
ij + T kj Y ik −<br />
k=1<br />
q∑<br />
k=i+1<br />
S ik Y kj i = 1 : p, j = 1 : q, (4.217)<br />
i.e. ecuaţii Sylvester având matricele S ii şi T jj de dimen<strong>si</strong>uni 1×1 sau 2×2 care,<br />
scrise explicit, reprezintă <strong>si</strong>steme liniare determinate de ordin 1, 2 sau 4. Termenii<br />
liberi ai acestor <strong>si</strong>steme, i.e. matricele din membrul drept al relaţiilor (4.218), sunt<br />
calculabili dacă rezolvarea acestor <strong>si</strong>steme se face în ordinea j = 1,2,...,q, i =<br />
= p,p−1,...,1.<br />
Rezultă următorul algoritm.<br />
Algoritmul 4.21 (BS – Algoritmul Bartels-Stewart) (Date matricele<br />
cva<strong>si</strong>-superior triunghiulare S ∈ IR m×m , B ∈ IR n×n cu blocurile<br />
indexate ca în (4.216), astfel încât λ(S) ∩λ(T) = ∅ şi matricea termenilor<br />
liberi C ∈ IR m×n , partiţionată conform cu partiţilile matricelor<br />
S şi T, algoritmul calculează soluţia Y ∈ IR m×n a ecuaţiei Sylvester<br />
SY −YT = C.)<br />
1. Pentru j = 1 : q<br />
1. Dacă j > 1 atunci<br />
1. Pentru i = 1 : p<br />
1. C ij = C ij + ∑ j−1<br />
k=1 Y ikT kj .<br />
2. Pentru i = p : −1 : 1<br />
1. Dacă i < p atunci<br />
1. C ij = C ij − ∑ p<br />
k=i+1 S ikY kj .<br />
2. Se rezolvă ecuaţia Sylvester S ii Y ij − Y ij T jj = C ij (prin<br />
scrierea explicită şi utilizarea, e.g. a eliminării gaus<strong>si</strong>ene)<br />
Comentarii. Sintaxa de apel, cu care a algoritmul 4.21 va fi utilizat în continuare,<br />
este<br />
Y = BS(S,T,C).<br />
ComplexitateaalgoritmuluiesteO(n 3 ), comparabilăcurezolvareaecuaţieiSylvester<br />
triunghiulare cu algoritmul4.19. Concret numărul a<strong>si</strong>mptotic de operaţii aritmetice<br />
ce se efectuează este N op = 1 2 (m2 n + mn 2 ). De asemenea, proprietăţile numerice<br />
sunt <strong>si</strong>milare cu cele ale algoritmului 4.19, fiind dependente esenţial de nivelul de<br />
separare al spectrelor celor două matrice S şi T.<br />
✸<br />
Revenim la rezolvarea ecuaţiei Sylvester (4.203) având matricele de date A, B<br />
şi C reale. Fie U T AU = S şi V T BV = T formele Schur reale ale matricelor A,<br />
respectiv B, unde matricele U ∈ IR m×m şi V ∈ IR n×n sunt ortogonale. Introducând<br />
A = USU T şi B = VTV T în (4.203) obţinem ecuaţia<br />
care poate fi scrisă în forma (4.215)<br />
SU T XV −U T XVT = U T CV, (4.218)<br />
SY −YT = ˜C, (4.219)
302 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
unde<br />
Y = U T XV, ˜C = U T CV. (4.220)<br />
După calculul matricei Y cu algoritmul Bartels-Stewart, matricea necunoscută iniţială<br />
se determină cu relaţia<br />
X = UYV T . (4.221)<br />
Obţinem următorul algoritm.<br />
Algoritmul 4.22 (SYLVr – Rezolvarea ecuaţiei Sylvester reale)<br />
(Date matricele A∈IR m×m , B∈IR n×n , C ∈ IR m×n , cu λ(A)∩λ(B) = ∅,<br />
şi toleranţa tol, algoritmul calculează soluţia X ∈ IR m×n a ecuaţiei<br />
Sylvester continue AX −XB = C prin reducerea matricelor A şi B la<br />
forma Schur reală cu algoritmul QR2 şi utilizarea algoritmului Bartels-<br />
Stewart. Se presupune că algoritmul QR2 se termină normal în ambele<br />
cazuri.)<br />
1. [S, U ] = QR2(A,I m ,tol, ′ da ′ )<br />
2. [T, V ] = QR2(A,I n ,tol, ′ da ′ )<br />
3. C ← ˜C = U T CV<br />
4. Y = BS(S,T,C)<br />
5. X = UYV T<br />
Comentarii. Sintaxa de apel, cu care algoritmul 4.22 va fi utilizat în continuare,<br />
este<br />
X = SYLVr(A,B,C).<br />
Pentru alte aspecte, cum sunt aprecierea complexităţii şi memorarea economică,<br />
vezi comentariile de la algoritmul 4.20.<br />
✸<br />
Observaţia 4.7 Condiţia (4.204), de existenţă şi unicitate a soluţiei ecuaţiei<br />
Sylvester (4.203), sugerează ideea că soluţia este cu atât mai ”robustă” cu cât<br />
spectrele matricelor A şi B sunt mai bine ”separate”. Măsura separării spectrelor<br />
matricelor A şi B este dată de scalarul<br />
‖AV −VB‖ F<br />
sep(A,B) = min<br />
(4.222)<br />
V≠0 ‖V‖ F<br />
(pentru mai multe detalii vezi §4.10). Concret, se poate arăta [54] că soluţia X a<br />
ecuaţiei Sylvester (4.203) satisface condiţia<br />
‖X‖ F ≤ ‖C‖ F<br />
sep(A,B) . (4.223)<br />
Deci, dacă separarea matricelor A şi B este redusă, atunci este po<strong>si</strong>bil ca norma<br />
Frobenius a soluţiei să fie mare.<br />
✸
4.7. FORMA BLOC-DIAGONALĂ 303<br />
4.7.2 Descompunerea bloc-diagonală<br />
Po<strong>si</strong>bilitatea reducerii, prin transformări de asemănare, a unei matrice bloc-triunghiulare<br />
la o matrice bloc-diagonală are la bază următoarea lemă.<br />
Lema 4.5 Fie o matrice T ∈ IC n×n 2×2 superior bloc-triunghiulară<br />
[ ]<br />
T11 T<br />
T = 12<br />
, T<br />
0 T 11 ∈ IC n1×n1 , T 22 ∈ IC n2×n2 , n 1 +n 2 = n. (4.224)<br />
22<br />
Dacă λ(T 11 ) ∩ λ(T 22 ) = ∅, atunci există o matrice ne<strong>si</strong>ngulară X ∈ IC n×n având<br />
structura<br />
[ ]<br />
In1 X<br />
X = 12<br />
, (4.225)<br />
0 I n2<br />
astfel încât<br />
D = X −1 TX =<br />
Demonstraţie. Este <strong>si</strong>mplu de constatat că<br />
[ ]<br />
X −1 In1 −X<br />
= 12<br />
0 I n2<br />
şi, în consecinţă,<br />
D = X −1 TX =<br />
[ ]<br />
T11 0<br />
. (4.226)<br />
0 T 22<br />
(4.227)<br />
[ ]<br />
T11 T 11 X 12 −X 12 T 22 +T 12<br />
. (4.228)<br />
0 T 22<br />
Conform teoremei 4.16, în condiţiile lemei, ecuaţia matriceală Sylvester continuă<br />
T 11 X 12 −X 12 T 22 +T 12 = 0 (4.229)<br />
admite o soluţie X 12 unic determinată. Utilizând această soluţie în definirea matricei<br />
X aserţiunea lemei este probată evident.<br />
✸<br />
Lema 4.5 se generalizează imediat în următorul rezultat.<br />
Teorema 4.17 Dacă matricea T ∈ IC n×n are o structură q × q superior bloc-triunghiulară<br />
⎡ ⎤<br />
T 11 T 12 ··· T 1q<br />
0 T 22 ··· T 2q<br />
q∑<br />
T = ⎢<br />
⎣<br />
.<br />
. . ..<br />
⎥<br />
. ⎦ , T ii ∈ IC ni×ni , n i = n, (4.230)<br />
i=1<br />
0 0 ··· T qq<br />
şi satisface condiţiile<br />
λ(T ii )∩λ(T jj ) = ∅, ∀i ≠ j, (4.231)<br />
atunci există o matrice ne<strong>si</strong>ngulară X ∈ IC n×n având structura<br />
⎡ ⎤<br />
I n1 X 12 ··· X 1q<br />
0 I n2 ··· X 2q<br />
X = ⎢<br />
⎣<br />
.<br />
. . ..<br />
⎥<br />
. ⎦ , (4.232)<br />
0 0 ··· I nq
304 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
astfel încât<br />
⎡<br />
D = X −1 TX = ⎢<br />
⎣<br />
⎤<br />
T 11 0 ··· 0<br />
0 T 22 ··· 0<br />
.<br />
. . ..<br />
⎥<br />
. ⎦ . (4.233)<br />
0 0 ··· T qq<br />
Demonstraţie. Dovadase obţine imediat prinaplicarearepetată alemei 4.5pentru<br />
a proba existenţa şi pentru a calcula submatricele X ij care definesc matricea de<br />
transformare X. Procedura are q −1 paşi.<br />
Pasul 1 ◦ . Fie partiţia<br />
T =<br />
⎡<br />
[ ]<br />
T11 ˜T12<br />
, unde ˜T12 = [ ] ⎢<br />
T 12 ··· T 1q , ˜T22 = ⎣<br />
0 ˜T22<br />
⎤<br />
T 22 ··· T 2q<br />
.<br />
. .. . 0 ··· T qq<br />
Din (4.231) rezultă λ(T 11 )∩λ(˜T 22 ) = ∅. Prin urmare, conform lemei 4.5, transformarea<br />
definită de T ← T (1) = X1 −1 TX 1 cu<br />
[ ]<br />
In1 ˜X12<br />
X 1 = ,<br />
0 I n−n1<br />
unde ˜X 12 este soluţia ecuaţiei Sylvester<br />
T 11 ˜X12 − ˜X 12˜T22 + ˜T 12 = 0<br />
a<strong>si</strong>gură anularea blocurilor extradiagonale de pe prima bloc-linie a matricei T.<br />
Pasul k ◦ . Presupunem că la primii k − 1 paşi am realizat bloc-diagonalizarea<br />
din primele bloc linii, i.e.<br />
T ← T (k−1) = X −1<br />
k−1···X−1 2 X−1 1 TX 1X 2···X k−1 =<br />
⎡<br />
⎣<br />
⎤<br />
˜T 11 0 0<br />
0 T kk<br />
˜Tk,k+1 ⎦,<br />
0 0 ˜Tk+1,k+1<br />
⎥<br />
⎦.<br />
unde<br />
˜T 11 =<br />
⎡<br />
⎢<br />
⎣<br />
⎤<br />
T 11 ··· 0<br />
.<br />
. .. .<br />
⎥<br />
⎦, ˜Tk,k+1 = [ ]<br />
T k,k+1 ··· T kq ,<br />
0 ··· T k−1,k−1<br />
˜T k+1,k+1 =<br />
⎡<br />
⎢<br />
⎣<br />
T k+1,k+1<br />
⎤<br />
··· T k+1,q<br />
.<br />
. .. .<br />
⎥<br />
⎦.<br />
0 ··· T qq<br />
Din aceleaşi motive ca la pasul 1 ◦ , dacă ˜X k,k+1 este soluţia ecuaţiei Sylvester<br />
T kk ˜Xk,k+1 − ˜X k,k+1 ˜Tk+1,k+1 + ˜T k,k+1 = 0, (4.234)
4.7. FORMA BLOC-DIAGONALĂ 305<br />
atunci matricea<br />
unde<br />
⎡<br />
X k = ⎣<br />
T ← T (k) = X −1<br />
k T(k−1) X k , (4.235)<br />
⎤<br />
Iñ1 0 0<br />
0 I nk<br />
˜Xk,k+1 ⎦, ñ 1 =<br />
0 0 I n−ñ1−n k<br />
k−1<br />
∑<br />
n i , (4.236)<br />
a<strong>si</strong>gură anularea blocurilor extradiagonale de pe bloc-linia k. Prin urmare, procedura<br />
iniţiată la pasul 1 ◦ poate fi continuată astfel încât, după q −1 paşi, matricea<br />
T ← T (q−1) = X −1<br />
q−1···X−1 2 X−1 1 TX 1X 2···X q−1 = X −1 TX (4.237)<br />
este bloc-diagonală, unde<br />
i=1<br />
X = X 1 X 2···X q−1 (4.238)<br />
este o matrice unitar bloc superior triunghiulară (ca produs de matrice unitar bloc<br />
superior triunghiulare). Demonstraţia este completă.<br />
✸<br />
Conform demonstraţiei de mai sus, schema de calcul pentru bloc-diagonalizarea<br />
unei matrice bloc superior triunghiulare 42 , care satisface condiţiile (4.231), este<br />
următoarea:<br />
1. X = I n<br />
2. Pentru k = 1 : q −1<br />
1. Se calculează soluţia ˜X k,k+1 a ecuaţiei Sylvester (4.234).<br />
2. Se anulează blocurile extradiagonale de pe bloc-linia k pe baza<br />
relaţiei (4.235).<br />
3. X = XX k unde X k este definită de (4.236).<br />
Această schemă de calcul se poate detalia prin rezolvarea ecuaţiei Sylvester (4.234)<br />
pe blocuri. Într-adevăr, fie partiţia<br />
˜X k,k+1 = [ X k,k+1 ··· X kq<br />
]<br />
,<br />
conformă cu partiţia lui ˜T k,k+1 . Atunci ecuaţia (4.234) se reduce la setul de ecuaţii<br />
Sylvester<br />
T kk X kj −X kj T jj =<br />
∑j−1<br />
l=k+1<br />
X kl T lj −T kj , j = k +1 : q, (4.239)<br />
(unde, pentru j = k + 1 suma se con<strong>si</strong>deră nulă) care pot fi rezolvate în ordinea<br />
impusă j = k +1,k +2,...,q. Acumularea transformărilor, se poate face şi ea pe<br />
măsură ce se calculează blocurile. Întrucât bloc-diagonalizarea urmează, de obicei,<br />
reducerii la forma bloc-triunghiulară şi unei eventuale ordonări a blocurilor diagonale<br />
(e.g. calculul formei Schur ordonate), pentru a nu reduce generalitatea vom<br />
con<strong>si</strong>dera că matricea iniţială de transformare este Q, po<strong>si</strong>bil diferită de matricea<br />
unitate. Astfel, acumularea transformărilor constă în calculul Q ← QX.<br />
Rezultă următoarea schemă de calcul.<br />
42 Pentru diagonalizarea matricelor bloc inferior triunghiulare se aplică această procedură matricei<br />
transpuse, după care se transpune rezultatul.
306 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
BD 1. Pentru k = 1 : q −1<br />
1. Pentru j = k +1 : q<br />
1. Se rezolvă ecuaţia Sylvester T kk X kj −X kj T jj = −T kj<br />
2. T kj = 0<br />
3. Dacă k < q −1 atunci<br />
1. Pentru l = j +1 : q<br />
1. T kl = T kl −X kj T jl<br />
2. Pentru i = 1 : q<br />
1. Q ij = Q ij +Q ik X kj<br />
Algoritmul de implementare al schemei de calcul BD arată astfel.<br />
Algoritmul 4.23 (BDc – Diagonalizarea bloc a unei matrice bloc<br />
superior triunghiulare) (Date matricea bloc superior triunghiulară T ∈<br />
∈ IC n×n , având blocurile diagonale T ii ∈ IC ni×ni , i = 1 : q, astfel încât<br />
λ(T ii )∩λ(T jj ) = ∅, ∀i ≠ j, matricea de transformare iniţială Q ∈ IC n×n<br />
şi vectorul nd = [n 1 n 2 ... n q ] al ordinelor blocurilor diagonale, algoritmul<br />
calculează matricea unitar bloc triunghiulară X ∈ IC m×n astfel<br />
încât T ← X −1 TX este bloc-diagonală T = diag(T 11 ,T 22 ,...,T qq ) şi<br />
acumulează transformărileactualizând matricea Q: Q ← QX. Matricea<br />
X nu se formează explicit.)<br />
1. r 1 = 1<br />
2. s 1 = n 1<br />
3. Pentru k = 1 : q −1<br />
1. r k+1 = r k +n k<br />
2. s k+1 = s k +n k+1<br />
4. Pentru k = 1 : q −1<br />
1. Pentru j = k +1 : q<br />
1. Y = SYLV(T(r k :s k ,r k :s k ),T(r j :s j ,r j :s j ),<br />
−T(r k :s k ,r j :s j ))<br />
2. T(r k :s k ,r j :s j ) = 0<br />
3. Dacă k < q −1 atunci<br />
1. Pentru l = j +1 : q<br />
1. T(r k :s k ,r l :s l ) = T(r k :s k ,r l :s l )−YT(r j :s j ,r l :s l )<br />
4. Q(:,r j :s j ) = Q(:,r j :s j )+Q(:,r k :s k )Y<br />
Comentarii. Sintaxa de apel pentru algoritmul 4.23 este<br />
[T,Q] = BD(T,Q,nd).<br />
Pentru <strong>si</strong>mplificarea scrierii algoritmului s-au introdus vectorii de indici iniţiali (r)<br />
şi finali (s) ai blocurilor, i.e. astfel încât T ij = T(r i : s i ,r j : s j ). Întrucât matricea<br />
X nu se formează explicit (în afara cazului când Q iniţial este I n ) pentru soluţiile<br />
X kj ale ecuaţiilor Sylvester s-a utilizat aceeaşi variabilă matriceală Y.
4.7. FORMA BLOC-DIAGONALĂ 307<br />
Ver<strong>si</strong>unea pentru date iniţiale reale – s-o numim BDr – este absolut <strong>si</strong>milară,<br />
<strong>si</strong>ngura diferenţă constând în utilizarea algoritmului SYLVr pentru rezolvarea<br />
ecuaţiilor Sylvester implicate.<br />
Complexitatea algoritmului este O(n 3 ) numărul concret de operaţii fiind dependent<br />
de structura blocurilor diagonale. Dacă blocurile diagonale sunt toate 1×1,<br />
atunci în cazul real N op = 2 3 n3 flopi, iar în cazul complex numărul echivalent de<br />
flopi reali este de patru ori mai mare.<br />
✸<br />
Observaţia 4.8 În majoritateaaplicaţiilorcalitateaformeiboc-diagonalecalculate<br />
de algoritmul BD este apreciată prin condiţionarea κ(X) = ‖X‖·‖X −1 ‖ a matricei<br />
de transformare X. Dată o matrice T în formă Schur (reală), se poate formula<br />
problema unei ordonări prealabile a acesteia şi apoi a fixării blocurilor diagonale<br />
astfel încât să se obţină o condiţionare cât mai bună a matricei de transformare<br />
X. Con<strong>si</strong>derăm, spre exemplificare, cazul a numai două blocuri diagonale. Din<br />
structura (4.225) şi (4.227) a matricelor X şi X −1 avem<br />
κ F (X) = ‖X‖ F ·‖X −1 ‖ F = n+‖X 12 ‖ 2 F.<br />
Prin urmare, condiţionarea matricei X este cu atât mai bună cu cât norma soluţiei<br />
X 12 a ecuaţiei Sylvester (4.229) este mai mică, i.e. conform observaţiei 4.7, separareaspectrelorblocurilorT<br />
11 şiT 22 estemaimare. Revenindlaproblemaformulată<br />
mai sus, ordonarea formei Schur şi fixarea blocurilor diagonale trebuie făcută astfel<br />
încât spectrele blocurilor diagonale să fie cât mai bine separate. ✸<br />
4.7.3 Aspecte numerice privitoare la calculul<br />
formei canonice Jordan<br />
În cazul general, cea mai <strong>si</strong>mplă structură care poate fi obţinută, prin transformări<br />
de asemănare corespunzătoare, este aşa numita formă canonică Jordan definită în<br />
teorema următoare.<br />
Teorema 4.18 Oricare ar fi matricea A ∈ IC n×n există o matrice ne<strong>si</strong>ngulară T ∈<br />
∈ IC n×n astfel încât<br />
J = T −1 AT = diag(J 1 , J 2 , ..., J q ), (4.240)<br />
unde blocurile diagonale J k se numesc celule Jordan şi sunt fie scalari J k = λ k , fie<br />
au structura ⎡<br />
⎤<br />
λ k 1 ··· 0 0<br />
. 0 λ .. k 0 0<br />
J k =<br />
.<br />
⎢ . . .. . .. .<br />
∈ IC n k×n k<br />
. (4.241)<br />
⎥<br />
⎣ 0 0 ··· λ k 1 ⎦<br />
0 0 ··· 0 λ k<br />
Unei valori <strong>proprii</strong> multiple îi pot corespunde una sau mai multe celule Jordan.<br />
Numărul şi dimen<strong>si</strong>unile celulelor Jordan asociate fiecărei valori <strong>proprii</strong> sunt unic<br />
determinate, dar ordonarea blocurilor în (4.240) poate fi arbitrară.
308 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Demonstraţie. Demonstraţii complete pot fi gă<strong>si</strong>te în lucrările cla<strong>si</strong>ce de algebră<br />
liniară sau analiză matriceală, cum sunt, de exemplu, [I], [II]. ✸<br />
DeşiformacanonicăJordanjoacăunrolesenţialînanalizamatriceală,conţinând<br />
maximum de informaţie structurală privitor la o matrice dată, totuşi rolul ei în calculul<br />
numeric este mult diminuat de sen<strong>si</strong>bilitatea structurii Jordan la perturbaţii<br />
numerice în elementele matricei iniţiale, perturbaţii inerente datorită erorilor de<br />
reprezentare a informaţiei numerice într-un format virgulă mobilă. De asemenea,<br />
încercările de a calcula forma canonică Jordan a unei matrice presupuse ca având<br />
o reprezentare exactă, într-un mediu de calcul aproximativ, prezintă dificultăţi majore<br />
datorită influenţelor structurale, po<strong>si</strong>bil deci<strong>si</strong>ve, ale erorilor de rotunjire. Din<br />
păcate (sau din fericire) nu s-a putut degaja un concept de formă canonică Jordan<br />
”aproximativă” sau, mai bine zis, acest rol poate fi jucat de o structură diagonală,<br />
întrucât oricât de aproape (în sensul unei norme matriceale con<strong>si</strong>stente) de o matricecu<br />
o structurăJordanoricâtde complexăsegăsescmatricecu structuraJordan<br />
cea mai <strong>si</strong>mplă, i.e. diagonală.<br />
Trebuie subliniat însă că, practic în toate aplicaţiile, forma canonică Jordan<br />
poate fi suplinită cu succes de către forma Schur, al cărei calcul se poate efectua cu<br />
o înaltă acurateţe.<br />
Privind acum determinarea formei canonice Jordan ca o provocare la adresa<br />
calculului numeric, ne propunem să scoatem în evidenţă, la un nivel mai puţin<br />
formal, natura dificultăţilor ce apar într-o astfel de întreprindere.<br />
Înprimulrândesteevidentfaptulcăoabordareproceduralănaturalăaconstrucţiei<br />
formei canonice Jordan a unei matrice A ∈ IC n×n presupune ca o primă etapă,<br />
deci<strong>si</strong>vă, calculul formei formei Schur ordonate şi, pe această bază, a formei blocdiagonale<br />
(prezentate în secţiunile precedente) în care fiecare bloc diagonal corespunde<br />
unei valori <strong>proprii</strong> distincte a matricei iniţiale şi, prin urmare, are ordinul<br />
dat de multiplicitatea algebrică a valorii <strong>proprii</strong> respective. De asemenea, amintim<br />
că, în cazul complex, blocurile diagonale sunt matrice superior triunghiulare.<br />
În consecinţă, problema se reduce, de fapt, la calculul formei canonice Jordan a<br />
unui bloc diagonal al formei bloc diagonale, i.e. a unei matrice (utilizăm din nou<br />
notaţiile generice) A ∈ IC n×n de forma<br />
A = λI n +N, (4.242)<br />
unde N ∈ IC n×n este o matrice strict superior triunghiulară. Mai mult, întrucât<br />
T −1 AT = λI n + T −1 NT, este suficient să construim forma canonică Jordan a<br />
matricei strict superior triunghiulare N.<br />
Fie<br />
J = T −1 NT = diag(J 1 , J 2 , ..., J q ), (4.243)<br />
forma canonică Jordan a matricei N, unde celulele Jordan J k sunt definite, în acest<br />
caz, de ⎡ ⎤<br />
0 1 ··· 0 0<br />
. 0 0 .. 0 0<br />
J k =<br />
. . .<br />
⎢ . . .. . ..<br />
. .<br />
∈ IC n k×n k<br />
. (4.244)<br />
⎥<br />
⎣ 0 0 ··· 0 1 ⎦<br />
0 0 ··· 0 0
4.7. FORMA BLOC-DIAGONALĂ 309<br />
O primă dificultate majoră este determinarea ordinelor n k , k = 1 : q, ale celulelor.<br />
O modalitate de a face acest lucru pleacă de la următoarele observaţii: a) J l k = 0<br />
pentru toţi l ≥ n k şi b) dimKerJ l k = l, pentru l < n k. Cum<br />
J l = T −1 N l T = diag(J l 1, J l 2, ..., J l q), (4.245)<br />
şi<br />
q∑<br />
dimKerJ l = dimKerN l = dimKerJi, l (4.246)<br />
i=1<br />
rezultă că, dacă putem calcula m l<br />
def<br />
= dimKerN l pentru l ∈ 1 : n 43 , atunci dimen<strong>si</strong>unile<br />
n i ale celulelor Jordan pot fi determinate din (4.246) pe baza următoarelor<br />
constatări:<br />
a) numărul celulelor Jordan de ordin l sau mai mare este δ l = m l − m l−1 (se<br />
con<strong>si</strong>deră m 0 = 0), întrucât o dată ce l a atins valoarea n i , J l i a devenit nulă,<br />
i.e. dimKerJ l i a atins valoarea maximă n i şi nu mai contribuie la variaţia sumei la<br />
trecerea la valoarea următoare a lui l;<br />
b) numărul celulelor Jordan de ordin l este dat de ν l = δ l −δ l+1 (se con<strong>si</strong>deră<br />
δ lmax+1 = 0).<br />
Exemplul 4.5 Fie n = 8 ordinul matricei strict superior triunghiulare N. O<br />
<strong>si</strong>tuaţie structurală po<strong>si</strong>bilă ce poate fi dedusă din determinarea dimKerN l , pentru<br />
toate valorile de interes ale lui l, este rezumată întabelul 4.6. Deci structura Jordan<br />
a matricei N are o celulă scalară, două celule de ordinul 2 şi o celulă de ordinul 3.<br />
✸<br />
l 1 2 3<br />
m l = dimKerN l 4 7 8<br />
δ l = m l −m l−1 4 3 1<br />
ν l = δ l −δ l+1 1 2 1<br />
Tabelul 4.6: Determinarea dimen<strong>si</strong>unii celulelor Jordan pentru o matrice strict<br />
superior triunghiulară de ordinul 8<br />
Pentru aplicarea celor arătate mai sus este necesar un mijloc fiabil de determinare<br />
a dimen<strong>si</strong>unilor subspaţiilor implicate sau, echivalent, de calcul al rangului<br />
unor matrice. Aici este de fapt punctul critic al procedurii, întrucât deciziile de<br />
rang exact într-un mediu de calcul aproximativ sunt dificile, dacă nu impo<strong>si</strong>bile,<br />
iar conceptul de rang numeric (i.e. într-un sens, de rang aproximativ, v. cap. 5),<br />
<strong>si</strong>ngurul instrument de care putem dispune în condiţiile precizate, trebuie utilizat<br />
cu multă grijă într-o abordare structurală în care structura este foarte sen<strong>si</strong>bilă la<br />
variaţiile elementelor.<br />
43 Evident, este suficient să ne rezumăm la l ≤ s, unde s este cel mai mic întreg pentru care<br />
N s = 0.
310 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Pentru a încheia constructiv acest paragraf, vom con<strong>si</strong>dera ca fiind exact rangul<br />
oferit de instrumentele numerice existente şi, pentru a apela la proceduri deja<br />
familiare cititorului, vom folo<strong>si</strong> în acest scop triangularizarea unitară (ortogonală)<br />
completă 44 (v. cap. 3). Reamintim că, dată o matrice A ∈ IC m×n , procedura de<br />
triangularizare unitară completă presupune o triangularizare unitară cu pivotarea<br />
coloanelor care calculează matricea unitară Q ∈ IC m×m şi matricea (ortogonală) de<br />
permutare P ∈ IR n×n astfel încât<br />
Q H AP = R =<br />
[<br />
R11 R 12<br />
0 0<br />
]<br />
, R 11 ∈ IC r×r , (4.247)<br />
unde R 11 este superior triunghiulară ne<strong>si</strong>ngulară (i.e. r este rangul matricei A),<br />
urmatădeanulareabloculuiR 12 printr-otransformareunitară(ortogonală)aplicată<br />
pe dreapta, obţinându-se<br />
Q H APV = Q H AZ = RV =<br />
[<br />
R11 0<br />
0 0<br />
]<br />
, Z = PV. (4.248)<br />
În cele ce urmează, vom utiliza variante ale descompunerii (4.248) obţinute prin<br />
permutări suplimentare ale blocurilor. În acest scop vom introduce <strong>si</strong>ntaxa de apel<br />
[R,Q,Z,r] = QRCij(A),<br />
unde ij marchează poziţia blocului triunghiular ne<strong>si</strong>ngular R 11 , indexat în continuare<br />
în funcţie de nece<strong>si</strong>tăţile contextului. Subliniem încă o dată că, deşi rangul<br />
calculat r este esenţial dependent de nivelul erorilor de calcul şi al toleranţelor<br />
practicate în procesul de triangularizare, în cele ce urmează acesta va fi con<strong>si</strong>derat<br />
exact.<br />
Trecem la construcţia formei canonice Jordan a matricei strict superior triunghiulare<br />
(deci nilpotente) N ∈ IC n×n , şi vom presupune N ≠ 0 45 . Esenţa<br />
procedurii de construcţie a formei Jordan constă în următoarele etape.<br />
Etapa 1 ◦ rezidă în reducerea matricei N la o structură bloc supradiagonală.<br />
Pentru a obţine această structură aplicăm matricei N procedura de triangularizare<br />
unitară (ortogonală) completă [N 1 ,Q 1 ,Z 1 ,r 1 ] = QRC12(N). Rezultă<br />
cu R 1 ∈ IC r1×r1 ne<strong>si</strong>ngulară şi<br />
Q H 1 NZ 1 = R =<br />
m 1=δ 1<br />
r 1<br />
{}}{ {}}{<br />
[ ]<br />
0 R1 }r1<br />
, (4.249)<br />
0 0 }δ 1<br />
m 1 = dimKerN = n−r 1 = δ 1 . (4.250)<br />
44 Un mijloc mai bun de evaluare a rangului este descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare, tratată în<br />
capitolul 5.<br />
45 Dacă N = 0, atunci ea se află deja în formă canonică Jordan cu n celule de ordinul 1.
4.7. FORMA BLOC-DIAGONALĂ 311<br />
În continuare fie matricea N 1 , unitar asemenea cu N, definită de<br />
δ 1<br />
r 1<br />
{}}{ {}}{<br />
[ ]<br />
N 1 = Z1 H NZ 1 = Z1 H 0 Q K1 }δ1<br />
1R = , (4.251)<br />
0 L 1 }r 1<br />
unde, evident, λ(L 1 ) ⊂ λ(N), i.e. blocul L 1 are toate valorile <strong>proprii</strong> nule, respectiv<br />
este nilpotent. Putem determinaacum m 2 = dimKerN 2 = dimKerN 2 1. Într-adevăr,<br />
m 2 = dimKerN 2 1 = dimKer [ 0 K1 L 1<br />
0 L 2 1<br />
[<br />
K1 L<br />
= m 1 +dimKer 1<br />
L 2 1<br />
[ ] [<br />
K1 L 1 K1<br />
]<br />
=<br />
]<br />
= m 1 +dimKerL 1 , (4.252)<br />
L 1<br />
]<br />
L 1 , iar matricea<br />
[<br />
K1<br />
]<br />
întrucât<br />
L 2 =<br />
este monică. Dacă L<br />
1<br />
L 1 = 0<br />
1<br />
se trece la etapa a doua. Dacă L 1 ≠ 0 continuăm procesul iniţiat mai sus, prin<br />
aplicarea unor transformări <strong>si</strong>milare matricei nilpotente L 1 , obţinând<br />
δ 2<br />
r 2<br />
{}}{ {}}{<br />
[ ]<br />
0 ˆN 2 = ẐH 2 L K2 }δ2<br />
1Ẑ2 = , (4.253)<br />
0 L 2 }r 2<br />
[ ]<br />
K2<br />
cu matricea L 2 nilpotentă, matricea monică, m<br />
L 2 = m 1 +δ 2 şi δ 2 = r 1 −r 2 .<br />
2<br />
Con<strong>si</strong>derând matricea de transformare unitară<br />
[ ]<br />
Im1 0<br />
Z 2 = , (4.254)<br />
0 Ẑ 2<br />
obţinem<br />
δ 2 r 2<br />
{}}{ {}}{ {}}{<br />
⎡ ⎤ ⎡<br />
0 K 1 Ẑ 2<br />
Ñ 2 = Z2 H N 1 Z 2 = Z2 H Z1 H NZ 1 Z 2 = ⎣ 0 K ⎦<br />
0 2<br />
= ⎣ 0 K ⎤<br />
12 K 13<br />
0 0 K 23<br />
⎦ }δ 1<br />
}δ 2 ,<br />
0 L 2<br />
0 0 L 2 }r 2<br />
[ ]<br />
(4.255)<br />
K23<br />
în care matricele K 12 şi sunt monice. În această fază putem anula blocul<br />
L 2<br />
K 13 printr-o transformare de asemănare (neunitară) definită de o matrice de transformare<br />
de tipul<br />
[ ]<br />
Iδ1 S<br />
T 2 = , (4.256)<br />
0 I r1<br />
δ 1
312 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
unde S ∈ IC δ1×r1 este o soluţie a ecuaţiei matriceale 46<br />
[ ]<br />
K23<br />
S = K<br />
L 13 . (4.257)<br />
2<br />
Cu această transformare rezultă<br />
N 2 = T2<br />
−1 Ñ 2 T 2 = T2 −1 Z2 H Z1 H NZ 1 Z 2 T 2 =<br />
δ 1<br />
δ 2 r 2<br />
{}}{ {}}{ {}}{<br />
⎡<br />
⎣ 0 K ⎤<br />
12 0<br />
0 0 K 23<br />
0 0 L 2<br />
⎦ }δ 1<br />
}δ 2<br />
}r 2<br />
, (4.258)<br />
Acest proces se desfăşoară într-un număr s de paşi, unde s este primul întreg<br />
pentrucareL s =0, obţinându-se, înfinalulacesteietape, omatriceavândostructură<br />
bloc supradiagonală<br />
K = N s = T −1<br />
s Z H s ...T−1 2 Z H 2 ZH 1 NZ 1Z 2 T 2 ...Z s T s =<br />
=<br />
δ 1 δ 2 δ 3 δ s<br />
{}}{ {}}{ {}}{ ··· {}}{<br />
⎡<br />
⎤<br />
0 K 12 0 ··· 0<br />
0 0 K 23 ··· 0<br />
. . . .. . .. .<br />
⎢<br />
⎣<br />
. ⎥<br />
0 0 0 .. Ks−1,s ⎦<br />
0 0 0 ··· 0<br />
}δ 1<br />
}δ 2<br />
. , (4.259)<br />
}δ s<br />
}δ s−1<br />
cu toate blocurile K i−1,i , i = 2 : s, monice. Din dimen<strong>si</strong>unile δ l ×δ l ale blocurilor<br />
diagonale se pot deduce, după cum s-a arătat mai sus, numărul ν l = δ l − δ l+1 ,<br />
l = 1 : s, al celulelor Jordan de ordinul l.<br />
Etapa 2 ◦ arecaobiect introducereazerourilor înblocurilesupradiagonaleK i−1,i .<br />
Pentru claritate, descriem modalitatea în care acest obiectiv poate fi atins în cazul<br />
particular s = 3. Con<strong>si</strong>derăm descompunerea unitară completă a blocului K 23<br />
[ ˜K 23 ,Q 23 ,Z 23 ,δ 3 ] = QRC21(K 23 ), cu care obţinem<br />
[ ]<br />
˜K 23 = Q H 0 }δ2 −δ<br />
23K 23 Z 23 =<br />
3 = ν 2<br />
, (4.260)<br />
R 23 }δ 3 = ν 3<br />
cu R 23 ∈ IC ν3×ν3 ne<strong>si</strong>ngulară. Acum, cu transformarea de asemănare definită de<br />
matricea<br />
⎡ ⎤<br />
I δ1 0 0<br />
T 23 = ⎣ 0 Q 23 0 ⎦, (4.261)<br />
0 0 Z 23 R23<br />
−1<br />
[ ]<br />
46 K23<br />
Ecuaţia (4.257) are întotdeauna (cel puţin) o soluţie S întrucât matricea <strong>si</strong>stemului<br />
L 2<br />
este monică. [ O soluţie ] poate [ fi]<br />
calculată cu mijloacele descrise în capitolele [ 2 şi]<br />
3. De exemplu,<br />
dacă Q H K23 R K23<br />
= este triangularizarea unitară a matricei , atunci S =<br />
L 2 0<br />
L 2<br />
= [ R −1 K 13 Y ] Q H , cu Y ∈ IC δ 1×δ 2 arbitrară, este o astfel de soluţie. Pentru Y = 0 se obţine<br />
soluţia normală, i.e. de normă Frobenius minimă.
4.7. FORMA BLOC-DIAGONALĂ 313<br />
rezultă<br />
˜M = T23 −1 KT 23 = ⎢<br />
⎣<br />
⎡<br />
⎤<br />
0 K 12 Q 23 [ 0 ]<br />
0ν2<br />
0 0<br />
I δ3<br />
0 0 0<br />
⎥<br />
⎦ . (4.262)<br />
Continuând în acelaşi mod, con<strong>si</strong>derăm descompunerea unitară completă a blocului<br />
K 12 actualizat [ ˜K 12 ,Q 12 ,Z 12 ,δ 2 ] = QRC21(K 12 Q 23 ) şi transformarea de asemănare<br />
definită de matricea<br />
⎡ ⎤<br />
Q 12 0 0<br />
T 12 = ⎣ 0 Z 12 R12 −1 0 ⎦. (4.263)<br />
0 0 I δ3<br />
Rezultă<br />
⎡ [ ] ⎤<br />
0ν1<br />
0 0<br />
M = T12 −1 ˜MT I δ2 [ ]<br />
12 =<br />
⎢ 0ν2<br />
⎣ 0 0 ⎥<br />
I δ3<br />
⎦ . (4.264)<br />
0 0 0<br />
În cazul general, procesul descris mai sus, poate fi <strong>si</strong>ntetizat în următoarea<br />
schemă de calcul.<br />
Pentru i = s : −1 : 2<br />
1. [ ˜K i−1,i ,Q[ i−1,i ,Z i−1,i ] ,δ i ] = QRC21(K i−1,i )<br />
0νi−1<br />
2. K i−1,i ←<br />
I δi<br />
3. Dacă i > 2 atunci<br />
1. K i−2,i−1 ← K i−2,i−1 Q i−1,i .<br />
Observaţia 4.9 Punerea în evidenţă a matricelor unitate din structura creată cu<br />
schema de calcul are în vedere obţinerea formei canonice Jordan uzuale. Ţinând<br />
seama însă de faptul că esenţa structurală a formei Jordan rezidă în dimen<strong>si</strong>unile<br />
celulelorJordan, sepoateoferiun plusde informaţie dacă înloculmatricelorunitate<br />
se lasă matricele diagonale construite cu elementele diagonale ale matricelor R i−1,i<br />
(sau cu valorile <strong>si</strong>ngulare (v. cap. 5) ale matricelor K i−1,i curente). În acest fel<br />
se poate pune în evidenţă o eventuală fragilitate numerică a unor celule datorată<br />
<strong>valorilor</strong> ”prea mici” ale unora dintre elementele diagonale amintite. ✸<br />
Etapa 3 ◦ constă în transformări de asemănare tip permutare pentru a pune<br />
în lumină celulele Jordan de dimen<strong>si</strong>uni corespunzătoare şi pentru eventuala lor<br />
ordonare. Lăsăm în seama cititorului această sarcină.<br />
În concluzie, parcurgând cele trei etape, se obţine forma canonică Jordan J 0 a<br />
matricei strict superior triunghiulare N. Forma canonică Jordan a matricei iniţiale<br />
A din (4.242) este J = λI n +J 0 .<br />
Matricea ne<strong>si</strong>ngulară care defineşte transformarea de asemănare ce evidenţiază<br />
forma canonică Jordan se obţine cumulând toate transformările efectuate pe parcursul<br />
procedurii.<br />
Rezumând cele prezentate mai sus, avem următoarea schiţă a unei po<strong>si</strong>bile proceduri<br />
de calcul a formei canonice Jordan.
314 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
J<br />
1. Se calculează forma Schur (complexă) utilizând algoritmul QR.<br />
2. Se ordonează forma Schur astfel încât valorile <strong>proprii</strong> apreciate<br />
ca fiind egale să fie grupate.<br />
3. Se calculează forma bloc-diagonală astfel încât fiecărui bloc să-i<br />
corespundă o valoare proprie distinctă.<br />
4. Se calculează forma canonică Jordan a fiecărui bloc diagonal<br />
conform indicaţiilor din prezenta secţiune.<br />
Subliniem în final complexitatea sarcinii de a calcula forma canonică Jordan,<br />
dependenţacritică astructurii obţinute de delicatedecizii de rangce trebuie luate la<br />
pasul 4, precum şi po<strong>si</strong>bile condiţionări nesatisfăcătoare sau instabilităţi numerice<br />
în rezolvarea ecuaţiilor matriceale Sylvester din pasul 3, mai ales în <strong>si</strong>tuaţia în<br />
care separarea <strong>valorilor</strong> <strong>proprii</strong> con<strong>si</strong>derate distincte este insuficientă. De aceea,<br />
în aplicaţiile de calcul numeric, se evită utilizarea formei canonice Jordan. Aşa<br />
cum s-a precizat, din fericire, forma Schur, mult mai robustă, este suficientă pentru<br />
rezolvarea practic a tuturor problemelor de interes aplicativ.<br />
4.8 Algoritmul QR <strong>si</strong>metric<br />
Matricele reale <strong>si</strong>metrice A = A T ∈ IR n×n apar în numeroase aplicaţii specifice. În<br />
particular, problema generală a celor mai mici pătrate presupune rezolvarea (mai<br />
mult sau mai puţin explicită a) <strong>si</strong>stemului normal de ecuaţii a cărui matrice este<br />
<strong>si</strong>metrică. Maimult,cazul<strong>si</strong>metricesteimportantpentrucalculul<strong>valorilor</strong><strong>si</strong>ngulare<br />
ale unei matrice, problemă ce apare în toate aplicaţiile ce fac apel la conceptul de<br />
rang matriceal.<br />
Din punct de vedere procedural, exploatarea <strong>si</strong>metriei în determinarea <strong>valorilor</strong><br />
şi <strong>vectorilor</strong> <strong>proprii</strong> conduce la dezvoltări elegante şi la importante <strong>si</strong>mplificări ale<br />
calculelor. Algoritmul QR <strong>si</strong>metric rămâne un instrument fundamental pentru<br />
calculul întregului spectru al unei matrice <strong>si</strong>metrice. Totuşi, spre deosebire de cazul<br />
general, în care algoritmul QR nu are rival, în cazul <strong>si</strong>metric, în <strong>si</strong>tuaţii specifice,<br />
există soluţii alternative viabile, cele mai importante fiind prezentate în §4.9.<br />
Sursa importantelor facilităţi de calcul care apar în cazul <strong>si</strong>metric se află în<br />
rezultatulfundamental datde teorema4.2 47 , conformcăreiaoricematrice<strong>si</strong>metrică<br />
A ∈ IR n×n este ortogonal diagonalizabilă, i.e. există o matrice ortogonală Q ∈<br />
IR n×n astfel încât<br />
Q T AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ), (4.265)<br />
adică toate matricele <strong>si</strong>metrice reale sunt <strong>si</strong>mple, au un spectru real λ(A) ∈ IR, iar<br />
direcţiile <strong>proprii</strong>, definite de coloanele matricei Q din (4.265), sunt ortogonale două<br />
câte două.<br />
În continuare vom trece în revistă principalele aspecte ale algoritmului QR <strong>si</strong>metric.<br />
Atât pentru acest algoritm, cât şi pentru metodele alternative menţionate,<br />
47 Rezultatele stabilite în continuare pentru matricele reale <strong>si</strong>metrice rămân valabile, cu mici<br />
adaptări, pentru matricele complexe A ∈ IC n×n hermitice. Formularea exactă a unor rezultate<br />
şi prezentarea aspectelor algoritmice specifice fac obiectul paragrafului §4.8.5 precum şi al unor<br />
exerciţii.
4.8. ALGORITMUL QR SIMETRIC 315<br />
seobţine un sporesenţialde eficienţăprin parcurgereaprealabilăafazeidirecte aalgoritmului<br />
QR, i.e. reducerea matricei date la forma superior Hessenberg. Datorită<br />
conservării <strong>si</strong>metriei la transformările ortogonale de asemănare, structura superior<br />
Hessenberg obţinută este, <strong>si</strong>multan, inferior Hessenberg, i.e. devine o structură<br />
tridiagonală.<br />
4.8.1 Reducerea la forma tridiagonală<br />
Baza teoretică a po<strong>si</strong>bilităţii de reducere la forma tridiagonală a unei matrice <strong>si</strong>metrice<br />
este dată de teorema 4.14, care, în noul context, are următorul enunţ.<br />
Teorema 4.19 Oricare ar fi matricea <strong>si</strong>metrică A ∈ IR n×n , există o matrice ortogonală<br />
Q ∈ IR n×n astfel încât matricea<br />
T = Q T AQ (4.266)<br />
este tridiagonală, i.e. t ij = 0, pentru toţi i, j, cu |i−j| > 1.<br />
Demonstraţie. Demonstraţiasereduce laobservaţiade mai suscă, înconformitate<br />
cu teorema 4.14, există o matrice ortogonală Q astfel încât matricea T not<br />
= H =<br />
= Q T AQ este superior Hessenberg şi la faptul că această matrice este <strong>si</strong>metrică<br />
T T = Q T A T Q = Q T AQ = T. Prin urmare T este, <strong>si</strong>multan, inferior Hessenberg,<br />
i.e. este o matrice tridiagonală.<br />
✸<br />
Pentruaelaboraunalgoritmperformant, caresăexploatezeeventualelefacilităţi<br />
calculatorii induse de conservarea <strong>si</strong>metriei, reamintim schema de calcul care stă la<br />
baza reducerii la forma Hessenberg, aceeaşi cu schema de calcul pentru reducerea<br />
la forma tridiagonală.<br />
TQ 1. Pentru k = 1 : n−2<br />
1. Se calculează un reflector elementar U k+1 astfel încât<br />
(U k+1 A)(k +2 : n,k) = 0.<br />
2. A ← (U k+1 A)U k+1 % Se anulează A(k +2 : n,k) şi, <strong>si</strong>multan,<br />
datorită conservării <strong>si</strong>metriei, se anulează<br />
A(k,k +2 : n).<br />
În urma efectuării calculelor de mai sus matricea A este suprascrisă cu matricea<br />
unde, evident,<br />
A ← T = Q T AQ = U n−1···U 3 U 2 AU 2 U 3···U n−1 , (4.267)<br />
Q = U 2 U 3 ...U n−1 . (4.268)<br />
Con<strong>si</strong>derăm acum pasul curent k al procesului de tridiagonalizare descris mai sus<br />
şi fie<br />
A ← T (k) = U k···U 3 U 2 AU 2 U 3···U k = ⎢<br />
⎣<br />
⎡<br />
k−1<br />
{}}{<br />
1<br />
{}}{<br />
n−k<br />
{}}{<br />
T (k)<br />
11 T (k)<br />
12 0<br />
T (k)<br />
21 T (k)<br />
22 T (k)<br />
23<br />
0 T (k)<br />
32 T (k)<br />
33<br />
⎤<br />
}k −1<br />
⎥<br />
⎦ }1<br />
}n−k<br />
(4.269)
316 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
matricea obţinută după primii k−1 paşi, partiţionată convenabil, în care T (k)<br />
11 este<br />
tridiagonală, <strong>si</strong>metrică, iar<br />
T (k)<br />
21 = (T(k) 12 )T = [0 0 ··· 0 t (k)<br />
k,k−1 ].<br />
Având în vedere faptul că reflectorul elementar U k+1 are structura<br />
[ ]<br />
Ik 0<br />
U k+1 = , (4.270)<br />
0 Ū k+1<br />
unde<br />
A ← T (k+1) = U k+1 T (k) U k+1 =<br />
Ū k+1 = I n−k − ūk+1ū T k+1<br />
β k+1<br />
, ū k+1 ∈ IR n−k , (4.271)<br />
este un reflector elementar de ordin n − k şi indice 1, transformările efectuate la<br />
pasul k au ca efect<br />
⎡<br />
⎤<br />
T (k)<br />
11 T (k)<br />
12 0<br />
Cum<br />
⎢<br />
⎣<br />
T (k)<br />
21 T (k)<br />
22 T (k)<br />
23 Ūk+1<br />
0 Ū k+1 T (k)<br />
32<br />
Ū k+1 T (k)<br />
33 Ūk+1<br />
T (k)<br />
23 Ūk+1 = (Ūk+1T (k)<br />
32 )T = [−σ 0 0 ··· 0],<br />
⎥<br />
⎦ . (4.272)<br />
cu σ = sgn(T (k)<br />
32 (1,1))‖T(k) 32 ‖ 48 , rămâne să efectuăm în mod eficient calculul matricei<br />
<strong>si</strong>metrice<br />
A(k +1 : n,k +1 : n) ← T (k+1) (k)<br />
33 = Ūk+1T 33 Ūk+1. (4.273)<br />
Con<strong>si</strong>derăm necesar să precizăm aici faptul că performanţele deosebite privind<br />
memoria utilizată şi eficienţa calculatorie din cazul <strong>si</strong>metric se datoresc unei judicioase<br />
exploatări a proprietăţii de <strong>si</strong>metrie. Astfel, o memorare economică a unei<br />
matrice <strong>si</strong>metrice se face reţinând numai elementele din triunghiul său inferior sau<br />
superior. De asemenea, când se cunoaşte faptul că rezultatul unei procesări este<br />
o matrice <strong>si</strong>metrică, se calculează, evident, numai elementele sale din triunghiul<br />
inferior sau superior.<br />
În consecinţă, în (4.273) vom calcula, de exemplu, numai elementele din triunghiulinferioralmatriceiT<br />
(k+1)<br />
33 . De asemenea,ţinândseamade(4.271)şinotând,<br />
pentru <strong>si</strong>mplificarea scrierii,<br />
relaţia (4.273) devine<br />
ū k+1<br />
not<br />
= ū, β not<br />
= β k+1 ,<br />
T (k+1)<br />
33 = (I n−k − ūūT<br />
β )T(k) 33 (I n−k − ūūT<br />
β ) =<br />
48 Pentru calculul reflectorilor şi semnificaţia notaţiilor utilizate, vezi capitolul 3.
4.8. ALGORITMUL QR SIMETRIC 317<br />
Notând<br />
obţinem<br />
= T (k)<br />
33 − ūūT<br />
β T(k)<br />
33 −T(k) 33<br />
ūū T<br />
β + ūūT T (k)<br />
33 ūūT<br />
β 2 . (4.274)<br />
v = T(k) 33 ū ∈ IR n−k (4.275)<br />
β<br />
T (k+1)<br />
33 = T (k)<br />
33 −ūvT −vū T +ūūT vū T<br />
β<br />
Introducând acum notaţia<br />
(4.276) devine<br />
= T (k)<br />
33 −ū(vT −ūT v<br />
2β ūT )−(v−ūT v<br />
2β ū)ūT . (4.276)<br />
w = v − ūT v ū, (4.277)<br />
2β<br />
T (k+1)<br />
33 = T (k)<br />
33 −ūwT −wū T , (4.278)<br />
relaţie care, împreunăcu (4.275)şi (4.277), va fi folo<strong>si</strong>tăpentru calculul triunghiului<br />
inferior al matricei A(k +1 : n,k +1 : n) ←− T (k+1) (k)<br />
33 = Ūk+1T 33 Ūk+1.<br />
Forma tridiagonală <strong>si</strong>metrică obţinută constituie punctul de plecare pentru diverse<br />
tehnici iterative de calcul a <strong>valorilor</strong> <strong>proprii</strong>. De aceea, în cele ce urmează,<br />
vom con<strong>si</strong>dera că matricea tridiagonală A ← T = T T ∈ IR n×n este memorată numai<br />
prin elementele sale semnificative, date de componentele <strong>vectorilor</strong> f ∈ IR n şi<br />
g ∈ IR n−1 conform scrierii<br />
⎡<br />
A ← T =<br />
⎢<br />
⎣<br />
⎤<br />
f 1 g 1 0 ··· 0 0<br />
g 1 f 2 g 2 ··· 0 0<br />
.<br />
0 g 2 f .. 3 0 0<br />
.<br />
. . .. . .. . .. .<br />
. ⎥<br />
0 0 0 .. fn−1 g n−1<br />
⎦<br />
0 0 0 0 g n−1 f n<br />
Aplicarea ideilor menţionate mai sus conduce la următorul algoritm.<br />
. (4.279)<br />
Algoritmul 4.24 (TQ– Reducerea la forma tridiagonală)<br />
(Date matricea <strong>si</strong>metrică A ∈ IR n×n şi matricea de transformare iniţială<br />
Q ∈ IR n×n , algoritmul calculează secvenţa de reflectori U 2 ,U 3 ,···,U n−1<br />
astfelîncâtmatriceaA ← T = U n−1···U 3 U 2 AU 2 U 3···U n−1 areostructură<br />
tridiagonală. Se con<strong>si</strong>deră că A este dată numai prin triunghiul său<br />
inferior în care sunt efectuate calculele curente. Algoritmul extrage vectorii<br />
f ∈ IR n şi g ∈ IR n−1 , conform (4.279), care definesc matricea<br />
tridiagonală rezultată. Opţional se actualizează matricea de transformare<br />
Q ← QU 2 U 3···U n−1 . Opţiunea se exprimă prin intermediul unei<br />
variabile logice opt, de tipul şir de caractere, care poate lua valorile<br />
’da’ sau ’nu’. Dacă nu se doreşte actualizarea, matricea Q rămâne<br />
nemodificată.)
318 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. Pentru k = 1 : n−2<br />
1. % <strong>Calculul</strong> reflectorului elementar Ūk+1<br />
1. [A(k +1 : n,k),ū,β] = Hr(A(k +1 : n,k))<br />
2. % <strong>Calculul</strong> A ← (U k+1 A)U k+1 numai în triunghiul inferior<br />
1. Pentru i = 1 : n−k −1<br />
1. l = k +i<br />
A(l,k+1: l)ū(1:i)+A(l+1: n,l)ū(i+1: n−k)<br />
2. v i =<br />
2. v n−k =<br />
A(n, k +1 : n)ū<br />
β<br />
3. ρ = ūT v<br />
2β<br />
4. w = v −ρū<br />
5. Pentru j = 1 : n−k<br />
1. Pentru i = j : n−k<br />
1. A(k +i,k+j) ← A(k +i,k+j)−ū i w j −w i ū j<br />
3. % Acumularea transformărilor<br />
1. Dacă opt = ′ da ′ atunci<br />
1. Q(:,k +1 : n) = Hrd(Q(:,k +1 : n),ū,β)<br />
2. % Extragerea <strong>vectorilor</strong> f şi g<br />
1. f 1 = A(1,1)<br />
2. Pentru i = 1 : n−1<br />
1. g i = A(i+1,i)<br />
2. f i+1 = A(i+1, i+1).<br />
Comentarii. Sintaxa de apel a algoritmului TQ va fi<br />
[f,g,Q] = TQ(A,Q,opt).<br />
Utilizarea relaţiei de calcul (4.276) reduce efortul de calcul la mai puţin de jumătate<br />
în raport cu cazul ne<strong>si</strong>metric. Într-adevăr, calculul <strong>vectorilor</strong> v şi w la pasul curent<br />
k nece<strong>si</strong>tă N 1 (k) ≈ (n−k) 2 flopi şi, respectiv N 2 (k) ≈ (n−k) flopi. Cum determinarea<br />
elementelor definitorii ale reflectorilor nece<strong>si</strong>tă, de asemenea, N 3 (k) ≈<br />
≈ (n−k) flopi, rezultă că numărul a<strong>si</strong>mptotic de flopi necesari pentru calculul<br />
tridiagonalizării este<br />
n−2<br />
∑<br />
N op ≈ N 1 (k) ≈ 2 3 n3 ,<br />
k=1<br />
faţă de 5 3 n3 flopi necesari pentru reducerea la forma superior Hessenberg în cazul<br />
ne<strong>si</strong>metric. Acumularea transformărilor, i.e. calculul explicit al matricei de transformare<br />
Q din (4.274), implică efectuarea a N ′ op ≈ 2 3 n3 flopi suplimentari 49 . Volu-<br />
49 Dacă matricea Q iniţială este I n, se poate obţine o reducere a numărului de operaţii încalculul<br />
acumulării transformărilor dacă se memorează (economic) elementele definitorii ale reflectorilor şi<br />
acumularea se face în afara ciclului principal, în ordine inversă, cu exploatarea structurii de zerouri<br />
a matricei Q curente.<br />
β
4.8. ALGORITMUL QR SIMETRIC 319<br />
mul de memorie este M ≈ 3n 2 /2 locaţii, necesar pentru memorarea elementelor<br />
triunghiului inferior al matricei A şi a elementelor matricei Q 50 .<br />
Algoritmul TQ este numeric stabil, i.e. matricea tridiagonală calculată într-o<br />
aritmetică în virgulă mobilă este o matrice exact ortogonal asemenea cu o matrice<br />
uşor perturbată A + E, unde matricea de perturbaţie E satisface condiţia<br />
‖E‖ ≤ p(n)ε M ‖A‖, cu p(n) o funcţie cu creştere ”modestă” de dimen<strong>si</strong>unea n a<br />
problemei.<br />
✸<br />
Observaţia 4.10 Spre deosebire de cazul ne<strong>si</strong>metric în care reducerea la forma<br />
superior Hessenberg se putea face, suficient de performant, şi prin transformări<br />
de asemănare neortogonale, aici astfel de transformări alterează <strong>si</strong>metria şi, prin<br />
urmare, nu sunt recomandate.<br />
✸<br />
4.8.2 Faza iterativă a algoritmului QR <strong>si</strong>metric<br />
Etapa iterativă a algoritmului QR <strong>si</strong>metric beneficiază de importante <strong>si</strong>mplificări<br />
calculatorii care se datorează, în principal, conservării <strong>si</strong>metriei matricei iniţiale la<br />
transformări ortogonale de asemănare şi constau în:<br />
– conservarea structurii tridiagonale la transformările implicate de iteraţiile<br />
QR; în consecinţă toate transformările aferente şirului QR se pot desfăsura în<br />
locaţiile de memorie ale vectorului f al elementelor diagonale şi ale vectorului g al<br />
elementelor subdiagonale ale matricei tridiagonale curente (v. (4.279));<br />
– valorile <strong>proprii</strong> ale unei matrice <strong>si</strong>metrice reale fiind reale nu sunt necesare<br />
deplasări complexe şi, prin urmare, nu este necesară strategia paşilor dubli.<br />
Vom folo<strong>si</strong> aceste observaţii în vederea elaborării unui algoritm QR <strong>si</strong>metric cât<br />
mai performant.<br />
A. Algoritmul QR <strong>si</strong>metric cu deplasare explicită<br />
Presupunem matricea <strong>si</strong>metrică tridiagonală T ∈ IR n×n dată prin vectorii f şi g din<br />
(4.279). Pentru claritateaexpunerii vom utiliza şi indexareaobişnuită a elementelor<br />
matricei T urmând ca algoritmul să fie scris exclu<strong>si</strong>v în raport cu elementele <strong>vectorilor</strong><br />
f şi g.<br />
Algoritmul QR <strong>si</strong>metric cu deplasare explicită construieşte un şir de matrice<br />
tridiagonale, ortogonal asemenea<br />
T = T 1 ,T 2 ,···,T k ,T k+1 ,··· (4.280)<br />
pe baza relaţiei de recurenţă<br />
{<br />
T −µIn = QR<br />
T ← T ′ = RQ+µI n<br />
, (4.281)<br />
unde T semnifică matricea curentă din şirul (4.280), iar indicele superior ′ marchează<br />
matricea succesor. Deplasarea µ se poate alege ca în cazul ne<strong>si</strong>metric<br />
µ = t nn = f n (4.282)<br />
50 A<strong>si</strong>gurăm cititorul că unele licenţe minore, cum este utilizarea explicită a doi vectori (v şi<br />
w) când sunt suficiente locaţiile de memorie ale unuia <strong>si</strong>ngur, servesc exclu<strong>si</strong>v clarităţii prezentării<br />
algoritmului.
320 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
sau, şi mai eficient, egală cu valoarea proprie, întotdeauna reală, cea mai apropiată<br />
de t nn , a blocului 2×2 din colţul din dreapta jos al matricei curente T<br />
[ ]<br />
fn−1 g<br />
T(n−1 : n, n−1 : n) = n−1<br />
. (4.283)<br />
g n−1 f n<br />
Deplasarea din cea de a doua variantă, numită deplasare Wilkinson, are expre<strong>si</strong>a<br />
(verificaţi!)<br />
µ = 1 √<br />
2 (f n−1 +f n −sgn(f n−1 −f n ) (f n−1 −f n ) 2 +4gn−1 2 ) (4.284)<br />
şi se calculează economic şi fiabil cu relaţiile<br />
α = f n−1 −f n<br />
, β = gn−1 2 2<br />
, µ = f β<br />
n −<br />
α+(sgnα) √ α 2 +β . (4.285)<br />
Se poate arăta [VI] că, pentru oricare din deplasările (4.282) sau (4.284), în partea<br />
”finală” a procesului iterativ se obţine o convergenţă cubică a şirului QR <strong>si</strong>metric<br />
(4.280) către o structură diagonală. Există, totuşi, unele argumente de natură<br />
euristică în favoarea deplasării Wilkinson.<br />
Avându-se în vedere structura tridiagonală a tuturor matricelor şirului QR <strong>si</strong>metric(4.280),pentrufactorizareaQRdin(4.281)serecomandăutilizarearotaţiilor.<br />
Este uşor de constatat că matricea superior triunghiulară R a acestei factorizări va<br />
avea numai două supradiagonale nenule. Mai mult, pentru nece<strong>si</strong>tăţile de calcul ale<br />
matricei succesor, conform (4.281), cea de a doua supradiagonală nici nu trebuie<br />
calculată. În consecinţă, pentru memorarea elementelor utile sunt suficienţi doi<br />
vectori de dimen<strong>si</strong>uni n şi n−1 care pot fi vectorul f al elementelor diagonale ale<br />
matricei T şi un vector suplimentar pe care îl notăm cu h. Cu aceste precizări, un<br />
pas <strong>si</strong>mplu QR <strong>si</strong>metric cu deplasare explicită (fără acumularea transformărilor)<br />
constă în efectuarea următoarelor calcule.<br />
Algoritmul 4.25 (IT QR<strong>si</strong>m – Un pas QR <strong>si</strong>metric cu deplasare<br />
Wilkinson explicită) (Dată o matrice <strong>si</strong>metrică tridiagonală ireductibilă<br />
T ∈ IR n×n prin vectorul f ∈ IR n al elementelor diagonale şi vectorul<br />
g ∈ IR n−1 al elementelor subdiagonale, algoritmul calculează vectorii<br />
definitorii f şi g ai matricei succesor din şirul QR <strong>si</strong>metric. Toate<br />
calculele se efectuează pe loc, în locaţiile de memorie ale elementelor<br />
<strong>vectorilor</strong> f şi g. Algoritmul furnizează, de asemenea, vectorii c şi s ale<br />
elementelor ce definesc rotaţiile utilizate.)<br />
1. % <strong>Calculul</strong> deplasării Wilkinson<br />
1. α = f n−1 −f n<br />
, β = g 2<br />
2<br />
n−1, µ = f n −<br />
2. % T ← T −µI n<br />
1. Pentru i = 1 : n<br />
1. f i ← f i −µ<br />
β<br />
α+(sgnα) √ α 2 +β
4.8. ALGORITMUL QR SIMETRIC 321<br />
3. % <strong>Calculul</strong> factorizării QR a matricei T fără calculul explicit al<br />
matricei Q.<br />
1. h 1 = g 1<br />
2. Pentru i = 1 : n−1<br />
1. [<br />
[<br />
fi<br />
g i<br />
]<br />
,c i ,s i ] = Gr(<br />
2. τ = h i<br />
3. h i = c i h i −s i f i+1<br />
4. f i+1 = s i τ +c i f i+1<br />
5. Dacă i < n−1<br />
1. h i+1 = c i g i+1<br />
4. % <strong>Calculul</strong> produsului RQ<br />
1. Pentru i = 1 : n−1<br />
1. f i = c i f i −s i h i<br />
2. g i = −s i f i+1<br />
3. f i+1 = c i f i+1<br />
5. % T ← T +µI n<br />
1. Pentru i = 1 : n<br />
1. f i ← f i +µ<br />
[<br />
fi<br />
g i<br />
]<br />
)<br />
Comentarii. Pentru apelul algoritmului de implementare a unui pas QR <strong>si</strong>metric<br />
cu deplasare explicită vom utiliza <strong>si</strong>ntaxa<br />
[f,g,c,s] = IT QR<strong>si</strong>m(f,g).<br />
Matricea de transformare curentă este dată de<br />
Q = P 12 P 23···P n−1,n , (4.286)<br />
algoritmul furnizând elementele definitorii pentru cele n−1 rotaţii utilizate pentru<br />
o eventuală acumulare a transformărilor (care se face numai în caz de nece<strong>si</strong>tate).<br />
În forma de mai sus, execuţia unui pas QR <strong>si</strong>metric cu deplasare explicită nece<strong>si</strong>tă<br />
un număr N op ≈ 20n flopi la care se adaugă n−1 extrageri de radical. ✸<br />
Exemplul 4.6 Con<strong>si</strong>derăm matricea tridiagonală <strong>si</strong>metrică<br />
⎡<br />
T = ⎣ 1 1 0<br />
⎤<br />
1 2 1 ⎦<br />
0 1 1<br />
definită de vectorii f = [1 2 1] T şi g = [1 1] T şi având valorile <strong>proprii</strong> exacte<br />
λ(T) = {0,1,3}. Iterarea brută (i.e. fără supravegherea şi anularea elementelor<br />
neglijabile) a algoritmului IT QR<strong>si</strong>m conduce la evoluţia elementelor <strong>vectorilor</strong><br />
g şi f prezentată în tabelele 4.7 şi 4.8. Se confirmă anularea rapidă a ultimului
322 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
k<br />
g (k)<br />
1 g (k)<br />
2<br />
0 1.00000000000000 1.00000000000000<br />
1 0.85065080835204 −0.52573111211913<br />
2 0.25379174838439 0.06711070517530<br />
3 0.08564664424607 −0.00000629541717<br />
4 0.02859558021545 0.00000000000000<br />
5 0.00953359280112 −0.00000000000000<br />
6 0.00317792845516 0.00000000000000<br />
7 0.00105931186244 0<br />
.<br />
.<br />
.<br />
10 0.00003923378367 0<br />
.<br />
.<br />
.<br />
15 0.00000016145590 0<br />
.<br />
.<br />
.<br />
25 0.00000000000273 0<br />
Tabelul 4.7: Date numerice privind evoluţia elementelor vectorului g din exemplul<br />
4.5.<br />
k<br />
f (k)<br />
1 f (k)<br />
2 f (k)<br />
3<br />
0 1.00000000000000 2.00000000000000 1.00000000000000<br />
1 2.61803398874990 1.00000000000000 0.38196601125011<br />
2 2.96739091997935 1.02821618974253 0.00447471825954<br />
3 2.99632557546692 1.00367442449350 0.00000000003958<br />
4 2.99959106278125 1.00040893721875 0.00000000000000<br />
5 2.99995455427149 1.00004544572851 0.00000000000000<br />
.<br />
.<br />
.<br />
.<br />
10 2.99999999923036 1.00000000076964 0.00000000000000<br />
.<br />
.<br />
.<br />
.<br />
15 2.99999999999999 1.00000000000001 0.00000000000000<br />
16 3.00000000000000 1.00000000000000 0.00000000000000<br />
.<br />
.<br />
.<br />
.<br />
25 3.00000000000000 1.00000000000000 0.00000000000000<br />
Tabelul 4.8: Date numerice privind evoluţia elementelor vectorului f din exemplul<br />
4.5.
4.8. ALGORITMUL QR SIMETRIC 323<br />
element al vectorului g (convergenţă cubică!) şi evoluţia întregii matrice T către o<br />
structură diagonală.<br />
✸<br />
La fel ca şi în cazul ne<strong>si</strong>metric, diminuarea modulului elementelor vectorului g<br />
are loc are loc mai rapid la cele două ”capete” (cel mai rapid în zona terminală,<br />
vezi tabelul 4.7). În cadrul unui algoritm global, iterarea schemei de calcul de mai<br />
sus se completează cu anularea efectivă a elementelor extradiagonale ale matricei<br />
curente T, i.e. ale vectorului g, atunci când acestea devin inferioare, în modul, unei<br />
toleranţe precizate. Prin urmare, pasul QR <strong>si</strong>metric de mai sus se ajustează la<br />
dimen<strong>si</strong>unea curentă a problemei, pe măsură ce se pun în evidenţă valorile <strong>proprii</strong><br />
calculate. O modalitate concretă de gestionare a <strong>valorilor</strong> <strong>proprii</strong> calculate va fi<br />
prezentată în cadrul algoritmului QR <strong>si</strong>metric cu deplasare implicită. Un algoritm<br />
de calcul, bazat pe iterarea pasului QR <strong>si</strong>metric de mai sus, se termină, evident, în<br />
momentul în care toate elementele vectorului g au fost declarate nule.<br />
B. Un pas QR <strong>si</strong>metric cu deplasare implicită<br />
Con<strong>si</strong>derăm important să subliniem de la început faptul că, spre deosebire de cazul<br />
real ne<strong>si</strong>metric, aici utilizarea variantei cu deplasare implicită nu aduce un spor de<br />
eficienţă faţă de varianta cu deplasare explicită, astfel încât preferinţa pentru deplasarea<br />
implicită poate fi justificată numai prin dorinţa a<strong>si</strong>gurăriiunei omogenităţi<br />
a tratării tuturor problemelor de calcul al <strong>valorilor</strong> <strong>proprii</strong> ale matricelor reale.<br />
Varianta cu deplasare implicită a algoritmului QR <strong>si</strong>metric are la bază teorema<br />
4.15 conform căreia transformarea ortogonală de asemănare definită de un pas QR<br />
<strong>si</strong>metric cu deplasare explicită pentru o matrice tridiagonală ireductibilă (i.e. cu<br />
toate elementele subdiagonale nenule)<br />
T ← T ′ = Q T TQ (4.287)<br />
este esenţial determinată, în sensul observaţiei 4.6, de prima coloană a matricei<br />
de transformare Q. Similar cazului deplasării explicite, vom con<strong>si</strong>dera matricea<br />
ortogonală de transformare Q sub forma secvenţei de rotaţii plane (4.286). Întrucât<br />
P j,j+1 e 1 = e 1 , j = 2 : n − 1, prima coloană a matricei Q este prima coloană a<br />
matricei P 12 , i.e.<br />
⎡ ⎤<br />
c 1<br />
−s 1<br />
⎢ 0 ⎥<br />
q 1 = Qe 1 = P 12 e 1 =<br />
⎢<br />
⎣<br />
.<br />
0<br />
. (4.288)<br />
⎥<br />
⎦<br />
La fel ca în cazul ne<strong>si</strong>metric, un pas QR <strong>si</strong>metric cu deplasare implicită va consta<br />
din următoarele transformări.<br />
1. Se calculează prima coloană q 1 a matricei de transformare Q din<br />
pasul QR <strong>si</strong>metric cu deplasare explicită.<br />
2. Se determină rotaţia P 12 ce satisface (4.288).<br />
3. Se calculează matricea T ← P T 12 TP 12 în care este alterată structura<br />
tridiagonală în poziţiile (3,1) şi (1,3) dar se conservă <strong>si</strong>metria.
324 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
4. Se reface structura tridiagonală prin transformări ortogonale de<br />
asemănare utilizând o secvenţă de rotaţii plane (o adaptare a algoritmului<br />
de tridiagonalizare TQ).<br />
În acest fel, se obţine o matrice succesor ortogonal asemenea cu matricea iniţială,<br />
tridiagonală, <strong>si</strong>metrică şi cu prima coloană a matricei de transformare identică cu<br />
prima coloană a matricei de transformare din cadrul pasului QR <strong>si</strong>metric cu deplasare<br />
explicită. Aşa cum am menţionat mai sus, conform teoremei 4.15, dacă<br />
matricea T este ireductibilă, i.e. vectorul g are toate elementele nenule, atunci matricea<br />
succesor T ← T ′ este aceeaşi (v. obs. 4.6) cu matricea succesor din cadrul<br />
pasului QR cu deplasare explicită.<br />
Pentruascrieefectivalgoritmul,vomaduceuneleprecizăriprivitoarelapunctele<br />
din schema de calcul de mai sus.<br />
1. Dacă vectorul g are toate elementele nenule, atunci deplasarea µ dată de<br />
relaţia (4.284) nu este valoare proprie a lui T (demonstraţi!) şi, prin urmare, matricea<br />
T −µI n şi matricea superior triunghiulară R din (4.281) sunt ne<strong>si</strong>ngulare. În<br />
consecinţă, din egalarea primelor coloane ale primei relaţii din (4.281), obţinem<br />
Numim, şi aici, vectorul<br />
⎡<br />
q 1 = 1<br />
r 11 ⎢<br />
⎣<br />
w =<br />
t 11 −µ<br />
t 21<br />
0<br />
.<br />
0<br />
⎤ ⎡<br />
= 1<br />
⎥ r<br />
⎦ 11 ⎢<br />
⎣<br />
f 1 −µ<br />
g 1<br />
0<br />
.<br />
0<br />
⎤<br />
. (4.289)<br />
⎥<br />
⎦<br />
[ ]<br />
f1 −µ<br />
∈ IR 2 (4.290)<br />
g 1<br />
vector de deplasare implicită aferent unui pas <strong>si</strong>mplu QR <strong>si</strong>metric.<br />
2. Din (4.288) şi (4.290) rezultă că elementele definitorii c 1 şi s 1 ale rotaţiei P 12<br />
pot fi furnizate de funcţia Gr (vezi tabelul 4.3) aplicată vectorului w.<br />
3. Se vede imediat că (P T 12 TP 12)(3,1) = (P T 12 TP 12)(1,3) = −s 1 g 2 ≠ 0, i.e.<br />
aplicarea transformării ortogonale definite de P 12 alterează structura tridiagonală<br />
a matricei T în poziţiile menţionate.<br />
4. Pentru refacerea structurii tridiagonale - un invariant al şirului QR <strong>si</strong>metric<br />
- se aplică algoritmul TQ adaptat corespunzător pentru a<strong>si</strong>gurarea unei eficienţe<br />
maxime. Concret, se utilizează o secvenţă de rotaţii care elimină elementele nenule<br />
din afara structurii tridiagonale prin deplasarea lor de-a lungul unor trasee paralele<br />
cu diagonala principală conform următoarei scheme de calcul.<br />
1. Pentru k = 2 : n−1<br />
1. Se calculează rotaţia P k,k+1 astfel încât (Pk,k+1 T T)(k +1,k −1) = 0.<br />
2. T ← Pk,k+1 T T % Se anulează elementul (k+1,k−1) şi se alterează<br />
(pentru k < n−1) zeroul din poziţia (k,k+2).<br />
3. T ← TP k,k+1 % Se anulează automat (datorită <strong>si</strong>metriei) elementul<br />
(k −1,k +1) şi se alterează (pentru k < n−1)<br />
zeroul din poziţia (k+2,k).
4.8. ALGORITMUL QR SIMETRIC 325<br />
Pentru exemplificare prezentăm evoluţia structurală a matricei T în cazul<br />
n=5. La fel ca în diagramele structurale precedente, şi aici semnul ”+” marchează<br />
elementul nul alterat iar ”∅” elementul anulat la pasul curent. Încadrările indică<br />
liniile sau coloanele afectate la pasul curent.<br />
⎡<br />
T←P12 T T = ⎢<br />
⎣<br />
⎡<br />
T←P23 T T = ⎢<br />
⎣<br />
⎡<br />
T ←P34 T T = ⎢<br />
⎣<br />
⎡<br />
T←P45 T T = ⎢<br />
⎣<br />
× × + 0 0<br />
× × × 0 0<br />
0 × × × 0<br />
0 0 × × ×<br />
0 0 0 × ×<br />
× × × 0 0<br />
× × × + 0<br />
∅ × × × 0<br />
0 0 × × ×<br />
0 0 0 × ×<br />
× × 0 0 0<br />
× × × × 0<br />
0 × × × +<br />
0 ∅ × × ×<br />
0 0 0 × ×<br />
× × 0 0 0<br />
× × × 0 0<br />
0 × × × ×<br />
0 0 × × ×<br />
0 0 ∅ × ×<br />
,<br />
⎤<br />
⎡<br />
⎥<br />
, T←TP 12 =<br />
⎢<br />
⎦ ⎣<br />
⎤<br />
⎡<br />
, T←TP 23 =<br />
⎥ ⎢<br />
⎦ ⎣<br />
⎤<br />
⎡<br />
, T←TP 34 =<br />
⎥ ⎢<br />
⎦ ⎣<br />
⎤<br />
⎡<br />
, T←TP 45 =<br />
⎥ ⎢<br />
⎦ ⎣<br />
× ×<br />
× ×<br />
+ ×<br />
0 0<br />
0 0<br />
×<br />
×<br />
0<br />
0<br />
0<br />
× ×<br />
× ×<br />
0 ×<br />
0 0<br />
0 0<br />
× ∅<br />
× ×<br />
× ×<br />
+ ×<br />
0 0<br />
× × 0<br />
× × ×<br />
0 × ×<br />
0 0 ×<br />
0 0 0<br />
× 0 0<br />
× 0 0<br />
× × 0<br />
× × ×<br />
0 × ×<br />
0 0<br />
× ∅<br />
× ×<br />
× ×<br />
+ ×<br />
0 0<br />
× 0<br />
× 0<br />
× ×<br />
× ×<br />
0<br />
0<br />
×<br />
×<br />
×<br />
0 0<br />
0 0<br />
× ∅<br />
× ×<br />
× ×<br />
<strong>Calculul</strong> elementelor definitorii c k şi s k ale rotaţiei P k,k+1 se face cu procedura<br />
Gr (v. tabelul 4.3), iar pentru calculul economic al produselor Pk,k+1 T T <strong>si</strong> ¸ TP k,k+1<br />
se renunţă la utilizareaprocedurilorGrs şi Grd pentru a exploataeficient structura<br />
tridiagonală şi <strong>si</strong>metria matricei T.<br />
Cu aceste precizări putem prezenta algoritmul de implementare al unui pas QR<br />
<strong>si</strong>metric cu deplasare Wilkinson implicită.<br />
Algoritmul 4.26 (IT QR<strong>si</strong>m – Un pas QR <strong>si</strong>metric cu deplasare<br />
Wilkinson implicită) (Dată omatrice<strong>si</strong>metricătridiagonalăireductibilă<br />
T ∈ IR n×n prin vectorul f ∈ IR n al elementelor diagonale şi vectorul<br />
g ∈ IR n−1 al elementelor subdiagonale, algoritmul calculează vectorii<br />
definitorii f şi g ai matricei succesor din şirul QR <strong>si</strong>metric. Toate<br />
calculele se efectuează pe loc, în locaţiile de memorie ale elementelor<br />
<strong>vectorilor</strong> f şi g. Pentru elementul ”rătăcitor”, care afectează temporar<br />
structura tridiagonală se utilizează o variabilă scalară locală τ. Algoritmul<br />
furnizează, de asemenea, vectorii c şi s ale căror elemente definesc<br />
rotaţiile utilizate.)<br />
⎤<br />
⎥<br />
⎦<br />
⎤<br />
⎥<br />
⎦<br />
⎤<br />
⎥<br />
⎦<br />
⎤<br />
.<br />
⎥<br />
⎦
326 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. % <strong>Calculul</strong> deplasării Wilkinson<br />
1. α = f n−1 −f n<br />
, β = g 2<br />
2<br />
n−1, µ = f n −<br />
β<br />
α+(sgnα) √ α 2 +β<br />
2. % <strong>Calculul</strong> şi aplicarea rotaţiilor P 12 şi P k,k+1 , k = 2 : n−1.<br />
1. Pentru k = 1 : n−1<br />
1. Dacă k = 1 atunci<br />
1. w = [f 1 −µ g 1 ] T<br />
2. [w,c 1 ,s 1 ] = Gr(w)<br />
altfel [ ] [<br />
gk−1 gk−1<br />
1. [ ,c<br />
τ k ,s k ] = Gr(<br />
τ<br />
2. µ 1 = c 2 k , µ 2 = c k s k , µ 3 = s 2 k<br />
3. α = 2µ 2 g k<br />
4. τ 1 = µ 1 f k +µ 3 f 2 −α, τ 2 = µ 2 (f k −f k+1 )+(µ 1 −µ 3 )g k<br />
5. f k+1 = µ 1 f k+1 +µ 3 f k +α<br />
6. f k = τ 1 , g k = τ 2<br />
7. Dacă k < n−1 atunci<br />
1. τ = −s k g k+1 % elementul ”rătăcitor”<br />
2. g k+1 = c k g k+1<br />
Comentarii. Având în vedere echivalenţa performanţelor algoritmilor, cu deplasare<br />
explicită şi implicită, de implementare a unui pas QR <strong>si</strong>metric, utilizăm<br />
aceeaşi <strong>si</strong>ntaxă de apel, i.e.<br />
[f,g,c,s] = IT QR<strong>si</strong>m(f,g).<br />
Complexitatea unei iteraţii QR <strong>si</strong>metrice cu deplasare implicită este O(n), pentru<br />
execuţia algoritmului 4.26 fiind necesari N op ≈ 20n flopi, la care se adaugă cele<br />
n−1 extrageri de radical. Si aici, algoritmul oferă, prin vectorii c şi s, informaţia<br />
necesară pentru o eventuală actualizare a matricei de transformare. ✸<br />
Exemplul 4.7 Invităm cititorul să reia datele de intrare din exemplul precedent şi<br />
să itereze pasul QR <strong>si</strong>metric cu deplasare implicită de mai sus. Va avea satisfacţia<br />
să constate că elementele calculate ale vectorului g coincid în primele 15 cifre semnificative,<br />
iar cele ale vectorului f în primele 14 cifre semnificative cu cele produse<br />
de iterarea pasului QR cu deplasare explicită.<br />
✸<br />
]<br />
)<br />
C. Algoritmul QR <strong>si</strong>metric pentru matrice reale <strong>si</strong>metrice<br />
Algoritmul QR <strong>si</strong>metric se obţine prin iterarea algoritmului 4.26, anularea efectivă<br />
a elementelor nediagonale devenite neglijabile şi exploatarea structurală a acestor<br />
anulări în vederea obţinerii unei eficienţe maxime. Pentru deciziile de anulare efectivă<br />
a elementelor extradiagonale şi monitorizarea evoluţiei structurale a matricelor
4.8. ALGORITMUL QR SIMETRIC 327<br />
tridiagonale din şirul QR <strong>si</strong>metric vom urma ideile folo<strong>si</strong>te la algoritmul QR ne<strong>si</strong>metric.<br />
Astfel, condiţia de anulare a elementelor extradiagonale, i.e. a elementelor<br />
vectorului g, este<br />
|g k | ≤ tol(|f k |+|f k+1 |), (4.291)<br />
unde scalarul realtol defineşte nivelul de toleranţă şi are, uzual, un ordin de mărime<br />
comparabil cu eroarea de reprezentare din formatul virgulă mobilă al maşinii ţintă.<br />
De asemenea, pentru gestionarea evoluţiei structurale, la fiecare iteraţie, după anularea<br />
elementelor vectorului g care satisfac condiţia (4.291), se va determina cel mai<br />
mic întreg p şi cel mai mare întreg q astfel încât matricea tridiagonală curentă din<br />
şirul QR <strong>si</strong>metric să aibă structura<br />
⎡<br />
T = ⎣ T ⎤<br />
11 0 0<br />
0 T 22 0 ⎦, (4.292)<br />
0 0 T 33<br />
cu T 11 ∈ IR p×p , T 22 ∈ IR (n−p−q)×(n−p−q) tridiagonală ireductibilă şi T 33 ∈ IR q×q<br />
diagonală, i.e. g(p+1 : n−q) aretoate elementele nenule, iar g(n−q+1: n−1) = 0.<br />
În acest fel, iteraţia QR se va aplica de fapt blocului T 22<br />
echivalentă cu aplicarea transformării (4.287) cu<br />
T 22 ← T ′ 22 = QT 22 T 22Q 22 , (4.293)<br />
Q = diag(I p ,Q 22 ,I q ). (4.294)<br />
AlgoritmulQR<strong>si</strong>metricsetermină înmomentul încareseanuleazătoateelementele<br />
vectoruluig,i.e. q devinen−1. Cuprecizăriledemaisus,putemprezentaalgoritmul<br />
QR <strong>si</strong>metric.<br />
Algoritmul 4.27 (QR<strong>si</strong>m– Algoritmul QR <strong>si</strong>metric cu deplasări<br />
Wilkinson implicite) (Date o matrice <strong>si</strong>metrică A ∈ IR n×n , o matrice<br />
ortogonală Q ∈ IR n×n şi un nivel de toleranţă tol pentru anularea elementelor<br />
extradiagonale, algoritmul calculează vectorul f ∈ IR n al <strong>valorilor</strong><br />
<strong>proprii</strong> ale matricei A şi, opţional, actualizează matricea de transformare<br />
ortogonală Q. Opţiunea se exprimă prin intermediul variabilei<br />
logice opt care poate lua valorile ’da’ sau ’nu’. Dacă nu se doreşte<br />
acumularea transformărilor, matricea Q se returnează nemodificată.)<br />
1. % Reducerea la forma tridiagonală<br />
1. [f,g,Q] =TQ(A,Q)<br />
2. % Faza iterativă<br />
1. p = 0, q = 0<br />
2. C^at timp q < n<br />
1. % Anularea elementelor neglijabile<br />
Pentru i = p+1 : n−q −1<br />
1. Dacă |g i | ≤ tol(|f i |+|f i+1 | atunci g i = 0
328 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
2. % Determinarea lui q<br />
C^at timp g n−q−1 = 0<br />
1. q ← q +1<br />
3. % Terminarea algoritmului<br />
Dacă q = n−1 atunci return<br />
4. % Determinarea lui p<br />
1. p = n−q −1<br />
2. C^at timp g p ≠ 0<br />
1. p ← p−1<br />
5. [f(p+1 : n−q),g(p+1 : n−q −1),c,s] =<br />
=IT QR<strong>si</strong>m(f(p+1 : n−q),g(p+1 : n−q −1))<br />
6. Dacă opt=’da’ atunci<br />
1. Pentru i = 1 : n−p−q<br />
1. Q(:, p+i:p+i+1)= Grd(Q(:, p+i:p+i+1),c i ,s i )<br />
Comentarii. Sintaxa de apel a algoritmului QR <strong>si</strong>metric este<br />
[f,Q] = QR<strong>si</strong>m(A,Q,tol,opt).<br />
Algoritmul QR <strong>si</strong>metric reprezintă cel mai bun instrument numeric de calcul al<br />
întregului spectru al unei matrice <strong>si</strong>metrice reale. Dacă nu se acumulează transformările,<br />
algoritmul este foarte rapid, numărul de flopi necesar pentru calculul<br />
tuturor <strong>valorilor</strong> <strong>proprii</strong> fiind estimat, în medie, la N op = 4n 3 /3 fără acumularea<br />
transformărilor şi la N op = 9n 3 dacă transformările se acumulează. Pentru<br />
o toleranţă de ordinul ε M valorile <strong>proprii</strong> calculate sunt valori <strong>proprii</strong> exacte<br />
pentru o matrice <strong>si</strong>metrică foarte apropiată, algoritmul având o bună stabilitate<br />
numerică. Mai mult, spre deosebire de cazul ne<strong>si</strong>metric, aici se poate<br />
afirma că eroarea absolută pentru fiecare valoare proprie calculată este mică, i.e.<br />
|λ i −f i | ≈ tol‖A‖ 2 . Dacă se doreşte calculul <strong>vectorilor</strong> <strong>proprii</strong>, atunci se utilizează<br />
apelul [f,Q] = QR<strong>si</strong>m(A,I n ,tol, ′ da ′ ). În această <strong>si</strong>tuaţie x j = Q(:,j) este un<br />
vectorpropriucalculat asociatvalorii<strong>proprii</strong>λ j ≈ f j . Acurateţeavectoruluipropriu<br />
calculat este dependentă de separarea valorii <strong>proprii</strong> asociate de restul spectrului.<br />
Algoritmul a<strong>si</strong>gură o foarte bună ortogonalitate a <strong>vectorilor</strong> <strong>proprii</strong> calculaţi. Pentru<br />
detalii suplimentare asupra stabilităţii numerice a se vedea §4.11. ✸<br />
4.8.3 Algoritmul QR pentru matrice hermitice<br />
Fie C = A + iB cu A,B ∈ IR n×n o matrice hermitică, i.e. C H = C, ceea ce<br />
implică <strong>si</strong>metria matricei A şi anti<strong>si</strong>metria matricei B. Deci A T = A şi B T = −B.<br />
Aşa cum s-a arătat în secţiunea 4.1 matricele hermitice au spectrul real şi sunt<br />
unitar diagonalizabile. Pentru calculul <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice hermitice<br />
cu algoritmul QR, în practica numerică se întâlnesc două abordări.<br />
I. Fie λ ∈ λ(C) şi x = u+iv, cu u,v ∈ IR n , un vector propriu asociat. Atunci<br />
{ Au−Bv = λu,<br />
Cx = λx ⇔<br />
(4.295)<br />
Bu+Av = λv,
4.9. METODE ALTERNATIVE 329<br />
egalităţile din dreapta scriindu-se compact în forma<br />
[ ][ ] [ ] [ ][ ]<br />
A −B u u A −B −v<br />
= λ sau<br />
B A v v B A u<br />
[ ]<br />
u<br />
Vectorii şi<br />
v<br />
[<br />
−v<br />
u<br />
[<br />
−v<br />
= λ<br />
u<br />
]<br />
, fiind ortogonali, sunt liniar independenţi.<br />
]<br />
. (4.296)<br />
În consecinţă,<br />
[ ]<br />
dacă λ(C) = {λ 1 ,λ 2 ,...,λ n }, atunci matricea <strong>si</strong>metrică reală F def A −B<br />
=<br />
B A<br />
are spectrul λ(F) = {λ 1 ,λ 1 ,λ 2 ,λ 2 ,...,λ n ,λ n }, iar dacă w ∈ IR 2n este un vector<br />
propriu al matricei F asociat valorii <strong>proprii</strong> λ k , atunci x = w(1 : n)+iw(n+1 : 2n)<br />
sau y = −w(n+1 : 2n)+iw(1 : n) este un vector propriu 51 al matricei C asociat<br />
aceleiaşi valori <strong>proprii</strong>.<br />
Din cele de mai sus rezultă esenţa calculatorie a primei abordări care constă în<br />
aplicarea algoritmului QR <strong>si</strong>metric matricei F. Utilizarea exclu<strong>si</strong>vă a aritmeticii<br />
reale face această soluţie deosebit de atractivă. Scrierea algoritmului este imediată<br />
şi este lăsată în sarcina cititorului.<br />
II. Cea de a doua modalitate de calcul al <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice hermitice<br />
utilizată în practica numerică (de exemplu, în LAPACK [XV]) utilizează<br />
o aritmetică în numere complexe numai în faza directă a algoritmului QR, i.e.<br />
în faza de reducere la forma tridiagonală. Este po<strong>si</strong>bil ca matricea tridiagonală<br />
rezultată să fie reală astfel încât faza iterativă apelează exclu<strong>si</strong>v la o aritmetică<br />
reală, procedurile utilizate în faza iterativă fiind cele descrise în această secţiune.<br />
Po<strong>si</strong>bilitatea obţinerii, prin transformări unitare de asemănare a unei matrice tridiagonale<br />
reale este condiţionată de utilizarea unor reflectori complecşi nehermitici<br />
(v. cap. 3). Într-adevăr, dat un vector complex x ∈ ICn se poate calcula un astfel<br />
de reflector Ũ1 ∈ IC n×n care să a<strong>si</strong>gure ŨH 1 x = ρe 1 cu ρ un număr real. Notând<br />
cu U k<br />
def<br />
=<br />
[<br />
Ik−1 0<br />
0 Ũ 1<br />
]<br />
, unde Ũ1 ∈ IC (n−k+1)×(n−k+1) este un reflector de tipul<br />
menţionat, dacă U 2 este astfel calculat încât (U2 H C)(3 : n,1) = 0, atunci matricea<br />
C ← C 1 = U2 H CU 2 este hermitică şi tridiagonală în prima linie şi prima<br />
coloană. Cum o matrice hermitică are elementele diagonale reale, rezultă că blocul<br />
C 1 (1 : 2,1 : 2) este real. Continuând acest proces, în final matricea<br />
C ← C n−2 = U H n−1...U H 3 U H 2 CU 2 U 3 ...U n−1 (4.297)<br />
va fi tridiagonală, <strong>si</strong>metrică şi reală. Scrierea efectivă a algoritmului face obiectul<br />
exerciţiului 4.58.<br />
4.9 Alte metode de calcul al <strong>valorilor</strong> <strong>proprii</strong><br />
pentru matrice <strong>si</strong>metrice<br />
Algoritmul QR <strong>si</strong>metric rămâne un instrument fundamental pentru calculul întregului<br />
spectru al unei matrice <strong>si</strong>metrice. Totuşi, spre deosebire de cazul general,<br />
51 De observat că y = ix, i.e. vectorii x şi y sunt coliniari în IC n .
330 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
ne<strong>si</strong>metric, în care algoritmul QR s-a impus definitiv ca fiind fără rival, în cazul<br />
<strong>si</strong>metric există soluţii alternative, cu performanţe comparabile cu cele ale algoritmului<br />
QR. Utilizarea tehnicilor alternative este recomandată mai ales în <strong>si</strong>tuaţii<br />
particulare. Menţionăm, în acest sens, problemele de calcul al unui grup restrâns<br />
de valori <strong>proprii</strong> sau implementări pe maşini cu arhitecturi specifice, e.g. calculatoarele<br />
paralele cu memorie distribuită.<br />
Vom prezenta mai întâi unele tehnici de calcul al unei valori <strong>proprii</strong> sau al<br />
unui grup redus de valori <strong>proprii</strong>, cum sunt iterarea câtului Rayleigh sau metoda<br />
bisecţiei, iar apoi metodele de tip Jacobi, consacrate calculului întregului spectru.<br />
Pentru metodele ale căror iteraţii conservă structura tridiagonală <strong>si</strong>metrică, vom<br />
presupune parcursă etapa directă, de reducere la forma tridiagonală cu ajutorul<br />
algoritmului TQ. În consecinţă, în aceste <strong>si</strong>tuaţii, matricea tridiagonală <strong>si</strong>metrică<br />
T ∈ IR n×n se va con<strong>si</strong>dera dată prin vectorul f ∈ IR n al elementelor diagonale şi<br />
vectorul g ∈ IR n−1 al elementelor sub- şi supradiagonale.<br />
4.9.1 Metoda câtului Rayleigh<br />
Aşa cum s-avăzutla metodaputerii inverse, de calcul iterativalunui vectorpropriu<br />
(vezisecţiunea4.3), fiindcunoscutăaproximaţia ˆx ≠ 0avectoruluipropriuxasociat<br />
valorii <strong>proprii</strong> λ a unei matrice T ∈ IR n×n , câtul Rayleigh al vectorului ˆx în raport<br />
cu matricea T, definit prin<br />
µ = r(ˆx) = ˆxT Tˆx<br />
, (4.298)<br />
ˆx Tˆx<br />
constituie cea mai bună aproximaţie, în sens CMMP, a valorii <strong>proprii</strong> λ. Aplicând<br />
acumunpasalmetodeiputeriiinversecudeplasareaµ,obţinemoaproximaţieşimai<br />
bună pentru vectorul propriu asociat lui λ şi, pe baza câtului Rayleigh din (4.298),<br />
o aproximaţie superioară pentru însuşi λ. Altfel spus, adaptând algoritmul 4.2, de<br />
implementare a metodei puterii inverse cu deplasare Rayleigh, la cazul matricelor<br />
<strong>si</strong>metrice se obţine un mijloc performant de calcul al unei valori <strong>proprii</strong> (în general,<br />
fără po<strong>si</strong>bilităţi de selecţie a acesteia) şi al unui vector propriu asociat. Invităm<br />
cititorul să facă această adaptare prin exploatarea <strong>si</strong>metriei în rezolvarea <strong>si</strong>stemului<br />
liniar ce defineşte o iteraţie a metodei puterii inverse. Precizăm că o prealabilă<br />
reducere la forma tridiagonală nu se justifică decât dacă se urmăreşte calculul,<br />
pe această cale, al mai multor valori şi vectori <strong>proprii</strong>. În [VI] se afirmă (şi se<br />
demonstrează într-un caz particular) convergenţa globală şi a<strong>si</strong>mptotic cubică (i.e.<br />
extrem de rapidă) a algoritmului şi se evidenţiază conexiunea cu algoritmul QR<br />
<strong>si</strong>metric care, într-o formă implicită, uzează de această tehnică.<br />
4.9.2 Metoda bisecţiei<br />
Metoda bisecţiei (sau metoda Givens [IV]) este utilizată pentru determinarea unei<br />
valori <strong>proprii</strong> sau a unui grup relativ redus de valori <strong>proprii</strong> 52 .<br />
Fie matricea tridiagonală <strong>si</strong>metrică T ∈ IR n×n definită prin vectorul f ∈ IR n<br />
al elementelor diagonale şi vectorul g ∈ IR n−1 al elementelor extradiagonale. Pre-<br />
52 Se apreciază că metoda poate fi con<strong>si</strong>derată eficientă pentru determinarea a cel mult 40% din<br />
valorile <strong>proprii</strong> ale unei matrice.
4.9. METODE ALTERNATIVE 331<br />
supunem, de asemenea, că toate elementele vectorului g sunt nenule 53 . În esenţă,<br />
pentru calculul unei valori <strong>proprii</strong>, metoda bisecţiei constă în localizarea acesteia<br />
într-un interval [α, β] şi reducerea acestui interval, prin înjumătăţire succe<strong>si</strong>vă, cu<br />
păstrarea valorii <strong>proprii</strong> în interval. În acest fel, după t înjumătăţiri lungimea intervalului<br />
devine δ = β −α<br />
2 t şi, în consecinţă, într-o aritmetică exactă, se poate obţine<br />
orice precizie dorită.<br />
Pentru determinarea intervalului iniţial [α, β] putem utiliza teorema discurilor<br />
lui Gershgorin, de localizare a întregului spectru, conform căreia λ(T) este <strong>si</strong>tuat<br />
în reuniunea intervalelor<br />
n⋃ {<br />
I = λ ∈ IR |λ−fi | ≤ |g i−1 |+|g i | } , (4.299)<br />
i=1<br />
unde, pentru <strong>si</strong>mplificarea scrierii, am introdus numerele g 0 = 0 şi g n = 0. Evident,<br />
avem<br />
⎧<br />
α = min (f i −|g i−1 |−|g i |),<br />
⎪⎨<br />
i ∈ 1 : n<br />
I ⊆ [α,β], unde<br />
(4.300)<br />
β = max (f i +|g i−1 |+|g i |).<br />
⎪⎩<br />
i ∈ 1 : n<br />
În continuare, intervalul [α,β], cu α şi β din (4.300), va servi drept iniţializare<br />
pentru orice demers de calcul al <strong>valorilor</strong> <strong>proprii</strong> prin metoda bisecţiei. Lăsând cititorului<br />
sarcina codificării relaţiei (4.300), de calcul a scalarilor α şi β, ne mărginim<br />
să precizăm <strong>si</strong>ntaxa de apel a procedurii respective<br />
[α, β] = Int(f,g).<br />
Prezentăm, în continuare, câteva rezultate care ne vor permite să decidem dacă<br />
o valoare proprie sau un grup de valori <strong>proprii</strong> se află sau nu se află <strong>si</strong>tuate într-un<br />
[k] def<br />
interval dat. Fie T = T(1 : k,1 : k) submatricea lider principală de ordinul k a<br />
[k] def [k−1] def<br />
matricei T definită, evident, de vectorii f = f(1 : k) şi g = g(1 : k − 1).<br />
Definim polinoamele<br />
p 0 (λ) = 1,<br />
p 1 (λ) = det(T [1] −λI 1 ) = f 1 −λ,<br />
p k (λ) = det(T [k] −λI k ), k = 2 : n<br />
(4.301)<br />
((−1) k p k (λ) sunt polinoamele caracteristice ale submatricelor T [k] ).<br />
Pentru k > 2 avem<br />
⎡<br />
⎤<br />
0<br />
T<br />
p k (λ) = det<br />
[k−1] −λI k−1 .<br />
⎢<br />
⎣<br />
g k−1<br />
⎥<br />
⎦ =<br />
0 ··· g k−1 f k −λ<br />
53 Altfel, problema se sparge în două sau mai multe probleme de dimen<strong>si</strong>une mai mică.
332 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
⎡<br />
= det<br />
⎢<br />
⎣<br />
T [k−2] −λI k−2 . .<br />
0 0<br />
g k−2 0<br />
0 ··· g k−2<br />
0 ··· 0<br />
f k−1 −λ g k−1<br />
g k−1 f k −λ<br />
⎤<br />
, (4.302)<br />
⎥<br />
⎦<br />
relaţie din care, prin dezvoltare după elementele ultimei linii sau ultimei coloane,<br />
obţinem<br />
p k (λ) = (f k −λ)p k−1 (λ)−g 2 k−1 p k−2(λ). (4.303)<br />
Relaţia (4.303), împreună cu iniţializările p 0 (λ) = 1, p 1 (λ) = f 1 − λ din (4.301),<br />
permit calculul recurent al polinoamelor p k (λ), k=2:n, şi, pentru o valoare fixată µ<br />
a lui λ, valorile acestorpolinoame în punctul µ. Polinoamelep k (λ), k=0:n, definite<br />
mai sus, formează aşa numitul şir Sturm asociat matricei tridiagonale <strong>si</strong>metrice<br />
ireductibile T.<br />
Notăm cu λ [k]<br />
i , i = 1 : k, valorile <strong>proprii</strong> ale matricei T [k] (care sunt, <strong>si</strong>multan,<br />
zerourile polinoamelor p k (λ)) pe care le vom presupune ordonate crescător, i.e. 54<br />
λ [k]<br />
1 < λ [k]<br />
2 < ... < λ [k]<br />
k . (4.304)<br />
Metoda bisecţiei are la bază următoarele rezultate cla<strong>si</strong>ce.<br />
Teorema 4.20 Dacă vectorul g are toate elementele nenule, i.e. matricea tridiagonală,<br />
<strong>si</strong>metrică T, definită de vectorii f şi g, este ireductibilă, atunci valorile<br />
<strong>proprii</strong> ale matricei T [k−1] separă strict valorile <strong>proprii</strong> ale matricei T [k] , i.e.<br />
λ [k]<br />
1 < λ [k−1]<br />
1 < λ [k]<br />
2 < λ [k−1]<br />
2 < ... < λ [k]<br />
k−1 < λ[k−1] k−1 < λ[k] k<br />
(4.305)<br />
pentru toţi k ∈ 2 : n.<br />
Demonstraţie. Conform teoremei 4.5 inegalităţile (4.305) au loc într-o formă<br />
nestrictă. Vom arăta că, în condiţiile teoremei, egalităţile nu pot avea loc. Presupunem,<br />
prin absurd, că există i astfel încât λ [k]<br />
i = λ [k−1] def<br />
i = γ sau λ [k−1]<br />
i =<br />
= λ [k] def<br />
i+1<br />
= γ. În ambele cazuri polinoamele p k şi p k−1 au pe γ rădăcină comună.<br />
Cum toţi g j sunt nenuli, din relaţiile de recurenţă (4.303)rezultăp k (γ) = p k−1 (γ) =<br />
= ... = p 1 (γ) = p 0 (γ) = 0 ceea ce este în contradicţie cu faptul că p 0 (γ) = 1. ✸<br />
Teorema 4.21 Numărul <strong>valorilor</strong> <strong>proprii</strong> ale matricei tridiagonale, <strong>si</strong>metrice, ireductibile<br />
T ∈ IR n×n , mai mici decât un număr fixat µ ∈ IR este egal cu numărul<br />
ν(µ) al schimbărilor de semn din mulţimea numerică ordonată 55<br />
p(µ) = {p 0 (µ), p 1 (µ), ..., p n (µ)}, (4.306)<br />
unde p k (λ), k = 0 : n, este şirul Sturm asociat matricei T.<br />
54 O matrice tridiagonală <strong>si</strong>metrică ireductibilă nu are valori <strong>proprii</strong> multiple (exerciţiul 4.63).<br />
Evident, dacă T este ireductibilă, atunci toate submatricele T [k] sunt ireductibile.<br />
55 În cazurile în care unele din elementele mulţimii sunt nule (fapt puţin probabil în calculele<br />
efectuate într-o aritmetică aproximativă), convenim că o pereche ordonată (γ,δ) se con<strong>si</strong>deră<br />
schimbare de semn dacă γ ≠ 0, δ = 0 şi nu se con<strong>si</strong>deră schimbare de semn dacă γ = 0, δ ≠ 0.<br />
Într-un astfel de caz ν(µ) este numărul de valori <strong>proprii</strong> mai mici sau egale cu µ. Două zerouri<br />
consecutive în secvenţa numerică p(µ) nu sunt po<strong>si</strong>bile.
4.9. METODE ALTERNATIVE 333<br />
Demonstraţie. Vom con<strong>si</strong>dera numai cazul generic în care toţi p k (µ) sunt nenuli,<br />
lăsând în sarcina cititorului să analizeze cazurile în care unele valori p k (µ) sunt<br />
nule. Pentru demonstraţie vom utiliza inducţia după n. Fie ν n (µ) numărul <strong>valorilor</strong><br />
<strong>proprii</strong> mai mici decât µ şi σ n (µ) numărul schimbărilor de semn din şirul (4.306).<br />
Se verifică imediat că ν 1 (µ) = σ 1 (µ). Presupunem că ν k−1 (µ) = σ k−1 (µ) def<br />
= l. În<br />
ipoteza ordonării crescătoare a <strong>valorilor</strong> <strong>proprii</strong> ale submatricelor T [k] rezultă că µ<br />
este <strong>si</strong>tuat în intervalul deschis (λ [k−1]<br />
l<br />
,λ [k−1]<br />
l+1<br />
). Acum, datorită separării stricte a<br />
<strong>valorilor</strong> <strong>proprii</strong> ale submatricei T [k] de către valorile <strong>proprii</strong> ale lui T [k−1] (teorema<br />
4.20), sunt po<strong>si</strong>bile următoarele două <strong>si</strong>tuaţii<br />
a) µ ∈ (λ [k]<br />
l<br />
,λ [k]<br />
l+1<br />
) sau b) µ ∈ (λ[k]<br />
l+1 ,λ[k] l+2<br />
). (4.307)<br />
În cazul a) avem ν k (µ) = l, iar în cazul b), evident, ν k (µ) = l + 1. Rămâne să<br />
arătăm că în cazul a) perechea (p k−1 (µ),p k (µ)) nu este schimbare de semn, iar în<br />
cazul b) este schimbare de semn. Conform (4.301) putem scrie<br />
k−1<br />
∏<br />
p k−1 (µ) = (λ [k−1]<br />
i −µ), p k (µ) =<br />
i=1<br />
k∏<br />
i=1<br />
(λ [k]<br />
i −µ). (4.308)<br />
Având învedere<strong>si</strong>tuarealuiµînraportcuvalorile<strong>proprii</strong>alecelordouăsubmatrice,<br />
este evident faptul că sgn(λ [k−1]<br />
i − µ) = sgn(λ [k]<br />
i − µ) pentru i = 1 : l precum şi<br />
faptul că sgn(λ [k−1]<br />
i<br />
−µ) = sgn(λ [k]<br />
i+1<br />
−µ) pentru i = l+1 : k −1. Rezultă<br />
sgn(p k (µ)) = sgn(p k−1 (µ))sgn(λ l+1 −µ), (4.309)<br />
de unde obţinem, evident, <strong>si</strong>tuaţia necesară a semnelor în cazurile a) şi b). Inducţia<br />
este completă.<br />
✸<br />
Exemplul 4.8 Con<strong>si</strong>derăm matricea tridiagonală T, de ordinul 3, din exemplele<br />
numerice 4.6 şi 4.7, definită de vectorii f = [1 2 1] T şi f = [1 1] T . Spectrul<br />
matricei T este λ(T) = {0, 1, 3}, iar şirul Sturm asociat<br />
p 0 (λ) = 1, p 1 (λ) = −λ+1, p 2 (λ) = λ 2 −3λ+1, p 3 (λ) = −λ 3 +4λ 2 −3λ.<br />
Valorile { <strong>proprii</strong><br />
√<br />
ale submatricelor lider principale sunt λ(T [1] ) = {1} şi λ(T [2] ) =<br />
= 3− 5 3+ √ }<br />
5<br />
, , verificându-se imediat şirurile de inegalităţi din (4.305).<br />
2 2<br />
Avem, de asemenea,<br />
p(1) = {1, 0, −1, 0}, p(2) = {1, −1, 2, 1},<br />
i.e. fiecaredinmulţimile p(1)şip(2)arecâtedouăschimbăridesemncarecorespund<br />
cu numerele de valori <strong>proprii</strong> ale matricei T mai mici sau egale cu 1, respectiv mai<br />
mici decât 2.<br />
✸<br />
Utilizarea teoremei 4.21 ridică probleme dificile în practică [X] datorită frecventelor<br />
depăşiriinferioareşi superioare înformatvirgulămobilă de către valorilep k (µ)<br />
pentru k apropiaţi de n, chiar pentru un ordin n modest. Acest fenomen apare mai
334 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
ales când matricea are valori <strong>proprii</strong> apropiate şi nu poate fi evitat printr-o scalare<br />
prealabilă a matricei T iniţiale.<br />
Pentru depăşirea acestor dificultăţi, în [X] se recomandă utilizarea mulţimii<br />
numerice<br />
q(µ) = {q 1 (µ), q 1 (µ), ..., q n (µ)}, unde q i (µ) = p i(µ)<br />
, i = 1 : n, (4.310)<br />
p i−1 (µ)<br />
ale cărei elemente pot fi calculate cu relaţia recurentă<br />
q i (µ) = f k −µ− g2 i−1<br />
q i−1 (µ) , i = 2 : n, q 1(µ) = f 1 −µ. (4.311)<br />
Pentru <strong>si</strong>tuaţiile în care q k−1 = 0 (sau, în general, când apar depăşiri inferioare) se<br />
recomandă calculul lui q k (µ) cu formula<br />
q i (µ) = f i −µ− |g i−1|<br />
ε M<br />
, (4.312)<br />
unde ε M este ep<strong>si</strong>lon maşină al calculatorului utilizat.<br />
Evident, numărul de schimbăride semn al mulţimii p(µ) din (4.306)şi, <strong>si</strong>multan,<br />
numărul ν(µ) al <strong>valorilor</strong> <strong>proprii</strong> ale matricei T mai mici decât µ, este egal cu<br />
numărul de elemente negative al mulţimii q(µ). Mai mult, numărul ν [α,β] al <strong>valorilor</strong><br />
<strong>proprii</strong> ale matricei T <strong>si</strong>tuate în intervalul [α, β], este dat de relaţia<br />
ν [α,β] = ν(β)−ν(α). (4.313)<br />
<strong>Calculul</strong> lui ν(µ) pentru un număr µ dat se face cu următoarea procedură.<br />
ν(µ) 1. ν = 0<br />
2. q = f 1 −µ<br />
3. Dacă q < 0 atunci ν = 1<br />
4. Pentru i = 2 : n<br />
1. Dacă |q| > ε M atunci q ← f i −µ− g2 i−1<br />
q<br />
altfel q ← f i −µ− |g i−1|<br />
ε M<br />
2. Dacă q < 0 atunci ν ← ν +1<br />
În continuare, vom utiliza procedura de mai sus cu <strong>si</strong>ntaxa de apel<br />
ν = ν(f,g,µ).<br />
Vom con<strong>si</strong>dera acum problema determinării unei <strong>si</strong>ngure valori <strong>proprii</strong>, mai<br />
precis a valorii <strong>proprii</strong> λ k , k ∈ 1 : n, din spectrul matricei T, presupus ordonat<br />
crescător, respectiv<br />
λ 1 < λ 2 < ... < λ k < ... < λ n , (4.314)<br />
unde egalităţile nu sunt po<strong>si</strong>bile întrucât T este ireductibilă (vezi exerciţiul 4.63).<br />
Metodabisecţieipentrucalcululvalorii<strong>proprii</strong>λ k poatefirezumatăprinurmătoarea<br />
schemă de calcul.
4.9. METODE ALTERNATIVE 335<br />
BISECT k<br />
1. [α, β] = Int(f,g)<br />
2. C^at timp β −α > tol<br />
1. γ = α+β<br />
2<br />
2. ν = ν(f,g,γ)<br />
3. Dacă ν < k atunci α ← γ<br />
altfel β ← γ<br />
3. λ k = γ<br />
Este uşor de verificat faptul că această procedură evaluează corect, în limitele fixate<br />
de toleranţa tol, valoarea proprie λ k din (4.314).<br />
Pentru localizarea şi calculul unui grup contiguu de valori <strong>proprii</strong> ale matricei<br />
T din secvenţa (4.314), fie acesta λ k1 ,λ k1+1,...,λ k2 , k 2 ≥ k 1 , se aplică, în esenţă,<br />
de k 2 − k 1 + 1 ori procedura de mai sus, cu unele amendamente care conduc la<br />
obţinerea unui spor de eficienţă. Aceste amendamente urmăresc exploatarea inten<strong>si</strong>vă<br />
a informaţiei obţinute în procesul iterativ de localizare a valorii <strong>proprii</strong> curente<br />
pentru reducerea intervalelor de separare a <strong>valorilor</strong> <strong>proprii</strong> care se calculează ulterior.<br />
Concret,vomrealizaoactualizare,lafiecareiteraţie, aextremităţilorinferioare<br />
ale intervalelor de localizare a <strong>valorilor</strong> <strong>proprii</strong> λ i , i = k 1 : k 2 . Pentru aceasta observăm<br />
că valoarea ν calculată la instrucţiunea 2.2 a procedurii de mai sus, permite<br />
aprecierea că, la iteraţia curentă de evaluare a valorii <strong>proprii</strong> λ k , un număr de k−ν<br />
valori <strong>proprii</strong> se găsesc în intervalul [γ,λ k ]. Prin urmare, dacă ν < k 1 atunci în<br />
intervalul [γ,λ k ] se găsesc valorile <strong>proprii</strong> λ i , i = k 1 : k−1, iar dacă ν ≥ k 1 atunci<br />
în acest interval se află valorile <strong>proprii</strong> λ i , i = ν+1 : k−1. Utilizarea informaţiilor<br />
de mai sus presupune:<br />
– calculul <strong>valorilor</strong> <strong>proprii</strong> în ordine inversă, i.e. în ordinea k = k 2 : −1 : k 1 ;<br />
– introducerea unui vector σ ∈ IR k2−k1+1 , al extremităţilor stângi ale intervalelor<br />
de localizare, ale cărui elemente vor fi actualizate, la fiecare iteraţie, pe baza<br />
observaţiilor de mai sus.<br />
Utilizând, pentru elementele vectorului σ, o indexare conformă cu cea a <strong>valorilor</strong><br />
<strong>proprii</strong> (i.e. σ k , k = k 1 : k 2 , este extremitatea stângă a intervalului de localizare a<br />
valorii <strong>proprii</strong> λ k ), la o iteraţie curentă de calcul al lui λ k , actualizarea constă în<br />
atribuirile<br />
σ i = γ pentru i =<br />
{<br />
k1 : k −1, dacă ν < k 1<br />
ν +1 : k −1, dacă ν ≥ k 1 .<br />
(4.315)<br />
Prezentăm direct algoritmul care implementează ideile de mai sus.<br />
Algoritmul 4.28 (BISECT – <strong>Calculul</strong> unui grup de valori <strong>proprii</strong><br />
prin metoda bisecţiei) (Daţi vectorii f ∈ IR n şi g ∈ IR n−1 care definesc<br />
matricea tridiagonală, <strong>si</strong>metrică, ireductibilă T ∈ IR n×n precum<br />
şi întregii k 1 < k 2 ≤ n şi toleranţa tol, algoritmul calculează valorile<br />
<strong>proprii</strong> λ k , k ∈ k 1 : k 2 .)<br />
1. [α, β] = Int(f,g)<br />
2. % Iniţializarea vectorului extremităţilor stângi ale intervalelor de<br />
separare şi a extremităţii din dreapta pentru λ k2 .
336 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. Pentru i = k 1 : k 2<br />
1. σ i ← α<br />
2. λ k2 ← β<br />
3. % <strong>Calculul</strong> iterativ al grupului impus de valori <strong>proprii</strong><br />
1. Pentru k = k 2 : −1 : k 1<br />
%<strong>Calculul</strong>valorii<strong>proprii</strong>curenteλ k şiactualizareaintervalelor<br />
de localizare pentru valorile <strong>proprii</strong> λ j , j = k −1 : −1 : k 1<br />
1. α ← σ k<br />
2. C^at timp β −α > tol<br />
1. γ = α+β<br />
2<br />
2. ν = ν(f,g,γ)<br />
3. Dacă ν < k atunci<br />
1. α ← γ<br />
2. Dacă ν < k 1 şi k > k 1 atunci<br />
1. Pentru i = k 1 : k −1<br />
1. σ i = γ<br />
altfel<br />
1. Pentru i = ν +1 : k −1<br />
1. σ i = γ<br />
altfel β ← γ<br />
3. λ k = γ<br />
4. β ← γ<br />
Comentarii. O <strong>si</strong>ntaxă de utilizare naturală a algoritmului este<br />
λ = BISECT(f,g,k 1 ,k 2 ,tol),<br />
unde λ este vectorul <strong>valorilor</strong> <strong>proprii</strong> calculate. Deşi este dificil de stabilit o complexitate<br />
corectă a algoritmului datorită, în primul rând, caracterului său iterativ,<br />
practica a arătat că algoritmul BISECT, în varianta prezentată, este sen<strong>si</strong>bil mai<br />
rapid decât aplicarea repetată a aceleiaşi metode pentru fiecare valoare proprie individuală,<br />
mai ales atunci când există valori <strong>proprii</strong> multiple sau apropiate. În [X]<br />
se afirmă că algoritmul poate fi utilizat şi pentru calculul <strong>valorilor</strong> <strong>proprii</strong> ale unei<br />
matrice tridiagonale ne<strong>si</strong>metrice T dacă elementele nediagonale satisfac condiţia<br />
t i,i+1 t i+1,i > 0. În acest scop se utilizează datele de intrare f i = t ii , i = 1 : n, şi<br />
g i = √ t i,i+1 t i+1,i , i = 1 : n−1.<br />
Acurateţea rezultatelor este con<strong>si</strong>derată a fi foarte bună, calculul într-un format<br />
virgulă mobilă cu baza de numeraţie β şi un număr t de cifre al mantisei, conducând<br />
launnivelalerorilorabsolutedeordinulβ −t max(|λ min |,|λ max |), nivelcarenupoate<br />
fi redus prin creşterea numărului de iteraţii [X].<br />
✸<br />
4.9.3 Metode Jacobi<br />
Metodele tip Jacobi, de calcul al <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice <strong>si</strong>metrice, sunt<br />
inferioare din punctul de vedere al eficienţei, apreciate prin numărul necesar de
4.9. METODE ALTERNATIVE 337<br />
operaţii în format virgulă mobilă, algoritmului QR <strong>si</strong>metric. Reînvierea interesului<br />
pentru metodele Jacobi se datorează modificării contextului arhitectural al echipamentelor<br />
de calcul de înaltă performanţă actuale, mai precis dezvoltării calculatoarelor<br />
paralele. Eficienţa unui algoritm paralel se evaluează pe principii diferite,<br />
avându-se în vedere efectuarea calculelor <strong>si</strong>multan de mai multe procesoare. În<br />
acest context, metodele Jacobi devin competitive datorităfaptului că au o structură<br />
granulară, bogată în acţiuni de calcul practic independente, care pot fi executate,<br />
în acelaşi timp, de procesoare diferite. Deşi prezentarea unor algoritmi paraleli nu<br />
face obiectul acestei lucrări, am con<strong>si</strong>derat oportun să introducem metodele Jacobi,<br />
în variantele lor secvenţiale, ca punct de plecare, de altfel uzual, pentru dezvoltarea<br />
variantelor paralele.<br />
Fie A ∈ IR n×n o matrice <strong>si</strong>metrică, D A = diag(a 11 ,a 22 ,...,a nn ) şi B = A−D A<br />
matricea elementelor sale extradiagonale. Precizăm că transformările din cadrul<br />
metodelor Jacobi nu conservă structura tridiagonală astfel că etapa de reducere la<br />
această structură nu este necesară.<br />
În esenţă, metodele Jacobi construiesc, iterativ, un şir de matrice, ortogonal<br />
asemenea cu matricea iniţială, pe baza relaţiei de recurenţă<br />
A k+1 = J T k A kJ k , ,k = 1,2,..., A 1 = A, (4.316)<br />
unde J k sunt rotaţii plane, numite, în acest context, transformări Jacobi, astfel<br />
calculate încât să minimizeze norma Frobenius a matricei curente B k a elementelor<br />
extradiagonale. Acest şir este convergent, în general mai lent decât şirul QR, către<br />
formadiagonală, carepune înevidenţăvalorile<strong>proprii</strong>ale matriceiiniţiale. <strong>Calculul</strong><br />
<strong>vectorilor</strong> <strong>proprii</strong> este po<strong>si</strong>bil prin acumularea transformărilor.<br />
Pentru <strong>si</strong>mplificarea notaţiilor şi pentru a evidenţia faptul că toate calculele se<br />
efectuează pe loc, în locaţiile de memorie ale tabloului A, introducem notaţiile<br />
şi<br />
A def<br />
= A k , A ′ def<br />
= A k+1 , B def<br />
= B k+1 = A k+1 −diag(A k+1 ), J def<br />
= J k<br />
A ← B ′ def<br />
= B k+1 .<br />
În vederea determinării rotaţiei plane J optimale, reamintim parametrii definitorii<br />
ai acesteia<br />
⎡<br />
⎤<br />
1<br />
. .. c s<br />
p<br />
. ..<br />
J(p,q,θ) =<br />
, p < q, c = cosθ, s = <strong>si</strong>nθ,<br />
−s c<br />
q<br />
⎢<br />
⎣<br />
. ⎥ .. ⎦<br />
1<br />
p q<br />
(4.317)<br />
toate elementele extradiagonale nemarcate ale matricei J fiind nule. Pentru parametrii<br />
p şi q fixaţi, unghiul de rotaţie θ optimal este cel care minimizează norma
338 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Frobenius a matricei B. Se poate arăta (v. exerciţiul 4.64) că valoarea optimală<br />
a lui θ este <strong>si</strong>tuată în intervalul [− π 4 , π 4 ) şi a<strong>si</strong>gură anularea elementului a qp şi,<br />
<strong>si</strong>multan, datorită <strong>si</strong>metriei, a elementului a pq . În consecinţă, parametrii c şi s pot<br />
fi determinaţi din această condiţie, respectiv, din condiţia ca matricea<br />
D =<br />
[ ] [<br />
d11 d 12 def c s<br />
=<br />
d 21 d 22 −s c<br />
] T [ ][ ]<br />
app a pq c s<br />
a qq −s c<br />
a qp<br />
(4.318)<br />
să fie diagonală. Prin calcul direct obţinem<br />
⎧<br />
⎨ d 11 = a pp c 2 −2a qp cs+a qq s 2<br />
d 12 = (a pp −a qq )cs+a pq (c 2 −s 2 ) = d 21<br />
⎩<br />
d 22 = a pp s 2 +2a qp cs+a qq c 2 .<br />
(4.319)<br />
Dacă a pq ≠ 0 (altfel J = I n ), atunci impunând d 12 = d 21 = 0, din (4.319) rezultă<br />
c 2 −s 2<br />
cs<br />
= a qq −a pp<br />
a qp<br />
. (4.320)<br />
Introducând, acum, notaţiile<br />
t = s c = tgθ,<br />
τ = a qq −a pp<br />
2a qp<br />
, (4.321)<br />
relaţia (4.320) se scrie sub forma unei ecuaţii de gradul 2 în t<br />
t 2 +2τt−1 = 0. (4.322)<br />
Rădăcina t a acestei ecuaţii care corespunde <strong>valorilor</strong> optimale ale parametrilor c şi<br />
s trebuie să a<strong>si</strong>gure satisfacerea condiţiei |θ| < π 4<br />
, i.e. |t| < 1. Prin urmare, valorile<br />
optimale ale lui t, c şi s se calculează cu relaţiile<br />
t =<br />
sgnτ<br />
|τ|+ √ 1+τ 2, c = 1<br />
√ , s = ct. (4.323)<br />
1+t<br />
2<br />
După determinarea <strong>valorilor</strong> optimale ale parametrilor c şi s, calculul produsului<br />
A ← J T AJ se poate face economic ţinând seama de <strong>si</strong>metria rezultatului. Evident,<br />
în acest produs vor fi afectate numai liniile şi coloanele p şi q. La fel ca la algoritmul<br />
QR <strong>si</strong>metric, vom presupune că matricea A este memorată numai prin triunghiul<br />
ei inferior. În acest fel elementele afectate sunt cele evidenţiate în figura 4.9.3, iar<br />
relaţiile de calcul sunt deja familiare cititorului care a parcurs capitolul 3. Pentru<br />
o redactare mai concisă şi mai clară a algoritmilor de implementare a metodelor<br />
Jacobi vom scrie un algoritm pentru implementarea unui pas descris mai sus.<br />
Algoritmul 4.29 (IT J– Iteraţie Jacobi) (Date matricea <strong>si</strong>metrică<br />
A ∈ IR n×n , prin triunghiul său inferior, precum şi întregii 1 ≤ p <<br />
< q ≤ n, algoritmul calculeazăparametrii optimali c, s ai rotaţiei Jacobi<br />
şi suprascrie triunghiul inferior al matricei A cu triunghiul inferior al<br />
matricei succesor A ′ = J T AJ.)
4.9. METODE ALTERNATIVE 339<br />
❅<br />
❅❅❅❅❅<br />
❅<br />
p<br />
<br />
O<br />
q 0 <br />
p q<br />
Fig. 4.3: Elementele afectate de un pas al metodelor de tip Jacobi.<br />
1. Dacă a qp = 0 atunci<br />
1. c = 1, s = 0<br />
2. Return<br />
2. % Determinarea parametrilor rotaţiei Jacobi<br />
1. τ = a qq −a pp<br />
2a qp<br />
sgnτ<br />
2. t =<br />
|τ|+ √ 1+τ 2<br />
1<br />
3. c = √ , s = ct<br />
1+t<br />
2<br />
3. % <strong>Calculul</strong> A ← J T AJ numai în triunghiul inferior<br />
1. ρ = a pp c 2 −2a qp cs+a qq s 2<br />
2. a qq ← a pp s 2 +2a qp cs+a qq c 2<br />
3. a pp ← ρ, a qp ← 0<br />
4. Dacă p > 1 atunci<br />
1. Pentru j = 1 : p−1<br />
1. ρ = ca pj −sa qj<br />
2. a qj ← sa pj +ca qj<br />
3. a pj ← ρ<br />
5. Dacă p < q −1 atunci<br />
1. Pentru j = p+1 : q −1<br />
1. ρ = sa jp +ca qj<br />
2. a jp ← ca jp −sa qj<br />
3. a qj ← ρ.<br />
6. Dacă q < n atunci<br />
1. Pentru i = q +1 : n<br />
1. ρ = ca ip −sa iq<br />
2. a iq ← sa ip +ca iq<br />
3. a ip ← ρ
340 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Comentarii. Sintaxa de apel a algoritmului IT J va fi<br />
[A,c,s] = IT J(A,p,q),<br />
iar complexitatea sa este O(n), fiind necesari numai N op ≈ 6n flopi.<br />
Parametrii p, q ai transformării Jacobi ce defineşte iteraţia curentă se pot determina<br />
aplicând strategii diverse. Oricare ar fi strategia aplicată, un element anulat<br />
la o iteraţie poate deveni nenul la iteraţiile ulterioare (acesta este cazul obişnuit),<br />
astfel că, aşa cum era de aşteptat, procesul de diagonalizare este, teoretic, infinit.<br />
Criteriile practice de terminare se referă la <strong>si</strong>tuaţiile în care toate elementele extradiagonaledevin,<br />
învaloareabsolută, neglijabile. Dintre criteriileuzuale de apreciere<br />
a acestui fapt amintim<br />
sau<br />
n max<br />
i,j∈1:n<br />
i≠j<br />
|a ij | < tol, (4.324)<br />
‖A−diag(A)‖ F < tol‖A‖ F , (4.325)<br />
unde scalarul pozitiv tol exprimă nivelul de toleranţă acceptat, şi are, în mod<br />
obişnuit, valori de ordinul de mărime al erorilor de reprezentare în formatul virgulă<br />
mobilă folo<strong>si</strong>t.<br />
Prezentăm în continuare două strategii de alegere a parametrilor p şi q, care<br />
s-au impus în practica numerică, şi algoritmii de calcul corespunzători.<br />
Metoda Jacobi cla<strong>si</strong>că<br />
În aşa numita metodă Jacobi cla<strong>si</strong>că, parametrii p, q se determină astfel încât a pq să<br />
fie elementul extradiagonal de modul maxim al matricei curente. Intuitiv, o astfel<br />
de alegere ar trebui să a<strong>si</strong>gure o viteză de convergenţă superioară, ceea ce nu este<br />
întotdeauna adevărat. Algoritmul corespunzător, cu criteriul de terminare de tipul<br />
(4.324), arată astfel.<br />
Algoritmul 4.30 (J cla<strong>si</strong>c – Diagonalizare iterativă a unei matrice<br />
<strong>si</strong>metrice prin metoda Jacobi cla<strong>si</strong>că) (Date matricea <strong>si</strong>metrică<br />
A ∈ IR n×n , prin triunghiul său inferior, matricea ortogonală Q ∈ IR n×n<br />
şi toleranţa tol < 1, algoritmul calculează valorile <strong>proprii</strong> ale matricei<br />
A prin diagonalizarea iterativă cu rotaţii Jacobi care anulează, la<br />
pasul curent, elementul extradiagonal de modul maxim. Acumularea<br />
transformărilorJacobi se efectuează opţional. Opţiunea se exprimă prin<br />
intermediul unei variabile logice opt care poate lua valorile ’da’ sau<br />
’nu’. Dacă opt = ′ nu ′ , matricea Q rămâne nemodificată.)<br />
1. µ = 1<br />
2. C^at timp nµ > tol<br />
1. µ = 0<br />
2. Pentru i = 2 : n<br />
1. Pentru j = 1 : i−1<br />
✸
4.9. METODE ALTERNATIVE 341<br />
1. Dacă |a ij | > µ atunci<br />
1. µ = |a ij |<br />
2. p ← j<br />
3. q ← i<br />
3. [A,c,s] = IT J(A,q,p)<br />
4. Dacă opt = ′ da ′ atunci<br />
1. Pentru i = 1 : n<br />
1. ρ = cq ip −sq iq<br />
2. q iq ← sq ip +cq iq<br />
3. q ip ← ρ.<br />
Comentarii. Sintaxa de apel a algoritmului J cla<strong>si</strong>c va fi<br />
[A,Q] = J cla<strong>si</strong>c(A,Q,tol,opt),<br />
iar complexitatea sa, pentru n relativ mari poate fi apreciată statistic la O(n 3 ) şi<br />
la O(n 4 ) pentru n relativ reduse.<br />
✸<br />
Metoda Jacobi ciclică<br />
Dezavantajul principal al metodei Jacobi cla<strong>si</strong>ce constă în nece<strong>si</strong>tatea căutării, la<br />
fiecare iteraţie, a elementului extradiagonal de modul maxim, o operaţie de complexitate<br />
O(n 2 ) comparaţii, în timp ce complexitatea de calcul a unei iteraţii este<br />
de numai O(n). De aceea, pentru a se a<strong>si</strong>gura o eficienţă sporită, metoda Jacobi ciclică<br />
evită efectuarea comparaţiilor prin anularea elementelor extradiagonale într-o<br />
ordine predeterminată. Având în vedere că elementele anulate pot deveni nenule<br />
într-o fază ulterioară a aceleiaşi iteraţii sau într-o iteraţie ulterioară, anulările se<br />
reiau, ciclic, până la satisfacerea criteriului de oprire a iteraţiilor.<br />
Presupunând că operăm exclu<strong>si</strong>v în triunghiul inferior al matricei A şi efectuăm<br />
anulările pe linii, în ordinea naturală, i.e. în cadrul unui ciclu, în ordinea (2,1),<br />
(3,1), (3,2), ...(n,1),...(n,n−1), obţinem următorul algoritm.<br />
Algoritmul 4.31 (J ciclic – Diagonalizare iterativă a unei matrice<br />
<strong>si</strong>metrice prin metoda Jacobi ciclică) (Date matricea <strong>si</strong>metrică A ∈<br />
∈ IR n×n , prin triunghiul său inferior, matricea ortogonală Q ∈ IR n×n şi<br />
toleranţa tol < 1, algoritmul calculează valorile <strong>proprii</strong> ale matricei A<br />
prin diagonalizarea iterativă cu rotaţii Jacobi care anulează elementele<br />
extradiagonale ciclic, pe linii. Acumularea transformărilor se realizează<br />
opţional, pe baza opţiunii exprimate prin intermediul unei variabile logice<br />
opt, care poate lua valorile ’da’ sau ’nu’. Dacă opt = ′ nu ′ , matricea<br />
Q rămâne nemodificată.)<br />
1. σ = ∑ n<br />
i=2<br />
∑ i−1<br />
j=1 a2 ij<br />
2. ν A = √ 2σ+ ∑ n<br />
i=1 a2 ii , ν E = √ 2σ<br />
3. C^at timp ν E > tol ∗ν A<br />
1. Pentru q = 2 : n
342 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
1. Pentru p = 1 : q −1<br />
1. [A,c,s] = IT J(A,p,q)<br />
2. Dacă opt = ′ da ′ atunci<br />
1. Pentru i = 1 : n<br />
1. ρ = cq ip −sq iq<br />
2. q iq ← sq ip +cq iq<br />
3. q ip ← ρ<br />
√<br />
3. ν E = 2 ∑ n ∑ i−1<br />
i=2 j=1 a2 ij<br />
Comentarii. Sintaxa de apel a algoritmului J ciclic va fi<br />
[A,Q] = J ciclic(A,Q,tol,opt),<br />
iar complexitatea sa poate fi apreciată, statistic, la O(n 3 ) dacă n este relativ mare.<br />
Pentrua mărieficienţa, există ver<strong>si</strong>uni”cu prag”ale algoritmului J ciclic (v. [IV])<br />
la care anularea elementelor extradiagonale are efectiv loc numai dacă modulul lor<br />
este superior unui anumit prag. O reducere progre<strong>si</strong>vă a pragului pe parcursul<br />
procesului iterativ a<strong>si</strong>gură conservarea şi chiar o îmbunătăţire a proprietăţilor de<br />
convergenţă.<br />
✸<br />
<strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong> prin intermediul metodelor tip Jacobi se realizează,<br />
în esenţă, prin acumularea transformărilor. Concret, coloanele matricei de transformare<br />
Q obţinute în urma apelului [A,Q] = J cla<strong>si</strong>c(A,I n , ′ da ′ ) sau, respectiv, al<br />
apelului [A,Q] = J ciclic(A,I n , ′ da ′ ), sunt vectorii <strong>proprii</strong> ai matricei A iniţiale,<br />
mai precis coloana Q(:,j) este vector propriu asociat valorii <strong>proprii</strong> a jj din forma<br />
finală a matricei A.<br />
Analiza proprietăţilor de convergenţă [IV] a metodei cla<strong>si</strong>ce Jacobi a condus<br />
la concluzia că în faza iniţială convergenţa poate fi con<strong>si</strong>derată ca liniară, dar pe<br />
măsură ce numărul iteraţiilor creşte şi elementele extradiagonale scad în modul,<br />
convergenţa devine pătratică. Metoda Jacobi ciclică are o convergenţă pătratică.<br />
Deşi viteza de convergenţă a metodelor tip Jacobi este inferioară celorlalte<br />
metode de calcul al <strong>valorilor</strong><strong>proprii</strong> ale matricelor <strong>si</strong>metrice (a se vedea convergenţa<br />
a<strong>si</strong>mptotic cubică a algoritmului QR <strong>si</strong>metric sau a metodei bisecţiei) totuşi, pentru<br />
matrice de dimen<strong>si</strong>uni mai modeste aceste metode se pot dovedi, datorită <strong>si</strong>mplităţii<br />
lor, atractive. Metodele Jacobi reprezintă însăo alternativă viabilă la implementarea<br />
pe echipamentele de calcul paralel, unde un grad superior de paralelism<br />
poate compensa viteza mai redusă de convergenţă.<br />
4.10 Condiţionarea <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong><br />
Precizia rezultatelor unui calcul cu datele iniţiale afectate de erori, cum sunt erorile<br />
de reprezentare în format virgulă mobilă, este esenţial influenţată de sen<strong>si</strong>bilitatea<br />
acestor rezultate la variaţii în datele iniţiale sau, altfel spus, de condiţionarea problemei<br />
respective (vezi cap. 0). Aprecierea condiţionării se face în ipoteza unor<br />
calcule exacte, deci este independentă de modul efectiv de calcul. În continuare
4.10. CONDIŢIONARE 343<br />
ne propunem să abordăm câteva aspecte ale problemei sen<strong>si</strong>bilităţii <strong>valorilor</strong> şi<br />
<strong>vectorilor</strong> <strong>proprii</strong> la perturbaţii ale elementelor matricei.<br />
Apreciereacondiţionăriiseface,deobicei,prinstabilireaunormarginisuperioare<br />
pentru variaţiile <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> în raport cu variaţiile elementelor<br />
matricei date. Chiar dacă aceste margini sunt, de cele mai multe ori, supraevaluate,<br />
eleoferăoimaginefoarteutilăasupraunor<strong>si</strong>tuaţiicritice, încareerorilerezultatelor<br />
ies de sub control. Stabilirea evaluărilor privind sen<strong>si</strong>bilitatea <strong>valorilor</strong> şi <strong>vectorilor</strong><br />
<strong>proprii</strong> se bazeazăpe proprietăţile de continuitate ale acestora înraportcu variaţiile<br />
elementelor matricei. Întrucât aceste proprietăţi capătă un aspect complicat în<br />
cazul<strong>valorilor</strong><strong>proprii</strong>multiple, nevommărginidemersulteoreticînprincipalasupra<br />
matricelor cu valori <strong>proprii</strong> distincte, atrăgând de la început atenţia asupra faptului<br />
că valorile <strong>proprii</strong> multiple sunt semnificativ mai rău condiţionate decât cele <strong>si</strong>mple.<br />
De asemenea, vom tratadistinct cazul matricelorhermitice (în cazul real, <strong>si</strong>metrice)<br />
care prezintă calităţi cu totul remarcabile din acest punct de vedere.<br />
Proprietăţile de netezime ale dependenţelor <strong>valorilor</strong> <strong>proprii</strong> <strong>si</strong>mple şi ale <strong>vectorilor</strong><br />
<strong>proprii</strong> asociaţi se pot exprima în felul următor [IV]. Fie matricea A ∈ IC n×n<br />
şi o matrice de perturbaţie E = ǫG, cu ǫ ∈ IR şi G ∈ IC n×n având ‖G‖ = 1, arbitrară<br />
dar fixată 56 . Dacă λ ∈ λ(A) este o valoare proprie <strong>si</strong>mplă şi x ∈ IC n un<br />
vector propriu asociat, de normă euclidiană unitară (i.e. ‖x‖ = 1), atunci există o<br />
valoare proprie λ(ǫ) ∈ λ(A+E) a matricei perturbate F = A+E = A+ǫG cu un<br />
vector propriu asociat x(ǫ) (de asemenea de normă euclidiană unitară) care admit<br />
următoarele dezvoltări în serii de puteri în raport cu ǫ:<br />
λ(ǫ) = λ+α 1 ǫ+α 2 ǫ 2 +... ,<br />
x(ǫ) = x+z 1 ǫ +z 2 ǫ 2 +... ,<br />
(4.326)<br />
convergente într-o vecinătate a punctului ǫ = 0. Evident, avem λ(0) = λ, x(0) = x,<br />
iar λ(ǫ) şi x(ǫ) sunt funcţii continue şi derivabile în domeniul de convegenţă, în<br />
particular lim ǫ→0 λ(ǫ) = λ şi lim ǫ→0 x(ǫ) = x. Întrucât, în general, în dezvoltările<br />
de mai sus, α 1 ≠ 0 şi z 1 ≠ 0, o primă evaluare a dependenţei <strong>valorilor</strong><strong>proprii</strong> <strong>si</strong>mple<br />
şi a <strong>vectorilor</strong> <strong>proprii</strong> asociaţi de perturbaţiile din elementele matricei este dată de<br />
|λ(ǫ)−λ| = O(ǫ),<br />
‖x(ǫ)−x‖ = O(ǫ),<br />
(4.327)<br />
utilă în aprecierea condiţionării în cazul practic al perturbaţiilor ”mici”, i.e. al<br />
celor pentru care ǫ 2 este ”neglijabil” în raport cu ǫ. Evaluările calitative (4.327) se<br />
pot aprecia cantitativ prin |α 1 | şi, respectiv, prin ‖z 1 ‖ (sau margini superioare ale<br />
acestora), care pot servi drept numere de condiţionare pentru valoarea proprie λ şi<br />
vectorul propriu asociat x.<br />
4.10.1 Condiţionarea <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong><br />
pentru matrice generale (nehermitice)<br />
A. Condiţionarea <strong>valorilor</strong> <strong>proprii</strong><br />
Fie A ∈ IC n×n , λ ∈ λ(A) o valoare proprie <strong>si</strong>mplă a matricei A şi x,y ∈ IC n vectori<br />
<strong>proprii</strong> la dreapta, respectiv la stânga, de normă euclidiană unitară, asociaţi valorii<br />
56 Dacă nu se menţionează altfel, norma matriceală ‖·‖ este norma spectrală, i.e. ‖·‖ 2 .
344 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
<strong>proprii</strong> λ, i.e. avem Ax = λx şi, respectiv, y H A = λy H . Con<strong>si</strong>derăm, ca mai<br />
sus, matricea perturbată F = A+E, cu E = ǫG, şi λ(ǫ), x(ǫ) definite în (4.326).<br />
Derivând, în raport cu ǫ, relaţia de definiţie<br />
şi făcând ǫ = 0 obţinem<br />
Gx+Az 1 = α 1 x+λz 1 , unde α 1 = dλ(ǫ)<br />
dǫ<br />
(A+ǫG)x(ǫ) = λ(ǫ)x(ǫ) (4.328)<br />
∣ , z 1 = dx(ǫ)<br />
ǫ=0<br />
dǫ ∣ . (4.329)<br />
ǫ=0<br />
Dar, întrucât λ este o valoare proprie <strong>si</strong>mplă, avem y H x ≠ 0 (v. exerciţiul 4.9).<br />
Prin urmare, înmulţind relaţia (4.329) la stânga cu y H , obţinem<br />
de unde rezultă<br />
y H Gx+y H Az 1 = α 1 y H x+λy H z 1 ,<br />
|α 1 | = |yH Gx|<br />
|y H x|<br />
≤ ‖y‖·‖G‖·‖x‖<br />
|y H x|<br />
= 1<br />
|y H x| . (4.330)<br />
Numărul<br />
def<br />
κ λ = 1<br />
|y H x| = max<br />
G ∈ IC n×n<br />
‖G‖ = 1<br />
|α 1 | (4.331)<br />
(maximul fiind atins pentru G = xy H ) defineşte sen<strong>si</strong>bilitatea sau numărul de<br />
condiţionare al valorii <strong>proprii</strong> <strong>si</strong>mple λ. În literatura de specialitate (v. [IV],<br />
[VI], [XV] ) se utilizează însă curent inversul numărului de condiţionare, i.e. aşa<br />
numitul ”parametru s” definit de<br />
s λ<br />
def<br />
= |y H x|. (4.332)<br />
Evident, cu cât κ λ este mai mare (s λ este mai mic) condiţionarea valorii <strong>proprii</strong><br />
<strong>si</strong>mple este mai rea, erorile din datele iniţiale putând fi amplificate de până la κ λ<br />
ori. Din punct de vedere geometric, în cazul real numărul s λ reprezintă co<strong>si</strong>nusul<br />
unghiului ascuţit dintre direcţiile <strong>vectorilor</strong> <strong>proprii</strong> la stânga şi la dreapta asociaţi<br />
valorii <strong>proprii</strong> <strong>si</strong>mple λ. Cazul cel mai favorabil apare atunci când vectorii <strong>proprii</strong><br />
la stânga şi la dreapta sunt aceiaşi (e.g. matricele normale au toate valorile <strong>proprii</strong><br />
perfect condiţionate, v. teorema 4.1).<br />
Este evident faptul că sen<strong>si</strong>bilitatea unei valori <strong>proprii</strong>, definită de parametrul<br />
s sau de condiţionarea κ, se referă la erorile absolute introduse de perturbaţiile<br />
numerice în datele iniţiale. Prin urmare, erorile relative vor fi cu atât mai mari cu<br />
cât valorile <strong>proprii</strong> sunt mai mici în modul.<br />
FieQ ∈ IC n×n omatriceunitarăoarecare,B = Q H AQşiλ ∈ λ(A) = λ(B). Dacă<br />
x şi y sunt vectori <strong>proprii</strong> la dreapta şi, respectiv, la stânga, de normă unitară, ai<br />
matricei A, asociaţi valorii <strong>proprii</strong> λ, atunci ˜x = Q H x şi, respectiv, ỹ = Q H y sunt<br />
vectori <strong>proprii</strong> de normă unitară ai matricei B, asociaţi aceleiaşi valori <strong>proprii</strong>. Se
4.10. CONDIŢIONARE 345<br />
constată imediat că ˜s λ = |ỹ H˜x| = |y H x| = s λ , i.e. numerele de condiţionare ale<br />
<strong>valorilor</strong> <strong>proprii</strong> <strong>si</strong>mple sunt invariante la transformări unitare de asemănare.<br />
[ ]<br />
λ1 β<br />
Exemplul 4.9 Fie A = ∈ IR 2×2 , cu λ<br />
0 λ 1 ≠ λ 2 . Atunci este uşor de<br />
2<br />
constatat că<br />
|λ 1 −λ 2 |<br />
s λ1 = s λ2 = √<br />
β2 +(λ 1 −λ 2 ) 2,<br />
respectiv,<br />
κ λ1 = κ λ2 =<br />
√<br />
1+<br />
β 2<br />
(λ 1 −λ 2 ) 2.<br />
|β|<br />
Dacă |β| ≫ |λ 1 −λ 2 |, atunci κ λ1 = κ λ2 ≈<br />
|λ 1 −λ 2 | .<br />
[ ]<br />
0.1 100<br />
În cazul numeric A = , avem κ<br />
0 0.2<br />
λ1 = κ λ2 ≈ 10 3 . Valorile <strong>proprii</strong> ale<br />
[ ]<br />
[ ]<br />
0.1 100<br />
0 0<br />
matricei perturbate F = A+ǫG =<br />
10 −6 , unde ǫ = 10<br />
0.2<br />
−6 şi G =<br />
1 0<br />
(cu ‖G‖ = 1), sunt ˆλ 1 = 0.0990098 şi ˆλ 2 = 0.2009902, i.e. o perturbare cu numai<br />
10 −6 a unui <strong>si</strong>ngur element al matricei iniţiale are ca efect modificări de ordinul a<br />
10 −3 ale celor două valori <strong>proprii</strong>, deci de aproximativ κ ≈ 1000 mai mari.<br />
Expre<strong>si</strong>a de mai sus a numerelor de condiţionare sugerează o justificare a faptului,<br />
afirmat deja, că valorile <strong>proprii</strong> multiple au o condiţionare mai rea decât valorile<br />
<strong>proprii</strong> <strong>si</strong>mple.<br />
✸<br />
Atragem atenţia asupra faptului că, deşi exemplul de mai sus arată că sen<strong>si</strong>bilitatea<br />
unei valori <strong>proprii</strong> poate fi influenţată deci<strong>si</strong>v de ”distanţa” de la ea pâna la<br />
restul spectrului, există <strong>si</strong>tuaţii de valori<strong>proprii</strong> ”bine separate”de restul spectrului<br />
şi, înacelaşitimp, foarterăucondiţionate. Exemplecelebreînacestsensfacobiectul<br />
exerciţiilor 4.69 şi 4.70.<br />
Numereleκ λi (saus λi )definesccondiţionarea<strong>valorilor</strong><strong>proprii</strong>λ i aleuneimatrice<br />
înraportcuvariaţiimicidararbitrarealetuturorelementelormatricei,i.e. înraport<br />
cu perturbaţii nestructurate. De<strong>si</strong>gur, putem să formulăm problema condiţionării<br />
<strong>valorilor</strong><strong>proprii</strong> înraportcu variaţia unui anumit element (v. exerciţiul 4.68)sau cu<br />
variaţiile elementelor dintr-un grup precizat structural (perturbaţii structurate). În<br />
continuare ne vom îndrepta însă atenţia într-o direcţie con<strong>si</strong>derată mai importantă<br />
în aplicaţii şi anume a exprimării<strong>si</strong>ntetice a condiţionării unui grup de valori<strong>proprii</strong><br />
sau a întregului spectru în raport cu perturbaţii nestructurate. În acest scop pot<br />
fi utilizate teoremele de localizare a spectrului de valori <strong>proprii</strong> în planul complex<br />
(dintre care amintim teorema lui Gershgorin, vezi teorema 4.11, §4.1). O altă<br />
cale este de a defini condiţionarea întregului spectru printr-o normă a vectorului<br />
condiţionărilor <strong>valorilor</strong> <strong>proprii</strong> individuale, i.e.<br />
s Λ<br />
def<br />
= ‖s‖, κ Λ<br />
def<br />
= ‖κ‖, (4.333)<br />
unde<br />
s = [s λ1 s λ2 ··· s λn ] T , κ = [κ λ1 κ λ2 ··· κ λn ] T , (4.334)
346 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
definiţie care ar putea fi utilizată şi pentru un grup de valori <strong>proprii</strong>.<br />
Pentru definirea condiţionării unui grup de valori <strong>proprii</strong> vom urma totuşi o cale<br />
alternativăcaregeneralizeazăointerpretareinteresantăanumerelordecondiţionare<br />
individuale definite mai sus. În acest scop vom introduce şi utiliza conceptul de<br />
proiector spectral. Pentru <strong>si</strong>mplitate, con<strong>si</strong>derăm o matrice A ∈ IC n×n cu valori<br />
<strong>proprii</strong> distincte şi fie I = {i 1 ,i 2 ,...,i q } o mulţime ordonată (i.e. i 1 < i 2 <<br />
... < i q ) de indici din 1 : n. Notăm λ I (A) = {λ i1 ,λ i2 ,...,λ iq } ⊂ λ(A). Fie,<br />
acum, U I ⊂ IC n subspaţiul A-invariant asociat setului de valori <strong>proprii</strong> λ I (A) şi<br />
V ⊂ IC n subspaţiulA-invariantcomplementar,asociatsetuluiλ J (A) = λ(A)\λ I (A).<br />
Întrucât avem IC n = U⊕V, pentru orice vector x ∈ IC n există vectorii u ∈ U şi v ∈ V,<br />
unic determinaţi, astfel încât x = u+v. Vectorul u se numeşte proiecţia vectorului<br />
x pe subspaţiul U paralelă cu subspaţiul V, iar vectorul v proiecţia vectorului x pe<br />
subspaţiul V paralelă cu subspaţiul U. Aplicaţia liniară P I : IC n → U se numeşte<br />
proiecţia spectrală asociată setului de valori <strong>proprii</strong> λ I (A), iar pentru o bază fixată<br />
a spaţiului IC n , matricea P I ∈ IC n×n asociată aplicaţiei P I se numeşte proiector<br />
spectral pe subspaţiul U. Evident, P I x = u, ∀x ∈ IC n şi PI 2 = P I.<br />
Fie, acum, o matrice U ∈ IC n×q ale cărei coloane formează o bază a subspaţiului<br />
U. Conform propoziţiei 4.1, avem AU = UB, unde B ∈ IC q×q este o restricţie a<br />
matricei A la subspaţiul A-invariant U şi λ(B) = λ I (A). Similar, fie V ∈ IC n×(n−q)<br />
o matrice ale cărei coloane formează o bază a subspaţiului V şi AV [ = VC. ] Evident,<br />
Y<br />
matriceaT = [U V ]este ne<strong>si</strong>ngulară. Con<strong>si</strong>derămpartiţiaT −1 = a inversei<br />
Z<br />
matricei T, unde Y ∈ IC q×n şi Z ∈ IC (n−q)×n . Avem imediat YAU = B, YAV = 0,<br />
ZAU = 0 şi ZAV = C. Prin urmare, T −1 AT = diag(B,C). Mai mult, este <strong>si</strong>mplu<br />
de văzut că matricele<br />
P I = UY, P J = VZ = I n −P I (4.335)<br />
sunt proiectorii spectrali pe subspaţiile A-invariante U şi, respectiv, V.<br />
Con<strong>si</strong>derăm, în continuare, o valoare proprie <strong>si</strong>mplă λ ∈ λ(A), un vector propriu<br />
la dreapta x şi un vector propriu la stânga y, ambii de norme euclidiene unitare,<br />
asociaţi valorii <strong>proprii</strong> λ. Subspaţiul A-invariant unidimen<strong>si</strong>onal U = Imx are drept<br />
complement subspaţiul A-invariant n −1 dimen<strong>si</strong>onal V = Kery H , iar P λ = xyH<br />
y H x<br />
este proiectorul spectral pe subspaţiul U. Avem următoarea exprimare po<strong>si</strong>bilă a<br />
condiţionării valorii <strong>proprii</strong> λ. Întrucât ‖xyH ‖ = ‖x‖·‖y‖ (demonstraţi!), rezultă<br />
s λ = 1<br />
‖P λ ‖ , respectiv κ λ = ‖P λ ‖. (4.336)<br />
Aceste relaţii pot fi generalizate, în modul cel mai natural, la definirea condiţionării<br />
unor seturi de mai multe valori <strong>proprii</strong>. Fără a intra în detalii, vom defini<br />
parametrul s I şi condiţionarea κ I a unui set λ I ⊂ λ(A) de valori <strong>proprii</strong> prin<br />
s I = 1<br />
‖P I ‖ , respectiv κ I = ‖P I ‖, (4.337)<br />
unde P I este proiectorul spectral pe subspaţiul A-invariant asociat <strong>valorilor</strong> <strong>proprii</strong><br />
λ I . La fel ca în cazul <strong>valorilor</strong> <strong>proprii</strong> individuale, s I şi κ I sunt invariante la transformări<br />
unitare (în cazul real, ortogonale) de asemănare. În consecinţă, evaluarea
4.10. CONDIŢIONARE 347<br />
condiţionării unui set λ I de valori <strong>proprii</strong> se poate face în felul următor. Fie<br />
[ ]<br />
S = Q H S11 S<br />
AQ = 12<br />
(4.338)<br />
0 S 22<br />
forma Schur ordonată a matricei A astfel încât λ I = λ(S 11 ), λ(S 11 )∩λ(S 22 ) = ∅ şi<br />
soluţia X ∈ IC q×(n−q) a ecuaţiei Sylvester<br />
S 11 X −XS 22 = S 12 . (4.339)<br />
Atunci, aşa[ cum s-a arătat ] în §4.7, transformarea de asemănare definită de matricea<br />
T = conduce la obţinerea matricei cu structură bloc-diagonală<br />
Iq −X<br />
0 I n−q<br />
T −1 ST = diag(S 11 ,S 22 ), iar proiectorul spectral pe subspaţiul S-invariant asociat<br />
<strong>valorilor</strong> <strong>proprii</strong> λ(S 11 ), conform (4.335), este<br />
[ ]<br />
P = T(:,1 : q)T −1 Iq X<br />
(1 : q, :) = . (4.340)<br />
0 0<br />
Rezultă<br />
s I = 1<br />
‖P‖ = 1<br />
√<br />
1+‖X‖<br />
2 , respectiv κ I = ‖P‖ = √ 1+‖X‖ 2 . (4.341)<br />
Avându-se în vedere dificultăţile legate de calculul normei spectrale, în pachetele<br />
profe<strong>si</strong>onale de calcul al <strong>valorilor</strong> <strong>proprii</strong> 57 , se utilizează norme matriceale mai<br />
uşor de calculat. Astfel, în LAPACK [XV], în locul relaţiei (4.341) de calcul al<br />
parametrului s I se foloseşte expre<strong>si</strong>a<br />
s I =<br />
1<br />
√<br />
1+‖X‖<br />
2<br />
F<br />
, (4.342)<br />
care, avându-se învedererelaţiadintre normaspectralăşi normaFrobenius, dăoestimarecarediferăde<br />
valoarearealăprintr-unfactorcelmult egalcu √ min(q,n−q).<br />
În finalul acestui paragraf prezentăm un rezultat important care permite definirea<br />
condiţionării spectrului unei matrice <strong>si</strong>mple într-un context general.<br />
Teorema 4.22 (Bauer-Fike) Fie o matrice diagonalizabilă A ∈ IC n×n şi V o matrice<br />
ne<strong>si</strong>ngulară ale cărei coloane sunt vectori <strong>proprii</strong> ai matricei A, i.e. astfel încât<br />
V −1 AV = Λ = diag(λ 1 ,λ 2 ,...,λ n ). Dacă E ∈ IC n×n este o matrice de perturbaţie<br />
şi µ o valoare proprie a matricei perturbate µ ∈ λ(A+E), atunci<br />
e(µ) = min<br />
λ∈λ(A) |λ−µ| ≤ κ p(V)‖E‖ p<br />
, p = 1,2,∞, (4.343)<br />
unde κ p (V) = ‖V‖ p<br />
‖V −1 ‖ p<br />
este numărul de condiţionare la inversare al matricei<br />
V a <strong>vectorilor</strong> <strong>proprii</strong>.<br />
57 O dovadă certă de profe<strong>si</strong>onalism este însăşi po<strong>si</strong>bilitatea oferită utilizatorului de a-şi evalua<br />
condiţionarea problemelor sale de calcul şi, pe această cale, nivelul probabil al erorilor.
348 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Demonstraţie. Dacă µ ∈ λ(A), atunci min λ∈λ(A) |λ − µ| = 0 şi, deci, (4.343)<br />
este, evident, satisfăcută. Dacă µ ∉ λ(A), atunci matricele µI n −A şi µI n −Λ sunt<br />
ne<strong>si</strong>ngulare, iarmatriceleµI n −A−E şiµI n −Λ−V −1 EV sunt<strong>si</strong>ngulare. Rezultă că<br />
matricea (µI n −Λ) −1 (µI n −Λ−V −1 EV) = I n −∆, unde ∆ = (µI n −Λ) −1 V −1 EV,<br />
este <strong>si</strong>ngulară, i.e. există un vector z, cu ‖z‖ = 1, astfel încât (I n −∆)z = 0. De<br />
aici, cu orice normă matriceală con<strong>si</strong>stentă, obţinem<br />
1 = ‖z‖ = ‖∆z‖ ≤ ‖∆‖·‖z‖ = ‖∆‖.<br />
Pe de altă parte, oricare ar fi norma matriceală con<strong>si</strong>stentă ‖·‖, care îndeplineşte<br />
condiţia<br />
‖diag(α 1 ,α 2 ,...,α n )‖ = max<br />
i=1:n (|α i|),<br />
(în particular ‖·‖ = ‖·‖ p<br />
, p = 1,2,∞) avem<br />
‖∆‖ ≤ ‖(µI n −Λ) −1 ‖·‖V −1 EV)‖ ≤<br />
≤ max<br />
i=1:n |µ−λ i| −1 ‖V −1 ‖·‖E‖·‖V‖ =<br />
Din ultimele două relaţii rezultă<br />
1 ≤<br />
i.e. (4.343) este adevărată, q.e.d.<br />
1<br />
min i=1:n |µ−λ i | κ(V)‖E‖,<br />
1<br />
min i=1:n |µ−λ i | κ(V)‖E‖.<br />
În primul rând remarcăm faptul că în demonstraţia teoremei Bauer-Fike nu s-a<br />
utilizat ipoteza unor perturbaţii ”mici”, i.e. rezultatul este valabilpentru oricenivel<br />
al perturbaţiilor.<br />
Interpretând e(µ) ca sen<strong>si</strong>bilitate numerică a(număr de condiţionareal) valorii<br />
‖E‖ p<br />
<strong>proprii</strong> λ pentru care se realizeazăminimul din (4.343) rezultă, pe de o parte, faptul<br />
că numărul de condiţionarela inversareal matricei <strong>vectorilor</strong><strong>proprii</strong> ai unei matrice<br />
<strong>si</strong>mple este o margine superioară pentru numerele de condiţionare individuale ale<br />
fiecărei valori <strong>proprii</strong>.<br />
Pe de altă parte, putem con<strong>si</strong>dera max µ∈λ(A+E) e(µ) drept influenţa matricei de<br />
perturbaţie E asupra întreguluispectru a lui Aşi putem utiliza margineasuperioară<br />
e(µ)<br />
κ p (V) anumărului max µ∈λ(A+E) pentru apreciereasen<strong>si</strong>bilităţii spectrului matricei<br />
<strong>si</strong>mple A. Întrucât vectorii <strong>proprii</strong> sunt determinaţi până la înmulţirea cu un<br />
‖E‖<br />
scalar nenul, pentru a elimina această nedeterminare, definirea condiţionării spectrului<br />
unei matrice diagonalizabile se poate face prin intermediul numărului<br />
κ (p)<br />
Λ<br />
(A) = min κ p (V), (4.344)<br />
V ∈V A<br />
unde V A este mulţimea tuturor matricelor de vectori <strong>proprii</strong> ai matricei A pentru<br />
care avem V −1 AV = Λ.<br />
✸
4.10. CONDIŢIONARE 349<br />
Pentru p = 2, această caracterizarea condiţionării spectrului de valori <strong>proprii</strong> al<br />
unei matrice <strong>si</strong>mple este într-o conexiune strânsă cu cea introdusă în relaţia (4.333).<br />
Într-adevăr, dacă V ∈ V A , atunci x i = Ve i<br />
este un vector propriu la dreapta,<br />
‖Ve i ‖<br />
de normă euclidiană unitară, asociat valorii <strong>proprii</strong> λ i , iar y i = (eT i V −1 ) H<br />
‖V −H este un<br />
e i ‖<br />
vector propriu unitar la stânga asociat aceleiaşi valori <strong>proprii</strong>. Avem<br />
s λi = |y H i x i | = |eT i V −1 Ve i |<br />
‖V −H e i ‖·‖Ve i ‖ = 1<br />
‖Ve i ‖·‖V −H e i ‖ .<br />
Ţinând seama de faptul că ‖Ve i ‖ ≤ ‖V‖ · ‖e i ‖ = ‖V‖ şi, analog, ‖V −H e i ‖ ≤<br />
≤ ‖V −1 ‖, rezultă<br />
s λi ≥ 1<br />
κ 2 (V) , respectiv κ λ i<br />
≤ κ 2 (V)<br />
pentru toţi i = 1 : n. Cum V ∈ V A era arbitrară, aceasta înseamnă<br />
Pe de altă parte, fie matricele X = [x 1<br />
‖κ‖ ∞ = max (κ λ i<br />
) ≤ κ (2)<br />
i=1:n<br />
Λ<br />
(A). (4.345)<br />
x 2 ··· x n ], având<br />
⎡<br />
drept<br />
⎤<br />
coloane<br />
y H<br />
vectori <strong>proprii</strong> la dreapta de normă euclidiană unitară şi Y = ⎢<br />
⎣<br />
2.<br />
y H 1<br />
y H n<br />
⎥, cu vectorii<br />
⎦<br />
y i vectori <strong>proprii</strong> la stânga, de asemenea de normă euclidiană unitară. Atunci,<br />
ţinând seama de faptul că y H i x j = 0 pentru toţi i ≠ j (v. exerciţiul 4.8), avem<br />
YX = diag(s λ1 ,s λ2 ,...,s λn ). Prin urmare, matricea<br />
V = XD = Xdiag( √ κ λ1 , √ κ λ2 ,..., √ κ λn )<br />
aparţine mulţimii V A şi V −1 = D −1 X −1 = DY. Rezultă<br />
n<br />
κ(V) = ‖V‖·‖V −1 ‖ ≤ ‖V‖ F ‖V −1 ‖ F = ‖XD‖ F ‖DY‖ F = ‖D‖ 2 F = ∑<br />
κ λi = ‖κ‖ 1 .<br />
Reunind acest rezultat cu (4.345) putem scrie în concluzie<br />
i=1<br />
‖κ‖ ∞ ≤ κ (2)<br />
Λ (A) ≤ ‖κ‖ 1. (4.346)<br />
Având în vedere rolul determinant al structurii direcţiilor <strong>proprii</strong> asupra sen<strong>si</strong>bilităţii<br />
<strong>valorilor</strong> <strong>proprii</strong>, este interesant de văzut în ce condiţii κ Λ (A) este minim.<br />
În acest sens avem următoarea propoziţie.<br />
Propoziţia 4.4 Valoarea minimă a numărului de condiţionare (4.342) pentru<br />
p = 2 este 1 şi este atinsă dacă matricea A este normală (în particular, hermitică<br />
sau unitară, iar în cazul real <strong>si</strong>metrică sau ortogonală).
350 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Demonstraţie. Pentru orice matrice de vectori <strong>proprii</strong> V ∈ V A avem<br />
κ 2 (V) = ‖V‖·‖V −1 ‖ ≥ ‖VV −1 ‖ = 1.<br />
Prin urmare şi κ (2)<br />
Λ<br />
(A) ≥ 1. Dacă matricea A este normală, atunci este unitar<br />
diagonalizabilă, respectiv vectorii <strong>proprii</strong> sunt ortogonali, i.e. κ 2 (V) = 1 pentru<br />
toţi V ∈ V A . Rezultă κ (2)<br />
Λ<br />
(A) = 1.<br />
✸<br />
Prin urmare spectrele matricelor normale sunt perfect condiţionate.<br />
O altă problemă foarte importantă este legată de existenţa mijloacelor de îmbunătăţire<br />
şi de conservare a condiţionării numerice a spectrului de valori <strong>proprii</strong><br />
ale unei matrice date. Întrucât spectrul însuşi trebuie conservat, aceste mijloace se<br />
referălaexistenţaunortransformărideasemănareastfelîncâtmatriceaà = TAT−1<br />
să aibă κ Λ (Ã) ≤ κ Λ(A). În acest sens avem următorul rezultat.<br />
Propoziţia 4.5 Transformările unitare (în cazul real, ortogonale) de asemănare<br />
conservă numărul de condiţionare κ (2)<br />
Λ<br />
(A) al spectrului unei matrice.<br />
Demonstraţie. Conservarea numărului de condiţionare este urmare directă a<br />
conservării normei euclidiene la transformări unitare. Într-adevăr, fie à = UAUH<br />
unde U ∈ IC n×n este unitară, i.e. U H U = UU H = I n . Atunci, dacă V este o matrice<br />
arbitrarădevectori<strong>proprii</strong>liniarindependenţiaimatriceiA, Ṽ = UV esteomatrice<br />
(ne<strong>si</strong>ngulară) de vectori <strong>proprii</strong> a matricei Ã. Prin urmare, κ 2 (Ṽ) = ‖Ṽ‖·‖Ṽ −1 ‖ =<br />
= ‖UV‖·‖V −1 U H ‖ = κ 2 (V) de unde rezultă şi conservarea numărului de condiţionare<br />
min V ∈VA κ 2 (V), q.e.d.<br />
✸<br />
Implicaţiile importante ale propoziţiei de mai sus constau în utilizarea, practic<br />
exclu<strong>si</strong>vă, a transformărilor unitare (ortogonale) de asemănare în toţi algoritmii<br />
de calcul al <strong>valorilor</strong> <strong>proprii</strong> (vezi secţiunile precedente). De asemenea, rezultă<br />
că o eventuală ameliorare a condiţionării spectrului de valori al unei matrice nu<br />
este po<strong>si</strong>bilă decât prin recurgerea la transformări de asemănare neunitare, care să<br />
realizeze o ”apropiere” a matricei iniţiale de o matrice normală. Întrucât o matrice<br />
normală este caracterizată, printre altele, de faptul că este perfect echilibrată, i.e.<br />
are normele euclidiene ale liniilor şi coloanelorde acelaşi indice egale, procedurile de<br />
ameliorare a condiţionării spectrului unei matrice urmăresc o echilibrare a acesteia,<br />
aşa cum s-a prezentat în detaliu în secţiunea 4.4.<br />
B. Condiţionarea <strong>vectorilor</strong> <strong>proprii</strong> şi a subspaţiilor invariante<br />
La fel ca şi în cazul <strong>valorilor</strong> <strong>proprii</strong>, din motive de <strong>si</strong>mplitate, ne vom mărgini la<br />
analiza condiţionării <strong>vectorilor</strong> <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong> <strong>si</strong>mple. De asemenea,<br />
precizăm de la început că subspaţiile invariante generate de vectori <strong>proprii</strong> rău<br />
condiţionaţipotaveaocondiţionaremult maibună. Acestaşiesteunuldin motivele<br />
principale pentru care în practica numerică nu se recomandă, în general, calculul<br />
explicit al <strong>vectorilor</strong> <strong>proprii</strong>, subspaţiile invariante de interes putând fi generate<br />
mult mai fiabil, de exemplu, de vectorii Schur.<br />
Fie matricea A ∈ IC n×n cu valorile <strong>proprii</strong> distincte λ k şi vectorii <strong>proprii</strong> asociaţi,<br />
de normă euclidiană unitară, x k , k = 1 : n. Con<strong>si</strong>derăm matricea perturbată
4.10. CONDIŢIONARE 351<br />
F = A+E, cu E = ǫG, ‖G‖ = 1, şi λ k (ǫ), x k (ǫ) (cu ‖x k ‖ = 1) valorile şi vectorii<br />
<strong>proprii</strong> ai matricei perturbate, definiţi ca în (4.326). Adaptând notaţiile la noul<br />
context, relaţia (4.329) se poate scrie sub forma<br />
Gx k +Az (k)<br />
1 = α (k)<br />
1 x k +λ k z (k)<br />
1 , unde α(k) 1 = dλ k(ǫ)<br />
dǫ ∣ , z (k)<br />
1 = dx k(ǫ)<br />
ǫ=0<br />
dǫ ∣ .<br />
ǫ=0<br />
(4.347)<br />
Întrucât, în ipotezele acceptate, vectorii <strong>proprii</strong> x k , k = 1 : n, formează o bază<br />
a spaţiului IC n , putem scrie z (k)<br />
1 = ∑ n<br />
i=1 γ(k) i x i , relaţie care, introdusă în (4.347),<br />
conduce la<br />
n∑<br />
i=1<br />
i≠k<br />
γ (k)<br />
i (λ k −λ i )x i = (G−α k I n )x k . (4.348)<br />
Înmulţind la stânga relaţia (4.347) cu y H i , unde y i este vectorul propriu la stânga<br />
asociat valorii <strong>proprii</strong> λ i , şi ţinând seama de faptul că y H j x i = 0 pentru j ≠ i şi<br />
y H i x i ≠ 0 (v. exerciţiile 4.8 şi 4.9) obţinem<br />
γ (k)<br />
i =<br />
yi HGx k<br />
(λ k −λ i )yi Hx , i = 1 : n, i ≠ k. (4.349)<br />
i<br />
Prinurmare,dezvoltareaînserie(4.326)conducelaurmătoareaevaluareainfluenţei<br />
perturbaţiei asupra vectorului propriu x k :<br />
n∑ yi H x k (ǫ) = x k +ǫ<br />
Gx k<br />
(λ k −λ i )yi Hx x i +O(ǫ 2 ). (4.350)<br />
i<br />
i=1<br />
i≠k<br />
În sensul celor precizate în preambulul acestei secţiuni, putem con<strong>si</strong>dera<br />
n∑ yi H κ xk = ‖<br />
Gx k<br />
(λ k −λ i )yi Hx x i ‖ (4.351)<br />
i<br />
i=1<br />
i≠k<br />
drept număr de condiţionare al vectorului propriu x k . Relaţia (4.351) arată că<br />
sen<strong>si</strong>bilitatea unui vector propriu este dependentă esenţial atât de sen<strong>si</strong>bilităţile<br />
tuturor <strong>valorilor</strong> <strong>proprii</strong> cât şi de distanţa (”separarea”) valorii <strong>proprii</strong> asociate faţă<br />
de celelalte valori <strong>proprii</strong>.<br />
Exemplul [ 4.10]<br />
Reluăm matricea din exemplul precedent, respectiv con<strong>si</strong>derăm<br />
λ1 β<br />
A = ∈ IR 2×2 cu λ<br />
0 λ 1 ≠ λ 2 şi notăm δ = λ 1 − λ 2 . Vectorii <strong>proprii</strong>, de<br />
2<br />
normă unitară, au expre<strong>si</strong>ile (făcând abstracţie de semn)<br />
[ ] [ ] [ ] [ ]<br />
1 1 β 1 δ 0<br />
x 1 = , x<br />
0 2 = √ , y<br />
β2 +δ 2 −δ 1 = √ , y<br />
β2 +δ 2 β 2 = .<br />
1<br />
Prin urmare, relaţiile (4.351) se scriu în acest caz sub forma<br />
κ x1 = ‖ yT 2 Gx 1<br />
δy T 2 x 2<br />
x 2 ‖, κ x2 = ‖ yT 1 Gx 2<br />
δy1 Tx x 1 ‖.<br />
1
352 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
[ ] 1.01 0.01<br />
În cazul numeric A = , avem κ<br />
0 1<br />
λ1 = κ λ2 = √ 2, i.e. ambele<br />
valori <strong>proprii</strong> sunt foarte bine condiţionate. Vectorii <strong>proprii</strong> normaţi ai matricei<br />
neperturbate sunt<br />
[ ] 1<br />
x 1 = , x<br />
0 2 = 1 [ √ ] [ ] 2<br />
2 − √ 0.70710<br />
≈ .<br />
2 −0.70710<br />
[ ] 1.01 0.01<br />
Valorile <strong>proprii</strong> ale matricei perturbate F = A+ǫG =<br />
10 −3 , unde ǫ =<br />
[ ]<br />
1<br />
0 0<br />
= 10 −3 şi G = (cu ‖G‖ = 1), sunt<br />
1 0<br />
ˆλ 1 ≈ 1.0109 şi ˆλ 2 ≈ 0.99908, i.e.<br />
cu perturbări de ordinul de mărime al lui ǫ. În schimb, vectorii <strong>proprii</strong> normaţi ai<br />
matricei perturbate sunt<br />
ˆx 1 = x 1 (10 −3 ) ≈<br />
[ 0.995830<br />
0.091226<br />
]<br />
[<br />
, ˆx 2 = x 2 (10 −3 ) ≈<br />
0.67549<br />
−0.73737<br />
Se observă influenţa mult mai puternică a perturbaţiei asupra <strong>vectorilor</strong> <strong>proprii</strong><br />
decât asupra <strong>valorilor</strong> <strong>proprii</strong>. De exemplu, ˆx 2 are un element fără nici o cifră<br />
zecimală corectă deşi perturbaţia a modificat numai a treia cifră zecimală a unui<br />
element al matricei iniţiale. Aceasta se datoreşte faptului că vectorul propriu x 2<br />
este relativ rău condiţionat întrucât κ x2 = 100/ √ 2.<br />
✸<br />
Exprimarea condiţionării <strong>vectorilor</strong> <strong>proprii</strong> şi, mai general, evaluarea erorilor în<br />
calculul <strong>vectorilor</strong> <strong>proprii</strong> prin expre<strong>si</strong>i de genul ‖ˆx−x‖ nu este întotdeauna semnificativădatorităfaptului<br />
căvectorii<strong>proprii</strong>,chiarnormaţi, nusuntunicdeterminaţi.<br />
De exemplu, dacă ˆx = −x, i.e. ˆx este un vectorpropriu exact, avem‖ˆx−x‖ = 2. De<br />
aceea, este preferabilă aprecierea influenţei perturbaţiilor asupra <strong>vectorilor</strong> <strong>proprii</strong><br />
prin evaluarea diferenţei unghiulare dintre vectorul exact şi cel perturbat, definită<br />
prin<br />
|x Hˆx|<br />
θ(x,ˆx) = arccos<br />
‖x‖·‖ˆx‖ = arccos|xHˆx|, (4.352)<br />
ultima expre<strong>si</strong>e fiind adevărată în cazul utilizării <strong>vectorilor</strong> normaţi ‖x‖ = ‖ˆx‖ = 1.<br />
Prin definiţie, unghiul θ(x,ˆx), introdus în relaţia (4.352), este unghiul ascuţit dintre<br />
direcţiile <strong>vectorilor</strong> x şi ˆx.<br />
Această abordare poate fi extinsă la exprimarea condiţionării subspaţiilor invariante.<br />
Fie două subspaţii U,V ⊂ IC n . Definim diferenţa unghiulară sau unghiul<br />
ascuţit dintre subspaţiile U şi V prin<br />
θ(U,V) = max<br />
u∈U<br />
u≠0<br />
]<br />
.<br />
minθ(u,v). (4.353)<br />
v∈V<br />
v≠0<br />
Evident, θ(U,V) = θ(V,U). Relaţia de definiţie (4.353) nu permite calculul unghiului<br />
dintre două subspaţii dar mijloace pentru a face acest lucru există 58 . Fiind dată<br />
o matrice A şi λ I ⊂ λ(A) un set de valori <strong>proprii</strong> ale acesteia, prin condiţionarea<br />
58 Orelaţiecareexprimă unghiuldintre două subspaţiişigeneralizează expre<strong>si</strong>a (4.352)aunghiu-
4.10. CONDIŢIONARE 353<br />
subspaţiului A-invariant U asociat setului λ I vom înţelege variaţia unghiulară (sau<br />
o margine superioară a acesteia) a subspaţiului U raportată la nivelul perturbaţiilor<br />
în elementele matricei A.<br />
Condiţionarea subspaţiilor invariante este determinată în mod deci<strong>si</strong>v de localizarea<br />
<strong>valorilor</strong> <strong>proprii</strong> asociate. Este însă po<strong>si</strong>bil ca un subspaţiu generat de<br />
vectori <strong>proprii</strong> rău condiţionaţi să aibă o condiţionare foarte bună dacă grupul<br />
corespunzător de valori <strong>proprii</strong> este bine separat de restul <strong>valorilor</strong> <strong>proprii</strong>.<br />
Pentru a aborda constructiv această problemă introducem câteva noţiuni noi.<br />
Vom defini mai întâi separarea dintre spectrele a două matrice A ∈ IC m×m şi B ∈<br />
∈ IC n×n . În acest scop, fie aplicaţia liniară L : ICm×n → IC m×n definită de L(X) =<br />
= AX−XB. Distanţa (sau separarea) dintre spectrelematricelorAşi B se măsoară<br />
prin scalarul<br />
sep(A,B) def ‖L(X)‖ F<br />
= min<br />
X≠0 ‖X‖ F<br />
‖AX −XB‖ F<br />
= min . (4.354)<br />
X≠0 ‖X‖ F<br />
Întrucât cadrul propus al lucrării nu ne oferă mijloacele necesare prezentării pe larg<br />
a proprietăţilor parametruluide separaresep 59 , vom sugerasemnificaţia sa printr-o<br />
particularizare. Fie B = µ ∈ IC o matrice 1×1 şi A o matrice normală, i.e. unitar<br />
diagonalizabilă (v. teorema 4.1). Atunci, Q H AQ = Λ = diag(λ 1 ,λ 2 ,...,λ m ) cu Q<br />
o matrice unitară. Avem<br />
‖(A−µI n )x‖ F<br />
sep(A,B) = min<br />
x≠0 ‖x‖ F<br />
= min<br />
‖x‖=1 ‖(A−µI n)x‖ =<br />
= min<br />
‖z‖=1 ‖(Λ−µI n)z‖ = min<br />
i=1:m |λ i −µ|,<br />
i.e. sep(A,B) este efectiv o distanţă dintre µ şi spectrul matricei A. În acest<br />
context, dacă B este o matrice de ordinul n şi λ(B) = {µ 1 ,µ 2 ,...,µ n } definim<br />
distanţa absolută dintre spectrele matricelor A şi B prin<br />
gap(A,B) def<br />
= min<br />
i=1:m<br />
j=1:n<br />
lui dintre doi vectori (sau două subspaţii unidimen<strong>si</strong>onale) este<br />
θ(U,V) = arccosσ min (U H V),<br />
|λ i −µ j | (4.355)<br />
unde σ min (·) este valoarea <strong>si</strong>ngulară minimă (v. cap. 5) a matricei argument, U este o matrice<br />
ale cărei coloane formează o bază ortogonală a subspaţiului U şi V este o matrice ale cărei coloane<br />
formează o bază ortogonală a subspaţiului V. O astfel de abordare permite introducerea conceptului<br />
de distanţă dintre subspaţii liniare prin dist(U,V) = √ 1−σ 2 min (UH V) = <strong>si</strong>nθ(U,V), concept<br />
util unei tratări cantitative a condiţionării subspaţiilor invariante. Pentru detalii recomandăm<br />
consultarea referinţei [VI].<br />
59 O exprimare po<strong>si</strong>bilă a separării matricelor A şi B, care permite calculul ei cel puţin în<br />
principiu, este<br />
sep(A,B) = σ min (I n ⊗A−B T ⊗I m),<br />
unde σ min (·) este valoarea <strong>si</strong>ngulară minimă (v. cap. 5) a matricei argument, iar Z = X ⊗Y este<br />
produsul Kronecker al matricelor X şi Y, i.e. matricea bloc [Z ij ] = [x ij Y].
354 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
şi distanţa relativă prin<br />
gaprel(A,B) def |λ i −µ j |<br />
= min<br />
i=1:m |λ i +µ j | . (4.356)<br />
j=1:n<br />
Proprietatea evidenţiată în cazul particular de mai sus se generalizează în mod<br />
naturalşijustificăutilizareaparametruluisep(A,B)camăsurăaseparăriispectrelor<br />
matricelor A şi B. În cazul general se pot face următoarele afirmaţii:<br />
• sep(A,B) = 0 dacă şi numai dacă matricele A şi B au cel puţin o valoare<br />
proprie comună;<br />
• sep(A,B) este ”mică” dacă şi numai dacă există o perturbare ”mică” a uneia<br />
dintrematricecarefacecaceledouămatricesăaibecel puţin ovaloareproprie<br />
comună;<br />
• dacămatriceleAşiB sunthermitice(încazulreal,<strong>si</strong>metrice),atuncisepararea<br />
coincide cu distanţa dintre spectre, i.e. sep(A,B) = gap(A,B);<br />
• dacă matricele A şi B nu sunt hermitice (în cazul real, <strong>si</strong>metrice), atunci<br />
sep(A,B) < gap(A,B) şi chiar poate fi mult inferioară lui gap(A,B);<br />
În pachetele profe<strong>si</strong>onale de calcul numeric există proceduri de estimare rapidă 60<br />
a separării spectrelor.<br />
Revenind la problema condiţionării <strong>vectorilor</strong> <strong>proprii</strong> ai unei matrice A ∈ IC n×n<br />
şi a subspaţiilor sale invariante, precizăm că, la fel ca în cazul <strong>valorilor</strong> <strong>proprii</strong>,<br />
aceasta nu este afectată de transformări unitare de asemănare. Prin urmare, fără<br />
a reduce generalitatea, putem con<strong>si</strong>dera matricea iniţială direct în formă Schur,<br />
eventual ordonată în mod convenabil. Fie, aşadar, mulţimea de indici I ∈ 1:n şi<br />
setul λ I ⊂ λ(A) al <strong>valorilor</strong> <strong>proprii</strong> de interes. Con<strong>si</strong>derăm matricea<br />
[ ]<br />
S = Q H S11 S<br />
AQ = 12<br />
∈ IC n×n , cu S<br />
0 S 11 ∈ IC q×q , λ(S 11 ) = λ I (4.357)<br />
22<br />
şi X I = ImQ(:,1 : q) subspaţiul A-invariant asociat setului de valori <strong>proprii</strong> λ I .<br />
Vom nota separarea spectrelor matricelor S 11 şi S 22 cu<br />
sep(S 11 ,S 22 ) not<br />
= sep I .<br />
Condiţionarea subspaţiului invariant X I , i.e. variaţia unghiulară a acestuia raportată<br />
la nivelul perturbaţiilor în matricea iniţială, se poate aprecia prin numărul<br />
de condiţionare<br />
def<br />
κ XI = 1 . (4.358)<br />
sep I<br />
60 Variantele rapide se obţin de obicei prin utilizarea unor norme matriceale care se calculează<br />
mai uşor (cum sunt ‖ · ‖ 1 sau ‖ ·‖ ∞). În acest fel se obţin estimări care diferă de valoarea reală<br />
printr-un factor cel mult egal cu √ mn, perfect acceptabil în practica numerică.
4.10. CONDIŢIONARE 355<br />
În particular, dacă I conţine un <strong>si</strong>ngur element, i.e. I = {i} numărul<br />
κ Xi<br />
def<br />
= 1<br />
sep i<br />
(4.359)<br />
exprimă condiţionarea vectorului propriu asociat valorii <strong>proprii</strong> λ i a matricei A.<br />
Pentru detalii recomandăm consultarea referinţelor bibliografice [IV], [VI], [VIII].<br />
4.10.2 Condiţionarea <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong><br />
pentru matrice hermitice<br />
A. Condiţionarea <strong>valorilor</strong> <strong>proprii</strong><br />
De<strong>si</strong>gur, toate dezvoltările privitoare la condiţionarea <strong>valorilor</strong> <strong>proprii</strong> pentru matricele<br />
nehermitice rămân valabile şi pentru matricele hermitice, iar în cazul real,<br />
pentru matricele <strong>si</strong>metrice. Pe de altă parte matricele hermitice 61 prezintă numeroase<br />
particularităţi interesante şi din acest punct de vedere.<br />
În primul rând, conform teoremei 4.2, o matrice A ∈ IC n×n hermitică este unitar<br />
diagonalizabilă şi are spectrul real, i.e. există o matrice unitară Q ∈ IC n×n astfel<br />
încât Q H AQ = Λ = diag(λ 1 ,λ 2 ,...,λ n ) ∈ IR n×n . Rezultă că vectorul propriu<br />
x i = Q(:,i), de normă euclidiană unitară, satisface <strong>si</strong>multan relaţia x H i A = λ ix H i ,<br />
i.e. este şi vector propriu la stânga asociat aceleiaşi valori <strong>proprii</strong>. Rezultă că<br />
numerele de condiţionare ale <strong>valorilor</strong> <strong>proprii</strong> λ i , definite de (4.331), sunt<br />
κ λi = 1 = 1<br />
s λi |x H i x = 1, i = 1 : n. (4.360)<br />
i|<br />
Prin urmare, valorile <strong>proprii</strong> ale matricelor hermitice (în cazul real, <strong>si</strong>metrice) sunt<br />
perfect condiţionate, variaţiile (absolute) ale <strong>valorilor</strong> <strong>proprii</strong> induse de perturbaţii<br />
în matricea iniţială nedepăşind nivelul acestor perturbaţii.<br />
[ ] 1.000 0.900<br />
Exemplul 4.11 Fie matricea <strong>si</strong>metrică A = ∈ IR 2×2 cu valorile<br />
<strong>proprii</strong> exacte λ 1 = 1.9[ şi λ 2 = 0.1. Valorile ] <strong>proprii</strong> ale matricelor [ <strong>si</strong>metrice ]<br />
1.001 0.900<br />
1.000 0.901<br />
0.900 1.000<br />
perturbate F 1 = A+ǫG 1 = , F<br />
0.900 1.001 2 = A+ǫG 2 =<br />
[ ]<br />
0.901 1.000<br />
1.001 0.900<br />
şi F 3 = A+ǫG 3 = , unde, de fiecare dată perturbaţiile sunt <strong>si</strong>metrice,<br />
ǫ = 10 −3 şi ‖G i ‖ = 1, sunt λ(F 1 ) = {1.901,0.101}, λ(F 2 ) = {1.901,0.101},<br />
0.900 1.000<br />
λ(F 3 ) = {1.9005,0.1005}, în toate cazurile variaţiile absolute ale <strong>valorilor</strong> <strong>proprii</strong><br />
nedepăşind valoarea lui ǫ. În schimb, variaţiile relative ale valorii <strong>proprii</strong> mai mici<br />
sunt de aproximativ 20 de ori (i.e raportul celor două valori <strong>proprii</strong>) mai mari decât<br />
variaţiile relative ale valorii <strong>proprii</strong> mai mari.<br />
Condiţionarea excelentă a <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice <strong>si</strong>metrice se manifestă<br />
şi la perturbaţii ne<strong>si</strong>metrice (deşi nu se mai poate garanta [ că matricele ] perturbate<br />
au un spectru real). Astfel pentru F 4 = A+ǫG 4 = avem 1.000 0.901<br />
0.900 1.000<br />
λ(F 4 ) = {1.9005,0.0995}.<br />
✸<br />
61 Majoritatea rezultatelor sunt adevărate pentru cazul mai general al matricelor normale.
356 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
Subliniem, în încheierea acestui paragraf, că alte evaluări utile ale efectelor<br />
perturbaţiilor în datele iniţiale sunt consecinţe directe ale teoremelor 4.6 şi 4.7.<br />
B. Condiţionarea <strong>vectorilor</strong> <strong>proprii</strong> şi a subspaţiilor invariante<br />
Deşi valorile <strong>proprii</strong> ale matricelor hermitice sunt perfect condiţionate nu acelaşi<br />
lucru se poate spune despre vectorii <strong>proprii</strong> şi subspaţiile invariante, a căror condiţionare<br />
este dependentă, la fel ca în cazul general, de separarea seturilor de valori<br />
<strong>proprii</strong> cărora le sunt asociate de restul spectrului matricei date. Singura particularitate,<br />
menţionată deja într-unul din paragrafele precedente, constă în faptul că<br />
parametrii de separare sep i , respectiv sep I , definite în (4.354), coincid cu distanţele<br />
dintre spectre gap i , respectivgap I , definite în (4.355)şi, în consecinţă, se calculează<br />
mult mai uşor.<br />
4.11 Stabilitatea numerică a algoritmului QR<br />
O problemă de calcul numeric rău condiţionată nu poate fi rezolvată bine într-un<br />
mediu de calcul aproximativ. În schimb, o problemă bine condiţionată poate fi<br />
rezolvată prost dacă nu se utilizează un algoritm corespunzător. Contribuţia unor<br />
algoritmi concreţi de calcul la nivelul erorilor din rezultate, un atribut esenţial al<br />
calităţii lor, este apreciată cu ajutorul conceptului de stabilitate numerică şi se face<br />
curent prin evaluarea acestei contribuţii în ”echivalent erori în datele iniţiale” (vezi<br />
cap. 0). În acest sens, amintim că un algoritm este con<strong>si</strong>derat numeric stabil dacă<br />
rezultatele oferite de execuţia sa sunt rezultate exacte ale problemei cu date iniţiale<br />
ce diferăde datele realela nivelulerorilorde reprezentare,eventualmultiplicate cu o<br />
funcţie de dimen<strong>si</strong>unea problemei având o ”creştere modestă”. Garanţia ţinerii sub<br />
control a erorilor de calcul se poate da numai pentru probleme bine condiţionate,<br />
cu restricţia utilizării unor algoritmi numeric stabili.<br />
Pentru probleme de calcul netriviale, cum este calculul <strong>valorilor</strong> şi <strong>vectorilor</strong><br />
<strong>proprii</strong>, analiza erorilorintroduse de calculul în virgulă mobilă este o sarcinăextrem<br />
de dificilă. Mai mult, stabilirea unor margini cât mai exacte ale erorilor (reduse la<br />
nivelul datelor iniţiale) nici nu are o relevanţă majoră. Aşa cum reiese dintr-o<br />
experienţă ce poate fi con<strong>si</strong>derată semnificativă, un obiectiv mai important al analizei<br />
numerice îl constituie se<strong>si</strong>zarea unor <strong>si</strong>tuaţii de instabilitate numerică, <strong>si</strong>tuaţii<br />
în care utilizarea algoritmului respectiv trebuie interzisă. De aceea, în continuare<br />
ne propunem să prezentăm, fără demonstraţii sau justificări matematice profunde,<br />
rezultatele existente în literatura de specialitate referitoare la stabilitatea numerică<br />
a algoritmilor prezentaţi în acest capitol şi, în primul rând, a algoritmului QR.<br />
Rezultatul principal constă în faptul că algoritmul QR de calcul al <strong>valorilor</strong> şi<br />
<strong>vectorilor</strong> <strong>proprii</strong> ai unei matrice n×n reale sau complexe A este numeric stabil şi<br />
acest fapt se datorează esenţial utilizării exclu<strong>si</strong>ve a transformărilor unitare 62 (în<br />
cazul real, ortogonale). Concret, forma Schur (în cazul real, reală sau complexă)<br />
calculată Ŝ este o formă Schur exactă a unei matrice  = A+E foarte apropiate<br />
62 Procedura de echilibrare, <strong>si</strong>ngura care nu utilizează transformări unitare, a fost astfel concepută<br />
încât toate calculele sunt exacte, deci nu apar probleme de stabilitate.
4.11. STABILITATE NUMERICĂ 357<br />
de matricea iniţială, i.e.<br />
Ŝ = Q H (A+E)Q, (4.361)<br />
unde Q este o matrice unitară şi E o matrice a erorilorraportatela datele de intrare<br />
ale algoritmului satisfăcând condiţia<br />
‖E‖ ≤ p(n)‖A‖ε M , (4.362)<br />
cu p(n) o funcţie de ordinul matricei, cu o creştere modestă 63 .<br />
Dacă se acumulează transformările, atunci matricea de transformare calculată<br />
ˆQ este aproape unitară în sensul că<br />
ˆQ H ˆQ = In +E, cu ‖E‖ ≤ p(n)‖A‖ε M . (4.363)<br />
Prin urmare, valorile <strong>proprii</strong> calculate cu algoritmul QR, ca şi vectorii <strong>proprii</strong><br />
calculaţi sau subspaţiile invariante calculate sunt valori <strong>proprii</strong> exacte, vectori<br />
<strong>proprii</strong> exacţi sau subspaţii invariante exacte ale unor matrice foarte apropiate<br />
de matricea dată. Această înseamnă că nivelul erorilor în rezultate va fi redus<br />
dacă problema concretă respectivă este bine condiţionată, respectiv poate fi important<br />
în cazul unei condiţionări necorespunzătoare. Aşa cum s-a menţionat, pentru<br />
aprecierea erorilor din rezultate, pachetele profe<strong>si</strong>onale de programe permit estimarea<br />
numerelor de condiţionare şi, pe această bază estimarea erorilor conform<br />
celor arătate în secţiunea precedentă. Con<strong>si</strong>derăm util să prezentăm în finalul acestei<br />
secţiuni astfel de estimări ale erorilor de calcul al <strong>valorilor</strong> <strong>proprii</strong>, <strong>vectorilor</strong><br />
<strong>proprii</strong> şi subspaţiilor invariante cu algoritmii propuşi în capitolul de faţă. Vom<br />
utiliza notaţia consacrată cu accentˆpentru valorile calculate.<br />
Matrice generale (nehermitice)<br />
• Valori <strong>proprii</strong>:<br />
• Vectori <strong>proprii</strong>:<br />
• Subspaţii invariante:<br />
|ˆλ i −λ i | ≤ κ λi p(n)‖A‖ε M . (4.364)<br />
θ(ˆx i ,x i ) ≤ p(n)‖A‖ Fε M<br />
sep i<br />
. (4.365)<br />
θ(ŜI,S I ) ≤ p(n)‖A‖ Fε M<br />
sep I<br />
. (4.366)<br />
Matrice hermitice (în cazul real, <strong>si</strong>metrice)<br />
• Valori <strong>proprii</strong>:<br />
|ˆλ i −λ i | ≤ κ λi p(n)‖A‖ε M . (4.367)<br />
63 Practic pentru toţi algoritmii prezentaţi în acest capitol, p(n) este o funcţie polinomială de un<br />
grad ”modest” (1, 2 sau, foarte rar, 3) de parametri ce definesc dimen<strong>si</strong>unea problemei. Expre<strong>si</strong>ile<br />
existente, la un moment istoric dat, pentru p(n) sunt, în general, evaluări pe<strong>si</strong>miste şi cunoaşterea<br />
exactă a acestor expre<strong>si</strong>i este lip<strong>si</strong>tă de semnificaţie pentru practica numerică. În [XV] se afirmă<br />
că o apreciere de genul p(n) < 10n este adevărată în majoritatea <strong>si</strong>tuaţiilor practice pentru care<br />
se foloseşte formula de evaluare ”funcţie cu o creştere modestă”.
358 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
• Vectori <strong>proprii</strong>:<br />
• Subspaţii invariante:<br />
θ(ˆx i ,x i ) ≤ p(n)‖A‖ Fε M<br />
gap i<br />
. (4.368)<br />
θ(ŜI,S I ) ≤ p(n)‖A‖ Fε M<br />
gap I<br />
. (4.369)<br />
Pentru detalii recomandăm consultarea referinţelor bibliografice [XI], [XII], [XV].<br />
4.12 Rutine LAPACK şi MATLAB<br />
LAPACK. <strong>Calculul</strong> <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> ai unei matrice A este efectuat<br />
în LAPACK de câteva rutine driver, diferenţiate de tipul matricei (generală sau<br />
<strong>si</strong>metrică) şi de gradul de detaliere a rezultatelor.<br />
Pentru matrice generale există două categorii de rutine driver.<br />
1. Rutina xGEES calculează forma Schur a matricei A şi eventual vectorii Schur,<br />
folo<strong>si</strong>ndalgoritmulQR. FormaSchurpoate fi ordonată, însensul căosubmulţime<br />
a <strong>valorilor</strong> <strong>proprii</strong>, aleasă de utilizator, se va afla în colţul stânga-sus al<br />
formei Schur (ca în schema FSC ORD p ).<br />
Driverul expert xGEESX calculează în plus numerele de condiţie ale <strong>valorilor</strong><br />
<strong>proprii</strong>.<br />
2. Rutina xGEEV calculează valorile şi eventual vectorii <strong>proprii</strong> ai matricei A.<br />
Rutina expert xGEEVX poate efectua suplimentar şi scalarea matricei (ca în<br />
algoritmii din secţiunea 4.7) sau calcula numerele de condiţie ale <strong>valorilor</strong><br />
<strong>proprii</strong>.<br />
Pentru matricele <strong>si</strong>metrice, driverul <strong>si</strong>mplu xyyEV (unde yy este SY, HE, SP, HP,<br />
SB, HB, ST; ultima notaţie este pentru matrice <strong>si</strong>metrice tridiagonale) calculează<br />
valorile şi, eventual, vectorii <strong>proprii</strong>, utilizând algoritmul QR <strong>si</strong>metric.<br />
Rutina expert xyyEVX poate calcula şi toate sau numai o submulţime a <strong>valorilor</strong><br />
<strong>proprii</strong> şi, opţional, vectorii <strong>proprii</strong> corespunzători.<br />
Rutinele de calcul sunt mult mai numeroase, de aceea ne vom mărgini la<br />
prezentarea celor mai importante.<br />
Pentru matrice generale, diversele faze ale calculului sunt implementate astfel:<br />
• xGEHRD realizează reducerea unei matrice oarecare A la forma Hessenberg<br />
H prin transformări de asemănare ortogonale (ca în algoritmul HQc din<br />
secţiunea 4.4.1).<br />
• xHSEQR implementează faza iterativă a algoritmului QR, transformând H în<br />
forma Schur, cu acumularea opţională a transformărilor (şi deci obţinerea<br />
<strong>vectorilor</strong> Schur).
4.12. RUTINE LAPACK ŞI MATLAB 359<br />
• vectorii<strong>proprii</strong>aimatriceiAsuntcalculaţifiecurutinaxTREVC,careutilizează<br />
forma Schur (problema este deci de a calcula vectorii <strong>proprii</strong> ai unei matrice<br />
(cva<strong>si</strong>-)triunghiulare), fie cu rutina xHSEIN, care utilizează forma Hessenberg<br />
şimetodaputeriiinverse,foarteeficientăcândvalorile<strong>proprii</strong>suntdisponibile,<br />
dar care funcţionează şi fără ca acestea să fi fost calculate.<br />
Alte rutine utile sunt următoarele:<br />
• xGEBALrealizeazăscalarea(echilibrarea)matriceiA; seutilizeazăînconjuncţie<br />
cu rutina complementarăxGEBAK,care reface vectorii <strong>proprii</strong> ai matricei A din<br />
cei ai matricei scalate (evident, valorile <strong>proprii</strong> sunt identice).<br />
• xTRSEN ordonează forma Schur prin aducerea în colţul stânga-sus a unei<br />
submulţimi de valori <strong>proprii</strong> descrise de utilizator.<br />
• xTREXC aduce o <strong>si</strong>ngură valoare proprie în poziţia dorită (această rutină trebuie<br />
apelată repetat pentru a realiza o permutare completă, ca în algoritmul<br />
FSR ORD).<br />
• xTRSYL rezolvă ecuaţia Sylvester cva<strong>si</strong>-triunghiulară.<br />
• xTRSNA calculează numerele de condiţie ale <strong>valorilor</strong> <strong>proprii</strong>.<br />
Pentru matrice <strong>si</strong>metrice, etapele de calcul sunt implementate de<br />
• xyyTRDefectuează reducerea unei matrice <strong>si</strong>metrice (hermitice) la formă tridiagonală<br />
reală, prin transformări de asemănare ortogonale.<br />
• xSTEQR calculează valorile şi, opţional, vectorii <strong>proprii</strong> ai unei matrice tridiagonale,<br />
implementând faza iterativă a algoritmului QR <strong>si</strong>metric. Există încă<br />
alte câtevarutine cu aceeaşifuncţionalitate, darutilizând algoritmidiferiţi; de<br />
exemplu xSTEBZ implementează metoda bisecţiei (vezi algoritmul BISECT).<br />
• xSTEIN calculează vectorii <strong>proprii</strong> (eventual numai unii dintre aceştia) ai unei<br />
matrice tridiagonale, utilizând metoda puterii inverse.<br />
MATLAB. Valorile şi vectorii <strong>proprii</strong> ai unei matrice generale A pot fi calculate<br />
cu<br />
[V, D] = eig(A)<br />
V fiind matricea <strong>vectorilor</strong> <strong>proprii</strong> (po<strong>si</strong>bil complecşi), iar D o matrice diagonală<br />
conţinând valorile <strong>proprii</strong>. Apelul <strong>si</strong>mplu eig(A) returnează un vector conţinând<br />
valorile <strong>proprii</strong>. Funcţia eig implementează algoritmul QR.<br />
Reducerea la formă Hessenberg a matricei A se face cu funcţia hess, care acumulează<br />
opţional transformările.<br />
Forma Schur a matricei A şi, opţional, vectorii Schur, se obţin cu funcţia schur.<br />
Echilibrarea matricei A se realizează cu funcţia balance.
360 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
O funcţie pentru ordonarea formei Schur se găseşte în Control Toolbox 64 .<br />
Aceasta se numeşte schord şi implementează algoritmul FSC ORD, adică permută<br />
complet forma Schur. Funcţia utilizează numai forma Schur complexă, adică<br />
o matrice superior triunghiulară. În cazul real, trebuie apelate funcţiile rsf2csf şi<br />
csf2rsf pentru transformarea ortogonală a unei forme Schur reale într-una complexă<br />
(înainte de ordonare) şi invers (după aceea).<br />
Nu există nici o funcţie specială pentru matrice <strong>si</strong>metrice.<br />
4.13 Probleme<br />
P 4.1 Se con<strong>si</strong>deră date matricele<br />
[<br />
3 −3 2<br />
A = −1 5 −2<br />
−1 3 0<br />
]<br />
, B =<br />
[ −4 0 8<br />
−8 3 9<br />
−4 −1 9<br />
]<br />
.<br />
Folo<strong>si</strong>nd definiţiile, calculaţi valorile <strong>proprii</strong> ale celor douămatrice şi câte unvector propriu<br />
asociat fiecărei valori <strong>proprii</strong>. Sunt cele două matrice diagonalizabile Verificaţi.<br />
P 4.2 În cadrul capitolului, cazul real a fost tratat adesea ca un caz particular al cazului<br />
complex. În acest context, este IR n un subspaţiu liniar al spaţiului IC n Justificaţi<br />
răspunsul.<br />
[ ]<br />
A 0<br />
P 4.3 Fie matricele A ∈ IC m×m , B ∈ IC n×n şi matricea C = , suma directă a<br />
0 B<br />
matricelor A şi B. Demonstraţi că C este diagonalizabilă dacă şi numai dacă A şi B sunt<br />
diagonalizabile.<br />
P 4.4 [ Se con<strong>si</strong>deră ] o matrice A ∈ IR n×n având structura bloc superior triunghiulară<br />
A1 A 12<br />
A = . Dacă matricele A 1 şi A 2 sunt diagonalizabile, este diagonalizabilă şi<br />
0 A 2<br />
matricea A Argumentaţi răspunsul.<br />
P 4.5 Fie matricele A ∈ IC m×n , B ∈ IC n×m . Demonstraţi că λ(AB) ⊆ λ(BA) dacă m ≤ n<br />
şi λ(BA) ⊆ λ(AB) dacă m ≥ n. În cazul, m ≠ n, care dintre valorile <strong>proprii</strong> ale matricei<br />
de ordin mai mare (dintre matricele AB şi BA) nu sunt valori <strong>proprii</strong> ale matricei de ordin<br />
mai mic <br />
P 4.6 Perechea de matrice (A,B) ∈ IC n×n ×IC n×n se numeşte diagonalizabilă (sau, echivalent,<br />
matricele Aşi B se numesc<strong>si</strong>multan diagonalizabile) dacăexistăomatrice ne<strong>si</strong>ngulară<br />
X ∈ IC n×n astfel încât X −1 (A,B)X def<br />
= (X −1 AX,X −1 BX) = (Λ A,Λ B), cu Λ A, Λ B diagonale.<br />
Demonstraţi: a) Dacă A este diagonalizabilă, atunci perechea (A,µI n) este<br />
diagonalizabilă pentru toţi µ ∈ IC. b) Dacă (A,B) este diagonalizabilă, atunci matricele<br />
A şi B comută. c) Presupunem că matricele A şi B sunt diagonalizabile. Atunci A şi B<br />
comută dacă şi numai dacă perechea (A,B) este diagonalizabilă. d) Daţi un exemplu de<br />
două matrice care comută şi care nu sunt <strong>si</strong>multan diagonalizabile.<br />
P 4.7 Dacă matricele A,B ∈ IC n×n comută, atunci au un vector propriu comun.<br />
64 Colecţiile de funcţii MATLAB dedicate unor domenii specializate şi nefăcând parte din setul<br />
de bază al limbajului poartă numele consacrat de toolbox.
4.13. PROBLEME 361<br />
P 4.8 Fie λ 1, λ 2 două valori <strong>proprii</strong> distincte ale unei matrice A ∈ IC n×n şi x 1 un vector<br />
propriu la dreapta asociat lui λ 1, iar y 2 un vector propriu la stânga asociat lui λ 2. Arătaţi<br />
că cei doi vectori sunt ortogonali, i.e. y H 2 x 1 = 0.<br />
P 4.9 Dacăλ ∈ λ(A), este ovaloare proprie<strong>si</strong>mplă aunei matrice A ∈ IC n×n şi x, respectiv<br />
y, sunt vectori <strong>proprii</strong> la dreapta, respectiv la stânga, asociaţi lui λ, atunci y H x ≠ 0. Daţi<br />
un exemplu în care această condiţie nu este satisfăcută dacă λ nu este o valoare proprie<br />
<strong>si</strong>mplă.<br />
P 4.10 Se con<strong>si</strong>deră o matrice A ∈ IC n×n diagonalizabilă. Arătaţi că există vectorii<br />
<strong>proprii</strong> (la dreapta) x i, i = 1 : n, şi vectorii <strong>proprii</strong> la stânga y i, i = 1 : n, astfel încât<br />
A = ∑ n<br />
i=1 λixiyH i .<br />
P 4.11 Să se demostreze lema 4.4.<br />
P 4.12 Fie date o matrice A ∈ IC n×n şi un polinom p(λ) = λ n +p 1λ n−1 +...+p n−1λ+p n.<br />
Con<strong>si</strong>derăm matricea<br />
P def<br />
= p(A) = A n +p 1A n−1 +...+p n−1A+p nI n.<br />
Să se arate că dacă λ i ∈ λ(A), atunci p(λ i) ∈ λ(P) şi dacă x i este un vector propriu al<br />
matricei A, asociat valorii <strong>proprii</strong> λ i, atunci el este şi vector propriu al matricei P asociat<br />
valorii <strong>proprii</strong> p(λ i).<br />
P 4.13 Fie date o matrice A ∈ IC n×n şi o funcţie raţională r(λ) = p(λ) . Definim matricele<br />
q(λ)<br />
P def<br />
= p(A), Q def<br />
= q(A) şi, dacă Q este ne<strong>si</strong>ngulară, R def<br />
= Q −1 P. Arătaţi că dacă λ i ∈ λ(A)<br />
şi x i este un vector propriu al matricei A asociat valorii <strong>proprii</strong> λ i, atunci r(λ i) ∈ λ(R),<br />
iar x i este şi vector propriu al matricei R asociat valorii <strong>proprii</strong> r(λ i).<br />
P 4.14 Fie omatricene<strong>si</strong>ngulară A ∈ IC n×n . Dacă‖·‖este onormămatriceală con<strong>si</strong>stentă,<br />
arătaţi că numărul de condiţionare la inversare κ(A) def<br />
= ‖A‖·‖A −1 ‖ satisface inegalitatea<br />
κ(A) ≥ max(|λi(A)|)<br />
min(|λ i(A)|) .<br />
P 4.15 a) O matrice patrată A se numeşte nilpotentă dacă există un număr natural k<br />
astfel încât A k = 0. Arătaţi că o matrice nilpotentă are toate valorile <strong>proprii</strong> nule. Daţi un<br />
exemplu de matrice nilpotentă nenulă. b) O matrice A ∈ IC n×n se numeşte idempotentă<br />
dacă A 2 = A. Arătaţi că o matrice idempotentă nu poate avea alte valori <strong>proprii</strong> în afară<br />
de 0 şi 1. Daţi un exemplu de matrice idempotentă nenulă şi diferită de matricea unitate.<br />
P 4.16 a) Câţi vectori <strong>proprii</strong> (la dreapta) liniar independenţi poate avea o celulă Jordan<br />
⎡ ⎤<br />
λ 1<br />
λ 1<br />
J λ = ⎢<br />
⎣ .<br />
⎥ .. 1<br />
⎦<br />
de ordinul n Dar la stânga b) Arătaţi că o celulă Jordan<br />
λ<br />
de ordin n ≥ 2 nu poate fi diagonalizată prin transformări de asemănare. c) Calculaţi<br />
expre<strong>si</strong>a analitică a matricei Jλ k unde J λ este o celulă Jordan de ordin n cu elementele<br />
diagonale egale cu λ. Există k ∈ IN ∗ astfel încât Jλ k să fie diagonalizabilă d) Calculaţi<br />
expre<strong>si</strong>a analitică a matricei J −1<br />
λ<br />
, unde λ ≠ 0. Este J−1<br />
λ<br />
diagonalizabilă
362 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
P 4.17 Ce rang (i.e. numărul maxim de linii sau coloane liniar independente)poate avea o<br />
matrice superior Hessenberg H ∈ IC n×n ireductibilă (i.e. cu toate elementele subdiagonale<br />
nenule) Se poate diagonaliza o matrice superior Hessenberg ireductibilă cu valori <strong>proprii</strong><br />
multiple Justificaţi răspunsul.<br />
P 4.18 Fie o matrice A ∈ IC n×n de forma<br />
⎡<br />
−p 1 −p 2 ··· −p n−1 −p n<br />
1 0 ··· 0 0<br />
C =<br />
0 1 ··· 0 0<br />
⎢<br />
⎣<br />
.<br />
.<br />
. ..<br />
. ..<br />
. ..<br />
0 0 ··· 1 0<br />
⎤<br />
⎥.<br />
⎦<br />
a) Să se arate că polinomul caracteristic al matricei A este<br />
p(λ) = λ n +p 1λ n−1 +...+p n−1λ+p n.<br />
b) Să se arate că matricea C este ne<strong>si</strong>ngulară dacă şi numai dacă p n ≠ 0 şi în această<br />
<strong>si</strong>tuaţie să se calculeze matricea C −1 . Care este polinomul caracteristic al matricei C −1 <br />
c) Presupunând că rădăcinile λ i, i = 1 : n, ale polinomului p(λ), sunt cunoscute, să se<br />
calculeze câte un set de vectori <strong>proprii</strong> pentru matricele C şi C T . d) Matricile C şi C T<br />
poartă numele de matrice companion ale polinomului p(λ). Puteţi preciza şi alte matrice<br />
care să justifice această denumire<br />
P 4.19 a) Calculaţi valorile şi vectorii <strong>proprii</strong> pentru o matrice de rotaţie. b) Calculaţi<br />
valorile şi vectorii <strong>proprii</strong> pentru un reflector elementar.<br />
P 4.20 Demonstraţi că o matrice normală triunghiulară este diagonală. În particular, o<br />
matrice hermitică (<strong>si</strong>metrică) sau unitară (ortogonală) triunghiulară este diagonală.<br />
P 4.21 Arătaţi că o matrice [ A ∈]<br />
IR 2×2 este normală dacă şi numai dacă este <strong>si</strong>metrică<br />
α β<br />
sau are structura A = .<br />
−β α<br />
P 4.22 Demonstraţi următorul rezultat important. O matrice reală A ∈ IR n×n este<br />
normală dacă şi numai dacă este ortogonal cva<strong>si</strong>-diagonalizabilă, i.e. există o matrice ortogonală<br />
Q ∈ IR n×n astfel încât Q T AQ = diag(A 1,A 2,...,A p), unde A i sunt [ blocuri reale ]<br />
α i β i<br />
1×1 sau 2×2, cu blocurile 2×2 cu valori <strong>proprii</strong> complexe de forma A i = .<br />
−β i α i<br />
P 4.23 Se con<strong>si</strong>deră o matrice arbitrară A ∈ IC n×n . Demonstraţi următoarele aserţiuni.<br />
a) Matricile F = A H +A, G = A H A, H = AA H sunt hermitice. b) Matricea K = A−A H<br />
este antihermitică. c) Matricea A poate fi descompusă, în mod unic, în suma A = B+C,<br />
unde B este hermitică (numită partea hermitică a lui A), iar C este antihermitică (numită<br />
partea antihermitică a lui A). d) Matricea A poate fi descompusă, în mod unic, în suma<br />
A = S +iT, unde S şi T sunt matrice hermitice.<br />
P 4.24 Fie A,B ∈ IC n×n două matrice hermitice şi C,D ∈ IC n×n două matrice antihermitice.<br />
Demonstraţi următoarele aserţiuni. a) Matricile F = αA + βB, cu α,β ∈ IR,<br />
G = A k , cu k ∈ IN ∗ , K = C 2k , şi, dacă A este ne<strong>si</strong>ngulară, L = A −1 sunt matrice hermitice.<br />
b) Matricile M = αC +βD, cu α,β ∈ IR, N = C 2k+1 şi, dacă C este ne<strong>si</strong>ngulară,<br />
P = C −1 sunt matrice antihermitice.
4.13. PROBLEME 363<br />
P 4.25 Demonstraţi că o matrice A ∈ IC n×n este normală dacă şi numai dacă partea sa<br />
hermitică (vezi problema 4.23) comută cu partea sa antihermitică.<br />
P 4.26 Arătaţi că o matrice A ∈ IC n×n este normală dacă şi numai dacă ‖Ax‖ 2 = ‖A H x‖ 2<br />
pentru toţi x ∈ IC n .<br />
P 4.27 Fie A ∈ IC n×n şi mulţimea de indici I = {i 1,i 2,...,i k }, cu i 1 < i 2 < ... < i k ,<br />
i j ∈ 1 : n. Matricea B = A(I,I) se numeşte submatrice principală a lui A. a) Dacă<br />
matricea A este hermitică (antihermitică), atunci şi B este hermitică (antihermitică).<br />
b) Dacă matricea A este normală, fără a fi hermitică sau antihermitică, este B normală <br />
P 4.28 Fie A ∈ IC n×n o matrice hermitică şi x ∈ IC n un vector nenul, arbitrar, fixat.<br />
Notăm µ = xH Ax<br />
câtul Rayleigh asociat lui x. Arătaţi că fiecare din intervalele (−∞,µ]<br />
x H x<br />
şi [µ,∞) conţin cel puţin o valoare proprie a matricei A.<br />
P 4.29 Fie o matrice hermitică A ∈ IC n×n . Se numeşte p-secţiune a lui A o matrice<br />
(hermitică) B = Q H AQ ∈ IC p×p , unde Q ∈ IC n×p este o matrice având coloanele ortogonale<br />
(i.e. satisface condiţia Q H Q = I p). Arătaţi că dacă spectrele λ(A) = {λ 1,λ 2,...,λ n} şi<br />
λ(B) = {µ 1,µ 2,...,µ p} sunt ordonate descrescător, atunci λ k ≥ µ k , k = 1 : p, precum şi<br />
µ p−k+1 ≥ λ n−k+1 , k = 1 : p.<br />
P 4.30 Fie A ∈ IC n×n o matrice hermitică. Arătaţi că A are o valoare proprie <strong>si</strong>tuată în<br />
intervalul [a 11 −µ,a 11 +µ], unde µ = ‖A(1,2:n)‖ 2.<br />
P 4.31 Daţi două exemple de matrice <strong>si</strong>metrice complexe, din care una să fie normală<br />
şi cealalta nu. Reţineţi din această <strong>si</strong>tuaţie că există o diferenţă esenţială între matricele<br />
<strong>si</strong>metrice reale şi matricele <strong>si</strong>metrice complexe 65 .<br />
P 4.32 Fie A ∈ IC n×n . Arătaţi că pentru orice scalar ǫ > 0 există o normă matriceală<br />
con<strong>si</strong>stentă ‖·‖ (po<strong>si</strong>bil dependentă de A şi ǫ) pe IC n×n astfel încât<br />
unde ρ(A) este raza spectrală a matricei A.<br />
‖A‖ ≤ ρ(A)+ǫ,<br />
P 4.33 O matrice A ∈ IC n×n se numeşte convergentă dacă lim k→∞ A k = 0. Demonstraţi<br />
că o matrice este convergentă dacă şi numai dacă ρ(A) < 1.<br />
P 4.34 Să se determine localizări pentru valorile <strong>proprii</strong> ale matricelor<br />
[ ] [ ]<br />
3 −2 1 0 1 −2<br />
A = 2 −4 0 , B = −1 4 1 , C = A+iB,<br />
−1 1 5 1 1 3<br />
utilizând teorema discurilor lui Gershgorin.<br />
P 4.35 Utilizând teorema discurilor lui Gershgorin, stabiliţi o margine superioară pentru<br />
raza spectrală a unei matrice. Comparaţi acest rezultat cu cel oferit de teorema 4.10.<br />
P 4.36 a) Fie A ∈ IR n×n şi omatrice diagonală de scalare D = diag(δ 1,δ 2,...,δ n), δ i > 0,<br />
i = 1 : n. Stabiliţi localizarea spectrului matricei A aplicând teorema discurilor Gershgorin<br />
matricei scalate B = D −1 AD. Poate scalarea să conducă la o localizare mai bună<br />
65 Pentru proprietăţile matricelor <strong>si</strong>metrice complexe se poate consulta [II].
364 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
b) Fie A ∈ IR 2×2 o matrice cu toate elementele pozitive. Să se determine matricea ˜D =<br />
= diag(˜δ 1,˜δ 2) astfel încât ‖˜D −1 A˜D‖ ∞ = min δ1 ,δ 2 ∈IR +<br />
‖D −1 AD‖ ∞, unde D = diag(δ 1,δ 2).<br />
Ce relaţie există între acest minim şi raza spectrală a matricei A Renunţând [ la condiţia ]<br />
2 2<br />
ca elementele matricei A să fie pozitive, arătaţi că pentru matricea A = avem<br />
−3 4<br />
ρ(A) < min δ1 ,δ 2 ∈IR +<br />
‖D −1 AD‖ ∞.<br />
[ ] −5 −8 8<br />
P 4.37 Se con<strong>si</strong>deră matricea <strong>si</strong>metrică A = −8 7 −16 . Folo<strong>si</strong>nd teorema<br />
8 −16 7<br />
discurilor lui Gershgorin să se extragă maximum de informaţie privind localizarea <strong>valorilor</strong><br />
<strong>proprii</strong> ale matricei A. Puteţi îmbunătăţi localizarea prin scalare<br />
P 4.38 Se spune că o matrice A ∈ IC n×n este (strict) diagonal dominantă dacă |a ii| ≥ r i<br />
(|a ii| > r i) pentru toţi i ∈ 1 : n, unde r i = ∑ n<br />
|a ij| sunt razele discurilor Gershgorin.<br />
a) Demonstraţi că omatrice strict diagonal dominantăeste ne<strong>si</strong>ngulară. b) Dacăomatrice<br />
strict diagonal dominantă are elementele diagonale reale şi pozitive atunci Reλ i(A) > 0<br />
pentru toţi i. c) Dacă A ∈ IC n×n strict diagonal dominantă este hermitică şi a ii > 0,<br />
i = 1 : n, atunci λ i(A) > 0 pentru toţi i.<br />
P 4.39 Demonstraţi inegalităţile<br />
a) |detA| ≤<br />
n∏<br />
i=1( n∑<br />
j=1<br />
|a ij|<br />
)<br />
j=1<br />
j≠i<br />
, b) |detA| ≤<br />
n∏<br />
j=1( n∑<br />
i=1<br />
|a ij|<br />
)<br />
.<br />
P 4.40 (Teorema lui Ostrovski) Fie A ∈ IC n×n . Notăm cu r i = ∑ n<br />
c i = ∑ n<br />
i=1<br />
i≠j<br />
j=1<br />
j≠i<br />
|a ij| şi, respectiv,<br />
|a ij|, razele discurilor Gershgorin pentru matricele A şi, respectiv, A T . De<br />
asemenea, fie α ∈ [0,1] fixat. Atunci λ(A) ⊆ D, unde D este reuniunea discurilor<br />
D =<br />
n⋃<br />
D i,<br />
i=1<br />
D i = { }<br />
z ∈ IC | |z −a ii| ≤ ri α c 1−α<br />
i .<br />
P 4.41 (Teorema lui Brauer) Fie A ∈ IC n×n . Atunci λ(A) ⊆ D, unde D este reuniunea<br />
celor 1 (n−1)n ovaluri Cas<strong>si</strong>ni definite de<br />
2<br />
D =<br />
n⋃<br />
i,j=1<br />
i≠j<br />
O i,<br />
O i = {z ∈ IC | |z −a ii||z −a jj| ≤ r ir j},<br />
unde r i = ∑ n<br />
j=1<br />
j≠i<br />
|a ij|, i = 1 : n, sunt razele discurilor Gershgorin.<br />
P 4.42 Calculaţi forme Schur pentru matricele A =<br />
[<br />
1 −2<br />
2 −3<br />
]<br />
, B =<br />
[<br />
1 1<br />
−1 1<br />
C = A + iB. În cazul matricelor reale determinaţi atât formele Schur reale cât şi cele<br />
complexe.<br />
]<br />
,
4.13. PROBLEME 365<br />
P 4.43 Fie matricea A ∈ IC n×n şi U ∈ IC n×k o matrice cu coloanele ortogonale (i.e.<br />
U H U = I k ). Dacă funcţia f : IC k×k → IR + este definită de f(X) = ‖AU −UX‖ F, arătaţi<br />
că f admite un minim care se atinge pentru X = U H AU. Care este valoarea acestui<br />
minim<br />
P 4.44 Presupunem că matricea A ∈ IC n×n are valorile <strong>proprii</strong> distincte şi că B ∈ IC n×n<br />
comută cu A, i.e. AB = BA. Arătaţi că dacă Q H AQ = S este descompunerea Schur a lui<br />
A, atunci T = Q H BQ este superior triunghiulară.<br />
P 4.45 a) Dat un vector nenul x ∈ IC n , elaboraţi un algoritm de calcul al unui vector<br />
v ∈ IC n astfel încât v H x = 1. b) Presupunem că matricea A ∈ IC n×n are valorile <strong>proprii</strong><br />
λ i, i = 1 : n, iar x i, i = 1 : n, sunt vectori <strong>proprii</strong> asociaţi. Fie un vector v ∈ IC n astfel<br />
încât v H x 1 = 1 şi matricea B = (I n − x 1v H )A. Arătaţi că λ(B) = {0,λ 2,...,λ n}, iar<br />
vectorii x B 1 = x 1, x B i = x i −(v H 1 x i)x 1 formează un set de vectori <strong>proprii</strong> ai matricei B.<br />
P 4.46 a) Fie doi vectori nenuli x,y ∈ IC n astfel încât y H x = 1. Demonstraţi existenţa<br />
şi stabiliţi un mod de calcul al matricelor X,Y ∈ IC n×n care satisfac condiţiile Xe 1 = x,<br />
Ye 1 = y şi Y H X = I n. b) Fie A ∈ IC n×n , λ o valoare proprie <strong>si</strong>mplă a lui A şi x,y vectorii<br />
<strong>proprii</strong> la dreapta, respectiv la stânga, ai lui A asociaţi lui λ. Demonstraţi existenţa şi<br />
stabiliţi un mod [ de calcul ] al matricei X ∈ IC n×n care realizează o deflaţie diagonală, i.e.<br />
λ 0<br />
X −1 AX = . c) Presupunând că dispuneţi de o procedură de calcul al unui<br />
0 B<br />
vector propriu al unei matrice date, având <strong>si</strong>ntaxa x = vp(A), elaboraţi un algoritm de<br />
diagonalizare a unei matrice A ∈ IC n×n <strong>si</strong>mple.<br />
P 4.47 a) Care va fi rezultatul aplicării metodei puterii matricei A =<br />
[ ] 5 8 1<br />
0 1 2 <br />
0 0 2<br />
b) Discutaţi, în raport cu parametrii reali α şi β, rezultatul aplicării metodei puterii<br />
[ ] α 1 1<br />
matricei B = 0 1 β<br />
0 1 1<br />
.<br />
P 4.48 Presupunem căîn locul condiţiei de terminare a iterării din algoritmii 4.1 şi 4.2, de<br />
implementare a metodei puterii şi, respectiv, a metodei puterii inverse, utilizaţi condiţia<br />
ca norma diferenţei dintre vectorii calculaţi la doi paşi consecutivi să devină inferioară<br />
unei toleranţe impuse, i.e.<br />
e k = ‖y (k) −y (k−1) ‖ < tol.<br />
Scrieţi, în limbajul de programare preferat, programe pentru implementarea algoritmilor<br />
menţionaţi şi testaţi-le pe mai multe exemple. Puteţi explica de ce o astfel de condiţie de<br />
trunchiere nu funcţionează întodeauna pentru şirurile de vectori a căror direcţie converge,<br />
totuşi, către o direcţie proprie Con<strong>si</strong>deraţi atât cazul real cât şi cel complex.<br />
P 4.49 Presupunând că dispuneţi de o procedură de calcul al unui vector propriu al unei<br />
matrice A ∈ IC n×n date, procedură având <strong>si</strong>ntaxa x = vp(A), elaboraţi un algoritm de<br />
calcul al unei formei Schur a matricei A. Ce relaţie există între vectorii <strong>proprii</strong> utilizaţi<br />
pentru calculul formei Schur şi cei ai matricei A <br />
P 4.50 Elaboraţi un algoritm pentru reducerea unei matrice A ∈ IR n×n la forma superior<br />
Hessenberg H = TAT −1 , unde T este o secvenţă de transformări elementare stabilizate<br />
M iP i, i = 2 : n−1 (de tipul celor utilizate, de exemplu, la eliminarea gaus<strong>si</strong>ană).
366 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
P 4.51 Presupunem A ∈ IC n×n şi z ∈ IC n date. Elaboraţi un algoritm pentru calculul unei<br />
matrice unitare (în cazul real, ortogonale) Q astfel încât Q H AQ este superior Hessenberg<br />
şi Q H z este coliniar cu vectorul e 1.<br />
P 4.52 Fie H ∈ IR n×n o matrice superior Hessenberg. Scrieţi un algoritm care să testeze<br />
dacă H este în formă Schur reală.<br />
P 4.53 Elaboraţi un algoritm pentru calculul <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> ai matricei<br />
A = I n +uv H , unde u,v ∈ IC n sunt vectori nenuli daţi.<br />
P 4.54 Se con<strong>si</strong>deră dată o pereche (valoare proprie, vector propriu asociat)= (λ,x) reală<br />
a unei matrice H ∈ IR n×n superior Hessenberg. Elaboraţi un algoritm de calcul [ al unei ]<br />
λ f<br />
matrice ortogonale Q astfel încât matricea Q T HQsa aibă structuraQ T T<br />
HQ = ,<br />
0 G<br />
unde matricea G ∈ IR (n−1)×(n−1) este în formă superior Hessenberg.<br />
P 4.55 Fie matricea superior Hessenberg H ∈ IR n×n şi următoarea procedură recurentă<br />
de calcul al matricei succesor H ← H ′ :<br />
1. Se aplică matricei H procedura de triangularizare prin eliminare gaus<strong>si</strong>ană cu pivotare<br />
parţială M n−1P n−1...M 1P 1H = R, unde P k sunt matrice de permutare<br />
elementare, M k matrice inferior triunghiulare elementare, iar R este o matrice superior<br />
triunghiulară.<br />
2. H ← H ′ = RP 1M −1<br />
1 ...P n−11M −1<br />
n−1 ,<br />
care defineşte o iteraţie a algoritmului LR modificat (un precursor al algoritmului QR).<br />
Arătaţi că matricea succesor H ′ a) are o structură superior Hessenberg şi b) este asemenea<br />
cu matricea H.<br />
P 4.56 Se con<strong>si</strong>deră matricea bloc superior triunghiulară<br />
A =<br />
[<br />
A11 A 12 A 13<br />
]<br />
0 A 22 A 23 ,<br />
0 0 A 33<br />
cu A 22 ∈ IR 2×2 având valori <strong>proprii</strong> complexe şi distincte de valorile <strong>proprii</strong> ale matricelor<br />
A 11 şi A 33. Se cere să se calculeze un subspaţiu A-invariant real asociat <strong>valorilor</strong> <strong>proprii</strong><br />
ale matricei A 22, i.e. vectorii liniar independenţi x 1,x 2 ∈ IR n care să formeze o bază a<br />
acestui subspaţiu.<br />
P 4.57 Calculaţi valorile şi vectorii <strong>proprii</strong> pentru matricele <strong>si</strong>metrice A, B şi pentru<br />
matricea hermitică C, unde<br />
A =<br />
[<br />
1 2<br />
2 3<br />
]<br />
, B =<br />
[ 1 2 3<br />
2 4 5<br />
3 5 6<br />
Verificaţi că vectorii <strong>proprii</strong> sunt ortogonali.<br />
]<br />
, C =<br />
[<br />
1 1+i −i<br />
1−i 2 −1−i<br />
i −1+i 3<br />
P 4.58 Fie o matrice hermitică A = A H ∈ IC n×n . Adaptaţi algoritmul TQ pentru<br />
tridiagonalizarea unitară a matricei A astfel încât matricea T = Q H AQ să fie tridiagonală,<br />
<strong>si</strong>metrică şi reală.<br />
]<br />
.
4.13. PROBLEME 367<br />
P 4.59 Adaptaţi algoritmul TQ pentru tridiagonalizarea prin transformări unitare (ortogonale)<br />
de asemănare a unei matrice antihermitice (anti<strong>si</strong>metrice) A ∈ IC n×n (A ∈ IR n×n ).<br />
[ ]<br />
P 4.60 a) Se con<strong>si</strong>deră matricea H ∈ IR 2×2 not α γ<br />
cu valori <strong>proprii</strong> reale şi fie H k =<br />
ǫ β<br />
matricea curentă a şirului QR al matricii H. Utilizând deplasarea µ k = β calculaţi<br />
matricea succesor H k+1 . Ce se poate spune despre convergenţa şirului QR din examinarea<br />
expre<strong>si</strong>ei elementului H k+1 (2,1)<br />
[ ]<br />
b) Se con<strong>si</strong>deră matricea <strong>si</strong>metrică T ∈ IR 2×2 not α ǫ şi fie T k = matricea curentă a<br />
ǫ β<br />
şirului QR <strong>si</strong>metric al matricii T. Utilizând deplasarea µ k = β calculaţi matricea succesor<br />
T k+1 . Ce se poate spune despre convergenţa şirului QR <strong>si</strong>metric din examinarea expre<strong>si</strong>ei<br />
elementelor extradiagonale T k+1 (1,2) = T k+1 (2,1)<br />
[ ]<br />
0 d<br />
P 4.61 a) Con<strong>si</strong>derăm matricea <strong>si</strong>metrică A = , cu d ≠ 0. Calculaţi valorile<br />
d 0<br />
şi vectorii <strong>proprii</strong>[ ai matricei ] A. b) Fie matricea D = diag(d 1,d 2...,d n), unde d i ≠ d j,<br />
0 D<br />
∀i ≠ j, şi B = ∈ IR 2n×2n . Scrieţi un algoritm pentru calculul <strong>valorilor</strong> şi<br />
D 0<br />
<strong>vectorilor</strong> <strong>proprii</strong> ai matricei B.<br />
P 4.62 a) Fie T ∈ IR n×n o matrice tridiagonală, <strong>si</strong>metrică şi pozitiv definită. Scrieţi şi<br />
implementaţi următorul algoritm iterativ:<br />
1. Pentru k = 1,2,...<br />
1. Se calculează factorul Cholesky L al matricei T.<br />
2. T ← T ′ = L T L.<br />
Ce constataţi b) Arătaţi că în cazul n = 2 şi t 11 ≥ t 22 şirul matricelor T calculat de<br />
algoritmul de la punctul a) converge către Λ = diag(λ 1,λ 2), unde {λ 1,λ 2} = λ(T).<br />
P 4.63 a) Se con<strong>si</strong>deră o matrice tridiagonală <strong>si</strong>metrică T ∈ IR n×n . Să se arate că dacă<br />
T are valori <strong>proprii</strong> multiple, atunci T nu poate fi ireductibilă. Mai mult, să se arate că<br />
dacă T are o valoare proprie cu ordinul de multiplicitate k ≥ 2, atunci are cel puţin k−1<br />
elemente subdiagonale (şi, corespunzător, cele <strong>si</strong>metrice supradiagonale) nule. b) Aplicaţi<br />
algoritmul TQ de reducere la forma tridiagonală unei matrice <strong>si</strong>metrice având o valoare<br />
proprie multiplă. Ce constataţi Puteţi da o justificare celor constatate<br />
P 4.64 Fie o matrice <strong>si</strong>metrică A ∈ IR n×n şi o iteraţie Jacobi A ← A ′ = J T AJ, unde<br />
J(p,q,θ) este o rotaţie plană de unghi θ în planul (p,q). Să se arate că, pentru întregii p şi<br />
q fixaţi, rotaţia care anulează elementele A(p,q) şi A(q,p) a<strong>si</strong>gură minimizarea, în raport<br />
cu unghiul θ, a normei Frobenius a matricei elementelor extradiagonale ale matricei A ′ .<br />
[ ]<br />
α γ<br />
P 4.65 a) Fie date A = ∈ IR 2×2 , cu λ(A) = {λ<br />
γ β<br />
1,λ 2}, şi un scalar real δ.<br />
Arătaţi că, dacă δ ∈ [λ 1,λ 2], atunci există o rotaţie Jacobi reală J =<br />
[<br />
c s<br />
−s c<br />
]<br />
astfel<br />
încât (J T AJ)(1,1) = δ. b) Con<strong>si</strong>derăm matricea <strong>si</strong>metrică A ∈ IR n×n . Elaboraţi un<br />
algoritm de calcul al unei secvenţe de rotaţii Jacobi Q = J 1J 2..., astfel încât matricea<br />
B = Q T AQ să aibe toate elementele diagonale egale b 11 = b 22 = ... = b nn = 1 n tr(A) =<br />
= 1 n<br />
∑ n<br />
i=1 λi(A).
368 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />
P 4.66 Elaboraţi algoritmi tip Jacobi pentru calculul <strong>valorilor</strong> <strong>proprii</strong> ale unei matrice<br />
antihermitice (anti<strong>si</strong>metrice).<br />
[ ]<br />
1+ǫ 1<br />
P 4.67 Fie matricea A = ∈ IR 2×2 , cu 0 < ǫ ≪ 1. Să se calculeze<br />
0 1−ǫ<br />
numărul de condiţionare al celor două valori <strong>proprii</strong> şi al spectrului matricei A. Ce se<br />
întâmplă dacă ǫ → 0<br />
P 4.68 Să se arate că sen<strong>si</strong>bilitatea unei valori <strong>proprii</strong> <strong>si</strong>mple λ k ∈ λ(A) în raport cu<br />
variaţiile elementului a ij = A(i,j) este dată de<br />
∂λ k<br />
= ȳk(i)x k (j)<br />
∂a ij yk Hx ,<br />
k<br />
unde x k şi y k sunt vectori <strong>proprii</strong> la dreapta, respectiv la stânga, ai matricei A asociaţi<br />
valorii <strong>proprii</strong> λ k .<br />
P 4.69 Fie matricea bidiagonală A ∈ IR n×n<br />
⎡<br />
⎤<br />
n n 0 ··· 0 0<br />
0 n−1 n ··· 0 0<br />
. 0 0 n−2 .. 0 0<br />
A =<br />
⎢<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
. ⎥<br />
⎣<br />
⎦<br />
0 0 0 ··· 2 n<br />
0 0 0 ··· 0 1<br />
Să se calculeze numărul de condiţie al valorii <strong>proprii</strong> λ k = k. Pentru n = 20 să se dea o<br />
evaluare a numărului de condiţie pentru valorile <strong>proprii</strong> λ 1 = 1 şi λ 20 = 20. Pentru acelaşi<br />
n = 20 să se calculeze, cu ajutorul funcţiei eig din MATLAB, valorile <strong>proprii</strong> ale matricei<br />
à care diferă de A numai prin elementul Ã(20,1) = 0.01. Ce constataţi<br />
P 4.70 Se con<strong>si</strong>deră matricea superior Hessenberg A ∈ IR n×n<br />
⎡<br />
⎤<br />
n n−1 n−2 ··· 2 1<br />
n−1 n−1 n−2 ··· 2 1<br />
. 0 n−2 n−2 .. 2 1<br />
A =<br />
.<br />
.<br />
. .. . .. . ..<br />
. ..<br />
.<br />
⎢<br />
⎥<br />
⎣<br />
.<br />
0 0 0 .. ⎦ 2 1<br />
0 0 0 ··· 1 1<br />
a) Arătaţi că detA = 1. b) Fie matricea perturbată F = A + E, unde E = ǫG, cu<br />
matricea G având un <strong>si</strong>ngur element nenul G(n,1) = 1. Arătaţi că detF = 1−(n−1)!ǫ.<br />
Evaluaţi detF pentru n = 20 şi ǫ = 10 −10 . c) Pentru n = 10, calculaţi cu ajutorul funcţiei<br />
eig din MATLAB, vectorii <strong>proprii</strong> la stânga şi la dreapta şi, pe această bază, numerele de<br />
condiţionare κ λmax şi κ λmin ale <strong>valorilor</strong> <strong>proprii</strong> maximă şi, respectiv, minimă ale matricei<br />
A. Ce constataţi<br />
P 4.71 a) Elaboraţi un algoritm performant de calcul al polinomului caracteristic al unei<br />
matrice.<br />
b) Elaboraţi un algoritm performant de rezolvare a ecuaţiilor algebrice, i.e. a ecuaţiilor<br />
de tipul p(λ) = 0 unde p este un polinom cu coeficenţi reali sau complecşi.
Capitolul 5<br />
Descompunerea <strong>valorilor</strong><br />
<strong>si</strong>ngulare<br />
Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare (DVS) joacă un rol fundamental în evidenţierea<br />
proprietăţilor structurale legate nemijlocit de conceptul de rang matriceal. În contextul<br />
calcului numeric se impune o reevaluare a noţiunii de rang întrucât, datorită<br />
toleranţelor admise, definirea uzuală capătă un caracter ambiguu. În aceste<br />
circumstanţe, devine utilă introducerea conceptului de distanţă până la o matrice<br />
de rang imediat inferior şi a noţiunii pragmatice de rang numeric.<br />
<strong>Calculul</strong> DVS este intim legat de conceptul de ortogonalitate fiind bazat, în<br />
exclu<strong>si</strong>vitate, pe utilizarea transformărilor unitare (ortogonale). Acest fapt induce<br />
calităţi numerice remarcabile tuturor procedurilor de rezolvare a problemelor ce<br />
apelează la DVS.<br />
În ceea ce priveşte aplicaţiile, în cadrul general al matricelor de rang nemaximal,<br />
DVS constituie cel mai bun mijloc numeric de rezolvare a numeroase probleme de<br />
metrică euclidiană cum sunt problema generală a celor mai mici pătrate, calculul<br />
bazelor ortogonale pentru subspaţii liniare etc.<br />
5.1 Formularea problemei<br />
5.1.1 Valori <strong>si</strong>ngulare. Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
Având în vedere conexiunea intimă a descompunerii <strong>valorilor</strong><strong>si</strong>ngularecu conceptul<br />
de rang 1 , vom introduce mai întâi definiţia uzuală a noţiunii de rang matriceal.<br />
Fie A ∈ IC m×n 2 .<br />
1 Unele dintre noţiunile utilizate în continuare au fost definite, într-un context introductiv, în<br />
capitolul 1. Pentru confortul cititorului, preferăm reluarea acestora în cadrul extins şi specializat<br />
al capitolului de faţă.<br />
2 Vom con<strong>si</strong>dera cazul, mai general, al matricelor complexe. Particularizarea rezultatelor cu<br />
caracter teoretic pentru matrice reale este imediată reducându-se, practic în toate <strong>si</strong>tuaţiile, la<br />
înlocuirea operatorului hermitic (i.e. de transpunere şi conjugare) cu operatorul de transpunere.<br />
În dezvoltările algoritmice cazul matricelor reale va fi tratat distinct.
370 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Definiţia 5.1 Rangul r al matricei A este numărul maxim de coloane liniar independente<br />
ale lui A, sau, echivalent,<br />
r = rangA = dim(ImA). (5.1)<br />
Se poate arăta (vezi cap. 1) că rangA = rangA T şi, astfel, orice matrice are<br />
acelaşi număr maxim de linii şi coloane liniar independente. Deci, rangul unei<br />
matrice A este dimen<strong>si</strong>unea maximă a unei submatrice ne<strong>si</strong>ngulare A(I,J), I =<br />
= {i 1 ,i 2 ,...,i r }, J = {j 1 ,j 2 ,...,j r } a lui A.<br />
În vederea elaborării unor proceduri fiabile de determinare numerică a rangului<br />
suntem interesaţi în definirea transformărilor matriceale pentru care rangul este un<br />
invariant. În acest sens introducem<br />
Definiţia 5.2 Două matrice A,B ∈ IC m×n se numesc echivalente dacă există matricele<br />
ne<strong>si</strong>ngulare S ∈ IC m×m şi T ∈ IC n×n astfel încât<br />
B = SAT. (5.2)<br />
Dacă matricele S şi T sunt unitare, atunci vom spune că A şi B sunt unitar echivalente.<br />
În cazul real este suficient să ne rezumăm la matrice de transformare reale.<br />
Într-o astfel de <strong>si</strong>tuaţie, dacă matricele S şi T sunt ortogonale vom spune că A şi<br />
B sunt ortogonal echivalente.<br />
În vederea determinării rangului unei matrice date vom urma o cale deja familiară<br />
din capitolele precedente, respectiv, vom calcula o matrice de acelaşi rang cu matricea<br />
dată la carerangul săpoată fi evaluat prin <strong>si</strong>mplă inspecţie. Astfel de matrice<br />
sunt matricele cu structură diagonală la care rangul este, evident, egal cu numărul<br />
elementelor diagonale nenule. Din motive de fiabilitate numerică ne vom restrânge<br />
la utilizarea transformărilor unitare, respectiv ortogonale în cazul real.<br />
Avem următorul rezultat important.<br />
Teorema 5.1 (Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare - DVS) Dacă A ∈ IC m×n ,<br />
atunci există matricele unitare U ∈ IC m×m şi V ∈ IC n×n astfel încât<br />
[<br />
U H Σ1 0<br />
AV = Σ =<br />
0 0<br />
]<br />
, (5.3)<br />
unde<br />
Σ 1 = diag(σ 1 ,σ 2 ,...,σ r ) ∈ IR r×r , (5.4)<br />
cu<br />
σ 1 ≥ σ 2 ≥ ... ≥ σ r > 0. (5.5)<br />
Expre<strong>si</strong>a<br />
A = UΣV H (5.6)<br />
defineşte descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare a matricei A. Numerele nenegative σ i ,<br />
i = 1 : p, p = min(m,n) (σ i = 0, i = r+1 : p) se numesc valori <strong>si</strong>ngulare ale<br />
matricei A. Coloanele matricei unitare U se numesc vectori <strong>si</strong>ngulari la stânga, iar<br />
coloanele lui V se numesc vectori <strong>si</strong>ngulari (la dreapta) ai matricei A.<br />
În cazul real se obţine acelaşi rezultat, cu matricele U şi V ortogonale, i.e. cu<br />
vectorii <strong>si</strong>ngulari reali.
5.1. FORMULAREA PROBLEMEI 371<br />
Demonstraţie. Dacă A = 0, atunci (5.3)-(5.5) sunt satisfăcute de r = 0, U = I m ,<br />
V = I n , Σ = 0. Dacă A ≠ 0, atunci ‖A‖ 2 ≠ 0 şi, folo<strong>si</strong>nd tehnica inducţiei finite,<br />
vom obţine matricea cu structura din (5.3) în r paşi.<br />
Pasul 1 ◦ . Conformdefiniţieinormeispectraleexistăunvectordenormăeuclidiană<br />
unitară v 1 ∈ IC n , pentru care ‖A‖ 2 = max ‖x‖2=1‖Ax‖ 2 = ‖Av 1 ‖ 2 şi fie u 1 ∈ IC m<br />
definit de u 1 = Av 1<br />
‖A‖ 2<br />
având, evident, ‖u 1 ‖ 2 = 1. Fie, acum, Û 1 ∈ IC m×(m−1) şi<br />
ˆV 1 ∈ IC n×(n−1) completări ale <strong>vectorilor</strong> u 1 şi v 1 până la matrice unitare 3 , i.e. astfel<br />
încât matricele U 1 = [ u 1 Û 1<br />
]<br />
, V1 = [ v 1<br />
ˆV1<br />
]<br />
să fie unitare. Atunci<br />
[<br />
Σ (1) def u<br />
= U1 H AV H<br />
1 = 1 Av 1 u H 1 AˆV ] [ ]<br />
1 σ1 w<br />
Û1 HAv 1 Û1 HAˆV =<br />
H<br />
,<br />
1 0 B 1<br />
întrucât ÛH 1 Av 1 = ÛH 1 u 1‖A‖ 2 = 0 şi unde am utilizat notaţiile evidente<br />
σ 1<br />
def<br />
= u H 1 Av 1 = ‖A‖ 2 (5.7)<br />
şi w H def<br />
= u H 1 AˆV def<br />
1 , B 1 = ÛH 1 AˆV 1 . În continuare, întrucât transformările unitare<br />
conservă norma spectrală, avem ‖Σ (1) ‖ 2 = ‖A‖ 2 = σ 1 şi<br />
[ ]∥ σ1 ∥∥∥<br />
2<br />
[ ]∥ ∥ Σ(1) =<br />
σ<br />
2<br />
1 +w H w ∥∥∥<br />
2<br />
w ∥ = (σ 2<br />
B 1 w<br />
1 +w H w) 2 +‖B 1 w‖ 2 2 ≥ (σ1 2 +‖w‖ 2 2) 2 .<br />
2<br />
Pe de altă parte, datorită con<strong>si</strong>stenţei normei spectrale, avem<br />
[ ]∥ σ1 ∥∥∥<br />
2<br />
[ ]∥ ∥ Σ(1) ≤ ‖Σ<br />
w<br />
(1) ‖ 2 σ1 ∥∥∥<br />
2<br />
2∥<br />
= σ<br />
w<br />
1 2 (σ2 1 +‖w‖2 2 ).<br />
2<br />
Rezultă σ1 2 +‖w‖2 2 ≤ σ2 1 , i.e. ‖w‖ 2 = 0 sau w = 0. Deci<br />
[ ]<br />
Σ (1) = U1 H σ1 0<br />
AV 1 =<br />
0 B 1<br />
2<br />
2<br />
(5.8)<br />
şi obiectivul primului pas este atins.<br />
Pasul k ◦ . Presupunem că în primii k−1 paşi ai procedurii de diagonalizare am<br />
obţinut<br />
[ ]<br />
Σ (k−1) = U k−1···UH H (k−1) Σ<br />
2 UH 1 AV 1V 2···V k−1 = 1 0<br />
,<br />
0 B k−1<br />
unde Σ (k−1)<br />
1 = diag(σ 1 ,σ 2 ,...,σ k−1 ), cu σ 1 ≥ σ 2 ≥ ... ≥ σ k−1 > 0. Dacă B k−1 =<br />
0, atunci r = k − 1 şi procedura este încheiată. Dacă B k−1 ≠ 0, atunci – cu<br />
argumentele de la pasul 1 – există matricele unitare Ũk şi Ṽk astfel încât<br />
[ ]<br />
Ũk H σk 0<br />
B k−1 Ṽ k = , σ<br />
0 B k = ‖B k−1 ‖ 2 > 0. (5.9)<br />
k<br />
3 Pentru argumentarea existenţei acestor completări şi a modalităţilor de calcul, vezi observaţia<br />
4.3 din capitolul 4.
372 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Definind matricele unitare U k = diag(I k−1 ,Ũk), V k = diag(I k−1 ,Ṽk) rezultă<br />
Σ (k) = U H k Σ(k−1) V k =<br />
[ ]<br />
(k) Σ 1 0<br />
, (5.10)<br />
0 B k<br />
cu Σ (k)<br />
1 = diag(σ 1 ,σ 2 ,...,σ k ).<br />
Pentru a încheia demonstraţia este suficient să arătăm că σ k ≤ σ k−1 . Din<br />
expre<strong>si</strong>a (5.9), scrisă pentru pasul k −1, avem<br />
[ ]∥ σ k−1 = ‖B k−2 ‖ 2 =<br />
σk−1 0 ∥∥∥2<br />
∥ ≥ ‖B<br />
0 B k−1 ‖ 2<br />
= σ k .<br />
k−1<br />
În concluzie, procedura de diagonalizare poate fi iniţiată şi apoi continuată.<br />
Astfel, fie vom obţine B r = 0 pentru r < p, fie procedura se va incheia cu r = p =<br />
= min(m,n), i.e.<br />
unde<br />
Σ (r) = U H r ···UH 2 UH 1 AV 1V 2···V r = U H AV =<br />
[<br />
Σ<br />
(r)<br />
1 0<br />
0 0<br />
]<br />
, (5.11)<br />
U = U 1 U 2 ...U r , V = V 1 V 2 ...V r (5.12)<br />
def<br />
sunt matrice unitare. Cu Σ 1 = Σ (r)<br />
1 şi Σ def<br />
= Σ (r) obţinem (5.3). Demonstraţia este<br />
completă.<br />
În cazul matricelor reale cursul demonstraţiei este identic cu menţiunea că în<br />
locul transformărilor complexe se utilizează transformări reale, i.e. ortogonale. ✸<br />
Exemplul 5.1 Este uşor de verificat că matricea<br />
[ ]<br />
1.60 0.36 0.48<br />
A =<br />
−1.20 0.48 0.64<br />
admite o DVS A = UΣV T definită de<br />
[<br />
U =<br />
0.8 0.6<br />
−0.6 0.8<br />
] [<br />
2 0 0<br />
, Σ =<br />
0 1 0<br />
⎡<br />
]<br />
, V = ⎣ 1 0 0<br />
0 0.6 0.8<br />
0 0.8 −0.6<br />
şi are, evident, valorile <strong>si</strong>ngulare σ 1 = 2 şi σ 2 = 1. Matricea B = A T are, la fel de<br />
evident, aceleaşi valori <strong>si</strong>ngulare şi B = VΣ T U T este o DVS a sa. Valorile <strong>si</strong>ngulare<br />
ale unei matrice reale au o interpretare interesantă în geometria spaţiului euclidian.<br />
Concret, valorile <strong>si</strong>ngulare nenule ale matricei A ∈ IR m×n sunt lungimile semiaxelor<br />
hiperelipsoidului E = AS ⊂ ImA ⊂ IR m unde S este hipersfera cu centrul în origine<br />
şi de rază unitară din IR n , i.e.<br />
E = {y ∈ IR m |y = Ax, x ∈ IR n , ‖x‖ 2 = 1}.<br />
În figura 5.1 sunt reprezentate elipsele E A şi E B pentru matricele A, de mai sus, şi<br />
⎤<br />
⎦
5.1. FORMULAREA PROBLEMEI 373<br />
✻x ✛<br />
✬✩ ❍ σ 3<br />
1=2<br />
IR 3 ✲<br />
❍❍❍❍❍❍❍❍❍❍❥ ✬ ImA ✩= IR 2<br />
1<br />
✟ ✟✯ σ ✻ 2 =1 <br />
0<br />
x<br />
✲ 1<br />
−→ ❄<br />
<br />
<br />
x ✫✪ <br />
E A <br />
2 ✫ <br />
<br />
<br />
<br />
✪<br />
✠<br />
✁ ✁✁✁✁✁✁✁✁✕ y 1<br />
✻y 3<br />
✻x 2 ☞<br />
☞<br />
✬✩<br />
IR 2<br />
✛σ 1 =2✲<br />
★ ✥<br />
1<br />
✟ ✟✯ x<br />
✲<br />
☞ ☞☞<br />
✁☛ ✁✕✁ σ 2=1<br />
☞ ☞☞<br />
1<br />
y<br />
−→<br />
✲ 1<br />
0<br />
<br />
✫✪ ✧<br />
✦<br />
<br />
☞ ☞☞☞☞☞ E B<br />
ImA T ⊂ IR 3<br />
<br />
☞ ☞☞☞☞☞<br />
y 2 ✠<br />
y 2<br />
Fig. 5.1: O interpretare geometrică a <strong>valorilor</strong> <strong>si</strong>ngulare<br />
B = A T . De remarcat faptul că E A include şi punctele interioare ale elipsei în timp<br />
ce E B cuprinde numai punctele de pe frontieră.<br />
✸<br />
Fie o matrice A ∈ IC m×n cu rangA = r şi DVS A = UΣV H . În continuare vom<br />
utilizainten<strong>si</strong>vurmătoarelenotaţiicedefinescpartiţiialematricelordetransformare<br />
U şi V induse de structura matricei Σ.<br />
def<br />
U 1 = U(:,1:r),<br />
def<br />
U 2 = U(:,r+1:m),<br />
def<br />
V 1 = V(:,1:r),<br />
def<br />
V 2 = V(:,r+1:n).<br />
Prezentăm două consecinţe imediate ale teoremei 5.1.<br />
(5.13)<br />
Corolar 5.1 Orice matrice A ∈ IC m×n poate scrisă ca sumă de produse externe de<br />
vectori <strong>si</strong>ngulari ponderate cu valorile <strong>si</strong>ngulare, i.e. cu notaţiile (5.13) avem<br />
A = U 1 Σ 1 V H<br />
1 =<br />
r∑<br />
σ j u j vj H , (5.14)<br />
j=1<br />
def<br />
unde matricele W j = u j vj H<br />
matricii A.<br />
, j = 1:r poartă numele de componente principale ale<br />
Corolar 5.2 Fie o matrice A ∈ IC m×n cu rangA = r. Atunci există matricele<br />
ne<strong>si</strong>ngulare S ∈ IC m×m şi T ∈ IC n×n astfel încât<br />
[ ]<br />
Ir 0<br />
SAT = , (5.15)<br />
0 0
374 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
i.e. orice matrice este echivalentă cu o matrice cu structura din (5.15).<br />
Demonstraţie.<br />
Fie A = U H ΣV DVS a matricei A şi matricele ne<strong>si</strong>ngulare P,R ∈<br />
∈ IC r×r astfel încât PΣ 1 R = I r , e.g. P = R = Σ −1 2<br />
1 = diag(σ − 1 2<br />
1 ,σ −1 2<br />
2 ,...,σ −1 2<br />
r ).<br />
Atunci (5.15) este satisfăcută, de exemplu, de către matricele ne<strong>si</strong>ngulare S =<br />
= diag(P,I m−r )U H şi T = Vdiag(R,I n−r ). ✸<br />
Vom nota cu σ(A) mulţimea <strong>valorilor</strong> <strong>si</strong>ngulare ale matricei A. Rescriind (5.3)<br />
în forma AV = UΣ sau A H U = VΣ T obţinem imediat relaţiile<br />
Av j = σ j u j , A H u j = σ j v j , j = 1 : p, p = min(m,n), (5.16)<br />
care indică o analogie cu definirea <strong>vectorilor</strong> <strong>proprii</strong> ale unei matrice pătrate şi<br />
constituie o justificare pentru denumirea de vectori <strong>si</strong>ngulari dată coloanelor u j ,<br />
respectiv v j , ale matricelor U şi V care definesc DVS. Mai mult, vectorii <strong>si</strong>ngulari<br />
din (5.16) sunt efectiv vectori <strong>proprii</strong> ai unor matrice derivate din matricea A (vezi<br />
teorema următoare). De remarcat şi faptul că, deşi echivalenţa (5.15) apare ca o<br />
reducere completă dictată de nece<strong>si</strong>tăţile de evidenţiere a rangului unei matrice,<br />
echivalenţa unitară (ortogonală) care defineşte DVS oferă, prin valorile şi vectorii<br />
<strong>si</strong>ngulari, o informaţie mult mai bogată, utilă în numeroase evaluări cantitative.<br />
Demonstraţia prezentată pentru teorema 5.1 nu are un caracter constructiv<br />
întrucât calculul vectorului pentru care se realizează norma spectrală prezintă dificultăţi<br />
majore. Alegerea acestei demonstraţii se datorează ordonării naturale a <strong>valorilor</strong><br />
<strong>si</strong>ngulare şi evidenţierii conexiunii strânse dintre valorile <strong>si</strong>ngulare şi norma<br />
spectrală.<br />
O modalitate de calcul al DVS este oferită de următorul rezultat.<br />
Teorema 5.2 Valorile <strong>si</strong>ngulare nenule ale matricei A ∈ IC m×n sunt rădăcinile<br />
pătrate (pozitive) ale <strong>valorilor</strong> <strong>proprii</strong> nenule ale matricelor hermitice pozitiv semidefinite<br />
B = A H A ∈ IC n×n sau C = AA H ∈ IC m×m , (5.17)<br />
i.e. dacă λ 1 ≥ λ 2 ≥ ··· ≥ λ r > 0, sunt cele r valori <strong>proprii</strong> nenule ale lui B (sau<br />
C), atunci<br />
σ i = √ λ i , i = 1 : r. (5.18)<br />
Mai mult, vectorii <strong>si</strong>ngulari la stânga u i = Ue i , i = 1:m, sunt vectori <strong>proprii</strong> ai<br />
matricei C, iar vectorii <strong>si</strong>ngulari (la dreapta) v j = Ve j , j = 1 : m, sunt vectori<br />
<strong>proprii</strong> ai matricei B.<br />
În cazul real, aserţiunile de mai sus sunt adevărate, cu menţiunea că matricele<br />
B şi C sunt <strong>si</strong>metrice pozitiv semidefinite.<br />
def<br />
Demonstraţie. Din (5.3) obţinem<br />
[ Σ<br />
B = A H A = VΣ T U H UΣV H = VΣ T ΣV H 2<br />
= V 1 0<br />
0 0<br />
[ Σ<br />
C = AA H = UΣV H VΣ T U H = UΣΣ T U H 2<br />
= U 1 0<br />
0 0<br />
]<br />
V H ,<br />
]<br />
U H .<br />
(5.19)
5.1. FORMULAREA PROBLEMEI 375<br />
Prin urmare, matricea B este unitar asemenea cu matricea diagonală S 1 = Σ T Σ =<br />
= diag(σ1 2,σ2 2 ,...,σ2 r,0,...,0), respectiv matricea C este unitar asemenea cu matricea<br />
diagonală S 2 = ΣΣ T = diag(σ1,σ 2 2,...,σ 2 r,0,...,0), 2 de unde rezultă imediat<br />
toate aserţiunile teoremei.<br />
✸<br />
Un rezultat <strong>si</strong>milar, care conexează valorile <strong>si</strong>ngulare ale unei matrice cu valorile<br />
<strong>proprii</strong> ale altei matrice, este prezentat în propoziţia următoare.<br />
Propoziţia 5.1 Fie matricea A ∈ IC m×n , p = min(m,n) şi σ 1 ,σ 2 ,...,σ p valorile<br />
<strong>si</strong>ngulare ale matricei A. Atunci valorile <strong>proprii</strong> ale matricei<br />
[ ] 0 A<br />
F =<br />
A H (5.20)<br />
0<br />
sunt σ 1 ,σ 2 ,...,σ p , −σ 1 ,−σ 2 ,...,−σ p şi |m−n| valori <strong>proprii</strong> nule.<br />
Demonstraţie. Con<strong>si</strong>derăm cazul m ≥ n (cazul m < n se tratează absolut<br />
<strong>si</strong>milar). Fie A = UΣV H DVS a matricei A, S def<br />
= Σ(1 : n,:), Ũ def<br />
= √ 1 2<br />
U(1 : n,:),<br />
Û def<br />
= U(n+1 : m,:)şi Ṽ def<br />
= 1 √<br />
2<br />
V. Atunci, princalculdirect, seconstatăcămatricea<br />
este unitară şi că<br />
[<br />
Q def Ũ − Ũ<br />
= Û<br />
Ṽ Ṽ 0<br />
G = Q H FQ =<br />
⎡<br />
]<br />
∈ IC (m+n)×(m+n) (5.21)<br />
⎣ S 0 0<br />
0 −S 0<br />
0 0 0<br />
⎤<br />
⎦. (5.22)<br />
Cum λ(F) = λ(G) şi S = diag(σ 1 ,σ 2 ,...,σ n ), propoziţia este demonstrată.<br />
Observaţia 5.1 Teorema 5.1 arată că orice matrice admite o DVS dar nu afirmă<br />
nimic despre unicitatea acestei descompuneri. Utilizând şi teorema 5.2 putem să<br />
facem câteva con<strong>si</strong>deraţii asupra acestui aspect.<br />
În primul rând, valorile <strong>si</strong>ngulare ale unei matrice A ∈ IC m×n , fiind rădăcinile<br />
pătrate pozitive ale <strong>valorilor</strong> <strong>proprii</strong> ordonate ale matricelor A H A sau AA H , sunt<br />
unic determinate.<br />
În ceea ce priveşte unicitatea matricelor de transformare este suficient să ne<br />
mărginim la cazul 4 m ≤ n.<br />
Dacă cele m valori <strong>si</strong>ngulare sunt distincte, atunci sunt distincte şi valorile <strong>proprii</strong><br />
ale matricei hermitice AA H . În această <strong>si</strong>tuaţie, coloanele matricei de transformare<br />
U, fiind vectori <strong>proprii</strong> de normă euclidiană unitară ai matricei AA H , sunt<br />
determinate până la multiplicarea cu numere complexe de modul unitar. Cu alte<br />
cuvinte, în condiţiile menţionate, matricea U este determinată până la o postmultiplicare<br />
cu o matrice diagonală m × m cu elementele diagonale de modul unitar,<br />
i.e. dacă avem două DVS<br />
A = U 1 ΣV H<br />
1 = U 2 ΣV H<br />
2 ,<br />
4 Cazul matricelor cu m ≥ n se reduce la cel analizat dacă în locul matricei A se con<strong>si</strong>deră<br />
matricea A H ∈ IC n×m . Dacă A = UΣV H este o DVS a lui A, atunci A H = VΣ T U H este o DVS<br />
a matricei A H .<br />
✸
376 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
atunci<br />
U 2 = U 1 D<br />
cu D = diag(e iθ1 ,e iθ2 ,...,e iθm ), θ j ∈ IR, j = 1:m.<br />
(În cazul real, cu matrice de transformare reale, matricea U este determinată, evident,<br />
până la semnul coloanelor sale.)<br />
Dacă m = n, A este ne<strong>si</strong>ngulară şi U este fixată, atunci matricea Σ este ne<strong>si</strong>ngulară<br />
şi V este unic determinată de V = Σ −1 U H A.<br />
Dacă m < n, atunci Σ are (cel puţin) ultimele n − m coloane nule şi, deci,<br />
ultimele n − m coloane ale matricei V sunt date de orice completare până la o<br />
matrice unitară a primelor m coloane, i.e. în mod <strong>si</strong>gur matricea V nu este unic<br />
determinată.<br />
✸<br />
Încontinuareaacesteisecţiuniintroductiveprezentămunelegeneralizăriderivate<br />
din conceptul de valori <strong>si</strong>ngulare.<br />
5.1.2 Descompunerea polară<br />
Fie A ∈ IC m×n , rangA = r şi DVS (5.3) A = UΣV H a lui A. Utilizând notaţiile<br />
(5.13) şi introducând noile notaţii<br />
S =<br />
{ Σ(1 : n,:) dacă m ≥ n<br />
Σ(:,1 : m) dacă m ≤ n ,<br />
putem să scriem<br />
{ Ũ = U(:,1 : n) dacă m ≥ n<br />
Ṽ = V(:,1 : m) dacă m ≤ n ,<br />
(5.23)<br />
A = U 1 V H<br />
1 V 1 Σ 1 V H<br />
1 = WP 1 sau A = U 1 Σ 1 U H 1 U 1 V H<br />
1 = P 2 W, (5.24)<br />
unde<br />
şi<br />
W def<br />
= U 1 V H<br />
1 ∈ IC m×n , P 1<br />
def<br />
= V 1 Σ 1 V H<br />
1 ∈ IC n×n , P 2<br />
def<br />
= U 1 Σ 1 U H 1 ∈ IC m×m<br />
unde<br />
A =<br />
(5.25)<br />
{ ŨSV H = ŨV H VSV H = YP 1 dacă m ≥ n<br />
USṼ H = USU H UṼ H = P 2 Z dacă m ≤ n , (5.26)<br />
Y def<br />
= ŨV H ∈ IC m×n , Z def<br />
= UṼ H ∈ IC m×n . (5.27)<br />
Este uşor de constatat că matricele P 1 şi P 2 sunt hermitice şi pozitiv semidefinite cu<br />
rangP 1 = rangP 2 = rangA, Y este o matrice cu coloanele ortogonale (i.e. Y H Y =<br />
= I n ), Z este o matrice cu liniile ortogonale (i.e. ZZ H = I m ) şi, în consecinţă,<br />
matricele Y şi Z au norma spectrală unitară. În cazul real, evident, matricele W,<br />
P 1 , P 2 , Y şi Z pot fi reale.<br />
Putem introduce următoarea definiţie.<br />
Definiţia 5.3 Factorizarea<br />
A =<br />
{ YP1 dacă m ≥ n<br />
P 2 Z dacă m ≤ n<br />
(5.28)
5.1. FORMULAREA PROBLEMEI 377<br />
unde matricele P 1 , P 2 , Y şi Z sunt cele definite mai sus, se numeşte descompunerea<br />
polară 5 a matricei A.<br />
Fie matricele hermitice, pozitiv semidefinite B = A H A, C = AA H şi descompunerile<br />
lor spectrale B = VΛ B V H şi C = UΛ C U H , unde Λ B = diag(λ 1 ,λ 2 ,...,λ n ),<br />
Λ C = diag(λ 1 ,λ 2 ,...,λ m ), cu toţi λ i nenegativi. Definim B 1 def<br />
2 = VΛ 1 2<br />
B<br />
V H def<br />
=<br />
def<br />
= Vdiag( √ λ 1 , √ λ 2 ,..., √ λ n )V H şi, <strong>si</strong>milar, C 1 def 2 = UΛ 1 2<br />
A<br />
U H .<br />
Se poatearăta(exerciţiu pentru cititor) cămatriceleP 1 şi P 2 din descompunerea<br />
polară sunt unic determinate de P 1 = (A H A) 1 2<br />
, respectiv de P 2 = (AA H ) 1 2<br />
, iar<br />
matricele Y şi Z sunt unic determinate dacă r = n, respectiv r = m.<br />
5.1.3 Descompunerea CS<br />
Înoperareanumericăcusubspaţiiliniaresedovedeşteafiextremdeutilăaşanumita<br />
descompunere CS 6 (DCS) a matricelor unitare (ortogonale) care, printre altele,<br />
permite introducereanoţiunii de distanţă dintre subspaţii în cazul multidimen<strong>si</strong>onal<br />
şi care are conexiuni naturale cu DVS. Introducem DCS prin următoarea teoremă.<br />
Teorema 5.3 Fie o matrice unitară Q ∈ IC n×n cu următoarea partiţie<br />
[ ]<br />
Q11 Q<br />
Q = 12<br />
, Q<br />
Q 21 Q 11 ∈ IC k×k , Q 22 ∈ IC l×l , k +l = n. (5.29)<br />
22<br />
Atunci există matricele unitare U 1 , V 1 ∈ IC k×k şi U 2 , V 2 ∈ IC l×l astfel încât<br />
⎧ ⎡<br />
⎣ C S 0<br />
⎤<br />
−S C 0 ⎦ pt. k ≤ l<br />
[ ] H [ ][ ] ⎪⎨<br />
U1 0 Q11 Q<br />
W =<br />
12 V1 0 0 0 I l−k<br />
= ⎡<br />
0 U 2 Q 21 Q 22 0 V 2<br />
⎣ I ⎤<br />
k−l 0 0<br />
0 C S ⎦ pt. k > l<br />
⎪⎩<br />
0 −S C<br />
(5.30)<br />
unde<br />
C = diag(c 1 ,c 2 ,...,c p ) ∈ IR p×p cu c 1 ≥ c 2 ≥ ... ≥ c p ,<br />
S = diag(s 1 ,s 2 ,...,s p ) ∈ IR p×p cu s 1 ≤ s 2 ≤ ... ≤ s p ,<br />
p = min(k,l) şi c 2 i +s2 i = 1, i = 1:p, i.e. c i şi s i pot fi scrise sub forma<br />
(5.31)<br />
c i = cosθ i , s i = <strong>si</strong>nθ i , cu 0 ≤ θ 1 ≤ θ 2 ≤ ... ≤ θ p ≤ π 2 . (5.32)<br />
Egalitatea (5.30) se numeşte descompunerea CS a matricei unitare Q.<br />
În cazul real, i.e. atunci când Q este ortogonală, matricele de transformare bloc<br />
diagonale pot fi reale, i.e. ortogonale.<br />
5 Denumirea de ”descompunere polară” este justificată de analogia cu reprezentarea polară<br />
z = ρe iθ a numerelor complexe, la care factorul ρ este nenegativ, iar factorul e iθ are modulul<br />
unitar.<br />
6 Denumirea CS provine de la iniţialele funcţiilor co<strong>si</strong>nus şi <strong>si</strong>nus, matricea ortogonală transformată<br />
având aspectul unei rotaţii generalizate (vezi mai departe).
378 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Demonstraţie. Con<strong>si</strong>derămcazulk ≤ l = n−k. FieQ 11 = U 1 CV1 H DVSablocului<br />
Q 11 unde C = diag(c 1 ,c 2 ,...,c k ) cu 1 ≥ c 1 ≥ c 2 ≥ ... ≥ c k ≥ 0, prima inegalitate<br />
datorându-se faptului că σ 1 (Q) = 1 şi c 1 = σ 1 (Q 11 ) ≤ σ 1 (Q) (vezi exerciţiul 5.7).<br />
Con<strong>si</strong>derăm acum matricea<br />
˜Q =<br />
[ ] U<br />
H<br />
1 0<br />
Q<br />
0 I l<br />
[ ] [<br />
V1 0<br />
=<br />
0 I l<br />
C U1 HQ ]<br />
12<br />
,<br />
Q 21 V 1 Q 22<br />
care este unitară ca produs de matrice unitare. Din egalitatea blocurilor 11 din<br />
relaţia ˜Q H ˜Q = In obţinem<br />
V H<br />
1 QH 21 Q 21V 1 = I k −C 2 def<br />
= S 2 = diag(s 2 1 ,s2 2 ,...,s2 k ),<br />
cu s 2 i = 1−c2 i , i = 1:k. Luând s i = √ 1−c 2 i , obţinem 0 ≤ s 1 ≤ s 2 ≤ ... ≤ s k ≤ 1.<br />
În continuare vom presupune că matricea S este ne<strong>si</strong>ngulară 7 . Fie acum matricea<br />
def<br />
U 21 = −Q 21 V 1 S −1 care are coloanele ortogonale (verificaţi!) şi U 22 o completare a<br />
def<br />
sa până la o matrice unitară, i.e. astfel încât matricea U 2 = [U 21 U 22 ] ∈ IC l×l să<br />
fie unitară (vezi şi observaţia 4.3). Avem<br />
[ ]<br />
U<br />
H<br />
U2 H Q 21<br />
21V 1 = Q 21 V 1 =<br />
U H 22<br />
[<br />
−S −1 V H<br />
1 QH 21 Q 21V 1<br />
−U H 22 U 21S<br />
]<br />
=<br />
[<br />
−S<br />
0<br />
]<br />
.<br />
Mai departe, matricea<br />
[ U<br />
H<br />
ˆQ = 1 0<br />
0 U2<br />
H<br />
⎡<br />
] [ ]<br />
V1 0<br />
Q = ⎣<br />
0 I l<br />
C U1 HQ ⎤<br />
[ ] 12<br />
−S ⎦<br />
U<br />
0<br />
2 H Q 22<br />
este unitară. Egalitatea blocurilor 22 din ˆQˆQ H = I n conduce la<br />
[ ] [ ]<br />
S<br />
U2 H Q 22Q H 22 U 2<br />
0 C<br />
2<br />
0<br />
2 = I l − = .<br />
0 0 0 I l−k<br />
În continuare vom presupune că matricea C este ne<strong>si</strong>ngulară 8 . Definim matricea<br />
V 2 prin<br />
[ ]<br />
def<br />
V 2 = Q H C<br />
22 U −1<br />
0<br />
2<br />
0 I l−k<br />
care, în virtutea ultimei relaţii de mai sus, este unitară şi<br />
[ ] C 0<br />
U2 H Q 22 V 2 = .<br />
0 I l−k<br />
7 Dacă S este <strong>si</strong>ngulară, atunci s 1 = s 2 = ... = s q = 0 pentru un q ≤ l şi corespunzător<br />
c 1 = c 2 = ... = c q = 1. În acest caz primele q linii şi coloane ale matricei ˜Q sunt e T<br />
i respectiv e i<br />
i = 1 : q care au deja structura din (5.30) şi pot fi separate (pentru detalii suplimentare se poate<br />
consulta şi demonstraţia teoremei ce urmează). Demonstraţia pentru restul matricei decurge ca<br />
mai sus.<br />
8 Dacă C este <strong>si</strong>ngulară, atunci c q = c q+1 = ... = c l = 0 pentru un q ≥ 1 şi corespunzător<br />
s q = s q+1 = ... = s l = 1. În acest caz se procedează <strong>si</strong>milar cu modul prezentat în nota de picior<br />
precedentă.
5.1. FORMULAREA PROBLEMEI 379<br />
În sfârşit, notând U def<br />
= diag(U 1 ,U 2 ), V def<br />
= diag(V 1 ,V 2 ) obţinem următoarea<br />
structură a matricei W<br />
⎡<br />
W = U H QV = ⎣ C X Y ⎤<br />
−S C 0 ⎦,<br />
0 0 I k−l<br />
unde [X Y ] def<br />
= U1 HQ 12V 2 .<br />
Rezultatul urmărit se obţine imediat din faptul că matricea W este unitară, din<br />
egalitatea W H W = I n rezultând X = S şi Y = 0.<br />
În cazulk > l = n−k se începecu descompunerea<strong>valorilor</strong><strong>si</strong>ngulareale blocului<br />
Q 22 , după care cursul demonstraţiei este <strong>si</strong>milar cu cel de mai sus.<br />
În cazul real toate transformările unitare utilizate pot fi luate ortogonale, cursul<br />
demonstraţiei fiind identic.<br />
✸<br />
5.1.4 Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare generalizate<br />
O generalizare po<strong>si</strong>bilă a descompunerii <strong>valorilor</strong> <strong>si</strong>ngulare este diagonalizarea <strong>si</strong>multană<br />
a două matrice sau, echivalent, diagonalizarea unui fascicol matriceal, prin<br />
transformări de echivalenţă. Condiţiile în care acest demers este po<strong>si</strong>bil sunt enunţate<br />
în teorema de mai jos.<br />
Teorema 5.4 Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare generalizate (DVSG). Fie matricele<br />
A ∈ IC m×n cu m ≥ n şi B ∈ IC p×n 9 astfel încât KerA∩KerB = {0}. Atunci<br />
există matricele unitare U ∈ IC m×m şi V ∈ IC p×p precum şi matricea ne<strong>si</strong>ngulară<br />
W ∈ IC n×n astfel încât<br />
⎧ [ ]<br />
[ ] ⎪⎨ S<br />
U H C pentru p ≥ n<br />
AW = , V H BW = 0<br />
(5.33)<br />
0 ⎪⎩ [ ] 0 S pentru p < n<br />
unde<br />
C = diag(c 1 ,c 2 ,...,c n ) ∈ IR n×n cu 1 ≥ c 1 ≥ c 2 ≥ ... ≥ c p ≥ 0,<br />
⎧<br />
⎪⎨<br />
diag(s 1 ,s 2 ,...,s n ) ∈ IR n×n cu 0 ≤ s 1 ≤ s 2 ≤ ... ≤ s n ≤ 1, pt. p ≥ n<br />
S =<br />
⎪⎩<br />
diag(s n−p+1 ,s n−p+2 ,...,s n ) ∈ IR p×p<br />
cu 0 = s 1 = s 2 = ... = s n−p ≤ s n−p+1 ≤ ... ≤ s n ≤ 1, pt. p < n<br />
(5.34)<br />
cu c 2 i + s2 i = 1, i = 1:n 10 . Perechile (c i ,s i ), i = 1:n definesc valorile <strong>si</strong>ngulare<br />
generalizate ale perechii (A,B), mai exact perechile (c i ,s i ) cu s i = 0 definesc<br />
9 Teorema este enunţată pentru cazul a două matrice cu acelaşi număr de coloane. Se poate<br />
da şi o formulare pentru două matrice A şi B cu acelaşi număr de linii, formulare care se poate<br />
obţine aplicând enunţul de mai sus matricelor A H şi B H . Lăsăm detaliile în sarcina cititorului<br />
interesat.<br />
10 În cazul p < n avem c 1 = c 2 = ... = c n−p = 1 şi, de aceea, am introdus în (5.34), prin<br />
convenţie şi pentru comoditatea notaţiilor, numerele s 1 = s 2 = ... = s n−p = 0. De asemenea,<br />
în aceeaşi <strong>si</strong>tuaţie, vom conveni să extindem termenul de ”structură diagonală” pentru matricea<br />
[ 0 S] (în unele lucrări [VI], în cazul p < n, matricea V H BW are structura [S 0] cu S diagonală<br />
dar ”preţul” plătit este pierderea ordonării elementelor diagonale ale matricelor C şi S).
380 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
valorile <strong>si</strong>ngulare generalizate infinite, iar<br />
σ i = c i<br />
s i<br />
∈ IR, s i ≠ 0, (5.35)<br />
sunt valorile <strong>si</strong>ngulare generalizate finite. Coloanele w i ale matricei ne<strong>si</strong>ngulare W<br />
se numesc vectori<strong>si</strong>ngularigeneralizaţi ai perechii (A,B) asociaţi <strong>valorilor</strong> <strong>si</strong>ngulare<br />
generalizate σ i .<br />
În cazul real, matricele de transformare pot fi alese reale, i.e. W reală ne<strong>si</strong>ngulară,<br />
iar U şi V ortogonale.<br />
Demonstraţie. Este uşor de constatat că ipoteza KerA∩KerB = {0} este echivalentă<br />
cu faptul că matricea<br />
[ ]<br />
F def A<br />
= ∈ IC (m+p)×n (5.36)<br />
B<br />
este monică (i.e. are coloanele liniar independente). Fie F = QR factorizarea QR<br />
a matricei F, unde Q ∈ IC (m+p)×n este o matrice având coloanele ortogonale (i.e.<br />
Q H Q = I n ), iar R ∈ IC n×n este superior triunghiulară şi, în virtutea monicităţii lui<br />
F, ne<strong>si</strong>ngulară. De asemenea, fie următoarea partiţie a matricei Q<br />
[ ]<br />
Q1<br />
Q = , Q<br />
Q 1 ∈ IC m×n , Q 2 ∈ IC p×n .<br />
2<br />
În continuare vom proceda <strong>si</strong>milar cu demonstraţia teoremei 5.3 privitoare [ la]<br />
descompunerea<br />
CS. Fie Q 1 = U ˜CZ H o DVS a matricei Q 1 unde ˜C C<br />
= cu<br />
0<br />
C = diag(c 1 ,c 2 ,...,c n ) ∈ IR n×n şi, cu argumentele din demonstraţia teoremei citate,<br />
1 ≥ c 1 ≥ c 2 ≥ ... ≥ c n ≥ 0. Con<strong>si</strong>derăm acum matricea<br />
[ ] [ ]<br />
U ˜Q =<br />
H 0 ˜C<br />
QZ =<br />
0 I p Q 2 Z<br />
care are, şi ea, coloanele ortogonale, i.e. ˜QH ˜Q = In , relaţie din care rezultă<br />
Z H Q H 2 Q 2 Z = I n −C 2 def<br />
= S 2 , (5.37)<br />
unde S 2 = diag(s 2 1 ,s2 2 ,...,s2 n ) cu s2 i = 1 − c 2 i , i = 1 : n. Alegând s i = √ 1−c 2 i<br />
rezultă S = diag(s 1 ,s 2 ,...,s n ) cu 0 ≤ s 1 ≤ s 2 ≤ ... ≤ s p ≤ 1. În continuare<br />
distingem două <strong>si</strong>tuaţii:<br />
a) Matricea S este ne<strong>si</strong>ngulară (condiţie po<strong>si</strong>bilă numai dacă p ≥ n). În acest<br />
caz, din (5.37) avem S −1 Z H Q H 2 Q 2ZS −1 = I n , i.e. matricea V 1 = Q 2 ZS −1 ∈ IC p×n<br />
are coloanele ortogonale şi poate fi completată până la o matrice unitară, i.e. există<br />
matricea V 2 ∈ IC p×(p−n) astfel încât matricea V = [V 1 V 2 ] ∈ IC p×p este unitară.<br />
Rezultă<br />
˜S def<br />
= V H Q 2 Z = V H V 1 S =<br />
[ S<br />
0<br />
]<br />
,
5.1. FORMULAREA PROBLEMEI 381<br />
relaţie cu care obţinem<br />
ˆQ =<br />
[ ] [<br />
U<br />
H<br />
0 ˜C<br />
0 V H QZ =<br />
˜S<br />
]<br />
, (5.38)<br />
de unde<br />
[ A<br />
F =<br />
B<br />
]<br />
= QR =<br />
[ U 0<br />
0 V<br />
][ ˜C<br />
˜S<br />
] [ U ˜CZ<br />
Z H R =<br />
H R<br />
V ˜SZ H R<br />
]<br />
. (5.39)<br />
În final, datorită ne<strong>si</strong>ngularităţii matricei Z H R, din ultima relaţie se obţine diagonalizarea<br />
<strong>si</strong>multană urmărită a matricelor A şi B, i.e. U H AW = ˜C şi V H BW = ˜S<br />
unde W = R −1 Z. q.e.d.<br />
b) Dacă S este <strong>si</strong>ngulară (ceea ce se întâmplă întotdeuna dacă p < n) demonstraţia<br />
decurge asemănător. Elementele diagonale ale lui S din (5.37) fiind ordonate<br />
crescător, S este <strong>si</strong>ngulară numai dacă s 1 = ... = s l = 0 pentru un l ≥ 1, i.e. (5.37)<br />
se scrie<br />
Z H Q H 2 Q 2Z = I n −C 2 def<br />
= S 2 =<br />
[ ] 0 0<br />
0 Ŝ 2<br />
(5.40)<br />
cu Ŝ = diag(s l+1,s l+2 ,...,s n ) ne<strong>si</strong>ngulară. Notăm X = Q 2 Z ∈ IC p×n şi con<strong>si</strong>derăm<br />
partiţiaX = [X 1 X 2 ]cuX 1 ∈ IC p×l , X 2 ∈ IC p×(n−l) . Din(5.40)avemX1 H X 1 = 0de<br />
unde rezultă X 1 = 0. De asemenea, avem X2 HX 2 = Ŝ2 , deci Ŝ−1 X2 HX2Ŝ−1 = I n−l ,<br />
def<br />
i.e. matricea V 2 = X 2 Ŝ −1 ∈ IC p×(n−l) are coloanele ortogonale. Con<strong>si</strong>derăm şi aici<br />
două <strong>si</strong>tuaţii.<br />
b1) În cazul p ≥ n, procedând ca mai sus, i.e. completând V 2 cu matricele<br />
V 1 ∈ IC p×l şi V 3 ∈ IC p×(p−n) până la o matrice unitară V = [V 1 V 2 V 3 ] 11 putem<br />
scrie<br />
˜S def<br />
= V H Q 2 Z=V H X=[0 V H X 2 ]=<br />
⎡<br />
⎣ 0 V 1 H X 2<br />
0 V H<br />
2 X 2<br />
0 V H<br />
3 X 2<br />
⎤<br />
⎡<br />
⎦= ⎣<br />
0 0<br />
0 Ŝ<br />
0 0<br />
⎤<br />
[ S<br />
⎦=<br />
0<br />
] }n<br />
}p−n ,<br />
relaţie cu care se obţine imediat (5.38) şi apoi, cu aceleaşi argumente, (5.33). q.e.d.<br />
b2) În cazul p < n avem, în mod necesar, l ≥ n−p sau n−l ≤ p şi, prin urmare,<br />
completând matricea cu coloanele ortogonale V 2 cu matricea V 1 ∈ IC p×(p−n+l) până<br />
la o matrice unitară V = [V 1 V 2 ] ∈ IC p×p , obţinem<br />
[ ] [ ]<br />
˜S def<br />
0 V<br />
= V H Q 2 Z=V H X=[0 V H H<br />
X 2 ]= 1 X 2 0 0 0<br />
0 V2 HX<br />
= = [ 0 S ]<br />
2 0 0 Ŝ<br />
unde, de această dată, IC p×p ∋ S = diag(s n−p+1 ,s n−p+2 ,...,s n ) cu 0 = s n−p+1 =<br />
= ... = s l < s l+1 ≤ s l+2 ≤ ... ≤ s n , q.e.d. În acest caz elementele s 1 = s 2 =<br />
= ... = s n−p = 0 convenţional introduse nu apar efectiv în structurile matricelor<br />
transformate dar participă la definirea <strong>valorilor</strong> <strong>si</strong>ngulare generalizate infinite.<br />
11 Dacă V 13 ∈ IC p×(p−n+l) este o completare a matricei V 2 până la o matrice unitară, calculată<br />
în modul uzual (vezi observaţia 4.3), atunci V 1 se obţine luând oricare l coloane ale matricei V 13 ,<br />
iar V 3 este definită de celelalte p−n coloane.
382 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Încazulreal,toatetransformărileparţialepotfialeserealeşi, înconsecinţă,toate<br />
rezultatele parţiale ca şi cele finale sunt reale. Cu această observaţie demonstraţia<br />
este completă.<br />
✸<br />
Observaţia 5.2 DVSG poate fi definită şi în <strong>si</strong>tuaţia în care KerA∩KerB ≠ {0},<br />
i.e. matricea F din (5.36) nu este monică. În acest caz, utilizând triangularizarea<br />
unitară cu pivotarea coloanelor (vezi cap. 3), obţinem<br />
[ ]<br />
A<br />
F = = Q [ R T ] P<br />
B<br />
T ,<br />
unde Q ∈ IC (m+p)×k cu k < n are coloanele ortogonale, R ∈ IC k×k este superior<br />
triunghiulară ne<strong>si</strong>ngulară iar P ∈ IR n×n este o matrice de permutare. Aplicând<br />
teorema de mai sus matricei G = QR ∈ IC (m+p)×k , e.g. în cazul cu matricea S ∈<br />
∈ IR k×k ne<strong>si</strong>ngulară, conform (5.39), obţinem<br />
G = QR =<br />
[<br />
U ˜C<br />
V ˜S<br />
şi, deci,<br />
[ ] A<br />
=G [ I<br />
B k R −1 T ] [ ] U ˜C [<br />
P T =<br />
V ˜S<br />
˜W−1 ˜W−1 R −1 T ] [ ] U[ ˜C 0]<br />
P T =<br />
V[ ˜S W −1<br />
0]<br />
[ ] ˜W−1<br />
unde W = P<br />
˜W−1 R −1 −1<br />
T<br />
este o matrice n×n ne<strong>si</strong>ngulară (M fiind o<br />
0 M<br />
matricene<strong>si</strong>ngulară(n−k)×(n−k) arbitrară”decompletare”). Rezultăurmătoarea<br />
formă a relaţiei (5.33)<br />
[ ] [ ]<br />
U H C 0<br />
AW = , V<br />
0 0<br />
H S 0<br />
BW = , (5.41)<br />
0 0<br />
]<br />
˜W −1<br />
cele n−k coloane nule corespunzând subspaţiului KerA∩KerB.<br />
Amvăzutcăvalorile<strong>si</strong>ngulareordinarealeuneimatriceAsuntrădăcinilepătrate<br />
ale<strong>valorilor</strong><strong>proprii</strong>alematricelorhermiticepozitivsemidefiniteA H AsauAA H (vezi<br />
teorema 5.2). Se poate stabili o legătură <strong>si</strong>milară şi între valorile <strong>si</strong>ngulare generalizate<br />
şi valorile <strong>proprii</strong> generalizate ale unui fascicol hermitic pozitiv semidefinit<br />
12 . Concret, avem următorul rezultat pe care îl formulăm utilizând noţiuni din<br />
capitolul următor şi, din acest motiv, demonstraţia este omisă.<br />
Teorema 5.5 Fie dată o pereche de matrice (A,B), A ∈ IC m×n , B ∈ IC p×n şi<br />
fascicolul matriceal hermitic pozitiv semidefinit F = {A H A − λB H B |λ ∈ IC} cu<br />
valorile <strong>proprii</strong> generalizate Λ = {λ 1 ,λ 2 ,...,λ n }, λ i ∈ IR + ordonate descrescător.<br />
Atunci numerele σ i = √ λ i sunt valorile <strong>si</strong>ngulare generalizate ale perechii (A,B).<br />
12 Un fascicol matriceal F = {G −λH | λ ∈ IC} definit de perechea (G,H) se numeşte hermitic<br />
(în cazul real, <strong>si</strong>metric), pozitiv semidefinit dacă matricele G şi H sunt hermitice (<strong>si</strong>metrice), iar<br />
matricea H şi pozitiv semidefinită.<br />
✸
5.2. PROBLEME DE CALCUL CONEXE 383<br />
Se constată imediat că valorile <strong>si</strong>ngulare generalizate ale perechii (A,I n ) sunt<br />
valorile <strong>si</strong>ngulare ordinare ale matricei A.<br />
Problema de calcul a acestui capitol este, în primul rând, determinarea <strong>valorilor</strong><br />
<strong>si</strong>ngulare ale unei matrice date. Ca şi până acum, cazul matricelor reale va fi<br />
tratat distinct pentru a a<strong>si</strong>gura maximum de eficienţă po<strong>si</strong>bil. Determinarea <strong>vectorilor</strong><br />
<strong>si</strong>ngulari revine la acumularea transformărilor şi apare ca necesară în multe<br />
aplicaţii.<br />
Observaţia 5.3 Teorema 5.2 sugerează o procedură de determinare a <strong>valorilor</strong><br />
<strong>si</strong>ngulare ale unei matrice A folo<strong>si</strong>nd algoritmul QR <strong>si</strong>metric pentru calculul <strong>valorilor</strong><br />
<strong>proprii</strong> e.g. ale matricei B = A H A. De asemenea, dacă se acumulează<br />
transformările din aplicarea algoritmului QR matricei B, se pot calcula matricele<br />
de transformare U şi V. Concret, matricea V este chiar matricea de transformare<br />
din descompunerea spectrală ordonată Λ = V H BV a matricei B, iar U se poate<br />
determina cu relaţiile (exerciţiu pentru cititor)<br />
U = [ U 1 U 2 ] cu U 1 = AV(:,1:r)Σ −1<br />
1<br />
şi U 2 o completare a lui U 1 până la o matrice unitară. Din punctul de vedere<br />
al calculului numeric <strong>si</strong>ngurul punct slab al unei astfel de proceduri este însuşi<br />
calculul efectiv al matricei B. Ideea adaptării algoritmului QR <strong>si</strong>metric astfel încât<br />
să se evite formarea matricei B a fost propusă în anul 1965 de către G.H.Golub şi<br />
W.Kahan [30] şi a condus la algoritmul DVS prezentat în secţiunea 5.3. ✸<br />
5.2 Probleme de calcul conexe<br />
Con<strong>si</strong>derăm util să prezentăm în continuare câteva rezultate fundamentale care fac<br />
din DVS un instrumentfoarteputernic de rezolvarenumericăa numeroaseprobleme<br />
de algebră liniară. În cazurile în care rezolvarea este directă schemele de calcul<br />
propuse se pot implementa ca atare şi, pentru a evita repetiţii supărătoare, nu mai<br />
sunt prezentaţi algoritmi formali. Pentru problemele mai dificile detalii practice şi<br />
aspecte numerice pot fi gă<strong>si</strong>te în secţiunile 5.5 şi 5.6.<br />
5.2.1 Rangul matriceal<br />
După cum se ştie (v. şi cap. 1), două matrice echivalente au acelaşi rang 13 (o<br />
demonstraţie poate fi gă<strong>si</strong>tă în [I]). Având în vedere acest lucru din teorema 5.1<br />
rezultă imediat următorul rezultat.<br />
Propoziţia 5.2 Rangul unei matrice este egal cu numărul <strong>valorilor</strong> sale <strong>si</strong>ngulare<br />
nenule.<br />
13 Este adevărată şi reciproca, i.e. două matrice de aceleaşi dimen<strong>si</strong>uni care au acelaşi rang sunt<br />
echivalente.
384 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
5.2.2 Norme matriceale<br />
Valorile <strong>si</strong>ngulare permit definirea unei clase interesante de norme matriceale unitar<br />
(ortogonal) invariante.<br />
Propoziţia 5.3 Fie A ∈ IC m×n şi σ(A) = {σ 1 ,σ 2 ,···,σ r } valorile sale <strong>si</strong>ngulare<br />
nenule. Atunci<br />
( r∑<br />
) 1<br />
p<br />
def<br />
|A| p = σ p i , p = 1,2,... (5.42)<br />
i=1<br />
sunt norme matriceale numite p-norme Schatten. p-normele Schatten sunt invariante<br />
la transformări unitare, i.e.<br />
oricare ar fi matricele unitare W ∈ IC m×m şi Z ∈ IC n×n .<br />
Demonstraţie. Vezi [II].<br />
|WAZ| p = |A| p , (5.43)<br />
Următoareapropoziţierelevălegăturăstrânsădintrep-normeleSchattenşiunele<br />
norme matriceale uzuale.<br />
Propoziţia 5.4 Fie matricea A ∈ IC m×n şi σ 1 ,σ 2 ,···,σ r valorile sale <strong>si</strong>ngulare<br />
nenule. Avem<br />
def<br />
|A| 1 = σ 1 +σ 2 +···+σ r = ‖A‖ tr , (5.44)<br />
√<br />
|A| 2 = σ1 2 +σ2 2 +···+σ2 r = ‖A‖ F , (5.45)<br />
|A| ∞ = σ 1 = ‖A‖ 2 , (5.46)<br />
i.e. norma urmă este definită de suma <strong>valorilor</strong> <strong>si</strong>ngulare, norma Frobenius este<br />
egală cu rădăcina pătrată a sumei pătratelor <strong>valorilor</strong> <strong>si</strong>ngulare, iar norma spectrală<br />
a unei matrice coincide cu valoarea <strong>si</strong>ngulară maximă.<br />
Demonstraţie. Relaţia(5.45)rezultăimediatdin (5.3)având învedereconservarea<br />
normei Frobenius la transformările unitare (ortogonale). Expre<strong>si</strong>a (5.46) a normei<br />
spectrale rezultă din însăşi demonstraţia teoremei 5.1 (vezi (5.7)), q.e.d. ✸<br />
✸<br />
5.2.3 Numere de condiţionare<br />
Dacă matricea A este pătrată (n×n) şi ne<strong>si</strong>ngulară obţinem evaluări imediate ale<br />
numărului de condiţionarela inversare înraportcu normele matricealeuzuale. Întradevăr,<br />
este uşor de văzut din (5.3) că valorile <strong>si</strong>ngulare ale matricei inverse sunt<br />
inversele <strong>valorilor</strong> <strong>si</strong>ngulare ale lui A, i.e. dacă σ(A) = {σ 1 ,σ 2 ,···,σ n }, atunci<br />
σ(A −1 ) = {σn −1 ,σn−1 −1 ,···,σ−1 1<br />
Prinurmare,‖A −1 ‖ tr = σ1 −1 +σ−1 2 +···+σ−1 n , ‖A −1 ‖ F =<br />
}. (5.47)<br />
√<br />
σ1 −2 +σ2 −2 +···+σn<br />
−2<br />
şi ‖A −1 ‖ 2 = 1/σ n , iar numărul de condiţionare la inversare al matricei A are expre<strong>si</strong>ile<br />
κ tr (A) def<br />
= ‖A‖ tr ‖A −1 ‖ tr = (σ 1 +σ 2 +···+σ n )(σ −1<br />
1 +σ −1<br />
2 +···+σ −1<br />
n ), (5.48)
5.2. PROBLEME DE CALCUL CONEXE 385<br />
√<br />
κ F (A) def<br />
= ‖A‖ F ‖A −1 ‖ F = (σ1 2 +σ2 2 +···+σ2 n)(σ1 −2 +σ2 −2 +···+σn −2 ), (5.49)<br />
şi, respectiv,<br />
5.2.4 Pseudoinversa<br />
κ 2 (A) def<br />
= ‖A‖ 2 ‖A −1 ‖ 2 = σ 1<br />
σ n<br />
. (5.50)<br />
În continuare vom defini într-un cadru general pseudoinversa unei matrice. Deşi,<br />
în general, calculul explicit al pseudoinversei este evitat în aplicaţii, vom prezenta<br />
totuşi exprimarea ei cu ajutorul DVS, exprimare care oferă calea cea mai avantajoasă<br />
pentru un eventual calcul al acesteia.<br />
Definiţia 5.4 Fie A ∈ IC m×n . O matrice X ∈ IC n×m care satisface următoarele<br />
patru condiţii Moore-Penrose 14 ⎧⎪ ⎨<br />
⎪ ⎩<br />
AXA = A<br />
XAX = X<br />
(AX) H = AX<br />
(XA) H = XA<br />
(5.51)<br />
se numeşte pseudoinversa matricei A.<br />
Avem următoarea teoremă de existenţă şi unicitate.<br />
Teorema 5.6 Orice matrice A ∈ IC m×n admite o pseudoinversă unică. Dacă A =<br />
= UΣV H este DVS a matricei A, atunci pseudoinversa sa este<br />
unde<br />
Σ + =<br />
este pseudoinversa matricei Σ.<br />
A + = VΣ + U H , (5.52)<br />
[<br />
Σ<br />
−1<br />
1 0<br />
0 0<br />
]<br />
∈ IR n×m (5.53)<br />
Demonstraţie. Existenţa psedoinversei se demonstrează arătând mai întâi că<br />
(5.53) satisface cele patru condiţii din (5.51) şi apoi că acestea sunt satisfăcute şi de<br />
către matricea A + definită în (5.52) (exerciţiu pentru cititor). Pentru demonstraţia<br />
unicităţii, fie X,Y ∈ IC n×m două pseudoinverse ale matricei A şi D = X −Y. Din<br />
(5.51) rezultă ⎧⎪ ADA = 0, ⎨<br />
DAD +DAY +YAD = D,<br />
⎪ (AD) H = AD, ⎩<br />
(DA) H = DA.<br />
14 Cele patru condiţii Moore-Penrose sunt echivalente cu următoarele trei (vezi [II])<br />
{ AXA = A<br />
X = PA H = A H R<br />
unde P şiRsunt două matrice oarecare. Ultimeledouă condiţiiexprimăfaptul că liniileşi coloanele<br />
pseudoinversei sunt combinaţii liniare ale liniilor, respectiv ale coloanelor matricei A H .
386 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Utilizând prima din relaţiile de mai sus, din penultima obţinem (AD) H AD =<br />
= ADAD = 0, i.e. AD = 0. Similar, din prima şi ultima relaţie obţinem DA = 0.<br />
Prin urmare satisfacerea celei de a doua din relaţiile de mai sus implică D = 0, i.e.<br />
X = Y.<br />
✸<br />
Propoziţia ce urmează oferă o caracterizare interesantă a pseudoinversei.<br />
Propoziţia 5.5 Fie A ∈ IC m×n . Pseudoinversa X = A + este unica soluţie matriceală<br />
de normă Frobenius minimă a problemei<br />
min<br />
X∈IC n×m‖AX −I m‖ F . (5.54)<br />
Demonstraţie. ÎntrucâtnormaFrobenius nu este alteratăde transformăriunitare,<br />
avem<br />
r F (X) def<br />
= ‖AX −I m ‖ F = ‖U H AVV H X −U H ‖ F = ‖ΣV H X −U H ‖ F =<br />
[ ][ ] ∥ [ ]∥ ‖ΣV H XU−I m ‖ F =<br />
Σ1 0 Y11 Y ∥∥∥F 12<br />
∥<br />
−I<br />
0 0 Y 21 Y m =<br />
Σ1 Y 11 −I r Σ 1 Y ∥∥∥F 12<br />
22<br />
∥<br />
,<br />
0 I m−r<br />
undeY def<br />
= V H XU ∈ IC n×m şipartiţialuiY esteconformăcupartiţialuiΣ. Evident,<br />
r F (X)esteminimăatuncicândatât‖Σ 1 Y 12 ‖ F câtşi‖Σ 1 Y 11 −I r ‖ F suntminime, i.e.,<br />
pentru Y 12 = 0 şi Y 11 = Σ −1<br />
1 . Deci, toate matricele X ∈ IRn×m care minimizează<br />
r F (X) sunt de forma<br />
[ Dar‖X‖ F =<br />
Σ<br />
−1<br />
∥<br />
1 0<br />
Y 12<br />
X = VYU H = V<br />
[ ]<br />
Σ<br />
−1<br />
1 0<br />
U H .<br />
Y 21 Y 22<br />
]∥ ∥∥∥F<br />
esteminimăpentruY<br />
Y 21 = 0,Y 22 = 0. Înconsecinţă,<br />
22<br />
soluţia de normă Frobenius minimă pentru problema (5.54) este matricea X =<br />
= VΣ + U H = A + . ✸<br />
Din rezultatele de mai sus rezultă că valorile <strong>si</strong>ngulare nenule ale pseudoinversei<br />
sunt inversele <strong>valorilor</strong> <strong>si</strong>ngulare nenule ale matricei iniţiale, vectorii <strong>si</strong>ngulari la<br />
stânga, respectiv la dreapta ai pseudoinversei sunt vectorii <strong>si</strong>ngulari la dreapta,<br />
respectiv la stânga, ai matricei iniţiale asociaţi <strong>valorilor</strong> <strong>si</strong>ngulare corespondente.<br />
Drept consecinţă, obţinem următoarea DVS pentru pseudoinversa matricei A<br />
A + = U 1 Σ −1<br />
1 V H<br />
1 =<br />
r∑<br />
j=1<br />
unde u j , v j sunt coloanele j ale matricelor U şi, respectiv, V.<br />
5.2.5 Subspaţii liniare. Baze ortogonale<br />
v j u H j<br />
σ j<br />
, (5.55)<br />
Con<strong>si</strong>derăm important să evidenţiem faptul că se pot construi baze ortogonale ale<br />
subspaţiilor fundamentale definite de o matrice arbitrară folo<strong>si</strong>nd vectorii săi <strong>si</strong>ngulari<br />
15 .<br />
15 În capitolul 3 a fost prezentată o metodă alternativă de construcţie a bazelor ortogonale ale<br />
subspaţiilor fundamentale definite de o matrice, metodă bazată pe utilizarea factorizării QR cu
5.2. PROBLEME DE CALCUL CONEXE 387<br />
Propoziţia 5.6 Fie A ∈ IC m×n având rangA = r şi Σ = UAV H descompunerea<br />
<strong>valorilor</strong> sale <strong>si</strong>ngulare. Atunci<br />
i) Primele r coloane ale matricei unitare U formează o bază ortogonală a<br />
subspaţiului imagine al lui A, iar ultimele m − r coloane ale lui U formează o<br />
bază ortogonală a subspaţiului nucleu a lui A H , i.e. cu notaţiile (5.13) avem<br />
ImU 1 = ImA, ImU 2 = KerA H . (5.56)<br />
ii) Primele r coloane ale matricei unitare V formează o bază ortogonală a subspaţiului<br />
imagine al lui A H , iar ultimele n − r coloane ale lui V formează o bază<br />
ortogonală a subspaţiului nucleu a lui A, i.e. cu notaţiile (5.13) avem<br />
ImV 1 = ImA H , ImV 2 = KerA. (5.57)<br />
În cazul real toate aserţiunile rămân adevărate dacă operatorul hermitic este înlocuit<br />
cu operatorul de transpunere.<br />
Demonstraţie. i) Din DVS a matricei A avem A = U 1 Σ 1 V1 H . Cum matricea<br />
Σ 1 V1 H este epică obţinem ImA = ImU 1 . Evident, coloanele matricei U 2 formează o<br />
bazăortogonalăacomplementuluiortogonalînIC n alluiImU 1 =ImAcareesteacelaşi<br />
subspaţiu cu KerA H . ii) Se repetă raţionamentul de mai sus pentru matricea<br />
A H = VΣ T U H .<br />
✸<br />
Pentru scopuri mnemotehnice, în figura 5.2 sunt reprezentate, într-o formă convenţională,<br />
relaţiile dintre subspaţiile liniare definite de o matrice m×n.<br />
✬ ✩<br />
✬ ✩<br />
A IC m<br />
✬ ✩<br />
ImA H = ❅ ❅❘<br />
A<br />
ImV 1<br />
❍<br />
❅■ ❍❍❍❍❍❥<br />
✬✫<br />
❛ ✪ <br />
ImA = ImU<br />
❅<br />
1<br />
0 ❅<br />
❍❨<br />
✩ ✫✬<br />
❛ ✩✪<br />
❅ A H<br />
❍<br />
❍<br />
0<br />
❍<br />
KerA = ImV 2 ❍<br />
❍ A H<br />
✫<br />
IC n<br />
✫<br />
✪<br />
✪<br />
KerA H =<br />
ImU 2<br />
✫ ✪<br />
Fig. 5.2: Subspaţiile liniare fundamentale definite de o matrice A ∈ IC m×n şi relaţiile<br />
dintre ele<br />
pivotarea coloanelor. Deşi, din punct de vedere numeric, metoda bazată pe DVS este con<strong>si</strong>derată<br />
superioară, în majoritatea aplicaţiilor metoda bazată pe factorizarea QR cu pivotarea coloanelor<br />
este la fel de <strong>si</strong>gură fiind, în acelaşi timp, mai eficientă.
388 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
5.2.6 Proiectori ortogonali<br />
DVS oferă pe lângă baze ortogonale şi po<strong>si</strong>bilitatea de calcul a proiectorilor ortogonali<br />
pe subspaţiile fundamentale definite de o matrice dată. Deşi noţiunea de<br />
proiector ortogonal a mai fost introdusă şi utilizată în capitolele 1 şi 3, pentru<br />
comoditatea cititorului, reluăm problema în contextul DVS.<br />
Definiţia 5.5 Fie S ⊂ IC n un subspaţiu liniar şi T = S ⊥ complementul său ortogonal<br />
în IC n . O matrice P ∈ IC n×n care satisface condiţiile<br />
{ y = Px ∈ S<br />
z = x−y ∈ T , ∀x ∈ ICn (5.58)<br />
se numeşte matrice de proiecţie ortogonală sau proiector ortogonal pe S.<br />
Vectorii y = Px şi z = x−y se numesc proiecţiile ortogonale ale vectorului x<br />
pe S şi, respectiv, pe T .<br />
Definiţia de mai sus se particularizează în mod natural la subspaţii liniare din<br />
spaţiul vectorial IR n .<br />
Existenţa, unicitatea şi principalele proprietăţi ale proiectorilor ortogonali sunt<br />
prezentate sub forma unei teoreme.<br />
Teorema 5.7 Oricare ar fi subspaţiul S ⊂ IC n proiectorul ortogonal P există şi este<br />
unic determinat. Dacă vectorii v 1 ,v 2 ,...,v k formează o bază ortogonală a lui S,<br />
atunci proiectorul ortogonal are expre<strong>si</strong>a<br />
P = VV H ,<br />
V def<br />
= [v 1 v 2 ··· v k ] ∈ IC n×k . (5.59)<br />
Matricea de proiecţie ortogonală P este hermitică (<strong>si</strong>metrică în cazul real), idempotentă<br />
şi coloanele ei generează subspaţiul S, i.e.<br />
P H = P, P 2 = P, ImP = S. (5.60)<br />
Demonstraţie. Existenţa. Dacă S = {0}, atunci P = 0. Pentru un subspaţiu cu<br />
dimS = k ≥ 1 există o bază ortogonală. Vom arăta că matricea P definită de (5.59)<br />
este un proiector ortogonal pe S. Într-adevăr, y = Px = VVH x = Vw ∈ ImV = S<br />
pentru toţi x ∈ IC n şi dacă z = x − y, atunci z H V = x H V − x H VV H V = 0, i.e.<br />
z ⊥ S sau, echivalent, z ∈ S ⊥ . Unicitatea. Fie P 1 şi P 2 doi proiectori ortogonali<br />
pe acelaşi subspaţiu S. Atunci avem<br />
‖(P 1 −P 2 )x‖ 2 2 = (P 1 x) H (x−P 2 x)+(P 2 x) H (x−P 1 x) = 0, ∀x ∈ IC n<br />
întrucât, conform (5.58), S ∋ P 1 x ⊥ (x−P 2 x) ∈ S ⊥ şi S ∋ P 2 x ⊥ (x−P 1 x) ∈ S ⊥ .<br />
Obţinem (P 1 −P 2 )x = 0, ∀x ∈ IC n şi, con<strong>si</strong>derând n vectori liniar independenţi x,<br />
rezultă P 1 = P 2 .<br />
În continuare, primele două relaţii (5.60) rezultă imediat din expre<strong>si</strong>a (5.59) a<br />
unui proiector ortogonal. Vom arăta acum că ImP = S oricare ar fi proiectorul<br />
ortogonal pe S. Avem Px ∈ S, i.e. ImP ⊂ S. Reciproc, conform (5.58), pentru<br />
toţi y ∈ IC n avemPy ∈ S şi z = y−Py ∈ S ⊥ . Dacăy ∈ S, atunci avemşi y−Py ∈ S
5.2. PROBLEME DE CALCUL CONEXE 389<br />
i.e. z ∈ S ∩S ⊥ = {0}. Deci z = 0 sau y = Py, i.e. y ∈ ImP. Prin urmare rezultă<br />
S ⊂ ImP şi, datorită incluziunii precedente, ImP = S.<br />
✸<br />
Conform acestei teoreme, pentru toate matricele V ∈ IC n×k ale căror coloane<br />
formează baze ortogonale ale aceluiaşi subspaţiu, matricele VV H sunt aceleaşi.<br />
Proiectorul ortogonal pe IC n este P = I n . Proiectorul ortogonal pe un subspaţiu<br />
unidimen<strong>si</strong>onal S = Imv, unde v este un vector nenul din IC n , este P = vvH<br />
v H v .<br />
Fie A ∈ IC m×n , A = UΣV H şi subspaţiile fundamentale ImA,KerA H din IC m ,<br />
ImA H ,KerA din IC n . Aşa cum am văzut în paragraful precedent, coloanele matricelor<br />
U şi V formează baze ortogonale pentru toate aceste subspaţii. Utilizând<br />
notaţiile(5.13)şirelaţiile(5.56), (5.57), (5.59)obţinem pentru proiectoriiortogonali<br />
pe cele patru subspaţii menţionate următoarele expre<strong>si</strong>i<br />
P 1 = U 1 U1 H = AA + −proiector ortogonal pe ImA,<br />
P 2 = U 2 U2 H = I m −AA + −proiector ortogonal pe KerA H ,<br />
P 3 = V 1 V1 H = A + A −proiector ortogonal pe ImA H ,<br />
P 4 = V 2 V2 H = I n −A + A −proiector ortogonal pe KerA,<br />
(5.61)<br />
unde A + este pseudoinversa matricei A. Demonstrarea egalităţilor secunde din<br />
expre<strong>si</strong>ile de mai sus se propune ca exerciţiu pentru cititor.<br />
Exemplul 5.2 Con<strong>si</strong>derăm matricea<br />
⎡ ⎤<br />
0.9600 1.2800<br />
A = ⎣ 0.6912 0.9216 ⎦<br />
0.2016 0.2688<br />
care admite o DVS A = UΣV T definită de<br />
⎡<br />
⎤ ⎡<br />
0.8000 −0.3600 −0.4800<br />
U = ⎣ 0.5760 0.6848 0.4464 ⎦, Σ = ⎣ 2 0 ⎤<br />
]<br />
0.6000 −0.8000<br />
0 0 ⎦, V =[<br />
0.8000 0.6000<br />
0.1680 −0.6336 0.7552 0 0<br />
şi are, evident, valorile <strong>si</strong>ngulare σ(A) = {2,0}. Notând cu u j = U(:,j), j =<br />
= 1:3, şi v j = V(:,j), j = 1:2, coloanele matricelor U şi, respectiv, V cele patru<br />
subspaţii definite cu ajutorul matricei A sunt (vezi fig. 5.3) ImA = Imu 1 , KerA T =<br />
= Im[u 2 u 3 ], din IR 3 , respectiv ImA T = Imv 1 , KerA = Imv 2 , din IR 2 . Cei patru<br />
proiectori ortogonali sunt<br />
⎡<br />
P 1 = u 1 u T 1 = ⎣<br />
P 2 = [u 2 u 3 ][ u<br />
T<br />
2<br />
u T 3<br />
P 3 = v 1 v T 1 = [ 0.3600 0.4800<br />
0.4800 0.6400<br />
⎡<br />
]<br />
= ⎣<br />
0.6400 0.4608 0.1344<br />
0.4608 0.3318 0.0968<br />
0.1344 0.0968 0.0282<br />
⎤<br />
⎦,<br />
0.3600 −0.4608 −0.1344<br />
−0.4608 0.6682 −0.0968<br />
−0.1344 −0.0968 0.9718<br />
]<br />
, P 4 = v 2 v T 2 = [<br />
⎤<br />
⎦,<br />
0.6400 −0.4800<br />
−0.4800 0.3600<br />
]<br />
.
390 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
✻y 3 ❆ ✻<br />
P 2 y ❆❆❆❆❆❆❆❆<br />
❍<br />
❍ IR m IR n<br />
❍<br />
❍<br />
KerA<br />
P 3 x<br />
❍<br />
❍ ❩<br />
y<br />
❍<br />
u 3 ❆❑<br />
❆<br />
❩6<br />
<br />
✂<br />
v ❩ ❩❩❩❩❩❩❩❩❩❩❩ 1<br />
x<br />
❍<br />
❩<br />
❆<br />
y<br />
✲<br />
❩✓ ✓✓✼<br />
1<br />
x<br />
✲ 1<br />
❆ ✟✂ ✂✂✂✂✂✍ ✂<br />
v<br />
✓<br />
2<br />
✟<br />
✟<br />
<br />
✟✟✟✟✟✟✯ ✂<br />
❍ ❍❍❥<br />
✟<br />
✟<br />
0 ❍❍❍❍❍❍❍❍ ❍❍❍❍❥ u<br />
✂ 1<br />
0<br />
❆ ✂<br />
<br />
✓ ✓✓✓✓✓✓✓✓ ✓ ✓✓✓✓✼ ✓<br />
✑ ✑✑✑✑✸❩ ✓<br />
❩ ✓ ❩7 ✓<br />
✟<br />
✟ ❆ ✠ u 2<br />
✂<br />
P 4 x<br />
✟✙ ❆ P 1 y ImA<br />
y 2<br />
❆<br />
ImA T<br />
❆<br />
KerA T<br />
✓ ✓✓✓<br />
❆<br />
❆ <br />
x 2<br />
Fig. 5.3: Subspaţii liniare şi proiecţii ortogonale<br />
(Precizăm că, în majoritatea aplicaţiilor, proiectorii sunt utilizaţi în forma factorizată<br />
din (5.61).)<br />
În figura 5.3 sunt prezentate acţiunile acestor proiectori ortogonali asupra a doi<br />
vectori arbitrari y şi x din IR 3 şi, respectiv, IR 2 .<br />
✸<br />
5.2.7 Operaţii cu subspaţii liniare<br />
În aplicaţiile cu suport geometricaparede multe ori nece<strong>si</strong>tateade a calculasubspaţii<br />
liniare derivate din subspaţii existente cu ajutorul operaţiilor uzuale. Natural,<br />
DVS poate fi de un real folos în astfel de <strong>si</strong>tuaţii. În continuare, vom con<strong>si</strong>dera<br />
că subspaţiile date aparţin spaţiului liniar IC m 16 şi sunt cunoscute prin baze (nu<br />
neapărat ortogonale) ale acestora, iar vectorii din baze se scriu sub forma unor<br />
coloane de matrice omonime, i.e. X = ImX, Y = ImY 17 etc. Subspaţiile rezultat<br />
vor fi calculate prin determinarea unor baze ortogonale ale acestora. Aşa cum s-a<br />
mai precizat, aspectele numerice legate de utilizarea calculului aproximativ vor fi<br />
discutate într-o altă secţiune a acestui capitol aici admiţând ipoteza po<strong>si</strong>bilităţii<br />
unui calcul exact.<br />
A. Incluziune şi egalitate. Fie X = ImX şi Y = ImY două subspaţii liniare<br />
din IC n cu dimX ≤ dimY. Este uşor de văzut că incluziunea X ⊆ Y are loc dacă şi<br />
numai dacă<br />
rangY = rang[X Y ] (5.62)<br />
şi, prin urmare incluziunea poate fi testată pe această bază calculând DVS a matricelor<br />
Y şi [X Y ]. O cale alternativă, mai economică, se bazează pe faptul că<br />
16 Pentru subspaţii din IR m se procedează absolut <strong>si</strong>milar.<br />
17 Matricele X, Y nu sunt neapărat monice, i.e. pe lângă vectorii din bază pot conţine drept<br />
coloane şi combinaţii liniare ale acestora.
5.2. PROBLEME DE CALCUL CONEXE 391<br />
X ⊆ Y atunci şi numai atunci când coloanele matricei X aparţin lui Y. Numeric,<br />
apartenenţa unui vector la un subspaţiu se poate constata verificând coincidenţa<br />
vectorului respectiv cu proiecţia sa ortogonală pe acel subspaţiu. În consecinţă,<br />
testul incluziunii X ⊆ Y se poate face cu următoarea schemă de calcul.<br />
X ⊆ Y<br />
1. Se calculează DVS Y = UΣV H a matricei Y şi fie r = rangY<br />
2. Dacă ‖U 1 U H 1 X −X‖ = 0, unde U 1 = U(:,1:r), atunci X ⊆ Y<br />
Egalitatea a două subspaţii X = ImX şi Y = ImY se testează e.g. aplicând de două<br />
ori schema de mai sus pentru verificarea incluziunilor X ⊆ Y şi Y ⊆ X.<br />
B. Suma a două subspaţii liniare. Subspaţiul sumă al subspaţiilor X =<br />
= ImX, Y = ImY din IC n se defineşte prin<br />
S def<br />
= X +Y = {s ∈ IC n | s = x+y, x ∈ X, y ∈ Y} (5.63)<br />
şi, este <strong>si</strong>mplu de constatat, poate fi scris sub forma<br />
S = ImS, unde S = [X Y ]. (5.64)<br />
Înconsecinţă, dacăS = UΣV H esteDVSaluiS, atuncir = rangS estedimen<strong>si</strong>unea<br />
spaţiului sumă, iar coloanele matricei U 1 = U(:,1:r) formează o bază ortogonală<br />
a lui S. Evident, procedura poate fi extinsă pentru calculul sumei a mai multor<br />
subspaţii liniare. Celelalte coloane ale matricei U şi coloanele matricei V definesc<br />
subspaţiievidenţiateîntr-unparagrafanterior. Deexemplu, coloanelematriceiU 2 =<br />
= U(:,r+1 : m) formează o bază ortogonală a subspaţiului T = S ⊥ = X ⊥ ∩Y ⊥ .<br />
C. Intersecţia. Subspaţiul intersecţie<br />
T def<br />
= X ∩Y = {t ∈ IC n | t ∈ X & t ∈ Y } (5.65)<br />
a subspaţiilor X = ImX, Y = ImY din IC n se poate calcula plecând de la ultima<br />
observaţie din aliniatul precedent, i.e. utilizând relaţia<br />
ceea ce presupune calculul a trei DVS conform schemei<br />
T = X ∩Y = (X ⊥ +Y ⊥ ) ⊥ (5.66)<br />
X ∩Y – v1<br />
1. Se calculează o bază B X pentru X ⊥ = KerX H , folo<strong>si</strong>nd DVS a matricei X<br />
2. Se calculează o bază B Y pentru Y ⊥ = KerY H , folo<strong>si</strong>nd DVS a matricei Y<br />
3. Se calculează baza căutată a subspaţiului T = X ∩Y, utilizând DVS a<br />
matricei [B X B Y ]<br />
O procedură alternativă, mai economică, se bazează pe DVS S = [X Y ] = UΣV H<br />
a matricei S din (5.64) din care rezultă<br />
[X Y ]V(:,r+1 : n x +n y ) = XV 2X +YV 2Y = 0,
392 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
unde r este rangul lui S, cu n x , n y s-a notat numărul de coloane al matricelor X,<br />
respectiv Y, V 2X = V(1:n x ,r+1 : n x +n y ) şi V 2Y = V(n x +1:n x +n y ,r+1 : n x +n y ).<br />
Avem<br />
T = X ∩Y = ImXV 2X = ImYV 2Y . (5.67)<br />
Într-adevăr, e.g. dacă t ∈ ImXV 2X , atunci pentru un anumit vector u avem t =<br />
= XV 2X u = −YV 2Y u, respectiv, cu notaţii evidente, t = Xw = Yz, i.e. t ∈ T .<br />
Reciproc, dacă t ∈ T , atunci [ t ] = Xw = −Yz pentru anumiţi [ vectori ] w şi z, de<br />
w V2X<br />
unde Xw + Yz = 0, i.e. ∈ KerS = ImV<br />
z<br />
2 cu V 2 = . Prin urmare,<br />
[ ]<br />
V 2Y<br />
w<br />
= V<br />
z 2 u pentru un anumit u, i.e. w = V 2X u şi z = V 2Y u, de unde rezultă<br />
t ∈ ImXV 2X şi t ∈ ImYV 2Y . Deci, (5.67) este adevărată şi poate fi utilizată pentru<br />
calculul unei baze ortogonale a subspaţiului intersecţie conform următoarei scheme<br />
de calcul.<br />
X ∩Y – v2<br />
1. Se calculează DVS S = UΣV H a matricei S = [X Y ]<br />
2. Se calculează DVS T = Ũ˜ΣṼ H a matricei T = XV 2X sau T = YV 2Y<br />
Notăm cu ρ rangul matricei T. Baza ortogonală căutată a subspaţiului<br />
intersecţie T este Ũ(:,1:ρ)<br />
D. Aplicaţii liniare. Fie o aplicaţie liniară A : IC n → IC m . Pentru baze<br />
fixate, aplicaţiei A i se asociază matricea A ∈ IC m×n astfel încât corespondenţei<br />
x ↦→ y = A(x) i se asociază relaţia numerică y = Ax. Fie acum un subspaţiu liniar<br />
X din IC n . Atunci mulţimea<br />
Y = AX = {y ∈ IC m | y = Ax, x ∈ X } (5.68)<br />
esteunsubspaţiuliniardinIC m numitsubspaţiul imaginealuiX prinaplicaţialiniară<br />
definită de A. Problema este următoarea: date matricea A şi matricea X ∈ IC n×k<br />
astfel încât X = ImX, se cere calculul unei baze ortogonalea subspaţiului Y = AX.<br />
Este uşor de văzut că<br />
Y = AImX = ImAX, (5.69)<br />
de unde rezultă imediat faptul că o bază ortogonală a subspaţiului Y este dată<br />
de coloanele matricei U 1 = U(:,1 : r y ) din DVS a matricei Y = AX = UΣV H ,<br />
unde r y este rangul lui Y. Rezultate numerice mai bune se obţin [XIX] dacă mai<br />
întâi se determină o bază ortogonală Ũ1 a lui X şi apoi se ţine seama de faptul că<br />
Y = ImAŨ1. Schema de calcul este următoarea.<br />
Y = AX<br />
1. Se calculează DVS X = Ũ˜ΣṼ H . Fie r x rangul lui X<br />
2. Se calculează B = AŨ(:,1:r x)<br />
3. Se calculează DVS B = UΣV H . Dacă r y este rangul lui B, atunci baza<br />
căutată a subspaţiului Y este dată de coloanele matricei U 1 = U(:,1:r y )
5.3. ALGORITMUL DVS 393<br />
5.3 Algoritmul DVS<br />
După cum s-a precizat, valorile <strong>si</strong>ngulare ale matricei A ∈ IC m×n sunt rădăcinile<br />
pătrate nenegative ale <strong>valorilor</strong> <strong>proprii</strong> ale uneia dintre matricele hermitice pozitiv<br />
semidefiniteB = A H AsauC = AA H (veziteorema5.2). Maimult, existăconexiuni<br />
importante [ dintre ] DVS a[ matricei A]<br />
şi forma Schur a matricelor hermitice F =<br />
0 A<br />
H 0 A<br />
= sau G =<br />
A 0 A H (vezi propoziţia 5.1). Natural, în cazul real,<br />
0<br />
conjugarea nu are nici un efect, astfel că matricele B = A T A, C = AA T sunt<br />
<strong>si</strong>metrice, pozitiv semidefinite, iar matricele F şi G <strong>si</strong>metrice.<br />
Teorema 5.2 sugerează o po<strong>si</strong>bilitate de calcul a <strong>valorilor</strong> <strong>si</strong>ngulare ale unei matrice<br />
A calculând valorile <strong>proprii</strong> ale uneia dintre matricele B, C, F sau G, cu<br />
ajutorul algoritmului QR <strong>si</strong>metric. Într-o astfel de abordare, determinarea matricelor<br />
unitare (în cazul real, ortogonale) U şi V se poate face conform indicaţiilor<br />
din observaţia 5.3.<br />
Totuşi, calculul explicit al matricelor B sau C poate conduce la o pierdere de<br />
informaţie, după cum se poate vedea din exemplul următor.<br />
Exemplul 5.3 Fie matricea<br />
⎡<br />
A = ⎣<br />
1 1<br />
0.001 0<br />
0 0.001<br />
având valorile <strong>si</strong>ngulare σ(A) = { √ 2.000001,0.001}. Avem<br />
[ ] 1.000001 1<br />
B = A T A =<br />
.<br />
1 1.000001<br />
Într-un format virgulă mobilă având mantisa cu mai puţin de 7 cifre zecimale,<br />
matricea B este reprezentată prin<br />
[ ] 1 1 ˆB = ,<br />
1 1<br />
având spectrul λ(ˆB) = {2,0}, valorile <strong>si</strong>ngulare calculate prin procedura sugerată<br />
mai sus fiind σ(A) = { √ 2,0}, i.e. o evaluare cu o precizie mult inferioară celei de<br />
reprezentare.<br />
✸<br />
O metodă mai performantă pentru calculul DVS – propusă de G.H. Golub şi<br />
W. Kahan [30] în 1965 şi cunoscută sub denumirea de algoritm DVS 18 – evită<br />
formarea explicită a matricelor B sau C, construind recurent un şir de matrice unitar<br />
(ortogonal) echivalente cu matricea A, convergent către o matrice diagonală.<br />
<strong>Calculul</strong> DVS al matricei diagonale limită este trivial după care, ordonând corespunzător<br />
elementele diagonale, se obţine matricea Σ ce defineşte DVS a matricei<br />
iniţiale. Matricele U şi V se calculează prin acumularea transformărilor. Ideea de<br />
18 În literatura de specialitate de limbă engleză acronimul utilizat este SVD (Singular Value<br />
Decompo<strong>si</strong>tion).<br />
⎤<br />
⎦,
394 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
bază a algoritmului DVS constă în faptul că matricele A k , k = 1,2,... ale şirului<br />
DVS auproprietateacămatriceleB k = A H k A k (în cazulrealB k = A T k A k) formează<br />
şirul QR hermitic (<strong>si</strong>metric) corespunzător, asociat matricei B. De aceea, se spune<br />
că algoritmul DVS este o variantă ”mascată” a algoritmului QR <strong>si</strong>metric.<br />
Algoritmul DVS are două etape.<br />
1. Prima etapă constă în reducerea matricei A, prin transformări unitare (ortogonale)<br />
de echivalenţă, la o formă superior bidiagonală J astfel încât matricea<br />
tridiagonală T = J H J să coincidă cu cea produsă de prima etapă a algoritmului<br />
QR <strong>si</strong>metric aplicat lui B.<br />
2. Etapa a doua constă în reducerea iterativă a matricei J la forma diagonală<br />
prin anularea a<strong>si</strong>mptotică a elementelor supradiagonale prin transformări unitare<br />
(ortogonale) bilaterale ce corespund paşilor algoritmului QR <strong>si</strong>metric cu deplasare<br />
implicită aplicaţi lui B.<br />
Vom prezenta în continuare detaliile acestui algoritm.<br />
5.3.1 Reducerea la forma bidiagonală<br />
Baza teoretică a primei etape a algoritmului DVS este dată de următorul rezultat.<br />
Teorema 5.8 Fie o matrice A ∈ IC m×n . Există matricele unitare U ∈ IC m×m şi<br />
V ∈ IC n×n astfel încât matricea<br />
J = U H AV ∈ IC m×n (5.70)<br />
este superior bidiagonală, i.e. J(i,j) = 0, ∀i > j şi ∀j > i+1.<br />
În cazul real, matricele U şi V pot fi reale (i.e. ortogonale) şi, prin urmare, şi<br />
matricea bidiagonală J este, în acest caz, reală.<br />
Demonstraţie. Vom da o demonstraţie constructivă, arătând cum se calculează<br />
efectiv matricele unitare U şi V din (5.70). Pentru fixarea ideilor, presupunem că<br />
m ≥ n 19 , în care caz procedura are p = min(m−1,n) paşi.<br />
Pasul 1 ◦ . În primul rând, există reflectorul (complex) U 1, de ordinul m, astfel<br />
încât (U1 HA)(2 : m,1) = 0. După aplicarea reflectorului U 1, există reflectorul<br />
V 2 , de ordinul n şi indice 2 (i.e. având structura V 2 = diag(1,Ṽ2)) astfel încât<br />
((U1 HA)V 2)(1,3:n) = 0. Datorită structurii menţionate a reflectorului V 2 , postmultiplicarea<br />
cu acesta nu alterează zerourile create în prima coloană. Prin urmare,<br />
def<br />
matricea A ← A 1 = U1 HAV 2 este superior bidiagonală în prima coloană şi prima<br />
linie.<br />
Pasul k ◦ def<br />
. Presupunem că, după primii k − 1 paşi, matricea A ← A k−1 =<br />
def<br />
= Uk−1 H ...UH 1 AV 2...V k este superior bidiagonală în primele k − 1 coloane şi<br />
primele k − 1 linii. Acum, există reflectorul (complex) U k = diag(I k−1 ,Ũk) astfel<br />
încât (Uk HA k−1)(k +1 : m,k) = 0. După aplicarea reflectorului U k , ne folo<strong>si</strong>m<br />
de existenţa reflectorului V k+1 pentru anularea elementelor (k,k+2 : n), i.e. astfel<br />
încât ((Uk HA k−1)V k+1 )(k,k+2 : n) = 0. Este uşor de văzut că structura reflectorilor<br />
19 Dacă m < n se poate calcula DVS a matricei G = A H . Dacă G = UΣV H , atunci DVS a<br />
matricei A este, evident, A = VΣ T U H .
5.3. ALGORITMUL DVS 395<br />
utilizaţi la acest pas a<strong>si</strong>gură conservarea zerourilor create la paşii precedenţi şi, prin<br />
urmare, procesul de bidiagonalizare, iniţiat la pasul 1 ◦ , poate fi continuat.<br />
În final, după p paşi, matricea A este suprascrisă de matricea bidiagonală<br />
A ← J def<br />
= A p = U H p ···U H 2 U H 1 AV 2 V 3···V n−1 = U H AV. (5.71)<br />
Matricele unitare de transformare U şi V au, evident, expre<strong>si</strong>ile<br />
Demonstraţia este completă.<br />
U = U 1 U 2···U p , V = V 2 V 3···V n−1 . (5.72)<br />
În demonstraţia teoremei 5.8 s-a scos în evidenţă faptul că întregul proces de<br />
diagonalizaresepoateefectuapeloc, înlocaţiiledememoriealeelementelormatricei<br />
A. Mai mult, aşa cum se va vedea mai departe, locaţiile elementelor matricei A<br />
pot servi pentru memorarea elementelor definitorii ale matricelor de transformare<br />
utilizate. De asemenea, avându-se în vedere faptul că procesul iterativ conservă<br />
structura superior bidiagonală, în continuare vom memora matricea bidiagonală J<br />
numai prin vectorii f ∈ IC n al elementelor diagonale şi g ∈ IC n−1 al elementelor<br />
supradiagonale (în cazul m ≥ n con<strong>si</strong>derat) conform scrierii<br />
⎡<br />
J = U H AV =<br />
⎢<br />
⎣<br />
⎤<br />
f 1 g 1<br />
f 2 g 2<br />
. .. . ..<br />
. .. gn−1<br />
. (5.73)<br />
f n ⎥<br />
⎦<br />
✸<br />
Algoritmul de bidiagonalizare, prezentat în continuare, reproduce fidel ideile<br />
demonstraţiei teoremei 5.8. Vom utiliza reflectori hermitici, caz în care matricea<br />
bidiagonală care se obţine este, în general, complexă. Pentru un plus de claritate<br />
prezentăm mai întâi o schemă de calcul.<br />
JQ<br />
1. p = min(m−1,n)<br />
2. Pentru k = 1 : p<br />
1. Se calculează reflectorul U k astfel încât<br />
(Uk H A)(k +1 : m,k) = 0.<br />
2. A ← Uk HA<br />
3. Dacă k < n−1, atunci<br />
1. Se calculează reflectorul V k+1 astfel încât<br />
(AV k+1 )(k,k +2 : n) = 0.<br />
2. A ← AV k+1<br />
3. Dacă se doreşte calculul matricei U, atunci<br />
1. U ← I m<br />
2. Pentru k = p : −1 : 1<br />
1. U ← U k U
396 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
4. Dacă se doreşte calculul matricei V, atunci<br />
3. V ← I n<br />
4. Pentru k = n−2 : −1 : 1<br />
1. V ← V k+1 V<br />
Utilizând procedurile din tabelul 4.3 (vezi cap. 4), algoritmul corespunzător<br />
schemei de calcul de mai sus se scrie astfel.<br />
Algoritmul 5.1 (JQc – Reducerea la forma bidiagonală) (Dată matricea<br />
A ∈ IC m×n , cu m ≥ n, algoritmul calculează reflectorii hermitici<br />
U k , k = 1 : p, p = min(m−1,n), şiV k , k = 2 : n−1, astfel încâtmatricea<br />
J = U H p ...UH 1 AV 2...V n−1 = U H AV este bidiagonală. Matricea J este<br />
obţinută prin vectorii f ∈ IC n şi g ∈ IC n−1 ai elementelor sale diagonale,<br />
respectiv supradiagonale. Opţional, se acumulează matricele unitare de<br />
transformare U şi/sau V. Opţiunea se exprimă cu ajutorul variabilelor<br />
logiceopt 1 şiopt 2 carepotluavalorile’da’sau’nu’. Dacănusedoreşte<br />
acumularea, atunci pentru matricea respectivă se returnează matricea<br />
unitate de dimen<strong>si</strong>une corespunzătoare.)<br />
1. p = min(m−1,n)<br />
2. Pentru k = 1 : p<br />
1. [c,A(k : m,k),β k ] = Hc(A(k : m,k))<br />
2. f k = c 1<br />
3. Dacă k < n atunci<br />
1. A(k : m,k +1 : n) =<br />
= Hcs(A(k : m,k),β k ,A(k : m,k +1 : n))<br />
4. Dacă k < n−1 atunci<br />
1. [c,v,γ k+1 ] = Hc((A(k,k +1 : n)) T )<br />
2. A(k,k +1 : n) = v T<br />
3. g k = c 1<br />
4. A(k +1 : m,k +1 : n) =<br />
= Hcd(A(k : m,k +1 : n),v,γ k+1 )<br />
5. g n−1 = A(n−1,n)<br />
3. Dacă m = n atunci<br />
1. f n = A(n,n)<br />
4. U = I m , V = I n<br />
5. Dacă opt 1 = ′ da ′ atunci<br />
1. Pentru k = p : −1 : 1<br />
1. U(k : m,k : m) = Hcs(A(k : m,k),β k ,U(k : m,k : m))<br />
6. Dacă opt 2 = ′ da ′ atunci<br />
1. Pentru k = n−2 : −1 : 1<br />
1. V(k +1 : n,k +1 : n) =<br />
= Hcs((A(k,k+1 : n)) T ,γ k+1 ,V(k +1 : n,k +1 : n))
5.3. ALGORITMUL DVS 397<br />
Comentarii. Semnalăm, în primul rând, faptul că vectorul ũ k ce defineşte reflectorul<br />
hermitic Ũk (din structurareflectorului U k ) este memorat înlocaţiile (k : m,k)<br />
ale matricei A. Pentru a fi po<strong>si</strong>bil acest lucru, în afara elementelor (k +1 : m,k),<br />
anulate la pasul curent k de către U k , este utilizată şi locaţia (k,k), ceea ce presupune<br />
salvarea prealabilă a elementului diagonal calculat a kk<br />
def<br />
= f k . Similar,<br />
vectorul ṽ k+1 definitoriu pentru reflectorul Ṽk+1 = I n−k − ṽk+1ṽk+1<br />
H , este memorat<br />
γ k+1<br />
def<br />
în locaţiile (k,k +1 : n) după ce, în prealabil, a fost salvat elementul a k,k+1 = g k .<br />
Pentru a face po<strong>si</strong>bil acest lucru fără modificarea procedurilor utilizate a fost introdus<br />
un vector de lucru c. De asemenea, pentru a nu introduce o nouă procedură<br />
de calcul a unui reflector care să anuleze componentele (2 : n) ale unui vector linie<br />
n-dimen<strong>si</strong>onal, s-a utilizat un vector de lucru v.<br />
Sintaxa de utilizare a algoritmului de mai sus este<br />
[f,g,U,V ] = JQc(A,opt 1 ,opt 2 ).<br />
În cazul datelor iniţiale reale, toate matricele de transformare sunt reale, i.e. ortogonale,<br />
iar algoritmul de mai sus se adapteazăprin <strong>si</strong>mpla substituire a procedurilor<br />
pentru date complexe cu cele pentru date reale (concret, se înlocuieşte <strong>si</strong>gla c din<br />
numele procedurilor cu <strong>si</strong>gla r). De aceeea ne mărginim să prezentăm pentru acest<br />
caz numai <strong>si</strong>ntaxa de utilizare<br />
[f,g,U,V ] = JQr(A,opt 1 ,opt 2 ).<br />
Efortul de calcul a<strong>si</strong>mptotic implicat de execuţia variantei reale, fără acumularea<br />
transformărilor, este N op = 4mn 2 − 4 3 n3 flopi, iar în cazul complex, dacă avem<br />
în vedere echivalările operaţiilor cu numere complexe cu cele cu numere reale (v.<br />
cap. 4), de câteva ori mai mare. Tot în varianta reală, pentru calculul matricei de<br />
transformare U, sunt necesare N ′ op = 4m 2 n− 4 3 n3 flopi, respectiv, pentru calculul<br />
matricei de transformare V se execută N op ′′ = 4 3 n3 flopi suplimentari. De reţinut<br />
ordinea inversăde acumulareatransformărilorcare este mai economică, exploatând<br />
”umplerea” progre<strong>si</strong>vă a matricelor de transformare.<br />
✸<br />
Observaţia 5.4 În cazul în care m ≫ n este po<strong>si</strong>bilă o uşoară îmbunătăţire a<br />
eficienţei dacă înaintea aplicării algoritmului JQ are loc o prealabilă triangularizare<br />
unitară(ortogonală)amatriceiA. Concret, procedura,numită”R-bidiagonalizare”,<br />
este următoarea.<br />
[ ]<br />
RJQ 1. Se efectuează triangularizarea unitară Q H R1<br />
A = R = ,<br />
0<br />
cu R 1 o matrice n×n superior triunghiulară.<br />
2. [f,g,Ũ,V ] = JQ(R 1,opt 1 ,opt 2 )<br />
3. Dacă opt 1 = ′ da ′ atunci<br />
1. U = Qdiag(Ũ,I m−n).
398 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Complexitatea acestei proceduri este apreciată, pentru date reale, la Nop R ≈ 2mn2 +<br />
+2n 3 , fără acumularea transformărilor. Rezultă N op − Nop R = 2n 2 (m − 5 3n), i.e.<br />
R-bidiagonalizarea devine a<strong>si</strong>mptotic mai eficientă dacă m > 5 3n. Con<strong>si</strong>deraţii<br />
<strong>si</strong>milare asupra complexităţii se pot face şi pentru diverse variante de acumulare a<br />
transformărilor (vezi [VI]).<br />
✸<br />
Observaţia 5.5 Utilizând reflectori complecşi nehermitici (vezi cap. 3) adecvat<br />
calculaţi, este po<strong>si</strong>bilă reducerea unei matrice complexe la o matrice bidiagonală<br />
reală prin transformăriunitare de echivalenţă. Această ver<strong>si</strong>une a algoritmului JQc<br />
permite utilizarea exclu<strong>si</strong>vă a unei aritmetici reale în faza iterativă a algoritmului<br />
DVS şi este folo<strong>si</strong>tă, de exemplu, în pachetul de programe LAPACK. Detaliile<br />
algoritmului fac obiectul exerciţiului 5.15.<br />
✸<br />
5.3.2 Faza iterativă a algoritmului DVS<br />
Faza iterativă construieşte un şir de matrice<br />
J = J 1 , J 2 , ···, J k , ··· (5.74)<br />
[ ]<br />
Σ1 0<br />
convergent către matricea diagonală reală Σ= , Σ<br />
0 0 1 =diag(σ 1 ,σ 2 ,...,σ r ),<br />
astfel încât şirul matriceal<br />
T 1 = J H 1 J 1 , T 2 = J H 2 J 2 , ..., T k = J H k J k , ... (5.75)<br />
este şirul QR <strong>si</strong>metric cu deplasare implicită convergent către forma Schur<br />
[ ] Σ<br />
2<br />
S = 1 0<br />
∈ R<br />
0 0<br />
n×n (5.76)<br />
a matricei tridiagonale hermitice (<strong>si</strong>metrice) T = T 1 .<br />
A. Un pas DVS<br />
Presupunem, în continuare, că matricea superior bidiagonală J ∈ IC m×n este dată<br />
prin vectorii f ∈ IC n şi g ∈ IC n−1 conform (5.73). Având în vedere faptul că transformările<br />
ce definesc un pas QR conservă structura tridiagonală a matricelor T k ,<br />
anticipăm afirmând că un pas DVS va conserva structura bidiagonală astfel încât<br />
toate calculele (mai puţin acumularea transformărilor) pot avea loc în locaţiile de<br />
memorie ale <strong>vectorilor</strong> f şi g.<br />
Vom determina transformările <strong>vectorilor</strong> f şi g aferente unui pas DVS prin<br />
transferarea către aceştia a aplicării unui pas al algoritmului QR <strong>si</strong>metric cu deplasare<br />
implicită matricei tridiagonale<br />
T def<br />
= T k = J H k J k<br />
def<br />
= J H J. (5.77)<br />
În primul rând, aplicabilitatea variantei cu deplasare implicită este condiţionată<br />
de ireductibilitatea matricei T (sau, mai bine zis, iteraţia se aplică numai părţii<br />
ireductibile a matricei T). Ţinând seama de faptul că<br />
t i,i+1 = ¯f i g i , t i+1,i = f i ḡ i , i = 1 : n−1, (5.78)
5.3. ALGORITMUL DVS 399<br />
condiţia de ireductibilitate devine<br />
f i ≠ 0, g i ≠ 0, i = 1 : n−1. (5.79)<br />
În conformitate cu cele prezentate în capitolul precedent (vezi secţiunea 4.8),<br />
un pas QR <strong>si</strong>metric cu deplasare implicită presupune transformările prezentate<br />
mai jos. Prezentăm, în paralel, efectele acestor transformări la nivelul <strong>vectorilor</strong> f<br />
şi g care definesc matricea bidiagonală J, evidenţiind astfel ideile unui pas DVS<br />
Golub-Kahan.<br />
1. <strong>Calculul</strong> deplasării<br />
µ = t nn = |g n−1 | 2 +|f n | 2 (5.80)<br />
sau, mai bine, al deplasării Wilkinson, care este valoarea proprie a matricei<br />
[<br />
|gn−2 |<br />
T(n−1 : n,n−1 : n) =<br />
2 +|f n−1 | 2 ¯f ] [ ]<br />
n−1 g n−1 not α β<br />
f n−1 ḡ n−1 |g n−1 | 2 +|f n | 2 = ¯β γ<br />
(5.81)<br />
cea mai apropiată de t nn . Concret, această deplasare are expre<strong>si</strong>a<br />
µ = γ +δ −sgn(δ) √ δ 2 +|β| 2 , δ = α−γ , (5.82)<br />
2<br />
şi se calculează economic şi fiabil cu relaţiile<br />
δ = |g n−2| 2 +|f n−1 | 2 −|g n−1 | 2 −|f n | 2<br />
, η = |f n−1 | 2 |g n−1 | 2 ,<br />
2<br />
µ = |g n−1 | 2 +|f n | 2 +<br />
În cazul real, particularizările se obţin imediat.<br />
η<br />
δ +sgn(δ) √ δ 2 +η . (5.83)<br />
2. Se calculează matricea unitară U 1 astfel încât prima sa coloană U 1 e 1 să coincidă<br />
cu prima coloană a matricei de transformare care defineşte un pas QR <strong>si</strong>metric<br />
cu deplasare explicită, i.e.<br />
⎡<br />
U 1 e 1 = ρ<br />
⎢<br />
⎣<br />
t 11 −µ<br />
t 21<br />
0<br />
.<br />
0<br />
⎤<br />
⎡<br />
= ρ<br />
⎥ ⎢<br />
⎦ ⎣<br />
|f 1 | 2 −µ<br />
f 1 ḡ 1<br />
0<br />
.<br />
0<br />
⎤<br />
, (5.84)<br />
⎥<br />
⎦<br />
unde ρ esteun factorscalarde normare. Introducândvectorul de deplasare implicită<br />
aferent unui pas DVS<br />
[ ] [ ]<br />
w def t11 −µ |f1 |<br />
= =<br />
2 −µ<br />
, (5.85)<br />
t 21 f 1 ḡ 1
400 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
matricea U 1 poate fi o rotaţie (complexă) P 12 = diag(˜P 12 ,I m−2 ) astfel încât<br />
[ ]<br />
˜P 12w H ∗<br />
= . (5.86)<br />
0<br />
3. <strong>Calculul</strong> matricei T ← C = P H 12 TP 12, care altera structura tridiagonală în<br />
poziţiile (3,1) şi (1,3), se transferă în calculul matricei<br />
K = JP 12 (5.87)<br />
care evidenţiază o alterare a matricei superior bidiagonale în poziţia (2,1).<br />
4. Aplicarea algoritmului TQ matricei C, pentru refacerea structurii tridiagonale<br />
a matricei C se transferă, în cadrul unui pas DVS, în aplicarea unui algoritm<br />
JQ adaptat pentru refacereastructurii superior bidiagonalea matricei J prin transformări<br />
unitare bilaterale<br />
J ← J ′ = U H n−1U H n−2···U H 1 KV 2···V n−1 , (5.88)<br />
unde U k , V k pot fi rotaţii (complexe) sau reflectori (complecşi). Schema de calcul<br />
este următoarea.<br />
1. Pentru k = 1 : n−1<br />
def<br />
1. Se calculează rotaţia U k = P k,k+1 astfel încât<br />
(Uk H K)(k +1,k) = 0<br />
2. K ← Uk H K % Se anulează elementul (k +1,k) şi<br />
% se alterează zeroul din poziţia (k,k +2)<br />
3. Dacă k < n−1<br />
def<br />
1. Se calculează rotaţia V k+1 = P k+1,k+2 astfel încât<br />
(KV k+1 )(k,k +2) = 0.<br />
2. K ← KV k+1 % Se anulează elementul (k,k +2) şi<br />
% se alterează zeroul din poziţia (k +2,k +1)<br />
Pentru a exemplifica adaptarea algoritmului JQ la <strong>si</strong>tuaţia structurală caracteristică<br />
unei iteraţii DVS cu deplasare implicită, con<strong>si</strong>derăm cazul dimen<strong>si</strong>onal<br />
m = 5, n = 3. Ca şi până acum, încadrările indică liniile sau coloanele afectate,<br />
” + ” zerourile alterate, iar ”∅” elementele anulate, toate referindu-se la transformarea<br />
curentă.<br />
⎡<br />
J =<br />
⎢<br />
⎣<br />
⎡<br />
J ← U1 H J = ⎢<br />
⎣<br />
× × 0<br />
0 × ×<br />
0 0 ×<br />
0 0 0<br />
0 0 0<br />
× × +<br />
∅ × ×<br />
0 0 ×<br />
0 0 0<br />
0 0 0<br />
⎤<br />
⎡<br />
⎥<br />
⎦ , J ← JP 12 =<br />
⎢<br />
⎣<br />
⎤<br />
⎡<br />
, J ← JV 2 =<br />
⎥ ⎢<br />
⎦ ⎣<br />
× ×<br />
+ ×<br />
0 0<br />
0 0<br />
0 0<br />
×<br />
0<br />
0<br />
0<br />
0<br />
0<br />
×<br />
×<br />
0<br />
0<br />
× ∅<br />
× ×<br />
+ ×<br />
0 0<br />
0 0<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦
5.3. ALGORITMUL DVS 401<br />
⎡<br />
J ← U2 H J =<br />
⎢<br />
⎣<br />
× × 0<br />
0 × ×<br />
0 ∅ ×<br />
0 0 0<br />
0 0 0<br />
Matricea succesor K = J ′ este bidiagonală şi<br />
⎤<br />
.<br />
⎥<br />
⎦<br />
şi<br />
T ′ = J ′H J ′ = (U H n−1···UH 1 JP 12V 2···V n−1 ) H U H n−1···UH 1 JP 12V 2···V n−1 =<br />
= V H n−1···V H<br />
2 P H 12J H U 1···U n−1 U H n−1···U H 1 JP 12 V 2···V n−1 = Q H J H JQ (5.89)<br />
Qe 1 = P 12 V 2···V n−1 e 1 = P 12 e 1 (5.90)<br />
este aceeaşi cu cea corespunzătoare pasului QR <strong>si</strong>metric implicit pentru matricea<br />
tridiagonală T.<br />
În consecinţă, matricea J k = J, care defineşte şirul DVS este astfel calculată<br />
încât matricea T k = J H k J k defineşte şirul QR pentru matricea hermitică B = A H A<br />
şi, prin urmare, este convergent la forma diagonală.<br />
În conformitate cu cele prezentate mai sus, o iteraţie DVS este implementată<br />
de următorul algoritm.<br />
Algoritmul 5.2 (IT DVSc – Un pas DVS Golub-Kahan) (Daţi<br />
vectorii f ∈ IC n şi g ∈ IC n−1 care definesc matricea bidiagonală (5.73)<br />
şi matricele unitare U ∈ IC m×m şi V ∈ IC n×n , algoritmul calculează<br />
matricea succesor J ← J ′ = Q H JQ din şirul DVS, mai exact, noii<br />
vectori f ′ şi g ′ care suprascriu vectorii f şi g. Opţional, se actualizează<br />
matricele U şi/sau V. Opţiunea se exprimă prin intermediul variabilelor<br />
logice opt 1 şi opt 2 , care pot lua valorile logice ’da’ şi ’nu’. Dacă nu se<br />
doreşte actualizarea, matricele U şi/sau V se returnează nemodificate.)<br />
1. % <strong>Calculul</strong> deplasării Wilkinson<br />
1. δ = (|g n−2 | 2 +|f n−1 | 2 −|g n−1 | 2 −|f n | 2 )/2<br />
2. η = |f n−1 | 2 |g n−1 | 2<br />
3. µ = |g n−1 | 2 +|f n | 2 η<br />
+<br />
δ +sgn(δ) √ δ 2 +η<br />
[ ]<br />
|f1 |<br />
2. w =<br />
2 −µ<br />
f 1 ḡ 1<br />
3. [w,c,s] = Gc(w)<br />
4. % Se calculează J ← JP 12 . Fie τ elementul nenul care alterează<br />
structura bidiagonală<br />
1. α ← f 1 c−g 1¯s<br />
2. g 1 ← f 1 s+g 1 c<br />
3. f 1 ← α<br />
4. τ ← −f 2¯s
402 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
5. f 2 ← f 2 c<br />
5. Dacă opt 2 = ′ da ′ atunci<br />
1. V(:,1 : 2) = Gcd(V(:,1 : 2),c,s)<br />
6. % Reducerea la forma bidiagonală<br />
Pentru k = 1 : n−1<br />
[ ] [ ]<br />
fk fk<br />
1. [ ,c,s] = Gc( )<br />
τ τ<br />
2. α ← cg k −sf k+1<br />
3. f k+1 ← ¯sg k +cf k+1<br />
4. g k ← α<br />
5. Dacă k < n−1 atunci<br />
1. τ ← −sg k+1<br />
2. g k+1 ← cg k+1<br />
6. Dacă opt 1 = ′ da ′ atunci<br />
1. U(:,k : k +1) = Gcd(U(:,k : k +1),c,s)<br />
7. Dacă k < n−1 atunci<br />
1. [v,c,s] = Gc(<br />
[<br />
gk<br />
τ<br />
]<br />
)<br />
2. g k = v 1<br />
3. α ← f k+1 c−g k+1¯s<br />
4. g k+1 ← f k+1 s+g k+1 c<br />
5. f k+1 ← α<br />
6. τ ← −f k+2¯s<br />
7. f k+2 ← f k+2 c<br />
8. Dacă opt 2 = ′ da ′ atunci<br />
1. V(:,k +1 : k +2) = Gcd(V(:,k +1 : k +2),c,s)<br />
Comentarii. Sintaxa de apel utilizată în continuare va fi în cazul complex<br />
şi<br />
[f,g,U,V ] = IT DVSc(f,g,U,V,opt 1 ,opt 2 )<br />
[f,g,U,V ] = IT DVSr(f,g,U,V,opt 1 ,opt 2 )<br />
în cazul real, care se obţine prin înlocuirea procedurilor complexe apelate cu corespondentele<br />
lor reale şi renunţarea la operaţia de conjugare. Numărul de operaţii<br />
necesar pentru execuţia unui pas DVS real este N op ≃ 2n √ + 30n dacă nu se<br />
acumulează transformările, N op ′ ≃ 6mn operaţii sunt necesare pentru acumularea<br />
matricei U şi, respectiv, N op ′′ ≃ 6n 2 pentru acumularea matricei V. ✸<br />
Observaţia 5.6 În cadrul algoritmului DVS, iteraţia DVS curentă, implementă<br />
de algoritmul de mai sus, va acţiona numai asupra unei părţi a matricei bidiagonale<br />
(aşa numitul bloc diagonal ireductibil). Această acţiune are ca efect modificarea<br />
la fiecare iteraţie numai a anumitor coloane a matricelor de transformare U şi V.
5.3. ALGORITMUL DVS 403<br />
Având în vedere acest fapt, suntem interesaţi să accceptăm ca parametri de intrare<br />
şide ieşirepentrualgoritmulIT DVSc matriceU şi V cuun numărde liniisuperior<br />
celui precizat în preambulul algoritmului. Utilizarea în instrucţiunile 5.1, 6.6.1 şi<br />
6.7.8.1 a <strong>si</strong>mbolului ”:” cu semnificaţia de ”toate liniile” face ca să nu fie necesare<br />
nici un fel de modificări ale algoritmului. Acelaşi mecanism de <strong>si</strong>mbolizare permite<br />
o codificare directă a algoritmului în MATLAB. Pentru alte limbaje de programare<br />
se vor face precizările de indexare ce se impun.<br />
✸<br />
B. Algoritmul DVS<br />
Algoritmul DVS constă din paşii iterativi Golub-Kahan aplicaţi părţii ireductibile<br />
a matricei bidiagonale J, anularea elementelor diagonale şi supradiagonale devenite<br />
neglijabile, conform unui criteriu acceptat, şi reducerea, pe această bază, a dimen<strong>si</strong>unii<br />
problemei de diagonalizare, până la epuizare. În final, după un număr finit<br />
20<br />
de paşi, se obţine o matrice diagonală a cărei DVS se obţine imediat. În legătură cu<br />
moduldegestionarestructuralăamatriceicurenteaşiruluiDVS facemurmătoarele<br />
precizări.<br />
1. Pentru deciziile de anulare a elementelor supradiagonale se poate utiliza<br />
următorul criteriu<br />
Dacă |g i | ≤ tol(|f i |+|f i+1 |) atunci g i = 0. (5.91)<br />
2. Tratarea <strong>si</strong>tuaţiilor în care condiţiile de ireductibilitate (5.79) ale matricei<br />
T = J H J nu sunt satisfăcute se face diferenţiat în funcţie de faptul că elementul<br />
nul se află pe supradiagonală sau pe diagonală. În continuare, referirile le facem la<br />
matricea bidiagonală J iniţială definită de vectorii f ∈ IC n şi g ∈ IC n−1 .<br />
– Dacă este nul un element terminal al vectorului g, i.e. g 1 = 0 sau g n−1 = 0,<br />
atunci problema se reduce, evident, la o problemă de dimen<strong>si</strong>une inferioară cu o<br />
unitate. Dacă ambele elemente terminale menţionate sunt nule, atunci dimen<strong>si</strong>unea<br />
problemei reduse este n−2.<br />
– Dacă există un <strong>si</strong>ngur element supradiagonalneterminal nul, i.e. g i = 0 pentru<br />
un i ∈ 2 : n−2, atunci matricea J se scrie sub forma<br />
[ ]<br />
J1 0<br />
J = , J<br />
0 J 1 ∈ IC i×i , J 2 ∈ IC (n−i)×(n−i) , (5.92)<br />
2<br />
cu matricele J H 1 J 1 şi J H 2 J 2 tridiagonale ireductibile, i.e. problema se sparge în<br />
două probleme de aceeaşi natură dar de dimen<strong>si</strong>uni mai mici. Dacă sunt mai multe<br />
elemente supradiagonale nule, atunci problema îşi reduce, <strong>si</strong>milar, dimen<strong>si</strong>unea sau<br />
se sparge în două sau mai multe probleme de dimen<strong>si</strong>uni mai mici.<br />
– Dacă există un <strong>si</strong>ngur element diagonal nul, i.e. f i = 0 pentru un i ∈ 1 : n−1,<br />
atunci existăoprocedurăcare, prin transformăriunitare (e.g. osecvenţăde rotaţii),<br />
anulează şi elementul supradiagonal de pe aceeaşi linie, creând astfel po<strong>si</strong>bilitatea<br />
divizării problemei ca în (5.92). Schema de calcul este următoarea.<br />
20 Datorită deciziilor de anulare efectivă a elementelor neglijabile.
404 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
TZD<br />
% Tratarea zerourilor diagonale.<br />
1. Pentru j = i+1 : n<br />
1. Se calculează rotaţia ”modificată” P ij astfel încât<br />
(P H<br />
ij<br />
2. J ← P H<br />
ij<br />
J)(i,j) = 0.<br />
J % Se anulează elementul (i,j) şi, pentru j < n,<br />
este alterat zeroul din poziţia (i,j +1).<br />
3. Dacă se doreşte acumularea transformărilor, atunci<br />
U ← UP ij .<br />
Exemplificăm modul de acţiune al procedurii de mai sus pentru cazul dimen<strong>si</strong>onal<br />
cu n = 4 şi cu zeroul diagonal în poziţia (2,2).<br />
⎡<br />
J ← P 23 J = ⎢<br />
⎣<br />
J =<br />
× × 0 0<br />
0 0 ∅ +<br />
0 0 × ×<br />
0 0 0 ×<br />
⎡<br />
⎢<br />
⎣<br />
× × 0 0<br />
0 0 × 0<br />
0 0 × ×<br />
0 0 0 ×<br />
⎤<br />
⎤<br />
⎥<br />
⎦ ,<br />
⎡<br />
⎥<br />
⎦ , J ← P 24J =<br />
⎢<br />
⎣<br />
× × 0 0<br />
0 0 0 ∅<br />
0 0 × ×<br />
0 0 0 ×<br />
În vederea scrierii mai concise a algoritmului DVS vom introduce un algoritm<br />
auxiliar de tratare a zerourilor diagonale, care implementează schema de calcul<br />
TZD . Pentru scrierea lui avem nevoie de o procedură de calcul a unei rotaţii<br />
”modificate”. Concret, rotaţia (complexă) ”modificată” pe care o vom utiliza este<br />
o matrice unitară de ordinul 2 cu structura cunoscută<br />
[ ] c s<br />
P = , cu c ∈ IR, s ∈ IC, c<br />
−¯s c<br />
2 +|s| 2 = 1, (5.93)<br />
care, pentru un vector z ∈ IC 2 dat a<strong>si</strong>gură<br />
⎤<br />
⎥<br />
⎦ .<br />
(P H z)(1) = 0. (5.94)<br />
Făcândapellarezultatelestabilite încapitolul3, nuestegreudevăzutcărelaţiilede<br />
calculalescalarilorcşis, carea<strong>si</strong>gurăsatisfacereacondiţiei(5.94),sunturmătoarele.<br />
⎧<br />
⎧<br />
1, dacă z ⎪⎨ 1 = 0,<br />
0, dacă z ⎪⎨<br />
1 = 0,<br />
c =<br />
0, dacă z 1 ≠ 0, z 2 = 0,<br />
s =<br />
1, dacă z 1 ≠ 0, z 2 = 0,<br />
⎪⎩ |z 2 |<br />
r , dacă z z<br />
1 ≠ 0, z 2 ≠ 0,<br />
⎪⎩ 1¯z 2<br />
|z 2 |r , dacă z 1 ≠ 0, z 2 ≠ 0,<br />
r = √ |z 1 | 2 +|z 2 | 2 , (P H z)(2) = rz 2<br />
|z 2 | .<br />
(5.95)<br />
<strong>Calculul</strong> elementelor definitorii de mai sus va fi însoţit de calculul z ← P H z astfel<br />
încât <strong>si</strong>ntaxa propusă pentru această procedură este<br />
[y,c,s] = Gcm(z),
5.3. ALGORITMUL DVS 405<br />
suprascrierea(internăa)lui z realizându-secuapelul[z,c,s] = Gcm(z). Particularizarea<br />
pentru date reale este propusă cititorului, aici mărginindu-ne să introducem<br />
numai <strong>si</strong>ntaxa de utilizare<br />
[y,c,s] = Grm(z).<br />
Rezultă următorul algoritm.<br />
Algoritmul 5.3 (TZDc – Tratarea zerourilor diagonale) (Date<br />
matricea superior bidiagonală J ∈ IC m×n cu m ≥ n, prin vectorii f şi g<br />
al elementelor diagonale, respectiv supradiagonale, şi matricea unitară<br />
U ∈ IC m×m , precum şi întregul i ∈ 1 : n − 1 ce indică poziţia ultimului<br />
element diagonal nul, algoritmul calculează rotaţiile (complexe) P i,j ,<br />
j = i+1 : n, astfel încât matricea J ← Pi,n H ...PH i,i+1J rămâne bidiagonală,<br />
iar elementul g i devine nul. Calculele principale se efectuează<br />
în locaţiile de memorie ale elementelor <strong>vectorilor</strong> f şi g. Opţional, se<br />
actualizează matricea unitară de transformare U. Opţiunea se exprimă<br />
cu ajutorul variabilei logice opt, care poate lua valorile ’da’ sau ’nu’.<br />
Dacănusedoreşteactualizarea,matriceaU sereturneazănemodificată.)<br />
1. τ = g i<br />
2. g i = 0<br />
3. Pentru j = i+1 : n<br />
1. z = [τ f j ] T<br />
2. [z,c,s] = Gcm(z)<br />
3. f j = z 2<br />
4. Dacă j < n atunci<br />
1. τ = −sg j<br />
2. g j ← cg j<br />
5. Dacă opt = ′ da ′ atunci<br />
1. Pentru l = 1 : m<br />
1. α = u li c−u lj¯s<br />
2. u lj ← u li s+u lj c<br />
3. u li = α.<br />
Comentarii. În algoritmul de mai sus variabila scalară τ a fost utilizată pentru<br />
memorarea elementului alterant temporar al structurii bidiagonale, iar variabila<br />
auxiliară scalară α pentru calculul produsului U ← UP ij . Algoritmul nu verifică<br />
faptul că f i = 0 sau că nu există j > i astfel ca f j = 0. Este clar faptul că dacă nu<br />
sunt îndeplinite condiţiile din preambulul algoritmului, acesta nu realizează scopul<br />
pentru care a fost elaborat.<br />
Sintaxa de apel a algoritmului este, evident,<br />
[f,g,U ] = TZDc(f,g,i,U,opt).<br />
Complexitatea algoritmului este O(n−i) fără acumularea transformărilor şi O(mn)<br />
cu acumulareaacestora. Se poate apreciacăalgoritmulare, îngeneral, o contribuţie<br />
modestă la complexitatea algoritmului DVS.
406 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
În cazul datelor reale, algoritmul se particularizează fără dificultate, utilizând<br />
procedura de calcul a unei rotaţii modificate reale, menţionată mai sus. Ca atare,<br />
ne mărginim la precizarea <strong>si</strong>ntaxei de apel:<br />
[f,g,U ] = TZDr(f,g,i,U,opt).<br />
În ambele <strong>si</strong>tuaţii, utilizându-se exclu<strong>si</strong>v transformări unitare, respectiv ortogonale,<br />
precizia rezultatelor nu este afectată semnificativ.<br />
✸<br />
3. La fiecare iteraţie, după deciziile de anulare a elementelor supradiagonale<br />
neglijabile şi după tratarea elementelor diagonale nule, se determină parametrii<br />
structurali p şi q astfel încât matricea J curentă să poată fi scrisă sub forma<br />
J =<br />
p<br />
{}}{ n−p−q<br />
{}}{<br />
⎡<br />
⎢<br />
⎣<br />
q<br />
{}}{<br />
⎤<br />
J 11 0 0<br />
0 J 22 0<br />
0 0 J 33<br />
0 0 0<br />
⎥<br />
⎦<br />
}p<br />
}n−p−q<br />
}q<br />
}m−n<br />
(5.96)<br />
unde p este cel mai mic întreg, iar q cel mai mare întreg astfel încât blocul J 33<br />
este diagonal, iar blocul bidiagonal J 22 este ireductibil, i.e. are toate elementele<br />
supradiagonale nenule şi toate elementele diagonale (mai puţin, eventual, ultimul),<br />
de asemenea, nenule. În termenii <strong>vectorilor</strong>f şi g, prin careeste memoratămatricea<br />
J, condiţiile de mai sus devin<br />
g(n−q+1: n−1) = 0, g i ≠ 0, i = p+1 : n−q, f i ≠ 0, i = p+1 : n−q−1.<br />
(5.97)<br />
Evident, iteraţia DVS curentă se aplică numai blocului ireductibil J 22 , i.e.<br />
J 22 ← J ′ 22 = U H 22J 22 V 22 (5.98)<br />
care este echivalentă cu următoareatransformareunitară bilaterală aplicată intregii<br />
matrice J<br />
J ← J ′ = diag(I p ,U 22 ,I m−p−q ) H Jdiag(I p ,V 22 ,I n−p−q ). (5.99)<br />
Dacă blocul ireductibil J 22 are dimen<strong>si</strong>unea 2×2 atunci devine mai eficient calculul<br />
direct al DVS a acestuia. Având în vedere faptul că în acest caz matricea 2 × 2<br />
este şi triunghiulară propunem cititorului scrierea unei proceduri care să realizeze<br />
acest lucru (caz particular al exerciţiului 5.2). Aici ne vom mărgini la specificarea<br />
<strong>si</strong>ntaxei de apel a acestei proceduri care va fi utilizată<br />
[f,g,U,V ] = DVS 2(f,g)<br />
unde, evident, f este un vector cu două elemente, iar g este un scalar anulat de<br />
procedură.<br />
4. Procesul de diagonalizare se termină în momentul în care au fost anulate<br />
toate elementele supradiagonale, i.e. toate componentele vectorului g, sau, altfel<br />
spus, când parametrul structural q ia valoarea n−1.
5.3. ALGORITMUL DVS 407<br />
5. Dupăîncheiereaprocesuluidediagonalizare,elementelediagonalealematricei<br />
limită J ← J ∞ , i.e. componentele vectorului f, sunt, în general, complexe. Pentru<br />
a obţine o matrice diagonală reală cu elementele diagonale nenegative se aplică o<br />
transformare de echivalenţă unitară definită de<br />
J ← ˜DJ sau J ← JD, (5.100)<br />
unde ˜D = diag(D,I m−n ) cu 21<br />
⎧<br />
⎨<br />
D = diag(d 1 ,d 2 ,...,d n ), d i =<br />
⎩<br />
1, dacă f i = 0<br />
¯f i<br />
|f i | , dacă f i ≠ 0.<br />
(5.101)<br />
După această transformare elementele diagonale ale matricei J, i.e. elementele<br />
vectorului f sunt valorile <strong>si</strong>ngulare ale matricei iniţiale.<br />
6. Prin definiţie, în DVS, valorile <strong>si</strong>ngulare apar ordonate descrescător. De<br />
aceea, în finalul algoritmului DVS se realizează ordonarea elementelor diagonale<br />
utilizând o secvenţă de permutări elementare bilaterale (i.e. diagonale), definită de<br />
matricele de permutare U P = diag(P,I m−n ), V P = P şi un algoritm de ordonare<br />
a listelor. Având în vedere faptul că ordonarea are o pondere puţin semnificativă<br />
în economia algoritmului DVS, vom utiliza un algoritm popular de sortare, anume<br />
algoritmul bubblesort, şi, din aceleaşi motive de concizie a formulării algoritmului<br />
DVS, vom prezenta un algoritm separat de ordonare.<br />
Algoritmul 5.4 (DVS ORD – Ordonarea <strong>valorilor</strong> <strong>si</strong>ngulare)<br />
(Date matricea diagonală J, prin vectorul f ∈ IR n al elementelor diagonale,<br />
şi matricele unitare U ∈ IC m×m şi V ∈ IC n×n , algoritmul realizează<br />
ordonarea în sens descrescător a elementelor vectorului f, folo<strong>si</strong>nd algoritmul<br />
de sortare bubblesort. Opţional, se actualizează matricele<br />
unitare de transformare U şi/sau V, prin permutarea coprespunzătoare<br />
a coloanelor acestora. Opţiunea se exprimă cu ajutorul variabilelor logice<br />
opt 1 şi opt 2 care pot lua valorile ’da’ sau ’nu’. Dacă nu se doreşte<br />
actualizarea, matricele U şi/sau V se returnează nemodificate.)<br />
1. ord = ′ nu ′<br />
2. i = 1<br />
3. C^at timp ord = ′ nu ′ şi i < n<br />
1. ord = ′ da ′<br />
2. Pentru j = n−1 : −1 : i<br />
1. Dacă f j < f j+1 atunci<br />
1. f j+1 ↔ f j<br />
21 În cazul real, matricea diagonală J ∞ este reală, dar poate avea elemente diagonale negative.<br />
Evident, în această <strong>si</strong>tuaţie utilizăm transformarea de echivalenţă ortogonală definită de matricea<br />
D având<br />
{ 1, dacă fi ≥ 0,<br />
d i =<br />
−1, dacă f i < 0.
408 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
2. Dacă opt 1 = ′ da ′ atunci<br />
1. U(:,j) ↔ U(:,j +1)<br />
3. Dacă opt 2 = ′ da ′ atunci<br />
1. V(:,j) ↔ V(:,j +1)<br />
4. ord = ′ nu ′<br />
3. i ← i+1.<br />
Comentarii. Variabila logică ord reprezintă starea procesului de ordonare şi este<br />
familiară celor care utilizează curent algoritmul de sortare menţionat. Sintaxa de<br />
apel a algoritmului va fi<br />
[f,U,V ] = DVS ORD(f,U,V,opt 1 ,opt 2 ).<br />
Evident, nuseefectueazăoperaţii aritmetice. Numărulmaximpo<strong>si</strong>bil decomparaţii<br />
este 1 2n(n−1). De<strong>si</strong>gur, se pot folo<strong>si</strong> algoritmi de sortare mai sofisticaţi dar câştigul<br />
nu este semnificativ pentru matrice de dimen<strong>si</strong>uni curente. ✸<br />
Avându-se în vedere faptul că matricele de permutare sunt ortogonale, matricea<br />
finală<br />
⎡ ⎤<br />
ˆσ 1 0 ··· 0<br />
0 ˆσ 2 ··· 0<br />
ˆΣ def<br />
.<br />
= diag(P T ,I m−n )JP =<br />
. . .. .<br />
0 0 ··· ˆσ n<br />
(5.102)<br />
⎢ . . . . ⎥<br />
⎣ . . . . ⎦<br />
0 0 ··· 0<br />
împreună, cu matricele unitare Û = Udiag(P,I m−n), ˆV = VP definesc DVS calculată<br />
a matricei iniţiale.<br />
Cu toate precizările de mai sus şi utilizând algoritmii auxiliari introduşi, putem<br />
prezenta algoritmul DVS în integralitatea lui.<br />
Algoritmul 5.5 (DVSc – Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare)<br />
(Date matricea A ∈ IC m×n cu m ≥ n şi nivelul de toleranţă tol, algoritmul<br />
calculează valorile <strong>si</strong>ngulare ale matricei A care sunt elementele<br />
vectorului f ∈ IR n şi opţional matricele de transformare U ∈ IC m×m<br />
şi/sau V ∈ IC n×n , care definesc DVS a matricei A. Opţiunea se exprimă<br />
cu ajutorul variabilelor logice opt 1 şi opt 2 care pot lua valorile ’da’ sau<br />
’nu’. Dacănu se doreşteacumularea,atunci pentru matricearespectivă<br />
se returnează matricea unitate de dimen<strong>si</strong>une corespunzătoare.)<br />
1. % Cazul matricelor coloană<br />
Dacă n = 1 atunci<br />
1. [A,u,β] = Hc(A)<br />
2. f = |A(1,1)|<br />
3. U = I m , V = 1<br />
4. Dacă opt 1 = ′ da ′ şi β ≠ 0 atunci<br />
U = I m − u·uH<br />
β
5.3. ALGORITMUL DVS 409<br />
5. Dacă opt 2 = ′ da ′ şi β ≠ 0 atunci<br />
V = Ā(1,1)<br />
f<br />
6. Return<br />
2. % Reducerea la forma bidiagonală<br />
[f,g,U,V ] = JQc(A,opt 1 ,opt 2 )<br />
3. % Faza iterativă<br />
1. p = 0, q = 0<br />
2. C^at timp q < n−1<br />
1. Pentru i = 1 : n−q −1<br />
1. Dacă |g i | ≤ tol(|f i |+|f i+1 |) atunci<br />
g i ← 0<br />
2. % Determinarea parametrului q<br />
1. C^at timp g(n−q −1) = 0<br />
q ← q +1<br />
2. Dacă q = n−1 atunci break<br />
3. % Terminarea fazei iterative<br />
1. Dacă q = n−1 atunci break<br />
4. % Determinarea parametrului p<br />
1. p = n−q −1<br />
2. C^at timp g(p) = 0<br />
1. p ← p−1<br />
2. Dacă p = 0 atunci break<br />
5. k = p+1, l = n−q<br />
6. % Tratarea unui zero diagonal (dacă există)<br />
1. j = 0<br />
2. Pentru i = l−1 : −1 : k<br />
1. Dacă f i = 0 atunci<br />
1. j = i−k +1<br />
2. break<br />
3. Dacă j > 0<br />
1. [f(k : l),g(k : l−1),Z] =<br />
= TZDc(f(k : l),g(k : l−1),j,I l−k+1 ,opt 1 )<br />
2. Dacă opt 1 = ′ da ′ atunci<br />
U(:,k : l) ← U(:,k : l)Z<br />
altfel<br />
1. % Iteraţia curentă<br />
Dacă k < l−1 atunci<br />
[f(k : l),g(k : l−1),U(:,k : l),V(:,k : l)] =<br />
= IT DVSc(f(k : l),g(k : l−1),U(:,k : l),<br />
V(:,k : l),opt 1 ,opt 2 )<br />
altfel
410 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
1. [f(k : l),g(k : l−1),Y,Z] =<br />
= DVS 2(f(k : l),g(k : l−1))<br />
2. Dacă opt 1 = ′ da ′ atunci<br />
U(:,k : l) ← U(:,k : l)Y<br />
3. Dacă opt 2 = ′ da ′ atunci<br />
V(:,k : l) ← V(:,k : l)Z<br />
4. % <strong>Calculul</strong> <strong>valorilor</strong> <strong>si</strong>ngulare ale matricei diagonale obţinute în<br />
faza iterativă<br />
1. Pentru j = 1 : n<br />
1. Dacă opt 2 = ′ da ′ atunci<br />
1. Dacă f j ≠ 0 atunci<br />
1. d = ¯f j<br />
|f j |<br />
2. V(: ,j) = V(:,j)d<br />
2. f j = |f j |<br />
5. % Ordonarea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
1. [f,U,V ] = DVS ORD(f,U,V,opt 1 ,opt 2 )<br />
Comentarii. Comentariile incluse pun în evidenţă ideile care au stat la baza elaborării<br />
algoritmului. Din punct de vedere tehnic semnalăm utilizarea instrucţiunii<br />
break de abandonare a execuţiei ciclurilor de tip pentru sau de tip c^at timp.<br />
O <strong>si</strong>ntaxă de apel naturală a algoritmului DVSc este, evident,<br />
[f,U,V ] = DVSc(A,tol,opt 1 ,opt 2 ).<br />
Algoritmul DVSc calculează DVS şi pentru matrice reale 22 deşi pentru date reale<br />
este mai economică o ver<strong>si</strong>une ”reală” a algoritmului, care se obţine <strong>si</strong>mplu prin<br />
utilizarea corespondentelor reale ale procedurilor implicate.<br />
De asemenea, din raţiuni de concizie şi claritate, în cele ce urmează vom utiliza<br />
şi <strong>si</strong>ntaxa (poate chiar mai semnificativă)<br />
[U,Σ,V ] = DVSc(A,opt 1 ,opt 2 ),<br />
care presupune unele ajustări minore ale algoritmului de mai sus, cum sunt introducerea<br />
unei toleranţe implicite (de obicei de nivelul lui ε M ‖A‖) şi formarea matricei<br />
diagonale Σ ∈ IR m×n din definiţia DVS ale cărei elemente diagonale sunt elementele<br />
vectorului f. Ordinea modificată a parametrilor de ieşire sugerează formula DVS.<br />
Complexitatea estimată a algoritmului DVS, conform [VI], este dată în tabelul<br />
5.1 pentru varianta reală cu date de intrare matrice reale m×n şi diverse tipuri de<br />
opţiuni. De asemenea, rezultatele sunt date pentru două ver<strong>si</strong>uni ale algoritmului:<br />
prima ver<strong>si</strong>une utilizează algoritmul de bidiagonalizare JQr (ca mai sus), iar cea<br />
de a doua algoritmul de R-bidiagonalizare (v. obs. 5.4).<br />
✸<br />
22 Din acest motiv, în referirile ulterioare vom renunţa la caracterul c din <strong>si</strong>glă.
5.4. CONDIŢIONARE 411<br />
opt 1 opt 2 N op N op<br />
ver<strong>si</strong>unea 1 ver<strong>si</strong>unea 2<br />
’nu’ ’nu’ 4mn 2 − 4 3 n3 2mn 2 +2n 3<br />
’da’ ’nu’ 4m 2 n+8mn 2 4m 2 n+13n 3<br />
’nu’ ’da’ 4mn 2 +8n 3 2mn 2 +11n 3<br />
’da’ ’da’ 4m 2 n+8mn 2 +8n 3 4m 2 n+22n 3<br />
Tabelul 5.1: Complexitatea algoritmului DVS<br />
5.4 Condiţionarea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
În această secţiune vom aborda câteva aspecte privind sen<strong>si</strong>bilitatea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
şi a <strong>vectorilor</strong> <strong>si</strong>ngulari la perturbaţii numerice în matricea iniţială. În acest<br />
scop se vor dovedi utile rezultatele preliminare stabilite în continuare. Ca şi până<br />
acum,rezultateleşidemonstraţiilevorfiprezentatepentrucazul,maigeneral,almatricelor<br />
complexe, particularizarea pentru matricele reale (care se reduce, în esenţă,<br />
la înlocuirea mulţimii IC cu mulţimea IR şi a operatorului hermitic H cu operatorul<br />
de transpunere T ) fiind lăsată în sarcina cititorului.<br />
5.4.1 Rezultate preliminare<br />
Fie matricea A ∈ IC n×n . Valorile <strong>si</strong>ngulare ale matricei A[ fiind nemijlocit ] legate<br />
0 A<br />
de valorile <strong>proprii</strong> ale matricelor hermitice A H A, AA H H<br />
sau multe din<br />
A 0<br />
rezultatele stabilite în secţiunea §4.1, referitoare la proprietăţile spectrale ale matricelor<br />
hermitice (în cazul real, <strong>si</strong>metrice) îşi găsesc un corespondent direct şi imediat<br />
în proprietăţile <strong>valorilor</strong> <strong>si</strong>ngulare. Fie V un subspaţiu liniar al lui IC n şi S<br />
mulţimea <strong>vectorilor</strong> de normă euclidiană unitară din IC n , i.e. sfera de rază unitară<br />
centrată în origine. Notăm cu V S = V ∩S, i.e. mulţimea <strong>vectorilor</strong> de normă unitară<br />
din subspaţiul V. Reamintim că intotdeauna valorile <strong>si</strong>ngulare ale unei matrice<br />
sunt indexate în sens descrescător.<br />
În primul rând, teoremei 4.3 îi corespunde următorul rezultat.<br />
Teorema 5.9 Fie A ∈ IC n×n şi σ(A) = {σ 1 ,σ 2 ,...,σ p }, p = min(m,n), mulţimea<br />
<strong>valorilor</strong> sale <strong>si</strong>ngulare. Atunci avem<br />
unde ‖ · ‖ def<br />
= ‖ · ‖ 2 .<br />
σ max = max<br />
x ∈ S ‖Ax‖,<br />
σ min = min ‖Ax‖, (5.103)<br />
x ∈ S
412 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Demonstraţie.<br />
B = A H A.<br />
Rezultatele sunt urmare directă aplicării teoremei 4.3 matricei<br />
✸<br />
În al doilea rând, avem următoarea caracterizare minimax a <strong>valorilor</strong> <strong>si</strong>ngulare<br />
care îşi are originea în teorema Courant-Fisher (v. §4.1).<br />
Teorema 5.10 Fie A ∈ IC n×n şi σ(A) = {σ 1 ,σ 2 ,...,σ p }, p = min(m,n), mulţimea<br />
<strong>valorilor</strong> sale <strong>si</strong>ngulare. Atunci pentru toţi k ∈ 1 : p avem<br />
σ k = max<br />
dimV = k<br />
min ‖Ax‖ = min<br />
x ∈ V S dimV = n−k<br />
unde ‖ · ‖ def<br />
= ‖ · ‖ 2 este norma euclidiană în IC n .<br />
max ‖Ax‖, (5.104)<br />
x ∈ V S<br />
Demonstraţie. Con<strong>si</strong>derăm matricea hermitică B = A H A. Pentru orice vector<br />
x ∈ IC n avem x H Bx = ‖Ax‖ 2 şi, presupunând că valorile <strong>proprii</strong> ale matricei B sunt<br />
ordonate descrescător, λ k (B) = σk 2 . Cu aceste precizări, caracterizările minimax<br />
(5.104) rezultă imediat din aplicarea teoremei Courant-Fisher matricei B. ✸<br />
Corespondentul teoremei de separare 4.5 are următorul enunţ.<br />
Teorema 5.11 (Teorema de separare a <strong>valorilor</strong> <strong>si</strong>ngulare) Fie A ∈ IC n×n . Notăm<br />
def<br />
def<br />
A k = A(:,1 : k) sau A k = A(1 : k, :). Atunci valorile <strong>si</strong>ngulare ale matricei A k<br />
separă valorile <strong>si</strong>ngulare ale matricei A k+1 , i.e.<br />
σ 1 (A k+1 ) ≥ σ 1 (A k ) ≥ σ 2 (A k+1 ) ≥ ... ≥ σ k (A k+1 ) ≥ σ k (A k ) ≥ σ k+1 (A k+1 ),<br />
(5.105)<br />
pentru toţi k ∈ 1 : p−1, p = min(m,n).<br />
Demonstraţie. Presupunem mai întâi că A k este matricea formată din primele k<br />
coloane ale matricei A. Atunci submatricea lider principală de ordinul k a matricei<br />
B = A H [k] def<br />
A este dată de B = B(1:k,1:k) = A H k A k şi separarea (5.105) rezultă<br />
din aplicarea directă a teoremei 4.5 matricei B. Dacă A k este matricea formată din<br />
primele k linii ale matricei A, atunci inegalităţile (5.105) se obţin aplicând teorema<br />
4.5 matricei C = AA H . ✸<br />
Una din observaţiile imediate care rezultă din teorema 5.11 este aceea că adăugarea<br />
unei coloane sau unei linii la o matrice dată are ca efect creşterea valorii<br />
<strong>si</strong>ngulare maxime (i.e. a normei spectrale) şi scăderea valorii <strong>si</strong>ngulare minime.<br />
O relaţie dintre valorile <strong>si</strong>ngulare a două matrice şi valorile <strong>si</strong>ngulare ale sumei<br />
lor, dată în teorema următoare, este utilă în aprecierea influenţei perturbaţiilor<br />
numerice în elementele unei matrice asupra <strong>valorilor</strong> sale <strong>si</strong>ngulare.<br />
Teorema 5.12 Fie matricele A,E ∈ IC n×n . Atunci, cu notaţii evidente, avem<br />
pentru toţi k ∈ 1 : min(m,n).<br />
σ k (A)−σ 1 (E) ≤ σ k (A+E) ≤ σ k (A)+σ 1 (E) (5.106)
5.4. CONDIŢIONARE 413<br />
Demonstraţie. [ ] Aplicând [ teorema ] 4.7 (v. §4.1) matricelor hermitice B =<br />
0 A<br />
H 0 E<br />
H<br />
= şi F = , în ipoteza că valorile <strong>proprii</strong> sunt ordonate<br />
A 0 E 0<br />
descrescător, avem<br />
λ k (B)+λ m+n (F) ≤ λ k (B +F) ≤ λ k (B)+λ 1 (F). (5.107)<br />
Dar, conform propoziţiei 5.1, avem λ k (B) = σ k (A), k = 1 : min(m,n), λ 1 (F) =<br />
= σ 1 (E) şi λ m+n (F) = −σ 1 (E), i.e. relaţia (5.107) este de fapt una şi aceeaşi cu<br />
(5.106). Teorema este demonstrată. ✸<br />
În sfârşit, prezentăm corespondentul pentru valorile <strong>si</strong>ngulare al teoremei 4.8<br />
(Wielandt-Hoffmann).<br />
Teorema 5.13 Dacă A,E ∈ IC m×n şi p = min(m,n), atunci<br />
p∑<br />
(σ j (A+E)−σ j (E)) 2 ≤ ‖E‖ 2 F , (5.108)<br />
j=1<br />
unde ‖E‖ F este norma Frobenius a matricei E.<br />
Demonstraţie. [ Aplicând ] teorema[ Wielandt-Hofmann ] (v. §4.1) matricelor hermitice<br />
B = şi F = şi ţinând seama de relaţia dintre<br />
0 A<br />
H 0 E<br />
H<br />
A 0 E 0<br />
valorile <strong>proprii</strong> ale matricelor B şi F şi valorile <strong>si</strong>ngulare ale matricelor A şi E (v.<br />
propoziţia 5.1) se obţine rezultatul dorit.<br />
✸<br />
5.4.2 Condiţionarea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
Rezultatele prezentate mai sus permit aprecierea condiţionării <strong>valorilor</strong> <strong>si</strong>ngulare.<br />
În primul rând, având în vedere faptul că valorile <strong>si</strong>ngulare ale unei matrice A ∈<br />
∈ IC n×n sunt rădăcinile pătrate ale <strong>valorilor</strong> <strong>proprii</strong> ale matricelor hermitice A H A<br />
sau AA H , iar acestea din urmă sunt perfect condiţionate (v. §4.10), rezultă că şi<br />
valorile <strong>si</strong>ngulare sunt perfect condiţionate, i.e. putem con<strong>si</strong>dera că numerele de<br />
condiţionare ale <strong>valorilor</strong> <strong>si</strong>ngulare sunt egale cu unitatea.<br />
Rezultatul principal care susţine afirmaţia de mai sus este dat de teorema 5.12.<br />
Într-adevăr, inegalităţile (5.106) pot fi scrise sub forma<br />
|σ k (A+E)−σ k (A)| ≤ σ 1 (E) = ‖E‖, (5.109)<br />
unde, evident ‖E‖ = σ 1 (E) este norma spectrală a lui E. Dacă privim matricea E<br />
ca o matrice de perturbaţii (sau de incertitudine) în datele iniţiale, atunci marginea<br />
(5.109) arată că, în ipoteza unui calcul exact, variaţiile absolute ale <strong>valorilor</strong> <strong>si</strong>ngulare<br />
induse de variaţiile în elementele matricei nu depăşesc norma spectrală a<br />
matricei de perturbare. De<strong>si</strong>gur, dacă ne referim la variaţiile relative, valorile <strong>si</strong>ngulare<br />
mari sunt avantajate, în timp ce valorile <strong>si</strong>ngulare mici pot să sufere variaţii<br />
relative mari.
414 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
De asemenea, cum era de aşteptat, condiţionarea întregului ansamblu de valori<br />
<strong>si</strong>ngulare, privită ca o normă a vectorului condiţionărilor <strong>valorilor</strong> <strong>si</strong>ngulare, este<br />
cea mai bună po<strong>si</strong>bilă. În sprijinul acestei afirmaţii vine şi teorema 5.13 care arată<br />
că norma euclidiană a vectorului variaţiilor absolute ale <strong>valorilor</strong> <strong>si</strong>ngulare este<br />
inferioară normei Frobenius a matricei variaţiilor elementelor matricei iniţiale.<br />
[ ]<br />
1.60 0.36 0.48<br />
Exemplul 5.4 Fie matricea A =<br />
∈ IR 2×3 ale cărei valori<br />
−1.20 0.48 0.64<br />
<strong>si</strong>ngulare exacte sunt σ 1 [ = 2 şi σ 2 = 1. Valorile ] <strong>si</strong>ngulare ale matricei [ perturbate ]<br />
1.60 0.36 0.481<br />
0 0 1<br />
F = A+E = A+ǫG =<br />
, unde ǫ = 10<br />
−1.20 0.48 0.64<br />
−3 , G =<br />
0 0 0<br />
(cu ‖G‖ = ‖G‖ F = 1), sunt ˆσ 1 ≈ 2.0000002, ˆσ 2 ≈ 1.0004800. Se observă că<br />
nici variaţiile absolute ale <strong>valorilor</strong> <strong>si</strong>ngulare individuale, nici norma euclidiană a<br />
vectorului lor √ (ˆσ 1 −σ 1 ) 2 +(ˆσ 2 −σ 2 ) 2 ≈ 0.48·10 −4 nu depăşesc valoarea lui ǫ. ✸<br />
Condiţionarea excelentă a <strong>valorilor</strong> <strong>si</strong>ngulare este unul din argumentele fundamentale<br />
ale utilizării lor pentru rezolvarea numerică a unei multitudini de probleme<br />
aplicative de algebră liniară.<br />
5.4.3 Condiţionarea <strong>vectorilor</strong> <strong>si</strong>ngulari<br />
Similar cazului matricelor hermitice (v. §4.10), perfecta condiţionare a <strong>valorilor</strong><br />
<strong>si</strong>ngulare nu implică în mod necesar buna condiţionare a <strong>vectorilor</strong> <strong>si</strong>ngulari şi a<br />
subspaţiilor generate de aceştia.<br />
Fie A ∈ IC m×n şi A = U H ΣV descompunerea <strong>valorilor</strong> sale <strong>si</strong>ngulare. Aprecierea<br />
condiţionării <strong>vectorilor</strong> <strong>si</strong>ngulari, i.e a coloanelor matricelor unitare de transformare<br />
U şi V, se face prin evaluarea diferenţei unghiulare dintre vectorul exact şi cel<br />
perturbat, definită prin<br />
θ(u i ,û i ) = arccos|u H i û i |, i = 1 : m θ(v j ,ˆv j ) = arccos|v H j ˆv j |, j = 1 : n,<br />
(5.110)<br />
raportată la norma variaţiei matricei date.<br />
Această abordare poate fi extinsă la exprimarea condiţionării subspaţiilor generate<br />
de vectori <strong>si</strong>ngulari care este apreciată prin variaţia unghiulară (v. §4.10)<br />
a subspaţiilor respective. Concret, fiind dată o matrice A şi σ I ⊂ σ(A) un set de<br />
valori <strong>si</strong>ngulare ale acesteia, prin condiţionarea subspaţiului U, generat de vectorii<br />
<strong>si</strong>ngulari asociaţi setului λ I , vom înţelege variaţia unghiulară (sau o margine superioară<br />
a acesteia) a subspaţiului U raportată la nivelul perturbaţiilor în elementele<br />
matricei A.<br />
Condiţionarea subspaţiilor generate de vectori <strong>si</strong>ngulari este determinată în<br />
mod deci<strong>si</strong>v de localizarea <strong>valorilor</strong> <strong>si</strong>ngulare asociate. Este po<strong>si</strong>bil, şi aici, ca un<br />
subspaţiu generat de vectori <strong>si</strong>ngulari rău condiţionaţi să aibă o condiţionare foarte<br />
bună dacă grupul corespunzător de valori <strong>si</strong>ngulare este bine separat de celelalte.<br />
În contextul DVS, vom nota separarea unei valori <strong>si</strong>ngulare individuale σ i şi,<br />
respectiv a setului de valori <strong>si</strong>ngulare σ I , de celelalte valori <strong>si</strong>ngulare ale aceleiaşi
5.5. STABILITATEA ALGORITMULUI DVS 415<br />
matrice, prin<br />
gap i<br />
def<br />
= min(σ i−1 −σ i ,σ i −σ i+1 ), gap I<br />
def<br />
şi corespondentele lor relative, prin<br />
def |σ i −σ j |<br />
relgap i = min ,<br />
j∈1:p σ i +σ j<br />
j≠i<br />
= min|σ i −σ j | (5.111)<br />
i∈I<br />
j∉I<br />
def |σ i −σ j |<br />
relgap I = min , (5.112)<br />
i∈I σ i +σ j<br />
j∉I<br />
unde p = min(m,n).<br />
Condiţionarea subspaţiului U I , i.e. variaţia unghiulară a acestuia raportată<br />
la nivelul perturbaţiilor în matricea iniţială, se poate aprecia prin numărul de<br />
condiţionare<br />
def<br />
κ UI = 1<br />
(5.113)<br />
gap I<br />
şi, în particular, condiţionarea unui vector <strong>si</strong>ngular prin numărul<br />
κ ui<br />
def<br />
= 1<br />
gap i<br />
. (5.114)<br />
Pentru detalii recomandăm consultarea referinţelor bibliografice [IV], [VI], [VIII].<br />
5.5 Stabilitatea numerică a algoritmului DVS<br />
Analiza erorilor introduse de algoritmul DVS a condus la aprecierea că acesta<br />
reprezintă un mijloc foarte fiabil de calcul al <strong>valorilor</strong> <strong>si</strong>ngulare şi al <strong>vectorilor</strong><br />
<strong>si</strong>ngulari. Altfel spus, algoritmul DVS este un algoritm numeric stabil [VI], [XV],<br />
i.e. se poate arăta că tripletul (Û, ˆΣ, ˆV), care defineşte DVS calculată, este o DVS<br />
exactă pentru o matrice foarte ”apropiată” de matricea dată. În termeni formali,<br />
[ ˆΣ1<br />
dacă A ∈ IC m×n şi, prin urmare, Û ∈ IC m×m , ˆV ∈ IC n×n , ˆΣ = sau<br />
0<br />
ˆΣ =<br />
= [ ˆΣ1 0 ] , cu ˆΣ 1 = {ˆσ 1 ,ˆσ 2 ,...,ˆσ p }, p = min(m,n), atunci există matricele<br />
unitare Ũ ∈ ICm×m , Ṽ ∈ ICn×n , astfel încât, notând<br />
∆U def<br />
def<br />
= Ũ −Û, ∆A = ŨˆΣṼ H −A, ∆V def<br />
= Ũ − ˆV, (5.115)<br />
sunt satisfăcute inegalităţile<br />
‖∆U‖ ≤ p(m,n)ε M , ‖∆A‖ ≤ p(m,n)‖A‖ε M , ‖∆V‖ ≤ p(m,n)ε M ,<br />
(5.116)<br />
unde, ca şi până acum, ‖ · ‖ def<br />
= ‖ · ‖ 2 este norma spectrală, p(m,n) este o notaţie<br />
generică pentru o funcţie cu ”o creştere modestă” 23 iar ε M este ep<strong>si</strong>lon maşină<br />
definind precizia de reprezentare a formatului virgulă mobilă utilizat.<br />
23 Aşa cum s-a precizat şi în capitolul 4, practic pentru toţi algoritmii prezentaţi în acest<br />
capitol, p(m,n) sau p(n) este o funcţie polinomială de un grad ”modest” (1, 2 sau, foarte rar,<br />
3) de parametri ce definesc dimen<strong>si</strong>unea problemei. În [XV] se afirmă că o apreciere de genul<br />
p(n) < 10n sau p(m,n) < 10max(m,n) este adevărată în majoritatea <strong>si</strong>tuaţiilor practice pentru<br />
care se foloseşte formula de evaluare ”funcţie cu o creştere modestă”.<br />
]
416 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Combinând excelenta condiţionare a <strong>valorilor</strong> <strong>si</strong>ngulare cu stabilitatea numerică<br />
a algoritmului DVS, se poate afirma ca descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare este cel<br />
mai bun mijloc de a calcula invarianţii unei matrice la transformările de echivalenţă<br />
(cum este rangul). Concret valorile <strong>si</strong>ngulare calculate ˆσ i satisfac inegalităţile<br />
|ˆσ i −σ i | ≤ p(m,n)‖A‖ε M = p(m,n)σ 1 ε M . (5.117)<br />
Deci, pentru toate valorile <strong>si</strong>ngulare avem aceeaşi margine de eroare absolută, ceea<br />
ce înseamnă că valorile <strong>si</strong>ngulare mari vor avea erori relative mici.<br />
Pentru vectorii <strong>si</strong>ngulari şi subspaţiile generate de aceştia, erorile raportate la<br />
matricea iniţială pot fi amplificate de numerele de condiţionare, astfel că putem<br />
scrie<br />
θ(u i ,û i ) ≤ p(m,n)‖A‖ε M<br />
gap i<br />
, θ(U I ,ÛI) ≤ p(m,n)‖A‖ε M<br />
gap I<br />
. (5.118)<br />
În sfârşit, menţionăm că cea mai mare acumulare a erorilor are loc în faza de reducere<br />
la forma bidiagonală, faza iterativă a algoritmului DVS având o contribuţie<br />
modestă în acest sens. Prin urmare, pentru matricele bidiagonale, chiar erorile relative<br />
ale tuturor <strong>valorilor</strong> <strong>si</strong>ngulare sunt mărginite de un multiplu modest al erorilor<br />
de reprezentare. Pentru amănunte, vezi [XV].<br />
5.6 Aplicaţiile DVS<br />
În prima secţiune a acestui capitol au fost introduse o serie de concepte şi probleme<br />
decalcul numericconexe, problemeacărorrezolvarese poatefaceperformant<br />
apelând la DVS a unormatrice. Cu aceastăocazieau fost prezentate şi demonstrate<br />
rezultate matematice care sugerează unele modalităţi de calcul. În secţiunea de<br />
faţă ne propunem să revenim asupra acestor probleme în vederea dezvoltării unor<br />
proceduri de calcul fiabile, pentru relevarea unor aspecte numerice semnificative<br />
precum şi pentru extinderea unor rezultate în contextul utilizării algoritmului DVS<br />
pentru calculul <strong>valorilor</strong> <strong>si</strong>ngulare.<br />
5.6.1 Trunchierea DVS calculate. <strong>Calculul</strong> rangului.<br />
Rangul numeric<br />
În conformitate cu propoziţia 5.2, rangul unei matrice este dat de numărul <strong>valorilor</strong><br />
sale <strong>si</strong>ngulare nenule 24 . Acest rezultat fundamental are o utilitate redusă în<br />
aplicaţiile curente încare matricele de date sunt, în general, rezultatul unor evaluări<br />
aproximative, iar utilizarea calculatorului pentru determinarea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
este însoţită de erori. În astfel de <strong>si</strong>tuaţii, generic, toate valorile <strong>si</strong>ngulare calculate<br />
sunt, în sens strict, nenule. Prin urmare, generic, în urma procesării în medii de<br />
calcul aproximativ, toate matricele devin de rang maximal şi, datorită acestui fapt,<br />
24 O alternativă viabilă, cu un efort de calcul mai redus, pentru rezolvarea problemelor de rang<br />
este dată de triangularizarea unitară (ortogonală) cu pivotarea coloanelor (vezi cap. 3.). Din<br />
punctul de vedere al calităţilor numerice DVS constituie însă metoda cea mai bună (vezi exemplul<br />
din acest paragraf).
5.6. APLICAŢIILE DVS 417<br />
problema determinării rangului rămâne fără obiect. De aceea, pentru aplicaţii, este<br />
necesară o modalitate coerentă de apreciere a <strong>valorilor</strong> <strong>si</strong>ngulare neglijabile. Rangul<br />
rezultat după deciziile de neglijare, în conformitate cu criterii bine precizate,<br />
a <strong>valorilor</strong> <strong>si</strong>ngulare ”mici” va fi numit ”rangul numeric” al matricei iniţiale. Mai<br />
precis avem următoarea definiţie.<br />
Definiţia 5.6 Fie A ∈ IC m×n şi A = UΣV H DVS a matricei A. Rangul numeric<br />
al matricei A pentru o toleranţa ǫ fixată este definit de<br />
˜r = rang(A,ǫ) =<br />
min<br />
‖A−X‖ ≤ ǫ<br />
X ∈ IC m×n rangX, (5.119)<br />
i.e. este cel mai mic dintre rangurile tuturor matricelor de aceleaşi dimen<strong>si</strong>uni aflate<br />
la o distanţă – definită de norma spectrală – de matricea A mai mică decât toleranţa<br />
admisă 25 .<br />
DVS este un mijloc extrem de <strong>si</strong>gur de determinare a rangului numeric în sensul<br />
definiţiei de mai sus. În sprijinul acestei afirmaţii avem următoarea teoremă.<br />
Teorema 5.14 Dacă A = UΣV H este DVS a matricei A ∈ IC m×n , k < r = rangA<br />
şi<br />
k∑<br />
def<br />
A k = σ j u j vj H , (5.120)<br />
atunci<br />
j=1<br />
min ‖A−X‖ = ‖A−A k ‖ = σ k+1 . (5.121)<br />
rangX = k<br />
X ∈ IC m×n<br />
Demonstraţie. Precizăm mai întâi faptul că, atât în enunţul teoremei cât şi<br />
în cele ce urmează, utilizăm în exclu<strong>si</strong>vitate norma spectrală. Din (5.120) rezultă<br />
∑<br />
U H A k V = diag(σ 1 ,σ 2 ,...,σ k ,0,...,0), de unde rangA k = k. Rezultă A − A k =<br />
r<br />
j=k+1 σ ju j vj H, deundeavemUH (A−A k )V = diag(0,...,0,σ k+1 ,...,σ r ,0,...,0)<br />
şi, prin urmare, ‖A−A k ‖ = σ k+1 .<br />
Fie acum o matrice m × n (complexă) X de rang k, altfel arbitrară. Fie, de<br />
asemenea, subspaţiile liniare ¯X = KerX, ¯V = ImV(:,1:k+1) şi W = ¯X ⋂ ¯V din<br />
IC n . Întrucât dim ¯X = n − k şi dim¯V = k + 1 avem dimW ≥ 1. Există deci un<br />
vector unitar w ∈ W. Avem pe de o parte Xw = 0, iar pe de altă parte există<br />
z ∈ IC k+1 cu ‖z‖ 2 = 1 astfel încât w = V(:,1 : k+1)z = ∑ k+1<br />
i=1 z iv i . Obţinem<br />
Aw = ∑ k+1<br />
i=1 z iAv i = ∑ k+1<br />
i=1 z iσ i u i . Rezultă<br />
‖A−X‖ def<br />
= max ‖(A−X)x‖ ≥ ‖(A−X)w‖ = ‖Aw‖ = √ k+1 ∑<br />
|z i | 2 σi 2.<br />
‖x‖ = 1<br />
i=1<br />
25 În ceea ce priveşte nivelul toleranţelor practicate, acesta depinde de contextul aplicativ. De<br />
exemplu, dacă matricea provine din date experimentale cu un nivel cunoscut al erorilor de măsură,<br />
atunci nu are nici un sens ca ǫ să fie inferior acestui nivel. Dacă matricea iniţială se con<strong>si</strong>deră<br />
exactă, atunci se recomandă ǫ ≈ ε M ‖A‖, unde ε M este ep<strong>si</strong>lon maşină al formatului virgulă mobilă<br />
al maşinii pe care se efectuează calculele.
418 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Deoarece vectorul z are norma unitară, i.e. ∑ k+1<br />
i=1 |z i| 2 = 1, pentru expre<strong>si</strong>a de sub<br />
radical avem evaluarea<br />
k+1<br />
∑<br />
k∑<br />
|z i | 2 σi 2 = σ2 k+1 + |z i | 2 (σi 2 −σ2 k+1 ) ≥ σ2 k+1 .<br />
i=1<br />
i=1<br />
Din ultimele două relaţii rezultă ‖A−X‖ 2 ≥ σk+1 2 pentru orice matrice X ∈ ICm×n<br />
de rangk şi, cum am văzut mai sus că margineainferioarăpoate fi atinsă, că (5.121)<br />
este adevărată.<br />
✸<br />
Prin urmare, σ k+1 este cea mai mică distanţă, în sensul normei spectrale, dintre<br />
matricea A şi toate matricele m×n de rang k. În particular, cea mai mică distanţă<br />
dintre o matrice A ∈ IC n×n ne<strong>si</strong>ngulară şi toate matricele <strong>si</strong>ngulare este dată de<br />
valoarea <strong>si</strong>ngulară minimă σ n a lui A.<br />
Exemplul 5.5 Con<strong>si</strong>derăm important şi util, în contextul acestui paragraf, să<br />
reluăm un exemplu prezentat în capitolul 2, exemplu menit să ilustreze faptul că<br />
unele criterii, încă uzitate, pentru aprecierea ”apropierii” unei matrice de o matrice<br />
<strong>si</strong>ngulară (cum ar fi valoarea determinantului sau cel mai mic dintre modulele <strong>valorilor</strong><br />
<strong>proprii</strong>), dau informaţii false şi că <strong>si</strong>ngurul criteriu corespunzător este dat de<br />
valoarea <strong>si</strong>ngulară minimă. Fie matricea Toeplitz superior triunghiulară<br />
⎡<br />
⎤<br />
1 −1 ··· −1 −1<br />
0 1 ··· −1 −1<br />
A =<br />
.<br />
⎢ . . .. . .<br />
∈ IR n×n<br />
⎥<br />
⎣ 0 0 ··· 1 −1 ⎦<br />
0 0 ··· 0 1<br />
având, evident, detA = 1 şi toate valorile <strong>proprii</strong> egale cu 1, deci min|λ i (A)| = 1,<br />
independent de dimen<strong>si</strong>unea matricei. Prin urmare, ambele criteriiamintite maisus<br />
indică ”indubitabil” faptul că matricea A este suficient de ”departe” de o matrice<br />
<strong>si</strong>ngulară şi că, aparent, este bine condiţionată la inversare. Faptul că, cel puţin în<br />
cazul de faţă, aparenţele înşeală se poate constata imediat con<strong>si</strong>derând matricea<br />
⎡<br />
⎤<br />
1 −1 ··· −1 −1<br />
0 1 ··· −1 −1<br />
à =<br />
.<br />
⎢ . . .. . .<br />
∈ IR n×n<br />
⎥<br />
⎣ 0 0 ··· 1 −1 ⎦<br />
− 1<br />
2<br />
0 ··· 0 1<br />
n−2<br />
care este (demonstraţi!) <strong>si</strong>ngulară. Cum ‖A − Ã‖ = 1<br />
2 n−2 ≥ σ n (A) rezultă că<br />
matricea A se apropie exponenţial de o matrice <strong>si</strong>ngulară odată cu creşterea dimen<strong>si</strong>unii.<br />
Numărul de condiţionare la inversare creşte şi el exponenţial cu dimen<strong>si</strong>unea<br />
matricei. De exemplu, utilizând ‖ · ‖ ∞ , numărul de condiţionare are expre<strong>si</strong>a<br />
κ ∞ = n2 n−1 . Pe de altă parte, matrice având valori <strong>proprii</strong> foarte mici şi, ca
5.6. APLICAŢIILE DVS 419<br />
urmare, şi determinanţi aşijderea, pot avea o condiţionare foarte bună. Pentru<br />
detalii, vezi capitolul 2.<br />
✸<br />
Una dintre consecinţele conceptuale importante ale teoremei 5.14 este faptul că<br />
matricele m×n de rang maximal formează o mulţime deschisă şi densă în IC m×n , i.e.<br />
generic, toate matricele sunt de rang maximal. De aceea, în problemele de calcul<br />
numeric care fac apel la noţiunea de rang, utilizarea noţiunii de rang numeric este<br />
indispensabilă.<br />
Prezentăm încontinuareun corolaral teoremei 5.14. În contextul lucrării, rezultatul<br />
are o utilitate practică evidentă.<br />
Corolar 5.3 Dacă matricea A ∈ IC m×n are rangul numeric ˜r = rang(A,ǫ), atunci<br />
unde p = min(m,n).<br />
σ 1 ≥ σ 2 ≥ ... ≥ σ˜r > ǫ ≥ σ˜r+1 ... ≥ σ p , (5.122)<br />
Demonstraţie. Dacă σ˜r+1 > ǫ rezultă rang(A,ǫ) > ˜r, iar dacă σ˜r ≤ ǫ, atunci<br />
rang(A,ǫ) < ˜r. Deci, σ˜r > ǫ ≥ σ˜r+1 .<br />
✸<br />
Observaţia 5.7 Practic toate aplicaţiile care utilizează DVS a unei matrice, fac<br />
apel la rangul acesteia. În contextul calculatoriu al lucrării, în continuare vom presupune<br />
că este vorba implicit de rangul numeric. În consecinţă, vom presupune<br />
că s-au neglijat, prin anulare efectivă, valorile <strong>si</strong>ngulare inferioare toleranţei precizate<br />
şi vom renunţa la notaţii speciale care diferenţiază rangul numeric de rangul<br />
matematic.<br />
✸<br />
Deşi, având în vedere corolarul 5.3 şi observaţia 5.7, scrierea unui algoritm pentru<br />
determinarea rangului numeric al unei matrice nu prezintă nici o dificultate,<br />
totuşi, ţinând seama de importanţa aplicativă a problemei, con<strong>si</strong>derăm necesară<br />
îndeplinirea acestei formalităţi.<br />
Algoritmul 5.6 (Rang DVS – <strong>Calculul</strong> rangului numeric) (Date<br />
matricea A ∈ IC m×n şi toleranţa tol > 0, algoritmul calculează rangul<br />
numeric r = rang(A,tol) al matricei A.)<br />
1. p = min(m,n)<br />
2. [U,Σ,V] = DVS(A, ′ nu ′ , ′ nu ′ )<br />
3. r = 0<br />
4. C^at timp Σ r+1,r+1 ≥ tol<br />
1. r ← r +1<br />
2. Dacă r = p atunci break<br />
Comentarii. Sintaxa de apel a algoritmului este<br />
r = Rang DVS(A,tol).<br />
În aplicaţiile caresunt prezentate încontinuarese vorivi <strong>si</strong>tuaţii în careeste necesar<br />
atât calculul rangului cât şi calculul explicit al DVS a matricei A. Pentru a evita<br />
un calcul dublu al aceleiaşi DVS, se va utiliza secvenţa de apeluri
420 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
1. [U,Σ,V] = DVS(A,opt1,opt2)<br />
2. r = Rang DVS(Σ,tol)<br />
la instrucţiunea 2 matricea argument fiind diagonal˘ nu se mai calculează în fapt<br />
nici o DVS.<br />
Complexitatea algoritmului este dată, în cazul general, de complexitatea algoritmului<br />
DVS fără acumularea transformărilor.<br />
✸<br />
Observaţia 5.8 În definirea şi calculul rangului numeric a fost utilizată, în exclu<strong>si</strong>vitate,<br />
norma spectrală. În unele lucrări [VI], pentru dezvoltareaaceloraşiidei, se<br />
preferă utilizarea normei Frobenius, rezultatele fiind întru totul <strong>si</strong>milare. În această<br />
observaţie prezentăm rezultatul corespunzător teoremei 5.14, care ne va fi util şi în<br />
rezolvarea problemei celor mai mici pătrate totală.<br />
Teorema 5.15 Dacă Σ = UAV H este DVS a matricei A ∈ IC m×n , k < r = rangA<br />
26 şi A k este matricea definită în (5.120), atunci<br />
r∑<br />
min ‖A−X‖ 2 F = ‖A−A k‖ 2 F = σi 2 . (5.123)<br />
rangX=k<br />
i=k+1<br />
X∈IC m×n<br />
Mai mult A k este unica matrice de rang k pentru care acest minim este atins.<br />
Demonstraţie. Fie X ∈ IC m×n [ o matrice ] de rang k arbitrară şi X = Ũ˜ΣṼ H<br />
DVS a matricei X, unde ˜Σ<br />
˜Σ11 0<br />
= ∈ IR m×n cu<br />
0 0<br />
˜Σ 11 = diag(˜σ 1 ,˜σ 2 ,...,˜σ k ).<br />
[ ]<br />
Notăm B = ŨH AṼ = B11 B 12<br />
cu B<br />
B 21 B 11 ∈ IC k×k . Fie σ(B 11 ) = {γ 1 ,γ 2 ,...,γ k }.<br />
22<br />
Evident, σ(A) = σ(B) şi, din teorema 5.11, de separarea <strong>valorilor</strong><strong>si</strong>ngulare, rezultă<br />
imediat σ i ≥ γ i , i = 1 : k. Rezultă ‖B 11 ‖ 2 F = ∑ k<br />
i=1 γ2 i ≤ ∑ k<br />
i=1 σ2 i . Avem, în<br />
consecinţă, următoarele evaluări:<br />
‖A−X‖ 2 F = ‖B − ˜Σ‖<br />
k∑<br />
2<br />
F = ‖B‖2 F + |b jj − ˜σ j | 2 −<br />
j=1<br />
≥ ‖B‖ 2 F −‖B 11 ‖ 2 F ≥ ‖B‖ 2 F −<br />
k∑<br />
|b jj | 2 ≥<br />
j=1<br />
k∑<br />
σi 2 =<br />
i=1<br />
r∑<br />
i=k+1<br />
Pe de altă parte este evidentă egalitatea ‖A−A k ‖ 2 F = ∑ r<br />
i=k+1 σ2 i , i.e. minimul<br />
este atins pentru X = A k . Vom arăta acum că X = A k este <strong>si</strong>ngura matrice de<br />
rang k astfel încât ‖A−X‖ 2 F = ∑ r<br />
i=k+1 σ2 i . Cu notaţiile utilizate mai sus rezultă<br />
k∑<br />
σj 2 +<br />
j=1<br />
k∑<br />
|b jj − ˜σ j | 2 −<br />
j=1<br />
k∑<br />
|b jj | 2 = 0<br />
j=1<br />
26 Aici, la fel ca în teorema 5.14, r este rangul matematic.<br />
σ 2 i.
5.6. APLICAŢIILE DVS 421<br />
şi<br />
de unde obţinem<br />
k∑<br />
σj 2 ≥<br />
j=1<br />
k∑<br />
γj 2 = ‖B 11 ‖ 2 F ≥<br />
j=1<br />
k∑<br />
|b jj | 2 ,<br />
j=1<br />
b jj = ˜σ j , j = 1 : k.<br />
Rezultă B 11 = ˜Σ 11 , de unde unicitatea se obţine imediat.<br />
În lumina teoremei 5.15 putem defini rangul numeric r F , în sensul normei matriceale<br />
Frobenius, ca fiind ce mai mic întreg k pentru care<br />
min(m,n)<br />
∑<br />
i=k+1<br />
σ 2 i < ǫ,<br />
unde ǫ este o toleranţă precizată. Şi această definire a noţiunii de rang numeric este<br />
utilă mai ales în contextul calculului numeric, <strong>si</strong>tuaţie în care σ i , din relaţia de mai<br />
sus, sunt valorile <strong>si</strong>ngulare calculate ale matricei A.<br />
✸<br />
5.6.2 Problema generală a celor mai mici pătrate<br />
Con<strong>si</strong>derăm <strong>si</strong>stemul liniar<br />
Ax = b (5.124)<br />
în cadrul general în care matricea A ∈ IC m×n nu este de rang maximal 27 (i.e.<br />
r = rangA < min(m,n)), cu b ∈ IC m arbitrar. Formulăm problema rezolvării în<br />
sens CMMP a acestui <strong>si</strong>stem, respectiv de calcul a vectorului x ∗ ∈ IC n de normă<br />
euclidiană minimă care minimizează norma euclidiană a reziduului r(A,b) = b−Ax,<br />
i.e.<br />
‖x ∗ ‖ = min<br />
‖b−Ax‖ = minim<br />
x ∈ IC n ‖x‖, (5.125)<br />
numită pseudosoluţie normală a <strong>si</strong>stemului (5.124). Avem următorul rezultat.<br />
Propoziţia 5.7 Sistemul liniar (5.124) admite o pseudosoluţie normală unic determinată.<br />
Dacă A = UΣV H este DVS a matricei A, atunci această pseudosoluţie<br />
normală are expre<strong>si</strong>a<br />
r∑<br />
x ∗ = A + u H j<br />
b =<br />
b v j . (5.126)<br />
σ j<br />
[<br />
d<br />
Demonstraţie. Fie d = U H ′<br />
b =<br />
j=1<br />
]<br />
d ′′ , y = V H x =<br />
d ′′ = d(r+1 : m) şi y ′ = y(1:r), y ′′ = y(r+1 : n). Avem<br />
‖b−Ax‖ 2 = ‖b−UΣV H x‖ 2 = ‖d−Σy‖ 2 =<br />
27 Pentru <strong>si</strong>stemele de rang maximal vezi capitolul 3.<br />
✸<br />
[<br />
y<br />
′<br />
y ′′ ]<br />
unde d ′ = d(1:r),<br />
√<br />
‖d ′ −Σ 1 y ′ ‖ 2 2 +‖d′′ ‖ 2 2
422 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
care este, evident, minimă pentru y ′ = Σ −1<br />
1 d′ şi y ′′ arbitrar. Dintre toţi vectorii y<br />
care minimizează reziduul de mai sus, cel de normă euclidiană minimă corespunde<br />
lui y ′′ = 0. Cum ‖x‖ 2 = ‖y‖ 2 , rezultă că vectorul de normă euclidiană minimă care<br />
minimizează reziduul ‖b−Ax‖ 2 este<br />
x ∗ = V<br />
[<br />
Σ<br />
−1<br />
1 d′<br />
0<br />
]<br />
= V<br />
[<br />
Σ<br />
−1<br />
1 0<br />
0 0<br />
]<br />
d = VΣ + U H b = A + b,<br />
ultima egalitate din (5.126)obţinându-seutilizând (5.55). Unicitatea pseudosoluţiei<br />
normale rezultă din unicitatea pseudoinversei.<br />
✸<br />
Propoziţia 5.7 conduce la următorul algoritm.<br />
Algoritmul 5.7 (CMMP – Rezolvarea problemei generale CMMP)<br />
(Date matricea A ∈ IC m×n , vectorul b ∈ IC m şi toleranţa tol > 0, algoritmul<br />
calculează (pseudo)soluţia x = x ∗ ∈ IC n , în sens CMMP, de normă<br />
euclidiană minimă, a <strong>si</strong>stemului liniar Ax = b.)<br />
1. [U,Σ,V] = DVS(A, ′ da ′ , ′ da ′ )<br />
2. r = Rang DVS(Σ,tol)<br />
3. x = 0<br />
4. Pentru j = 1 : r<br />
1. δ = (U(:,j)) H b<br />
2. δ = δ σ j<br />
3. x = x+δV(:,j)<br />
Comentarii. Sintaxa de apel a algoritmului este<br />
x = CMMP(A,b,tol),<br />
iar complexitatea sa este determinată de complexitatea algoritmului DVS cu acumularea<br />
transformărilor.<br />
Algoritmulprezentatestenumericstabil, detaliiprivindacurateţeasoluţieiproblemei<br />
CMMP calculată mai sus putând fi gă<strong>si</strong>te în [VI].<br />
✸<br />
5.6.3 Problema celor mai mici pătrate totală<br />
Vom formula şi rezolva în cele ce urmează o generalizare a problemei cla<strong>si</strong>ce a celor<br />
mai mici pătrate (CMMP). Pentru a da o justificare formulării acestei generalizări,<br />
să observăm că problema CMMP, de minimizare a normei euclidiene a reziduului<br />
r = Ax − b, unde matricea A ∈ IC m×n şi vectorul b ∈ IC n sunt date 28 , poate fi<br />
reformulată în modul următor. Putem privi reziduul r din egalitatea Ax = b+r ca<br />
o ”perturbare” a vectorului de date b sub restricţia ca b+r = Ax pentru un anumit<br />
28 Toate rezultatele rămân valabile şi în cazul real. S-a preferat con<strong>si</strong>derarea datelor complexe<br />
pentru a<strong>si</strong>gurarea omogenităţii tratării materialului din acest capitol.
5.6. APLICAŢIILE DVS 423<br />
x, i.e. (b+r) ∈ ImA. În aceste condiţii problema CMMP este de a determina acel<br />
reziduu r ∗ ∈ IC m pentru care avem<br />
‖r ∗ ‖ =<br />
min ‖r‖, (5.127)<br />
(b+r) ∈ ImA<br />
unde ‖ · ‖ def<br />
= ‖ · ‖ 2 este norma euclidiană din IC m . În această interpretare, dacă<br />
r ∗ este o soluţie a problemei de minimizare (5.127), atunci orice soluţie x ∗ ∈ IC n a<br />
<strong>si</strong>stemului Ax = b+r ∗ este (pseudo)soluţie CMMP a <strong>si</strong>stemului liniar Ax = b.<br />
Un prim pas spre generalizare se poate face impunând o ponderare a pătratelor<br />
din expre<strong>si</strong>a‖r‖ = ( ∑ m<br />
i=1 |r i| 2 ) 1 2<br />
, i.e. con<strong>si</strong>derareaproblemeiminimizării reziduului<br />
”ponderat” ‖Cr‖ = ( ∑ m<br />
i=1 |c ir i | 2 ) 1 2<br />
, unde C = diag(c 1 ,c 2 ,...,c m ) ∈ IC m×m este o<br />
matrice ne<strong>si</strong>ngulară, i.e. problema (5.127) devine<br />
‖Cr ∗ ‖ =<br />
min<br />
(b+r) ∈ ImA ‖Cr‖, r ∈ ICm . (5.128)<br />
Al doilea pas de generalizare poate fi făcut con<strong>si</strong>derând şi perturbaţii la nivelul<br />
elementelor matricei A, respectiv con<strong>si</strong>derând <strong>si</strong>stemul liniar (A + E)x = b + r<br />
şi impunând minimizarea normei Frobenius a reziduului cumulat G def<br />
= [ E r ] ∈<br />
∈ IC m×(n+1) . Introducând şi matricele diagonalene<strong>si</strong>ngulareC=diag(c 1 ,c 2 ,...,c m )<br />
şi D = diag(d 1 ,d 2 ,...,d n+1 ) de ”ponderare” pe linii, respectiv pe coloane, a matricei<br />
G, problema de minimizare devine<br />
‖CG ∗ D‖ F<br />
=<br />
min<br />
(b+r) ∈ Im(A+E) ‖CGD‖ F, E ∈ IC m×n , r ∈ IC m , (5.129)<br />
fiindcunoscutăsubdenumireadeproblemacelor mai mici pătrate totală(CMMPT).<br />
Dacă (E ∗ ,r ∗ ) este o soluţie a problemei de minimizare (5.129), atunci orice soluţie<br />
x ∗ a <strong>si</strong>stemului (A+E ∗ )x = b+r ∗ se numeşte (pseudo)soluţie, în sens CMMPT, a<br />
<strong>si</strong>stemului Ax = b.<br />
Observaţia 5.9 Problema CMMPT (5.129) poate fi echivalată cu o problemă de<br />
minimizare a unei funcţii reale de n variabile, fără restricţii suplimentare. Pentru<br />
<strong>si</strong>mplitate, con<strong>si</strong>derăm cazul real. Privind x ∈ IR n ca un parametru vectorial,<br />
problema (5.129) poate fi formulată, într-oprimă fază, ca o problemă de minimizare<br />
cu legături: să se calculeze matricea G ∗ ∈ IR m×(n+1) astfel încât<br />
[ ]<br />
‖CG ∗ D‖ 2 x<br />
F = min<br />
G ∈ IR m×(n+1)‖CGD‖2 F , cu legăturile (G+[A b]) = 0.<br />
−1<br />
Fie<br />
[<br />
h(G,λ) = ‖CGD‖ 2 x<br />
F +λT (G+[A b])<br />
−1<br />
]<br />
(5.130)<br />
(5.131)<br />
funcţia lui Lagrange asociată problemei de extrem cu legături (5.131). Pentru calculul<br />
extremului impunem condiţiile cla<strong>si</strong>ce<br />
∂h(G,λ)<br />
∂g ij<br />
= 0, i = 1 : m, j = 1 : n+1, (5.132)
424 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
(unde, evident, g ij = G(i,j)) care conduc imediat la exprimarea elementelor matricei<br />
G în funcţie de multiplicatorii Lagrange λ i = λ(i)<br />
g ij<br />
def<br />
= e ij = −λ ix j<br />
2c 2 i d2 j<br />
, i = 1 : m, j = 1 : n, g i,n+1<br />
def<br />
= r i =<br />
λ i<br />
2c 2 i d2 n+1<br />
, i = 1 : m.<br />
(5.133)<br />
Impunând satisfacerealegăturilorobţinem valoareamultiplicatorilorLagrangecorespunzătoare<br />
punctului de extrem<br />
λ ∗ =<br />
2(Ax−b)<br />
x T ˜D −2 x+d −2 , ˜D = diag(d1 ,d 2 ,...,d n ). (5.134)<br />
n+1<br />
Pentru un vector x fixat, valoarea optimă G ∗ (x) = [E ∗ (x) r ∗ (x)] se obţine înlocuind<br />
λ ∗ i în relaţiile (5.133). Obţinem<br />
E ∗ (x) = − 1 2 C−2 λ ∗ x T ˜D−2 ,<br />
r ∗ (x) = 1 2 C−2 λ ∗ d −2<br />
n+1 . (5.135)<br />
Utilizând, acum, egalitatea ‖yz T ‖ F = ‖y‖·‖z‖, adevărată pentru orice vectori y şi<br />
z (demonstraţi!), obţinem valoarea minimă (pentru un x fixat) a criteriului (5.130)<br />
f(x) def<br />
= ‖CG ∗ (x)D‖ 2 F = ‖CE∗ (x)˜D‖ 2 F +‖Cr∗ (x)d n+1 ‖ 2 F =<br />
= 1 4<br />
∑ m<br />
i=1 c−2<br />
i (a T i x−b i) 2<br />
∑ n<br />
i=1 x2 i d−2 i +d −2 , (5.136)<br />
n+1<br />
unde a T i = A(i, :) este linia i a matricei A. Evident, punctul de minim x ∗ ∈ IR n al<br />
funcţiei f este (pseudo)soluţia problemei CMMPT (5.129). Deşi această observaţie<br />
nu oferă o alternativă viabilă de calcul, totuşi este utilă pentru interpretarea unor<br />
rezultate.<br />
✸<br />
Observaţia 5.10 Observaţia 5.9 oferă po<strong>si</strong>bilitatea unei interpretări geometrice a<br />
problemei CMMPT. Fie subspaţiul liniar<br />
{ [ ]<br />
}<br />
a<br />
P x = a ∈ IR n , b ∈ IR, a<br />
b<br />
T x = b ⊂ IR n+1<br />
definit pentru fiecare parametru vectorial x ∈ IR n . Utilizând aceeaşi procedură<br />
cla<strong>si</strong>că, de calcul a extremelor cu legături, se arată (exerciţiu pentru cititor) [ ] că<br />
def<br />
a<br />
distanţa, în sensul normei ‖z‖ D = ‖Dz‖, dintre un punct arbitrar z = ∈<br />
b<br />
∈ IR n+1 şi cel mai apropiat punct din subspaţiul P x este<br />
δ(z,P x ) =<br />
|a T x−b|<br />
√ ∑n<br />
.<br />
i=1 x2 i d−2 i +d −2<br />
n+1<br />
În consecinţă, conform observaţiei 5.9, soluţia x ∗ a problemei CMMPT (5.129)<br />
determină acel subspaţiu P x ∗ pentru care suma ponderată a distanţelor (în sensul
5.6. APLICAŢIILE DVS 425<br />
[ (A(i,:))<br />
T<br />
normei ‖ · ‖ D ) de la punctele z =<br />
b(i)<br />
apropiate ale lui P x ∗ (vezi (5.136)) este minimă.<br />
]<br />
∈ IR n+1 la punctele cele mai<br />
✸<br />
A treia treaptă de generalizare o introducem con<strong>si</strong>derând un membru drept<br />
multiplu, i.e. formulând problema CMMPT pentru <strong>si</strong>stemul liniar matriceal AX =<br />
= B cu B ∈ IC m×p , respectiv problema de minimizare<br />
‖CG ∗ D‖ = min<br />
(B +R) ⊆ Im(A+E) ‖CGD‖ F, E ∈ IC m×n , R ∈ IC m×p , G = [E R],<br />
(5.137)<br />
unde matricele A ∈ IC m×n , B ∈ IC m×p , cu m ≥ n+p, precum şi matricele diagonale<br />
ne<strong>si</strong>ngulare C ∈ IC m×m şi D ∈ IC (n+p)×(n+p) sunt date. La fel ca şi până acum,<br />
dacă (E ∗ ,R ∗ ) este o soluţie a problemei de minimizare (5.137), atunci orice matrice<br />
X ∗ ∈ IC n×p care satisface <strong>si</strong>stemul liniar matriceal (A+E ∗ )X = B+R ∗ va fi numită<br />
(pseudo)soluţia, în sens CMMPT, a <strong>si</strong>stemului AX = B.<br />
Pentru a formula mai concis rezultatul referitor la existenţa şi unicitatea soluţiei<br />
problemelor de minimizare ce definesc CMMPT, vom introduce unele notaţii şi vom<br />
stabili un rezultat preliminar. Fie<br />
H def<br />
= C[ A B ]D =<br />
n p<br />
{}}{ {}}{<br />
[ ]<br />
H1 H 2<br />
(5.138)<br />
şi H = UΣV H DVS a matricei H, cu următoarele partiţii ale matricelor U, V şi Σ<br />
impuse de structura lui H<br />
U =<br />
n<br />
p<br />
{}}{ m−n−p<br />
{}}{ {}}{<br />
[ ]<br />
U1 U 2 U 3<br />
, V =<br />
n p<br />
{}}{ {}}{<br />
[ ]<br />
V11 V 12 }n<br />
V 21 V 22 }p<br />
Σ =<br />
n<br />
p<br />
{}}{ {}}{<br />
⎡<br />
⎣ Σ ⎤<br />
1 0<br />
0 Σ 2<br />
⎦ }n<br />
}p ,<br />
0 0 }m−n−p<br />
Introducem următoarea lemă.<br />
Σ 1 = diag(σ 1 ,σ 2 ,...,σ n )<br />
Σ 2 = diag(σ n+1 ,σ n+2 ,...,σ n+p ). (5.139)<br />
Lema 5.1 Dacă σ n (H 1 ) > σ n+1 , atunci<br />
1 ◦ . Matricea V 22 din (5.139) este ne<strong>si</strong>ngulară.<br />
2 ◦ . Cu notaţiile din (5.139), avem inegalitatea strictă<br />
σ n > σ n+1 . (5.140)<br />
Demonstraţie. 1 ◦ . Presupunem că matricea V 22 este <strong>si</strong>ngulară. Atunci există un<br />
vector z ∈ IC p nenul, pe care îl putem con<strong>si</strong>dera de normă euclidiană [ ] unitară, astfel<br />
def V12<br />
încât V 22 z = 0. Mai departe, din faptul că matricea V 2 = are coloanele<br />
V 22<br />
ortogonale, i.e. V2 H V 2 = I p , obţinem ‖V 2 z‖ = ‖V 12 z‖ = 1. Pe de altă parte din
426 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
DVS a matricei H, cu partiţiile din (5.139), avem U 2 Σ 2 = H 1 V 12 +H 2 V 22 . Acum,<br />
ţinând seama de con<strong>si</strong>stenţa normei spectrale, putem scrie următoarea secvenţă de<br />
inegalităţi<br />
σ n+1 = ‖Σ 2 ‖ = ‖U 2 ‖·‖Σ 2 ‖ ≥ ‖U 2 Σ 2 ‖ = ‖H 1 V 12 +H 2 V 22 ‖ =<br />
= max<br />
‖y‖=1 ‖(H 1V 12 +H 2 V 22 )y‖ ≥ ‖H 1 V 12 z‖ ≥ min<br />
‖w‖=1 ‖H 1w‖ = σ n (H 1 ),<br />
ceea ce contrazice ipoteza lemei. Deci V 22 este ne<strong>si</strong>ngulară.<br />
2 ◦ . Conform teoremei 5.11 (de separare a <strong>valorilor</strong> <strong>si</strong>ngulare) avem<br />
σ n = σ n (H) ≥ σ n (H [n+p−1] ) ≥ ... ≥ σ n (H [n] ) def<br />
= σ n (H 1 ), (5.141)<br />
de unde, în ipoteza lemei, rezultă σ n ≥ σ n (H 1 ) > σ n+1 , obţinându-se inegalitatea<br />
strictă din enunţ.<br />
✸<br />
Formulăm acum teorema de existenţă şi unicitate a soluţiei problemei CMMPT.<br />
Teorema 5.16 Utilizând notaţiile (5.138), (5.139), dacă σ n (H 1 ) > σ n+1 , atunci<br />
matricea G ∗ def<br />
= [ E ∗ R ∗ ] definită de<br />
G ∗ = [ E ∗ R ∗ ] = −C −1 U 2 Σ 2 [ V H<br />
12 V H<br />
22 ]D−1 (5.142)<br />
este o soluţie a problemei de minimizare CMMPT (5.137).<br />
În plus, dacă notăm<br />
D 1 = diag(d 1 ,d 2 ,...,d n ), D 2 = diag(d n+1 ,d n+2 ,...,d n+p ), (5.143)<br />
atunci matricea<br />
X ∗ = −D 1 V 12 V22 −1 D−1 2 (5.144)<br />
există şi este unica soluţie a <strong>si</strong>stemului<br />
(A+E ∗ )X = B +R ∗ , (5.145)<br />
i.e. este unica (pseudo)soluţie, în sens CMMPT, a <strong>si</strong>stemului liniar AX = B.<br />
Demonstraţie. Condiţia (B +R) ⊆ Im(A+E) este echivalentă cu existenţa unei<br />
matrice X ∈ IC n×p astfel încât (A + E)X = B + R. Cu notaţiile din (5.137) şi<br />
(5.138), ultima relaţie poate fi scrisă în următoarele forme echivalente<br />
([ ] ) [ ]<br />
[ ]<br />
X A B +G = 0 ⇔ (H +CGD)D −1 X<br />
= 0. (5.146)<br />
−I p −I p<br />
[ ]<br />
X<br />
Întrucât matricea este monică, din (5.146) rezultă rang(H +CGD) ≤ n.<br />
−I p<br />
NotândF def<br />
= CGD, încontinuareaplicămteorema5.15matricei−F = H−(H+F).<br />
Obţinem<br />
n+p<br />
min ‖F‖ 2 F = ∑<br />
σi 2 , (5.147)<br />
rang(H+F)≤n<br />
i=n+1
5.6. APLICAŢIILE DVS 427<br />
minimul atingându-se pentru<br />
Rezultă<br />
(H +F) ∗ =<br />
n∑<br />
j=1<br />
σ j u j v H j = U 1 Σ 1<br />
[<br />
V11<br />
V 21<br />
] H<br />
. (5.148)<br />
F ∗ = U 1 Σ 1<br />
[<br />
V11<br />
V 21<br />
] H<br />
−H = −U 2 Σ 2<br />
[<br />
V21<br />
V 22<br />
] H<br />
, (5.149)<br />
de unde se obţine imediat (5.142). Mai mult, conform lemei 5.1, în condiţiile teoremei<br />
aveminegalitateastrictă σ n > σ n+1 , ceeace a<strong>si</strong>gurăunicitateamatricei G = G ∗<br />
care minimizează expre<strong>si</strong>a (5.137).<br />
În finalul demonstraţiei vom arăta că X ∗ din (5.144) este unica soluţie a <strong>si</strong>stemului<br />
(A+E ∗ )X = B +R ∗ care, conform (5.146), poate fi scris şi sub forma<br />
(H +CG ∗ D)D −1 [ X<br />
−I p<br />
]<br />
= 0. (5.150)<br />
Pentru aceasta, din expre<strong>si</strong>a (5.142) a matricei G ∗ şi DVS a matricei H rezultă<br />
H +CG ∗ [ ]<br />
D = U 1 Σ 1 V<br />
H<br />
11 V21<br />
H , (5.151)<br />
de unde, datorită monicităţii matricei U 1 Σ 1 , rezultă<br />
Ker(H +CG ∗ D) = Ker [ V11 H V21<br />
H<br />
]<br />
= Im<br />
[<br />
V12<br />
V 22<br />
]<br />
. (5.152)<br />
Prin urmare, din (5.150) şi (5.143) rezultă că orice soluţie X satisface relaţiile<br />
[ ] [ ] {<br />
D −1 X V12 D<br />
−1<br />
= Y ⇒<br />
1 X = V 12Y<br />
−I p V 22 D2 −1 (5.153)<br />
= V 22 Y.<br />
Deci, în virtutea lemei 5.1, avem Y = −V22 −1 D−1 2 . În concluzie, în mod necesar, din<br />
(5.153) rezultă că unica (pseudo)soluţie, în sens CMMPT, este<br />
i.e. (5.144). Teorema este demonstrată.<br />
X = D 1 V 12 Y = −D 1 V 12 V −1<br />
22 D−1 2 = X ∗ ,<br />
Prezentăm în continuare o modalitate de calcul a soluţiei problemei CMMPT<br />
care derivă nemijlocit din demonstraţia teoremei 5.16.<br />
Algoritmul 5.8 (CMMPT – Soluţia problemei CMMPT) (Se dau<br />
matricele A ∈ IC m×n , B ∈ IC m×p , cu m ≥ n+p, precum şi matricele diagonalene<strong>si</strong>ngulareC<br />
= diag(c 1 ,c 2 ,...,c m ) ∈ IC m×m şi D=diag(D 1 ,D 2 )<br />
∈ IC (n+p)×(n+p) , unde D 1 = diag(d 1 ,d 2 ,...,d n ), D 2 = diag(d n+1 , d n+2 ,<br />
..., d n+p ). Algoritmul calculează soluţia (dacă există a) problemei<br />
CMMPT, definite de cvartetul (A,B,C,D), i.e. calculează matricele<br />
E = E ∗ ∈ IC m×n şi R = R ∗ ∈ IC m×p care sunt soluţia problemei de minimizare<br />
(5.137) precum şi soluţia X ∗ a <strong>si</strong>stemului liniar (A+E ∗ )X =<br />
= B + R ∗ . Dacă soluţia nu există sau nu este unică se tipăreşte un<br />
mesaj, iar elementele tripletului (E ∗ ,R ∗ ,X ∗ ) rămân vide.)<br />
✸
428 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
1. E = [ ], R = [ ], X = [ ]<br />
2. H = C[A B]D<br />
3. [U,Σ,V] = DVS(H, ′ da ′ , ′ da ′ )<br />
4. [P,Γ,Q] = DVS(H(:,1 : n), ′ nu ′ , ′ nu ′ )<br />
5. Dacă γ n ≤ σ n+1 atunci<br />
1. Tipăreşte(’Problema nu admite soluţie!’)<br />
2. Return<br />
6. Dacă σ n = σ n+1 atunci<br />
1. Tipăreşte(’Problema nu admite o soluţie unică!’)<br />
2. Return<br />
7. Se rezolvă <strong>si</strong>stemul matriceal<br />
X(D 2 V(n+1 : n+p,n+1 : n+p)) = −D 1 V(1 : n,n+1 : n+p)<br />
8. E ∗ = −C −1 U 2 Σ 2 V H<br />
1 , unde U 2 = U(:,n+1 : n+p),<br />
Σ 2 = Σ(n+1 : n+p,n+1 : n+p), V 12 = V(1 : n,n+1 : n+p)<br />
12D −1<br />
9. R ∗ = −C −1 U 2 Σ 2 V H<br />
22D −1<br />
2 , unde V 22 = V(n+1 : n+p,n+1: n+p).<br />
Comentarii. Sintaxa de apel a algoritmului este<br />
[X,E,R] = CMMPT(A,B,C,D).<br />
În cadrul algoritmului s-au folo<strong>si</strong>t notaţiile evidente σ i = Σ(i,i) şi γ i = Γ(i,i).<br />
Pentru date de intrare (A,B,C,D) reale algoritmul funcţionează ca atare întrucât<br />
operatorul hermitic se reduce la cel de transpunere. Evident, într-un astfel de<br />
caz se utilizează, în exclu<strong>si</strong>vitate, o aritmetică reală. Singura problemă critică<br />
este rezolvarea <strong>si</strong>stemului liniar matriceal de la instrucţiunea 7 care poate fi rău<br />
condiţionat dacă valorile <strong>si</strong>ngulare σ n (H(:,1 : n)) şi σ n+1 nu sunt bine separate.<br />
Inversarea matricelor diagonale nu ridică probleme numerice (şi nici nu trebuie<br />
efectuată explicit). Complexitatea algoritmului este determinată, în primul rând,<br />
de complexitatea calculului DVS.<br />
✸<br />
Dacă σ n = σ n+1 , CMMPT poate avea soluţii multiple şi, într-un astfel de caz,<br />
cutuma CMMP este de a calcula soluţia de normă minimă. Vom numi această<br />
soluţie CMMPT normală (CMMPTN). Avându-se în vedere expre<strong>si</strong>a (5.154) a<br />
soluţiilor, o normă adecvată este ‖ · ‖ D definită de ‖Z‖ D = ‖D1 −1 ZD 2‖ cu care<br />
avem<br />
‖X‖ 2 D = ‖V 12 V22 −1 ‖2 = λ max (V22 −H V12V H 12 V22 −1 ) =<br />
= λ max (V22 −H (I p −V22V H 22 )V22 −1 ) = 1−σ2 min (V 22)<br />
σmin 2 (V , (5.154)<br />
22)<br />
ceea ce indică faptul că a minimiza ‖X‖ D este echivalent cu maximizarea celei mai<br />
mici valori <strong>si</strong>ngularea submatricei V 22 . Un algoritmpentru cazul importantşi uzual<br />
p = 1, i.e. al problemei (5.129), poate fi gă<strong>si</strong>t în [VI].
5.6. APLICAŢIILE DVS 429<br />
5.6.4 Probleme CMMP cu restricţii<br />
În cadrulparagrafeloranterioarerelativelarezolvareaproblemelorde minimizarede<br />
tipul celor mai mici pătrate, (pseudo)soluţia era căutată în tot spaţiul IC n , respectiv<br />
IR n încazuldatelorreale. Înceleceurmeazăvomrestrângeariadecăutareasoluţiei<br />
minimizante la un domeniu nevid X ⊂ IC n care nu coincide cu tot spaţiul. Deşi majoritatea<br />
aplicaţiilor de această natură operează cu date reale, pentru omogenitatea<br />
tratării vom con<strong>si</strong>dera, ca şi până acum, cazul, mai general, al datelor complexe.<br />
Cititorul interesat nu va întâmpina, cu <strong>si</strong>guranţă, nici un fel de dificultăţi la particularizarea<br />
rezultatelor şi a algoritmilor pentru cazul datelor reale.<br />
Într-o formulare generală, problema celor mai mici pătrate cu restricţii are<br />
următorul enunţ. Date matricea A ∈ IC m×n , cu m > n, vectorul b ∈ IC m şi mulţimea<br />
nevidă X ⊂ IC n , să se determine vectorul x ∗ ∈ X (dacă există) astfel încât<br />
‖r ∗ ‖ def<br />
= ‖Ax ∗ −b‖ = min ‖Ax−b‖, (5.155)<br />
x ∈ X<br />
unde, ca în toate problemele de tip CMMP, ‖·‖ este norma euclidiană.<br />
Diversele probleme CMMP cu restricţii diferă, natural, prin tipurile de mulţimi<br />
X. În continuare vom con<strong>si</strong>dera câteva cazuri frecvent întâlnite în aplicaţii.<br />
Problema CMMP cu restricţii liniare tip egalitate<br />
Restricţiile liniare tip egalitate pot fi descrise prin<br />
X = {x|x ∈ IC n , Cx = d}, (5.156)<br />
unde C ∈ IC p×n , p < n, este o matrice epică 29 şi d ∈ IC p .<br />
Problema CMMP (5.155), (5.156) poate fi rezolvată prin reducerea la rezolvarea<br />
unei probleme CMMP fără restricţii în modul următor. Fie factorizarea QR a<br />
matricei monice C H , i.e.<br />
[ ]<br />
C H R1<br />
= Q = Q<br />
0 1 R 1 , (5.157)<br />
unde R 1 ∈ IC p×p este superior triunghiulară ne<strong>si</strong>ngulară, Q ∈ IC n×n este unitară şi<br />
Q 1 = Q(:,1 : p). Condiţia Cx = d devine echivalentă cu R1 HQH 1 x = d, i.e.<br />
Q H 1 x = (RH 1 )−1 d def<br />
= y ∗ . (5.158)<br />
Pe de altă parte, con<strong>si</strong>derând partiţia Q = [Q 1 Q 2 ], avem<br />
[ ]<br />
r def<br />
= Ax−b = AQQ H Q<br />
H<br />
x−b = [AQ 1 AQ 2 ] 1 x<br />
Q H 2 x −b = A 1 y+A 2 z−b = A 2 z−˜b<br />
(5.159)<br />
29 Dacă C nu este epică, i.e. r = rangC < p, atunci restricţiile pot fi rescrise în forma ˜Cx = ˜d,<br />
unde ˜C ∈ IC r×n este epică. Într-adevăr, dacă C = U 1Σ 1 V1 H este dezvoltarea DVS a matricei C,<br />
atunci ˜C poate fi Σ1 V1 H, în care caz ˜d = U1 H d. Dacă p = n, atunci C este ne<strong>si</strong>ngulară, i.e. X are<br />
un <strong>si</strong>ngur element, şi problema de minimizare devine trivială.
430 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
unde am utilizat notaţiile<br />
A 1 = AQ 1 , A 2 = AQ 2 , y = Q H 1 x, z = QH 2 x, ˜b = b−A1 y.<br />
Acum, întrucât restricţiile sunt echivalente cu fixarea vectorului y conform (5.158),<br />
problema CMMP cu restricţiile (5.156) s-a redus la problema minimizării normei<br />
reziduului (5.159) în raport cu z, fără alte restricţii. Altfel spus, dacă z ∗ este soluţia<br />
problemei CMMP fără restricţii<br />
‖r ∗ ‖ def<br />
= ‖A 2 z ∗ −˜b ∗ ‖ = min<br />
z ∈ IC n−p‖A 2z −˜b ∗ def<br />
‖, unde ˜b∗ = b−A 1 y ∗ , (5.160)<br />
atunci, evident,<br />
[ ] y<br />
x ∗ ∗<br />
= Q<br />
z ∗<br />
este soluţia problemei CMMP cu restricţii (5.155), (5.156).<br />
Rezultă următorul algoritm de calcul.<br />
Algoritmul 5.9 (CMMP RLE – Soluţia problemei CMMP cu<br />
restricţii liniare tip egalitate) (Se con<strong>si</strong>deră date matricea monică A ∈<br />
∈ IC m×n , cu m > n, şi vectorul b ∈ IC m , care definesc problema CMMP,<br />
precum şi matricea epică C ∈ IC p×n , cu p < n, şi vectorul d ∈ IC p , care<br />
definesc restricţiile (5.156). De asemenea se con<strong>si</strong>deră dată toleranţa tol<br />
care este parametru de intrare pentru algoritmul CMMP fără restricţii.<br />
Algoritmul calculează soluţia x = x ∗ a problemei CMMP cu restricţii<br />
(5.155), (5.156).)<br />
1. [Q,R] = FQR(C H )<br />
2. Se rezolvă <strong>si</strong>stemul inferior triunghiular ne<strong>si</strong>ngular<br />
(R(1 : p, :)) H y = d<br />
3. b ← b−AQ(:,1:p)y<br />
4. z = CMMP(AQ(:,p+1:n), b,tol)<br />
[ ]<br />
y<br />
5. x = Q .<br />
z<br />
Comentarii. Apelul acestui algoritm are <strong>si</strong>ntaxa<br />
x = CMMP RLE(A,b,C,d,tol).<br />
(5.161)<br />
Pentru algoritmul de factorizare QR a se vedea capitolul 3. De asemenea, dacă se<br />
ştie a priori faptul că matricea A este monică, atunci rezolvarea problemei CMMP<br />
fără restricţii se poate face cu mijloacele din capitolul 3. Dacă matricea A nu este<br />
monică, se impune utilizarea factorizării QR cu pivotarea coloanelor sau a DVS.<br />
Algoritmul este numeric stabil iar complexitatea sa este O(n 3 ). ✸<br />
Observaţia 5.11 Problema CMMP cu restricţii liniare tip inegalitate se tratează<br />
utilizând proceduri specifice de programare pătratică şi nu este abordată în această<br />
lucrare.<br />
✸
5.6. APLICAŢIILE DVS 431<br />
Problema CMMP cu restricţii pătratice<br />
Restricţiile pătratice întâlnite în practica problemelor CMMP sunt, în general, de<br />
tip inegalitate având forma<br />
X = {x|x ∈ IC n , ‖Bx−d‖ ≤ γ}, (5.162)<br />
unde B ∈ IC p×n , d ∈ IC p , γ ≥ 0 este un scalar real, iar ‖·‖ este norma euclidiană.<br />
Evident, dacă γ = 0, atunci restricţiile pătratice (5.162) devin restricţii liniare de<br />
tip egalitate, tratate în paragraful precedent.<br />
Pentru date reale mulţimea X este un (hiper)elipsoid în IR n . Particularizările<br />
curente ale restricţiilor (5.162) se obţin pentru d = 0 (în care caz elipsoidul este<br />
centrat în origine) sau pentru B = I n (elipsoidul devine o sferă plină, i.e. o bilă).<br />
În sfârşit, o categorie importantă o reprezintă restricţiile pătratice de tip egalitate<br />
care se obţin înlocuind în (5.162) relaţia de inegalitate cu o relaţie de egalitate şi<br />
con<strong>si</strong>derând γ > 0.<br />
Vom aborda rezolvarea problemei CMMP, definite de (5.155), (5.162), mai întâi<br />
în cazul general, iar apoi în cazul particular al unei bile.<br />
Fie problema CMMP (5.155), (5.162). Având în vedere faptul că sunt implicate<br />
două matrice, A şi B, apare ca naturală abordarea problemei prin încercarea<br />
de diagonalizare <strong>si</strong>multană a celor două matrice. Instrumentul adecvat este descompunerea<br />
<strong>valorilor</strong> <strong>si</strong>ngulare generalizate (DVSG, v. §5.1). Pesupunem KerA∩<br />
KerB = {0} 30 , şi, pentru fixarea ideilor şi notaţiilor, p ≥ n. În conformitate cu<br />
teorema 5.4, există matricele unitare U ∈ IC m×m , V ∈ IC p×p şi matricea ne<strong>si</strong>ngulară<br />
W ∈ IC n×n astfel încât<br />
[ ]<br />
U H C1<br />
AW = C = , C 1 = diag(c 1 ,c 2 ,...,c n ) ∈ IR n×n ,<br />
V H BW = S =<br />
0<br />
[<br />
S1<br />
0<br />
]<br />
, S 1 = diag(s 1 ,s 2 ,...,s n ) ∈ IR n×n ,<br />
(5.163)<br />
unde valorile <strong>si</strong>ngulare generalizate (c i ,s i ) satisfac condiţiile c 2 i +s2 i<br />
şi sunt ordonate conform<br />
1 ≥ c 1 ≥ c 2 ≥ ... ≥ c n ≥ 0,<br />
0 ≤ s 1 ≤ s 2 ≤ ... ≤ s n ≤ 1.<br />
= 1, i = 1 : n,<br />
(5.164)<br />
Ţinând seama de faptul că transformările unitare conservă norma euclidiană şi<br />
notând<br />
W −1 x def<br />
= y (5.165)<br />
norma reziduului asociat problemei CMMP şi restricţia (5.162) se scriu în forma<br />
echivalentă<br />
‖r‖ = ‖Ax−b‖ = ‖UCW −1 x−b‖ = ‖Cy −˜b‖, ˜b = U H b,<br />
‖Bx−d‖ = ‖VSW −1 x−d‖ = ‖Sy − ˜d‖ ≤ γ, ˜d = V H d,<br />
(5.166)<br />
30 Aceste condiţii nu sunt neapărat necesare, dar permit anumite <strong>si</strong>mplificări (v. §5.1).
432 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
i.e. rezolvarea problemei (5.155), (5.162), revine la a rezolva problema echivalentă<br />
de calcul a (pseudo)soluţiei y ∗ ∈ Y = W −1 X (dacă există) astfel încât<br />
‖r ∗ ‖ = ‖Cy ∗ −˜b‖ = min<br />
y ∈ Y ‖Cy −˜b‖. (5.167)<br />
Fie, acum, r A = rangA, r B = rangB ceea ce, având în vedere ordonarea din<br />
(5.164), înseamnă<br />
Rezultă<br />
şi, respectiv,<br />
c rA+1 = c rA+2 = ... = c n = 0, s 1 = s 2 = ... = s n−rB = 0. (5.168)<br />
φ(y) def<br />
= ‖r‖ 2 = ‖Cy −˜b‖ 2 =<br />
ψ(y) def<br />
= ‖Sy − ˜d‖<br />
n−r<br />
∑ B<br />
2 = |˜d i | 2 +<br />
i=1<br />
r A<br />
∑<br />
i=1<br />
n∑<br />
i=n−r B+1<br />
|c i y i −˜b i | 2 +<br />
|s i y i − ˜d i | 2 +<br />
m∑<br />
i=r A+1<br />
p∑<br />
i=n+1<br />
|˜b i | 2 (5.169)<br />
|˜d i | 2 ≤ γ 2 . (5.170)<br />
O condiţie evidentă ca mulţimea Y să nu fie vidă, i.e. o condiţie necesară de<br />
existenţă a soluţiei problemei (5.167), este<br />
n−r<br />
∑ B<br />
i=1<br />
|˜d i | 2 +<br />
p∑<br />
i=n+1<br />
|˜d i | 2 ≤ γ 2 . (5.171)<br />
Având în vedere că funcţia (5.169), care trebuie minimizată, este mărginită pe<br />
compactul Y, definit de (5.170), condiţia (5.171) este şi suficientă pentru existenţa<br />
soluţiei problemei CMMP (5.167) cu restricţii pătratice.<br />
Ideea rezolvării problemei (5.167) este reducerea acesteia la o problema cu restricţii<br />
de tip egalitate, pentru care se pot aplica tehnici cla<strong>si</strong>ce de minimizare.<br />
1. Con<strong>si</strong>derăm, mai întâi, cazul particular în care în (5.171) avem egalitate în<br />
locul inegalităţii 31 . Rezultă, în mod necesar, pentru satisfacerea restricţiei,<br />
y i = ˜d i<br />
c i<br />
, i = n−r B +1 : n. (5.172)<br />
Întrucât, condiţia c 2 i + s2 i = 1, i = 1 : n implică r A + r B ≥ n, i.e. r A ≥ n − r B ,<br />
rezultă că putem calcula componentele y i , i = 1 : n−r B astfel încât φ(y) = ‖r‖ 2<br />
să fie minimă. Obţinem<br />
y i = ˜b i<br />
s i<br />
, i = 1 : n−r B . (5.173)<br />
31 În cazul în care matricea B, vectorul d şi scalarul γ sunt stabilite din alte con<strong>si</strong>derente<br />
decât cele de a<strong>si</strong>gurare a existenţei soluţiei problemei, este puţin probabil ca în (5.171) să cădem<br />
peste <strong>si</strong>tuaţia de egalitate. Totuşi, în <strong>si</strong>tuaţia în care nu există soluţii, un compromis po<strong>si</strong>bil este<br />
creşterea scalarului γ până la atingerea egalităţii din (5.171).
5.6. APLICAŢIILE DVS 433<br />
Prin urmare, soluţia problemei CMMP (5.167), în <strong>si</strong>tuaţia<br />
n−r<br />
∑ B<br />
i=1<br />
|˜d i | 2 +<br />
p∑<br />
i=n+1<br />
|˜d i | 2 = γ 2 . (5.174)<br />
este<br />
⎡<br />
y ∗ =<br />
⎢<br />
⎣<br />
˜b1<br />
c 1<br />
.<br />
˜bn−rB<br />
c n−rB<br />
˜d n−rB+1<br />
s n−rB+1<br />
.<br />
˜d n<br />
s n<br />
⎤<br />
, ry<br />
∗ ⎥<br />
⎦<br />
def<br />
= Cy ∗ −˜b =<br />
⎡<br />
⎢<br />
⎣<br />
0<br />
.<br />
0<br />
σ n−rB+1˜d n−rB+1<br />
.<br />
σ rA<br />
˜drA<br />
˜brA+1<br />
.<br />
˜bm<br />
⎤<br />
, (5.175)<br />
⎥<br />
⎦<br />
iar soluţia corespunzătoare a problemei CMMP iniţiale, în acest caz, este<br />
x ∗ = W −1 y ∗ , r ∗ = Ur ∗ y , (5.176)<br />
cu valoarea minimă a normei euclidiene a reziduului dată de<br />
‖r ∗ ‖ = ‖r ∗ y ‖ = √ √√√<br />
r A<br />
∑<br />
i=n−r B+1<br />
|σ i˜di −˜b i | 2 +<br />
m∑<br />
i=r A+1<br />
|˜b i | 2 , (5.177)<br />
unde σ i = c i<br />
s i<br />
, i = n−r B +1 : r A , sunt valorile <strong>si</strong>ngulare generalizate finite şi nenule<br />
ale perechii (A,B).<br />
2. În continuare, studiem <strong>si</strong>tuaţia în care inegalitatea (5.171) este satifacută<br />
strict, i.e.<br />
n−r<br />
∑ B p∑<br />
|˜d i | 2 + |˜d i | 2 < γ 2 . (5.178)<br />
i=1<br />
i=n+1<br />
În acest caz, con<strong>si</strong>derăm cea mai mică valoare po<strong>si</strong>bilă (i.e. în absenţa oricăror<br />
restricţii) pe care o poate lua funcţia criteriu φ(y) din (5.169) şi anume<br />
care se obţine pentru y ∈ Ỹ unde<br />
m µ = min<br />
y ∈ IC nφ(y) = ∑<br />
|˜b i | 2 , (5.179)<br />
i=r A+1<br />
Ỹ = {y | y ∈ IC n cu y i = ˜b i<br />
c i<br />
, i = 1 : r A }, (5.180)
434 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
i.e. componentele y i , i = r A +1 : n, ale <strong>vectorilor</strong> din Ỹ sunt arbitrare.<br />
Pe de altă parte vectorul ŷ ∈ Ỹ care minimizează funcţia ψ(y), ce defineşte<br />
restricţia (5.170), este dat de<br />
ŷ i = ˜b i<br />
c i<br />
, i = 1 : r A ,<br />
iar valoarea minimă a funcţiei ψ este<br />
n−r<br />
∑ B<br />
ν = min ψ(y) = ψ(ŷ) =<br />
y ∈ Ỹ<br />
i=1<br />
|˜d i | 2 +<br />
Pot exista două <strong>si</strong>tuaţii:<br />
a. În prima <strong>si</strong>tuaţie, caracterizată de<br />
ŷ i = ˜d i<br />
s i<br />
, i = r A +1 : n, (5.181)<br />
r A<br />
∑<br />
i=n−r B<br />
|s i˜bi<br />
c i<br />
− ˜d i | 2 +<br />
p∑<br />
i=n+1<br />
|˜d i | 2 . (5.182)<br />
ν ≤ γ 2 , (5.183)<br />
vectorul y ∗ = ŷ din (5.181) a<strong>si</strong>gură atingerea minimului absolut al criteriului şi, în<br />
acelaşi timp, satisface restricţia pătratică (5.170). Prin urmare, y ∗ = ŷ reprezintă,<br />
în acest caz, o soluţie a problemei 32 (5.167). O soluţie a problemei CMMP iniţiale<br />
se obţine utilizând relaţiile (5.176).<br />
b. A doua <strong>si</strong>tuaţie este caracterizată de<br />
ν > γ 2 , (5.184)<br />
în care minimul absolut µ din (5.179) al funcţiei φ(y) nu poate fi atins. Un raţionament<br />
<strong>si</strong>mplu, indică faptul că, din motive de continuitate a funcţiei obiectiv, în<br />
acest caz minimul lui φ se atinge pe frontiera domeniului Y. Prin urmare avem aici<br />
o problema de extrem cu legături tip egalitate. Concret, problema este de a calcula<br />
y ∗ pentru care<br />
φ(y ∗ ) = min<br />
y∈Y φ(y), Y = {y|y ∈ ICn , ψ(y) = γ 2 }, (5.185)<br />
iar pentru rezolvarea ei vom utiliza metoda cla<strong>si</strong>că a multiplicatorilor lui Lagrange.<br />
Hamiltonianul asociat problemei (5.185) este<br />
h(λ,y) = φ(y)+λ(ψ(y)−γ 2 ) = ‖Cy −˜b‖ 2 +λ(‖Sy − ˜d‖ 2 −γ 2 ), (5.186)<br />
unde λ ∈ IR este multiplicatorul Lagrange. Introducând vectorii y R = Rey ∈ IR n<br />
şi y I = Imy ∈ IR n putem privi funcţia h din (5.186) ca o funcţie reală de 2n+ 1<br />
variabile reale. Impunând condiţiile cunoscute, de anulare a derivatelor parţiale,<br />
⎧<br />
∂h<br />
⎪⎨ ∂y R = 0<br />
i<br />
, i = 1 : n, (5.187)<br />
∂h ⎪⎩ = 0<br />
∂y I i<br />
32 Problema iniţială nu impune selecţia, dintre soluţiile care a<strong>si</strong>gură minimul absolut al funcţiei<br />
φ, a celei care minimizează funcţia ψ, criteriu îndeplinit de ŷ. Prin urmare, ar putea fi utilizate<br />
şi alte criterii de selecţie, cum ar fi, de exemplu, calculul vectorului y ∈ Ỹ de normă euclidiană<br />
minimă care satisface restricţia (5.170).
5.6. APLICAŢIILE DVS 435<br />
se obţine <strong>si</strong>stemul liniar diagonal<br />
(C T C +λS T S)y = S T˜b+λS T ˜d (5.188)<br />
care, con<strong>si</strong>derând λ drept parametru, se rezolvă imediat. Admiţând a priori că<br />
matricea <strong>si</strong>stemului (5.188) este ne<strong>si</strong>ngulară, obţinem expre<strong>si</strong>a y = y(λ) definită de<br />
⎧<br />
˜bi<br />
, i = 1 : n−r B<br />
c i<br />
⎪⎨<br />
c<br />
y i (λ) = i˜bi +λs i˜bi<br />
c 2 , i = n−r B +1 : r A (5.189)<br />
i +λs2 i<br />
˜d i ⎪⎩ , i = r A +1 : n<br />
s i<br />
Multiplicatorul Lagrange λ = λ ∗ , care defineşte soluţia problemei de extrem cu<br />
legături (5.185), se obţine prin rezolvarea ecuaţiei neliniare 33<br />
η(λ) def<br />
n−r<br />
∑ B<br />
= φ(y(λ))−γ 2 = ‖˜d 2 i +<br />
i=1<br />
r A<br />
∑<br />
i=n−r B+1<br />
|c i<br />
s i˜bi −c i˜di<br />
c 2 i +λs2 i<br />
| 2 +<br />
p∑<br />
i=n+1<br />
|˜d i | 2 −γ 2 = 0,<br />
(5.190)<br />
obţinută prin impunerea condiţiei ca soluţia (5.189) să satisfacă relaţia de legătură.<br />
Întrucât, pentru λ > 0, η(λ) este o funcţie descrescătoare (ca sumă de funcţii<br />
descrescătoare),<br />
η(0) =<br />
n−r<br />
∑ B<br />
i=1<br />
‖˜d 2 i +<br />
r A<br />
∑<br />
i=n−r B+1<br />
în virtutea condiţiei (5.184), şi<br />
|s i˜bi −c i˜di | 2<br />
+<br />
c 2 i<br />
n−r<br />
lim η(λ) = ∑ B<br />
|˜d i | 2 +<br />
λ→∞<br />
i=1<br />
p∑<br />
i=n+1<br />
p∑<br />
i=n+1<br />
|˜d i | 2 −γ 2 > 0, (5.191)<br />
|˜d i | 2 −γ 2 < 0, (5.192)<br />
în virtutea condiţiei (5.178), ecuaţia (5.190) admite o soluţie reală pozitivă λ = λ ∗<br />
unică. <strong>Calculul</strong> soluţiei λ ∗ se face prin metode iterative standard de rezolvare a<br />
ecuaţiilor neliniare (cum este metoda Newton, vezi [XVII]). În sfârşit, în acest caz,<br />
soluţia problemei CMMP (5.185) şi reziduul aferent sunt<br />
y ∗ = y(λ ∗ ), r ∗ y = Cy∗ −˜b, (5.193)<br />
iar soluţia problemei CMMP iniţiale se obţine utilizând relaţiile (5.176).<br />
Pentru a scrie algoritmul de rezolvare al problemei CMMP cu restricţii pătratice<br />
tip inegalitate vom admite că dispunem de o procedură de calcul a descompunerii<br />
<strong>valorilor</strong> <strong>si</strong>ngulare generalizate (exercitţiul 5.22) care va fi apelată utilizând <strong>si</strong>ntaxa<br />
[c,s,U,V,W ] = DVSG(A,B).<br />
33 Ecuaţiile de tipul (5.190) sunt cunoscute sub numele de ecuaţii seculare, denumire provenită<br />
din astronomie.
436 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
Algoritmul DVSG furnizează vectorii c şi s ai elementelor diagonale ale matricelor<br />
diagonale C şi S, precum şi matricele de transformare. Evident, rangul matricei A<br />
este dat de numărul componentelor ”nenule” ale vectorului c, iar rangul matricei B<br />
de cel al componentelor ”nenule” ale vectorului s. Neglijarea elementelor <strong>vectorilor</strong><br />
c şi s inferioare lui tol‖A‖, respectiv lui tol‖B‖, unde tol este o toleranţă fixată, şi<br />
determinarea rangului (numeric al) celor două matrice vor fi realizate cu algoritmul<br />
Rang DVSG care poate fi scris fără dificultate de cititor (exerciţiul 5.23) şi care<br />
va fi apelat folo<strong>si</strong>nd <strong>si</strong>ntaxa<br />
Rezultă următorul algoritm.<br />
[r A ,r B ] = Rang DVSG(s,c,tol).<br />
Algoritmul 5.10 (CMMP RPI – Soluţia problemei CMMP cu restricţii<br />
pătratice tip inegalitate) (Se con<strong>si</strong>deră date matricea A ∈ IC m×n ,<br />
cu m > n, şi vectorul b ∈ IC m , care definesc problema CMMP, precum<br />
şi matricea B ∈ IC p×n , cu p ≥ n, vectorul d ∈ IC p şi scalarul γ > 0 care<br />
definesc restricţiile (5.162). De asemenea, pentru evaluarea rangului<br />
este utilizată toleranţa tol. Algoritmul calculează soluţia x = x ∗ ∈ IC n<br />
a problemei CMMP cu restricţii (5.155), (5.162) şi reziduul r = r ∗ , de<br />
normă euclidiană minimă, aferent.)<br />
1. [c,s,U,V,W ] = DVSG(A,B)<br />
2. [r A ,r B ] = Rang DVSG(s,c,tol)<br />
3. b ← U H b<br />
4. d ← V H d<br />
5. ρ = ∑ n−r B<br />
i=1<br />
|d i | 2 + ∑ p<br />
i=n+1 |d i| 2<br />
6. Dacă ρ > γ 2 atunci<br />
1. Tipăreşte ’Problema unu are soluţie.’<br />
2. Return<br />
altfel<br />
1. Dacă ρ = γ 2 atunci<br />
1. y ∗ i = b i<br />
c i<br />
2. y ∗ i = d i<br />
altfel<br />
s i<br />
pentru i = 1 : n−r B<br />
pentru i = n−r B +1 : n<br />
1. ν = ρ+ ∑ r A<br />
i=n−rB<br />
|s i<br />
b i<br />
c i<br />
−d i | 2<br />
2. Dacă ν ≤ γ 2 atunci<br />
1. y ∗ i = b i<br />
c i<br />
2. y ∗ i = d i<br />
altfel<br />
s i<br />
pentru i = 1 : r A<br />
pentru i = r A +1 : n
5.6. APLICAŢIILE DVS 437<br />
7. x ∗ = Wy ∗ .<br />
1. Se calculează soluţia λ = λ ∗ > 0 a ecuaţiei seculare<br />
∑ rA<br />
|c s i b i −c i d i<br />
i=n−rB+1 i<br />
c 2 | 2 +ρ−γ 2 = 0<br />
i +λs2 i<br />
utilizând, e.g. metoda Newton.<br />
2. y ∗ i = b i<br />
c i<br />
3. y ∗ i = c ib i +λ ∗ s i b i<br />
c 2 i +λ∗ s 2 i<br />
4. y ∗ i = d i<br />
Comentarii. Sintaxa de apel a acestui algoritm este<br />
s i<br />
pentru i = 1 : n−r B<br />
pentru i = n−r B +1 : r A<br />
pentru i = r A +1 : n<br />
x = CMMP RPI(A,b,B,d,γ,tol).<br />
Cititorul poate completa algoritmul cu calculul reziduului optimal r = r ∗ şi, eventual,<br />
a normei euclidiane a acestuia.<br />
Complexitatea algoritmului este determinată deci<strong>si</strong>v de calculul DVSG şi de<br />
rezolvarea iterativă a ecuaţiei seculare.<br />
✸<br />
Observaţia 5.12 Pentru rezolvarea problemei CMMP cu restricţii pătratice tip<br />
egalitate se procedează ca în partea a doua a deducerii algoritmului de mai sus.<br />
Întrucâtalgoritmulcorespunzătorseobţinepracticprineliminareaunorinstrucţiuni<br />
din algoritmul 5.10, detaliile sunt lăsate în sarcina cititorului. ✸<br />
3. Încheiem acest paragraf, particularizând algoritmul 5.10 pentru rezolvarea<br />
unei probleme întâlnite deseori în aplicaţii, şi anume problema CMMP cu restricţii<br />
pătratice definite de o bilă. Concret, formularea acestei probleme se obţine con<strong>si</strong>derând<br />
în (5.162) B = I n şi d = 0, i.e. restricţia devine<br />
X = {x|x ∈ IC n , ‖x‖ ≤ γ}. (5.194)<br />
Înacestcaz, matriceaB fiinddiagonalădelaînceput,numaiestenecesarăutilizarea<br />
DVSG ci este suficientă DVS a matricei A. Fie, deci, A = UΣV H DVS a matricei<br />
A. Notând y = V H x şi ˜b = U H b, problema revine la a calcula y ∗ ∈ IC n astfel încât<br />
să avem<br />
‖r ∗ ‖ 2 = ‖Σy ∗ −˜b‖ 2 = min<br />
y∈calY ‖Σy−˜b‖ 2 , Y = {y|y ∈ IC n , ‖y‖ ≤ γ}. (5.195)<br />
Având în vedere faptul că<br />
φ(y) def<br />
= ‖Σy −˜b‖ 2 =<br />
minimul absolut al funcţiei φ este<br />
ρ =<br />
r A<br />
∑<br />
i=1<br />
|σ i y i −˜b i | 2 +<br />
m∑<br />
i=r A+1<br />
m∑<br />
i=r A+1<br />
|˜b i | 2 , (5.196)<br />
|˜b i | 2 (5.197)
438 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
şi se atinge pentru<br />
⎧<br />
⎨ ˜bi<br />
, i = 1 : r<br />
ŷ i =<br />
A<br />
σ<br />
⎩ i<br />
0, i = r A +1 : n,<br />
(5.198)<br />
componentele nule fiind alese în vederea satisfacerii restricţiei. Prin urmare, dacă<br />
pentru y = ŷ restricţia este satisfăcută, i.e.<br />
‖y‖ 2 =<br />
m∑<br />
i=r A+1<br />
|˜b i | 2<br />
σ 2 i<br />
≤ γ 2 , (5.199)<br />
atunci soluţia y ∗ = ŷ menţionată este optimală şi soluţia problemei iniţiale este<br />
x ∗ = Vy ∗ . Dacă<br />
m∑ |˜b i | 2<br />
σi<br />
2 > γ 2 , (5.200)<br />
i=r A+1<br />
atunci, procedând ca în cazul general, soluţia optimală a problemei CMMP (5.195)<br />
este definită de ⎧<br />
⎨ σ i˜bi<br />
yi ∗ =<br />
⎩<br />
σi 2 +λ∗, i = 1 : r A<br />
(5.201)<br />
0, i = r A +1 : n,<br />
unde λ ∗ este soluţia pozitivă a ecuaţiei seculare<br />
r A<br />
∑<br />
i=1<br />
( ) 2<br />
σ i |˜b i |<br />
σi 2 +λ −γ 2 = 0. (5.202)<br />
Soluţia problemei CMMP iniţiale este, evident, x ∗ = Vy ∗ .<br />
Rezumăm cele arătate mai sus într-un algoritm.<br />
Algoritmul 5.11 (CMMP RPB – Soluţia problemei CMMP cu<br />
restricţii pătratice tip bilă) (Se con<strong>si</strong>deră date matricea A ∈ IC m×n , cu<br />
m > n, şi vectorul b ∈ IC m , care definesc problema CMMP, precum şi<br />
scalarul γ > 0 care defineşte restricţia (5.194). De asemenea, pentru<br />
evaluarea rangului, este utilizată toleranţa tol. Algoritmul calculează<br />
soluţia x = x ∗ a problemei CMMP cu restricţii (5.155), (5.194).)<br />
1. [U,Σ,V ] = DVS(A, ′ da ′ , ′ da ′ )<br />
2. r = Rang DVS(Σ,tol)<br />
3. b ← U H b<br />
4. ρ = ∑ r |b i | 2<br />
i=1<br />
σi<br />
2<br />
5. Dacă ρ ≥ γ 2 atunci<br />
1. Se calculează vectorul y ∗ ∈ IC n definit în (5.198).<br />
altfel<br />
1. Se calculează soluţia λ ∗ a ecuaţiei seculare (5.202).
5.6. APLICAŢIILE DVS 439<br />
2. Se calculează vectorul y ∗ ∈ IC n definit în (5.201).<br />
6. x ∗ = V(:,1 : r A )y ∗ (1 : r A ).<br />
Comentarii. Sintaxa de apel a algoritmului va fi<br />
x = CMMP RPI(A,b,B,d,γ,tol).<br />
Efortul principal de calcul constă în calculul DVS. Pentru rezolvarea ecuaţiei seculare<br />
se poate folo<strong>si</strong> orice metodă iterativă fiabilă.<br />
✸<br />
5.6.5 <strong>Calculul</strong> pseudoinversei<br />
Menţionăm de la început că sunt puţine <strong>si</strong>tuaţiile aplicative în care este necesar<br />
calculul explicit al pseudoinversei unei matrice date. În cazul general, calculul<br />
pseudoinversei matricei A ∈ IC m×n face apel la DVS A = UΣV H , utilizându-se<br />
relaţia<br />
X =<br />
r∑<br />
j=1<br />
v j u H j<br />
σ j<br />
, v j = V(:,j), u j = U(:,j), (5.203)<br />
stabilită în §5.1 şi unde r este rangul (numeric al) matricei A. Rezultă următorul<br />
algoritm.<br />
Algoritmul 5.12 (Pinv – <strong>Calculul</strong> pseudoinversei) (Dată matricea<br />
A ∈ IC m×n şi toleranţa tol > 0 pentru determinarea rangului numeric,<br />
algoritmul calculează pseudoinversa X ∈ IC n×m a matricei A.)<br />
1. [U,Σ,V] = DVS(A, ′ da ′ , ′ da ′ )<br />
2. r = Rang DVS(Σ,tol)<br />
3. X = 0<br />
4. Pentru j = 1 : r<br />
1. v j = v j<br />
σ j<br />
2. X ← X +v j u H j<br />
Comentarii. Sintaxa de apel a algoritmului este<br />
X = Pinv(A,tol),<br />
iar complexitatea sa este determinată, în principal, de complexitatea algoritmului<br />
DVS cu acumularea transformărilor.<br />
✸
440 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
5.7 Rutine LAPACK şi MATLAB<br />
LAPACK. <strong>Calculul</strong> DVS al unei matrice generale este efectuat de o <strong>si</strong>ngură rutină<br />
de tip driver, numită xGESVD. Aceasta calculează valorile <strong>si</strong>ngulare şi, opţional,<br />
vectorii <strong>si</strong>ngulari stânga şi/sau dreapta.<br />
Rutinele de calcul care implementează cele două faze ale algoritmului DVS sunt<br />
următoarele:<br />
• xGEBRD realizează reducerea unei matrice oarecare la formă bidiagonală prin<br />
transformări ortogonale de echivalenţă. xGBBRD efectuează aceeaşi operaţie<br />
pentru matrice bandă, utilizând rotaţii Givens (în loc de reflectori).<br />
• xBDSQR implementează faza iterativă a algoritmului DVS, calculând valorile<br />
<strong>si</strong>ngulareşi, opţional, vectorii<strong>si</strong>ngulari, aiuneimatricebidiagonale(de reţinut<br />
abrevierea BD pentru matricele bidiagonale).<br />
DVS este utilizată pentru rezolvareaproblemei generale a celor mai mici pătrate<br />
(calculul pseudosoluţiei normale a <strong>si</strong>stemului Ax = b) în rutina driver xGELSS.<br />
Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare generalizate (DVSG) a unei perechi de matrice<br />
este furnizată de rutina driver xGGSVD.<br />
MATLAB. Valorile şi vectorii <strong>si</strong>ngulari ai unei matrice generale A pot fi calculaţi<br />
cu<br />
[U, S, V] = svd(A)<br />
unde U şi V conţin (pe coloane) vectorii <strong>si</strong>ngulari stânga, respectiv dreapta iar S este<br />
o matrice diagonală conţinând valorile <strong>si</strong>ngulare. Apelul <strong>si</strong>mplu svd(A) returnează<br />
un vector conţinând valorile <strong>si</strong>ngulare.<br />
Alte funcţii care utilizează DVS sunt:<br />
• rank pentru calculul rangului.<br />
• pinv care calculează pseudoinversa.<br />
• norm pentru obţinerea normei spectrale ‖A‖ 2 = σ 1 .<br />
• cond pentru calculul numărului de condiţionare κ 2 (A) = σ 1 /σ n .<br />
Amintim în final că rezolvarea în sens CMMP a <strong>si</strong>stemului Ax = b (de rang<br />
nemaxim) prin operaţia A\b nu produce pseudosoluţia normală (vezi detalii în capitolul<br />
3).<br />
5.8 Probleme<br />
P 5.1 Care sunt valorile <strong>si</strong>ngulare ale matricelor<br />
[ ]<br />
1 −1 2<br />
A = , B =<br />
−1 0 1<br />
[<br />
−1 2 0<br />
3 1 1<br />
]
5.8. PROBLEME 441<br />
Dar ale matricei C = A+iB <br />
P 5.2 Scrieţi formulele explicite pentru calculul DVS a unei matricei A ∈ IR 2×2 . Aceeaşi<br />
problemă pentru o matrice complexă 2×2.<br />
P 5.3 Fie A ∈ IC m×n . a) Demonstraţi că matricele Ā, A T şi A H , unde Ā este conjugata<br />
matricei A, au aceleaşi valori <strong>si</strong>ngulare cu A. b) Dacă P ∈ IC m×m şi Q ∈ IC n×n sunt matrice<br />
unitare, atunci matricea B = PAQ are aceleaşi valori <strong>si</strong>ngulare cu matricea A. c) Arătaţi<br />
că matricea αA, unde α ∈ IC, are valorile <strong>si</strong>ngulare |α|σ i(A).<br />
[ ]<br />
0 A<br />
P 5.4 Fie A ∈ IC m×n H<br />
, cu m ≥ n, şi matricea B = ∈ IC (m+n)×(m+n) .<br />
A 0<br />
Exprimaţi vectorii <strong>proprii</strong> ai matricei B în funcţie de vectorii <strong>si</strong>ngulari ai matricei A.<br />
P 5.5 Se con<strong>si</strong>deră date matricele reale [ A,B ∈ IR m×n ] . Fie matricea complexă C =<br />
A −B<br />
= A + iB ∈ IC m×n şi matricea reală D = ∈ IR 2m×2n . Stabiliţi relaţiile de<br />
B A<br />
legătură dintre DVS ale matricelor C şi D.<br />
P 5.6 a) Fie A ∈ IC n×n o matrice normală, i.e. care satisface condiţia A H A = AA H (v.<br />
cap.4), (în particular hermitică, iar în cazul real, <strong>si</strong>metrică) şi λ(A) = {λ 1,λ 2,...,λ n}, cu<br />
|λ 1| ≥ |λ 2| ≥ ... ≥ |λ n|. Arătaţi căvalorile <strong>si</strong>ngulare ale matricei Asuntσ i = |λ i|, i = 1:n.<br />
[ ] 6 3 1<br />
b) Care sunt valorile <strong>proprii</strong> şi valorile <strong>si</strong>ngulare ale matricei A = 1 3 3 <br />
3 −1 3<br />
P 5.7 Care sunt valorile <strong>si</strong>ngulare ale unei matrice n×n unitare (ortogonale) <br />
P 5.8 Fie V ∈ IC m×k o matrice având coloanele ortogonale şi P = VV H proiectorul<br />
ortogonal pe ImV.<br />
a) Arătaţi că matricea Q = I −2P este unitară.<br />
b) Care sunt valorile <strong>si</strong>ngulare ale unui proiector ortogonal <br />
P 5.9 Arătaţi că dacă A ∈ IC m×n , atunci ‖A‖ 2 ≤ ‖A‖ F ≤ √ rangA‖A‖ 2.<br />
P 5.10 Demonstraţi că dacă Q ∈ IC m×n este o matrice cu coloanele ortogonale, i.e.<br />
Q H Q = I n, şi P este o matrice obţinută din Q prin eliminarea a cel mult n − 1 linii<br />
(oricare), atunci ‖P‖ 2 = 1.<br />
P 5.11 Arătaţi că dacă A ∈ IC m×n are rangul n, atunci ‖A(A H A) −1 A H ‖ 2 = 1.<br />
P 5.12 Demonstraţi că dacă σ 1 este cea mai mare valoare <strong>si</strong>ngulară a matricei A, atunci<br />
σ 1 =<br />
y T Ax<br />
max .<br />
y ∈ IR m \{0} ‖y‖ 2‖x‖ 2<br />
x ∈ IR n \{0}<br />
P 5.13 a) Fie vectorii u ∈ IC m , v ∈ IC n şi matricea A = uv H . Care este DVS a matricei<br />
A Care este rangul lui A b) Arătaţi că orice matrice A ∈ IC m×n de rang 1 poate fi<br />
scrisă sub forma A = uv H , unde u ∈ IC m , v ∈ IC n .<br />
P 5.14 Elaboraţi un algoritm pentru calculul DVS a matricei A = I n + uv T , unde<br />
u,v ∈ IR n sunt doi vectori necoliniari.
442 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
P 5.15 Elaboraţi un algoritm, <strong>si</strong>milar algoritmului JQ, care să calculeze reducerea unei<br />
matrice complexe A ∈ IC m×n laoformă superior bidiagonală reală prin transformări unitare<br />
bilaterale.<br />
P 5.16 Fie o matrice superior bidiagonală J ∈ IC n×n definită prin vectorul f ∈ IC n al<br />
elementelor diagonale şi vectorul g ∈ IC n−1 al elementelor sale supradiagonale. Arătaţi<br />
că dacă J are două valori <strong>si</strong>ngulare egale σ i = σ i+1, atunci f şi/sau g au cel puţin o<br />
componentă nulă.<br />
P 5.17 Adaptaţi algoritmul JQ pentru reducerea eficientă a unei matrice A ∈ IC n×n superior<br />
triunghiulare la forma superior bidiagonală prin transformări unitare de echivalenţă.<br />
[ ]<br />
A1 A 2<br />
P 5.18 Fie A = , unde A ∈ IC m×n , A<br />
0 A 1 ∈ IC p×p . Elaboraţi un algoritm pentru<br />
3<br />
reducerea eficientă a matricei A la forma bidiagonală prin transformări unitare bilaterale.<br />
P 5.19 Adaptaţi algoritmul JQ pentru reducerea eficientă a unei matrice A ∈ IC n×n<br />
tridiagonale la forma superior bidiagonală prin transformări unitare de echivalenţă.<br />
P 5.20 Fie A ∈ IC m×n , cu m < n. Elaboraţi un algoritm pentru calculul matricelor<br />
unitare U ∈ IC m×m , V ∈ IC n×n astfel încât U H AV = [ B 0 ] cu B ∈ IC m×m superior<br />
bidiagonală.<br />
P 5.21 Demonstraţi că orice matrice m×n este limita unui şir de matrice m×n de rang<br />
maximal. Interpretaţi importanţa acestui rezultat pentru practica numerică.<br />
P 5.22 Elaboraţi un algoritm de calcul al descompunerii <strong>valorilor</strong> <strong>si</strong>ngulare generalizate<br />
(DVSG) a unei perechi de matrice (A,B) ∈ IC m×n ×IC p×n date.<br />
P 5.23 Scrieţi un algoritm de calcul <strong>si</strong>multan al rangurilor numerice a două matrice<br />
A ∈ IC m×n şi B ∈ IC p×n date, utilizând descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare generalizate a<br />
perechii (A,B).<br />
P 5.24 Elaboraţi un algoritm de calcul al descompunerii polare a unei matrice A ∈ IC m×n<br />
date.<br />
P 5.25 Elaboraţi un algoritm de calcul al descompunerii CS a unei matrice unitare<br />
Q ∈ IC m×m date.<br />
P 5.26 Se dau matricele A ∈ IC m×m , B ∈ IC n×n şi C,D ∈ IC m×n . a) Arătaţi că <strong>si</strong>stemul<br />
de ecuaţii matriceale {<br />
AX −YB = C<br />
XB H −A H Y = D<br />
are soluţie unică (X,Y) ∈ IC m×n ×IC m×n dacă şi numai dacă σ(A)∩σ(B) = ∅. b) Scrieţi<br />
un algoritm pentru rezolvarea <strong>si</strong>stemului de mai sus.<br />
P 5.27 Fie date matricea A ∈ IR m×n şi vectorul b ∈ IR m . a) Arătaţi că pentru orice<br />
α > 0 problema de minimizare<br />
{<br />
min ‖b−Ax‖ 2 +α‖x‖ 2}<br />
x ∈ IR n
5.8. PROBLEME 443<br />
are o soluţie unică x ∗ α. b) Elaboraţi un algoritm de calcul al soluţiei x ∗ α. c) Ce se întâmplă<br />
când α ց 0 d) Arătaţi că <strong>si</strong>stemul<br />
este satisfăcut de y not<br />
= x ∗ α −x ∗ β.<br />
(A T A+αI n)(A T A+βI n)y = (β −α)A T b<br />
P 5.28 Arătaţi că o matrice pătrată are (cel puţin) o valoare <strong>si</strong>ngulară nulă dacă şi numai<br />
dacă are (cel puţin) o valoare proprie nulă.<br />
P 5.29 Fie matricele pătrate A,B ∈ IC n×n . Se ştie (vezi exerciţiul 4.5 din cap.4) că<br />
matricele AB şi BA au aceleaşi spectre de valori <strong>proprii</strong>. Este adevărat acest lucru şi<br />
pentru mulţimile lor de valori <strong>si</strong>ngulare<br />
P 5.30 Fie matricele A,B ∈ IC m×n , p = min(m,n) şi σ(A), σ(B) mulţimile (nu uitaţi,<br />
ordonate descrescător!) ale <strong>valorilor</strong> <strong>si</strong>ngulare ale matricei A, respectiv B.<br />
a) Demonstraţi şi interpretaţi inegalitatea<br />
σ 1(A+B) ≤ σ 1(A)+σ 1(B).<br />
Este adevărată inegalitatea σ i(A+B) ≤ σ i(A)+σ i(B) şi pentru i ∈ 2 : p Dacă răspunsul<br />
dv. este afirmativ, atunci prezentaţi o demonstraţie, iar dacă este negativ prezentaţi un<br />
contraexemplu.<br />
b) Demonstraţi inegalitatea<br />
unde i,j ∈ 1 : p, cu i+j ≤ p+1.<br />
σ i+j−1(A+B) ≤ σ i(A)+σ j(B),<br />
P 5.31 Fie matricele A,B ∈ IC m×n , p = min(m,n) şi σ(A), σ(B) mulţimile ale <strong>valorilor</strong><br />
<strong>si</strong>ngulare ale matricei A, respectiv B.<br />
a) Demonstraţi şi interpretaţi inegalitatea<br />
σ 1(AB H ) ≤ σ 1(A)σ 1(B).<br />
Este adevărată inegalitatea σ i(AB H ) ≤ σ i(A)σ i(B) şi pentru i ∈ 2 : p Dacă răspunsul<br />
dv. este afirmativ, atunci prezentaţi o demonstraţie, iar dacă este negativ prezentaţi un<br />
contraexemplu.<br />
b) Demonstraţi inegalitatea<br />
unde i,j ∈ 1 : p, cu i+j ≤ p+1.<br />
σ i+j−1(AB H ) ≤ σ i(A)σ j(B),<br />
P 5.32 Fie matricea A ∈ IC n×n şi matricea B = AP ∈ IC n×n unde P este o matrice<br />
de permutare. Presupunem că P a fost aleasă astfel încât matricea B să aibă coloanele<br />
ordonate în sensul descrescător al normelor lor euclidiene, i.e. dacă κ j = ‖B(:,j)‖ 2, atunci<br />
κ 1 ≥ κ 2 ≥ ... ≥ κ n. Demonstraţi că<br />
n∑ n∑<br />
σj 2 ≤ κ 2 j, k = 1 : n,<br />
j=k<br />
j=k<br />
unde σ i sunt valorile <strong>si</strong>ngulare ale matricei A. Formulaţi un rezultat analog pentru linii.<br />
Trageţi, printre alte concluzii, pe aceea că o matrice care are o coloană (sau o linie) de<br />
normă euclidiană ”mică” are, în mod necesar, şi o valoare <strong>si</strong>ngulară ”mică”.
444 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />
P 5.33 Se con<strong>si</strong>deră matricea<br />
A(ǫ) =<br />
[<br />
0 In−1<br />
ǫ 0<br />
]<br />
∈ IR n×n , ǫ ≥ 0.<br />
a) Calculaţi valorile <strong>proprii</strong> şi valorile <strong>si</strong>ngulare ale matricei A.<br />
b) Pentru n=10, care sunt variaţiile absolute ale modulelor <strong>valorilor</strong> <strong>proprii</strong> şi ale<br />
<strong>valorilor</strong> <strong>si</strong>ngulare atunci când ǫ variază de la 0 la 10 −10 <br />
c) Trageţi concluzia că în timp ce valorile <strong>proprii</strong> ale unei matrice pot fi (foarte) rău<br />
condiţionate, valorile <strong>si</strong>ngulare sunt întotdeauna perfect condiţionate. Reţineţi că această<br />
concluzie este de o importanţă capitală în rezolvarea numerică pe calculator a problemelor<br />
de algebră liniară în sensul că metodele care fac apel la <strong>valorilor</strong> <strong>si</strong>ngulare sunt cele mai<br />
bune.<br />
P 5.34 Arătaţi că o matrice A ∈ IC n×n este normală, i.e. A H A = AA H , dacă şi numai<br />
dacă în descompunerea polară A = PW ”modulul” P = UΣU H ∈ IC n×n (hermitic şi<br />
pozitiv semidefinit) şi ”factorul de fază” W = UV H (unitar) comută. (În relaţiile de mai<br />
sus s-a utilizat DVS A = UΣV H a matricei A.)
Capitolul 6<br />
<strong>Calculul</strong> <strong>valorilor</strong> şi<br />
<strong>vectorilor</strong> <strong>proprii</strong> generalizaţi<br />
Valorile<strong>proprii</strong>generalizateşivectorii<strong>proprii</strong>generalizaţiasociaţicaracterizeazădin<br />
punct de vedere structural perechile de matrice pătrate şi reprezintă o generalizare<br />
naturală a conceptelor de valoare proprie şi vector propriu.<br />
Metoda de calcul a <strong>valorilor</strong> <strong>proprii</strong> generalizate care s-a impus reprezintă o<br />
adaptare performantă a algoritmului QR la noul cadru structural.<br />
6.1 Formularea problemei<br />
6.1.1 Valori şi vectori <strong>proprii</strong> generalizaţi<br />
Fie matricele pătrate A,B ∈ IC n×n . Mulţimea de matrice<br />
F = {F ∈ IC n×n | F = A−λB, λ ∈ IC} (6.1)<br />
se numeşte fascicol matriceal asociat perechii (A,B) 1 .<br />
Definiţia 6.1 Fie F fascicolul matriceal definit de perechea (A,B) ∈ IC n×n ×IC n×n .<br />
Un număr λ ∈ IC se numeşte valoarecaracteristicăa fascicolului F sau, încă, valoare<br />
proprie generalizată a perechii (A,B), dacă există un vector nenul x ∈ IC n astfel<br />
încât<br />
Ax = λBx. (6.2)<br />
Orice vector x ≠ 0 care satisface (6.2) se numeşte vector principal al fascicolului<br />
F sau, încă, vector propriu generalizat al perechii (A,B) asociat valorii <strong>proprii</strong><br />
generalizate λ.<br />
Sistemul liniar omogen (6.2), scris sub forma<br />
(A−λB)x = 0, (6.3)<br />
1 Fascicolele matriceale se definesc şi pentru perechile de matrice nepătrate.
446 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
admite soluţii nenule numai dacă matricea <strong>si</strong>stemului A−λB este <strong>si</strong>ngulară. Prin<br />
urmare, valorile <strong>proprii</strong> generalizate ale perechii (A,B) sunt zerourile polinomului<br />
p(λ) = det(A−λB), (6.4)<br />
numit polinomul caracteristic al fascicolului F 2 . Dacă matricele A şi B sunt reale,<br />
atunci polinomul caracteristic are coeficienţii reali şi valorile <strong>proprii</strong> generalizate<br />
complexe apar în perechi complex-conjugate. Multiplicitatea n i a rădăcinii λ i a<br />
polinomului caracteristic se numeşte multiplicitate algebrică a valorii <strong>proprii</strong> generalizate<br />
λ i .<br />
Evident, valorile şi vectorii <strong>proprii</strong> ai matricei A coincid cu corespondenţii lor<br />
generalizaţi ai perechii (A,I n ).<br />
Vom nota cu λ(A,B) spectrul generalizat, i.e. mulţimea <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
ale perechii (A,B).<br />
Prezentăm principalele proprietăţi ale <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi<br />
sub forma următoarei propoziţii.<br />
Propoziţia 6.1 Fie perechea (A,B) ∈ IC n×n ×IC n×n .<br />
1 ◦ Dacă matricea B este ne<strong>si</strong>ngulară, atunci gradul polinomului caracteristic<br />
este n, deci numărul <strong>valorilor</strong> <strong>proprii</strong> generalizate ale perechii (A,B), incluzând<br />
multiplicităţile, este egal cu ordinul n al matricelor. Mai mult,<br />
λ(A,B) = λ(B −1 A) = λ(AB −1 ). (6.5)<br />
2 ◦ Dacă λ ∈ λ(A,B) şi λ ≠ 0, atunci 1 λ ∈ λ(B,A).<br />
Demonstraţie. 1 ◦ În acest caz polinomul caracteristic (6.4) este p(λ) = det(A−<br />
−λB) = det(B)det(B −1 A − λI n ) = det(AB −1 − λI n )det(B) cu det(B) ≠ 0, i.e.<br />
are aceleaşi rădăcini cu polinoamele caracteristice ale matricelor B −1 A şi AB −1 .<br />
Rezultăcăp(λ)esteunpolinomdegradulncucoeficienţicomplecşişi, înconsecinţă,<br />
are exact n valori <strong>proprii</strong> complexe, nu neapărat distincte. 2 ◦ Dacă λ ≠ 0, atunci<br />
(6.3) implică (B − 1 λA)x = 0. ✸<br />
Observaţia 6.1 Dacă matricea B este <strong>si</strong>ngulară, atunci numărul <strong>valorilor</strong> <strong>proprii</strong><br />
generalizatealperechii (A,B) poate luaoricevaloaredin mulţimea(0 : n−1)∪{∞}.<br />
Într-adevăr, să con<strong>si</strong>derăm <strong>si</strong>tuaţiile:<br />
a) A ne<strong>si</strong>ngulară şi B = 0, caz în care perechea (A,B) nu are nici o valoare<br />
proprie generalizată;<br />
b) A = diag(A 1 ,A 2 ), B = diag(B 1 ,0) cu A 1 ,B 1 ∈ IC k×k , k = 1 : n −1, şi A 2 ,<br />
B 1 ne<strong>si</strong>ngulare; în acest caz perechea (A,B) are exact k valori <strong>proprii</strong> generalizate;<br />
c) polinomul caracteristic al fascicolului definit de perechea (A,B) este identic<br />
nul (e.g. A <strong>si</strong>ngulară şi B = 0), <strong>si</strong>tuaţie în care orice număr complex este valoare<br />
proprie generalizată a perechii (A,B).<br />
Aceste <strong>si</strong>tuaţii nu sunt exclu<strong>si</strong>ve, vezi exemplul de mai jos. ✸<br />
2 Ecuaţia p(λ) = 0 se numeşte ecuaţia caracteristică a fascicolului F.
6.1. FORMULAREA PROBLEMEI 447<br />
( [ ] [ ])<br />
1 0 0 0<br />
Exemplul 6.1 Perechea de matrice A = ,B = nu are nici<br />
(<br />
0<br />
[<br />
3<br />
]<br />
1<br />
[<br />
0<br />
])<br />
1 2 1 0<br />
o valoare proprie generalizată, perechea A = ,B = are una<br />
0 3 0 0<br />
<strong>si</strong>ngură ( [ şi orice ] număr [ λ ∈ IC ]) este valoare proprie generalizată pentru perechea<br />
1 2 1 0<br />
A = ,B = . ✸<br />
0 0 0 0<br />
Pentru a elimina cazul nedeterminat, când toate numerele complexe sunt valori<br />
<strong>proprii</strong> generalizate, caz care nu poate fi obiectul unei probleme de calcul, vom<br />
presupune în continuarecăpolinomul caracteristical fascicolului definit de perechea<br />
(A,B) nu este identic nul. În acest cazfascicolul se numeşte regulat 3 . De asemenea,<br />
vom conveni că un fascicol regulat de ordinul n având gradul polinomului caracteristic<br />
k < n (i.e. având k valori <strong>proprii</strong> generalizate finite, nu neapărat distincte)<br />
are n−k valori <strong>proprii</strong> infinite 4 . Cu această convenţie, spectrul de valori <strong>proprii</strong><br />
λ(A,B) al unui fascicol regulat de ordinul n va avea întotdeauna exact n elemente.<br />
Dacă matricea B (sau A) este ne<strong>si</strong>ngulară fascicolul definit de perechea (A,B)<br />
poate fi numit ne<strong>si</strong>ngular. Un fascicol se numeşte hermitic (în cazul real, <strong>si</strong>metric)<br />
pozitiv definit dacă matricele A şi B sunt hermitice (<strong>si</strong>metrice), iar matricea B este<br />
pozitiv definită.<br />
Vectorii <strong>proprii</strong> generalizaţi, introduşi prin definiţia 6.1, satisfac <strong>si</strong>stemul liniar<br />
omogen <strong>si</strong>ngular (6.3). Prin urmare, fiecărei valori <strong>proprii</strong> generalizate finite îi<br />
corespunde cel puţin un vector propriu. Dacă perechea (A,B) este reală, vectorii<br />
<strong>proprii</strong> generalizaţi asociaţi <strong>valorilor</strong> <strong>proprii</strong> generalizate complex conjugate pot fi<br />
aleşi complex conjugaţi. Mulţimea <strong>vectorilor</strong><strong>proprii</strong>generalizaţi asociaţi unei valori<br />
<strong>proprii</strong> generalizate finite λ i formează subspaţiul liniar U i = Ker(A−λ i B) ⊂ IC n a<br />
cărui dimen<strong>si</strong>une ν i constituie multiplicitatea geometrică a lui λ i .<br />
6.1.2 Subspaţii de deflaţie<br />
Corespondentul generalizat al conceptului de subspaţiu invariant este subspaţiul de<br />
deflaţie, definit în felul următor.<br />
Definiţia 6.2 Fie o pereche (A,B) ∈ IC n×n ×IC n×n , un subspaţiu liniar k-dimen<strong>si</strong>onal<br />
S din IC n şi subspaţiul liniar<br />
V def<br />
= AS +BS = {z ∈ IC n |z = Ax+By, cu x,y ∈ S}.<br />
Subspaţiul S se numeşte subspaţiu de deflaţie al perechii (A,B) dacă<br />
dimV ≤ dimS. (6.6)<br />
Pentru proprietăţile subspaţiilor de deflaţie ale fascicolelor de matrice recomandăm<br />
consultarea referinţei [VI].<br />
3 În caz contrar (i.e. polinomul caracteristic este identic nul sau matricele nu sunt pătrate)<br />
fascicolul se numeşte <strong>si</strong>ngular.<br />
4 Justificarea acestei convenţii va deveni limpede mai târziu.
448 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Problema de calcul care face obiectul acestui capitol este determinarea <strong>valorilor</strong><br />
<strong>proprii</strong> generalizate ale unui fascicol regulat dat. Problema calculului <strong>vectorilor</strong><br />
<strong>proprii</strong> generalizaţi va fi tratată în sub<strong>si</strong>diar ţinând seama şi de faptul că, în multe<br />
aplicaţii, calculul explicit al acestora poate fi (şi este bine să fie) evitat. Acest<br />
demers calculatoriu se bazează în mare măsură pe următorul rezultat.<br />
Propoziţia 6.2 Fie (A,B) ∈ IC n×n × IC n×n . Dacă există un subspaţiu de deflaţie<br />
k-dimen<strong>si</strong>onal S ⊂ IC n al perechii (A,B), atunci există matricele unitare Q,Z ∈<br />
∈ IC n×n astfel încât<br />
[ ] [ ]<br />
Q H S11 S<br />
AZ = 12<br />
, Q<br />
0 S H T11 T<br />
BZ = 12<br />
, (6.7)<br />
22 0 T 22<br />
cu S 11 ,T 11 ∈ IC k×k .<br />
Perechea (S 11 ,T 11 ) se numeşte restricţia perechii (A,B) la subspaţiul S.<br />
def<br />
Demonstraţie. Fie Z 1 = [z 1 z 2 ··· z k ] o matrice n×k ale cărei coloane formează<br />
o bază ortogonală a subspaţiului de deflaţie S, Z 2 ∈ IC n×(n−k) o completare unitară<br />
a lui Z 1 şi Z = [Z 1 Z 2 ]. Fie acum subspaţiul V = AS +BS, a cărui dimen<strong>si</strong>une<br />
r satisface, prin definiţie, condiţia r ≤ k, Q 1 o matrice n × r ale cărei coloane<br />
formează o bază ortogonală a acestui subspaţiu, Q 2 o completare unitară a lui Q 1<br />
şi Q = [Q 1 Q 2 ]. Întrucât AS ⊂ V şi BS ⊂ V avem AS ⊥ ImQ 2 şi BS ⊥ ImQ 2 , i.e.<br />
Q H 2 AZ 1 = 0 şi Q H 2 BZ 1 = 0 care, împreună cu inegalitatea r ≤ k, conduc imediat<br />
la (6.7), q.e.d.<br />
✸<br />
Observaţia 6.2 <strong>Calculul</strong> matricelor unitare de transformare Q şi Z este condiţionat<br />
esenţial de cunoaşterea unei baze a subspaţiului de deflaţie S. În cazul în<br />
care se dispune de o bază a lui S, construcţia unei baze ortogonale Z 1 şi a unei<br />
completări ortogonale Z 2 (şi, <strong>si</strong>milar, a matricei Q) se face după recomandările din<br />
capitolul 3 (vezi şi obs. 4.3).<br />
✸<br />
6.1.3 Fascicole echivalente<br />
Ca şi în cazul <strong>valorilor</strong> <strong>proprii</strong> ordinare, suntem interesaţi să evidenţiem transformările<br />
matriceale care conservă spectrul unui fascicol dat.<br />
Definiţia 6.3 Două fascicole definite de perechile de matrice (A 1 ,B 1 ),(A 2 ,B 2 ) ∈<br />
∈ IC n×n × IC n×n se numesc echivalente 5 dacă există matricele ne<strong>si</strong>ngulare P,R ∈<br />
∈ IC n×n astfel încât<br />
A 1 = PA 2 R, B 1 = PB 2 R. (6.8)<br />
Dacă matricele de transformare P şi R sunt unitare, atunci perechile (A 1 ,B 1 ) şi<br />
(A 2 ,B 2 ) se numesc unitarechivalente. În cazul real, dacă matricele de transformare<br />
P, R sunt ortogonale, cele două perechi se numesc ortogonal echivalente.<br />
5 Un fascicol A − λB poate fi privit ca o matrice polinomială. Din acest punct de vedere<br />
echivalenţa definită aici coincide cu echivalenţa strictă a matricelor polinomiale (vezi [I]).
6.1. FORMULAREA PROBLEMEI 449<br />
Proprietatea principală a relaţiei de echivalenţă a două fascicole este dată de<br />
propoziţia ce urmează.<br />
Propoziţia 6.3 Dacă perechile (A 1 ,B 1 ) şi (A 2 ,B 2 ) sunt echivalente în sensul definiţiei<br />
6.2, i.e. satisfac (6.8), atunci<br />
λ(A 1 ,B 1 ) = λ(A 2 ,B 2 ). (6.9)<br />
În plus, dacă x este un vector propriu generalizat al perechii (A 1 ,B 1 ) asociat valorii<br />
<strong>proprii</strong> generalizate λ, atunci<br />
y = Rx (6.10)<br />
este un vector propriu generalizat al perechii (A 2 ,B 2 ) asociat aceleiaşi valori <strong>proprii</strong>.<br />
Demonstraţie. Dacă A 1 = PA 2 R şi B 1 = PB 2 R, cu P şi R ne<strong>si</strong>ngulare, atunci<br />
(A 1 −λB 1 )x = 0 cu x ≠ 0 implică, evident, (A 2 −λB 2 )Rx = (A 2 −λB 2 )y = 0 şi<br />
y ≠ 0, q.e.d.<br />
✸<br />
6.1.4 Fascicole hermitice (<strong>si</strong>metrice).<br />
Fascicole hermitice congruente<br />
Fie perechea de matrice pătrate (A,B) ∈ IC n×n × IC n×n care defineşte fascicolul<br />
matriceal<br />
F = {F = A−λB | λ ∈ IR}. (6.11)<br />
Vom spune că fascicolul F este hermitic (în cazul matricelor A şi B reale, <strong>si</strong>metric)<br />
şi, echivalent, că perechea (A,B) este hermitică (<strong>si</strong>metrică), dacă ambele matrice<br />
A şi B sunt hermitice (<strong>si</strong>metrice) 6 . Este uşor de văzut că un fascicol hermitic are<br />
spectrul generalizat o mulţime <strong>si</strong>metrică (dar nu, în mod necesar, real), iar în cazul<br />
real, un fascicol <strong>si</strong>metric are spectrul generalizat real.<br />
Dacă F este un fascicol hermitic, vom spune că F este de semn (semi)definit<br />
dacă una dintre matricele A sau B este de semn (semi)definit (i.e. pozitiv sau<br />
negativ (semi)definită). Pentru precizare, în continuare, vom spune că un fascicol<br />
hermitic este pozitiv (negativ) (semi)definit dacă matricea B este pozitiv (negativ)<br />
(semi)definită.<br />
Un fapt important pe care dorim să-l remarcăm este acela că, în general, transformările<br />
de echivalenţă, definite în pararagraful anterior, nu conservă nici proprietatea<br />
de a fi hermitic (în cazul real, <strong>si</strong>metria) nici definirea semnului unui fascicol.<br />
De aceea, tehnicile de calcul ale <strong>valorilor</strong> <strong>proprii</strong> generalizate şi ale <strong>vectorilor</strong><strong>proprii</strong><br />
generalizaţi nu beneficiază de facilităţile şi de dezvoltărileelegante din cazul ordinar<br />
(v. cap. 4). În acest context, vom fi interesaţi să definim clasa transformărilor de<br />
echivalenţă care conservă proprietăţile menţionate.<br />
Vom spune că două fascicole F 1 şi F 2 definite de perechile (A 1 ,B 1 ) şi (A 2 ,B 2 )<br />
sunt congruente dacă există o matrice ne<strong>si</strong>ngulară T astfel încât<br />
(A 2 ,B 2 ) = (T H A 1 T,T H B 1 T), (6.12)<br />
6 Datorită faptului că în (6.11) λ este real, toate matricele dintr-un fascicol hermitic sunt<br />
hermitice.
450 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
(în cazul real, T se con<strong>si</strong>deră reală). Este uşor de constatat că două fascicole congruente<br />
sunt <strong>si</strong>multan hermitice (în cazul real, <strong>si</strong>metrice) sau nu, iar două fascicole<br />
hermitice (<strong>si</strong>metrice) congruente sunt <strong>si</strong>multan pozitiv definite sau nu. În secţiunea<br />
următoare vom vedea în ce condiţii un fascicol hermitic poate fi adus printr-o transformare<br />
de congruenţă la forma diagonală.<br />
∗<br />
∗<br />
∗<br />
În cazul general, structura ”fină” a unei perechi de matrice, care poate fi dezvăluită<br />
prin transformări de echivalenţă corespunzătoare, este dată de aşa numita<br />
formă canonică Kronecker [I]. La fel ca şi în cazul formei canonice Jordan, rolul<br />
formei canonice Kronecker în calculul numeric este mult diminuat de sen<strong>si</strong>bilitatea<br />
ei la perturbaţii în elementele matricelor iniţiale, perturbaţii inerente în aritmetica<br />
în virgulă mobilă. Acesta este motivul pentru care în toate dezvoltările numerice<br />
se preferă o structură mult mai robustă şi anume forma Schur (complexă sau reală)<br />
generalizată a perechii (A,B) prezentată în continuare.<br />
6.2 Forma Schur generalizată<br />
Transformările de echivalenţă unitare, respectiv ortogonale în cazul real, prezintă<br />
proprietăţi numerice remarcabile şi, de aceea, sunt utilizate în exclu<strong>si</strong>vitate pentru<br />
calculul performant al <strong>valorilor</strong> <strong>proprii</strong> generalizate. Pe de altă parte, structurile<br />
canonice, cum este forma Kronecker, nu se pot obţine, în general, prin astfel de<br />
transformări. De aceea, ca şi în cazul determinării <strong>valorilor</strong> <strong>proprii</strong> ordinare, se<br />
utilizează, practic în exclu<strong>si</strong>vitate, structurile triunghiulare sau cva<strong>si</strong>-triunghiulare.<br />
Rezultatul principal al acestui paragraf arată că orice pereche de matrice (A,B)<br />
este unitar echivalentă cu o pereche de matrice triunghiulare numită forma Schur<br />
generalizată. Vom trata distinct cazul perechilor de matrice reale.<br />
6.2.1 Forma Schur generalizată (complexă)<br />
<strong>Calculul</strong> <strong>valorilor</strong> <strong>proprii</strong> generalizate este intim legat de calculul <strong>vectorilor</strong> <strong>proprii</strong><br />
generalizaţi asociaţi. Dacă λ ∈ λ(A,B) este cunoscută, atunci vectorul propriu<br />
asociat este o soluţie nenulă a unui <strong>si</strong>stem liniar omogen. Dacă se cunoaşte un<br />
vector propriu generalizat x al perechii (A,B), cu B ne<strong>si</strong>ngulară, atunci valoarea<br />
proprie generalizată asociată poate fi calculată cu relaţia 7<br />
λ = xH B −1 Ax<br />
x H . (6.13)<br />
x<br />
Dacă gradul polinomului caracteristic al fascicolului este superior lui patru, calculul<br />
<strong>valorilor</strong> <strong>proprii</strong> generalizate, în absenţa cunoaşterii <strong>vectorilor</strong> <strong>proprii</strong> asociaţi, este,<br />
7 O altă relaţie ce poate fi utilizată pentru calculul unei valori <strong>proprii</strong> generalizate finite a unui<br />
fascicol regulat este λ = xH B H Ax<br />
x H B H , care exprimă faptul că λ este soluţia în sensul celor mai mici<br />
Bx<br />
patrate a <strong>si</strong>stemului λBx = Ax (vezi şi exerciţiul 6.7).
6.2. FORMA SCHUR GENERALIZATĂ 451<br />
în mod necesar, un proces (iterativ) infinit, aceeaşi <strong>si</strong>tuaţie apărând şi la calculul<br />
<strong>vectorilor</strong> <strong>proprii</strong> generalizaţi fără a se cunoaşte valorile <strong>proprii</strong> asociate. Există<br />
şi aici metode corespondente pentru metodele puterii şi puterii inverse de calcul<br />
iterativ al unui vector propriu generalizat pe care le propunem spre elaborare cititorului<br />
(v. exerciţiul 6.6). Pentru a<strong>si</strong>gurarea eficienţei acestor procese iterative este<br />
esenţială exploatarea rezultatelor structurale parţiale care se face prin reducerea<br />
corespunzătoare a dimen<strong>si</strong>unii problemei. Baza teoretică a acestor reduceri este<br />
dată de propoziţia 6.2.<br />
Pentru k = 1 propoziţia 6.2 se particularizează într-un corespondent ”generalizat”allemei<br />
dedeflaţieunitară4.2. Aplicareaconsecventăaacesteiane conducela<br />
următorul rezultat important a cărui demonstraţie, fiind <strong>si</strong>milară cu demonstraţia<br />
teoremei 4.12, este lăsată în sarcina cititorului.<br />
Teorema 6.1 (Forma Schur generalizată) Oricare ar fi perechea (A,B) ∈ IC n×n ×<br />
×IC n×n există matricele unitare Q,Z ∈ IC n×n astfel încât<br />
Q H AZ = S, Q H BZ = T, (6.14)<br />
unde matricele S, T sunt superior triunghiulare. Perechile de elemente diagonale<br />
(s ii ,t ii ) cu t ii ≠ 0 ale matricelor S şi T determină valorile <strong>proprii</strong> generalizate<br />
(finite)<br />
λ i = s ii<br />
t ii<br />
(6.15)<br />
ale perechii (A,B). Cele n perechi de elemente diagonale pot fi dispuse în orice<br />
ordine predeterminată.<br />
Perechea (S,T) se numeşte forma Schur generalizată (FSG) a perechii (A,B),<br />
iar coloanele q i , respectiv z i , ale matricelor de transformare Q şi Z se numesc<br />
vectori Schur generalizaţi ai perechii (A,B) la stânga, respectiv la dreapta, asociaţi<br />
FSG (S,T).<br />
Dacă matricea B este ne<strong>si</strong>ngulară, atunci şi T este ne<strong>si</strong>ngulară, i.e. t ii ≠ 0<br />
pentru toţi i ∈ 1:n. Dacă B este <strong>si</strong>ngulară, perechilor (s ii ,t ii ) cu s ii ≠ 0 şi t ii = 0<br />
le corespund valorile <strong>proprii</strong> generalizate pe care am convenit să le con<strong>si</strong>derăm<br />
infinite. Justificarea acestei convenţii este, acum, evidentă dacă avem în vedere<br />
(6.15). Pentru fascicoleleregulate, con<strong>si</strong>derateaici, nu este po<strong>si</strong>bil să avem<strong>si</strong>multan<br />
s ii = 0 şi t ii = 0 pentru nici un i.<br />
În practică, pentru a se evita introducerea <strong>valorilor</strong> infinite, se recomandă definirea<br />
<strong>valorilor</strong> <strong>proprii</strong> generalizate prin intermediul perechilor (s ii ,t ii ). În multe<br />
aplicaţii acestea pot fi utilizate fără a efectua explicit împărţirea din (6.15).<br />
Fie, acum, S 11 = S(1:k,1:k), T 11 = T(1:k,1:k) submatricele lider principale<br />
de ordinul k ∈ 1 : n ale matricelor superior triunghiulare S şi T din (6.14) care<br />
definesc FSG a perechii (A,B). Dacă notăm Q 1 = Q(:,1:k) şi Z 1 = Z(:,1:k),<br />
atunci din (6.14) avem<br />
AZ 1 = Q 1 S 11 , BZ 1 = Q 1 T 11 .<br />
FiesubspaţiulS = ImZ 1 ⊂ IC n . ÎntrucâtdinrelaţiiledemaisusrezultăAS ⊂ ImQ 1,<br />
BS ⊂ ImQ 1 avem<br />
V = AS +BS ⊂ ImQ 1 .
452 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Deci, dimV ≤ k, adică S este un subspaţiu de deflaţie k-dimen<strong>si</strong>onal al perechii<br />
(A,B). Cu alte cuvinte, primele k coloane ale matricei de transformare Z, i.e.<br />
primii k vectori Schur la dreapta ai perechii (A,B), formează o bază ortogonală a<br />
subspaţiului de deflaţie k-dimen<strong>si</strong>onal asociat <strong>valorilor</strong> <strong>proprii</strong> generalizate definite<br />
de perechile (s ii ,t ii ), i = 1 : k. În acest mod, prin ordonarea corespunzătoare a<br />
elementelor diagonale ale matricelor S şi T, se pot construi baze ortogonale pentru<br />
subspaţiide deflaţieasociateunorgrupuriimpuse devalori<strong>proprii</strong>generalizate(vezi<br />
secţiunea 6.4).<br />
6.2.2 Forma Schur reală generalizată<br />
În cazul în care matricele A, B sunt reale se obţine un spor important de eficienţă<br />
dacă se utilizează în exclu<strong>si</strong>vitate o aritmetică reală. Corespondentul generalizat al<br />
formei Schur reale este introdus prin următoarea teoremă pe care o prezentăm fără<br />
demonstraţie.<br />
Teorema 6.2 (Forma Schur reală generalizată) Oricare ar fi perechea (A,B) ∈<br />
∈ IR n×n ×IR n×n există matricele ortogonale Q,Z ∈ IR n×n astfel încât<br />
Q T AZ = S, Q T BZ = T, (6.16)<br />
unde matricea S este în formă Schur reală iar matricea T este superior triunghiulară.<br />
Perechile de blocuri diagonale (S ii ,T ii ), i = 1:p, de dimen<strong>si</strong>uni 1×1 sau 2×2<br />
ale matricelor S şi T determină valorile <strong>proprii</strong> generalizate ale perechii (A,B), mai<br />
precis dacă blocul diagonal i al lui S are ordinul n i , atunci ∑ p<br />
i=1 n i = n şi<br />
λ(A,B) = ∪ p i=1 λ(S ii,T ii ). (6.17)<br />
Perechile de blocuri diagonale pot fi dispuse în orice ordine predeterminată.<br />
Perechea (S,T) se numeşte forma Schur reală generalizată (FSRG) a perechii<br />
(A,B), iar coloanele q i , respectiv z i , ale matricelor ortogonale de transformare Q<br />
şi Z se numesc vectori Schur generalizaţi ai perechii (A,B) la stânga, respectiv la<br />
dreapta, asociaţi FSRG.<br />
Conform(6.17), dacădispunemdeFSRGauneiperechi(A,B), calculul<strong>valorilor</strong><br />
<strong>proprii</strong> generalizate se reduce la rezolvarea ecuaţiilor algebrice<br />
det(S ii −λT ii ) = 0, i = 1:p, (6.18)<br />
de grad cel mult doi.<br />
Toate con<strong>si</strong>deraţiile făcute în legătură cu FSG au un corespondent transparent<br />
pentru FSRG. De exemplu, dacă dimen<strong>si</strong>unea cumulată a primelor l blocuri diagonale<br />
ale matricei S este k, atunci primele k coloane ale matricei ortogonalede transformare<br />
Z formează o bază ortogonală a unui subspaţiu de deflaţie k-dimen<strong>si</strong>onal<br />
(din IR n ) al perechii (A,B) asociat ”primelor” k valori <strong>proprii</strong> generalizate.<br />
Din cele de mai sus rezultă că problema de calcul a <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
se reduce, în esenţă, la obţinerea formei Schur (reale) generalizate. Cum acest lucru<br />
nu este po<strong>si</strong>bil, în cazul general, printr-o secvenţă finită de operaţii elementare,<br />
calculul va fi bazat, în mod necesar, pe trunchierea unui proces infinit, <strong>si</strong>milar<br />
algoritmuluiQR.Înformasaceamaiperformantăaceastăprocedurăestecunoscută<br />
sub numele de algoritm QZ şi este prezentată în secţiunea ce urmează.
6.2. FORMA SCHUR GENERALIZATĂ 453<br />
6.2.3 Forma diagonală a fascicolelor hermitice<br />
pozitiv definite<br />
În cazul fascicolelorhermitice (în cazul real, <strong>si</strong>metrice) vom fi interesaţi de condiţiile<br />
în caretransformărilede congruenţă pot fi utilizate pentru reducereala forma Schur<br />
generalizată. Dacă o astfel de po<strong>si</strong>bilitate există, atunci, având în vedere că rezultatul<br />
este o formă Schur generalizată hermitică, rezultă că ambele matrice sunt diagonale.<br />
Vom numi această structură formă diagonală generalizată. Aceste condiţii<br />
sunt prezentate în teorema următoare. Ţinând seama de faptul că rezultatul nu<br />
este o generalizare directă a unui rezultat <strong>si</strong>milar din cazul ordinar, prezentăm şi<br />
demonstraţia.<br />
Teorema 6.3 (Forma diagonală generalizată) Fie un fascicol hermitic definit de<br />
perechea (A,B) ∈ IC n×n ×IC n×n şi matricea (hermitică)<br />
C(µ) = µA+(1−µ)B, µ ∈ IR. (6.19)<br />
Dacă există un scalar µ ∈ [0, 1], astfel încât matricea C(µ) este pozitiv semidefinită,<br />
i.e. x H C(µ)x ≥ 0, ∀x ∈ IC, şi<br />
KerC(µ) = KerA∩KerB, (6.20)<br />
atunci există o matrice ne<strong>si</strong>ngulară T ∈ IC n×n astfel încât perechea congruentă<br />
(F,G) = (T H AT,T H BT) (6.21)<br />
are matricele F şi G diagonale, i.e. este în formă diagonală generalizată.<br />
În cazul real, toate matricele implicate sunt reale.<br />
Demonstraţie. Fie µ ∈ [0, 1] astfel încât matricea C(µ) este pozitiv semidefinită<br />
şi este satisfăcută condiţia (6.20). Întrucât matricea C(µ) este hermitică şi pozitiv<br />
semidefinită, forma Schur a lui C(µ) este diagonală cu elementele diagonale reale<br />
şi nenegative care pot fi ordonate. Altfel spus, există o matrice unitară U 1 ∈ IC n×n<br />
astfel încât<br />
[ ] D 0<br />
U1 H C(µ)U 1 = , D = diag(d<br />
0 0<br />
1 ,d 2 ,...,d k ), d i > 0, i = 1 : k. (6.22)<br />
√<br />
Fie ∆ = D 1 2 = diag( d1 , √ d 2 ,..., √ [ ]<br />
∆ 0<br />
d k ), ∆ 1 = şi matricea ne<strong>si</strong>ngulară<br />
T 1 = U 1 ∆ −1<br />
1 . Con<strong>si</strong>derăm transformarea de<br />
0 I n−k<br />
congruenţă<br />
şi matricea<br />
C 1 (µ) = T H 1 C(µ)T 1 = ∆ −1<br />
1 UH 1 C(µ)U 1∆ −1<br />
1 =<br />
În continuare avem, evident,<br />
(A 1 ,B 1 ) = (T H 1 AT 1,T H 1 BT 1) (6.23)<br />
[<br />
Ik 0<br />
0 0<br />
]<br />
= µA 1 +(1−µ)B 1 . (6.24)<br />
KerC(µ) = KerA∩KerB ⇔ KerC 1 (µ) = KerA 1 ∩KerB 1 . (6.25)
454 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Cum x ∈ KerC 1 (µ) implică în mod necesar x(1 : k) = 0, rezultă că KerC 1 (µ) =<br />
= ImE, unde E = [e k+1 ,e k+2 ,...,e n ]. Dar KerC 1 (µ) ⊂ KerA 1 . Deci A 1 E = 0, i.e.<br />
A 1 (:,k +1 : n) = 0, şi cum A 1 este hermitică, rezultă că are următoarea structură<br />
(din exact aceleaşi motive această structură o are şi matricea B)<br />
A 1 =<br />
[<br />
A11 0<br />
0 0<br />
Din (6.24) rezultă<br />
]<br />
, B 1 =<br />
[<br />
B11 0<br />
0 0<br />
]<br />
, A 11 ,B 11 ∈ IC k×k . (6.26)<br />
µA 11 +(1−µ)B 11 = I k . (6.27)<br />
Distingem două <strong>si</strong>tuaţii:<br />
a) Dacă µ = 0, atunci B 11 = I k şi con<strong>si</strong>derăm forma Schur (diagonală)<br />
F 11 = Q H 11A 11 Q 11 = diag(f 1 ,f 2 ,...,f k )<br />
a blocului A 11 . Luând matricea unitară Q = diag(Q 11 ,I n−k ) şi definind matricea<br />
de transformare T = T 1 Q, avem<br />
F = T H AT = Q H A 1 Q = diag(F 11 ,0), G = T H BT = Q H B 1 Q = diag(I k ,0),<br />
(6.28)<br />
i.e. forma diagonală generalizată a perechii iniţiale.<br />
b) Dacă µ ≠ 0, atunci con<strong>si</strong>derăm forma Schur (diagonală)<br />
G 11 = Q H 11 B 11Q 11 = diag(g 1 ,g 2 ,...,g k )<br />
a blocului B 11 . Luând din nou matricea unitară Q = diag(Q 11 ,I n−k ) şi definind<br />
matricea de transformare T = T 1 Q, avem<br />
F = T H AT = 1 µ TH (C(µ)−(1−µ)B)T =<br />
= 1 µ<br />
([<br />
Ik 0<br />
0 0<br />
] [<br />
G11 0<br />
−(1−µ)<br />
0 0<br />
])<br />
=<br />
(6.29)<br />
unde<br />
= diag(f 1 ,f 2 ,...,f k ,0,...,0),<br />
G = T H BT = Q H B 1 Q = diag(g 1 ,g 2 ,...,g k ,0,...,0),<br />
f i = 1 µ − 1−µ<br />
µ g i.<br />
Am obţinut şi în acest caz forma diagonală generalizată a perechii iniţiale.<br />
În cazul real demonstratia este identică, cu menţiunea că toate matricele care<br />
apar sunt reale. Teorema este demonstrată.<br />
✸<br />
În aplicatii, de cele mai multe ori, apar fascicole hermitice (<strong>si</strong>metrice) de semn<br />
definit. Evident, într-unastfeldecaz,condiţiileteoremeidemaisussuntîndeplinite:<br />
dacă B este pozitiv definită, atunci pentru µ = 0, iar dacă A este pozitiv definită,<br />
atunci pentru µ = 1. Deci fascicolele hermitice pozitiv definite sunt întotdeauna<br />
generalizat diagonalizabile.
6.3. ALGORITMUL QZ 455<br />
6.3 Algoritmul QZ<br />
Algoritmul QZ, elaborat de C.B. Moler şi G.W. Stewart în anul 1973 [44], este, în<br />
esenţă,oprocedurădedeflaţieiterativăcareconstruieşte(recurent)unşirdeperechi<br />
de matrice unitar echivalente cu perechea iniţială, şir care, în condiţii precizate, este<br />
convergent către forma Schur generalizată. În cazul real se poate impune exclu<strong>si</strong>v o<br />
aritmetică reală pe baza unei strategii a paşilor dubli. În această <strong>si</strong>tuaţie termenii<br />
şirului sunt perechi ortogonal echivalente, iar limita sa este o formă Schur reală<br />
generalizată a perechii iniţiale.<br />
Algoritmul QZ este organizat, ca şi algoritmul QR, în două faze:<br />
a) Faza a I-a, de reducere, prin calcul direct, a perechii (A,B) iniţiale la o<br />
pereche unitar echivalentă (H,T) având matricea H în formă superior Hessenberg<br />
şimatriceaT înformăsuperiortriunghiulară,structuraceamaiapropiatădeFSGce<br />
poatefiobţinutăprintr-uncalculfinit. Vomnumiperechea(H,T)formă Hessenberg<br />
generalizată a lui (A,B).<br />
b) Faza a II-a, de deflaţie iterativă, prin care elementele subdiagonale ale<br />
matricei superior Hessenberg H sunt anulate a<strong>si</strong>mptotic (<strong>si</strong>multan cu conservarea<br />
structurii superior triunghiulare a matricei T), utilizând transformări unitare de<br />
echivalenţă.<br />
Într-o caracterizare<strong>si</strong>ntetică, algoritmul QZ aplicat perechii (A,B) (cu B ne<strong>si</strong>ngulară)<br />
poate fi con<strong>si</strong>derat drept o variantă ”mascată” a algoritmului QR aplicat<br />
matricei AB −1 şi de aici rezultă remarcabilele sale performanţe numerice şi de<br />
convergenţă.<br />
6.3.1 Reducerea la forma Hessenberg generalizată<br />
Corespondentul generalizat al teoremei 4.8 are următoarea formulare.<br />
Teorema 6.4 Oricare ar fi perechea (A,B) ∈ IC n×n ×IC n×n , ce defineşte un fascicol<br />
regulat, există matricele unitare Q,Z ∈ IC n×n , calculabile printr-o secvenţă finită de<br />
operaţii aritmetice, astfel încât perechea<br />
(H,T) = (Q H AZ,Q H BZ) (6.30)<br />
are matricea H superior Hessenberg şi matricea T superior triunghiulară. Dacă<br />
matricele A, B sunt reale, atunci şi matricele H şi T sunt reale, iar matricele de<br />
transformare Q şi Z sunt ortogonale.<br />
Demonstraţie. Vom da o demonstraţie constructivă explicită în vederea elaborării<br />
unui algoritm performant. În primul rând, există o matrice unitară Q ∈ ICn×n astfel<br />
încât matricea B ← T = Q H B este superior triunghiulară (vezi capitolul 3), i.e.<br />
perechea unitar echivalentă<br />
(A,B) ← (Ã,T) = (QH AZ,Q H BZ),<br />
cu Z = I n , are matricea à densă şi T superior triunghiulară. În continuare vom<br />
aduce matricea A la forma superior Hessenberg păstrând structura superior triunghiulară<br />
a matricei B. Procedura are n−2 paşi.
456 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Pasul 1 ◦ . În cadrul pasului iniţial vom anula elementele A(3:n,1) din prima<br />
coloană a matricei A, în ordinea n:−1:3, prin transformări unitare de echivalenţă<br />
definite de două secvenţe de rotaţii (complexe) conform schemei de calcul<br />
HT-1<br />
1. Pentru i = n:−1:3<br />
1. Se determină rotaţia Q (1)<br />
i−1,i astfel încât ((Q(1) i−1,i )H A)(i,1) = 0<br />
2. A ← (Q (1)<br />
i−1,i )H A<br />
3. B ← (Q (1)<br />
i−1,i )H B % Se alterează zeroul din poziţia (i,i−1) a<br />
matricei superior triunghiulare B<br />
4. Q ← QQ (1)<br />
i−1,i<br />
5. Se determină rotaţia Z (1)<br />
i−1,i<br />
6. A ← AZ (1)<br />
i−1,i<br />
7. B ← BZ (1)<br />
i−1,i<br />
8. Z ← ZZ (1)<br />
i−1,i<br />
astfel încât (BZ(1) i−1,i )(i,i−1) = 0<br />
Întrucât premultiplicarea unei matrice cu o rotaţie din planul (i−1,i) afectează numai<br />
liniile i−1şi i, execuţia instrucţiunii 1.3 areca efect o po<strong>si</strong>bilă alterare 8 a structurii<br />
superior triunghiulare a matricei B prin alterarea zeroului din poziţia (i,i−1).<br />
Refacerea structurii superior triunghiulare a lui B se realizează la instrucţiunea 1.6<br />
prin postmultiplicarea matricei B cu o rotaţie calculată corespunzător la instrucţiunea<br />
1.5. Postmultiplicarea cu o rotaţie plană din planul (i−1,i), afectând numai<br />
coloanele i−1 şi i, nu are nici un efect (întrucât i > 2) asupra zerourilor create în<br />
prima coloană a matricei A 9 . În acest fel, pe măsura creării zerourilor din prima<br />
coloană a lui A, elementul alterant al structurii superior triunghiulare a lui B se<br />
deplasează pe o traiectorie subdiagonală ascendentă până la pără<strong>si</strong>rea matricei din<br />
poziţia(3,2)dupăcumsepoatevedeaşidinurmătoareaexemplificarepentrun = 4.<br />
În diagramele structurale de mai jos zeroul nou creat a fost marcat cu ∅, elementul<br />
alterant cu +, iar încadrările indică liniile şi coloanele afectate la pasul respectiv.<br />
⎡<br />
(A,B) = ( ⎢<br />
⎣<br />
× × × ×<br />
× × × ×<br />
× × × ×<br />
× × × ×<br />
⎤<br />
⎥<br />
⎦ ,<br />
⎡<br />
⎢<br />
⎣<br />
× × × ×<br />
0 × × ×<br />
0 0 × ×<br />
0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
(A,B) ← ((Q (1)<br />
34 )H A,(Q (1)<br />
34 )H B) = ( ⎢<br />
⎣<br />
⎡<br />
× × × ×<br />
× × × ×<br />
× × × ×<br />
∅ × × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × ×<br />
0 × × ×<br />
0 0 × ×<br />
0 0 + ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
8 Alterarea are efectiv loc dacă elementul diagonal (i−1,i−1) al matricei curente B este nenul,<br />
care este cazul obişnuit.<br />
9 De observat că încercarea de anulare a elementului (2,1) a lui A este sortită eşecului întrucât<br />
postmultiplicarea cu rotaţia Z (1)<br />
1,2 poate altera toate zerourile create în prima coloană.
6.3. ALGORITMUL QZ 457<br />
⎡<br />
(A,B) ← (AZ (1)<br />
34 ,BZ(1) 34 ) = ( ⎢<br />
⎣<br />
× ×<br />
× ×<br />
× ×<br />
0 ×<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× ×<br />
0 ×<br />
0 0<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
∅ ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
(A,B) ← ((Q (1)<br />
23 )H A,(Q (1)<br />
23 )H B) = ( ⎢<br />
⎣<br />
⎡<br />
× × × ×<br />
× × × ×<br />
∅ × × ×<br />
0 × × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × ×<br />
0 × × ×<br />
0 + × ×<br />
0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(A,B) ← (AZ (1)<br />
23 ,BZ(1) 23 ) = ( ⎢<br />
⎣<br />
×<br />
×<br />
0<br />
0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
×<br />
×<br />
×<br />
×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
×<br />
0<br />
0<br />
0<br />
× ×<br />
× ×<br />
∅ ×<br />
0 0<br />
×<br />
×<br />
×<br />
×<br />
⎤<br />
⎥<br />
⎦ ).<br />
Cumulând transformările din acest exemplu se obţine<br />
(A,B) ← ((Q (1)<br />
23 )H (Q (1)<br />
34 )H AZ (1)<br />
34 Z(1) 23 ,(Q(1) 23 )H (Q (1)<br />
34 )H BZ (1)<br />
34 Z(1) 23 ) def<br />
=<br />
def<br />
= ((Q (1) ) H AZ (1) ,(Q (1) ) H BZ (1) ).<br />
Prin urmare, schema de calcul de mai sus produce matricele<br />
A ← A (1) = (Q (1)<br />
23 )H ···(Q (1)<br />
n−2,n−1 )H (Q (1)<br />
n−1,n )H AZ (1)<br />
n−1,n Z(1) n−2,n−1···Z(1)<br />
def<br />
23 =<br />
def<br />
= (Q (1) ) H AZ (1) , (6.31)<br />
B ← B (1) = (Q (1)<br />
23 )H ···(Q (1)<br />
n−2,n−1 )H (Q (1)<br />
n−1,n )H BZ (1)<br />
n−1,n Z(1) n−2,n−1···Z(1)<br />
def<br />
23 =<br />
def<br />
= (Q (1) ) H BZ (1) , (6.32)<br />
cu A (1) (3:n,1) = 0 şi B (1) superior triunghiulară, realizându-se astfel obiectivul<br />
pasului 1. Evident, matricele unitare de transformare<br />
Q (1) def<br />
= Q (1)<br />
n−1,n Q(1) n−2,n−1···Q(1) 23 , Z(1) def<br />
= Z (1)<br />
n−1,n Z(1) n−2,n−1···Z(1) 23 (6.33)<br />
cumulează cele două secvenţe de rotaţii utilizate la pasul 1.<br />
Pasul k ◦ . Presupunem că în cadrul primilor k − 1 paşi am obţinut o pereche<br />
(A (k−1) ,B (k−1) ) – ce suprascrie (A,B) – cu A (k−1) având o structură superior<br />
Hessenberg în primele k −1 coloane şi B (k−1) superior triunghiulară:<br />
A ← A (k−1) def<br />
= (Q (k−1) ) H ···(Q (2) ) H (Q (1) ) H AZ (1) Z (2)···Z (k−1) , (6.34)<br />
B ← B (k−1) def<br />
= (Q (k−1) ) H ···(Q (2) ) H (Q (1) ) H BZ (1) Z (2)···Z (k−1) . (6.35)<br />
Este uşor de văzut că adaptând schema de calcul de la pasul 1, i.e. efectuând
458 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
HT-k 1. Pentru i = n:−1:k +2<br />
se obţin matricele<br />
1. Se determină rotaţia Q (k)<br />
i−1,i astfel încât ((Q(k) i−1,i )H A)(i,k) = 0<br />
2. A ← (Q (k)<br />
i−1,i )H A<br />
3. B ← (Q (k)<br />
i−1,i )H B % Se alterează zeroul din poziţia (i,i−1)<br />
a matricei superior triunghiulare B<br />
4. Q ← QQ (k)<br />
i−1,i<br />
5. Se determină rotaţia Z (k)<br />
i−1,i<br />
6. A ← AZ (k)<br />
i−1,i<br />
7. B ← BZ (k)<br />
i−1,i<br />
8. Z ← ZZ (k)<br />
i−1,i<br />
astfel încât (BZ(k) i−1,i )(i,i−1) = 0<br />
A←A (k) =(Q (k) (k)<br />
k+1,k+2<br />
)H···(Q n−2,n−1 )H (Q (k)<br />
n−1,n )H A (k−1) Z (k)<br />
n−1,n Z(k) n−2,n−1···Z(k) k+1,k+2<br />
şi<br />
def<br />
= (Q (k) ) H A (k−1) Z (k) (6.36)<br />
B←B (k) =(Q (k) (k)<br />
k+1,k+2<br />
)H···(Q n−2,n−1 )H (Q (k)<br />
n−1,n )H B (k−1) Z (k)<br />
n−1,n Z(k) n−2,n−1···Z(k) k+1,k+2<br />
def<br />
= (Q (k) ) H B (k−1) Z (k) (6.37)<br />
cu A (k) (k+2 : n,k) = 0, cu structura primelor k−1 coloane ale matricei A (k−1)<br />
rămasă nealterată şi cu B (k) superior triunghiulară, realizându-se astfel obiectivul<br />
pasului k. Evident, matricele unitare de transformare<br />
Q (k) def<br />
= Q (k)<br />
n−1,n Q(k) n−2,n−1···Q(k) k+1,k+2 ,<br />
Z(k) def<br />
= Z (k)<br />
n−1,n Z(k) n−2,n−1···Z(k) k+1,k+2<br />
(6.38)<br />
cumulează cele două secvenţe de rotaţii utilizate la pasul k.<br />
În concluzie, pasul 1 de mai sus permite iniţierea procedurii de reducere a<br />
perechii (A,B) la forma Hessenberg generalizată, iar pasul k arată că această reducere<br />
poate fi continuată. După n−2 paşi se obţine rezultatul dorit, i.e.<br />
A ← H = (Q (n−2) ) H ···(Q (2) ) H (Q (1) ) H AZ (1) Z (2)···Z (n−2) def<br />
= Q H AZ, (6.39)<br />
B ← T = (Q (n−2) ) H ···(Q (2) ) H (Q (1) ) H BZ (1) Z (2)···Z (n−2) def<br />
= Q H BZ (6.40)<br />
cu H superior Hessenberg şi T superior triunghiulară, i.e. cu perechea (H,T) în<br />
forma Hessenberrg generalizată. Evident, matricele unitare de transformare<br />
Q def<br />
= Q (1) Q (2)···Q (n−2) , Z def<br />
= Z (1) Z (2)···Z (n−2) (6.41)<br />
cumulează toate transformările efectuate.
6.3. ALGORITMUL QZ 459<br />
În cazul real toate rotaţiile sunt reale şi, aplicate unor matrice iniţiale reale, conduc<br />
la o pereche rezultat reală. De asemenea, matricele de transformare cumulate<br />
sunt reale ca produse de matrice reale.<br />
Caracterul finit al calculului este evident. Demonstraţia este completă. ✸<br />
Demonstraţia teoremei de mai sus conduce imediat la următoarea structură a<br />
algoritmului de reducere a unei perechi (A,B) la forma Hessenberg generalizată.<br />
HT 1. Se calculează triangularizarea unitară a matricei B, i.e. matricea unitară<br />
Q şi B ← Q H B astfel încât noul B este superior triunghiular<br />
2. A ← Q H A<br />
3. Pentru k = 1 : n−2<br />
1. Se execută procedura HT-k<br />
Pentruscriereaformalăaalgoritmuluivomutilizaoprocedurădetriangularizare<br />
unitarăauneimatricecomplexeutilizândreflectorihermitici, prezentatăîncapitolul<br />
3. Pentru scopurile noastre, <strong>si</strong>ntaxa de apel a acestei proceduri va fi 10<br />
[B,U,b] = TUN(B),<br />
i.e. procedura suprascrie matricea argument B cu rezultatul triangularizării şi<br />
livrează, în matricea U ∈ IC n×(n−1) şi vectorul b ∈ IR n−1 , elementele definitorii<br />
ale reflectorilor complecşi hermitici U k = I n − 1<br />
b(k) U(:,k)(U(:,k))H utilizaţi. (Precizăm<br />
că U(1 : k−1,k) = 0, k = 2 : n−1.) De asemenea, vom folo<strong>si</strong> procedurile din<br />
tabelul 4.3 (vezi capitolul 4), la care vomadăugaoprocedură suplimentarănecesară<br />
pentru procesările legate de anularea elementelor alterante ale structurii superior<br />
triunghiulare a matricei B şi anume [ procedura ] Gcm pentru calculul unei rotaţii<br />
c s<br />
complexe bidimen<strong>si</strong>onale Z 12 = ”modificate” care aplicată pe dreapta<br />
−¯s c<br />
unui vector linie a ∈ IC 1×2 anulează primul element al lui a. Vom numi această<br />
transformare rotaţie (complexă) ”modificată”. Este <strong>si</strong>mplu de văzut că elementele<br />
definitorii ale acestei rotaţii sunt<br />
⎧<br />
1, dacă a 1 = 0,<br />
⎪⎨<br />
0, dacă a 1 ≠ 0, a 2 = 0,<br />
c =<br />
⎪⎩ |a 2 |<br />
r , dacă a 1 ≠ 0, a 2 ≠ 0,<br />
⎧<br />
⎪⎨<br />
s =<br />
⎪⎩<br />
0, dacă a 1 = 0,<br />
1, dacă a 1 ≠ 0, a 2 = 0,<br />
ā 1 a 2<br />
|a 2 |r , dacă a 1 ≠ 0, a 2 ≠ 0.<br />
√<br />
(6.42)<br />
|a 1 | 2 +|a 2 | 2 . <strong>Calculul</strong> elementelor definitorii pentru rotaţia de mai sus<br />
unde r =<br />
va fi însoţit de calculul a ← d = aZ 12 , astfel încât <strong>si</strong>ntaxa propusă pentru această<br />
procedură este<br />
[d,c,s] = Gcm(a)<br />
10 Corespondentul real este procedura de triangularizare ortogonală pe care, în consens, o vom<br />
numi TOR. Atragem atenţia că, din dorinţa de a a<strong>si</strong>gura o claritate maximă, aici s-au făcut<br />
unele rabaturi la eficienţă, cum ar fi memorarea <strong>vectorilor</strong> Householder într-o matrice distinctă.<br />
De aceea, <strong>si</strong>ntaxa şi denumirile generice folo<strong>si</strong>te diferă de cele din capitolul 3. Implementările de<br />
performanţă maximă vor trebui să respecte însă toate recomandările explicit formulate în capitolul<br />
3.
460 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
suprascrierea(internăa) lui a realizându-secu apelul [a,c,s] = Gcm(a). Cu aceste<br />
precizări obţinem următorul algoritm.<br />
Algoritmul 6.1 (HTQZc – Reducerea la forma Hessenberg generalizată)<br />
(Dată o pereche (A,B) ∈ IC n×n × IC n×n , precum şi matricele<br />
unitare Q,Z ∈ IC n×n , algoritmul calculează perechea unitar echivalentă<br />
(A,B) ← (H,T) = (˜Q H A˜Z, ˜Q H B ˜Z) având forma superior Hessenberg<br />
generalizată. Opţional se acumulează matricele unitare de transformare<br />
Q ← Q˜Q,Z ← Z ˜Z. Opţiunea se exprimă prin intermediul unei variabile<br />
logiceoptdetipulşirdecaracterecepoateluavalorile ′ da ′ sau ′ nu ′ . Dacă<br />
opt = ′ nu ′ , algoritmul returnează matricele Q şi Z nemodificate.)<br />
1. [B,U,b] = TUN(B)<br />
2. Pentru k = 1 : n−1<br />
1. A(k : n,:) = Hcs(U(k : n,k),b(k),A(k : n,:))<br />
3. Dacă opt = ′ da ′ atunci<br />
1. Pentru k = n−1 : −1 : 1<br />
1. Q(:,k : n) = Hcd(Q(:,k : n),U(k : n,k),b(k))<br />
4. Pentru k = 1 : n−2<br />
1. Pentru i = n : −1 : k+2<br />
1. [A(i−1 : i,k),c,s] = Gc(A(i−1 : i,k))<br />
2. A(i−1 : i,k+1 : n) = Gcs(c,s,A(i−1 : i,k+1 : n))<br />
3. B(i−1 : i,i−1 : n) = Gcs(c,s,B(i−1 : i,i−1 : n))<br />
4. Dacă opt = ′ da ′ atunci<br />
Q(:,i−1: i) = Gcd(Q(:,i−1 : i),c,s)<br />
5. [B(i,i−1: i),c,s] = Gcm(B(i,i−1 : i))<br />
6. A(:,i−1 : i) = Gcd(A(:,i−1 : i),c,s)<br />
7. B(1 : i−1,i−1: i) = Gcd(B(1 : i−1,i−1: i),c,s)<br />
8. Dacă opt = ′ da ′ atunci<br />
Z(:,i−1: i) = Gcd(Z(:,i−1 : i),c,s)<br />
Comentarii. În acest capitol, pentru apelul algoritmului HTQZc va fi utilizată<br />
<strong>si</strong>ntaxa<br />
[H,T,Q,Z] = HTQZc(A,B,Q,Z,opt).<br />
Similar cu cele prezentate la calculul <strong>valorilor</strong> <strong>proprii</strong> ordinare din capitolul 4, acumularea<br />
transformărilor se face întotdeauna prin înmulţirea la dreapta cu matricea<br />
de transformare curentă, i.e. utilizând procedurile Hcd sau Gcd. Totuşi, dacă<br />
iniţial Q este matricea unitate (e.g. în <strong>si</strong>tuaţiile în care perechea (A,B) nu provine<br />
din prelucrări anterioare), atunci se obţine un spor important de eficienţă dacă<br />
instrucţiunea 3 se înlocuieşte cu instruţiunea<br />
3. Dacă opt = ′ da ′ atunci<br />
1. Pentru k = n−1 : −1 : 1<br />
1. Q(k : n,k : n) = Hcs(U(k : n,k),b(k),Q(k : n,k : n))
6.3. ALGORITMUL QZ 461<br />
i.e. acumularea relectorilor se face în ordine inversă, realizănd o ”umplere progre<strong>si</strong>vă”<br />
a matricei Q (vezi şi comentariile la algoritmul HQc din capitolul 4).<br />
În cazul real, atât matricele rezultat (A,B) ← (H,T) = (Q T AZ,Q T BZ) cât şi<br />
matricele de transformare Q, Z vor fi reale. Această particularizare este imediată<br />
prin înlocuirea procedurilor de transformare complexe utilizate cu corespondentele<br />
lor reale. Ca să marcăm diferenţa, <strong>si</strong>ntaxa de apel va fi<br />
[H,T,Q,Z] = HTQZr(A,B,Q,Z,opt).<br />
Complexitatea algoritmului este O(n 3 ), execuţia sa implicând, în cazul real,<br />
N op ≈ 8n 3 operaţii în format virgulă mobilă. Acumularea matricelor de transformare<br />
nece<strong>si</strong>tă N ′ op ≈ 4n 3 operaţii suplimentare pentru Q şi N ′ op ≈ 3n 3 operaţii<br />
suplimentare pentru Z.<br />
Algoritmul HTQZ este numeric stabil, i.e. forma Hessenberg generalizată calculată<br />
într-o aritmetică în virgulă mobilă este o pereche exact unitar (ortogonal)<br />
echivalentă cu o pereche uşor perturbată (A+E,B+F), unde matricele de perturbare<br />
E şi F satisfac condiţiile ‖E‖ ≤ p(n)ε M ‖A‖ şi ‖F‖ ≤ p(n)ε M ‖B‖ cu p(n) o<br />
funcţie cu o creştere ”modestă” de dimensunea n a problemei (v. şi §6.5, §6.6). ✸<br />
6.3.2 Evidenţierea <strong>valorilor</strong> <strong>proprii</strong> generalizate infinite<br />
Fie perechea (H,T) ∈ IC n×n ×IC n×n în formă Hessenberg generalizată, obţinută e.g.<br />
cu algoritmul HTQZc, care defineşte un fascicol regulat. Dacă T este <strong>si</strong>ngulară,<br />
i.e. T are (cel puţin) un element diagonal nul, atunci perechea (H,T) are (cel<br />
puţin) o valoare proprie generalizată infinită. Într-un astfel de caz, valorile <strong>proprii</strong><br />
generalizate infinite pot fi evidenţiate folo<strong>si</strong>nd o secvenţă finită de transformări de<br />
echivalenţă unitare (în cazul real, ortogonale), <strong>si</strong>multan cu conservarea formei Hessenberg<br />
generalizate. Concret, există matricele unitare ˆQ şi Ẑ astfel încât matricele<br />
perechii (H,T) ← (Ĥ, ˆT) H H<br />
= (ˆQ HẐ, ˆQ TẐ) au structura<br />
[ ]<br />
H11 H<br />
H = 12<br />
, T =<br />
0 H 22<br />
[ ]<br />
T11 T 12<br />
, (6.43)<br />
0 T 22<br />
cu perechea (H 11 ,T 11 ) în formă superior Hessenberg generalizată având T 11 ne<strong>si</strong>ngulară,<br />
H 22 superior triunghiulară ne<strong>si</strong>ngulară şi T 22 strict superior triunghiulară,<br />
i.e. cu toate elementele diagonale nule (toate submatricele de aceiaşi indici au<br />
aceleaşi dimen<strong>si</strong>uni). Evident, valorile <strong>proprii</strong> generalizate ale perechii (H 11 ,T 11 )<br />
sunt valorile <strong>proprii</strong> generalizate finite ale perechii iniţiale, în timp ce valorile <strong>proprii</strong><br />
generalizate ale perechii (H 22 ,T 22 ) sunt valorile <strong>proprii</strong> generalizate infinite ale<br />
acesteia.<br />
Detaliile de construcţie a structurii (6.43) sunt următoarele.<br />
Presupunem mai întâi că matricea T are un <strong>si</strong>ngur element diagonal nul. Acesta<br />
poate fi ”deplasat” în poziţia (n,n), <strong>si</strong>multan cu conservarea formei Hessenberg<br />
generalizate a perechii (H,T) şi cu anularea elementului (n,n−1) al matricei H,<br />
prin aplicarea unei transformări unitare de echivalenţă sub forma unei secvenţe de<br />
rotaţii. Concret, dacă t kk = 0, k ∈ 2:n−1 11 , este zeroul urmărit, atunci scopul<br />
este atins executând schema de calcul<br />
11 Dacă zeroul se află deja în ultima poziţie diagonală se execută numai instrucţiunea 2 din
462 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
DZ-k,n<br />
% Deplasarea zeroului diagonal al matricei T din poziţia (k,k) în poziţia (n,n)<br />
1. Dacă k < n<br />
1. Pentru i = k+1 : n<br />
1. Se determină rotaţia Q (kn)<br />
i−1,i<br />
astfel încât ((Q(kn)<br />
i−1,i )H T)(i,i) = 0<br />
2. H ← (Q (kn)<br />
i−1,i )H H % Se alterează zeroul din poziţia (i,i−2) a lui H<br />
3. T ← (Q (kn)<br />
i−1,i )H T<br />
4. Se determină rotaţia Z (kn)<br />
i−2,i−1 astfel încât (HZ(kn) i−2,i−1 )(i,i−2) = 0<br />
5. H ← HZ (kn)<br />
i−2,i−1<br />
6. T ← TZ (k)<br />
i−2,i−1<br />
2. % Ultima rotaţie:<br />
1. Se determină rotaţia Z (kn)<br />
n−1,n astfel încât (HZ(kn) n−1,n )(n−1,n) = 0<br />
2. H ← HZ (kn)<br />
n−1,n<br />
3. T ← TZ (kn)<br />
n−1,n<br />
Această schemă se completează corespunzător cu eventuala actualizare a matricelor<br />
de transformare. Pentru a dezvălui mai clar mecanismul schemei de calcul<br />
de mai sus con<strong>si</strong>derăm un exemplu cu n = 4 şi k = 2. În diagramele structurale de<br />
mai jos am marcat cu ∅ anulările curente de elemente şi cu + alterările temporare<br />
de zerouri. Încadrările marchează liniile şi coloanele afectate în etapa respectivă.<br />
⎡<br />
(H,T) = ( ⎢<br />
⎣<br />
× × × ×<br />
× × × ×<br />
0 × × ×<br />
0 0 × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × ×<br />
0 0 × ×<br />
0 0 × ×<br />
0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
(H,T)←((Q (24)<br />
23 )H H,(Q (24)<br />
23 )H T) = ( ⎢<br />
⎣<br />
⎡<br />
× × × ×<br />
× × × ×<br />
+ × × ×<br />
0 0 × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × ×<br />
0 0 × ×<br />
0 0 ∅ ×<br />
0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (HZ (24)<br />
12 ,TZ(24) 12 ) = ( ⎢<br />
⎣<br />
× ×<br />
× ×<br />
∅ ×<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× ×<br />
0 0<br />
0 0<br />
0 0<br />
× ×<br />
× ×<br />
0 ×<br />
0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
schema de calcul DZ-k,n pentru anularea elementului H(n − 1,n). Dacă zeroul se află în<br />
poziţia (1,1) deplasarea sa în poziţia (n,n) are un început atipic a cărui prezentare ar fi complicat<br />
schema de calcul. Cititorul interesat poate desprinde acest caz din algoritmul 6.2, prezentat mai<br />
departe.
6.3. ALGORITMUL QZ 463<br />
(H,T)←((Q (24)<br />
34 )H H,(Q (24)<br />
34 )H T) = ( ⎢<br />
⎣<br />
⎡<br />
× × × ×<br />
× × × ×<br />
0 × × ×<br />
0 + × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × ×<br />
0 0 × ×<br />
0 0 0 ×<br />
0 0 0 ∅<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (HZ (24)<br />
23 ,TZ(24) 23 ) = ( ⎢<br />
⎣<br />
×<br />
×<br />
0<br />
0<br />
× ×<br />
× ×<br />
× ×<br />
∅ ×<br />
×<br />
×<br />
×<br />
×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
×<br />
0<br />
0<br />
0<br />
× ×<br />
+ ×<br />
0 0<br />
0 0<br />
×<br />
×<br />
×<br />
0<br />
⎤<br />
⎥<br />
⎦ )<br />
⎡<br />
(H,T) ← (HZ (24)<br />
34 ,TZ(24) 34 ) = ( ⎢<br />
⎣<br />
× ×<br />
× ×<br />
0 ×<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
∅ ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× ×<br />
0 ×<br />
0 0<br />
0 0<br />
× ×<br />
× ×<br />
+ ×<br />
0 0<br />
⎤<br />
⎥<br />
⎦ ).<br />
Prin urmare, în exemplul con<strong>si</strong>derat, deplasareazeroului din poziţia (2,2) în poziţia<br />
(4,4) a matricei T se realizează cu secvenţa<br />
(H,T) ← ((Q (24)<br />
34 )H (Q (24)<br />
23 )H HZ (24)<br />
12 Z(24) 23 Z(24) 34 ,(Q(24) 34 )H (Q (24)<br />
23 )H TZ (24)<br />
12 Z(24) 23 Z(24) 34 )<br />
def<br />
= ((Q (24) ) H HZ (24) ,(Q (24) ) H TZ (24) ).<br />
În cazul general, deplasarea unui zero din poziţia (k,k), k ∈ 2:n−1, în poziţia<br />
(n,n) se face cu secvenţa<br />
H ← (Q (kn)<br />
n−1,n )H ···(Q (kn)<br />
k+1,k+2 )H (Q (kn)<br />
k,k+1 )H HZ (kn)<br />
k−1,k Z(kn) k,k+1···Z(kn) n−2,n−1 Z(kn) n−1,n<br />
def<br />
= (Q (kn) ) H HZ (kn) , (6.44)<br />
T ← (Q (kn)<br />
n−1,n )H ···(Q (kn)<br />
k+1,k+2 )H (Q (kn)<br />
k,k+1 )H TZ (kn)<br />
k−1,k Z(kn) k,k+1···Z(kn) n−2,n−1 Z(kn) n−1,n<br />
def<br />
= (Q (kn) ) H TZ (kn) . (6.45)<br />
Dacă matricea superiortriunghiulară T are un <strong>si</strong>ngur zero diagonal, atunci după<br />
deplasarea sa pe ultima poziţie diagonală 12 perechea (H,T) transformată va avea<br />
structura [ ] [ ]<br />
˜H h ˜T t<br />
H = , T = , (6.46)<br />
0 h nn 0 0<br />
cu perechea ( ˜H, ˜T) în formă Hessenberg generalizatăşi cu ˜T ne<strong>si</strong>ngulară. Fascicolul<br />
iniţial este regulat dacă şi numai dacă în (6.46) h nn ≠ 0. În acest caz procedura a<br />
pus în evidenţă o valoare proprie generalizată infinită.<br />
12 Vezi nota de picior precedentă.
464 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Dacă matricea T are mai multe zerouri diagonale, acestea pot fi deplasate succe<strong>si</strong>v<br />
în colţul din dreapta jos al lui T prin aplicarea repetată a schemei de calcul<br />
DZ-k,n adaptate la nece<strong>si</strong>tăţile curente în forma DZ-i,j . Procedura este<br />
următoarea 13 .<br />
DZ<br />
% Deplasarea zerourilor diagonale ale matricei T în colţul din dreapta jos<br />
1. i = n, j = n<br />
2. C^at timp i > 0<br />
1. Dacă T(i,i) = 0 atunci<br />
1. Execută DZ-i,j<br />
2. j ← j −1<br />
3. i ← j −1<br />
altfel<br />
1. i ← i−1<br />
Dupăexecuţiaproceduriidemaisusperechea(H,T)transformatăvaaveastructura<br />
(6.43). Fascicolul iniţial este regulat dacă şi numai dacă H 22 este ne<strong>si</strong>ngulară.<br />
Într-un astfel de caz, numărul <strong>valorilor</strong> <strong>proprii</strong> generalizate infinite este dat de ordinul<br />
blocurilor H 22 şi T 22 .<br />
Prezentăm algoritmul care implementează schema de calcul DZ .<br />
Algoritmul 6.2 (DZc – Deplasarea zerourilor diagonale.)<br />
(Date o pereche (H,T) ∈ IC n×n × IC n×n în formă Hessenberg generalizată<br />
şi matricele unitare Q,Z ∈ IC n×n , algoritmul suprascrie perechea<br />
(H,T) cu o pereche echivalentă, tot în formă Hessenberg generalizată,<br />
dar având toate zerourile diagonale ale matricei T <strong>si</strong>tuate în colţul din<br />
dreapta jos. Opţional, se actualizează matricele unitare de transformare<br />
Q,Z ∈ IC n×n . Opţiunea se exprimă prin intermediul unei variabile logice<br />
opt de tipul şir de caractere ce poate lua valorile ′ da ′ sau ′ nu ′ . Dacă<br />
opt = ′ nu ′ , algoritmul returnează matricele Q şi Z nemodificate.)<br />
1. i = n, j = n<br />
2. C^at timp i > 0<br />
1. Dacă T(i,i) = 0 atunci<br />
1. Dacă i < j atunci<br />
1. Pentru l = i+1 : j<br />
1. [T(l−1:l,l),c,s]= Gc(T(l−1:l,l))<br />
2. k = max(l−2,1)<br />
3. H(l−1:l,k:n) = Gcs(c,s,H(l−1:l,k:n))<br />
4. Dacă l < n atunci<br />
T(l−1:l,l+1: n) = Gcs(c,s,T(l−1:l,l+1:n))<br />
13 După deplasarea unui zero diagonal în ultima poziţie diagonală curentă este po<strong>si</strong>bil ca structura<br />
zerourilor diagonale ”încă nedeplasate” să se modifice, e.g. numărul lor să scadă. De aceeea<br />
după deplasarea tuturor zerourilor diagonale în colţul din dreapta jos este po<strong>si</strong>bil ca numărul lor<br />
să fie diferit de numărul iniţial al zerourilor diagonale ale matricei T. De asemenea, aşa cum s-a<br />
precizat, pentru aspectele specifice ale tratării zerourilor din poziţiile diagonale terminale, cititorul<br />
este invitat să consulte algoritmul formal.
6.3. ALGORITMUL QZ 465<br />
5. Dacă opt = ′ da ′ atunci<br />
Q(:,l−1:l) = Gcd(Q(:,l−1:l),c,s)<br />
6. [H(l,k:k+1),c,s] = Gcm(H(l,k:k+1))<br />
7. H(1:l−1,k:k+1) = Gcd(H(1:l−1,k:k+1),c,s)<br />
8. Dacă l = 2 atunci<br />
H(3,k:k+1) = Gcd(H(3,k:k+1),c,s)<br />
9. T(1:l−1,k:k+1) = Gcd(T(1:l−1,k:k+1),c,s)<br />
10. Dacă opt = ′ da ′ atunci<br />
Z(:,k:k+1) = Gcd(Z(:,k:k+1),c,s)<br />
2. Dacă j > 1 atunci<br />
1. % Ultima rotaţie din secvenţa curentă:<br />
1. (H(j,j−1:j),c,s) = Gcm(H(j,j−1:j))<br />
2. H(1:j−1,j−1:j) = Gcd(H(1:j−1,j−1:j),c,s)<br />
3. T(1:j−1,j−1:j) = Gcd(T(1:j−1,j−1:j),c,s)<br />
4. Dacă opt = ′ da ′ atunci<br />
Z(:,j−1:j) = Gcd(Z(:,j−1:j),c,s)<br />
3. j ← j −1<br />
4. i ← j<br />
altfel<br />
1. i ← i−1<br />
Comentarii. Sintaxa cu care algoritmul de mai sus va fi apelat este<br />
[H,T,Q,Z] = DZc(H,T,Q,Z,opt).<br />
Complexitatea algoritmului este cel mult O(n 3 ), numărul efectiv de operaţii fiind<br />
deci<strong>si</strong>v influenţat de numărul şi dispunerea zerourilor diagonale ale matricei T.<br />
Utilizând exclu<strong>si</strong>v transformări unitare (ortogonale), algoritmul DZc este numeric<br />
stabil.<br />
În cazul real se utilizează exact aceleaşi secvenţe de rotaţii, de data aceasta<br />
reale, ceea ce are ca efect obţinerea ca rezultat a unei perechi transformate reale,<br />
iar efortul de calcul este sen<strong>si</strong>bil diminuat. Pentru a distinge cazul real vom utiliza<br />
<strong>si</strong>ntaxa<br />
[H,T,Q,Z] = DZr(H,T,Q,Z,opt).<br />
Formal, varianta reală a algoritmului se obţine înlocuind în numele procedurilor<br />
utilizate <strong>si</strong>gla c cu <strong>si</strong>gla r.<br />
✸<br />
6.3.3 Faza iterativă a algoritmului QZ<br />
Etapa iterativă a algoritmului QZ construieşte un şir de perechi de matrice unitar<br />
(ortogonal)echivalenteconvergentcătreformaSchur(reală)generalizată. În esenţă,<br />
încazul încarematriceaB estene<strong>si</strong>ngulară,iteraţiile QZreprezintăoimplementare<br />
specifică a iteraţiilor QR pentru matricea C = AB −1 . Concret, perechea curentă<br />
(A k ,B k ) a şirului QZ este astfel calculată încât matricea C k = A k B −1<br />
k<br />
sa fie matricea<br />
curentă a şirului QR pentru matricea C. Aşa cum s-a mai precizat, eficienţa
466 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
fazei iterative a algoritmului QZ este determinant a<strong>si</strong>gurată de reducerea preliminară<br />
a perechii (A,B) la forma Hessenberg generalizată folo<strong>si</strong>nd algoritmii HTQZc<br />
sau HTQZr şi de conservareaacestei structuri de iteraţiile QZ. Pentruasublinia în<br />
mod imperativ acest lucru, în continuare vom presupune această reducere efectuată<br />
şivomfolo<strong>si</strong>notaţiagenerică(H,T)pentruperecheacurentă,deşi,natural,oriceimplementare<br />
îngrijită utilizează suprascrierea perechii (A,B) iniţiale. De asemenea,<br />
pentru <strong>si</strong>tuaţiile în care matricea B (i.e. T) este <strong>si</strong>ngulară vom presupune efectuată<br />
şi evidenţierea <strong>valorilor</strong> <strong>proprii</strong> generalizate infinite cu ajutorul algoritmului DZc<br />
sau DZr.<br />
Nu vom mai dezvolta aici variantele cu deplasare explicită ci ne vom limita la<br />
variantele profe<strong>si</strong>onale cu deplasare implicită cu pas <strong>si</strong>mplu pentru cazul datelor<br />
complexe, respectiv cu pas dublu pentru cazul datelor reale.<br />
Fie dată perechea (H,T) ∈ IC n×n × IC n×n în formă Hessenberg generalizată şi<br />
presupunem că matricea T este ne<strong>si</strong>ngulară. Având în vedere observaţia de mai sus,<br />
privitoarela substratul conceptual al iteraţiilor QZ, pentru implementarea unui pas<br />
QRcudeplasareimplicităpentrumatriceaG = HT −1 avemnevoie, pentruautiliza<br />
teorema 4.15, ca matricea superior Hessenberg G să fie ireductibilă (i.e. cu toate<br />
elementele subdiagonale nenule). Este uşor de văzut (v. exerciţiul 6.8) că această<br />
condiţie este îndeplinită dacă şi numai dacă H este ireductibilă. În acest context,<br />
vom spune că perechea (H,T) se află în formă Hessenberg generalizată ireductibilă<br />
dacă H este ireductibilă şi T este ne<strong>si</strong>ngulară.<br />
Pentru a evidenţia ”părţile” ireductibile 14 ale perechii (H,T) vom partiţiona<br />
matriceleH şi T înacordcu zerourilesubdiagonalealematricei superiorHessenberg<br />
H. Astfel, dacă H are un <strong>si</strong>ngur zero subdiagonal în poziţia (k + 1,k), atunci<br />
con<strong>si</strong>derând partiţia<br />
[ ] [ ]<br />
H11 H<br />
H = 12 T11 T<br />
, T = 12<br />
, (6.47)<br />
0 H 22 0 T 22<br />
avem perechile (H 11 ,T 11 ) ∈ IC k×k ×IC k×k şi (H 22 ,T 22 ) ∈ IC (n−k)×(n−k) ×IC (n−k)×(n−k)<br />
în formă Hessenberg generalizată ireductibilă cărora li se pot aplica iteraţiile QZ în<br />
varianta cu deplasare implicită. Cum, evident,<br />
λ(H,T) = λ(H 11 ,T 11 )∪λ(H 22 ,T 22 ) (6.48)<br />
rezultă că problema iniţială a calculului <strong>valorilor</strong> <strong>proprii</strong> generalizate se reduce la<br />
rezolvarea a două probleme de aceeaşi natură, dar de dimen<strong>si</strong>uni mai mici. Analog<br />
se procedează când matricea H are mai multe zerouri subdiagonale. Gestionarea<br />
acestor zerouri şi aplicarea tehnicii iterative cu deplasare implicită numai părţilor<br />
ireductibile va fi prezentată în cadrul formei finale a algoritmului QZ.<br />
Încadrulacestuiparagrafvomcon<strong>si</strong>deradatăperechea(H,T), cu T ne<strong>si</strong>ngulară,<br />
în formă Hessenberg generalizată ireductibilă şi vom stabili algoritmul de calcul al<br />
perechiisuccesoralperechiicurentedinşirulQZ.Vomtratadistinct <strong>si</strong>tuaţiadatelor<br />
complexe şi a celor reale.<br />
Reamintim că ideea de bază a iteraţiei QZ constă într-o implementare specifică<br />
a iteraţiei QR cu deplasare implicită pentru matricea G = HT −1 şi anume în<br />
14 Cazul real se tratează identic.
6.3. ALGORITMUL QZ 467<br />
construcţia şirului de perechi (H k ,T k ) astfel încât matricea G k = H k T −1<br />
k<br />
să fie<br />
matricea corespunzătoare a şirului QR pentru matricea G. Principalul avantaj<br />
de natură numerică al acestei abordări constă în evitarea inversării matricei T k şi<br />
eliminarea, datorită acestui fapt, a unei po<strong>si</strong>bile instabilităţi numerice cauzate de o<br />
condiţionare necorespunzătoare a lui T k .<br />
Precizăm de la început două consecinţe ale faptului că iteraţiile QZ reprezintă o<br />
formă mascată a iteraţiilor QR (pentru a căror motivare recomandăm consultarea<br />
capitolului 4):<br />
a) conservarea formei Hessenberg generalizate pe parcursul procesului iterativ;<br />
b) excelente proprietăţi de convergenţă către forma Schur (reală) generalizată.<br />
A. Un pas QZ pentru perechi complexe<br />
Conform celor prezentate în capitolul 4, un pas <strong>si</strong>mplu QR cu deplasare implicită<br />
pentru matricea G k = H k T −1<br />
k<br />
realizează următoarea secvenţă de calcule.<br />
1. Secalculeazăprimacoloanăq (k)<br />
1 amatriceiQ k cedefineştetransformarea<br />
unitară aferentă unui pas <strong>si</strong>mplu QR cu deplasare explicită.<br />
2. Se determină o matrice unitară P astfel încât prima coloană a lui<br />
P să fie q (k)<br />
1 , i.e. Pe 1 = q (k)<br />
1 .<br />
3. Se calculează matricea F = P H G k P (a cărei structură nu mai este<br />
superior Hessenberg).<br />
4. Se aplicăalgoritmulHQde reducereamatriceiF la formasuperior<br />
Hessenberg rezultând matricea succesor G k+1 = H k+1 T −1<br />
k+1 .<br />
Fie, pentru<strong>si</strong>mplificareanotaţiilor,(H k ,T k ) not<br />
= (H,T)perecheacurentăaşirului<br />
QZ, presupusă ireductibilă, (H k+1 ,T k+1 ) not<br />
= (H ′ ,T ′ ) perechea succesor precum şi<br />
G = HT −1 , G ′ = H ′ (T ′ ) −1 . Urmând etapele din schema de calcul de mai sus vom<br />
transfera transformările matricei G perechii (H,T). Avem următoarele particularităţi.<br />
1. Expre<strong>si</strong>a deplasării curente µ = g nn în raport cu elementele matricelor H şi<br />
T este<br />
µ = h n,n<br />
− h n,n−1t n−1,n<br />
. (6.49)<br />
t n,n t n−1,n−1 t n,n<br />
Dacă µ ∉ λ(G), i.e. G−µI n este ne<strong>si</strong>ngulară, atunci prima coloană a matricei<br />
not<br />
de transformare Q k = Q este<br />
⎡ ⎤<br />
h 11<br />
⎢ −µ<br />
t 11<br />
⎥<br />
q 1 = Qe 1 = ρ<br />
⎢<br />
⎣<br />
h 21<br />
t 11<br />
0<br />
.<br />
0<br />
, (6.50)<br />
⎥<br />
⎦
468 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
unde ρ este un factor real de normare. Vom numi vectorul<br />
⎡ ⎤<br />
h 11<br />
−µ<br />
t 11<br />
w =<br />
⎢<br />
⎣<br />
h 21<br />
t 11<br />
⎥<br />
⎦ , (6.51)<br />
alelementelornenulealevectoruluiq 1 /ρvector de deplasare implicităasociatpasului<br />
<strong>si</strong>mplu QZ.<br />
2. Matricea unitară P de la instrucţiunea 2 a schemei de calcul de mai sus este,<br />
cel mai <strong>si</strong>mplu, o rotaţie (complexă), având structura<br />
[ ] ˜P 0<br />
P =<br />
(6.52)<br />
0 I n−2<br />
cu ˜P ∈ IC 2×2 astfel calculată încât<br />
˜P H w = νe 1 . (6.53)<br />
3. Este uşor de văzut că aplicarea transformării de asemănare de la punctul 2<br />
al schemei de calcul de mai sus este echivalentă cu aplicarea rotaţiei P H ambelor<br />
matrice din perechea (H,T). Într-adevăr, dacă ( ˜H, ˜T) = (P H H,P H T), atunci<br />
˜H ˜T −1 = P H HT −1 P = P H GP. Alterareastructurii superiorHessenberg a matricei<br />
G în poziţia (3,1) se transferă în alterarea structurală a perechii (H,T). Concret,<br />
datorită structurii (6.52) a lui P, matricea ˜H rămâne superior Hessenberg, pe când<br />
˜T are un element nenul suplimentar în poziţia (2,1).<br />
4. Refacereastructurii Hessenberggeneralizateaperechii ( ˜H, ˜T) printr-otransformare<br />
unitară de echivalenţă poate fi a<strong>si</strong>milată cu refacerea formei Hessenberg a<br />
matricei ˜G. Într-adevăr,dacă (H′ ,T ′ ) = (˜Q H ˜HZ, ˜QH ˜TZ) este în formăHessenberg<br />
generalizată, atunci G ′ = H ′ T ′ −1 = ˜Q H ˜HZZ<br />
H ˜T−1 ˜Q = ˜QH ˜H ˜T−1 ˜Q = ˜QH ˜G˜Q este<br />
o matrice superior Hessenberg (ca produs dintre o matrice superior Hessenberg şi<br />
o matrice superior triunghiulară). Concret, readucerea perechii alterate la forma<br />
Hessenberg generalizată se face utilizând algoritmul HTQZ adaptat, pentru a<strong>si</strong>gurarea<br />
eficienţei necesare, la <strong>si</strong>tuaţia structurală prezentă. Detaliile sunt precizate<br />
prin următoarea schemă de calcul.<br />
HTQZ1<br />
1. Pentru k = 2:n<br />
1. Se calculează rotaţia modificată Z k−1,k astfel încât<br />
(TZ k−1,k )(k,k−1) = 0<br />
2. H ← HZ k−1,k % Apare un element nenul în poziţia (k+1,k−1)<br />
a lui H (pentru k < n)<br />
3. T ← TZ k−1,k % Se anulează elementul T(k,k−1)<br />
4. Dacă k < n atunci<br />
1. Se calculează rotaţia Q k,k+1 astfel încât (Q H k,k+1 H)(k+1,k−1) = 0<br />
2. H ← Q H k,k+1H % Se anulează elementul H(k+1,k−1)<br />
3. T ← Q H k,k+1T % Apare un element nenul în poziţia (k+1,k) a lui T
6.3. ALGORITMUL QZ 469<br />
Această schemă realizează deplasarea elementelor alterante ale structurilor matricelor<br />
H şi T de-a lungul unor trasee paralele cu diagonala principală până la<br />
eliminarea lor din matricele respective utilizând în acest scop două secvenţe de<br />
rotaţii.<br />
Pentru exemplificare prezentăm evoluţia structurală a perechii (H,T) în cazul<br />
n = 4. Ca şi în exemplele anterioare, încadrările marchează liniile şi coloanele<br />
afectate de operaţia curentă.<br />
⎡<br />
(H,T) ← (P H H,P H T) = ( ⎢<br />
⎣<br />
× × × ×<br />
× × × ×<br />
0 × × ×<br />
0 0 × ×<br />
⎤<br />
⎥<br />
⎦ ,<br />
⎡<br />
⎢<br />
⎣<br />
× × × ×<br />
+ × × ×<br />
0 0 × ×<br />
0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (HZ 12 ,TZ 12 ) = ( ⎢<br />
⎣<br />
× ×<br />
× ×<br />
+ ×<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× ×<br />
∅ ×<br />
0 0<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (Q H 23 H,QH 23 T) = ( ⎢<br />
⎣<br />
× × × ×<br />
× × × ×<br />
∅ × × ×<br />
0 0 × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
0 × × ×<br />
0 × × ×<br />
0 + × ×<br />
0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (HZ 23 ,HZ 23 ) = ( ⎢<br />
⎣<br />
×<br />
×<br />
0<br />
0<br />
× ×<br />
× ×<br />
× ×<br />
+ ×<br />
×<br />
×<br />
×<br />
×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
×<br />
0<br />
0<br />
0<br />
× ×<br />
× ×<br />
∅ ×<br />
0 0<br />
×<br />
×<br />
×<br />
×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (Q H 34 H,QH 34 T) = ( ⎢<br />
⎣<br />
× × × ×<br />
× × × ×<br />
0 × × ×<br />
0 ∅ × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × ×<br />
0 × × ×<br />
0 0 × ×<br />
0 0 + ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
⎡<br />
(H,T) ← (HZ 34 ,TZ 34 ) = ( ⎢<br />
⎣<br />
× ×<br />
× ×<br />
0 ×<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× ×<br />
0 ×<br />
0 0<br />
0 0<br />
× ×<br />
× ×<br />
× ×<br />
∅ ×<br />
⎤<br />
⎥<br />
⎦ ).<br />
Aplicarea rotaţiei P H care a<strong>si</strong>gură prima coloană impusă a matricei de transformare<br />
corespunzătoare pasului QR curent pentru matricea HT −1 şi apoi refacerea<br />
structurii Hessenberg generalizate cu ajutorul variantei adaptate a algoritmului
470 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
HTQZ, dată de schema de calcul de mai sus, conduc la obţinerea perechii succesor<br />
{<br />
H ← H ′ = Q H n−1,n···QH 23 PH HZ 12 Z 23···Z n−1,n ,<br />
(6.54)<br />
T ← T ′ = Q H n−1,n···Q H 23P H TZ 12 Z 23···Z n−1,n ,<br />
din şirul QZ. Perechea (H ′ ,T ′ ) suprascrie perechea (H,T), i.e. toate calculele aferente<br />
unui pas <strong>si</strong>mplu QZ cu deplasare implicită se desfăşoară pe loc, în tablourile<br />
H şi T.<br />
Din motive de organizare judicioasă a algoritmului QZ şi, mai ales, a algoritmului<br />
de ordonare a formei Schur generalizate (vezi secţiunea 6.4) vom scrie o<br />
procedură distinctă pentru calculul vectorului de deplasare implicită.<br />
Algoritmul 6.3 (VD1 – <strong>Calculul</strong> vectorului de deplasare implicită<br />
pentru un pas <strong>si</strong>mplu QZ) (Date o pereche (H,T) ∈ IC n×n × IC n×n în<br />
formă Hessenberg generalizată cu T ne<strong>si</strong>ngulară, algoritmul calculează<br />
vectorul w ∈ IC 2 de deplasare implicită pentru un pas <strong>si</strong>mplu QZ.)<br />
1. µ = h n,n<br />
− h n,n−1t n−1,n<br />
t n,n t n−1,n−1 t n,n<br />
⎡ ⎤<br />
h 11<br />
−µ<br />
2. w = ⎢ t 11 ⎥<br />
⎣ h 21<br />
⎦<br />
t 11<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
iar complexitatea sa este, evident, O(1).<br />
w = VD1(H,T),<br />
Cu aceste precizări putem prezenta algoritmul de implementare al unui pas<br />
<strong>si</strong>mplu QZ cu deplasare implicită. Sunt utilizate proceduri cuprinse în tabelul 4.3<br />
şi procedura Gcm, de calcul al unei rotaţii modificate, introdusă în acest capitol.<br />
Algoritmul 6.4 (IT QZ1 - Un pas <strong>si</strong>mplu QZ cu deplasare implicită)<br />
(Date o pereche (H,T) ∈ IC n×n × IC n×n în formă Hessenberg<br />
generalizată ireductibilă, matricele unitare Q,Z ∈ IC n×n şi vectorul de<br />
deplasare implicită w ∈ IC 2 , algoritmul suprascrie perechea (H,T) cu<br />
perecheasuccesor(H ′ ,T ′ ) = (Q H k HZ k,Q H k TZ k) dinşirul QZ.Opţional,<br />
se actualizează matricele unitare de transformare Q şi Z. Opţiunea se<br />
exprimă cu ajutorul variabilei logice opt de tipul şir de caractere care<br />
poate lua valorile ′ da ′ sau ′ nu ′ . Dacă opt = ′ nu ′ , algoritmul returnează<br />
matricele Q şi Z nemodificate.)<br />
1. [w,c,s] = Gc(w)<br />
2. H(1:2,:) = Gcs(c,s,H(1:2,:))<br />
3. T(1:2,:) = Gcs(c,s,T(1:2,:))<br />
4. Dacă opt = ′ da ′ atunci<br />
1. Q(:,1:2) = Gcd(Q(:,1:2),c,s)<br />
✸
6.3. ALGORITMUL QZ 471<br />
5. Pentru k = 2 : n<br />
1. [T(k,k−1 : k),c,s] = Gcm(T(k,k−1 : k))<br />
2. l = min(k+1,n)<br />
3. H(1:l,k−1 : k) = Gcd(H(1:l,k−1 : k),c,s)<br />
4. T(1 : k−1,k−1 : k) = Gcd(T(1 : k−1,k−1 : k),c,s)<br />
5. Dacă opt = ′ da ′ atunci<br />
1. Z(:,k−1 : k) = Gcd(Z(:,k−1 : k),c,s)<br />
6. Dacă k < n atunci<br />
1. [H(k : k+1,k−1),c,s] = Gc(H(k : k+1,k−1))<br />
2. H(k : k+1,k : n) = Gcs(c,s,H(k : k+1,k : n))<br />
3. T(k : k+1,k : n) = Gcs(c,s,T(k : k+1,k : n))<br />
4. Dacă opt = ′ da ′ atunci<br />
1. Q(:,k : k+1) = Gcd(Q(:,k : k+1),c,s)<br />
Comentarii. Vom utiliza următoarea <strong>si</strong>ntaxă de apel a algoritmului de mai sus<br />
[H,T,Q,Z] = IT QZc(H,T,Q,Z,w,opt).<br />
Complexitateaunuipas<strong>si</strong>mplu QZesteO(n 2 ). Concret, pentru execuţiaalgoritmului<br />
6.3 sunt necesari N op ≈ 12n 2 flopi fără acumularea transformărilor, N op ′ ≈ 12n2<br />
flopi suplimentari pentru acumulareatransformărilor,la care se adaugăcele 2(n−1)<br />
extrageri de radical.<br />
✸<br />
B. Algoritmul QZ pentru matrice complexe<br />
Provenind din adaptarea algoritmului QR algoritmul QZ utilizează toate ideile<br />
acestuia pentru exploatarea evoluţiei structurale a elementelor şirului QZ. Concret,<br />
algoritmul QZ pentru matrice complexe se obţine prin iterarea pasului <strong>si</strong>mplu QZ,<br />
anularea efectivă a elementelor subdiagonale ale matricei H devenite neglijabile şi,<br />
pe această bază, reducerea succe<strong>si</strong>vă a dimen<strong>si</strong>unii problemei până la obţinerea<br />
rezultatului dorit.<br />
Pentru deciziile de anulare a elementelor subdiagonale ale matricei H se utilizează<br />
criteriul cunoscut de la algoritmul QR<br />
|h k+1,k | < tol(|h kk |+|h k+1,k+1 |), (6.55)<br />
unde scalarul pozitiv tol defineşte nivelul de toleranţă şi are, uzual, un ordin de<br />
mărimecomparabilcueroareadereprezentaredinformatulvirgulămobilăalmaşinii<br />
ţintă.<br />
De asemenea, pentru monitorizarea evoluţiei structurale a matricelor din şirul<br />
QZ,lafiecareiteraţie, dupăanulareaelementelorsubdiagonalecaresatisfaccondiţia<br />
(6.55), se va determina cel mai mic întreg p şi cel mai mare întreg q astfel încât<br />
perechea curentă (H,T) să aibă structura<br />
⎡<br />
H = ⎣ H ⎤<br />
11 H 12 H 13<br />
0 H 22 H 23<br />
⎦ }p ⎡<br />
}n−p−q , T = ⎣ T ⎤<br />
11 T 12 T 13<br />
0 T 22 T 23<br />
⎦ }p<br />
}n−p−q ,<br />
0 0 H 33 }q 0 0 T 33 }q<br />
(6.56)
472 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
cu perechea (H 22 ,T 22 ) ∈ IC (n−p−q)×(n−p−q) ×IC (n−p−q)×(n−p−q) în formă Hessenberg<br />
generalizată ireductibilă şi H 33 ,T 33 ∈ IR q×q superior triunghiulare. Astfel, iteraţia<br />
QZ (complexă) se va aplica, de fapt, numai perechii (H 22 ,T 22 )<br />
(H 22 ,T 22 ) ← (H ′ 22 ,T′ 22 ) = (QH 22 H 22Z 22 ,Q H 22 T 22Z 22 ), (6.57)<br />
echivalentă cu aplicarea asupra perechii de matrice (H,T) a transformării de echivalenţă<br />
unitare<br />
Q = diag(I p ,Q 22 ,I q ), Z = diag(I p ,Z 22 ,I q ). (6.58)<br />
Această transformare afectează celelalte blocuri ale matricelor H, T din (6.56) în<br />
felul următor:<br />
⎡<br />
⎤ ⎡<br />
⎤<br />
H 11 H 12 Z 22 H 13 T 11 T 12 Z 22 T 13<br />
H ′ ⎢<br />
= ⎣ 0 Q H 22 H 22Z 22 Q H 22 H ⎥<br />
23 ⎦, T ′ ⎢<br />
= ⎣ 0 Q H 22 T 22Z 22 Q H 22 T ⎥<br />
23 ⎦.<br />
0 0 H 33 0 0 T 33<br />
(6.59)<br />
Algoritmul QZ se termină în momentul în care se anulează toate elementele<br />
subdiagonale ale matricei H, i.e. q devine n − 1. Utilizând, pentru claritate, <strong>si</strong>ntaxele<br />
de apel menţionate ale algoritmilor 6.1–6.4, algoritmul QZ cu pas <strong>si</strong>mplu, cu<br />
deplasare implicită, se scrie astfel.<br />
Algoritmul 6.5 (QZ1 – Algoritmul QZ cu paşi <strong>si</strong>mpli şi deplasări<br />
implicite) (Date un fascicol matriceal definit de perechea (A,B)∈IC n×n ×<br />
×IC n×n , matricele unitare Q,Z ∈ IC n×n şi un nivel de toleranţă tol<br />
pentru anularea elementelor subdiagonale, algoritmul calculează forma<br />
Schurgeneralizată(A,B) ← (S,T)=(Q H AZ,Q H BZ) a perechii (A,B).<br />
Toate calculele se efectuează pe loc, în locaţiile de memorie ale tablourilor<br />
A şi B. Opţional, se acumulează transformările prin actualizarea<br />
matricelor Q şi Z. Opţiunea se exprimă cu ajutorul variabilei logice opt<br />
de tipul şir de caractere care poate lua valorile ′ da ′ sau ′ nu ′ . Dacă nu<br />
se doreşte acumularea, matricele Q şi Z se returnează nemodificate.)<br />
1. % Reducerea la forma Hessenberg generalizată<br />
1. [A,B,Q,Z] =HTQZc(A,B,Q,Z,opt)<br />
2. % Deplasarea zerourilor diagonale ale matricei B şi evidenţierea<br />
<strong>valorilor</strong> <strong>proprii</strong> infinite.<br />
1. [A,B,Q,Z] =DZc(A,B,Q,Z,opt)<br />
3. % Faza iterativă<br />
1. p = 0, q = 0, cont it = 0<br />
2. C^at timp q < n<br />
1. % Anularea elementelor subdiagonale neglijabile<br />
Pentru i = p+1 : n−q −1<br />
1. Dacă |a i+1,i | ≤ tol(|a ii |+|a i+1,i+1 |) atunci a i+1,i = 0
6.3. ALGORITMUL QZ 473<br />
2. % Determinarea lui q<br />
C^at timp a n−q,n−q−1 = 0<br />
1. q ← q +1<br />
2. cont it = 0<br />
3. % Terminarea algoritmului<br />
Dacă q = n−1 atunci return.<br />
3. % Determinarea lui p<br />
1. p = n−q −1<br />
2. C^at timp a p+1,p ≠ 0<br />
1. p ← p−1<br />
2. Dacă p = 0 atunci break<br />
4. % Iteraţia curentă<br />
1. k = p+1, l = n−q<br />
2. w = VD1(A(k:l,k:l),B(k:l,k:l))<br />
3. [A(k:l,k:l),B(k:l,k:l),Q c ,Z c ] =<br />
IT QZc(A(k:l,k:l),B(k:l,k:l),I l−p ,I l−p ,w,opt)<br />
4. Dacă q > 0 atunci<br />
1. A(k:l,l+1:n) = Q c A(k:l,l+1:n)<br />
2. B(k:l,l+1:n) = Q c B(k:l,l+1:n)<br />
5. Dacă p > 0 atunci<br />
1. A(1:p,k:l) = A(1:p,k:l,)Z c<br />
2. B(1:p,k:l) = B(1:p,k:l)Z c<br />
5. % Acumularea transformărilor<br />
1. Dacă opt=’da’ atunci<br />
1. Q(:,k : l) = Q(:,k : l)Q c<br />
2. Z(:,k : l) = Z(:,k : l)Z c<br />
6. cont it ← cont it+1<br />
7. Dacă cont it > 30 atunci<br />
1. Tipăreşte ’S-au atins 30 de iteraţii fără să se<br />
poată anula un element subdiagonal.<br />
Este po<strong>si</strong>bil ca pentru aceste date<br />
algoritmul QZ să nu fie convergent.’<br />
2. Return<br />
Comentarii. În aspectele sale esenţiale, algoritmul de mai sus stă la baza tuturor<br />
programelor profe<strong>si</strong>onale de calcul al <strong>valorilor</strong> <strong>proprii</strong> generalizate ale unui fascicol<br />
matriceal complex. Utilizarea lui pentru calculul formei Schur generalizate a unui<br />
fascicolrealeste po<strong>si</strong>bilă 15 , dareste maipuţineficientă înraportcuvariantaspecial<br />
elaborată pentru acest caz şi prezentată mai jos.<br />
15 Pentru probleme de mică dimen<strong>si</strong>une diferenţa de eficienţă nu este deci<strong>si</strong>vă astfel că acest<br />
algoritm poate fi folo<strong>si</strong>t cu succes. Atragem însă atenţia că procedura Gc de calcul a unei rotaţii<br />
complexe cu relaţiile (6.42), aplicată unui vector real, calculează de fapt o rotaţie reală astfel încât,<br />
pentru date reale, acest algoritm va lucra exclu<strong>si</strong>v cu numere reale privite ca numere complexe<br />
şi nu va fi capabil să reducă perechile de blocuri diagonale 2 × 2. Pentru a depăşi acest impas<br />
se poate proceda, de exemplu, la identificarea <strong>si</strong>tuaţiei şi monitorizarea blocurilor diagonale ca în<br />
algoritmul special destinat cazului real (vezi mai departe).
474 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Sintaxa de apel este<br />
[S,T,Q,Z] = QZ1(A,B,Q,Z,tol,opt),<br />
perechea (S,T) în FSG putând suprascrie (intern) perechea (A,B).<br />
La fel ca în cazul algoritmului QR, există date de intrare pentru care algoritmul<br />
nu este convergent, deşi acest lucru se întâmplă extrem de rar în practică. Aici,<br />
după30deiteraţiifărăprogresulparametruluistructuralq sedeclarăeşeculdeşimai<br />
există şanse de convergenţă printr-o modificare empirică a vectorului de deplasare<br />
(v. cap. 4).<br />
Printre rafinările po<strong>si</strong>bile care nu au fost incluse este opţiunea de a fi calculată<br />
numai una din matricele de transformare (de obicei Z, ale cărei prime coloane<br />
reprezintă o bază pentru spaţiul de deflaţie asociat primelor valori <strong>proprii</strong> generalizate,<br />
vezi secţiunea următoare). De asemenea, din raţiuni de claritateaprezentării,<br />
s-a preferat acumularea transformărilor în cadrul unei iteraţii în matricele de transformare<br />
”curente” Q c şi Z c şi apoi aplicarea lor celorlalte blocuri afectate şi matricelor<br />
de transformare Q şi Z sub forma unor înmulţiri cu matrice dense fapt care<br />
poate conduce la o anumită reducere (totuşi puţin semnificativă) a eficienţei.<br />
Datorită procesului iterativ, complexitatea algoritmului depinde de datele de<br />
intrare. Viteza de convergenţă a procesului iterativ este <strong>si</strong>milară cu cea a algoritmului<br />
QR. Evaluările experimentale converg către aprecierea că, în medie, două<br />
iteraţii sunt suficiente pentru a pune în evidenţă o valoare proprie generalizată. În<br />
această <strong>si</strong>tuaţie, pentru fascicole de ordin superior (e.g. n > 100) se poate aprecia<br />
că algoritmul QZ are o complexitate O(n 3 ). Evaluări mai fine sunt date la varianta<br />
reală.<br />
Utilizarea exclu<strong>si</strong>vă a transformărilor unitare conferă algoritmului QZ1 o foarte<br />
bună stabilitate numerică. Se arată că forma Schur generalizată (S,T) calculată<br />
este forma Schur generalizată exactă a unei perechi foarte apropiate de perechea<br />
(A,B) dată. Concret, avem<br />
S = ˜Q H (A+E)˜Z,<br />
T = ˜Q H (B +F)˜Z,<br />
unde ˜Q, ˜Z sunt matrice riguros unitare, iar matricele de perturbaţie E şi F satisfac<br />
condiţiile<br />
‖E‖ 2<br />
≈ ε M ‖A‖ 2<br />
, ‖F‖ 2<br />
≈ ε M ‖B‖ 2<br />
,<br />
cu ǫ precizia maşinii ţintă. Pentru con<strong>si</strong>deraţii suplimentare vezi secţiunea 6.5. ✸<br />
C. Un pas QZ pentru matrice reale<br />
În cazul perechilor (H,T) reale un spor important de eficienţă se obţine utilizând o<br />
aritmetică realăcare impune utilizarea une strategii a paşilor dubli. În conformitate<br />
cu cele arătate în capitolul 4, un pas dublu QR cu deplasare implicită pentru<br />
matricea G k = H k T −1<br />
k<br />
constă în efectuarea următoarelor operaţii:<br />
1. Se calculează prima coloană q (k)<br />
1 a matricei Q k ce defineşte transformarea<br />
ortogonală aferentă unui pas dublu QR cu deplasare explicită.
6.3. ALGORITMUL QZ 475<br />
2. Se determină o matrice ortogonală U astfel încât prima coloană a<br />
lui U T să fie q (k)<br />
1 , i.e. UT e 1 = q (k)<br />
1 .<br />
3. Se calculează matricea F = U T G k U (a cărei structură nu mai este<br />
superior Hessenberg).<br />
4. Se aplicăalgoritmulHQde reducereamatriceiF la formasuperior<br />
Hessenberg rezultând matricea succesor G k+2 = H k+2 T −1<br />
k+2 .<br />
Dacă matricea superior Hessenberg G k este ireductibilă, atunci, conform teoremei<br />
4.9, rezultatul G k+2 al aplicării schemei de calcul de mai sus va fi esenţial<br />
acelaşi cu cel dat de un pas dublu QR cu deplasare explicită. Notăm şi aici,<br />
pentru <strong>si</strong>mplificare, (H k ,T k ) not<br />
= (H,T) perechea curentă a şirului QZ, presupusă<br />
ireductibilă, (H k+2 ,T k+2 ) not<br />
= (H ′ ,T ′ ) perechea succesor în cazul utilizării pasului<br />
dublu precum şi G = HT −1 , G ′ = H ′ (T ′ ) −1 . Urmând etapele din schema de calcul<br />
de mai sus vom transfera transformările matricei G perechii (H,T). Mai mult,<br />
exploatând corespunzător avantajele structurale date de forma Hessenberg generalizată<br />
a perechilor iniţială şi finală, complexitatea pasului dublu va fi O(n 2 ), ceea ce<br />
în economia întregului algoritm este esenţial, reducând complexitatea algoritmului<br />
QZ cu deplasare implicită la cea a variantei cu deplasare explicită şi a<strong>si</strong>gurând,<br />
în acelaşi timp, po<strong>si</strong>bilitatea utilizării exclu<strong>si</strong>ve a aritmeticii reale. Detaliile sunt<br />
prezentate în continuare.<br />
1. Dacă notăm cu µ 1 şi µ 2 valorile <strong>proprii</strong> (po<strong>si</strong>bil complexe) ale matricei<br />
G(n−1 : n,n−1 : n), atunci în expre<strong>si</strong>a primei coloane a matricei de transformare<br />
Q k<br />
not<br />
= Q acestea apar sub forma sumei şi produsului (întotdeauna reale). Ţinânduse<br />
seama de structura Hessenberg a matricelor G şi H, vom calcula elementele<br />
blocului matriceal X = G(n−1 : n,n−2 : n) ∈ IR 2×3 ca soluţie a <strong>si</strong>stemului<br />
triunghiular<br />
XT(n−2: n,n−2 : n) = H(n−1 : n,n−2 : n),<br />
care se rezolvă recurent, pe linii (exerciţiu pentru cititor)<br />
⎧<br />
x 11 = h n−1,n−2<br />
t n−2,n−2<br />
⎪⎨<br />
x 12 = h n−1,n−1 −t n−2,n−1 x 11<br />
t n−1,n−1<br />
x 13 = h n−1,n −t n−2,n x 11 −t n−1,n x 12<br />
t n,n<br />
x 21 = 0<br />
x 22 = h n,n−1<br />
t n−1,n−1<br />
(6.60)<br />
⎪⎩<br />
x 23 = h nn −t n−1,n x 22<br />
t n,n<br />
,<br />
după care valorile căutate ale sumei şi produsului se obţin imediat<br />
{<br />
σ def<br />
= µ 1 +µ 2 = x 12 +x 23 ,<br />
π def<br />
= µ 1 µ 2 = x 12 x 23 −x 13 x 22 .<br />
(6.61)
476 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Dacă µ 1 ,µ 2 ∉ λ(G), i.e. matricea M = (G − µ 1 I n )(G − µ 2 I n ) = G 2 − σG + πI n<br />
not<br />
este ne<strong>si</strong>ngulară, atunci prima coloană a matricei de transformare Q k = Q (încă<br />
un exerciţiu pentru cititor) este<br />
⎡<br />
h 11<br />
( h 11<br />
− h 21t 12<br />
−σ)+ h ⎤<br />
21h 12<br />
+π<br />
t 11 t 11 t 11 t 22 t 11 t 22 h 21<br />
( h 11<br />
+ h 22<br />
− h 21t 12<br />
−σ)<br />
t 11 t 11 t 22 t 11 t 22 q 1 = Qe 1 = ρ<br />
h 21 h 32<br />
, (6.62)<br />
t 11 t 22<br />
0<br />
⎢<br />
⎥<br />
⎣ . ⎦<br />
0<br />
unde ρ este un factor real de normare. Elementele nenule w = q 1 (1 : 3)/ρ ale lui<br />
q 1 /ρ, i.e. ⎡<br />
h 11<br />
( h 11<br />
− h 21t 12<br />
−σ)+ h ⎤<br />
21h 12<br />
+π<br />
t 11 t 11 t 11 t 22 t 11 t 22 h 21<br />
w =<br />
( h 11<br />
+ h 22<br />
− h 21t 12<br />
−σ)<br />
, (6.63)<br />
t<br />
⎢ 11 t 11 t 22 t 11 t 22 ⎥<br />
⎣ h 21 h 32<br />
⎦<br />
t 11 t 22<br />
definesc vectorul de deplasare implicită asociat pasului dublu QZ.<br />
2. Matricea ortogonală U de la instrucţiunea 2 a schemei de calcul de mai sus<br />
este, cel mai recomandat, un reflector (real) având structura<br />
[ ]<br />
Ũ 0<br />
U = , (6.64)<br />
0 I n−3<br />
cu Ũ ∈ IR3×3 reflectorul care a<strong>si</strong>gură<br />
Ũw = νe 1 , ν ∈ IR. (6.65)<br />
3. Se constată şi aici imediat că aplicarea transformării de asemănare de la<br />
punctul 3 al schemei de calcul de mai sus este echivalentă cu aplicarea transformării<br />
U = U T ambelor matrice din perechea (H,T). Într-adevăr, dacă ( ˜H, ˜T) =<br />
= (U T H,U T T), atunci ˜H ˜T−1 = U T HT −1 U = U T GU = ˜G. Alterarea structurii<br />
superior Hessenberg a matricei G în poziţiile (3,1), (4,1), (4,2) se transferă în alterarea<br />
structurală a perechii (H,T). Concret, datorită structurii (6.64) a lui U,<br />
structura matricei ˜H va diferi de o structură superior Hessenberg prin elementul<br />
nenul din poziţia (3,1) iar structura matricei ˜T va diferi de o structură superior<br />
triunghiulară prin elementele nenule din poziţiile (2,1), (3,1) şi (3,2).<br />
4. Restaurarea structurii Hessenberg generalizate a perechii ( ˜H, ˜T) printr-o<br />
transformareortogonalădeechivalenţăpoatefia<strong>si</strong>milatăcurefacereaformeiHessenberg<br />
a matricei ˜G. Motivaţia este aceeaşi cu cea de la iteraţia QZ complexă. Concret,<br />
readucerea perechii alterate la forma Hessenberg generalizată se face cu algoritmul<br />
HTQZ adaptat, pentru a<strong>si</strong>gurareaeficienţei necesare, la <strong>si</strong>tuaţia structurală
6.3. ALGORITMUL QZ 477<br />
actuală. Pentru adaptarea algoritmului HTQZ vom utiliza reflectori ”modificaţi”<br />
pe care îi definim prin expre<strong>si</strong>a cunoscută<br />
V = I n − vvT<br />
β , β = 1 2 ‖v‖2 ,<br />
unde vectorul v se calculează astfel încât să se a<strong>si</strong>gure anularea primelor n−1<br />
elemente ale unui vector a ∈ IR n dat 16 , i.e. (Va)(1 : n−1) = 0 (şi, întrucât<br />
reflectorul este o matrice <strong>si</strong>metrică, (a T V)(1 : n−1) = 0). Conform celor prezentate<br />
în capitolul 3, nu este greu de văzut că elementele definitorii ale acestui reflector şi<br />
suprascrierea vectorului a cu Va se calculează economic cu schema:<br />
HM<br />
1. σ = sgn(a n )‖a‖<br />
2. v i = a i , i = 1 : n−1<br />
3. v n = a n +σ<br />
4. β = a n σ<br />
5. a i = 0, i = 1 : n−1<br />
6. a n = −σ<br />
Vom introduce o procedură cu <strong>si</strong>ntaxa<br />
[d,v,β] = Hrm(a)<br />
pentru calculul reflectorilor modificaţi de ordin dat de dimen<strong>si</strong>unea vectorului a<br />
şi calculul vectorului d = Va sau d = aV după cum vectorul argument este un<br />
vector coloană sau un vector linie. Suprascrierea (internă) a lui a cu d se face cu<br />
apelul [a,v,β] = Hrm(a). Procedurile de premultiplicare şi postmultiplicare a unei<br />
matrice cu un reflector modificat sunt identice cu cele care operează cu reflectorii<br />
nemodificaţi, i.e. vom folo<strong>si</strong> procedurile Hrs şi Hrd din tabelul 4.3. De asemenea,<br />
dacă U ∈ IR p×p este un reflector (modificat) vom nota<br />
U (p)<br />
k<br />
=<br />
⎡<br />
⎣ I k−1 0 0<br />
0 U 0<br />
⎤<br />
⎦<br />
0 0 I n−p−k+1<br />
care este, la rândul său, un reflector de ordinul n pe care îl vom numi reflector<br />
(modificat) de ordin n şi indici (k,p).<br />
Cu aceste precizări putem prezenta detaliile adaptării algoritmului HTQZ prin<br />
următoarea schemă de calcul.<br />
HTQZ2<br />
1. Pentru k = 1 : n−3<br />
1. Se calculează reflectorul modificat Z (3)<br />
k<br />
astfel încât<br />
(TZ (3)<br />
k<br />
)(k+2,k : k+1)=0<br />
2. H ← HZ (3)<br />
k<br />
% Apar două elemente nenule în poziţiile (k+3,k : k+1)<br />
16 Prin reflectori ”nemodificaţi” vom întelege pe parcursul acestui capitol reflectorii care aplicaţi<br />
unui vector n-dimen<strong>si</strong>onal anulează ultimele n−1 componente ale acestuia.
478 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
3. T ← TZ (3)<br />
k<br />
% Se anulează elementele T(k+2,k : k+1)<br />
4. Se calculează reflectorul modificat Z (2)<br />
k<br />
astfel încât (TZ (2)<br />
k )(k+1,k)=0<br />
5. H ← HZ (2)<br />
k<br />
6. T ← TZ (2)<br />
k<br />
% Se anulează elementul T(k+1,k)<br />
7. Se calculează reflectorul Q (3)<br />
k+1<br />
astfel încât (Q(3)<br />
k+1H)(k+2 : k+3,k) = 0<br />
8. H ← Q (3)<br />
k+1H % Se anulează elementele H(k+2 : k+3,k)<br />
9. T ← Q (3)<br />
k+1T % Apar elemente nenule în poziţiile (k+3,k+1)<br />
şi (k+3,k+1 : k+2)<br />
2. % Ultimele transformări<br />
1. Se calculează reflectorul modificat Z (3)<br />
n−2 astfel încât<br />
(TZ (3)<br />
n−2 )(n,n−2 : n−1) = 0<br />
2. H ← HZ (3)<br />
n−2<br />
3. T ← TZ (3)<br />
n−2<br />
% Se anulează elementele T(n,n−2: n−1)<br />
4. Se calculează reflectorul modificat Z (2)<br />
n−2<br />
5. H ← HZ (2)<br />
n−2<br />
6. T ← TZ (2)<br />
n−2<br />
astfel încât (TZ(2) n−2 )(n−1,n−2)= 0<br />
% Se anulează elementul T(n−1,n−2)<br />
astfel încât (Q(2) n−1 H)(n,n−2) = 0<br />
H % Se anulează elementul H(n,n−2)<br />
% Apare un element nenul în poziţia (n,n−1) a lui T<br />
7. Se calculează reflectorul Q (2)<br />
n−1<br />
8. H ← Q (2)<br />
n−1<br />
9. T ← Q (2)<br />
n−1 T<br />
10. Se calculează reflectorul modificat Z (2)<br />
n−1<br />
11. H ← HZ (2)<br />
n−1<br />
12. T ← TZ (2)<br />
n−1<br />
% Se anulează elementul T(n,n−1)<br />
astfel încât (TZ(2) n−2 )(n,n−1)=0<br />
Această schemă realizează deplasarea elementelor alterante ale structurilor matricelor<br />
H şi T de-a lungul unor trasee paralele cu diagonala principală până la<br />
eliminarea lor din matricele respective, utilizând în acest scop secvenţe de reflectori.<br />
Pentru exemplificare prezentăm prima parte a evoluţiei structurale a perechii<br />
(H,T) în cazul n = 5.<br />
⎡<br />
(H,T) ← (UH,UT) = (<br />
⎢<br />
⎣<br />
× × × × ×<br />
× × × × ×<br />
+ × × × ×<br />
0 0 × × ×<br />
0 0 0 × ×<br />
⎤ ⎡<br />
⎥<br />
⎦ , ⎢<br />
⎣<br />
× × × × ×<br />
+ × × × ×<br />
+ + × × ×<br />
0 0 0 × ×<br />
0 0 0 0 ×<br />
⎤<br />
⎥<br />
⎦ ),<br />
(H,T)←(HZ (3)<br />
1 ,TZ(3)<br />
⎡<br />
1 )=( ⎢<br />
⎣<br />
× × ×<br />
× × ×<br />
+ × ×<br />
+ + ×<br />
0 0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
⎤ ⎡<br />
,<br />
⎥ ⎢<br />
⎦ ⎣<br />
× × ×<br />
+ × ×<br />
∅ ∅ ×<br />
0 0 0<br />
0 0 0<br />
× ×<br />
× ×<br />
× ×<br />
× ×<br />
0 ×<br />
⎤<br />
),<br />
⎥<br />
⎦
6.3. ALGORITMUL QZ 479<br />
(H,T)←(HZ (2)<br />
1 ,TZ(2)<br />
⎡<br />
1 )=( ⎢<br />
⎣<br />
× ×<br />
× ×<br />
+ ×<br />
+ +<br />
0 0<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
0 × ×<br />
⎤ ⎡<br />
,<br />
⎥ ⎢<br />
⎦ ⎣<br />
× ×<br />
∅ ×<br />
0 0<br />
0 0<br />
0 0<br />
× × ×<br />
× × ×<br />
× × ×<br />
0 × ×<br />
0 0 ×<br />
⎤<br />
),<br />
⎥<br />
⎦<br />
(H,T)←(Q (3)<br />
2 H,Q(3)<br />
⎡<br />
2 T)=( ⎢<br />
⎣<br />
× × × × ×<br />
× × × × ×<br />
∅ × × × ×<br />
∅ + × × ×<br />
0 0 0 × ×<br />
⎤ ⎡<br />
,<br />
⎥ ⎢<br />
⎦ ⎣<br />
× × × × ×<br />
0 × × × ×<br />
0 + × × ×<br />
0 + + × ×<br />
0 0 0 0 ×<br />
⎤<br />
),<br />
⎥<br />
⎦<br />
etc. Se observă că s-a obţinut deplasarea cu o poziţie spre dreapta jos a celor două<br />
grupuri de elemente alterante, proces care poate fi continuat până la eliminarea lor.<br />
Aplicarea reflectorului U = U T care a<strong>si</strong>gură prima coloană impusă a matricei<br />
de transformare corespunzătoare pasului QR curent pentru matricea HT −1 şi apoi<br />
refacerea structurii Hessenberg generalizate cu ajutorul variantei adaptate a algoritmului<br />
HTQZ, dată de schema de calcul de mai sus, conduc la obţinerea perechii<br />
succesor<br />
H ← H ′ = Q (2)<br />
n−1 Q(3) n−2···Q(3) 1 UHZ(3) 1 Z(2) 1 ···Z (3)<br />
n−2 Z(2) n−2 Z(2) n−1<br />
T ← T ′ = Q (2)<br />
n−1 Q(3) n−2···Q(3) 1 UTZ(3) 1 Z(2) 1 ···Z (3)<br />
n−2 Z(2) n−2 Z(2) n−1<br />
(6.66)<br />
dinşirulQZ.PrimacoloanăamatriceiU nuesteafectatădemultiplicarealadreapta<br />
cu matricea Q (3)<br />
1 ···Q (3)<br />
n−2 Q(2) n−1 .<br />
Ţinând seama de (6.61), (6.63) calculul economic al vectorului de deplasare<br />
implicită se poate face cu următorul algoritm.<br />
Algoritmul 6.6 (VD2 – <strong>Calculul</strong> vectorului de deplasare implicită<br />
pentru un pas dublu QZ) (Date o pereche (H,T) ∈ IR n×n × IR n×n în<br />
formă Hessenberg generalizată cu T ne<strong>si</strong>ngulară algoritmul calculează<br />
vectorul w ∈ R 3 de deplasare implicită pentru un pas dublu QZ.)<br />
1. Se calculează σ şi π cu relaţia (6.61).<br />
2. α = h 11<br />
, β = h 22<br />
, γ = h 21<br />
, δ = γ , η = α−δt 12 −σ<br />
t 11 t 22 t 11 t 22<br />
⎡<br />
3. w = ⎣ αη +δh ⎤<br />
12 +π<br />
γ(β +η) ⎦<br />
δh 32<br />
Comentarii. Sintaxa de apel a a acestui algoritm va fi<br />
w = VD2(H,T),<br />
iar complexitatea sa rămâne, evident, O(1).<br />
✸
480 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Suntem în măsură să prezentăm acum algoritmul formal de implementare a<br />
unui pas dublu QZ cu deplasare implicită. Sunt utilizate procedurile de calcul<br />
al reflectorilor cuprinse în tabelul 4.3, la care se adaugă procedurile introduse în<br />
această secţiune.<br />
Algoritmul 6.7 (IT QZ2 – Un pas dublu QZ cu deplasare implicită)<br />
(Date o pereche (H,T) ∈ IR n×n × IR n×n în formă Hessenberg<br />
generalizată ireductibilă, vectorul de deplasare implicită w ∈ IR 3<br />
şi matricele ortogonale Q,Z ∈ IR n×n , algoritmul suprascrie perechea<br />
(H,T) cu perechea succesor (H ′ ,T ′ ) = (Q T k HZ k,Q T k TZ k) din şirul QZ.<br />
Opţional, se actualizează matricele de transformare Q şi Z. Opţiunea<br />
se exprimă cu ajutorul variabilei logice opt de tipul şir de caractere care<br />
poate lua valorile ′ da ′ sau ′ nu ′ . Dacă opt = ′ nu ′ , algoritmul returnează<br />
matricele Q şi Z nemodificate.)<br />
1. [w,u,β] = Hr(w)<br />
2. H(1:3,:) = Hrs(u,β,H(1:3,:))<br />
3. T(1:3,:) = Hrs(u,β,T(1:3,:))<br />
4. Dacă opt = ′ da ′ atunci Q(:,1:3) = Hrd(Q(:,1:3),u,β)<br />
5. % Refacerea structurii superior Hessenberg generalizate<br />
Pentru k = 1 : n−3<br />
1. [T(k+2,k : k+2),u,β] = Hrm(T(k+2,k : k+2))<br />
2. H(1 : k+3,k : k+2) = Hrd(H(1 : k+3,k : k+2),u,β)<br />
3. T(1 : k+1,k : k+2) = Hrd(T(1 : k+1,k : k+2),u,β)<br />
4. Dacă opt = ′ da ′ atunci<br />
Z(:,k : k+2) = Hrd(Z(:,k : k+2),u,β)<br />
5. [T(k+1,k : k+1),u,β] = Hrm(T(k+1,k : k+1))<br />
6. H(1 : k+3,k : k+1) = Hrd(H(1 : k+3,k : k+1),u,β)<br />
7. T(1 : k,k : k+1) = Hrd(T(1 : k,k : k+1),u,β)<br />
8. Dacă opt = ′ da ′ atunci<br />
Z(:,k : k+1) = Hrd(Z(:,k : k+1),u,β)<br />
9. [H(k+1 : k+3,k),u,β] = Hr(H(k+1 : k+3,k))<br />
10. H(k+1 : k+3,k+1 : n) = Hrs(u,β,H(k+1 : k+3,k+1 : n))<br />
11. T(k+1 : k+3,k+1 : n) = Hrs(u,β,T(k+1 : k+3,k+1 : n))<br />
12. Dacă opt = ′ da ′ atunci<br />
Q(:,k+1 : k+3) = Hrd(Q(:,k+1 : k+3),u,β)<br />
6. % Ultimele transformări<br />
1. [T(n,n−2: n),u,β] = Hrm(T(n,n−2: n))<br />
2. H(:,n−2: n) = Hrd(H(:,n−2 : n),u,β)<br />
3. T(1 : n−1,n−2: n) = Hrd(T(1 : n−1,n−2: n),u,β)<br />
4. Dacă opt = ′ da ′ atunci<br />
Z(:,n−2: n) = Hrd(Z(:,n−2 : n),u,β)<br />
5. [T(n−1,n−2: n−1),u,β] = Hrm(T(n−1,n−2: n−1))
6.3. ALGORITMUL QZ 481<br />
6. H(:,n−2: n−1) = Hrd(H(:,n−2 : n−1),u,β)<br />
7. T(1 : n−2,n−2: n−1) = Hrd(T(1 : n−2,n−2: n−1),u,β)<br />
8. Dacă opt = ′ da ′ atunci<br />
Z(:,n−2: n−1) = Hrd(Z(:,n−2 : n−1),u,β)<br />
9. [H(n−1 : n,n−2),u,β] = Hr(H(n−1 : n,n−2))<br />
10. H(n−1 : n,n−1 : n) = Hrs(u,β,H(n−1 : n,n−1 : n))<br />
11. T(n−1: n,n−1 : n) = Hrs(u,β,T(n−1: n,n−1 : n))<br />
12. Dacă opt = ′ da ′ atunci<br />
Q(:,n−1: n) = Hrd(Q(:,n−1 : n),u,β)<br />
13. [T(n,n−1: n),u,β] = Hrm(T(n,n−1: n))<br />
14. H(:,n−1: n) = Hrd(H(:,n−1 : n),u,β)<br />
15. T(1 : n−1,n−1: n) = Hrd(T(1 : n−1,n−1: n),u,β)<br />
16. Dacă opt = ′ da ′ atunci<br />
Z(:,n−1: n) = Hrd(Z(:,n−1 : n),u,β)<br />
Comentarii. Sintaxa de apel a algoritmului de mai sus va fi<br />
[H,T,Q,Z] = IT QZ2(H,T,Q,Z,w,opt).<br />
ComplexitateaunuipasdubluQZînimplementareademaisusesteO(n 2 ). Concret,<br />
pentru execuţia algoritmului 6.7 sunt necesari N op ≈ 32n 2 flopi fără acumularea<br />
transformărilor,N op ′ ≈ 20n2 pentru calculul matricei Z, N op ′′ ≈ 12n2 pentru calculul<br />
matricei Q, la care se adaugă cele 2(n−1) extrageri de radical. ✸<br />
D. Algoritmul QZ pentru matrice reale<br />
Algoritmul QZ pentru matrice reale reproduce structura algoritmului omonim pentru<br />
matrice complexe cu următoarele aspecte specifice:<br />
a) în faza iterativă monitorizarea structurii matricei H are loc cu evidenţierea<br />
blocurilor diagonale 2×2;<br />
b) faza iterativă a algoritmului QZ se termină în momentul în care ordinul<br />
submatricii H 22 scade la cel mult 2, i.e. q devine mai mare decât n−3.<br />
c) după terminarea fazei iterative, algoritmul se completează cu reducerea la<br />
forma superior triunghiulară a perechilor de blocuri diagonale 2×2 care au valori<br />
<strong>proprii</strong> generalizate reale.<br />
Rezolvarea problemelor ridicate de primele două aspecte este imediată. În ceea<br />
ce priveştepunctul c), triangularizareaperechilorde blocuri diagonale2×2cu valori<br />
<strong>proprii</strong> reale se face în felul următor.<br />
Fie perechea ( ˜H, ˜T) ∈ IR 2×2 ×IR 2×2 cu ˜h 21 ≠ 0 şi valorile <strong>proprii</strong> generalizate<br />
reale λ 1 şi λ 2 . Atunci<br />
[ ]<br />
λ1˜t 22 −˜h 22<br />
v =<br />
(6.67)<br />
˜h 21<br />
este un vector propriu generalizat asociat lui λ 1 , i.e. ˜H v = λ1 ˜T v şi S = Imv<br />
este un subspaţiu de deflaţie al fascicolului ( ˜H, ˜T). Matricele ˜Q şi ˜Z care definesc
482 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
transformarea ortogonală de echivalenţă ce aduce perechea ( ˜H, ˜T) la forma Schur<br />
generalizată se pot construi procedând ca în demonstraţia propoziţiei 6.2. Concret,<br />
(vezi exerciţiul 6.9), ˜Z este reflectorul care a<strong>si</strong>gură (˜Zv)(2) = 0, iar apoi ˜Q este<br />
reflectorul care a<strong>si</strong>gură (˜Q T (˜T ˜Z(:,1))(2) = 0.<br />
Dacă blocul diagonal ce trebuie triangularizat se află pe liniile şi coloanele k şi<br />
k+1, atunci rezultatul dorit se obţine aplicând perechii (H,T), de ordinul n, transformarea<br />
ortogonală de echivalenţă definită de matricele Q = diag(I k−1 , ˜Q,I n−k−1 )<br />
şi diag(I k−1 , ˜Z,I n−k−1 ).<br />
În vedereaunei scrierimai concise a algoritmuluiQZ prezentămaici un algoritm<br />
preliminar care procesează perechea bloc-diagonală 2×2 aflată în poziţia (k,k+1).<br />
Algoritmul 6.8 (TRID2g -Triangularizarea unei perechi de blocuri<br />
diagonale 2×2) (Date o pereche (S,T) ∈ IR n×n ×IR n×n , cu S în formă<br />
cva<strong>si</strong>-superior triunghiulară şi T superior triunghiulară ne<strong>si</strong>ngulară şi<br />
întregul k ∈ 1:n−1, algoritmul testează dacă perechea de blocuri diagonale<br />
(S(k: k+1,k: k+1),T(k: k+1,k: k+1)) are valorile <strong>proprii</strong> generalizate<br />
reale şi, în caz afirmativ, calculează triangularizarea ortogonală<br />
a perechii bloc-diagonale vizate, rezultatul suprascriind perechea (S,T).<br />
De asemenea, algoritmul returnează elementele definitorii (u Q ,β Q ) şi<br />
(u Z ,β Z ) ale celor doi reflectori calculaţi. În caz contrar perechea (S,T)<br />
rămâne nemodificată şi, pentru identificarea acestei <strong>si</strong>tuaţii, se returnează<br />
β Z = 0.)<br />
1. β Z = 0<br />
2. α = t k,k t k+1,k+1 , β = s k,k t k+1,k+1 + s k+1,k+1 t k,k − s k+1,k t k,k+1 ,<br />
γ = s k,k s k+1,k+1 −s k,k+1 s k+1,k , ∆ = β 2 −4αγ<br />
3. Dacă ∆ ≥ 0 atunci<br />
1. λ 1 = (β +sgn(β) √ ∆)/2α<br />
[ ]<br />
λ1 t k+1,k+1 −s k+1,k+1<br />
2. v =<br />
s k+1,k<br />
3. [v,u Z ,β Z ] = Hr(v)<br />
4. S(1 : k+1,k:k+1) = Hrd(S(1 : k+1,k:k+1),u Z ,β Z )<br />
5. T(1 : k+1,k:k+1) = Hrd(T(1 : k+1,k:k+1),u Z ,β Z )<br />
6. [T(k:k+1,k),u Q ,β Q ] = Hr(T(k:k+1,k))<br />
7. S(k:k+1,k:n) = Hrs(u Q ,β Q ,S(k: k+1,k:n))<br />
8. S(k+1,k) = 0 % zeroul calculat se setează la un zero efectiv<br />
9. T(k:k+1,k+1:n) = Hrs(u Q ,β Q ,T(k: k+1,k+1:n))<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
iar complexitatea sa este O(n).<br />
[S,T,u Q ,β Q ,u Z ,β Z ] = TRID2g(S,T,k),<br />
Cu acesteprecizărişi ţinând seamade aspectelecomune cu cazulcomplexputem<br />
scrie algoritmul QZ standard cu pas dublu, cu deplasare implicită, pentru calculul<br />
formei Schur reale generalizate.<br />
✸
6.3. ALGORITMUL QZ 483<br />
Algoritmul 6.9 (QZ2 – Algoritmul QZ cu paşi dubli şi deplasări<br />
implicite) (Dateunfascicolmatricealdefinit deperechea(A,B)∈IR n×n ×<br />
×IR n×n , matricele ortogonale Q,Z ∈ IR n×n şi un nivel de toleranţă tol<br />
pentru anularea elementelor subdiagonale, algoritmul calculează forma<br />
Schur reală generalizată (A,B) ← (S,T) = (˜Q T A˜Z, ˜Q T B ˜Z) a perechii<br />
(A,B). Toate calculele se efectuează pe loc, în locaţiile de memorie<br />
ale tablourilor A şi B. Opţional, se acumuleză transformările prin actualizarea<br />
matricelor Q ← Q˜Q şi Z ← Z ˜Z. Opţiunea se exprimă cu<br />
ajutorul variabilei logice opt de tipul şir de caractere care poate lua<br />
valorile ′ da ′ sau ′ nu ′ . Dacă nu se doreşte acumularea transformărilor,<br />
matricele Q şi Z se returnează nemodificate.)<br />
1. % Reducerea la forma Hessenberg generalizată<br />
1. [A,B,Q,Z] =HTQZr(A,B,Q,Z,opt)<br />
2. % Deplasarea zerourilor diagonale ale matricei B şi evidenţierea<br />
<strong>valorilor</strong> <strong>proprii</strong> infinite.<br />
1. [A,B,Q,Z] =DZr(A,B,Q,Z,opt)<br />
3. % Faza iterativă<br />
1. p = 0, q = 0, cont it = 0.<br />
2. C^at timp q < n<br />
1. % Anularea elementelor subdiagonale neglijabile<br />
Pentru i = p+1 : n−q −1<br />
1. Dacă |a i+1,i | ≤ tol(|a ii |+|a i+1,i+1 |) atunci a i+1,i = 0<br />
2. % Determinarea lui q<br />
1. continuă = ′ da ′<br />
2. C^at timp continuă = ′ da ′<br />
1. Dacă q ≥ n−2 atunci break<br />
2. Dacă a n−q,n−q−1 = 0 atunci<br />
1. q ← q +1<br />
2. cont it = 0<br />
altfel<br />
1. Dacă a n−q−1,n−q−2 = 0<br />
atunci<br />
1. q ← q +2<br />
2. cont it = 0<br />
altfel continuă = ′ nu ′ .<br />
3. % Terminarea normală a fazei iterative<br />
Dacă q ≥ n−2 atunci break<br />
4. % Determinarea lui p<br />
1. p = n−q −1<br />
2. C^at timp a p+1,p ≠ 0<br />
1. p ← p−1<br />
2. Dacă p = 0 atunci break
484 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
5. % Iteraţia curentă<br />
1. k = p+1, l = n−q<br />
2. w = VD2(A(k:l,k:l),B(k:l,k:l))<br />
3. [A(k:l,k:l),B(k:l,k:l),Q c ,Z c ] =<br />
IT QZ2(A(k:l,k:l),B(k:l,k:l),I l−p ,I l−p ,w,opt)<br />
4. 1. Dacă q > 0 atunci<br />
1. A(k:l,l+1:n) = Q c A(k:l,l+1:n)<br />
2. B(k:l,l+1:n) = Q c B(k:l,l+1:n)<br />
5. 1. Dacă p > 0 atunci<br />
1. A(1:p,k:l) = A(1:p,k:l)Z c<br />
2. B(1:p,k:l) = B(1:p,k:l)Z c<br />
6. cont it ← cont it+1<br />
6. Dacă opt=’da’ atunci<br />
1. Q(:,k : l) = Q(:,k : l)Q c<br />
2. Z(:,k : l) = Z(:,k : l)Z c<br />
7. % Terminarea prin eşec a algoritmului<br />
1. Dacă cont it > 30<br />
atunci<br />
1. Tipăreşte ’S-au consumat 30 iteraţii QZ pentru<br />
evidenţierea unui bloc diagonal fără a se atinge<br />
acest obiectiv. Este po<strong>si</strong>bil ca, pentru aceste date<br />
de intrare, algoritmul QZ să nu fie convergent.’<br />
2. Return<br />
4. % Triangularizarea blocurilor 2 × 2 cu valori <strong>proprii</strong> generalizate<br />
reale<br />
1. k = 1<br />
2. C^at timp k < n<br />
1. Dacă a k+1,k = 0 atunci k ← k +1<br />
altfel<br />
1. [A,B,u Q ,β Q ,u Z ,β Z ] =TRID2g(A,B,k)<br />
2. Dacă opt=’da’ şi β Z ≠ 0 atunci<br />
1. Q(:,k:k+1) = Hrd(Q(:,k:k+1),u Q ,β Q )<br />
2. Z(:,k:k+1) = Hrd(Z(:,k:k+1),u Z ,β Z )<br />
3. k ← k +2<br />
Comentarii. În aspectele sale esenţiale, algoritmul de mai sus stă la baza tuturor<br />
programelor profe<strong>si</strong>onale de calcul al <strong>valorilor</strong> <strong>proprii</strong> generalizate ale unui fascicol<br />
matriceal real. Precizările referitoare la aspectele de organizare a algoritmului<br />
făcute la variantacomplexă rămân valabile. În acest sens s-au pastrat identificatorii<br />
variabilelor cu aceeaşi semnificaţie.<br />
Sintaxa de apel este<br />
[S,T,Q,Z] = QZ2(A,B,Q,Z,tol,opt),
6.3. ALGORITMUL QZ 485<br />
perechea (S,T) în FSG putând suprascrie (intern) perechea (A,B).<br />
La fel ca în cazul algoritmului QR, există date de intrare pentru care algoritmul<br />
nuesteconvergent,deşiacestlucruse întâmplăextremderar înpractică. Aici, după<br />
30 de iteraţii fără progresul parametrului structural q se declară eşecul algoritmului<br />
deşi mai există şanse de convergenţă printr-o modificare empirică a vectorului de<br />
deplasare după un număr precizat de iteraţii, e.g. 10 sau 20 (v. cap. 4).<br />
Acceptând evaluarea conform căreia sunt suficiente, în medie, două iteraţii pentru<br />
a pune în evidenţă o valoare proprie generalizată, algoritmul nece<strong>si</strong>tă un număr<br />
de N A op = 30n 3 flopi fără acumularea transformărilor, N Q op = 16n 3 flopi suplimentari<br />
pentru calculul lui Q şi N Z op = 20n 3 flopi pentru acumularea lui Z. Putem, deci,<br />
con<strong>si</strong>dera că pentru fascicole de ordin superior (e.g. n > 100) algoritmul QZ are o<br />
complexitate O(n 3 ).<br />
Şi aici, utilizareaexclu<strong>si</strong>văatransformărilorortogonaleconferăalgoritmuluiQZ<br />
o foarte bună stabilitate numerică. Concret, perechea calculată (S,T) satisface<br />
S = ˜Q T (A+E)˜Z,<br />
T = ˜Q T (B +F)˜Z,<br />
unde ˜Q, ˜Z sunt matrice riguros ortogonale, iar matricele de perturbaţie E şi F<br />
satisfac condiţiile<br />
‖E‖ 2<br />
≈ ε M ‖A‖ 2<br />
, ‖F‖ 2<br />
≈ ε M ‖B‖ 2<br />
.<br />
Pentru con<strong>si</strong>deraţii suplimentare vezi secţiunea 6.5.<br />
✸<br />
∗<br />
∗<br />
∗<br />
Încheiem acestparagrafcu regretullipsei de spaţiu tipograficpentru prezentarea<br />
algoritmilor de calcul al formei diagonale generalizate a fascicolelor hermitice (în<br />
cazulreal,<strong>si</strong>metrice)pozitiv definite. Pentruintroducerea înproblemărecomandăm<br />
rezolvarea exerciţiului 6.10, iar pentru detalii şi indicaţii bibliografice suplimentare<br />
consultarea lucrării [VI].<br />
6.3.4 <strong>Calculul</strong> <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi<br />
Con<strong>si</strong>derămimportantsăprecizămdela începutcă înmulteaplicaţiivectorii<strong>proprii</strong><br />
generalizaţi pot fi înlocuiţi cu succes de către vectorii Schur corespunzători, i.e. de<br />
către coloanele matricelor de transformare Z şi Q.<br />
Dacă se doreşte totuşi determinarea explicită a <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi<br />
aceştia pot fi calculaţi, după execuţia algoritmului QZ corespunzător, în două<br />
modalităţi:<br />
a) prin rezolvarea <strong>si</strong>stemelor liniare <strong>si</strong>ngulare corespunzătoare;<br />
b) prin câteva iteraţii (teoretic, într-o <strong>si</strong>ngură iteraţie) ale metodei puterii inverse<br />
generalizate.<br />
Prezentăm succint prima variantă pentru cazul complex (pentru cazul real vezi<br />
exerciţiul 6.11). Un vector propriu generalizat x k ∈ IC n , asociat valorii <strong>proprii</strong> generalizate<br />
finite λ k = s kk /t kk este un vector nenul care satisface <strong>si</strong>stemul <strong>si</strong>ngular<br />
Ax k = λ k Bx k . (6.68)
486 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
Ţinând seama de faptul că (A,B) = (QSZ H ,QTZ H ), vectorul x k se calculează cu<br />
relaţia<br />
x k = Zy, (6.69)<br />
unde y este o soluţie nenulă a <strong>si</strong>stemului <strong>si</strong>ngular triunghiular<br />
t kk Sy = s kk Ty. (6.70)<br />
Dacă λ k este o valoare proprie distinctă, atunci soluţiile nenule ale <strong>si</strong>stemului (6.70)<br />
au structura<br />
y = [ỹ T α0 ...0] T , ỹ ∈ IC k−1 , (6.71)<br />
unde α este un scalar nenul altfel arbitrar, e.g. α = 1. Cu această alegere a lui α<br />
din (6.70) rezultă că ỹ este soluţia <strong>si</strong>stemului triunghiular ne<strong>si</strong>ngular<br />
(t kk S(1 : k−1,1 : k−1)−s kk T(1 : k−1,1 : k−1))ỹ = s kk T(1 : k−1,k)−t kk S(1 : k−1,k).<br />
(6.72)<br />
Cu ỹ astfel obţinut vectorul propriu generalizat x k se obţine din (6.69) cu relaţia<br />
x k = Z(:,1 : k−1)ỹ +Z(:,k). (6.73)<br />
În <strong>si</strong>tuaţia încarevaloareaproprienu este distinctă, calculul se poateprocedafie<br />
extinzând ideile din <strong>si</strong>tuaţia corespunzătoare din cazul calculului <strong>vectorilor</strong> <strong>proprii</strong><br />
ordinari, fie apelând la o ”grupare” a <strong>valorilor</strong> <strong>proprii</strong> generalizate identice prin<br />
tehnici de ordonare care fac obiectul secţiunii următoare.<br />
6.4 Forma Schur generalizată ordonată.<br />
<strong>Calculul</strong> subspaţiilor de deflaţie<br />
Conceptul de subspaţiu de deflaţie a fost introdus prin definiţia 6.2 şi folo<strong>si</strong>t pentru<br />
a demonstra po<strong>si</strong>bilitatea reducerii unei perechi (A,B) ∈ IC n×n × IC n×n , prin<br />
transformări de echivalenţă, la forma Schur generalizată.<br />
Reciproc, fie un fascicol regulat, definit de o pereche (A,B) ∈ IC n×n ×IC n×n şi<br />
forma sa Schur generalizată (S,T) cu următoarele partiţii ale matricelor S şi T<br />
k n−k<br />
k n−k<br />
{}}{ {}}{<br />
{}}{ {}}{<br />
[ ] [ ]<br />
S = Q H S11 S<br />
AZ = 12 }k<br />
0 S 22 }n−k , T = T11 T QH BZ = 12 }k<br />
0 T 22 }n−k .<br />
(6.74)<br />
Fie, de asemenea, partiţiile corespondente ale matricelor unitare de transformare<br />
Q =<br />
k n−k<br />
{}}{ {}}{<br />
[ ]<br />
Q1 Q 2<br />
, Z =<br />
k n−k<br />
{}}{ {}}{<br />
[ ]<br />
Z1 Z 2<br />
. (6.75)<br />
Dacă, acum, con<strong>si</strong>derăm S = ImZ 1 , atunci V 1<br />
def<br />
= AS = Im(AZ 1 ) = Im(QSZ H Z 1 )<br />
de unde, ţinând seama de relaţiile (6.74), (6.75), precum şi de faptul că Z H 1 Z 1 = I k ,
6.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 487<br />
Z2 HZ 1 = 0, rezultă<br />
[ ][<br />
S11 S<br />
V 1 = Im([Q 1 Q 2 ] 12 Z<br />
H<br />
1<br />
0 S 22 Z2<br />
H<br />
]<br />
Z 1 ) = Im(Q 1 S 11 ) ⊆ ImQ 1 ,<br />
cu egalitate în ultima relaţie dacă şi numai dacă S 11 este ne<strong>si</strong>ngulară. În acest din<br />
urmă caz coloanele lui Q 1 formează o bază unitară a lui V 1 . Absolut analog avem<br />
def<br />
V 2 = BS = Im(BZ 1 ) = Im(QTZ H Z 1 ) de unde rezultă<br />
V 2 = Im(Q 1 T 11 ) ⊆ ImQ 1 ,<br />
cu egalitate în ultima relaţie dacă şi numai dacă T 11 este ne<strong>si</strong>ngulară.<br />
În consecinţă,<br />
V def<br />
= AS +BS = V 1 +V 2 ⊆ ImQ 1 . (6.76)<br />
cu egalitate în ultima relaţie dacă una din matricele S 11 sau T 11 este ne<strong>si</strong>ngulară.<br />
În toate <strong>si</strong>tuaţiile avem<br />
dimV ≤ dimS (6.77)<br />
ceea ce înseamnă, conform definiţiei 6.2, că S = ImZ 1 este un un subspaţiu de<br />
deflaţie al fascicolului matriceal definit de perechea (A,B), subspaţiu pe care îl asociem,<br />
în mod natural, cu setul de valori <strong>proprii</strong> generalizate λ(S 11 ,T 11 ) ⊂ λ(A,B).<br />
În cazul real, toate con<strong>si</strong>deraţiile de mai sus rămân valabile cu <strong>si</strong>ngurul amendament<br />
că subspaţiile de deflaţie reale ale unui fascicol real se asociază întotdeauna<br />
unor seturi <strong>si</strong>metrice de valori <strong>proprii</strong> generalizate 17 fapt indus de po<strong>si</strong>bilitatea<br />
unor partiţii de forma (6.74) unde, de data aceasta, S este în formă Schur reală.<br />
Ţinând seama de cele de mai sus, un subspaţiu de deflaţie al unui fascicol (A,B)<br />
este complet definit de un set de valori <strong>proprii</strong> generalizate, iar calculul său (i.e.<br />
calculul unei baze ortogonale) se reduce, în definitiv, la obţinerea unei forme Schur<br />
generalizate (S,T) = (Q H AZ,Q H BZ) în care setul de valori <strong>proprii</strong> precizat coincide<br />
cu spectrul de valori <strong>proprii</strong> al subfascicolului lider principal de dimen<strong>si</strong>une<br />
corespunzătoare. O dată obţinută această formă Schur, baza căutată este dată de<br />
primele coloane ale matricei Z. Prin urmare, după aplicarea algoritmului QZ şi<br />
obţinerea unei prime forme Schur, în care perechile diagonale nu au o ordine predeterminată,<br />
calculul unui subspaţiu de deflaţie se reduce la ordonarea perechilor<br />
diagonale (i.e. aducerea în primele poziţii diagonale a <strong>valorilor</strong> <strong>proprii</strong> vizate), prin<br />
transformări unitare de echivalenţă, şi actualizarea matricei de transformare Z.<br />
La fel ca în cazul <strong>valorilor</strong> <strong>proprii</strong> ordinare, mecanismul de ordonare a formei<br />
Schur generalizate se va baza pe procedurile de permutare a doua perechi (de<br />
blocuri, în cazul real) diagonale adiacente.<br />
6.4.1 Ordonarea formei Schur generalizate (complexe)<br />
Vom con<strong>si</strong>dera mai întâi cazul complex. Fie un fascicol matriceal de ordinul doi<br />
(S,T) ∈ IC 2×2 ×IC 2×2 în formă Schur generalizată cu valorile <strong>proprii</strong> distincte, i.e.<br />
17 Reamintim că prin set <strong>si</strong>metric înţelegem o mulţime numerică în care elementele complexe<br />
apar în perechi complex conjugate.
488 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
s 11 t 22 ≠ s 22 t 11 . Continuând analogia cu problema <strong>valorilor</strong> <strong>proprii</strong> ordinare, fie<br />
x 2 un vector propriu generalizat unitar al fascicolului (S,T) asociat valorii <strong>proprii</strong><br />
λ 2 = (s 22 ,t 22 ), i.e. un vector care satisface condiţiile<br />
t 22 Sx 2 = s 22 Tx 2 , x 2 ≠ 0. (6.78)<br />
De asemenea, fie w ∈ IC 2 un vector ortogonal cu x 2 şi matricea unitară de transformare<br />
Z = [x 2 w]. Concret, vectorul propriu generalizat din (6.78) are expre<strong>si</strong>a<br />
[ ]<br />
s22 t<br />
x 2 = ρy, cu y = 12 −s 12 t 22<br />
, (6.79)<br />
s 11 t 22 −s 22 t 11<br />
unde ρ ∈ IR este un factor scalar de normare, iar matricea unitară Z poate fi rotaţia<br />
(complexă) care realizează (Z H y)(2) = 0.<br />
Dacă Q ∈ IC 2×2 este o matrice unitară astfel încât<br />
(Q H SZ)(2,1) = 0 sau (Q H TZ)(2,1) = 0, (6.80)<br />
atunci obţinem (exerciţiu pentru cititor)<br />
S ′ = Q H SZ =<br />
[ ]<br />
s22 ×<br />
, T = Q<br />
0 s H TZ =<br />
11<br />
[ ]<br />
t22 ×<br />
, (6.81)<br />
0 t 11<br />
unde cu × s-au notat elementele lip<strong>si</strong>te de semnificaţie. S-a realizat astfel permutarea<br />
celor două valori <strong>proprii</strong> generalizate. Alegerea uneia din cele două alternative<br />
de calcul a matricei Q se face din con<strong>si</strong>derente de a<strong>si</strong>gurare a unei stabilităţi<br />
numerice maxime a algoritmului de ordonare. În [VI] se arată că decizia trebuie<br />
luată în raport cu modulele elementelor s 22 şi t 22 . Dacă |s 22 | ≥ |t 22 |, atunci Q va fi<br />
rotaţia care anulează al doilea element al primei coloane a matricei SZ, iar în caz<br />
contrar rotaţia care anulează al doilea element al primei coloane a matricei TZ.<br />
Pentru un fascicol de ordinul n, permutarea <strong>valorilor</strong> <strong>proprii</strong> adiacente (s kk ,t kk )<br />
şi (s k+1,k+1 ,t k+1,k+1 ) ale formei Schur generalizate (S,T) ∈ IC n×n ×IC n×n se realizează<br />
folo<strong>si</strong>nd transformarea unitară de echivalenţă (S ′ ,T ′ ) = (Q H SZ,Q H TZ) cu<br />
Q = diag(I k−1 , ˜Q,I n−k−1 ), Z = diag(I k−1 , ˜Z,I n−k−1 ), (6.82)<br />
unde transformarea definită de matricele de ordinul doi ˜Q şi ˜Z a<strong>si</strong>gură permutarea<br />
<strong>valorilor</strong> <strong>proprii</strong> ale perechii (S(k : k +1,k : k +1),T(k : k +1,k : k +1)).<br />
Rezumând cele prezentate mai sus, rezultă următoarea schemă de calcul:<br />
PG11c 1. Dacă s kk t k+1,k+1 ≠ s k+1,k+1 t kk [ atunci<br />
]<br />
sk+1,k+1 t<br />
1. Se calculează vectorul y = k,k+1 −s k,k+1 t k+1,k+1<br />
s kk t k+1,k+1 −s k+1,k+1 t kk<br />
2. Se calculează rotaţia Z 12 astfel încât (Z12y)(2) H = 0<br />
3. S ← Sdiag(I k−1 ,Z 12 ,I n−k−1 )<br />
4. T ← T diag(I k−1 ,Z 12 ,I n−k−1 )<br />
5. Z ← Zdiag(I k−1 ,Z 12 ,I n−k−1 )<br />
6. Dacă |t k+1,k+1 | ≥ |s k+1,k+1 | atunci y = S(k : k +1,k)<br />
altfel y = T(k : k +1,k)
6.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 489<br />
7. Se calculează rotaţia Q 12 astfel încât (Q H 12 y)(2) = 0<br />
8. S ← diag(I k−1 ,Q H 12 ,I n−k−1)S<br />
9. T ← diag(I k−1 ,Q H 12,I n−k−1 )T<br />
10. Q ← Qdiag(I k−1 ,Q 12 ,I n−k−1 )<br />
iar algoritmul corespunzător, bazat pe utilizarea procedurilor devenite familiare<br />
pentru cititor, este<br />
Algoritmul 6.10 (PG11c – Permutarea a două valori <strong>proprii</strong> generalizate<br />
adiacente) (Date o pereche (S,T) ∈ IC n×n ×IC n×n în formă<br />
Schur generalizată, matricele unitare Q,Z∈IC n×n şi întregul k∈1:n−1,<br />
algoritmul suprascrie perechea de matrice (S,T) cu perechea (S ′ ,T ′ ) =<br />
= (˜Q H S ˜Z, ˜Q H T ˜Z) care realizează permutarea <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
definite de perechile (s kk ,t kk ), (s k+1,k+1 ,t k+1,k+1 ) şi actualizează<br />
matricele de transformare Q şi Z.)<br />
1. Dacă s kk t k+1,k+1 ≠ s k+1,k+1 t kk atunci<br />
[ ]<br />
sk+1,k+1 t<br />
1. y = k,k+1 −s k,k+1 t k+1,k+1<br />
s kk t k+1,k+1 −s k+1,k+1 t kk<br />
2. [y,c,s] = Gc(y)<br />
3. S(1 : k +1,k : k +1) = Gcd(S(1 : k +1,k : k +1),c,s)<br />
4. T(1 : k +1,k : k +1) = Gcd(T(1 : k +1,k : k +1),c,s)<br />
5. Z(:,k : k +1) = Gcd(Z(:,k : k +1),c,s)<br />
6. Dacă |t k+1,k+1 | ≥ |s k+1,k+1 | atunci<br />
1. y = S(k : k +1)<br />
altfel<br />
1. y = T(k : k +1,k)<br />
7. [y,c,s] = Gc(y)<br />
8. S(k : k +1,k +1 : n) = Gcs(c,s,S(k : k +1,k +1 : n))<br />
9. s k+1,k = 0 % zeroul calculat este setat efectiv<br />
10. T(k : k +1,k : n) = Gcs(c,s,T(k : k +1,k : n))<br />
11. t k+1,k = 0 % zeroul calculat este setat efectiv<br />
12. Q(:,k : k +1) = Gcd(Q(:,k : k +1,c,s))<br />
Comentarii. Sintaxa de apel a algoritmului de mai sus va fi<br />
[S,T,Q,Z] = PG11c(S,T,Q,Z,k).<br />
Complexitatea unei permutări a două valori <strong>proprii</strong> generalizate vecine este 24n<br />
fiind independentă de k.<br />
✸<br />
Din momentul în care dispunem de procedura de permutare a două valori <strong>proprii</strong><br />
învecinate, algoritmulpropriu-zisde ordonarea formei Schur generalizate(complexe)<br />
se reduce, în esenţă, la un algoritm de sortare al unei mulţimi ordonate bazat<br />
pe interschimbarea elementelor adiacente. Procedând ca în cazul formei Schur ordinare,<br />
prezentăm o variantă care dispune valorile <strong>proprii</strong> ale unei forme Schur
490 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
generalizate (S,T) ale fascicolului (A,B) în ordinea impusă de permutarea dată<br />
π = {i 1 ,i 2 ,...,i n } în sensul că perechea diagonală aflată iniţial în poziţia (k,k) va<br />
fi plasată în final în poziţia (i k ,i k ) (vezi şi comentariul la algoritmul ce urmează).<br />
Prin actualizarea matricei unitare de transformare Z se calculează şi baze ortogonale<br />
pentru subspaţiile de deflaţie asociate unor grupuri impuse de valori <strong>proprii</strong><br />
generalizate. Concret, coloanele matricei actualizate Z(:,1 : k) formează o bază<br />
ortogonală a subspaţiului de deflaţie S k asociat setului de valori <strong>proprii</strong> Λ k =<br />
= {λ i = (s ii ,t ii )|i = 1 : k}} (în numerotarea finală). Actualizarea matricei<br />
unitare de transformare Q nu este necesară. Dacă se efectuează totuşi, atunci<br />
coloanele matricei actualizate Q(:,1:k) formează o bază ortogonală a subspaţiului<br />
V k = AS k +BS k în <strong>si</strong>tuaţia în care dimV k = dimS k = k.<br />
Algoritmul 6.11 (FSG ORD – Ordonarea formei Schur generalizate<br />
(complexe)) (Date o pereche (S,T) ∈ IC n×n × IC n×n în formă<br />
Schur generalizată, matricele unitare Q,Z ∈ IC n×n şi permutarea π =<br />
= {i 1 ,i 2 ,...,i n }, algoritmul suprascrie perechea (S,T) cu perechea unitar<br />
echivalentă (S ′ ,T ′ ) = (˜Q H S ˜Z, ˜Q H T ˜Z) care are (s ′ i k ,i k<br />
,t ′ i k ,i k<br />
) =<br />
= (s kk ,t kk ), k = 1 : n şi actualizează matricele de transformare Q<br />
şi Z.)<br />
1. Pentru k = 1 : (n−1)<br />
1. mută =’nu’<br />
2. l = k<br />
3. Pentru j = (k +1) : n<br />
1. Dacă i j < i l atunci<br />
1. l = j<br />
2. mută=’da’<br />
4. Dacă mută =’da’ atunci<br />
1. Pentru j = (l−1) : −1 : k<br />
1. [S,T,Q,Z] = PG11c(S,T,Q,Z,j)<br />
2. i j ↔ i j+1<br />
Comentarii. Sintaxa naturală de apel a algoritmului prezentat este<br />
[S,T,Q,Z] = FSG ORD(S,T,Q,Z,π).<br />
Complexitatea unei ordonări este dictată esenţial de natura permutării. Cazurile<br />
limită sunt permutarea identică pentru care nu se face nici o operaţie aritmetică şi<br />
inver<strong>si</strong>unea pentru care se efectuează 1 2n(n−1) apelări ale procedurii PG11c care<br />
conduc la o complexitate de O(n 3 ).<br />
Algoritmul de mai sus realizează o ordonare totală a perechilor diagonale. Dacă<br />
se urmăreşte exclu<strong>si</strong>v construcţia unei baze unitare pentru un subspaţiu de deflaţie<br />
k-dimen<strong>si</strong>onal (k < n) este suficientă o ordonare parţială constând în aducerea, pe<br />
căile cele mai ”scurte”, a <strong>valorilor</strong> <strong>proprii</strong> generalizate vizate în primele k poziţii diagonale.<br />
De asemenea, se renunţă la actualizarea matricei Q. Propunem cititorului<br />
o astfel de adaptare a algoritmului.
6.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 491<br />
De multe ori este mai comod ca în locul permutării π să utilizăm permutarea<br />
inversă σ = π −1 = {j 1 ,j 2 ,...,j n }. În acest caz, algoritmul suprascrie perechea<br />
(S,T) cu perechea unitar echivalentă (S,T) ← (S ′ ,T ′ ) = (˜Q H S ˜Z, ˜Q H T ˜Z) care are<br />
(s ′ kk ,t′ kk ) = (s j k ,j k<br />
,t jk ,j k<br />
) şi o variantă a sa arată astfel.<br />
1. Pentru k = 1 : n−1<br />
1. Dacă k ≠ j k atunci<br />
1. Pentru i = (j k −1) : −1 : k<br />
1. [S,T,Q,Z] = PG11c(S,T,Q,Z,i)<br />
2. Pentru i = (k +1) : n<br />
1. Dacă j i < j k atunci j i = j i +1.<br />
După execuţia acestui algoritm coloanele matricei actualizate Z(:,1:k) formează<br />
o bază ortogonală a subspaţiului de deflaţie S k asociat setului de valori <strong>proprii</strong><br />
Λ k = {λ i = (s ii ,t ii )|i ∈ {j 1 ,j 2 ,...,j k }} (în numerotarea iniţială). ✸<br />
6.4.2 Ordonarea formei Schur reale generalizate<br />
În cazul real forma Schur generalizată (S,T) ∈ IR n×n ×IR n×n a fascicolului definit<br />
de (A,B) ∈ IR n×n × IR n×n are matricea S în formă Schur reală, iar matricea T<br />
superior triunghiulară. Vom con<strong>si</strong>dera partiţiile bloc ale matricelor S şi T dictate<br />
de dimen<strong>si</strong>unile l k ×l k cu l k ∈ {1,2}, k = 1 : p, ale blocurilor diagonale ale lui S:<br />
⎡ ⎤ ⎡ ⎤<br />
S 11 S 12 ··· S 1p T 11 T 12 ··· T 1p<br />
0 S 22 ··· S 1p<br />
S = ⎢<br />
⎣<br />
.<br />
. . ..<br />
⎥<br />
. ⎦ , T = 0 T 22 ··· T 1p<br />
⎢<br />
⎣<br />
.<br />
. . ..<br />
⎥<br />
. ⎦ . (6.83)<br />
0 0 ··· S pp 0 0 ··· T pp<br />
Problema calculului subspaţiilor de deflaţie reale asociate unor seturi <strong>si</strong>metrice de<br />
valori<strong>proprii</strong>generalizaterevinelaordonareacorespunzătoareablocurilordiagonale<br />
ale formei Schur reale generalizate. În acest scop este necesar să ştim să permutăm<br />
două perechi de blocuri adiacente. Permutarea a două perechi de blocuri vecine<br />
1 × 1 se face cu algoritmul PG11c cu <strong>si</strong>ngura menţiune că toate transformările<br />
utilizatesuntreale(cureducereacorespunzătoareanumăruluideoperaţii). Întrucât<br />
scrierea variantei reale a algoritmului se rezumă la înlocuirea <strong>si</strong>glei c cu <strong>si</strong>gla r în<br />
identificatorii procedurilor, ne mărginim să introducem <strong>si</strong>ntaxa de utilizare<br />
[S,T,Q,Z] = PG11r(S,T,Q,Z,k).<br />
Rămânesăarătămcumsepotpermuta, printransformăriortogonaledeechivalenţă,<br />
două perechi de blocuri diagonale vecine din care cel puţin una din perechi are<br />
blocurile de ordinul 2.<br />
Con<strong>si</strong>derăm acum perechea de matrice de ordin 3 sau 4, partiţionate identic,<br />
S =<br />
[ ]<br />
S11 S 12<br />
, T =<br />
0 S 22<br />
[<br />
T11 T 12<br />
0 T 22<br />
]<br />
, (6.84)
492 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
unde, prin urmare, cel puţin unul din blocurile diagonale S 11 (T 11 ), S 22 (T 22 ) este<br />
2×2. În principiu, putem aplica ideile utilizate la elaborarea algoritmului PG11<br />
i.e. calculul unei baze ortogonale a subspaţiului de deflaţie asociat <strong>valorilor</strong> <strong>proprii</strong><br />
generalizate ale perechii (S 22 ,T 22 ) şi aplicarea propoziţiei 6.2. Propunem cititorului<br />
implementarea acestor idei. Aici vom urma o cale echivalentă care utilizează<br />
algoritmul QZ cu deplasare implicită. Având în vedere faptul că perechea (S,T)<br />
din (6.84) este deja în formă Schur reală generalizată rezultă că putem determina<br />
deplasarea (în formă implicită) exactă care, utilizată în algoritmul QZ2 pune în<br />
evidenţă, în poziţia (2,2) perechea cu valorile <strong>proprii</strong> dorite, în cazul nostru, în<br />
vederea permutării, cu valorile <strong>proprii</strong> ale perechii (S 11 ,T 11 ). Cunoaşterea exactă a<br />
deplasării face ca, teoretic, să fie suficientă o <strong>si</strong>ngură iteraţie QZ pentru obţinerea<br />
rezultatului dorit. În practică, dacă nivelul de toleranţă practicat este de ordinul<br />
de mărime al erorilor de rotunjire, este po<strong>si</strong>bil să fie necesare câteva (două-trei)<br />
iteraţii pentru a putea con<strong>si</strong>dera elementele blocului 21 neglijabile. De asemenea,<br />
întrucât algoritmul QZ2 cu deplasări implicite efectuează calculele aferente unei<br />
iteraţii numai asupra perechilor în formă Hessenberg generalizată ireductibilă este<br />
necesar mai întâi un pas QZ artificial care să altereze structura Schur reală generalizată<br />
a perechii (S,T). În consecinţă, toate cele trei tipuri de permutare se vor<br />
supune următoarei scheme de calcul.<br />
PGkl<br />
1. Se determină elementele definitorii exacte pentru vectorul w de deplasare<br />
implicită (i.e. valoarea proprie generalizată dacă prima pereche de blocuri<br />
este 1×1, respectiv suma s şi produsul p ale <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
în cazul când prima pereche de blocuri este 2×2).<br />
2. Se execută un pas QZ cu un vector de deplasare implicită fixat aleator<br />
(e.g. alegerea w = [1 1 1] T dă bune rezultate).<br />
3. Se aplică algoritmul QZ cu deplasarea implicită exactă (i.e. calculată cu<br />
elementele de la punctul 1).<br />
Pentru fascicolul de ordinul n (6.82), permutarea blocurilor adiacente (S kk ,T kk )<br />
şi (S k+1,k+1 ,T k+1,k+1 ) ale formei Schur reale generalizate (S,T) ∈ IR n×n ×IR n×n se<br />
obţine folo<strong>si</strong>nd transformarea ortogonală de echivalenţă (S ′ ,T ′ ) = (Q T SZ,Q T TZ)<br />
definită de<br />
Q = diag(I r , ˜Q,I s ), Z = diag(I r , ˜Z,I s ), (6.85)<br />
unde transformarea definită de matricele ˜Q şi ˜Z, de ordinul 2, 3 sau 4, a<strong>si</strong>gură<br />
permutarea blocurilor diagonale ale perechii<br />
[ ] [ ]<br />
Skk S ˜S = k,k+1 Tkk T<br />
, ˜T = k,k+1<br />
, (6.86)<br />
0 S k+1,k+1 0 T k+1,k+1<br />
şi unde r este ordinul cumulat al blocurilor diagonale 1 : (k −1), iar s este ordinul<br />
cumulat al blocurilor diagonale (k +2) : p.<br />
Vomimplementaschemadecalculdemaisus într-unalgoritmcarevatratatoate<br />
cazurile. Pentru aceasta vom utiliza rezultatele stabilite şi procedurile elaborate în<br />
acest capitol. Pentru o înţelegere mai lesnicioasă a algoritmului facem următoarele<br />
precizări:
6.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 493<br />
– pentru relaţiile de calcul al <strong>vectorilor</strong> de deplasare implicită (exactă) recomandăm<br />
consultarea algoritmilor Vd1 şi Vd2;<br />
– pentru o prezentare mai clară a algoritmulor, actualizarea blocurilor nediagonale<br />
de pe bloc-liniile şi bloc-coloanele afectate în etapa curentă, conform relaţiei<br />
(6.85), se va face utilizând matricele de transformare locală ˜Q şi ˜Z în formă nefactorizată.<br />
Obţinem următorul algoritm.<br />
Algoritmul 6.12 (PGr – Permutarea a două perechi diagonale adiacente)<br />
(Date o pereche (S,T) ∈ IR n×n × IR n×n în formă Schur reală<br />
generalizată, întregull carereprezintândpoziţiadiagonalăaelementului<br />
11 al primului bloc diagonal şi ordinele i ş j ale celor două blocuri diagonale<br />
adiacente precum ş toleranţa tol pentru neglijarea elementelor subdiagonale,<br />
algoritmul suprascrie perechea (S,T) cu perechea (S ′ ,T ′ ) =<br />
= (˜Q T S ˜Z, ˜Q T T ˜Z), realizând permutarea perechii de blocuri diagonale<br />
(S kk ,T kk ) cu perechea de blocuri diagonale (S k+1,k+1 ,T k+1,k+1 ). De<br />
asemenea, se actualizează matricele de transformare Q şi Z.)<br />
1. % Cazul a două perechi de blocuri 1×1<br />
Dacă i = 1 şi j = 1 atunci<br />
1. [S,T,Q,Z] = PG11r(S,T,Q,Z,l)<br />
2. Return<br />
2. % Cazul perechilor de blocuri 1×1, 2×2<br />
Dacă i = 1 şi j = 2 atunci<br />
1. q = l+2<br />
2. µ = s ql,l<br />
t l,l<br />
3. w = [1 1 1] T<br />
4. [S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z] =<br />
= IT QZ2(S(l : q,l : q),T(l : q,l : q),I 3 ,I 3 ,w, ′ da ′ )<br />
5. C^at timp |s l+2,l+1 | ≥ tol(|s l+1,l+1 |+|s l+2,l+2 |)<br />
1. w exact = [ s l,l<br />
−µ s l+1,l<br />
0 ] T<br />
t l,l t l,l<br />
2. [S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z] =<br />
= IT QZ2(S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z,w exact , ′ da ′ )<br />
6. S(l+2,l+1)= 0 % anularea efectivă a elementului neglijabil<br />
7. Dacă l > 1 atunci<br />
1. S(1 : l−1,l : q) = S(1 : l−1,l : q)˜Z<br />
2. T(1 : l−1,l : q) = T(1 : l−1,l : q)˜Z<br />
8. Dacă l < n−2 atunci<br />
1. S(l : q,q +1 : n) = ˜Q T S(l : q,q +1 : n)<br />
2. T(l : q,q +1 : n) = ˜Q T T(l : q,q +1 : n)<br />
9. Q(:,l : q) = Q(:,l : q)˜Q<br />
10. Z(:,l : q) = Z(:,l : q)˜Z
494 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
11. Return<br />
3. % Cazul primei perechi de blocuri 2×2<br />
Dacă i = 2 şi j < 3 atunci<br />
1. q = l+i+j −1<br />
2. σ = s l+1,l+1t l,l +s l,l t l+1,l+1 −s l+1,l t l,l+1<br />
t l,l t l+1,l+1<br />
3. π = s l,ls l+1,l+1 −s l+1,l s l,l+1<br />
t l,l t l+1,l+1<br />
4. w = [1 1 1] T<br />
5. [S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z] =<br />
= IT QZ2(S(l : q,l : q),T(l : q,l : q),I q−l+1 ,I q−l+1 ,w, ′ da ′ )<br />
6. r = l+j<br />
7. C^at timp |s r,r−1 | ≥ tol(|s r−1,r−1 |+|s r,r |)<br />
1. α = s ll<br />
, β = s l+1,l+1<br />
, γ = s l+1,l<br />
,<br />
t ll t l+1,l+1 t ll<br />
γ<br />
δ = , η = α−δt l,l+1 −σ.<br />
t l+1,l+1<br />
⎡<br />
2. w exact = ⎣ αη +δs ⎤<br />
l,l+1 +π<br />
γ(β +η) ⎦<br />
δs l+2,l+1<br />
3. [S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z] =<br />
= IT QZ2(S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z,w exact , ′ da ′ )<br />
8. S(r,r−1) = 0 % anularea efectivă a elementului neglijabil<br />
9. Dacă l > 1 atunci<br />
1. S(1 : l−1,l : q) = S(1 : l−1,l : q)˜Z<br />
2. T(1 : l−1,l : q) = T(1 : l−1,l : q)˜Z<br />
10. Dacă q < n atunci<br />
1. S(l : q,q +1 : n) = ˜Q T S(l : q,q +1 : n)<br />
2. T(l : q,q +1 : n) = ˜Q T T(l : q,q +1 : n)<br />
11. Q(:,l : q) = Q(:,l : q)˜Q<br />
12. Z(:,l : q) = Z(:,l : q)˜Z<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
[S,T,Q,Z] = PGr(S,T,Q,Z,l,i,j,tol).<br />
Complexitatea unei permutări a două perechi de blocuri adiacente este O(n), fiind<br />
practic independentă de poziţia lor, dar dependentă de dimen<strong>si</strong>unile blocurilor diagonale<br />
ale matricii S.<br />
✸<br />
Cu această procedură de permutare a două perechi adiacente algoritmul de ordonare<br />
a formei Schur reale generalizate este, în esenţă, identic cu cel de ordonare<br />
a formei Schur complexe generalizate şi este prezentat în continuare. Facem şi aici,<br />
pentru o înţelegere mai comodă a algoritmului, următoarele precizări:
6.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 495<br />
– structura (i.e. ordinul) blocurilor diagonale ale matricei S a FSRG va fi memorată<br />
în vectorul strbl;<br />
– pentru localizarea blocurilor diagonale ale matricei S a FSRG vom utiliza<br />
vectorul lcbl care va conţine poziţiile elementelor (1,1) ale acestora;<br />
– pentru a <strong>si</strong>mplifica la maxim monitorizarea elementelor nule de pe subdiagonala<br />
matricei S, nu vom apela formal la algoritmul QZ2 ci vom adopta ideile<br />
acestuia la <strong>si</strong>tuaţa structurală concretă.<br />
Se obţine următorul algoritm.<br />
Algoritmul 6.13 (FSRG ORD – Ordonarea formei Schur reale<br />
generalizate) (Date o pereche (S,T) ∈ IR n×n ×IR n×n în formă Schur generalizată<br />
(6.83), cu T ne<strong>si</strong>ngulară, matricele ortogonale Q,Z ∈ IR n×n ,<br />
permutarea π = {i 1 ,i 2 ,...,i p } şi toleranţa tol pentru neglijarea elementelor<br />
subdiagonale, algoritmul suprascrie perechea (S,T) cu perechea<br />
ortogonal echivalentă (S ′ ,T ′ ) = (˜Q T S ˜Z, ˜Q T T ˜Z) având (S i ′ k i k<br />
,T i ′<br />
k i k<br />
) =<br />
(S kk ,T kk ) şi actualizează matricele ortogonale de transformare Q şi Z.)<br />
1. % Determinarea numărului, a structurii şi localizării blocurilor diagonale<br />
ale matricei S.<br />
1. p = 0, j = 1<br />
2. C^at timp j < n<br />
1. p ← p+1<br />
2. Dacă s j+1,j = 0 atunci<br />
1. strbl(p) = 1<br />
2. j ← j +1<br />
3. Dacă j = n atunci<br />
1. p ← p+1<br />
2. strbl(p) = 1<br />
altfel<br />
1. strbl(p) = 2<br />
2. j ← j +2<br />
2. Pentru k = 1 : (p−1)<br />
1. mută =’nu’<br />
2. l = k<br />
3. Pentru j = (k +1) : p<br />
1. Dacă i j < i l atunci<br />
1. l = j<br />
2. mută =’da’<br />
4. Dacă mută =’da’ atunci<br />
1. Pentru j = (l−1) : −1 : k<br />
1. lcbl(1) = 1<br />
2. Pentru i = 2 : p<br />
1. lcbl(i) = lcbl(i−1)+strbl(i−1)
496 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
3. [S,T,Q,Z] =<br />
= PGr(S,T,Q,Z,lcbl(j),strbl(j),strbl(j +1),tol)<br />
4. i j ↔ i j+1<br />
5. strbl(j) ↔ strbl(j +1)<br />
Comentarii. Sintaxa de apel a algoritmului de mai sus este<br />
[S,T,Q,Z] = FSRG ORD(S,T,Q,Z,π,tol).<br />
La fel ca în cazul complex, volumul de calcul necesar pentru ordonare este dictată<br />
esenţial de natura permutării. Cazul cel mai defavorabil apare când permutarea<br />
este o inver<strong>si</strong>une şi toate blocurile sunt 2×2 şi are o complexitate de O(n 3 ).<br />
Şi aici, dacă se urmăreşte exclu<strong>si</strong>v construcţia unei baze unitare pentru un<br />
subspaţiu de deflaţie asociat unui set <strong>si</strong>metric de valori <strong>proprii</strong> generalizate definite<br />
de k blocuri diagonale (k < p), este suficientă o ordonare parţială. Se recomandă,<br />
de asemenea, renunţarea la actualizarea matricei Q.<br />
Încazul încaresepreferăutilizareapermutăriiinverseσ = π −1 = {j 1 ,j 2 ,...,j p }<br />
se poate utiliza o schemă de calcul <strong>si</strong>milară cu cea prezentată în comentariile la<br />
algoritmul 6.10. Scrierea explicită a acestei variante de algoritm de ordonare este<br />
propusă cititorului.<br />
✸<br />
6.5 Condiţionarea <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
şi a <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi<br />
Sen<strong>si</strong>bilitatea <strong>valorilor</strong> <strong>proprii</strong> generalizate la variaţii în datele iniţiale, sau altfel<br />
spus condiţionarea lor numerică, se poate aprecia foarte uşor în forma Schur generalizată.<br />
În ipotezaplauzibilăcăformaSchurgeneralizată(S,T)estepuţin sen<strong>si</strong>bilă<br />
la perturbaţii în elementele matricelor perechii (A,B) rezultă că o valoare proprie<br />
generalizată λ i = s ii /t ii este cu atât mai rău condiţionată cu cât t ii este mai mic.<br />
Totuşi, dacă privim valorile <strong>proprii</strong> generalizate ca perechi (s ii ,t ii ), fără să con<strong>si</strong>derăm<br />
necesară efectuarea împărţirii, această afirmaţie nu mai poate fi susţinută.<br />
Din acest motiv, în apreciereacondiţionării numerice a <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
se recomandă o tratare <strong>si</strong>metrică a perechii (A,B) în sensul că trebuie con<strong>si</strong>derate<br />
<strong>si</strong>multan ambele fascicole F = A − λB şi G = B − λA. Unei valori <strong>proprii</strong> rău<br />
condiţionate a fascicolului F îi corespunde o valoare proprie inversă a lui G care<br />
poatefifoartebinecondiţionată. De aceeea, în[VI], pentru apreciereacondiţionării<br />
<strong>valorilor</strong> <strong>proprii</strong> generalizate se propune utilizarea metricii cordale definită pentru<br />
IR prin distanţa 18 |α−β|<br />
chord(α,β) = √ √ ∀α,β ∈ IR.<br />
1+α<br />
2<br />
1+β2, 18 Distanţei cordale i se pot da următoarele interpretări.<br />
1. Fie θ α = arctgα şi θ β = arctgβ. Atunci, este uşor de arătat că chord(α,β) = |<strong>si</strong>n(θ α −θ β )|.<br />
Prin urmare, printre altele, 0 ≤ chord(α,β) < 1.<br />
2. În cazul complex, dacă πα, π β sunt proiecţiile lui α, respectiv β pe sfera Riemann, atunci<br />
chord(α,β) este jumătate din distanţa euclidiană (i.e. lungimea coardei) dintre cele două proiecţii.
6.6. STABILITATEA ALGORITMULUI QZ 497<br />
Se poate arăta că dacă λ este o valoare proprie generalizată distinctă a fascicolului<br />
F şi ˆλ este valoarea proprie generalizată corespunzătoare a fascicolului perturbat<br />
ˆF = Â−λˆB cu ‖Â−A‖ 2 ≈ ‖ˆB −B‖ 2<br />
≈ ε, atunci<br />
chord(λ,ˆλ) ≤<br />
ε<br />
(y H Ax) 2 +(y H Bx) 2 +O(ε2 ),<br />
undex,y ∈ IC n suntvectori<strong>proprii</strong>generalizaţiunitariladreapta,respectivlastânga<br />
ai fascicolului F, i.e. satisfac Ax = λBx, y H A = λy H B şi ‖x‖ = ‖y‖ = 1. Prin<br />
urmare, condiţionarea unei valori <strong>proprii</strong> generalizate individuale poate fi apreciată<br />
cu numărul<br />
1<br />
κ λ =<br />
(y H Ax) 2 +(y H Bx) 2.<br />
Din expre<strong>si</strong>a de mai sus rezultă că se pot con<strong>si</strong>dera rău condiţionate numeric numai<br />
acele valori <strong>proprii</strong> generalizate pentru care expre<strong>si</strong>a de la numitor (<strong>si</strong>metrică în<br />
raport cu A şi B) este mică. Situaţii de acest fel apar, de exemplu, când fascicolul<br />
F este ”apropiat” de un fascicol <strong>si</strong>ngular, i.e. în forma Schur generalizată există<br />
(cel puţin) o pereche (s ii ,t ii ) cu ambele valori foarte mici. În mod natural, într-un<br />
astfel de caz celelalte perechi (s ii ,t ii ) pot varia în limite foarte largi. (Amintim<br />
că dacă fascicolul este <strong>si</strong>ngular, i.e. există (s ii ,t ii ) = (0,0), atunci orice număr<br />
complex este valoare proprie generalizată a fascicolului iniţial ceea ce înseamnă că<br />
celelalte perechi diagonale ale formei Schur generalizate pot lua orice valori.)<br />
În ceea ce priveşte condiţionarea <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi, aceasta este<br />
dependentă în bună măsură de separarea valorii <strong>proprii</strong> generalizate asociate de<br />
celelalte valori <strong>proprii</strong>. În aplicaţii, în general, se evită calculul <strong>vectorilor</strong> <strong>proprii</strong><br />
generalizaţi, aceştia putând fi înlocuiţi cu succes de coloanele matricelor de transformare.<br />
6.6 Stabilitatea numerică a algoritmului QZ<br />
Aşa cum s-a mai menţionat şi în comentariile diverşilor algoritmi parţiali, utilizarea<br />
consecventă a transformărilor unitare (în cazul real, ortogonale) conferă procesului<br />
de calcul al formei Schur generalizate o foarte bună stabilitate numerică. În literatura<br />
de specialitate se arată că forma Schur generalizată calculată (Ŝ, ˆT), cu algoritmul<br />
QZ, a unei perechi de matrice (A,B) este forma Schur generalizată exactă<br />
a perechii (A,B) uşor perturbate, i.e. satisface relaţia<br />
(Ŝ, ˆT) = (ˆQ H (A+E)Ẑ, ˆQ H (B +F)Ẑ),<br />
unde E şi F sunt matrice de perturbaţie ce satisfac inegalităţile<br />
‖E‖ ≤ p(n)‖A‖ε M , ‖F‖ ≤ p(n)‖B‖ε M ,<br />
iar ˆQ şi Ẑ sunt două matrice riguros unitare. În relaţiile de mai sus, p(n) este<br />
apreciat drept o funcţie cu o creştere ”modestă” de dimen<strong>si</strong>unea n a problemei,<br />
termen folo<strong>si</strong>t curent pentru funcţii polinomiale de gradul 1, cel mult 2.<br />
În concluzie, valorile <strong>proprii</strong> generalizate bine condiţionate se calculează cu o<br />
înaltă acurateţe.
498 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
6.7 Rutine LAPACK şi MATLAB<br />
LAPACK. <strong>Calculul</strong> <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi ai unei perechi de<br />
matrice (A,B) este efectuat în LAPACK de două rutine driver:<br />
1. xGEGS calculează forma Schur generalizată a perechii (A,B) şi eventual vectorii<br />
Schur, folo<strong>si</strong>nd algoritmul QZ.<br />
2. xGEGV calculează valorile şi eventual vectorii <strong>proprii</strong> generalizaţi ai perechii<br />
(A,B).<br />
Principalele rutinele de calcul implementează cele două faze ale algoritmului<br />
QZ; să notăm abrevierile utilizate pentru diverse tipuri de matrice interesante în<br />
această problemă: GG – pereche de matrice generale, HG – pereche în forma Hessenberg<br />
generalizată, TG – pereche în forma Schur generalizată.<br />
• xGGHRD realizează reducerea unei perechi generale (A,B) la forma Hessenberg<br />
generalizată (H,T) prin transformări de asemănare ortogonale.<br />
• xHGEQZ implementează faza iterativă a algoritmului QZ, transformând perechea<br />
(H,T) în forma Schur generalizată, cu acumularea opţională a transformărilor<br />
(şi deci obţinerea <strong>vectorilor</strong> Schur).<br />
Vectorii <strong>proprii</strong> generalizaţi ai unei perechi în formă Schur (A,B) sunt calculaţi<br />
de rutina xTGEVC. Aceeaşi rutină poate calcula vectorii <strong>proprii</strong> generalizaţi ai perechiiiniţiale(A,B),<br />
dacăprimeştecaargumentedeintrarevectoriiSchurgeneralizaţi<br />
calculaţi de rutinele de mai sus.<br />
Rutina xGGBAL realizează scalarea (echilibrarea) perechii (A,B). Alte rutine,<br />
<strong>si</strong>milare cu cele pentru valori <strong>proprii</strong>, sunt actualmente în curs de elaborare.<br />
MATLAB. Valorile şi vectorii <strong>proprii</strong> generalizaţi ai unei perechi (A,B) pot<br />
fi calculate cu aceeaşi funcţie ca valorile <strong>proprii</strong> (diferenţa e făcută de numărul<br />
argumentelor de intrare):<br />
[V, D] = eig(A, B)<br />
V fiind matricea <strong>vectorilor</strong> <strong>proprii</strong> generalizaţi, iar D o matrice diagonală conţinând<br />
valorile <strong>proprii</strong> generalizate (astfel încât AV = BVD). Apelul <strong>si</strong>mplu eig(A,B)<br />
returneazăun vectorconţinândvalorile<strong>proprii</strong>generalizate. Funcţiaimplementează<br />
algoritmul QZ.<br />
6.8 Probleme<br />
P 6.1 Se con<strong>si</strong>deră fascicolul matriceal F = A−λB, unde<br />
[ ] 2 4 5<br />
[ 1 1 1<br />
A = 2 5 8 , B = 1 α 2<br />
2 3 2 1 2−α β<br />
]<br />
,
6.8. PROBLEME 499<br />
cu α, β parametri reali.<br />
a) Discutaţi în raport cu α, β numărul <strong>valorilor</strong> <strong>proprii</strong> generalizate finite ale fascicolului<br />
F.<br />
b) Dacă F este un fascicol regulat calculaţi un vector propriu generalizat x al fascicolului<br />
F independent de α, β; determinaţi parametrii α, β astfel încât x T Bx = 0 şi B<br />
este ne<strong>si</strong>ngulară.<br />
c) În cazul α = 2, β = 1, calculaţi o bază ortonormală pentru un subspaţiu de deflaţie<br />
de dimen<strong>si</strong>une 2 al fascicolului F în IR 3 .<br />
[ ]<br />
P 6.2 Con<strong>si</strong>derăm perechea (A,B) ∈ IR n×n ×IR n×n şi fie U T Σ1 0<br />
BV = Σ cu Σ = ,<br />
0 0<br />
Σ 1 = diag(σ 1,σ 2,···,σ r) şi r = rang(B) ≥ 1 descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare a matricei<br />
B. Arătaţi că dacă fascicolul A − λB nu are nici o valoare proprie generalizată finită,<br />
atunci matricea (U(:,r +1 : n)) T AV(:,r+1 : n) este <strong>si</strong>ngulară.<br />
P 6.3 Ce proprietăţi au valorile <strong>proprii</strong> generalizate ale unei perechi (A,B) ∈ IC n×n ×<br />
×IC n×n cu matricele A şi B unitare (în cazul real, ortogonale)<br />
P 6.4 Fie perechea (A,B) ∈ IC n×n ×IC n×n cu B ne<strong>si</strong>ngulară. Să se arate că λ ∈ λ(A,B)<br />
dacă şi numai dacă λ−µ ∈ λ(B,B(A−µB) −1 B) pentru µ ∉ λ(A,B).<br />
P 6.5 Scrieţi un algoritm de reducere a unei perechi reale (A,B) ∈ IR n×n × IR n×n la<br />
forma Hessenberg generalizată prin transformări ortogonale de echivalenţă.<br />
P 6.6 Elaboraţi un algoritm care să calculeze iterativ un vector propriu generalizat al<br />
perechii (A,B) ∈ IC n×n ×IC n×n cu B ne<strong>si</strong>ngulară adaptând metoda puterii pentru matricea<br />
F = B −1 A sau matricea G = AB −1 fără a calcula explicit matricele F sau G. Aceeaşi<br />
cerinţă pentru adaptarea metodei puterii inverse.<br />
P 6.7 Fie dat un vector propriu generalizat x ∈ IC n al unui fascicol regulat definit de<br />
perechea (A,B) ∈ IC n×n × IC n×n . Să se arate că Bx ≠ 0 şi că funcţia f : IC → IR,<br />
f(λ) = 1 2 ‖Ax−λBx‖2 2 îşi atinge valoare minimă în valoarea proprie λ ∈ λ(A,B) asociată<br />
lui x dată de expre<strong>si</strong>a λ = xH B H Ax<br />
x H B H Bx ∈ λ(A,B).<br />
P 6.8 Fie (H,T) ∈ IC n×n × IC n×n în formă Hessenberg generalizată cu T ne<strong>si</strong>ngulară.<br />
Arătaţi că matricea superior Hessenberg G = HT −1 este ireductibilă dacă şi numai dacă<br />
matricea H este ireductibilă.<br />
P 6.9 Sedăunfascicol real deordinul2definitdeperechea(H,T) ∈ IR 2×2 ×IR 2×2 înformă<br />
Hessenbergireductibilăcuvalori<strong>proprii</strong> generalizate reale. Săse scrie unalgoritm decalcul<br />
al matricelor ortogonale Q,Z ∈ IR 2×2 astfel încât perechea ( ˜H, ˜T) = (Q T HZ,Q T TZ) să<br />
fie în formă Schur.<br />
P 6.10 Fie perechea (A,B) ∈ IR n×n × IR n×n cu A, B <strong>si</strong>metrice şi, în plus, B pozitiv<br />
definită. Să se arate că toate valorile <strong>proprii</strong> generalizate ale perechii (A,B) sunt reale.<br />
Este adevărată această aserţiune şi dacă B nu este pozitiv definită<br />
Elaboraţi un algoritm de calcul al <strong>valorilor</strong> <strong>proprii</strong> generalizate ale fascicolului (A,B)<br />
care să exploateze <strong>si</strong>metria celor două matrice.<br />
P 6.11 Se dă o pereche (S,T) ∈ IR n×n ×IR n×n în formă Schur reală generalizată. Se cer<br />
algoritmii de calcul pentru
500 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
a) un vector propriu generalizat asociat valorii <strong>proprii</strong> generalizate reale distincte λ k =<br />
= s kk /t kk ;<br />
b) o pereche de vectori <strong>proprii</strong> generalizaţi complex conjugaţi asociaţi unei perechi de<br />
valori <strong>proprii</strong> generalizate complex conjugate date de o pereche diagonală 2×2 <strong>si</strong>tuată pe<br />
liniile şi coloanele (k,k +1).<br />
P 6.12 Se con<strong>si</strong>deră dată o pereche (S,T) ∈ IC n×n × IC n×n în formă Schur generalizată<br />
având în poziţiile diagonale consecutive k, k + 1 o valoare proprie generalizată<br />
dublă λ k = s kk /t kk = λ k+1 = s k+1,k+1 /t k+1,k+1 . În ce condiţii există doi vectori <strong>proprii</strong><br />
generalizaţi liniar independenţi asociaţi acestei valori <strong>proprii</strong> duble Con<strong>si</strong>derând aceste<br />
condiţii îndeplinite, scrieţi un algoritm de calcul pentru calculul a doi astfel de vectori<br />
<strong>proprii</strong>.
Indicaţii, răspunsuri, soluţii<br />
Cap. 0. Concepte fundamentale ale calculului numeric<br />
P0.1 Rezultatul depinde de ordinea de calcul; avem y 1 = (x 1 + x 2) + x 3 = 0 şi<br />
y 2 = x 1 +(x 2 +x 3) = 0.001. Rezultatul exact este y 2 (eroare relativă egală cu 0). Pentru<br />
y 1, eroarea relativă este |0−0.001|/0.001 = 1 (adică 100%).<br />
P0.2 Rezultatul calculat este ŷ = fl(fl(x 1 +x 2)+x 3) = fl((x 1+x 2)(1+ρ 1)+x 3) =<br />
= [(x 1+x 2)(1+ρ 1)+x 3](1+ρ 2), cu |ρ 1|,|ρ 2| ≤ µβ −t , şi µ de ordinul unităţii. Rezultă că:<br />
|y −ŷ|<br />
|y|<br />
≤<br />
(<br />
1+<br />
)<br />
|x1 +x2|<br />
µβ −t .<br />
|x 1 +x 2 +x 3|<br />
P0.3 Presupunem că datele de intrare sunt afectate de erori, şi deci (a+∆a,b+∆b)<br />
este utilizat în loc de (a,b). Rezultatul va fi x+∆x. Din (x+∆x)(a+∆a) = (b+∆b),<br />
neglijând ∆a∆x, rezultă că ∆x/x = −∆a/a−∆b/b. Deci, problema este întotdeauna bine<br />
condiţionată (erori relative mici ale intrării implică erori relative mici ale ieşirii).<br />
Deoarece ˆx = fl(−b/a) = (−b/a)(1 + ρ) = −b(1 + ρ)/a = −ˆb/a, cu |ρ| ≤ µβ −t ,<br />
algoritmul este numeric stabil. (ˆb este aproape de b).<br />
P0.4 Problema moşteneşte proasta condiţionare a sumei (de exemplu, când |a 1 +a 2|<br />
e mic şi |a 1|, |a 2| sunt mari). ”Algoritmul” x = −(b 1 +b 2)/(a 1 +a 2) este stabil.<br />
P0.5 Următorul număr în virgulă mobilă este x = 0.100...01·β 1 ; deci, x−1 = β −t+1<br />
(eroarea de reprezentare maximă pentru rotunjirea prin trunchiere).<br />
P0.6 ε r ≤ 0.5β −t+1 .<br />
P0.7 Varianta 1: (x⊗x)⊖(y ⊗y) = [x 2 (1+ρ 1)+y 2 (1+ρ 2)](1+ρ), cu ρ 1,ρ 2,ρ de<br />
ordinul erorii de reprezentare u. Atunci eroarea relativă<br />
ε r1 ≈ ρ+ ρ1x2 −ρ 2y 2<br />
x 2 −y 2<br />
poate fi mare atunci când x 2 şi y 2 au valori apropiate.<br />
Varianta 2: (x⊖y)⊗(x⊕y) = [(x−y)(1+σ 1)][(x+y)(1+σ 2)](1+σ), cu σ 1,σ 2,σ<br />
de ordinul de mărime al lui u. Eroarea relativă este acum (u 2 ≪ u)<br />
ε r2 ≈ σ 1 +σ 2 +σ ≤ 3u.<br />
Varianta 1 reprezintă un algoritm cu potenţiale instabilităţi numerice; varianta 2 este<br />
un algoritm stabil.
502 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
Cap. 1. Algoritmi elementari de calcul numeric<br />
P1.4 Pentru norma 1, un exemplu este x = e 1, y = e 2. Pentru norma ∞, putem lua<br />
x = e 1 + e 2 şi y = e 2. În norma 2, egalitatea este impo<strong>si</strong>bilă pentru vectori necoliniari<br />
(suma lungimii a două laturi ale unui triunghi este mai mare decât lungimea celei de-a<br />
treia); la fel în normele p ≠ 1,∞.<br />
P1.5 Pentru n = 2, x =<br />
[<br />
x1<br />
x 2<br />
]<br />
, y =<br />
[<br />
y1<br />
y 2<br />
]<br />
, α = x 1y 1+x 2y 2. fl(x iy i) = x iy i(1+σ i),<br />
cu |σ i| ≤ ε M. Atunci ˆα = [x 1y 1(1 + σ 1) + x 2y 2(1 + σ 2)](1 + σ) şi eroarea absolută este<br />
|ˆα−α| = |x 1y 1σ 1 +x 2y 2σ 2 +O(ε M)| ≤ 2ε M|y| T |x|+O(ε M).<br />
P1.6 Deoarece dorim a T j a k+1 = 0, ∀j ∈ 1 : k, iar vectorii a 1, ..., a k sunt ortogonali,<br />
atunci 0 = a T j a k+1 = ∑ k<br />
α i=1 ika T j a i+a T j b k+1 = α jk a T j a j+a T j b k+1 şi deci scalarii α jk sunt<br />
unic determinaţi prin α jk = −(a T j b k+1 )/(‖a j‖ 2 2).<br />
P1.7 Coloanele (sau liniile) nenule ale matricei A sunt vectori coliniari.<br />
P1.8 Se calculează (AB)C sau A(BC) după cum n 1n 2n 3+n 1n 3n 4 mai mic, respectiv<br />
mai mare decât n 2n 3n 4 +n 1n 2n 4.<br />
P1.9 ‖A‖ 2 ≥ ‖Ae j‖ 2 = ( ∑ m<br />
l=1 a2 lj) 1/2 ≥ |a ij| pentru orice i, j. Pentru a doua parte,<br />
din (1.29) avem ‖A‖ 2 ≤ ‖A‖ F şi evident ‖A‖ F ≤ max √ mn|a ij|.<br />
P1.10 Din definiţia normei 2 avem<br />
( m<br />
) 1/2<br />
∑ n∑<br />
‖A‖ 2 = max ‖Ax‖ 2 = max ( a ijx j) 2 . (7.1)<br />
‖x‖=1 ‖x‖=1<br />
Din inegalitatea Cauchy-Buniakowski-Schwarz, ţinând seama că ‖x‖ 2 = 1, avem<br />
( ∑ n<br />
j=1 aijxj)2 ≤ ∑ n<br />
j=1 a2 ij. Înlocuind în (7.1), este imediată inegalitatea ‖A‖2 ≤ ‖A‖F.<br />
Luând acum vectorul x cu componentele egale, x i = 1/ √ n, din (7.1) se obţine<br />
‖A‖ 2 ≥ (1/ √ n)‖A‖ F.<br />
Luând în (7.1) x = e j, se obţine ‖A‖ 2 ≥ (1/ √ m)‖A‖ 1.<br />
Pentruunvectorxoarecare suntîndepliniterelaţiile ‖x‖ 2 ≤ ‖x‖ 1 şi‖x‖ 2 ≥ (1/ √ n)‖x‖ 1.<br />
Atunci<br />
‖A‖ 2 = sup ‖Ax‖2 ‖Ax‖ 1<br />
≤ sup<br />
‖x‖ 2 (1/ √ = √ n‖A‖ 1.<br />
n)‖x‖ 1<br />
O matrice A cu toate elementele egale cu 1 are ‖A‖ F = ‖A‖ 2 = √ mn. O matrice<br />
B cu b 1j = 1 şi restul elementelor nule are ‖B‖ 2 = √ n, ‖B‖ 1 = 1 şi ‖B‖ ∞ = n, deci<br />
‖B‖ 2 = √ n‖B‖ 1 = (1/ √ n)‖B‖ ∞.<br />
P1.11 Dacă B ∈ IR p×r , fără a afecta generalitatea putem con<strong>si</strong>dera B = A(1 : p,1 : r).<br />
Fie C = A(1 : m,1 : r). Este evident că dacă Z este mulţimea <strong>vectorilor</strong> din IR n de normă<br />
unitate având ultimele n−r componente nule, atunci<br />
i=1<br />
j=1<br />
‖A‖ = max ‖Ax‖ ≥ max‖Az‖ = ‖C‖.<br />
‖x‖=1 z∈Z<br />
Pentru x ∈ IR r , notând y = Cx ∈ IR m şi y ′ = y(1 : p) = Bx, este evident că ‖y‖ ≥ ‖y ′ ‖,<br />
deci ‖C‖ ≥ ‖B‖.<br />
P1.12 Produsul scalar a doi vectori y, z de normă dată este maxim când vectorii sunt<br />
coliniari (vezidinnouinegalitatea Cauchy-Buniakowski-Schwarz)şi atunci|y T z| = ‖y‖‖z‖.<br />
Cu z = Ax şi definiţia normei 2 rezultă prima inegalitate, din care se deduc imediat<br />
celelalte.<br />
P1.13Aesteinversabilă, deciImA = IR n . ‖A −1 ‖A<br />
‖ = sup −1 x‖ ‖A<br />
x≠0 = sup −1 Ay‖<br />
‖x‖ y≠0 .<br />
‖Ay‖<br />
Deci, 1/‖A −1 ‖Ay‖<br />
‖ = inf y≠0 = min ‖y‖ ‖x‖=1‖Ax‖.
INDICAŢII, RĂSPUNSURI, SOLUŢII 503<br />
P1.14 L 2 are prima supradiagonală nulă, L 3 primele două etc.<br />
P1.15 Notând C = AB, avem c ij = ∑ n<br />
a k=1 ikb kj . a ik şi b kj pot fi <strong>si</strong>multan nenule<br />
dacă mulţimile i − p : i + p şi j − q : j + q au cel puţin un element comun, adică dacă<br />
i+p > j −q sau i−p < j +q, ceea ce e echivalent cu |i−j| < p+q, deci C este matrice<br />
bandă de lăţime p+q.<br />
P1.16 Indicaţie: rezultatul este o matrice nestructurată.<br />
P1.17 Ordinea de calcul va fi: Pentru i = n : −1 : 1, Pentru j = 1 : i. Sau: Pentru<br />
j = 1 : n, Pentru i = n : −1 : j.<br />
P1.18 Pentru matrice ortogonale, în general, nu.<br />
P1.19 Se adaptează algoritmul 1.20 la cazul matricelor superior triunghiulare, iar în<br />
instrucţiunea 1.4, în loc de UTRIS se apelează algoritmul de rezolvare de <strong>si</strong>steme liniare.<br />
P1.20 O <strong>si</strong>mplă substituţie este suficientă. Pentru deducerea expre<strong>si</strong>ei lui N(n) se<br />
presupune N(n) = αn log7 + βn 2 ; coeficienţii α şi β se calculează prin identificare cu<br />
(1.38). Mai multe despre rezolvarea recurenţelor în [2].<br />
P1.21 A fiind ortogonal diagonalizabilă, există U ortogonală astfel încât U T ΛU = A.<br />
Elementele diagonale ale lui Λ sunt pozitiv definite (vezi şi problema 1.30); fie D matricea<br />
diagonală cu d ii = √ λ i şi Q = U T DU, matrice <strong>si</strong>metrică (şi pozitiv definită); din motive<br />
evidente, se notează Q = √ A.<br />
Demonstraţia inegalităţii ‖x+y‖ A ≤ ‖x‖ A‖y‖ A se reduce la |x T Ay| ≤ ‖x‖ A‖y‖ A, care<br />
este inegalitatea Cauchy-Buniakowski-Schwarz, pentru vectorii Qx şi Qy.<br />
P1.22 Dacă A e <strong>si</strong>ngulară, atunci există x ≠ 0 astfel încât Ax = 0 şi deci x T Ax = 0,<br />
deci A nu e pozitiv definită; deci A e inversabilă. În plus, ImA = IRn , deci orice y ∈ IR n ,<br />
există x ∈ IR n astfel încât y = Ax; atunci x T Ax = y T A −1 y > 0, deci A −1 > 0.<br />
P1.23 b. Fie A = [a 1 a 2 ... a n] ortogonală şi superior triunghiulară. Atunci, pentru<br />
prima coloană avem a 1 = ±e 1 şi 0 = a T 1a j = ±a 1j, pentru j > 1, etc. (Altfel: A T este<br />
inferior triunghiulară, iar A −1 este superior triunghiulară; cum ele sunt egale, A T este<br />
diagonală, deci şi A.)<br />
c. Fie A superior triunghiulară. Atunci, din AA T = A T A, pentru elementul (1,1)<br />
obţinem ∑ n<br />
j=1 a2 1j = a 2 11, deci toate elementele extradiagonale din prima linie sunt nule<br />
etc.<br />
P1.24 b. Adaptăm algoritmul LTRIS, de exemplu ver<strong>si</strong>unea pe linii. Singura modificare<br />
e în instrucţiunea 2.1.<br />
1. x ← b<br />
2. Pentru i = 1 : n<br />
1. Pentru j = max(1,i−p) : i−1<br />
1. x i ← x i −l ijx j<br />
2. x i ← x i/l ii<br />
P1.25 Pentru L inferior bidiagonală, inversa X este inferior triunghiulară.<br />
1. Pentru j = 1 : n<br />
1. x jj ← 1/l jj<br />
2. Pentru i = j +1 : n<br />
1. x ij ← −l i,i−1x i−1,j/l ii<br />
P1.26 Varianta cu DOT este imediată din algoritmul 1.16 LINV.<br />
Pentru varianta cu Saxpy, e necesară o nouă formă a algoritmului, în care, o dată<br />
calculată o necunoscută x k , se actualizează toate sumele (1.44) pentru i > k.<br />
1. Pentru k = 1 : n<br />
1. x k ← b k /l kk
504 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
2. Dacă k < n atunci<br />
1. Pentru i = k +1 : n<br />
1. b i ← b i −l ik x k<br />
Bucla Pentru i se poate înlocui cu operaţia<br />
b(k +1 : n) ← Saxpy(−x k ,L(k +1 : n,k),b(k +1,n)).<br />
P1.27 Notăm cu L(k) elementul aflat la adresa k în vectorul L în care se memorează<br />
compact matricea triunghiulară. (Con<strong>si</strong>derăm L(1) primul element.)<br />
1. x ← b<br />
2. k ← 1<br />
3. Pentru i = 1 : n<br />
1. Pentru j = 1 : i−1<br />
1. x i ← x i −L(k)x j<br />
2. k ← k +1<br />
2. x i ← x i/L(k)<br />
3. k ← k +1<br />
P1.28 b. Presupunând v = γu, γ ≠ 0, fie λ ∈ IC valoarea proprie pentru care<br />
A(u + iv) = λ(u + iv). Evident, Au = λu, deci λ ∈ IR, deci γ = 0. Aşadar v nu este<br />
coliniar cu u.<br />
Notând λ = α+iβ, cu α,β ∈ IR, egalitatea evidentă<br />
[ ]<br />
α −β<br />
A[u v] = [u v]<br />
β α<br />
arată că Au şi Av sunt combinaţii liniare de u şi v.<br />
P1.29 Din det(λI −A) = 0 şi relaţiile lui Viète.<br />
P1.30 Din Ax = λx rezultă x T Ax = λ‖x‖ 2 , deci λ > 0.<br />
Cap. 2. Rezolvarea <strong>si</strong>stemelor de ecuaţii liniare<br />
P2.1 Se folosesc matrice inferior triunghiulare elementare modificate, tot de forma<br />
M k = I −m k e T k, dar cu m k = [µ 1k ... µ k−1,k 0 ... 0] T .<br />
P2.2 Pentru GPP, se folosesc funcţiile xSWAP pentru interschimbarea a două linii<br />
(bucla1.3), xSCAL pentrucalculul multiplicatorilor (bucla1.4) şixAXPY pentru actualizările<br />
din bucla 1.5.1.<br />
P2.3 Este evident că, la primul pas al eliminării gaus<strong>si</strong>ene, pivotul este a 11 şi<br />
|µ i1| = |a i1|/|a 11| < 1. Notând B = M 1A matricea transformată după primul pas al<br />
eliminării, să demonstrăm că submatricea B(2 : n,2 : n) este diagonal dominantă pe<br />
coloane (apoi, prin inducţie, problema este rezolvată). Ţinând seama că b ij = a ij −µ i1a 1j<br />
(pentru i,j ≥ 2), avem<br />
∑<br />
|b ij| ≤<br />
i=2,i≠j<br />
∑<br />
|a ij|+|µ i1||a 1j| < |a |a11|−|aj1|<br />
jj|−|a 1j|+ |a 1j| < |a jj|−|µ j1||a 1j| < |b jj|.<br />
i=2,i≠j<br />
P2.4 a. Evident, µ ik = x i/x k , pentru i ≠ k.<br />
b. Algoritmul este <strong>si</strong>milar cu cel de eliminare gaus<strong>si</strong>ană, numai că operaţiile se<br />
desfăşoară permanent pe toate liniile.<br />
|a 11|
INDICAŢII, RĂSPUNSURI, SOLUŢII 505<br />
1. Pentru k = 1 : n−1<br />
1. Pentru i = 1 : n, i ≠ k<br />
1. a ik ← µ ik = a ik /a kk<br />
2. Pentru j = k +1 : n<br />
1. Pentru i = 1 : n, i ≠ k<br />
1. a ij ← a ij −a ik a kj<br />
N op ≈ n 3 , cu50% mai multdecâtîn eliminarea gaus<strong>si</strong>ană, motivpentrucarealgoritmul<br />
Gauss-Jordan nu este utilizat în practică.<br />
c. Pivotul se caută la fel ca în eliminarea gaus<strong>si</strong>ană, adică numai pe liniile k : n.<br />
P2.5Prezentămodemonstraţie doarpentrucazul Ane<strong>si</strong>ngulară. Demonstraţiapentru<br />
A <strong>si</strong>ngulară rămâne ca exerciţiu (netrivial).<br />
Presupunem că A are două factorizări LDU diferite:<br />
A = LDU = L ′ D ′ U ′ . (7.2)<br />
L, L ′ , U, U ′ sunt matrice triunghiulare unitate, deci ne<strong>si</strong>ngulare; mai mult, L −1 , (L ′ ) −1 ,<br />
U −1 , (U ′ ) −1 au aceeaşi structură. A este ne<strong>si</strong>ngulară, deci astfel sunt şi D şi D ′ , iar<br />
matricele D −1 şi (D ′ ) −1 sunt diagonale. Atunci, din (7.2) rezultă<br />
(L ′ ) −1 L = D ′ U ′ U −1 D −1 ,<br />
în care termenul din stânga este o matrice inferior triunghiulară unitate, iar cel din dreapta<br />
o matrice superior triunghiulară. Atunci (L ′ ) −1 L = I n, adică L = L ′ . Rezultă acum că<br />
U ′ U −1 = (D ′ ) −1 D.<br />
Termenul stâng este o matrice superior triunghiulară unitate, iar cel drept o matrice diagonală.<br />
Aceasta este po<strong>si</strong>bil doar dacă ambii termeni sunt egali cu matricea unitate I n.<br />
În concluzie U = U ′ , D = D ′ .<br />
P2.6Presupunemcăexistăk < n, cel maimicastfelîncât A [k] este<strong>si</strong>ngulară. Deoarece<br />
A [k] = L [k] D [k] U [k] , iar L [k] şi U [k] sunt ne<strong>si</strong>ngulare ca submatrice lider principale ale unor<br />
matrice triunghiulare unitate, rezultă că D [k] este <strong>si</strong>ngulară şi anume că d kk = 0 (deoarece<br />
D [k−1] este ne<strong>si</strong>ngulară). În acest caz, coloana k a matricei LD este nulă, deci elementele<br />
l ik , i > k, pot fi arbitrare. Analog, linia k a matricei DU este nulă, deci elementele u kj ,<br />
j > k, pot fi arbitrare. Cum k < n, rezultă că factorizarea LDU nu este unică, ceea ce<br />
contrazice ipoteza.<br />
P2.7 În GPP multiplicatorii sunt subunitari. Permutările de linii lasă multiplicatorii<br />
în triunghiul inferior.<br />
P2.8 GPC se modifică la fel ca GPP. |u kk | ≥ |u kj |, j > k, deoarece, la pasul k, pivotul<br />
este mai mare (în modul) decât elementele aflate la dreapta sa, iar eliminarea gaus<strong>si</strong>ană<br />
propriu-zisă nu modifică linia k.<br />
P2.9 Se modifică doar valoarea maximă a indicilor de coloană.<br />
1. Pentru k = 1 : r<br />
1. Se determină i k ∈ k : n a.î. |a ik k| = max i=k:n |a ik |.<br />
2. p(k) ← i k<br />
3. A(i k ,1 : r) ↔ A(k,1 : r)<br />
4. Pentru i = k +1 : n<br />
1. a ik ← a ik /a kk<br />
5. Pentru i = k +1 : n<br />
1. Pentru j = k +1 : r<br />
1. a ij ← a ij −a ik a kj
506 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
P2.10 În algoritmul CROUTbl se execută o factorizare Crout cu pivotare a blocului<br />
curent A(s : n,s : f), la nivel de element. Algoritmul va avea structura următoare:<br />
1. Pentru k = 1 : m<br />
1. s ← (k −1)r +1<br />
2. f ← kr<br />
3. A(s : n,s : f) ← A(s : n,s : f)−L(s : n,1 : s−1)·U(1 : s−1,s : f)<br />
4. Se calculează factorizarea LU Crout cu pivotare<br />
P ·A(s : n,s : f) = L(s : n,s : f)·U(s : f,s : f)<br />
5. Se aplică permutarea P blocului A(s : n,f +1 : n)<br />
6. Se rezolvă <strong>si</strong>stemul superior triunghiular Z ·U(s : f,s : f) = A(f+1 : n,s : f)<br />
7. A(s : f,f+1 : n) ← A(s : f,f+1 : n)−L(s : f,1 : s−1)·U(1 : s−1,f+1 : n)<br />
8. Se rezolvă <strong>si</strong>stemul inferior triunghiular L(s : f,s : f)·Z = A(s : f,f+1 : n)<br />
9. U(s : f,f +1 : n) ← Z (o bloc linie din U)<br />
P2.11 De exemplu, în algoritmul 2.7, se ia m = ⌈n/r⌉, iar f = min(kr,n).<br />
P2.12Transformările seaplică<strong>si</strong>multanînAşib, pelinii. Iatăalgoritmul fărăpivotare:<br />
1. Pentru k = 1 : n−1<br />
1. Pentru i = k +1 : n<br />
1. µ = a ik /a kk<br />
2. Pentru j = k +1 : n<br />
1. a ij ← a ij −µa kj<br />
3. b i ← b i −µb k<br />
2. x = UTRIS(A,b)<br />
P2.13 a. Este evident că multiplicatorii µ ij vor fi nuli pentru i > j +1. Eliminarea<br />
gaus<strong>si</strong>ană va avea forma:<br />
1. Pentru k = 1 : n−1<br />
1. h k+1,k ← h k+1,k /h kk<br />
2. Pentru j = k +1 : n<br />
1. h k+1,j ← h k+1,j −h k+1,k h kj<br />
Vectorul b va fi modificat în concordanţă cu aceste valori particulare ale multiplicatorilor:<br />
1. Pentru k = 1 : n−1<br />
1. b k+1 ← b k+1 −h k+1,k b k<br />
Apoi trebuie rezolvat un <strong>si</strong>stem superior triunghiular.<br />
b. Indicaţie: pivotarea parţială nu afectează structura superior Hessenberg. c. Se<br />
observă că L este inferior bidiagonală.<br />
P2.14 a. Se rezolvă Hy = b ca în problema anterioară, apoi Rx = y.<br />
P2.15 a. Dacă b = c + id, unde c,d ∈ R n , <strong>si</strong>stemul poate fi scris A[y z] = [c d], cu<br />
y,z ∈ R n şi x = y+iz. Acesta constituie un caz particular al punctului b, pentru m = 2.<br />
b. ecuaţia matriceală AX = B constă în m <strong>si</strong>steme liniare: Ax j = b j, pentru j = 1 : m<br />
(x j şi b j sunt coloanele j ale matricelor X, respectiv B). Utilizarea algoritmului:<br />
1. Pentru j = 1 : m<br />
1. Se rezolvă Ax j = b j utilizând S GPP<br />
nu este o idee bună deoarece numărul de operaţii este 2mn 3 /3. Este mai eficient a utiliza<br />
GPP o <strong>si</strong>ngură dată, pentru a triangulariza A, precum mai jos:
INDICAŢII, RĂSPUNSURI, SOLUŢII 507<br />
1. [M,U,p] = GPP(A)<br />
2. Pentru j = 1 : m<br />
1. Pentru s = 1 : n−1<br />
1. b sj ↔ b p(s),j<br />
1. Pentru i = s+1 : n<br />
1. b ij ← b ij −µ isb sj<br />
2. x j = UTRIS(U,b j)<br />
Numărul de operaţii este 2n 3 /3+O(mn 2 ).<br />
P2.16 În cazul utilizării GPP, <strong>si</strong>stemul iniţial AT y = c este echivalent cu <strong>si</strong>stemul<br />
inferior triunghiularR T z = c, undez = M −T<br />
n−1 Pn−1...M−T 1<br />
P 1y. Dupărezolvareaacestuia,<br />
se calculează y = P 1M1 T ...P n−1Mn−1z.<br />
T<br />
P2.17 Din nou, nu trebuie nici calculat A k (2kn 3 flopi), nici utilizat algoritmul bazat<br />
pe relaţia A(A k−1 x) = b, aplicat recur<strong>si</strong>v:<br />
1. Pentru j = 1 : k<br />
1. rezolvă Ax = b utilizând S GPP<br />
2. b ← x<br />
care nece<strong>si</strong>tă 2kn 3 /3 flopi. Din nou, GPP poate fi utilizat o <strong>si</strong>ngurădată pentrurezolvarea<br />
tuturor <strong>si</strong>stemelor din instrucţiunea 1.1 a schemei de mai sus. Se obţine:<br />
1. [M,U,p] = GPP(A)<br />
2. Pentru j = 1 : k<br />
1. Pentru s = 1 : n−1<br />
1. b s ↔ b p(s)<br />
1. Pentru i = s+1 : n<br />
1. b i ← b i −µ isb s<br />
2. b = UTRIS(U,b)<br />
3. x ← b<br />
Numărul de operaţii este de doar 2n 3 /3+O(kn 2 ).<br />
P2.18 Varianta 1: se calculează D = AB, apoi se aplică algoritmul precedent; cost<br />
suplimentar faţă de acesta: 2n 3 .<br />
Varianta 2: se aplică GPP ambelor matrice A şi B, apoi se adaptează algoritmul<br />
precedent, ”dublând” instrucţiunea 2. Cost suplimentar: 4n 3 /3+2kn 2 . Această variantă<br />
e recomandabilă, în general.<br />
P2.19 (a) implică 2n 3 /3 operaţii complexe, adică aproximativ 8n 3 /3 operaţii reale.<br />
(b) implică 2(2n) 3 /3 operaţii.<br />
P2.20 Notând X = A −1 şi x j coloana j a lui X, trebuie rezolvat doar <strong>si</strong>stemul<br />
LUx j = e j. Sistemul Ly = e j se rezolvă adaptând LTRIS (ca în LINV) iar <strong>si</strong>stemul<br />
Ux j = y se rezolvă cu UTRIS, oprind calculele atunci când x ij a fost obţinut.<br />
P2.22 a. Prin calcul direct, avem A +A −1<br />
+ = I.<br />
b. Se calculează ˜B = A −1 B, ˜C = CA −1 (cu 4n 2 r flopi). Se calculează D + cu<br />
2n 2 r + 2nr 2 flopi. Se rezolvă D +X = C ca în problema 2.15, cu 2r 3 /3 + 2nr 2 flopi. În<br />
sfârşit, A −1<br />
+ = A−1 −BX, cu un cost de încă 2n 2 r flopi. Presupunând r ≪ n, costul total<br />
este de O(rn 2 ). În cazul 1◦ , costul se reduce la jumătate.<br />
P2.23 a. Presupunem întâi că u 1 ≠ 0. Fie M = I −me T 1 o matrice inferior triunghiulară<br />
elementară astfel încât Mu = u 1e 1; evident, m i = u i/u 1, i = 2 : n. Con<strong>si</strong>derăm<br />
matricea B = MAM −1 = I +Muv T M −1 = I +u 1e 1w T ; deoarece M −1 = I +me T 1, avem<br />
w T = v T M −1 = v T + (v T m)e T 1. În concluzie B este superior triunghiulară, cu b ii = 1,<br />
pentru i ≥ 2 şi deci detA = detB = b 11 = 1+u T v.
508 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
Dacă u 1 = 0 sau, în general, pentru o mai bună stabilitate numerică, se aplică întâi<br />
permutarea u ← Pu care aduce pe prima poziţie elementul de modul maxim din u. Deci,<br />
în loc de M se utilizează transformarea stabilizată MP.<br />
b. Sistemul Ax = b se transformă în B(Mx) = Mb. Se rezolvă By = Mb, apoi<br />
x = M −1 y. Dacă se ţine seama de forma specială a lui B, care are doar prima linie şi<br />
diagonala nenule, numărul de operaţii este O(n).<br />
P2.24 Multiplicatorii au toţi valoarea −1 (elementele diagonale nu se modifică, cu<br />
excepţia celui din dreapta jos) iar în ultima coloană avem a (k)<br />
in = 2a(k−1) in<br />
, pentru i ≥ k.<br />
Se obţine evident a (n)<br />
nn = 2 n−1 .<br />
P2.25 Avem<br />
cond(A) ≤ ‖|A−1 ||A||x|‖ ∞<br />
‖|A||x|‖ ∞<br />
‖|A||x|‖ ∞<br />
‖|x|‖ ∞<br />
≤ ‖A −1 ‖ ∞‖A‖ ∞.<br />
Am folo<strong>si</strong>t definiţia normei ∞ şi egalitatea evidentă ‖|A|‖ ∞ = ‖A‖ ∞.<br />
P2.26 Elementele diagonale ale matricei D 1 sunt d i = 1/max j=1:n|a ij|. Astfel,<br />
liniile matricei B = D 1A au norma infinit egală cu 1, iar coloanele normă infinit inferioară<br />
lui 1 (evident, |b ij| ≤ 1). Elementele diagonale ale matricei D 2 se iau acum<br />
˜d j = 1/max i=1:n|b ij|. Notând C = BD 2, avem c ij ≤ 1 (ca şi pentru B), liniile lui C<br />
păstrează norma infinit unitate, iar coloanele au aceeaşi proprietate.<br />
Alegând d i şi ˜dj cele mai mici puteri ale lui β superioare <strong>valorilor</strong> 1/max j=1:n|a ij|,<br />
respectiv 1/max i=1:n|b ij|, obţinem evident normele infinit ale liniilor şi coloanelor lui C<br />
în intervalul [1/β, 1].<br />
P2.27 a. Să presupunem că:<br />
Atunci<br />
˜L =<br />
[<br />
L 0<br />
X L<br />
]<br />
, Ũ =<br />
[<br />
U Y<br />
0 U<br />
[ ]<br />
B = ˜LŨ A LY<br />
= .<br />
XU XY +A<br />
Deci LY = 0 şi, deoarece A ne<strong>si</strong>ngulară implică L, U ne<strong>si</strong>ngulare, Y = 0; XU = R, deci<br />
X = RU −1 , şi X este superior triunghiulară.<br />
b. [ ][ ] [ ] {<br />
A 0 x1 d1 Ax1 = d 1<br />
= ⇒<br />
R A x 2 d 2 Rx 1 +Ax 2 = d 2<br />
Se rezolvă întâi Ly = d 1, Ux 1 = y şi se obţine x 1 (în 2n 2 flopi). Se calculează apoi<br />
f = d 2−Rx 1 (n 2 flops); se rezolvă Ly = f, Ux 2 = y şi se obţine x 2 (în 2n 2 flopi). Totalul<br />
este de doar 5n 2 flopi. Schema de calcul prezentată poate fi aplicată pentru rezolvarea<br />
oricărui <strong>si</strong>stem bloc inferior triunghiular.<br />
P2.28 a. Se utilizează eliminarea gaus<strong>si</strong>ană; a ij = 0, pentru i > j +n; multiplicatorii<br />
µ ij vor respecta aceeaşi relaţie. b. Se utilizează eliminarea gaus<strong>si</strong>ană cu pivotare parţială,<br />
care nu va afecta structura matricei A.<br />
P2.29 a.<br />
1. Pentru s = 1 : n−1<br />
1. a s+1,s ← a s+1,s/a ss<br />
2. a s+1,s+1 ← a s+1,s+1, −a s+1,sa s,s+1<br />
P2.30 Se aplică o eliminare gaus<strong>si</strong>ană pe dreapta (adică pe linii) pentru rezolvarea<br />
<strong>si</strong>stemului FE = C. Notăm p = n−s, deci F,C ∈ IR p×2 .<br />
]<br />
.
INDICAŢII, RĂSPUNSURI, SOLUŢII 509<br />
% permutarea coloanelor lui E şi C<br />
1. Dacă |e 12| > |e 11| atunci<br />
1. e 11 ↔ e 12, e 21 ↔ e 22<br />
2. Pentru i = 1 : p, c i1 ↔ c i2<br />
% eliminare gaus<strong>si</strong>ană la dreapta<br />
2. µ = e 12/e 11<br />
3. e 22 ← e 22 −µe 21<br />
4. Pentru i = 1 : p<br />
1. c i2 ← c i2 −µc i1<br />
% rezolvare <strong>si</strong>stem inferior triunghiular, la dreapta<br />
5. Pentru i = 1 : p<br />
1. f i2 ← c 12/e 22<br />
2. f i1 ← (c i1 −f i2e 21)/e 11<br />
P2.31 Notând tot cu a ij elementele matricei P 1AP T 1 , prima relaţie se demonstrează<br />
ţinând seama că ã ij = a ij−(a i1/a 11)a j1 şi, în plus, |a i1| ≤ µ 0 şi |a 11| = µ 1 ≥ αµ 0. Aşadar<br />
max<br />
i,j<br />
|ã ij| ≤ |a 1 ij|+<br />
α |aj1| ≤ (1+ 1 α )max |a ij|.<br />
i,j<br />
A doua relaţie se demonstrează în acelaşi stil, folo<strong>si</strong>nd formulele adecvate pentru ã ij.<br />
P2.32 Detaliem numai cazul s = 2. Pivotul se găseşte în poziţia (i k ,j k ) şi trebuie<br />
adus, la pasul curent k, în poziţia (k+1,k). Pentru aceasta sunt necesare două permutări<br />
de linii şi de coloane (orice permutare de linii este însoţită de una de coloane, şi reciproc,<br />
pentru a păstra <strong>si</strong>metria). Întâi se permută liniile şi coloanele k +1 şi i k, cu operaţiile:<br />
A(k +1,k +1) ↔ A(i k ,i k )<br />
A(k +1,1 : k) ↔ A(i k ,1 : k)<br />
A(k +2 : i k −1,k +1) ↔ A(i k ,k +2 : i k −1)<br />
A(i k +1 : n,k +1) ↔ A(i k +1 : n,i k ).<br />
(Să notăm că pivotul a ajuns în poziţia (j k ,k+1).) Apoi se permută liniile şi coloanele k<br />
şi j k , cu operaţiile<br />
A(k,k) ↔ A(j k ,j k )<br />
A(k,1 : k −1) ↔ A(j k ,1 : k −1)<br />
A(k +1 : j k −1,k) ↔ A(j k ,k +1 : j k −1)<br />
A(j k +1 : n,k) ↔ A(j k +1 : n,j k ).<br />
P2.33 Algoritmul Cholesky, varianta cu Saxpy, este următorul (L se scrie peste triunghiul<br />
inferior al lui A)<br />
1. Pentru k = 1 : n<br />
1. a kk ← √ a kk<br />
2. Pentru i = k +1 : n<br />
1. a ik ← a ik /a kk<br />
3. Pentru j = k +1 : n<br />
1. Pentru i = j : n<br />
1. a ij ← a ij −a ik a jk<br />
Evident, bucla 1.3.1 se poate înlocui cu un apel la Saxpy.<br />
P2.34 Se respectă structura algoritmului la nivel de element, preluând ideile din algoritmul<br />
CROUTbl.
510 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
1. Pentru k = 1 : m<br />
1. s ← (k −1)r +1<br />
2. f ← kr<br />
3. A(s : f,s : f) ← A(s : f,s : f)−L(s : f,1 : s−1)·L T (1 : s−1,s : f)<br />
4. Utilizând CHOL, calculează factorizarea Cholesky<br />
A(s : f,s : f) = L(s : f,s : f)·L T (s : f,s : f)<br />
(blocul L(s : f,s : f) se memorează în triunghiul inferior al lui A(s : f,s : f))<br />
5. A(f+1 : n,s : f) ← A(f+1 : n,s : f)−L(f+1 : n,1 : s−1)·L T (1 : s−1,s : f)<br />
6. Rezolvă <strong>si</strong>stemul superior triunghiular ZL T (s : f,s : f) = L(f +1 : n,s : f)<br />
7. L(f +1 : n,s : f) ← Z<br />
În instrucţiunea 1.3 se utilizează SYRK, în 1.5 GEMM iar în 1.6 TRSM. Transpunerea nu se<br />
efectuează explicit, ci se pasează rutinelor BLAS.<br />
P2.35 T = AA T nu este deja factorizarea Cholesky deoarece elementele diagonale ale<br />
lui A nu sunt neapărat pozitive. Fie T = LL T factorizarea Cholesky. Este natural să<br />
încercăm să demonstrăm că L este inferior bidiagonală. Pentru orice k ∈ 1 : n−1:<br />
t kk = a 2 k,k−1 +a 2 kk = l 2 k,k−1 +l 2 kk<br />
t k+1,k = a k+1,k a kk = l k+1,k l kk .<br />
De asemenea, este natural să încercăm să demonstrăm că |l ij| = |a ij|; pentru prima relaţie<br />
de mai sus, semnele nu contează; pentru a doua, dacă a kk este negativ, luăm l kk = −a kk<br />
şi l k+1,k = −a k+1,k . Algoritmul va fi:<br />
1. Pentru k = 1 : n<br />
1. l kk ← |a kk |<br />
2. Dacă k < n atunci<br />
1. Dacă a kk < 0 atunci l k+1,k ← −a k+1,k<br />
altfel l k+1,k ← a k+1,k<br />
P2.36 Algoritmul CHOL pentru matrice bandă de lăţime r este<br />
1. Pentru k = 1 : n<br />
1. α ← a kk − ∑ k−1<br />
j=max(1,k−r) l2 kj<br />
2. Dacă α ≤ 0 atunci<br />
1. Afişează(’A nu este pozitiv definită’)<br />
2. Stop<br />
3. a kk ← l kk = √ α<br />
4. Pentru i = k +1 : min(k +r,n)<br />
1. a ik ← l ik =<br />
(<br />
a ik − ∑ k−1<br />
j=max(1,i−r) lijl kj<br />
)<br />
/l kk<br />
P2.37 Se procedează analog cu algoritmul CHOL. Calculele decurg în ordine inversă,<br />
i.e. cu k = n : −1 : 1.<br />
P2.38 Calculând pe loc în A, un algoritm direct inspirat de CHOL este<br />
1. Pentru k = 1 : n<br />
1. a kk ← d k = a kk − ∑ k−1<br />
j=1 l2 kjd j<br />
2. Pentru i = k +1 (: n<br />
1. a ik ← l ik = a ik − ∑ k−1<br />
lijl j=1 kjd j<br />
)/d k
INDICAŢII, RĂSPUNSURI, SOLUŢII 511<br />
Numărul de operaţii este însă sen<strong>si</strong>bil mai mare decât pentru CHOL. Pentru a-l<br />
reduce, se elimină înmulţirea cu d j din 1.2.1 astfel<br />
1. Pentru k = 1 : n<br />
1. Pentru j = 1 : k −1<br />
1. a kj ← l kj = a kj /d j<br />
2. a kk ← d k = a kk − ∑ k−1<br />
j=1 l2 kjd j<br />
3. Pentru i = k +1 : n<br />
1. a ik ← a ik − ∑ k−1<br />
lijl j=1 kj<br />
Cap. 3. Problema celor mai mici pătrate<br />
P3.3 Scriem ca de obicei Ux = x − νu, unde ν = u T x/β. Prin urmare trebuie să<br />
avem x − νu = ρy, deci putem lua u = x − ρy, unde modulul lui ρ e fixat prin condiţia<br />
‖Ux‖ = ‖x‖, iar semnul se alege în mod adecvat.<br />
P3.4 a. Amintim că U este o transformare involutivă, i.e. U 2 = I, prin urmare<br />
condiţia impusă este echivalentă cu ρUx = e 1, unde ρ = ‖x‖ ≠ 0.<br />
b. U este o transformare ortogonală, deci coloanele matricei U sunt vectori normaţi şi<br />
ortogonali doi câte doi în IR m .<br />
P3.5 a. Cu notaţiile din secţiunea 2.1, con<strong>si</strong>deraţi transformarea elementară stabilizată<br />
T = M 1P 1 astfel încât (Tx) i = 0, i = 2 : m. Arătaţi că vectorii y j = T T e j,<br />
j = 2 : m, satisfac condiţia cerută. Ce se obţine dacă în locul lui T se con<strong>si</strong>deră un<br />
reflector <br />
P3.6 Evident, funcţia ρ 2 (α) = ‖y −αx‖ 2 este un polinom de gradul 2 în α,<br />
ρ 2 (α) = α 2 ‖x‖ 2 −2αy T x+‖y‖ 2 ,<br />
deci problema este elementară. Interpretarea geometrică devine transparentă dacă presupunem<br />
că ‖x‖ = 1.<br />
P3.7 a. detU = −1.<br />
b. Scriem Ux = λx şi obţinem (λ − 1)x = −2u(u T x), unde x ≠ 0. Prin urmare<br />
avem fie (i) λ = 1 şi u T x = 0, fie (ii) x = u şi λ = −1. În primul caz obţinem m − 1<br />
vectori <strong>proprii</strong> ortogonali (vezi problemele 3.4b sau 3.5b), deci λ = 1 este valoare proprie<br />
de multiplicitate (algebrică şi geometrică) m−1. Prin urmare λ = −1 este valoare proprie<br />
<strong>si</strong>mplă. Descompunerea spectrală U = VΛV T se scrie cu uşurinţă.<br />
c. Utilizăm relaţia U 2 = I m. [ ]<br />
0 1<br />
P3.8 De exemplu, în cazul Π = putem lua u = [1 −1] T , β = 1/2.<br />
1 0<br />
P3.9 a. Dacă S = R T R este factorizarea Cholesky a lui S, atunci relaţia U T SU = S<br />
este echivalentă cu V T V = I m, unde V = RUR −1 .<br />
b. Con<strong>si</strong>deraţi matricea U = I m − 2uu T S, unde ‖u‖ 2 S = 1, şi arătaţi că U este<br />
S-ortogonală şi S-<strong>si</strong>metrică. Algoritmii de tip 3.1 şi 3.2 se scriu în mod evident.<br />
P3.10 b. Condiţia este ‖x‖ J > 0, deci nu orice vector nenul din IR m poate fi adus<br />
la forma (3.200) utilizând J-reflectori. (Aceasta este o deosebire esenţială faţă de cazul<br />
euclidian uzual.) Vectorii cu ‖x‖ J < 0 pot fi aduşi la forma Ux = −σe p+1, iar vectorii<br />
izotropi (care satisfac (3.198)) rămân izotropi. Înplus, transformarea este rău condiţionată<br />
în vecinătatea conului (3.198).<br />
c. Partiţionând matricele S şi R conform cu J, putem scrie<br />
[ ] [<br />
S11 S 12 R<br />
T<br />
S12 T = 11 0<br />
S 22<br />
R T 12 R T 22<br />
][<br />
Ip 0<br />
0 −I q<br />
][<br />
R11 R 12<br />
0 R 22<br />
]<br />
, (7.3)
512 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
de unde pe blocuri rezultă<br />
S 11 = R T 11R 11,<br />
S 12 = R T 11R 12,<br />
S 22 = R T 12R 12 −R T 22R 22.<br />
Din prima relaţie, R 11 poate fi determinat aplicând algoritmul de factorizare Cholesky<br />
dacă şi numai dacă<br />
S 11 > 0. (7.4)<br />
În acest caz, din a doua relaţie rezultă R 12 = R −T<br />
11<br />
S12, iar a treia devine<br />
S 22 −S T 12(R T 11R 11) −1 S 12 = −R T 22R 22.<br />
Prin urmare R 22 poate fi determinat (aplicând din nou algoritmul de factorizare Cholesky)<br />
dacă şi numai dacă<br />
not<br />
˜S 22 = S 22 −S12S T −1<br />
11 S 12 < 0. (7.5)<br />
(Prin definiţie, matricea ˜S 22 constituie complementul Schur al lui S 11 în S.)<br />
În al doilea caz trebuie să avem<br />
[ ] [ ][ ][ ]<br />
S11 S 12 L<br />
T<br />
S12 T = 11 L T 21 Ip 0 L11 0<br />
S 22 0 L T , (7.6)<br />
22 0 −I q L 21 L 22<br />
de unde, procedând analog obţinem condiţiile<br />
S 22 < 0, (7.7)<br />
˜S 11<br />
not<br />
= S 11 −S 12S −1<br />
22 S T 12 > 0. (7.8)<br />
În particular, dacă au loc condiţiile ”de punct şa” (7.4) şi (7.7), atunci şi celelalte două<br />
condiţii, (7.5) şi (7.8) sunt satisfăcute, deci ambele factorizări (7.3) şi (7.6) există şi pot<br />
fi calculate aplicând algoritmul de factorizare Cholesky blocurilor S 11, −˜S 22 şi respectiv<br />
−S 22, ˜S 11.<br />
d. Arătaţi întâi că A şi B trebuie să fie inversabile.<br />
P3.12 Rotaţia P ki modifică numai elementele de indici k şi i ale lui x.<br />
P3.14 a. Tinând seama de observaţia 3.2, putem utiliza secvenţele P = P 1m...P 13P 12<br />
sau P = P 12P 23...P m−1,m.<br />
b. Întâianulămcomponentele 2, 4, 6, ..., utilizândsecvenţaS(1) = P 12P 34P 56...; apoi<br />
anulăm componentele 3, 7, 11, ..., utilizând secvenţa S (2) = P 13P 57P 9,11...; mai departe<br />
se aplică S (3) = P 15P 9,13... etc. Transformarea căutată conţine m − 1 rotaţii, grupate<br />
în secvenţe de rotaţii disjuncte, i.e. P = S (p) ...S (2) S (1) , unde p ≤ log 2 m. Observaţi că<br />
rotaţiile ce compun o secvenţă pot fi aplicate în orice ordine (i.e. comută), dar că ordinea<br />
secvenţelor este predeterminată.<br />
P3.16 a. J = diag(1,−1). Prin urmare ‖Px‖ 2 J = ‖x‖ 2 J = x 2 1 −x 2 2.<br />
b. Ambele probleme sunt rău condiţionate în vecinătatea ”conului” x 1 = ±x 2.<br />
P3.17 Pentru orice transformare unitară U avem ‖Ux‖ = ‖x‖ = √ 7.<br />
a. Există două po<strong>si</strong>bilităţi. Dacă Q = Q H este un reflector hermitic atunci obţinem<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
σ = x1 1+i√ ‖x‖ = √ 7,<br />
|x 1| 2<br />
u 1 = 1+<br />
√<br />
2 2+i<br />
, u2 =<br />
7 1+i<br />
√<br />
2<br />
7 , β = u1.
INDICAŢII, RĂSPUNSURI, SOLUŢII 513<br />
Dacă Q este un reflector complex, atunci<br />
⎧<br />
⎨ σ = Re(x 1)‖x‖ = √ 7,<br />
2+i<br />
⎩ u 1 = 1, u 2 =<br />
1+ √ 7+i , τ = 1+√ 7+i<br />
√ .<br />
7<br />
P3.19 Fie Q ∈ IR n×n , ortogonală. Triangularizând ortogonal matricea Q, obţinem<br />
U n−1...U 2U 1Q = R, unde R este superior triunghiulară şi ortogonală, ca produs de<br />
matrice ortogonale. Aşadar R este diagonală; mai mult, normele coloanelor matricei Q se<br />
conservă prin înmulţirea cu reflectorii elementari, deci (alegând potrivit semnul) r ii = 1,<br />
adică R = I. Rezultă Q = U 1U 2...U n−1.<br />
P3.20 a. Se utilizează secvenţa de rotaţii Q T = P n,n+1...P 2nP 1n.<br />
b. u k = [0 ... 0 u kk u k+1,k 0 ... 0 u n+1,k ... u mk ] T (pentru A superior Hessenberg).<br />
c. u k = [0 ... 0 u kk 0 ... 0 u n+1,k ... u n+k,k 0 ... 0] T .<br />
P3.21 Pentruanualtera structuradezerouri, se anuleazăelementele a ik , i = n+1 : m,<br />
din blocul C, începând cu ultima coloană. Matricea R + rezultă inferior triunghiulară.<br />
P3.22 În cazul m > n, rotaţiile necesare pentru anularea elementelor subdiagonale<br />
pot fi grupate în cel mult m + n − 2 secvenţe de rotaţii disjuncte; de exemplu, în cazul<br />
m = 6, n = 5 avem m+n−2 = 9, iar gruparea se face astfel<br />
⎡ ⎤<br />
× × × × ×<br />
1 × × × ×<br />
2 3 × × ×<br />
.<br />
⎢ 3 4 5 × × ⎥<br />
⎣ 4 5 6 7 × ⎦<br />
5 6 7 8 9<br />
(Elementele marcate cu aceeaşi cifră sunt anulate de rotaţii disjuncte aprţinând aceleaişi<br />
secvenţe.)<br />
P3.23 a. Q T = P 12P 23...P n−1,n.<br />
b. Rotaţiile pot fi memorate printr-un<strong>si</strong>ngur număr z, vezi procedura ROTG. Totuşi,<br />
poziţiile (i,i + 2), i = 1 : n −2, nu rămân nule, la fel ca în cazul eliminării gaus<strong>si</strong>ene cu<br />
pivotare parţială.<br />
P3.24 Dacă b = ρe 1, atunci problema e banală, R + = R+ρe 1c T . De aici provine ideea<br />
de a anula ultimele n−1 componente ale lui b fără a altera prea mult structura lui R. Se<br />
vedeuşor căsecvenţade rotaţii (numaiîn această ordine !) P = P 12P 23...P n−1,n poate realiza<br />
acest obiectiv. Matricea PR este evident superior Hessenberg, deci<br />
H not<br />
= P(R + bc T ) = PR + ρe 1c T are aceeaşi structură. Mai departe se procedează ca<br />
în problema 3.23, i.e. R + = Q T H.<br />
P3.25 Cel mai <strong>si</strong>mplu, partiţionăm B, C pe coloane şi scriem BC T = ∑ p<br />
j=1 bjcT j .<br />
Problema se reduce astfel la cea anterioară.<br />
P3.26 Scriem<br />
]<br />
P + = [A T R T C T ]<br />
[<br />
RA<br />
C<br />
not<br />
= A T +A +,<br />
deci Q T A + = R +.<br />
P3.27 A + rezultă superior Hessenberg, vezi problema 3.23.<br />
P3.28 În cazul p < n, reflectorii Q j, j = p+1 : n, nu sunt activi. În cazul p > n, întâi<br />
se acumulează coloanele j = n+1 : p, apoi se aplică procedura GQR.<br />
P3.30 A doua, în care Q se ”umple” treptat.<br />
P3.31 a. Construcţia lui Y începe cu ultima coloană.
514 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
[ ]<br />
S <strong>si</strong><br />
b. S + = , unde s<br />
0 β i = W T u i, β i = 1/τ i. Forma din text este preferabilă,<br />
i<br />
deoarece aplicarea transformării nece<strong>si</strong>tă numai înmulţiri de matrice.<br />
P3.38 Se partiţionează B în blocuri şi se utilizează informaţia din triunghiul strict<br />
inferior al lui A pentru a se forma bloc-reflectorii necesari.<br />
P3.40 A = Q ′ R ′ .<br />
P3.41 G = R ′T R ′ , deci α = y T y, cu y = (R ′ ) −T c.<br />
P3.44 Procesul de ortogonalizare începe cu ultima coloană a n = q nl nn.<br />
P3.46 a. Notând c = R T d, putem scrie<br />
[ ]<br />
not<br />
G + = G+C T C = [R T C T R<br />
] = A T<br />
C<br />
+A +,<br />
[ ]<br />
not<br />
d + = R T d+C T y = [R T C T d<br />
] = A +b +,<br />
y<br />
deci problema se reduce la rezolvarea în sensul CMMP a <strong>si</strong>stemului A +x = b +, unde A +<br />
este matricea din problema 3.20.<br />
b. Se aduce A + la forma superior triunghiulară Q T PA + = R + şi se aplică transformările<br />
membrului drept.<br />
P3.47 Se procedează ca în secţiunea 3.5.1.<br />
P3.48 Matricea B = A T + are structura din problema 3.20. Prin urmare, dacă VB = R,<br />
unde V = V m...V 2V 1, atunci evident A +Z = L, unde Z = V T şi L = R T . Reflectorii<br />
reali V k = I n −ν k νk T /β k sunt matrice <strong>si</strong>metrice. În cazul complex, con<strong>si</strong>derat în text, am<br />
notat V k = Zk H , unde Z k = I −τ k ν k νk H şi τ k = 1/¯β k<br />
P3.49 a. O matrice epică A este inversabilă la dreapta, i.e. există A d astfel încât<br />
AA d = I m (de exemplu se poate lua A d = A + , unde A + = A T (AA T ) −1 ). Dacă (şi numai<br />
dacă) m = n, atunci A d = A −1 este unică. Dacă m < n, atunci mulţimea inverselor la<br />
dreapta este A d = A + +Z ′′ B, unde Z ′′ este o bază (nu neapărat ortogonală) a subspaţiului<br />
N = KerA, iar B este o matrice oarecare.<br />
b. P 2 = I m −AA + este proiectorul ortogonal pe S ⊥ = KerA T , deci are structura<br />
[ ]<br />
0 0<br />
P 2 = Q Q T , Q = [Q ′ Q ′′ ],<br />
0 I m−n<br />
unde Q T A = R. De asemenea, norma Frobenius este ortogonal invariantă.<br />
P3.50 a. Dacă A este monică şi Q T A = R, atunci A T este epică şi A T Q = R T . Prin<br />
urmare, notând y = Qv, <strong>si</strong>stemul A T y = c devine R T v = c. Mai departe se procedează ca<br />
în secţiunea 3.6.3.<br />
P3.51 În primul caz, dacă A este monică cu m > n, algoritmul are n etape. Pentru a<br />
anula elementele subdiagonale, acum se utilizează transformările elementare (stabilizate)<br />
M k , respectiv T k = M k P k (vezi secţiunea 2.1). Notând<br />
[ ]<br />
R<br />
′<br />
MA = R = , M −1 = S = [S ′ S ′′ ],<br />
0<br />
putem scrie A = S ′ R ′ , unde R ′ este inversabilă, deci S ′ este o bază (neortogonală) a<br />
subspaţiului S = ImA, iar S ′′ este o completare (oarecare) a lui S ′ până [ la o]<br />
bază a lui<br />
d<br />
IR m ′<br />
. Con<strong>si</strong>derând <strong>si</strong>stemul supradeterminat Ax = b şi notând Mb = d =<br />
d ′′ , condiţia<br />
de compatibilitate este d ′′ = 0.
INDICAŢII, RĂSPUNSURI, SOLUŢII 515<br />
În al doilea caz, dacă A este epică cu m < n obţinem<br />
AN = L = [L ′ 0], N = [N ′ N ′′ ],<br />
unde N ′′ este o bază (neortogonală) a subspaţiului [ N = ] KerA. Con<strong>si</strong>derând <strong>si</strong>stemul<br />
u<br />
′<br />
subdeterminat Ax = b şi notând x = Nu = N<br />
u ′′ , obţinem <strong>si</strong>stemul echivalent<br />
L ′ u ′ = b. Prin urmare, o soluţie a <strong>si</strong>stemului Ax = b este 19<br />
x B = N<br />
[<br />
(L ′ ) −1 b<br />
iar mulţimea tuturor soluţiilor este x = x B + N ′′ u ′′ , unde u ′′ ∈ IR n−m este un vector<br />
arbitrar.<br />
Pe scurt, analiza elementară a <strong>si</strong>stemelor liniare Ax = b cu m ≠ n poate fi făcută<br />
utilizând metoda eliminării [ gaus<strong>si</strong>ene. ]<br />
Q<br />
H<br />
0<br />
P3.52 a. Fie S =<br />
0 (R ′ ) −H . Calculaţi SHS H şi gă<strong>si</strong>ţi apoi permutarea<br />
potrivită.<br />
[ ]<br />
P2 (A + ) H<br />
b. Procedaţi direct, arătând că H<br />
A + −G −1 = I m+n, sau ţineţi seama de<br />
semnificaţia lui H în problema CMMP din secţiunea 3.5.<br />
P3.54 a. (A T SA+T)x ∗ = A T Sb. Ţineţi seama de problema 3.46.<br />
b. A trebuie să fie monică. Utilizând factorizarea Cholesky S = D1 T D 1 şi notând<br />
A ← D 1A, b ← D 1b, se obţine problema CMMP din secţiunea 3.5.<br />
P3.55 a. Notând cu λ ∈ IR m vectorul multiplicatorilor, funcţia lui Lagrange este<br />
L(x,λ) = 1 2 xT Gx−x T c+λ T (Ax−b).<br />
Anulând derivatele parţiale ale lui L, se obţin condiţiile<br />
0<br />
]<br />
,<br />
Gx ∗ −c+A T λ ∗ = 0, Ax ∗ = b. (7.9)<br />
În cazul G > 0, se utilizează factorizarea Cholesky G = R T R pentru a reduce problema la<br />
cea standard din secţiunea 3.6.<br />
b. Pentru a rezolva <strong>si</strong>stemul (7.9) se utilizează procedura de triangularizare ortogonală<br />
la dreapta AZ = [L 1 0], unde L 1 este inferior triunghiulară inversabilă. Notând<br />
[ ]<br />
x ∗ u1<br />
= Zu, u =<br />
u 2<br />
precum şi<br />
se obţine<br />
Z T GZ =<br />
⎧<br />
⎨<br />
⎩<br />
[ ] [ ]<br />
H11 H 12<br />
H12 T , Z T d1<br />
c = ,<br />
H 22 d 2<br />
H 11u 1 +H 12u 2 +L T 1λ ∗ = d 1<br />
H12u T 1 +H 22u 2 = d 2<br />
L 1u 1 = b.<br />
19 În terminologia specifică programării liniare, x B se numeşte soluţie de bază.
516 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
În cazul general, x ∗ este un punct de minim unic dacă şi numai dacă H 22 > 0. (Cum<br />
justificaţi această afirmaţie ) În consecinţă se poate utiliza factorizarea Cholesky<br />
H 22 = R2R T 2.<br />
P3.56 Se aplică algoritmul de triangularizare ortogonală Q T A = R. Notând<br />
Q T B = D, Q T b = d şi utilizând partiţii adecvate, <strong>si</strong>stemul de restricţii se scrie<br />
[ ] [ ] [ ]<br />
R1 D1 d1<br />
x+ y = ,<br />
0 D 2 d 2<br />
unde R 1 este superior triunghiulară inversabilă, iar D 2 este epică. Prin urmare, există<br />
matricea Z ortogonală astfel încât D 2Z = [0 R 2], unde R 2 este superior triunghiulară<br />
inversabilă. Notând<br />
[ ]<br />
v1<br />
D 1Z = [S 1 S 2], y = Z ,<br />
v 2<br />
se obţine<br />
[<br />
R1<br />
0<br />
]<br />
x+<br />
[ ][ ] [ ]<br />
S1 S 12 v1 d1<br />
= ,<br />
0 R 2 v 2 d 2<br />
iar din condiţia de minim (în care v 2 este fixat) rezultă v 1 = 0. Soluţia problemei este:<br />
⎧<br />
[ ]<br />
⎨<br />
v 1 = 0, v 2 = R −1<br />
2 d 2, ⇒ y ∗ 0<br />
= Z<br />
v 2<br />
⎩<br />
x ∗ = R −1<br />
1 (d 1 −S 12v 2).<br />
P3.57 Se utilizează factorizarea ortogonală CZ = [L 1 0]. Se notează x = Zu etc.<br />
P3.58 Următoarea procedură (LINPACK [XIII, pag. 8.7]) realizează permutarea<br />
1. Pentru k = 1 : n<br />
1. π k ← −π k<br />
2. Pentru k = 1 : n<br />
1. j = k<br />
1. C^at timp π j < 0<br />
1. π j ← −π j<br />
2. Dacă j ≠ k atunci<br />
1. x j ↔ x πj<br />
2. j ← π j<br />
Cap. 4. <strong>Calculul</strong> <strong>valorilor</strong> şi <strong>vectorilor</strong> <strong>proprii</strong><br />
P4.1 Spectrele celor două matrice sunt aceleaşi λ(A) = λ(B) = {2,2,4}. Matricea A<br />
este diagonalizabilă dar B nu.<br />
P4.2 Nu. Dacă x ∈ IR n , x ≠ 0, şi γ = α+iβ, α,β ∈ IR, β ≠ 0, atunci γx ∉ IR n .<br />
P4.3 Implicaţia ”A, B diagonalizabile ⇒ C diagonalizabilă” este evidentă. Reciproc,<br />
dacă C este diagonalizabilă, fie X C ∈ IC (m+n)×(m+n) o matrice ne<strong>si</strong>ngulară de vectori<br />
<strong>proprii</strong> [ ai ] matricei C. Avem CX C = X CΛ, cu Λ diagonală. Con<strong>si</strong>derând partiţia X C =<br />
XA<br />
= , (cu dimen<strong>si</strong>unile blocurilor, evidente) avem AX<br />
X A = X AΛ. În continuare,<br />
B<br />
rangX A = m (în caz contrar, X C nu ar fi ne<strong>si</strong>ngulară) şi, prin urmare, X A are m coloane<br />
liniar independente, care sunt vectori <strong>proprii</strong> ai matricei A. Deci, A este diagonalizabilă.<br />
Similar se arată că şi matricea B este diagonalizabilă.<br />
P4.4 În cazul general, răspunsul la întrebare este negativ. Într-adevăr, e.g. dacă<br />
A 1 = A 2 = λ ∈ IC şi A 12 ≠ 0 matricea A nu este diagonalizabilă. Există şi <strong>si</strong>tuaţii în
INDICAŢII, RĂSPUNSURI, SOLUŢII 517<br />
care răspunsul este afirmativ, cum este cazul în care λ(A 1) ∩ λ(A 2) = ∅. În această din<br />
urmă <strong>si</strong>tuaţie, fie X 1 şi X 2 matrice ne<strong>si</strong>ngulare [ de]<br />
vectori <strong>proprii</strong> pentru submatricele A 1 şi<br />
X1 X 12<br />
A 2. Atunci matricea (ne<strong>si</strong>ngulară) , unde X<br />
0 X 12 = YX 2 cu Y soluţia ecuaţiei<br />
2<br />
matriceale Sylvester A 1Y −YA 2 = −A 12 (v. §4.7), este o matrice de vectori <strong>proprii</strong> pentru<br />
matricea A, i.e. A este diagonalizabilă. [ ] [ ]<br />
AB 0 0 0<br />
P4.5 Arătaţi că matricele C = şi D = sunt asemenea (o<br />
B 0 B BA<br />
[ ]<br />
Im A<br />
matrice de transformare po<strong>si</strong>bilă este T = ). Dacă m > n, din λ(C) = λ(D)<br />
0 I n<br />
rezultă că mulţimea λ(AB)\λ(BA) are toate elementele nule.<br />
P4.6 b) Dacă (A,B) = (XΛ AX −1 ,XΛ BX −1 ) atunci, ţinând seama de faptul că<br />
matricele diagonale comută, AB = BA rezultă prin calcul direct. c) Presupunem că<br />
AB = BA. Fie X −1 def<br />
AX = Λ A şi con<strong>si</strong>derăm perechea (Ã, ˜B) = (Λ A,X −1 BX). Fără<br />
a reduce generalitatea, putem presupune că Λ A are valorile <strong>proprii</strong> multiple grupate, i.e.<br />
Λ A = diag(λ 1I n1 ,λ 2I n2 ,...,λ pI np ), cu λ i ≠ λ j pentru i ≠ j. Întrucât ØB = ˜BÃ,<br />
rezultă ˜B = diag(˜B 1, ˜B 2,..., ˜B p). Dar, B fiind diagonalizabilă, rezultă că blocurile ˜B k<br />
sunt diagonalizabile şi, conform punctului a), perechea (λ k I nk , ˜B k ) este diagonalizabilă.<br />
Prin urmare, (Ã, ˜B) este diagonalizabilă, de unde şi (A,B) este [ diagonalizabilă. ] [ Pentru ]<br />
1 1 0 1<br />
reciprocă, vezi punctul b). d) De exemplu, matricele A = şi B =<br />
0 1 0 0<br />
comută, dar nu sunt (<strong>si</strong>multan) diagonalizabile.<br />
P4.7 Fie x un vector propriu al matricei A, asociat valorii <strong>proprii</strong> λ, şi p cel mai<br />
mare întreg pentru care vectorii x, Bx, ..., B p−1 x sunt liniar independenţi, i.e. pentru<br />
care matricea X p = [x Bx ··· B p−1 x] este monică. Atunci, subspaţiul X = ImX p este<br />
B-invariant şi, prin urmare, conţine un vector propriu y = X pz al matricei B. Dar<br />
AB = BA implică AB k = B k A. Rezultă Ay = AX pz = λX pz = λy, i.e. y este vector<br />
propriu al matricei A.<br />
P4.8 Arătaţi că λ 1y2 H x 1 = λ 2y2 H x 1.<br />
P4.9 Fără a reduce generalitatea, putem con<strong>si</strong>dera că ‖x‖ 2 = 1. Conform [ lemei 4.2 ]<br />
(deflaţie unitară), dacă matricea [x ˜X] λ b<br />
este unitară, atunci B = X H H<br />
AX = .<br />
0 C<br />
Acum, dacăy esteunvectorpropriulastângaal matricei A, atunciz = X H y este unvector<br />
propriu la stânga al lui B, i.e. z H B = λz H . Cum λ este o valoare proprie <strong>si</strong>mplă, matricea<br />
λI n−1 − C este ne<strong>si</strong>ngulară. Rezultă z(2 : n) [ = (¯λI n−1<br />
] − C H ) −1 bz 1, cu z 1 = x H y ≠ 0<br />
0 1<br />
întrucât, în caz contrar, z = 0. Matricea A = nu este <strong>si</strong>mplă, iar vectorii <strong>proprii</strong><br />
0 0<br />
[ ] [ ]<br />
α 0<br />
sunt de forma x = şi y = , α,β ∈ IC, α ≠ 0, β ≠ 0, ceea ce implică y H x = 0.<br />
0 β<br />
P4.10 Conform problemelor 4.8 şi 4.9, yi H x j = 0 dacă i ≠ j şi putem scala vectorii<br />
<strong>proprii</strong> astfel încât yi H x i = 1. Deci, dacă X şi Y sunt cele două matrice de vectori <strong>proprii</strong>,<br />
atunci Y H X = I n. Rezultă A = XΛX −1 = XΛY H = ∑ n<br />
i=1 λixiyH i .<br />
P4.11 Din Ax = λx, x ≠ 0, rezultă imediat A k x = λ k x (inducţie), (A − µI n)x =<br />
= (λ−µ)x şi, dacă A este ne<strong>si</strong>ngulară (caz în care avem λ ≠ 0), 1 x = λ A−1 x.<br />
P4.12 AvemA k x = λ k xpentru toţi λ ∈ λ(A) şi xvector propriu asociat lui λ. Rezultă<br />
Px = p(A)x = p(λ)x.<br />
P4.13 Fie λ ∈ λ(A) şi x un vector propriu asociat. Atunci, conform problemei 4.12,<br />
Px = p(λ)x şi Qx = q(λ)x. Întrucât Q este ne<strong>si</strong>ngulară avem q(λ) ≠ 0 şi, prin urmare,
518 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
Q −1 x = 1 x. Rezultă Rx = r(λ)x.<br />
q(λ)<br />
P4.14 Dacă valorile <strong>proprii</strong> ale matricei A sunt numerotate în ordinea descrescătoare<br />
a modulelor, atunci avem ρ(A) = |λ 1|, ρ(A −1 ) = 1/|λ n|. Apoi se aplică teorema 4.10.<br />
P4.15 a) Pentru matricele nilpotente, λ ∈ λ(A) ⇒ λ k ∈ λ(0), i.e. λ k = 0, i.e. λ = 0.<br />
b) Pentru matricele idempotente, fie x cu ‖x‖ = 1, un vector propriu al matricei A asociat<br />
valorii <strong>proprii</strong> λ. Din x H A 2 x = x H Ax rezultă λ 2 = λ, i.e. λ ∈ {0,1}.<br />
P4.16 a) Câte unul <strong>si</strong>ngur în ambele cazuri. b) Dacă o celulă Jordan de ordin n ar fi<br />
diagonalizabilă, atunci ar avea n vectori <strong>proprii</strong> liniar independenţi ceea ce ar contrazice<br />
a). c) Avem J λ = λI n +J 0. Cum matricea unitate comută cu orice altă matrice, pentru<br />
calculul matricei Jλ k se poate utiliza formula binomului lui Newton, în care se ţine seama<br />
de faptul că J0 i este o matrice care are elementele de pe supradiagonala i egale cu unitatea,<br />
iar toate celelalte elemente sunt nule. Dacă λ ≠ 0, Jλ k nu este diagonalizabilă pentru nici<br />
un k ∈ IN ∗ . J0 k = 0, deci diagonală, pentru orice k ≥ n. d) Se rezolvă ecuaţia XJ λ = I n<br />
care, scrisă pe coloane, se reduce la rezolvarea <strong>si</strong>stemelor liniare λx 1 = e 1, x j−1+λx j = e j,<br />
j = 2 : n (în această ordine!). Nu.<br />
P4.17 Fie ˜H(λ) = H − λI n. Matricea ˜H 21(λ) def<br />
= ˜H (2:n,1:n−1) (λ) este ne<strong>si</strong>ngulară<br />
∀λ ∈ IC, deci rang ˜H(λ) ≥ n − 1, ∀λ ∈ IC. În particular, H = ˜H(0) şi, prin urmare,<br />
rangul lui H nu poate fi decât n sau n−1. Vectorii <strong>proprii</strong> x asociaţi unei valori <strong>proprii</strong><br />
λ ∈ λ(H) trebuie să satisfacă ˜H(λ)x = 0, de unde rezultă x(1 : n−1) = v(λ)x n cu v(λ) =<br />
−1<br />
= ˜H 21 (λ) ˜H (2:n,n) (λ), i.e. toţi vectorii <strong>proprii</strong> asociaţi lui λ sunt de forma x = ρ[v T (λ) 1] T<br />
cu ρ ∈ IC \ {0} arbitrar, indiferent de ordinul de multiplicitate algebrică a lui λ. Deci,<br />
multiplicitatea geometrică a unei valori <strong>proprii</strong> a unei matrice Hessenberg ireductibile nu<br />
poate fi decât 1 şi, prin urmare, o astfel de matrice cu valori <strong>proprii</strong> multiple nu este<br />
diagonalizabilă.<br />
P4.18 a) Se calculează det(λI n − C), e.g. prin dezvoltare după elementele primei<br />
linii. b) C este ne<strong>si</strong>ngulară dacă şi numai dacă 0 ∉ λ(C), i.e. p(0) = p n ≠ 0. Pentru<br />
calculul inversei recomandăm rezolvarea ecuaţiei matriceale CX = I n pe blocuri definite<br />
convenabil sau con<strong>si</strong>derarea unei permutări F = PC a liniilor astfel încât matricea F este<br />
inferior triunghiulară, apoi C −1 = F −1 P. c) Fie x un vector propriu al matricei C asociat<br />
valorii <strong>proprii</strong> λ. Con<strong>si</strong>derând x n ≠ 0, e.g. x n = 1 rezultă x k = λ n−k . Obţinem o matrice<br />
a <strong>vectorilor</strong> <strong>proprii</strong> de tip Vendermonde care este ne<strong>si</strong>ngulară dacă şi numai dacă valorile<br />
<strong>proprii</strong> sunt distincte, <strong>si</strong>ngura <strong>si</strong>tuaţie în care C este diagonalizabilă. La acest ultim rezultat<br />
se ajunge şi observând că matricea C are o structură superior Hessenberg ireductibilă<br />
şi aplicând rezultatul problemei precedente. Pentru calculul unui vector propriu al matricei<br />
C T asociat aceleeaşi valori <strong>proprii</strong>, presupuneţi x 1 ≠ 0 şi rezolvaţi <strong>si</strong>stemul. Se obţine<br />
x k = λ k−1 +p 1λ k−2 +··· +p k−1 . d) Mai sunt două structuri cu coeficienţi polinomului<br />
pe ultima linie, respectiv, pe ultima coloană, în ordine inversă.<br />
P4.19 a) O matrice reală de rotaţie plană P jk (i.e. în planul (j,k)), de ordinul n,<br />
definită de scalarii c şi s are, evident, n − 2 valori <strong>proprii</strong> egale cu 1, celelalte două fiind<br />
λ j,k = c ± is. Putem lua e l drept vectori <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong> λ l = 1. Dacă<br />
s ≠ 0, x j,k = e j ± ie k sunt vectori <strong>proprii</strong> asociaţi <strong>valorilor</strong> <strong>proprii</strong> complexe. b) Un<br />
reflector elementar real U = I n − 2uu T cu u ∈ IR n , ‖u‖ = 1, fiind <strong>si</strong>metric are toate<br />
valorile <strong>proprii</strong> reale şi fiind ortogonal are toate valorile <strong>proprii</strong> de modul 1. Deci valorile<br />
<strong>proprii</strong> sunt 1 sau −1. Fie acum un reflector elementar V astfel încât V T u = e 1. Avem<br />
V T UV = I n − 2e 1e T 1 = diag(−1,1,...,1), i.e. există o <strong>si</strong>ngură valoare proprie egală cu<br />
−1. Un set complet de vectori <strong>proprii</strong> este dat de coloanele lui V.<br />
P4.20 Presupunem că matricea normală A este triunghiulară. Avem A = UΛU H<br />
cu U unitară şi Λ diagonală. Atunci A H = U¯ΛU H . Rezultă a ij = λ iU(i,:)(Ū(j,:)) T şi<br />
ā ji = ¯λ iU(i,:)(Ū(j,:))T , unde λ i = Λ(i,i). Deci, dacă a ij = 0, atunci şi a ji = 0. Pentru
INDICAŢII, RĂSPUNSURI, SOLUŢII 519<br />
cazuri particulare de matrice normale, demonstraţia poate fi mai directă. De exemplu,<br />
dacă matricea unitară Q este, e.g. superior triunghiulară, atunci inversa ei Q −1 = Q H<br />
este <strong>si</strong>multan superior [ şi inferior ] triunghiulară, i.e. diagonală.<br />
α β<br />
P4.21 Fie A = . Din A T A = AA T rezultă β 2 = γ 2 . Dacă γ = β matricea<br />
γ δ<br />
este <strong>si</strong>metrică, iar dacă γ = −β rezultă δ = α.<br />
P4.22 Fie A normală şi S = Q H AQ o formă Schur reală a lui A, în care, fără a reduce<br />
generalitatea, putem presupune că valorile <strong>proprii</strong> reale (în număr de q) sunt <strong>si</strong>tuate în<br />
primele q poziţii diagonale. Deci S este normală şi are structura<br />
⎡<br />
⎤<br />
R A 1,q+1 ··· A 1p<br />
A q+1,q+1 ··· A q+1,p<br />
S = ⎢<br />
⎣ . ..<br />
. ⎥ .. ⎦ ,<br />
A pp<br />
cu R ∈ IR q×q superior triunghiulară. Din (S T S = SS T ) 11 rezultă R T R = RR T +<br />
+ ∑ p<br />
Bj, unde j=q+1 Bj = A1jAT 1j, j = q + 1 : p, sunt matrice <strong>si</strong>metrice, pozitiv semidefinite.<br />
Cum însă tr(R T R) = tr(RR T ), rezultă ∑ p<br />
trBj = 0. În continuare, din<br />
j=q+1<br />
faptul că λ i(B j) ≥ 0 pentru toţi i, rezultă trB j = ∑ λi(Bj) ≥ 0. Deci, trBj = 0 pentru<br />
i<br />
toţi j şi, prin urmare, λ i(B j) = 0 pentru toţi i şi j. Cum însă o matrice <strong>si</strong>metrică având<br />
toate valorile <strong>proprii</strong> nule este nulă (demonstraţi!) B j = 0 şi, de aici, A 1j = 0 pentru toţi<br />
j. Acum R T R = RR T , i.e. R este normală, şi cum este triunghiulară, este diagonală (v.<br />
problema 4.20). În continuare se procedează <strong>si</strong>milar. Din (S T S = SS T ) q+1,q+1 rezultă<br />
A q+1,j = 0, j = q+2 : p şi că blocul 2 × 2 A q+1,q+1 este normal. Având valori <strong>proprii</strong><br />
complexe, conform problemei 4.21, are structura din teoremă etc. Reciproca este imediată.<br />
P4.23 c) Fie B = 1 (A + 2 AH ) şi C = 1 (A − 2 AH ). Atunci A = B + C şi, conform<br />
punctelor a), b), B este hermitică iar C este antihermitică. Presupunem că avem şi A =<br />
= ˜B+ ˜C cu ˜B hermitică şi ˜C antihermitică. Atunci2B = A+A H = ˜B+ ˜C+ ˜B H + ˜C H = 2˜B.<br />
Deci B = ˜B. Analog, 2C = A−A H = 2˜C, i.e. C = ˜C. Deci descompunerea este unică.<br />
d) Se utilizează c) cu S = B şi T = −iC.<br />
P4.24 Se utilizează relaţiile din definiţii.<br />
P4.25 Se utilizează relaţiile din definiţii şi expre<strong>si</strong>ile părţilor hermitică şi antihermitică<br />
(v. soluţia problemei 4.23).<br />
P4.26 Se con<strong>si</strong>deră un set de n vectori liniar independenţi, e.g. ortogonali.<br />
P4.27 Fie P o matrice de permutare. Întrucât P este unitară, A este normală (hermitică,<br />
antihermitică, <strong>si</strong>metrică, anti<strong>si</strong>metrică) dacă şi numai dacă la fel este şi matricea<br />
C = P T AP. Putem alege P astfel încât B = C(1 : k,1 : k). a) Evident. b) Nu. De<br />
[ ] 6 3 1<br />
exemplu, matricea A = 1 3 3 este normală, dar B = A(1:2,1:2) nu este.<br />
3 −1 3<br />
P4.28 Conform teoremei 4.3, λ min(A) ≤ µ ≤ λ max(A).<br />
P4.29 Dacă B = Q H AQ ∈ IC p×p , unde Q H Q = I p, atunci aplicând matricei B teorema<br />
Courant-Fisher avem µ k = max dimV=k min x∈VS x H Q H AQx, unde V S este mulţimea<br />
<strong>vectorilor</strong> de normă euclidiană unitară din subspaţiul V ⊂ IC p . Acum, este uşor de constatat<br />
că Ṽ = {y ∈ IC n | y = Qx, x ∈ V} este un subspaţiu liniar al lui IC n , de aceeaşi<br />
dimen<strong>si</strong>une cu dimen<strong>si</strong>unea lui V (i.e. k) şi că mulţimea tuturor subspaţiilor Ṽ este<br />
numai o parte a mulţimii tuturor subspaţiilor de dimen<strong>si</strong>une k din IC n . Prin urmare,<br />
λ k = max dim Ṽ=k min x∈ṼS xH Ax ≥ µ k . Pentru cel de al doilea set de inegalităţi se utilizează<br />
cealaltă caracterizare minimax a <strong>valorilor</strong> <strong>proprii</strong> din teorema Courant-Fisher.
520 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
[ ]<br />
P4.30 Fie matricea hermitică B = U1 H a11 βe T 1<br />
AU 1 = = F + G, unde F =<br />
¯βe 1 C<br />
[ ] [ ]<br />
a11 0 0 βe<br />
T<br />
= , G = 1<br />
= F + G, obţinută după aplicarea primului pas al<br />
0 C ¯βe 1 0<br />
algoritmului de tridiagonalizare TQ. Evident µ = ‖A(1,2 : n‖ 2 = |β|, iar matricele F şi G<br />
sunt hermitice. Cum a 11 ∈ λ(F), iar λ min(G) = −µ şi λ max(G) = µ, conform teoremei 4.6<br />
rezultă exisţenţa unei valori <strong>proprii</strong> λ a lui B, i.e. alui A, astfel încât a 11−µ ≤ λ ≤ a 11+µ,<br />
q.e.d.<br />
[ ] [ ]<br />
1 i 1 i<br />
P4.31Deexemplu, matricele complexeA = şiB = sunt<strong>si</strong>metrice.<br />
i 1 i i<br />
A este normală, dar B nu.<br />
P4.32 Fie S = Q H AQ forma Schur a lui A şi M = max i=1:n−1 (|s ij|). Con<strong>si</strong>derăm matricea<br />
diagonală D ∈ IR n×n de forma D = diag(1,δ,δ 2 ,...,δ n−1 ). Atunci ‖D −1 SD‖ ∞ =<br />
j=i+1:n<br />
= max ∑ n<br />
i=1:n(|λ i|+<br />
j=i+1 |<strong>si</strong>j|δj−i ) ≤ max ∑ n<br />
i=1:n(|λ i|+M<br />
j=i+1 δj−i ) ≤ max i=1:n(|λ i|+<br />
+M ∑ n−1<br />
j=1 δj ). Alegând δ astfel încât ∑ n−1<br />
j=1 δj ≤ M (arătaţi că se poate!) atunci se<br />
ǫ<br />
obţine inegalitatea ‖D −1 Q H AQD‖ ∞ ≤ ρ(λ)+ǫ. Este uşor de văzut că ‖·‖ : IC n×n → IR +<br />
definită de ‖X‖ = ‖D −1 Q H XQD‖ ∞ este o normă matriceală con<strong>si</strong>stentă.<br />
P4.33Pentruorice matrice T ∈ IC n×n ne<strong>si</strong>ngulară şi B = T −1 AT avemB k = T −1 A k T.<br />
Prin urmare, A este convergentă dacă şi numai dacă este convergentă orice matrice asemenea<br />
cu A. Pentru matricele diagonalizabile rezultatul este imediat. În cazul general, se<br />
utilizează forma canonică Jordan arătând că un bloc Jordan J λ (vezi notaţia din problema<br />
4.16) este convergent dacă şi numai dacă |λ| < 1.<br />
P4.34 Pentru fiecare matrice şi transpusa ei se aplică teorema Gershgorin şi se intersectează<br />
domeniile astfel obţinute.<br />
P4.35 Punctul cel mai depărtat de originea planului complex al reuniunii discurilor<br />
Gergshgorin se află la distanţa δ = max i=1:n(|a ii| +r i) = max ∑ n<br />
i=1:n( |aij|) = ‖A‖∞.<br />
j=1<br />
Prin urmare ρ(A) ≤ ‖A‖ ∞. Aplicând acelaşi raţionament şi pentru matricea A T se obţine<br />
evaluarea ρ(A) ≤ min(‖A‖ 1,‖A‖ ∞), rezultat în deplină concordanţă cu teorema 4.10.<br />
P4.36 a) Se utilizează b ij = a ij<br />
δ j<br />
δ i<br />
. În principiu, da (v. punctul b)). b) Dacă A<br />
are toate elementele pozitive avem r = min D‖D −1 AD‖ ∞ = min τ>0(max(a 11+τa 12,a 22+<br />
+ 1 τ a21)) (am notat τ = δ 2<br />
δ1<br />
). Se obţine r = ρ(A). c) r = 3+ √ 7 > √ 14 = ρ(A).<br />
P4.37 Din teorema discurilor Gershgorin se obţine λ(A) ⊂ D = [−21,31]. Da, de<br />
exemplu scalând cu D = diag(1,2,2) se obţine λ(A) ⊂ D ′ = [−13,27]. (Spectrul lui A<br />
este λ(A) = {−9,−9,27}).<br />
P4.38 a) 0 nu aparţine nici unui disc Gersgorin, deci 0 ∉ λ(A). b) Toate discurile<br />
Gershgorin sunt <strong>si</strong>tuate în IC + = {λ ∈ IC | Reλ > 0}. c) Caz particular al lui b).<br />
P4.39 a) Dacă A are (cel puţin) o linie nulă, atunci rezultatul este evident. În caz<br />
contrar, fie δ i = ∑ n<br />
|aij| > 0, i = 1 : n, şi D = diag(δ1,δ2,...,δn). Matricea B = j=1 D−1 A<br />
are ρ(B) ≤ ‖B‖ ∞ ≤ 1. Deci, |detB| = ∏ n<br />
|λi(B)| ≤ 1. Inegalitatea cerută se obţine din<br />
i=1<br />
|detA| = |detD|·|detB| ≤ |detD|. b) Se aplică a) pentru matricea A T .<br />
P4.40 Rezultatul generalizează teorema discurilor lui Gershgorin, care se obţine luând<br />
α = 1 (pentru A) sau α = 0 (pentru A T ). De aceea con<strong>si</strong>derăm numai cazul α ∈ (0,1).<br />
Presupunem r i > 0, c i > 0, i = 1 : n (altfel există o linie sau o coloană cu toate elementele<br />
extradiagonale nule, care poate fi deplasată în prima poziţie printr-o transformare de
INDICAŢII, RĂSPUNSURI, SOLUŢII 521<br />
asemănare tip permutare). Vom utiliza inegalitatea Hölder, i.e.<br />
(<br />
n∑ n∑<br />
) 1<br />
p<br />
( n∑<br />
)1<br />
q<br />
|α i||β i| ≤ |α i| p |β i| q , unde p > 1,<br />
i=1 i=1<br />
i=1<br />
1<br />
p + 1 q = 1.<br />
Fie λ ∈ λ(A), x ≠ 0 un vector propriu asociat şi x i = x(i). De asemenea, fie p = 1 şi α<br />
q = 1 . Avem 1−α ∣ ∣∣∣∣∣∣ n∑ n∑ n∑<br />
|λ−a ii||x i| = ∣ a ijx j ≤ |a ij||x j| = |a ij| α (|a ij| 1−α |x j|) ≤<br />
i.e.<br />
sau<br />
≤<br />
⎛<br />
⎜<br />
⎝<br />
n∑<br />
j=1<br />
j≠i<br />
|a ij|<br />
∣<br />
j=1<br />
j≠i<br />
j=1<br />
j≠i<br />
⎞α⎛<br />
⎟ ⎜<br />
n∑<br />
⎠ ⎝ (|a ij| 1−α |x j|) 1<br />
j=1<br />
j≠i<br />
|λ−a ii|<br />
r α i<br />
|x i| ≤<br />
( |λ−aii|<br />
|x i|<br />
r α i<br />
1−α<br />
⎛<br />
⎜<br />
⎝<br />
⎞<br />
⎟<br />
⎠<br />
1−α<br />
= r α i<br />
n∑<br />
|a ij||x j|<br />
j=1<br />
j≠i<br />
) 1<br />
1−α<br />
≤<br />
j=1<br />
j≠i<br />
⎛<br />
⎜<br />
⎝<br />
1<br />
1−α<br />
n∑<br />
(|a ij| 1−α |x j|) 1<br />
j=1<br />
j≠i<br />
⎞<br />
⎟<br />
⎠<br />
n∑<br />
|a ij||x j|<br />
j=1<br />
j≠i<br />
Însumând ultimele inegalităţi în raport cu i obţinem<br />
i.e.<br />
n∑<br />
( |λ−aii|<br />
i=1<br />
r α i<br />
) 1<br />
1−α<br />
k=1<br />
|x i|<br />
1<br />
1−α ≤<br />
r α k<br />
n∑<br />
i=1<br />
n∑<br />
|a ij||x j|<br />
j=1<br />
j≠i<br />
1−α<br />
,<br />
1<br />
1−α.<br />
1<br />
1−α =<br />
(<br />
n∑<br />
( ) )<br />
1<br />
1−α |λ−akk |<br />
1<br />
c k − |x k | 1−α ≥ 0.<br />
n∑<br />
c j |x j|<br />
j=1<br />
1−α<br />
⎞<br />
⎟<br />
⎠<br />
1<br />
1−α,<br />
Evident, în ultima inegalitate, coeficienţii pentru |x k | 1−α nu pot fi toţi negativi. Prin<br />
urmare, există k astfel încât |λ−a kk | ≤ rkc α 1−α<br />
k<br />
, q.e.d.<br />
P4.41 Fie λ ∈ λ(A), x ≠ 0 un vector propriu asociat şi x i = x(i). De asemenea, fie<br />
|x p| = max i=1:n|x i|. Dacă x p este <strong>si</strong>ngura componentă nenulă a lui x, atunci λ = a pp şi,<br />
întrucât a ii ∈ D pentru toţi i ∈ 1 : n, rezultă λ ∈ D. Presupunem, în continuare, că x<br />
are cel puţin două componente nenule şi fie x q ≠ 0 cea de a două componentă, în ordinea<br />
descrescătoare a modulelor, i.e. |x p| ≥ |x q| ≥ |x i|, i = 1 : n. i ≠ p,q. Avem<br />
∣ ∣∣∣∣∣∣ n∑ n∑<br />
|λ−a pp||x p| =<br />
a pjx j ≤ |a pj||x q| = r p|x q|,<br />
∣j=1<br />
j≠p<br />
j=1<br />
j≠p<br />
1<br />
1−α<br />
,
522 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
|x q|<br />
unde r p este raza discului Gershgorin asociat liniei p. Rezultă |λ−a pp| ≤ r p<br />
|x . Similar p|<br />
|x p|<br />
se arată |λ−a qq| ≤ r q . Obţinem |λ−app||λ−aqq| ≤ rprq, i.e. λ ∈ D, q.e.d.<br />
|x q|<br />
P4.42 Ambele valori <strong>proprii</strong> ale lui A sunt egale cu −1. Un vector propriu unitar<br />
asociat este x = (1/ √ [ ]<br />
1<br />
2) . Pentru obţinerea unei forme Schur se aplică deflaţia ortogonală<br />
în cazul real, respectiv deflaţia unitară în cazul complex sau pentru obţinerea<br />
1<br />
formelor Schur complexe ale unor matrice reale. De exemplu, luând Q = [x y], unde<br />
x T y = 0, obţinem y = ±(1/ √ [ ]<br />
1<br />
2) (de asemenea cu ‖y‖ = 1), de unde rezultă<br />
−1<br />
[ ]<br />
−1 ±4<br />
Q T AQ = . Să remarcăm faptul că deşi matricea A este defectivă (i.e. nu<br />
0 −1<br />
este <strong>si</strong>mplă) forma Schur există şi se poate construi. Valorile <strong>proprii</strong> ale lui B nu sunt<br />
reale, deci o FSR a lui B este chiar B etc.<br />
P4.43Fie V ∈ IC n×(n−k) ocompletare aluiU pânălaomatrice unitară, [ i.e. astfelîncât ]<br />
U<br />
Q = [U V ] este unitară. Atunci f(X) = ‖Q H H AU −X<br />
(AU −UX)‖ F = ‖<br />
V H ‖ F =<br />
AU<br />
√<br />
= ‖U H AU −X‖ 2 F +‖V H AU‖ 2 F . Evident, minimul lui f este ‖V H AU‖ F şi se atinge<br />
pentru X = U H AU.<br />
P4.44 Prezentăm două soluţii: Soluţia 1. Fie S = U H AU o formă Schur a lui A.<br />
Notând T = U H BU, din AB = BA rezultă ST = TS, cu S superior triunghiulară cu<br />
elementele diagonale distincte. Din egalitatea primelor coloane a acestei relaţii rezultă<br />
<strong>si</strong>stemul liniar ne<strong>si</strong>ngular omogen (S(2:n,2:n)−s 11I n−1)T(2:n,1) = 0, de unde obţinem<br />
T(2:n,1) = 0, i.e. T este superior triunghiulară în prima coloană, etc. Soluţia 2. Dacă<br />
λ ∈ λ(A) şi Ax = λx, atunci BAx = λBx, A(Bx) = λ(Bx) şi, întrucât valorile <strong>proprii</strong> ale<br />
lui A sunt distincte, A are un set complet de vectori <strong>proprii</strong> liniar independenţi şi Bx = αx<br />
(Bx este un vector propriu atât pentru A cât şi pentru B). Întrucât procedura de deflaţie<br />
pentru reducerea la forma Schur utilizează vectori <strong>proprii</strong>, forma Schur a matricelor A şi<br />
B se obţine cu aceeaşi transformare de asemănare (argumente <strong>si</strong>milare se pot aduce şi în<br />
cazul real).<br />
P4.45 a) Fie U 1 un reflector complex (hermitic, v. cap.3) astfel încât U1 H x = ρe 1,<br />
ρ ≠ 0. Atunci v = U1e1 este vectorul căutat. Pentru calculul său (i.e. al elementelor<br />
1¯ρ<br />
definitorii ale reflectorului) se poate utiliza procedura Hc şi relaţia de mai sus. b) Se<br />
verifică imediat că Bx 1 = 0 şi Bx B i = λ ix B i , i = 2 : n. Altfel, con<strong>si</strong>deraţi o matrice unitară<br />
U astfel încât Ue 1 este coliniar cu x 1 şi calculaţi U H BU.<br />
P4.46 a) Prezentăm două soluţii. Soluţia 1 (geometrică). Fie ˜X complementul<br />
ortogonal al subspaţiului Imx şi Ỹ complementul ortogonal al subspaţiului Imy. Fie<br />
Ũ = ˜X ⋂ Ỹ şi V = ˜X + Ỹ. Întrucât dim ˜X = dimỸ = n − 1 şi dim(V) ≤ n, rezultă<br />
n − 1 ≥ dimŨ = dim ˜X + dimỸ − dimV ≥ n − 2, cazul generic fiind dimŨ = n − 2.<br />
Fie, în cazul generic, Ũ ∈ IC n×(n−2) o matrice ale cărei coloane formează o bază ortogonală<br />
pentru Ũ, ˜X = [x2 Ū ] ∈ IC n×(n−1) o matrice ale cărei coloane formează o bază<br />
ortogonală pentru ˜X şi Ỹ = [y 2 Ũ ] ∈ IC n×(n−1) o matrice ale cărei coloane formează<br />
o bază ortogonală pentru Ỹ. Definim matricele X = [x Ỹ ] şi Y = [y ˜X]. Avem<br />
⎡<br />
y H ⎤ ⎡ ⎤<br />
Y H X = ⎣ y2<br />
H ⎦ [ ] 1 0 0<br />
x x 2 Ũ = ⎣ 0 y2 H x 2 0 ⎦ . Arătaţi că x2 şi/sau y 2 pot<br />
Ũ H 0 0 I n−2<br />
fi scalaţi astfel încât y2 H x 2 = 1. Soluţia 2 (procedurală). Fie U 1 reflectorul pentru care
INDICAŢII, RĂSPUNSURI, SOLUŢII 523<br />
U H 1 y = αe 1. Notăm U H 1 X = Z =<br />
[ ]<br />
z11 Z 12<br />
, U1 H Y = W =<br />
Z 21 Z 22<br />
[<br />
z11<br />
[ ]<br />
α W12<br />
. Din<br />
0 W 22<br />
]<br />
condiţiile Xe 1 = x şi Y H X = W H Z = I n, rezultă ecuaţiile = U<br />
Z 1x, W22Z H 22 =<br />
21<br />
= I n−1, W12z H 11 + W22Z H 21 = 0, care sunt satisfăcute, de exemplu, pentru Z 22 = I n−1,<br />
W 22 = I n−1, W 12 = − 1<br />
¯z 11<br />
Z21. H b) Dacă λ este o valoare proprie <strong>si</strong>mplă a matricei A, conform<br />
problemei 4.9, vectorii <strong>proprii</strong> asociaţi x (la dreapta) şi y (la stânga) satisfac condiţia<br />
y H x ≠ 0 şi se pot scala astfel încât y H x = 1. Fie matricea X şi X −1 = Y H calculate ca la<br />
punctul a). Atunci X −1 AX =<br />
următorul.<br />
[ y<br />
H<br />
Ỹ H ]<br />
A [ x ˜X<br />
] =<br />
[ λ 0<br />
0 Ỹ H A ˜X<br />
1. Pentru k = 1 : n−1<br />
1. x = vp(A(k : n,k : n))<br />
2. y = vp((A(k : n,k : n)) T ), y = ȳ<br />
3. x = x<br />
y H x<br />
4. Se calculează matricele ˜X şi Ỹ (v. punctul a))<br />
5. A(k,k) = y H A(k : n,k : n)x<br />
6. A(k,k +1 : n) = 0, A(k +1 : n,k) = 0,<br />
7. A(k +1 : n,k +1 : n) ← Ỹ H A(k +1 : n,k +1 : n) ˜X.<br />
]<br />
. Algoritmul este<br />
P4.47 Pentru A, dacă vectorul iniţial are prima componentă nenulă, rezultatul este<br />
±e 1, întrucât A(±e 1) = 5(±e 1) şi λ(A) = {5,2,1}. Pentru B avem λ(B) = {α,1− √ β,<br />
1+ √ β}. Deci, B va avea o valoare proprie dominantă în următoarele <strong>si</strong>tuaţii: a) β ≤ 0<br />
şi |α| > √ 1−β şi b) β > 0 şi |α| ≠ 1+ √ [ ]<br />
β.<br />
[ ]<br />
−2 1<br />
1<br />
P4.48 Fie matricea A = şi un vector iniţial y (0) = . Atunci vectorul<br />
0 1<br />
0<br />
curent generat de metoda puterii va fi y (k) = Ak y (0)<br />
‖A k y (0) ‖ = (−1)k y (0) şi, prin urmare,<br />
e k = ‖y (k) −y (k−1) ‖ = ‖(−1) k y (0) −(−1) k−1 y (0) ‖ = 2 pentru toţi k deşi y (0) este un vector<br />
propriu asociat valorii <strong>proprii</strong> dominante λ 1 = −2 a matricei A (de reţinut că criteriul<br />
utilizat în algoritmii 4.1 şi 4.2 funcţionează întrucât 1 − |(y (k) ) T y (k−1) | = 0). Evident,<br />
<strong>si</strong>tuaţia de mai sus se datorează faptului că valoarea proprie dominantă este negativă şi,<br />
deşi vectorii din şir sunt orientaţi corespunzător ca direcţie, îşi schimbă sensul la fiecare<br />
pas. În cazul complex, vectorii <strong>proprii</strong> unitari sunt determinaţi până la o multiplicare<br />
cu un număr complex de modul unitar, i.e. e iφ cu φ ∈ IR şi, prin urmare, este po<strong>si</strong>bil<br />
ca vectorii din şirul generat de metoda puterii să tindă către mulţimea <strong>vectorilor</strong> <strong>proprii</strong><br />
unitari asociaţi valorii <strong>proprii</strong> dominante deşi diferenţa dintre doi vectori consecutivi să<br />
nu tindă către zero. Pentru metoda puterii inverse motivaţiile sunt aceleaşi.<br />
P4.49 Se aplică <strong>si</strong>stematic lema de deflaţie unitară. Rezultă următoarea schemă de<br />
calcul.<br />
1. Pentru k = 1 : n−1<br />
1. ˜x k = vp(A(k : n,k : n))<br />
2. ˜x k = ˜x k<br />
‖˜x k ‖<br />
3. Se determină o matrice unitară ˜Q k astfel încât ˜Q k e 1 = ˜x k<br />
4. A(k : n,k : n) = ˜Q H k A(k : n,k : n)<br />
5. A(:,k : n) = A(:,k : n)˜Q k .
524 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
Dacămatricea A are valorile <strong>proprii</strong> distincte, λ k = A(k,k), z k este soluţia <strong>si</strong>stemului liniar<br />
(A(1 : k−1,1 : k−1)−λ k I k−1 )z k = −A(1 : k−1,k : n)˜x k (unde A este matricea dată aflată<br />
în starea de dupăexecuţia pasului [ ] curent k din schema de mai sus) şi Q k = diag(I k−1 , ˜Q k ),<br />
zk<br />
atunci x k = Q 1Q 2...Q k−1 este vector propriu al matricei iniţiale asociat valorii<br />
˜x k<br />
<strong>proprii</strong> λ k .<br />
P4.50 Schema de calcul este <strong>si</strong>milară celei care stă la baza algoritmului HQ:<br />
1. Pentru k = 1 : n−2<br />
1. Se determină i k astfel încât |a ik k| = max i=k+1:n (|a ik |)<br />
2. A(i k ,k : n) ↔ A(k +1,k : n)<br />
3. Se determină matricea inferior triunghiulară elementară M k+1<br />
astfel încât (M k+1 A)(k +2 : n,k) = 0<br />
4. A = M k+1 A<br />
5. A(:,k +1) ↔ A(:,i k )<br />
6. A = AM −1<br />
k+1 .<br />
Schema este de două ori mai eficientă decât algoritmul HQ.<br />
P4.51 Ideea este următoarea: gă<strong>si</strong>ţi un reflector elementar (hermitic) U 1, astfel încât<br />
U1 H z = ρe 1. Calculaţi A 1 = U1 H AU 1. Apoi, reduceţi A 1 la forma superior Hessenberg<br />
H = ˜Q H A 1 ˜Q folo<strong>si</strong>nd algoritmul HQ. Matricea Q = U1 ˜Q defineşte transformarea unitară<br />
dorită, întrucât Q H z = Un−1U H n−2...U H 2 H U1 H z = ρe 1.<br />
P4.52 Testaţi, parcurgând prima subdiagonală, că nu există blocuri diagonale de ordin<br />
mai mare decât 2 şi, apoi, că blocurile de ordinul 2 au valorile <strong>proprii</strong> complexe.<br />
P4.53 Dacă Q = Q H este reflectorul (hermitic) pentru care Q H u = ρe 1, atunci S =<br />
= Q H AQ = I n +ρe 1v H Q este superior triunghiulară şi λ 1 = s 11 = 1+ρv H q 1, unde q 1 =<br />
= Qe 1 = 1 u este prima coloană a lui Q. Deci ρ λ1 = 1+vH u. Celelalte n−1 valori <strong>proprii</strong><br />
sunt λ i = s ii = 1, i = 2 : n. u este vector propriu asociat lui λ 1. Fie acum, Y reflectorul<br />
(hermitic) astfel încât Y H v = σe 1. Atunci SY(:,2:n) = Y(:,2:n), i.e. y j = Y(:,j),<br />
j = 2 : n, sunt vectori <strong>proprii</strong> ai matricei S, iar x j = Qy j sunt vectori <strong>proprii</strong> ai matricei<br />
A, asociaţi <strong>valorilor</strong> <strong>proprii</strong> egale cu 1.<br />
P4.54 Aplicând [ lema de ] deflaţie ortogonală, se calculează matricea ortogonală U astfel<br />
λ c<br />
încât U T T<br />
HU = . Fie acum matricea ortogonală V, de ordinul n−1, astfel încât<br />
0 B<br />
G = V T BV este superior Hessenberg (utilizaţi algoritmul HQr). Matricea căutată este<br />
Q = Udiag(1,V).<br />
P4.55 a) Secvenţa de pustmultiplicare a matricii superior triunghiulare R cu matricile<br />
P k şi M −1<br />
k<br />
afectează la pasul curent k numai coloanele k şi k+1, de unde rezultă imediat<br />
conservarea structurii superior Hessenberg.<br />
P4.56 Fără a reduce generalitatea, admitem ca restricţie a matricei A la subspaţiul<br />
A-invariant căutat chiar submatricea A 22. Fie, în această ipoteză, X def<br />
= [x 1 x 2] ∈ IR<br />
[ ]<br />
n×2<br />
X1<br />
şi con<strong>si</strong>derăm partiţia X = X 2 , conformă cu dimen<strong>si</strong>unile blocurilor diagonale. Din<br />
X 3<br />
ecuaţia matricială AX = XA 22 rezultă X 3 = 0 ca unică soluţie a ecuaţiei Sylvester<br />
omogene A 33X 3 = X 3A 22. În continuare, X 2 este orice matrice reală ne<strong>si</strong>ngulară 2 × 2<br />
care comută cu A 22 (e.g. X 2 = I 2), iar X 1 se obţine rezolvând ecuaţia matriceală Sylvester<br />
A 11X 1 −X 1A 22 = −A 12X 2.<br />
P4.57 Avem λ 1(A) = 2 − √ 5, λ 2(A) = 2 + √ 5, iar doi vectori <strong>proprii</strong> asociaţi sunt<br />
x 1 =<br />
[<br />
2<br />
1− √ 5<br />
]<br />
, x 2 =<br />
[<br />
2<br />
1+ √ 5<br />
]<br />
. Cei doi vectori <strong>proprii</strong> sunt ortogonali întrucât
INDICAŢII, RĂSPUNSURI, SOLUŢII 525<br />
x T 1x 2 = 0. Pentru celelalte matrice puteţi utiliza calculatorul.<br />
P4.58 Se utilizează reflectori complecşi care aplicaţi unui vector complex a<strong>si</strong>gură<br />
obţinerea unui vector real cu zerouri în poziţiile necesare (v. cap. 3). (În pachetul de<br />
programe LAPACK astfel de reflectori sunt folo<strong>si</strong>ţi curent).<br />
P4.59 Matricea Q H AQ rămâne antihermitică (în cazul real, anti<strong>si</strong>metrică) oricare ar<br />
fi matricea unitară (ortogonală) Q. Prin urmare, în aplicarea procedurii de reducere la<br />
forma superior Hessenberg, matricele obţinute după fiecare pas al reducerii şi matricea<br />
finală sunt antihermitice (anti<strong>si</strong>metrice). O matrice superior Hessenberg antihermitică<br />
(anti<strong>si</strong>metrică) este tridiagonală. Exploataţi aceste observaţii structurale.<br />
−γǫ 2<br />
P4.60 a) Se obţine H k+1 (2,1) =<br />
(α−β) 2 +ǫ2, ceea ce indică o convergenţă pătratică<br />
la forma Schur. b) În cazul <strong>si</strong>metric se obţine T −ǫ 3<br />
k+1(2,1) = T k+1 (1,2) =<br />
(α−β) 2 +ǫ 2,<br />
ceea ce indică o convergenţă cubică la forma diagonală.<br />
P4.61 b) Arătăm mai întâi că există o matrice de permutare P (produs de [ matrice ] de<br />
0<br />
permutare elementare) astfel încât PBP T di<br />
= diag(D 1,...,D n), unde D i = .<br />
d i 0<br />
Pentru claritate, vom con<strong>si</strong>dera numai cazul când n este par. Mai întâi, calculăm o matrice<br />
asemenea cu B, aplicând matricele de permutare elementare P n+1,2n, P n+2,2n−1, ...,<br />
P 3n/2,3n/2+1 . Obţinem matricea C = Q T AQ care are elemente nenule numai pe diagonala<br />
secundară; mai precis, aceste elemente sunt <strong>si</strong>tuate din colţul din dreapta sus spre colţul<br />
din stânga jos în ordinea d 1, d 2, ..., d n, d n, ..., d 2, d 1. Atunci, aplicând permutările<br />
elementare P 2,2n, P 4,2n−2, ..., P n,n+2, C este adusă la o formă cu blocuri diagonale 2×2,<br />
i.e. diag(D 1,D 3,...,D 4,D 2). Permutarea acestor blocuri diagonale pentru a obţine forma<br />
diag(D 1,D 2,...,D n) poate fi realizată cu uşurinţă utilizând un algoritm de sortare.<br />
P4.62 a) Avem T ′ = L −1 TL, deci matricele şirului sunt asemenea şi, în anumite<br />
condiţii (vezi b)), [ şirul poate ] pune a<strong>si</strong>mptotic în evidenţă valori <strong>proprii</strong> ale matricei T.<br />
α β<br />
b) Dacă T = , atunci T ′ are elementele α ′ = α + β2<br />
β γ<br />
, α β′ = α√ β αγ −β2 ,<br />
γ ′ = γ− β2 . Tinând seama de faptul că λ1, λ2 suntinvarianţi ai şirului, convergenţa şirului<br />
α<br />
matriceal este echivalentă cu convergenţa şirului numeric (α k ) k∈IN definit de recurenţa<br />
α ′ = σ − κ , unde σ = λ1 +λ2 şi κ = λ1λ2 sunt constante. Arătaţi că acest din urmă şir<br />
α<br />
este monoton şi mărginit şi că limita sa este λ 1.<br />
P4.63 a) Presupunem că matricea tridiagonală <strong>si</strong>metrică reală T are o valoare proprie<br />
multiplă λ. Pentru precizarea ideilor, con<strong>si</strong>derăm că ordinul de multiplicitate este 2.<br />
Atunci există doi vectori <strong>proprii</strong> ortogonali x şi y asociaţi valorii <strong>proprii</strong> λ, i.e. Tx = λx<br />
şi Ty = λy, cu y T x = 0. Presupunem că T este ireductibilă, i.e. toate elementele subşi<br />
supradiagonale [ sunt ] nenule. Con<strong>si</strong>derăm matricea S = T −λI n cu următoarea partiţie<br />
S11 S 12<br />
S = cu blocul S<br />
S 21 S 12 ∈ IR (n−1)×(n−1) ne<strong>si</strong>ngular. Atunci rezultă x(2: n) =<br />
22<br />
= S −1<br />
12<br />
S11x(1). Întrucât x ≠ 0, rezultă x(1) ≠ 0. Absolut <strong>si</strong>milar y(2:n) = S−1<br />
12<br />
S11y(1) cu<br />
y(1) ≠ 0. Rezultă că x şi y sunt coliniari ceea ce contrazice faptul că sunt ortogonali. Deci<br />
T nu poate fi ireductibilă. Dacă ordinul de multiplicitate este mai mare decât 2 atunci,<br />
conform celor de mai sus, există două elemente extradiagonale <strong>si</strong>metrice nule care ”sparg”<br />
matricea T în două matrice tridiagonale <strong>si</strong>metrice din care cel puţin una are o valoare<br />
proprie multiplă etc. b) Generic, se constată o grupare a elementelor extradiagonale nule<br />
înt-un bloc diagonal <strong>si</strong>tuat în colţul din dreapta jos. Explicaţia este următoarea: aplicarea<br />
bilaterală a reflectorilor care realizează tridiagonalizarea aduce pe poziţiile (k+1,k) valori<br />
egaleîn modulcunormadevector‖A(k+1 : n,k)‖, valoricare, pentruomatrice iniţialăfără
526 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
o structură particulară (în afara <strong>si</strong>metriei) sunt, în general, nenule. De aceea, elementele<br />
nule, obligatorii conform punctului a), apar la sfârşitul procesului de tridiagonalizare.<br />
[ P4.64 Transformările ] [ ortogonale ] [ conservă ][ norma Frobenius. ][ În consecinţă, ] matricele<br />
app a pq a<br />
′<br />
pp a ′ pq c −s app a pq c s<br />
şi =<br />
au aceeaşi normă<br />
a qp a qq s c a qp a qq −s c<br />
a ′ qp<br />
a ′ qq<br />
Frobenius, i.e. a 2 pp + a 2 qq + 2a 2 pq = (a ′ pp) 2 + (a ′ qq) 2 + 2(a ′ pq) 2 . De asemenea, matricele<br />
A şi A ′ = J T AJ au aceeaşi normă Frobenius. Notând cu B, B ′ matricele elementelor<br />
extradiagonale ale matricelor A, respectiv A ′ , şi ţinând seama de faptul că A şi A ′ diferă<br />
numai în liniile şi coloanele p şi q, avem<br />
‖B ′ ‖ 2 F = ‖A ′ ‖ 2 F −<br />
n∑<br />
(a ′ ii) 2 = ‖A‖ 2 F −<br />
i=1<br />
n∑<br />
a 2 ii +a 2 pp +a 2 qq −(a ′ pp) 2 −(a ′ qq) 2 =<br />
i=1<br />
= ‖B‖ 2 −2a 2 pq +2(a ′ pq) 2 .<br />
Prin urmare ‖B ′ ‖ F este minimă dacă a ′ pq = a ′ qp = 0.<br />
P4.65 a) Dacă γ = 0 rezultatul este imediat. Dacă γ ≠ 0 ecuaţia (J T AJ) 11<br />
=<br />
= c 2 α − 2csγ + s 2 β = δ este echivalentă cu cos(2θ + φ) = 2δ−α−β <strong>si</strong>nφ = √ 2δ−α−β<br />
2γ<br />
(α−β) 2 +4γ 2,<br />
unde θ = arccosc este unghiul ce defineşte rotaţia, iar φ = arcctg α−β . Rezultă că θ există<br />
∣ 2γ dacă şi numai dacă ∣√ ∣∣ 2δ−α−β ≤ 1, i.e. δ ∈ [λ1,λ<br />
(α−β) 2 +4γ 2]. b) Se reduce mai întâi A la<br />
2<br />
forma tridiagonală, după care se utilizează rezultatul de la punctul a).<br />
P4.66 Utilizaţi faptul că matricele antihermitice (anti<strong>si</strong>metrice) rămân astfel la transformări<br />
unitare (ortogonale) de asemănare.<br />
√<br />
1+4ǫ<br />
P4.67 κ λ1 = κ λ2 =<br />
2<br />
≈ 1 etc. 2ǫ 2ǫ<br />
P4.68 Con<strong>si</strong>derând o matrice de perturbaţie E = ǫG, cu G = e ie T j şi observând că, în<br />
∂λ<br />
acest caz, k<br />
∂a ij<br />
= dλ k(ǫ)<br />
, rezultă expre<strong>si</strong>a dorită.<br />
dǫ<br />
P4.69 Acesta este un exemplu celebru [IV] de matrice cu valori <strong>proprii</strong> bine separate<br />
şi, totuşi, foarte rău condiţionate. Vectorii <strong>proprii</strong> la dreapta, respectiv la stânga, asociaţi<br />
valorii <strong>proprii</strong> λ k = k, au expre<strong>si</strong>ile x k = [ (−n)n−k<br />
(n−k)!<br />
respectiv, y k = [0 0 ··· 0 1 n n2<br />
2!<br />
···<br />
n k−2<br />
(k−2)!<br />
(−n) n−k−1<br />
(n−k−1)!<br />
··· (−n)2<br />
2!<br />
(−n) 1 0 ··· 0] T ρ,<br />
n k−1<br />
(k−1)! ]T τ unde ρ şi τ sunt scalari nenuli arbitrari.<br />
Folo<strong>si</strong>nd, pentru <strong>si</strong>mplitate, norma ‖·‖ ∞ rezultă κ k = ‖x k‖ ∞‖y k ‖ ∞<br />
|y T k x k|<br />
=<br />
n n−1<br />
(n−k)!(k−1)!<br />
număr care, pentru un n semnificativ, este foarte mare. Pentru n = 20 avem κ 1 = κ 20 =<br />
= 2019<br />
19! . Folo<strong>si</strong>nd formula lui Stirling m! ≈ √ 2πmm m e −m pentru evaluarea factorialului,<br />
se obţine κ 1 = κ 20 ≈ 2019 e 19<br />
19 19√ 38π ≈ 4.329·107 .<br />
P4.70 Acesta este un alt exemplu celebru [IV] de matrice cu o condiţionare foarte<br />
diferenţiată a <strong>valorilor</strong> <strong>proprii</strong>: pentru un n semnificativ, valoarea proprie maximă este<br />
foarte bine condiţionată pe când valoarea proprie minimă este foarte rău condiţionată.<br />
a) Se aplică varianta ”<strong>si</strong>mbolică” a eliminării gaus<strong>si</strong>ene. b) Se repetă procedura de la<br />
punctul a). Pentru n = 20 şi ǫ = 10 −10 avem detF = 1−19!·10 −10 ≈ −1.216·10 7 faţă de<br />
1 pentru ǫ = 0.<br />
P4.71 a) Calculaţi valorile <strong>proprii</strong> λ i, apoi p(λ) = Π(λ−λ i).<br />
b)Această problemăpreocupăde câtevasecole pe matematicieni care au propus zeci de<br />
metode pentru rezolvarea ei. Ultima şi cea mai bună metodă constă în formarea explicită<br />
a unei matrice companion (v. problema 4.18) şi calculul <strong>valorilor</strong> sale <strong>proprii</strong> utilizând<br />
algoritmul QR.
INDICAŢII, RĂSPUNSURI, SOLUŢII 527<br />
Cap. 5 Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare<br />
P5.1 σ(A) = {4+ √ 5,4− √ 5}, σ(B) = {8+ √ 10,8− √ 10},<br />
σ(C) = {12+ √ 10, 12− √ [ 10}. ]<br />
α β<br />
P5.2 Fie A = . Atunci<br />
γ δ<br />
√ √<br />
1<br />
σ 1 =<br />
2 (α2 +β 2 +γ 2 +δ 2 + (α 2 −δ 2 ) 2 +(β 2 −γ 2 ) 2 +2(αβ +γδ) 2 +2(αγ +βδ) 2 ),<br />
şi aşa mai departe.<br />
P5.3 a) Utilizaţi faptul că dacă matricea Q este unitară, atunci şi matricele ¯Q, Q T<br />
şi Q H sunt unitare. b) Produsul a două matrice unitare este o matrice unitară. c) Fie<br />
A = UΣV H DVS a matricei A. Dacă α ≠ 0, atunci αA = Ũ|α| ΣV H , cu Ũ = α U |α|<br />
unitară.<br />
P5.4 Fie A = UΣV H DVS a matricei A. Presupunem m ≥ n, caz în care avem<br />
A = U 1Σ 1V H , unde U 1 = U(:,1 : n), Σ 1 = Σ(1 : n, :). Conform unei ver<strong>si</strong>uni evidente<br />
a propoziţiei<br />
[<br />
5.1 avem<br />
]<br />
B = QΛQ H , unde Λ = diag(Σ 1,−Σ 1,0 (m−n)×(m−n) ) şi<br />
V V 0<br />
Q = √ 1 √<br />
2<br />
cu U 2 = U(:,n + 1 : m). Coloanele matricei Q sunt<br />
U 1 −U 1 2U2<br />
vectori <strong>proprii</strong> ai matricei B.<br />
P5.5 Fie C = A + iB = UΣV H def def<br />
DVS a matricei C şi U r = ReU, U i = ImU,<br />
def def<br />
V r = ReV, V i = ImV. Atunci<br />
[ ]<br />
A −B<br />
D =<br />
B A<br />
=<br />
[<br />
Ur −U i<br />
U i U r<br />
][<br />
Σ 0<br />
0 Σ<br />
][ ]<br />
Vr −V i<br />
,<br />
V i V r<br />
la care se adaugă permutările impuse de ordonarea <strong>valorilor</strong> <strong>si</strong>ngulare ale matricei D.<br />
P5.6 a) O matrice normală fiind unitar (ortogonal) diagonalizabilă, avem Q H AQ =<br />
= Λ = diag(λ 1,λ 2,...,λ n), cu Q unitară (ortogonală). Rezultă Q H A H AQ = Λ H Λ =<br />
= diag(|λ 1| 2 ,|λ 2| 2 ,...,|λ n| 2 ). b) Matricea A este normală. Avem λ 1 = 8, λ 2,3 = 2±i √ 6.<br />
Rezultă σ 1 = 8, σ 2,3 = |λ 2,3| = √ 10. Verificaţi, calculând valorile <strong>proprii</strong> ale matricei<br />
B = A T A.<br />
P5.7 Orice matrice ortogonală sau unitară are toate valorile <strong>si</strong>ngulare egale cu 1.<br />
P5.8 b) Utilizaţi DVS a matricei V pentru a obţine DVS a matricei P = VV H . Sunt<br />
k valori <strong>si</strong>ngulare egale cu 1, iar celelalte sunt nule.<br />
P5.9 ‖A‖ 2 F = ∑ r<br />
i=1 σ2 i ≤ rσ1, 2 unde r = rangA şi ‖A‖ 2 = σ 1.<br />
P5.10 O matrice de permutare este ortogonală (unitară), iar transformările unitare<br />
conservă normaspectrală. Astfel, fără a reduce generalitatea, putem presupunecăcele k ≤<br />
≤ n−1 linii eliminate sunt ultimele k linii ale matricei Q, i.e. putem scrie Q = [P T R T ] T .<br />
Fie P = UCV H dezvoltarea DVS a matricei P, unde C = diag(c 1,c 2,...c n), cu c 1 ≥<br />
≥ c 2 ≥ ... ≥ c n ≥ 0 valorile <strong>si</strong>ngulare ale matricei P. Dar Q H Q = P H P + R H R = I n.<br />
Rezultă √ R H R = I n −VC 2 V H = V(I n −C 2 )V H = VS 2 V H , unde S = diag(s 1,s 2,...s n),<br />
cu s i = 1−c 2 i<br />
valorile <strong>si</strong>ngulare ale matricei R ordonate crescător. Cum R are cel mult<br />
n−1 linii, rezultă s 1 = 0, i.e. c 1 = ‖P‖ 2 = 1.<br />
P5.11 Se utilizează DVS a matricei A.<br />
P5.12 Dacă A = UΣV T este DVS a lui A, atunci (U, V sunt matrice ne<strong>si</strong>ngulare):<br />
max<br />
y ∈ IR m \{0}<br />
x ∈ IR n \{0}<br />
y T Ax<br />
‖y‖ 2‖x‖ 2<br />
=<br />
max<br />
z ∈ IR m \{0}<br />
w ∈ IR n \{0}<br />
z T U T AVw<br />
‖Uz‖ 2‖Vw‖ 2<br />
=<br />
max<br />
z ∈ IR m \{0}<br />
w ∈ IR n \{0}<br />
z T Σw<br />
‖z‖ 2‖w‖ 2<br />
.
528 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
P5.13 a) Dacă U 1 ∈ IR m×m , V 1 ∈ IR n×n sunt reflectori elementari astfel încât U 1u =<br />
= ‖u‖e 1 ∈ IR m , şi V 1v = ‖v‖e 1 ∈ IR n , atunci:<br />
[ ]<br />
U1 T ‖u‖‖v‖ 0<br />
AV 1 = ∈ IR m×n .<br />
0 0<br />
Evident, rangA = 1 dacă u ≠ 0, v ≠ 0, şi zero altfel. b) Dacă rangA = 1, atunci<br />
dezvoltarea <strong>valorilor</strong> <strong>si</strong>ngulare se reduce la A = σ 1u 1v1 H .<br />
P5.14 Fie ¯w def<br />
= Q¯v⊥ū, unde Q este o matrice ortogonală (cum calculaţi matricea Q)<br />
şi w def<br />
= ¯w/‖¯w‖, u def<br />
= ū/‖ū‖. Calculaţi o matrice ortogonală C ∈ IR n×(n−2) astfel încât<br />
U = [u w C] şi V = [w u C] sunt ortogonale (folo<strong>si</strong>ţi factorizarea QR a matricei [u w]).<br />
Atunci<br />
⎡<br />
u T (I +ū¯v T )w u T (I +ū¯v T )u 0<br />
U T (I +ū¯v T )V = ⎣ w T (I +ū¯v T )w w T (I +ū¯v T )u 0 ⎦ =<br />
=<br />
0 0 I n−2<br />
⎤<br />
[ ]<br />
uTū¯v T w 1+u T ū¯v T u 0<br />
1 0 0<br />
0 0 I n−2<br />
şi problema a fost redusă la cazul 2×2 (oricum, celelalte n−2 valori <strong>si</strong>ngulare ale lui A<br />
sunt egale cu 1).<br />
P5.15 Se aplică algoritmul JQ cu precizarea că reflectorii complecşi utilizaţi sunt de<br />
tipul celor care dau un rezultat real, e.g. pentru x ∈ IC n se obţine U H 1 x = ‖x‖e 1 ∈ IR n .<br />
P5.16 Matricea T = J H J este tridiagonală, hermitică şi are două valori <strong>proprii</strong> egale.<br />
Conform problemei 4.63 (v. cap.4) T este reductibilă, i.e. există i astfel încât T(i+1,i) =<br />
= ḡ if i = 0. Deci, g i = 0 sau/şi f i = 0.<br />
P5.17 Pentru a exploata structura superior triunghiulară, se utilizează o secvenţă de<br />
rotaţii ”modificate”, conform următoarei scheme de calcul:<br />
1. Pentru k = n : −1 : 3<br />
1. Pentru i = 1 : k −2<br />
1. Se calculează rotaţia modificată P i,i+1 astfel încât (P H i,i+1A)(i,k) = 0.<br />
2. A ← P H i,i+1A % Apare un element nenul în poziţia (i+1,i).<br />
3. Se calculează rotaţia modificată Q i,i+1 astfel încât (AQ i,i+1)(i+1,i) = 0.<br />
2. A ← AQ i,i+1.<br />
Pentru n = 4, primul pas al ciclului exterior se desfăşoară astfel:<br />
A ← P H 12A =<br />
A ← P H 23A =<br />
⎡<br />
⎢<br />
⎣<br />
⎡<br />
⎢<br />
⎣<br />
× × × ∅<br />
+ × × ×<br />
× ×<br />
×<br />
× × × 0<br />
× × ∅<br />
+ × ×<br />
×<br />
⎤<br />
⎥<br />
⎦, A ← AQ 12 =<br />
⎤<br />
⎥<br />
⎦, A ← AQ 23 =<br />
⎡<br />
⎢<br />
⎣<br />
⎡<br />
⎢<br />
⎣<br />
× × × 0<br />
∅ × × ×<br />
× ×<br />
×<br />
× × × 0<br />
× × 0<br />
∅ × ×<br />
×<br />
⎤<br />
⎥<br />
⎦,<br />
⎤<br />
⎥<br />
⎦.
INDICAŢII, RĂSPUNSURI, SOLUŢII 529<br />
P5.18 Utilizând transformări Householder sau Givens, se pot introduce zerouri conform<br />
modelului următor, dat pentru m = 7, n = 6, p = 3 (pentru precizare am folo<strong>si</strong>t<br />
rotaţii):<br />
⎡<br />
⎤ ⎡<br />
⎤<br />
A =<br />
⎢<br />
⎣<br />
× × × × × ×<br />
× × × × × ×<br />
× × × × × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
A ← AQ 45Q 46 =<br />
⎢<br />
⎣<br />
, A ← P12P H 13A H =<br />
⎥ ⎢<br />
⎦ ⎣<br />
⎡<br />
⎡<br />
A ← P45P H 46P H 47A H =<br />
⎢<br />
⎣<br />
⎡<br />
A ← AQ 23Q 24 =<br />
⎢<br />
⎣<br />
× × × × 0 0<br />
0 × × × × ×<br />
0 × × × × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × × × 0 0<br />
0 × × × × ×<br />
0 × × × × ×<br />
× × ×<br />
0 × ×<br />
0 × ×<br />
0 × ×<br />
× × 0 0 0 0<br />
0 × × × × ×<br />
0 × × × × ×<br />
+ + × × ×<br />
0 × ×<br />
0 × ×<br />
0 × ×<br />
× × × × × ×<br />
0 × × × × ×<br />
0 × × × × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
× × ×<br />
După aceste transformări A este bidiagonală în prima linie şi prima colană. Se obţine o<br />
problemă <strong>si</strong>milară, dar de dimen<strong>si</strong>unea (m−1)×(n−1); blocul patrat p×p este deplasat<br />
cu o poziţie diagonală.<br />
P5.19 Se aplică mai întâi o secvenţă de rotaţii pe stânga care aduce matricea la o<br />
formă superior triunghiulară (cu numai două supradiagonale de elemente nenule) după<br />
care se adaptează schema de calcul de la problema 5.17.<br />
P5.20 Mai întâi se reduce matricea A la forma superior bidiagonală cu algoritmul<br />
JQ. Apoi se anulează elementul din poziţia (m,n+1) cu o secvenţă de rotaţii aplicate pe<br />
dreaptaA ← AP m,m+1P m−1,m+1...P 1,m+1 care deplaseazăelementulalterantpeverticala<br />
coloanei m+1 până la eliminare. Exemplificăm procesul pentru m = 3, n = 5,<br />
]<br />
]<br />
[ × ×<br />
A = × ×<br />
× +<br />
[ × × +<br />
A ← AP 24 = × × ∅<br />
×<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
,<br />
⎥<br />
⎦<br />
⎤<br />
.<br />
⎥<br />
⎦<br />
[ × ×<br />
, A ← AP 34 = × × +<br />
× ∅<br />
] [ × × ∅<br />
, A ← AP 34 = × ×<br />
×<br />
]<br />
,<br />
.<br />
,<br />
⎥<br />
⎦
530 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
P5.21 Fie A = UΣV H , Σ = diag(σ 1,σ 2,...,σ p), cu p = min(m,n), DVS a matricei<br />
A . Evident, există şirurile de numere reale (γ (k)<br />
i<br />
) k∈IN astfel încât lim k→∞γ (k)<br />
i<br />
= σ i şi<br />
γ (k)<br />
def<br />
i<br />
≠ 0 pentru toţi i şi k. Dacă Γ k = diag(γ (k)<br />
1 ,γ(k) 2 ,...,γ(k)<br />
def<br />
p ), şi A k = U Γ k V H , atunci<br />
toate matricele A k sunt de rang maximal şi lim k→∞ A k = A. Aceasta înseamnă că oricât<br />
de ”aproape” de orice matrice (inclu<strong>si</strong>v de matricea nulă) se află matrice de rang maximal.<br />
De aici nece<strong>si</strong>tatea conceptului de rang numeric în orice problemă de calcul al rangului,<br />
afectată de erori.<br />
P5.22 Urmaţi demonstraţia teoremei 5.4.<br />
P5.23 Dacă(C,S) = (U H AW,V H BW)este DVSGaperechii de matrice (A,B)atunci<br />
r A = rang(A) = rang(C) şi r B = rang(B) = rang(S), i.e. r A este numărul elementelor<br />
diagonale nenule ale matricii C, iar r B este numărul elementelor diagonale nenule ale<br />
matricii S. Pentru determinarea rangului numeric se poate utiliza o toleranţa pentru<br />
neglijarea elementelor diagonale ”mici” ale matricilor C şi S (v. alg. Rang DVS).<br />
P5.24 Utilizaţi DVS şi definiţia 5.3.<br />
P5.25 Urmaţi demonstraţia teoremei 5.3.<br />
P5.26 a) Utilizând DVS A = U AΣ AVA H şi B = U BΣ BVB H <strong>si</strong>stemul matriceal dat<br />
devine echivalent cu <strong>si</strong>stemul<br />
{<br />
Σ A ˜X − ỸΣ B = ˜C<br />
˜XΣ T B −Σ T AỸ = ˜D ,<br />
unde ˜X = V H A XV B, Ỹ = U H A YU B, ˜C = U<br />
H<br />
A XV B, ˜D = V<br />
H<br />
A XU B, care la rândul său, se<br />
poate scrie explicit sub forma a mn <strong>si</strong>steme de două ecuaţii cu două necunoscute<br />
[<br />
σ<br />
(A)<br />
i<br />
σ (B)<br />
j<br />
−σ (B)<br />
j<br />
−σ (A)<br />
i<br />
] [ ]<br />
˜xij<br />
=<br />
ỹ ij<br />
[<br />
˜cij<br />
]<br />
. ˜d ij<br />
P5.27 a) Utilizând DVS A = UΣV T şi ţinând seama de conservarea normei euclidiene,<br />
problema devine echivalentă cu problema de minimizare min y∈IR n{‖d − Σy‖2 + α‖y‖ 2 }<br />
(evident, mult mai <strong>si</strong>mplă), unde d = U T b şi y = V T x.<br />
P5.28 0 ∈ λ(A) ⇔ detA = 0 ⇔ detA H A = 0 ⇔ 0 ∈ σ(A).<br />
[ ] [ ]<br />
0 1 0 0<br />
P5.29 Nu, e.g. pentru A = , B = .<br />
0 0 0 1<br />
P5.30 [ a) ] Inegalitatea [ triunghiului ] pentru norma spectrală. În general nu, luaţi e.g.<br />
1 0 0 0<br />
A = , B = . b) Consultaţi [II].<br />
0 0 0 1<br />
P5.31 Proprietăţile sunt corespondentele multiplicative ale proprietăţilor aditive din<br />
problema[ precedentă. ] a) [ Condiţia]<br />
de con<strong>si</strong>stenţă a normei spectrale. În general nu, luaţi<br />
1 1 1 0<br />
e.g. A = , B = . b) Consultaţi [II].<br />
0 1 1 1<br />
P5.32 Consultaţi [II].<br />
P5.33 a) det(λI n − A) = λ n − ǫ, i.e. |λ i| = ǫ 1 n , ∀i ∈ 1 : n. Valorile <strong>si</strong>ngulare sunt<br />
σ i = 1, i ∈ 1 : (n−1), σ n = ǫ.<br />
P5.34 Consultaţi [II], unde veţi gă<strong>si</strong> multe alte proprietăţi interesante ale descompunerii<br />
polare.
INDICAŢII, RĂSPUNSURI, SOLUŢII 531<br />
Cap. 6. <strong>Calculul</strong> <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
P6.1 a) Se observă că scăzând prima linie din celelalte două şi apoi adunând linia<br />
[ ] 2 4 5<br />
a doua la a treia obţinem perechea echivalentă Ā = PAR = 0 1 3 , ¯B = PBR =<br />
0 0 0<br />
[ ]<br />
[ ]<br />
1 1 1<br />
1 0 0<br />
= 0 α−1 2 , unde matricele de transformare sunt P = −1 1 0 şi R = I 3.<br />
0 0 β<br />
−2 1 1<br />
Ecuaţia caracteristică a fascicolului este (2−λ)(1−(α−1)λ)βλ = 0. Prin urmare, dacă<br />
β = 0, atunci fascicolul este <strong>si</strong>ngular, dacă β ≠ 0 şi α = 1, atunci λ(A,B) = {0,2}, iar<br />
1<br />
dacă β ≠ 0 şi α ≠ 1 avem λ(A,B) = {0,2,<br />
α−1 }. b) De exemplu, x = [1 0 0]T este un<br />
vector propriu generalizat asociat valorii <strong>proprii</strong> λ = 2, iar x T Bx = 1 ≠ 0 oricare ar fi α şi<br />
β. Pe de altă parte x = [7 −6 2] T este un vector propriu generalizat asociat valorii <strong>proprii</strong><br />
λ = 0 şi x T Bx = 0 dacă 48α + 4β − 55 = 0; cum det(B) = (α − 1)β există o infinitate<br />
de valori pentru α şi β astfel încât x T Bx = 0 şi det(B) ≠ 0, e.g. pentru α = −1/48,<br />
β = 14. c) Primele două coloane ale matricei R, i.e. e 1, e 2, formează o bază ortogonală a<br />
subspaţiului de deflaţie bidimen<strong>si</strong>onal S al perechii (A,B) asociat <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />
λ 1 = 2 şi λ 2 = 1<br />
α−1 = 1 întrucât subspaţiul V = AS +BS = Im(P−1 )(:,1 : 2)<br />
are dimen<strong>si</strong>unea 2.<br />
P6.2 Fie U 1 = U(:,1 : r), U 2 = U(:,r + 1 : n) şi, <strong>si</strong>milar, V 1 = V(:,1 : r),<br />
V 2 = V(:,r+1:n). Notăm P = U T 1AV 1, Q = U T 1AV 2, R = U T 2AV 1 şi S = U T 2AV 2. Perechea<br />
(A,B) este echivalentă cu perechea (U T AV,Σ) i.e. ecuaţia caracteristică a fascicolului<br />
definit de perechea (A,B) este det(U T AV − λΣ) = 0. Dacă S este ne<strong>si</strong>ngulară, atunci<br />
ecuaţia caracteristică devine det(P − QS −1 R − λΣ 1) = 0 i.e. fascicolul are r ≥ 1 valori<br />
<strong>proprii</strong> generalizate finite. Deci S este <strong>si</strong>ngulară.<br />
P6.3 Matricele A,B fiind unitare, matricea AB −1 = AB H este şi ea unitară. Deci,<br />
toate valorile <strong>proprii</strong> generalizate sunt de modul unitar (în cazul real ±1).<br />
P6.4 Întrucât B şi A−µB sunt ne<strong>si</strong>ngulare avem succe<strong>si</strong>v λ(B,B(A−µB)−1 B) =<br />
= λ((A−µB)B −1 )) = λ(AB −1 −µI n) = λ(AB −1 )−µ = λ(A,B)−µ.<br />
P6.5 Se procedează exact ca la algoritmul HTQZc dar se utilizează în exclu<strong>si</strong>vitate<br />
transformări reale.<br />
P6.6 Vectorii <strong>proprii</strong> generalizaţi ai perechii (A,B) coincid cu vectorii <strong>proprii</strong> ai<br />
matricei F = B −1 A. Metoda puterii pentru calculul iterativ al unui vector propriu al<br />
matricei F = B −1 A cu deplasarea curentă µ k utilizează iteraţia (vezi cap. 4) x k+1 =<br />
(F−µ k I n)x k , k = 1,2,... echivalentăcurezolvarea <strong>si</strong>stemuluiliniar Bx k+1 = (A−µ k B)x k ,<br />
k = 1,2,.... Dacă y este un vector propriu al matricei G = AB −1 , atunci x = B −1 y<br />
este vector propriu al perechii (A,B). Iteraţia metodei puterii pentru matricea G este<br />
echivalentă cu rezolvarea aceluiaşi <strong>si</strong>stem liniar. Convergenţa metodei este condiţionată<br />
(pentru µ k = 0) de existenţa unei valori <strong>proprii</strong> generalizate dominante.<br />
Metoda puterii inverse pentru calculul iterativ al unui vector propriu al matricei F =<br />
= B −1 A cu deplasarea curentă µ k presupune rezolvarea la fiecare iteraţie a <strong>si</strong>stemului<br />
(vezi cap.4) (F −µ k I n)x k+1 = x k , k = 1,2,... echivalentă cu rezolvarea <strong>si</strong>stemului liniar<br />
(A−µ k B)x k+1 = Bx k , k = 1,2,.... În acest caz deplasarea recomandată este cea a câtului<br />
Rayleigh i.e. µ k = xH k Fx k<br />
x H k x . Schema de calcul este următoarea.<br />
k<br />
MPIG 1. Se alege aleator un vector x ∈ IC n de normă unitară.<br />
2. k = 1, eps = 1
532 INDICAŢII, RĂSPUNSURI, SOLUŢII<br />
3. C^at timp eps > tol<br />
1. Se calculează µ = x H B −1 Ax (i.e. se rezolvă Bz = Ax, apoi µ = x H z)<br />
2. Se rezolvă <strong>si</strong>stemul liniar (A−µB)y = Bx<br />
3. y = y/‖y‖<br />
4. eps = |1−|x H y||<br />
5. x = y<br />
6. k = k +1<br />
7. Dacă k > nr max iter<br />
1. Tipăreşte ’S-a atins numărul maxim de iteraţii fără a se<br />
realiza toleranţa impusă.’<br />
2. Return<br />
unde eps, tol şi nr max iter au semnificaţii transparente.<br />
P6.7 Dacă Bx = 0, atunci şi Ax = 0, i.e. egalitatea Ax = λBx ar fi satifăcută pentru<br />
orice λ ∈ IC, i.e. fascicolul nu ar fi regulat.<br />
P6.8 Avem g i+1,i = h i+1,i/t ii, i = 1 : n−1.<br />
P6.9 Fie λ 1 ∈ λ(H,T) ⊂ IR. Atunci v =<br />
⎡<br />
⎢<br />
⎣<br />
λ 1t 22 −h 22<br />
h 21<br />
⎤<br />
⎥<br />
⎦ este un vector propriu<br />
1<br />
generalizat asociat lui λ 1, i.e. Hv = λ 1Tv şi S = Imv este un subspaţiu de deflaţie al<br />
fascicolului (H,T). Atunci construim matricele Q şi Z procedând în felul următor. Fie<br />
z 1 = v/‖v‖, z 2 un vector de normă unitară ortogonal cu z 1 (construiţi-l!) şi matricea<br />
Z = [z 1 z 2]. Avem (HZ,TZ) = ([Hz 1 Hz 2],[Tz 1 Tz 2]) = ([λ 1Tz 1 Hz 2],[Tz 1 Tz 2]).<br />
Acum dacă Q este o matrice ortogonală de ordinul 2 (reflector sau rotaţie) astfel încât<br />
(Q T Tz 1)(2) = 0 vom avea ( ˜H, ˜T)(2,1) = (Q T HZ,Q T TZ)(2,1) = 0, i.e. ( ˜H, ˜T) este în<br />
formă Schur. Evident, ˜h 11/˜t 11 = λ 1.<br />
P6.10 Dacă L este factorul Cholesky al lui B, atunci λ(A,B) = λ(L −1 AL −T ) şi<br />
matricea L −1 AL −T fiind <strong>si</strong>metrică are spectrul real. Dacă B nu este pozitiv definită<br />
valorile <strong>proprii</strong> generalizate [ ] pot[ fi şi complexe ] după cum se poate constata din exemplul<br />
1 5 1 2<br />
următor 20 A = , B = . Dacăfactorul Cholesky L este binecondiţionat<br />
5 9 2 1<br />
numeric, atunci se calculează matricea C = L −1 AL −T exploatând corespunzător <strong>si</strong>metria<br />
rezultatului şi i se calculează valorile <strong>proprii</strong> folo<strong>si</strong>nd algoritmul QR <strong>si</strong>metric. Dacă L este<br />
rău condiţionată se aplică algoritmul QZ. Dinpăcate, în acest dinurmăcaz, transformările<br />
ortogonale de echivalenţă nu conservă <strong>si</strong>metria.<br />
P6.11 a) Se procedează ca în cazul complex, cu precizarea ca problema se reduce<br />
la rezolvarea unui <strong>si</strong>stem liniar omogen cva<strong>si</strong>-superior triunghiular. b) Rezolvaţi mai întâi<br />
problema pentru perechea 2×2 (S(k : k +1,k : k +1),T(k : k +1,k : k +1).<br />
P6.12 Fie M = S(k : k + 1,k : k + 1) şi N = T(k : k + 1,k : k + 1) blocurile<br />
diagonale 2×2 de interes ale matricelor S şi T. Cei doi vectori <strong>proprii</strong> liniar independenţi<br />
există dacă şi numai dacă perechea (M,N) în FSG admite doi vectori <strong>proprii</strong> generalizaţi<br />
liniar independenţi. Dar m 11n 22 = m 22n 11, deci răspunsul este afirmativ numai dacă<br />
m 11n 12 = m 12n 11.<br />
20 Se poate arăta că oricare ar fi matricea C ∈ IR n×n diagonalizabilă există matricele <strong>si</strong>metrice<br />
A,B ∈ IR n×n cu B ne<strong>si</strong>ngulară astfel încât C = AB −1 [VI]. În consecinţă, oricare ar fi mulţimea<br />
<strong>si</strong>metrică (i.e. având elementele complexe în perechi complex conjugate) Λ de n numere există o<br />
pereche reală (A,B) cu matricele A, B <strong>si</strong>metrice astfel încât λ(A,B) = Λ.
Bibliografie<br />
[1] J.O. Aasen. On the Reduction of a Symmetric Matrix to Tridiagonal Form.<br />
BIT, 11:233–242, 1971.<br />
[2] A.V. Aho, J.E. Hopcroft, J.D. Ullman. The de<strong>si</strong>gn and analy<strong>si</strong>s of computer<br />
algorithms. Addison-Wesley, 1974.<br />
[3] S. Bannour, M.R. Azimi-Sadjadi. Principal Component Extraction U<strong>si</strong>ng Recur<strong>si</strong>ve<br />
Least Squares. IEEE Trans.Neur.Nets, 6:457–469, 1995.<br />
[4] R.H. Bartels, G.W. Stewart. A Solution of the Equation AX + XB = C.<br />
Commun. ACM, 15:820–826, 1972.<br />
[5] W. Barth, R.S. Martin, J.H. Wilkinson. Calculation of the Eigenvalues of<br />
a Symmetric Tridiagonal Matrix by the Method of Bisection. Numerische<br />
Mathematik, 9:249–256, 1967.<br />
[6] R. Bellman. Introducere în analiza matriceală. Ed. Tehnică, 1969.<br />
[7] C. Bischof, C. Van Loan. The WY Representation for Products of Householder<br />
Matrices. SIAM J. Sci. Stat. Comput., 8:s2–s13, 1987.<br />
[8] A. Björck. Solving Linear Least Squares Problems by Gram-Schmidt Orthogonalization.<br />
BIT, 7:1–21, 1967.<br />
[9] A. Björck. Numerical Methods for Least Squares Problems. SIAM, 1996.<br />
[10] H. Bowdler, R.S. Martin, C. Reinsch, J.H. Wilkinson. The QR and QL Algorithms<br />
for Symmetric Matrices. Numerische Mathematik, 11:293–306, 1968.<br />
[11] J.R. Bunch, L. Kaufmann. Some Stable Methods for Calculating Inertia and<br />
Solving Symmetric Systems. Mathematics of Computation, 31(137):163–179,<br />
January 1977.<br />
[12] J.R. Bunch, B. Parlett. Direct Methods for Solving Symmetric Indefinite Systems<br />
of Linear Equations. SIAM J. Numer. Anal., 8:639–655, 1971.<br />
[13] P.A. Bu<strong>si</strong>nger, G.H. Golub. Linear Least Squares Solutions by Householder<br />
Transformations. Numerische Mathematik, 7:269–276, 1965.
534 BIBLIOGRAFIE<br />
[14] S.P. Chan, B.N. Parlett. Algorithm 517: a Program for Computing the Condition<br />
Numbers of Matrix Eigenvalues without Computing Eigenvectors. ACM<br />
Trans. Math. Soft., 3:186–203, 1977.<br />
[15] T.F. Chan. Rank-Revealing QR Factorizations. Lin. Alg. and its Applic.,<br />
88/89:67–82, 1987.<br />
[16] A.K. Cline, C.B. Moler, G.W. Stewart, J.H. Wilkinson. An Estimate for the<br />
Condition Number of a Matrix. SIAM J.Numer.Anal., 16(2):368–375, April<br />
1979.<br />
[17] A.K. Cline, R.J. Plemmons. L 2 Solutions to Underdetermined Linear Systems.<br />
SIAM Review, 18:92–106, 1976.<br />
[18] J.J.M. Cuppen. A Divide and Conquer Method for the Symmetric Eigenproblem.<br />
Numerische Mathematik, 36:177–195, 1981.<br />
[19] J.Demmel, W.Kahan. AccurateSingularValuesofBidiagonalMatrices. SIAM<br />
J.Sci.Stat.Comput., 11(5):873–912, September 1990.<br />
[20] J.J. Dongarra, J. Du Croz, S. Hammarling, I. Duff. A Set of Level-3 Ba<strong>si</strong>c<br />
LinearAlgebraSubprograms. ACM Trans.Math.Software, 16:1–17,18–28,1990.<br />
[21] J.J. Dongarra, D.W. Walker. Software Libraries for Linear Algebra Computations<br />
on High Performance Computers. SIAM Review, 37:151–180, 1995.<br />
[22] B. Dumitrescu. Improving and Estimating the Accuracy of Strassen’s Algorithm.<br />
Numerische Mathematik, 79(4):485-499, 1998.<br />
[23] L. Elsner, J.G. Sun. Perturbation Theorems for the Generalized Eigenvalue<br />
Problem. Lin. Alg. and its Applic., 48:341–357, 1982.<br />
[24] G.E. Forsythe. Pitfalls in Computations or Why a Math Book is not Enough.<br />
Amer.Math.Monthly, 77:931–970, 1970.<br />
[25] G.E. Forsythe. Computer Methods for Mathematical Computations. Prentice-<br />
Hall, 1977.<br />
[26] J.G.F. Francis. The QR Transformation: a Unitary Analogue to the LR Transformation,<br />
Parts I and II. Comp. J., 4:265–272, 332–345, 1962.<br />
[27] W. Givens. Computation of Plane Unitary Rotations Transforming a General<br />
Matrix to Triangular form. SIAM J.App.Math., 6:26–50, 1958.<br />
[28] I.M. Glazman, I. Liubici. Analiză liniară pe spaţii finit-dimen<strong>si</strong>onale. Ed.<br />
Ştiinţifică şi Enciclopedică, 1980.<br />
[29] D. Goldberg. What Every Computer Scientist Should Know About Floating-<br />
Point Arithmetic. ACM Comp.Surveys, 23(1):5–48, March 1991.<br />
[30] G.H. Golub, W. Kahan. Calculating the Singular Values and Pseudo-Inverse<br />
of a Matrix. SIAM J. Num. Anal. Ser. B 2, 205–224, 1965.
BIBLIOGRAFIE 535<br />
[31] S. Haykin. Adaptive Filter Theory. Prentice Hall, 1991.<br />
[32] N.J. Higham. The Accuracy of Floating Point Summation. SIAM J.Sci. Comput.,<br />
14(4):783–799, July 1993.<br />
[33] N.J. Higham. Stability of the Diagonal Pivoting Method with PartialPivoting.<br />
SIAM J.Matrix Anal.Appl., 18(1):52–65, January 1997.<br />
[34] A.S. Householder. Unitary Triangularization of a Nonsymmetric Matrix. J.<br />
ACM, 5:339–342, 1958.<br />
[35] D. Jacobs, editor. The State of the Art in Numerical Analy<strong>si</strong>s. Academic Press,<br />
1977.<br />
[36] B. Kȧgström, P. Ling, C. Van Loan. High Performance GEMM-Based Level-<br />
3 BLAS: Sample Routines for Double Preci<strong>si</strong>on Real Data. In M. Durand,<br />
F. El Dabaghi, editori, High Performance Computing II, pp. 269–281. Elsevier<br />
Science Publishers B.V., 1991.<br />
[37] T. Kato. Perturbation Theory for Linear Operators. Springer-Verlag, 1966.<br />
[38] V.C. Klema, A.J. Laub. The Singular Value Decompo<strong>si</strong>tion: Its Computation<br />
and Some Applications. IEEE Trans.Auto.Control, AC-25(2):164–180, April<br />
1980.<br />
[39] V.N. Kublanovskaya. On Some Algorithms for the Solution of the Complete<br />
Eigenvalue Problem. USSR Comp. Math. Phys., 3:637–657, 1961.<br />
[40] C.L. Lawson, R.J. Hanson, F.T Krogh, D.R. Kincaid. Ba<strong>si</strong>c Linear Algebra<br />
Subprograms for FORTRAN Usage. ACM Trans.Math.Software, 5:308–323,<br />
1979.<br />
[41] R.S. Martin, C. Reinsch, J.H. Wilkinson. Householder Tridiagonalization of a<br />
Symmetric Matrix. Numerische Mathematik, 11:181–195, 1968.<br />
[42] R.S. Martin, J.H. Wilkinson. Solution of Symmetric and Unsymmetric Band<br />
Equations and the Calculation of Eigenvalues of Band Matrices. Numerische<br />
Mathematik, 9:279–301, 1967.<br />
[43] R.S. Martin, J.H. Wilkinson. Reduction of the Symmetric Eigenproblem<br />
Ax = λBx and Related Problems to Standard Form. Numerische Mathematik,<br />
11:99–110, 1968.<br />
[44] C.B. Moler, G.W. Stewart. An Algorithm for Generalized Matrix Eigenvalue<br />
Problems. SIAM J. Numer. Anal., 10:241–256, 1973.<br />
[45] C.C. Paige. Computing the Generalized Singular Value Decompo<strong>si</strong>tion. SIAM<br />
J.Sci.Stat.Comput, 7(4):1126–1146, October 1986.<br />
[46] B.N. Parlett, C. Reinsch. Balancing a Matrix for Calculation of Eigenvalues<br />
and Eigenvectors. Numerische Mathematik, 13:292–304, 1969.
536 BIBLIOGRAFIE<br />
[47] C. Pugli<strong>si</strong>. Modification of the Householder Method Based on the Compact<br />
WY Representation. SIAM J. Sci. Stat. Comput., 13(3):723–726, May 1992.<br />
[48] H. Rutishauser. The Jacobi Method for Real Symmetric Matrices. Numerische<br />
Mathematik, 9:1–10, 1966.<br />
[49] R. Schreiber, B. Parlett. Block Reflectors: Theory and Computation. SIAM<br />
J. Numer.Anal., 25:189–205, 1989.<br />
[50] R.Schreiber,C.VanLoan. AStorage-efficientWYRepresentationforProducts<br />
of Householder Transformations. SIAM J. Sci. Stat. Comput., 10(1):53–57,<br />
January 1989.<br />
[51] R.D. Skeel. Scaling for Numerical Stability in Gaus<strong>si</strong>an Elimination. J. ACM,<br />
26:494–526, 1979.<br />
[52] R.D. Skeel. Iterative Refinement Implies Numerical Stability for Gaus<strong>si</strong>an<br />
Elimination. Math. Comp., 35:817–832, 1980.<br />
[53] G.W. Stewart. On the Sen<strong>si</strong>tivity of the EigenvalueProblemAx = λBx. SIAM<br />
J. Numer. Anal., 9:669–686, 1972.<br />
[54] G.W. Stewart. Error and Perturbation Bounds for Subspaces Associated with<br />
Certain Eigenvalues Problems. SIAM Review, 15:727–764, 1973.<br />
[55] G.W. Stewart. Algorithm 406: HQR3 and EXCGNG: FORTRAN Subroutines<br />
for Calculating and Ordering the Eigenvalues of a Real Upper Hessenberg Matrix.<br />
ACM Trans. Math. Soft., 2:275–280, 1976.<br />
[56] G.W. Stewart. On the Asymptotic Behaviourof Scaled Singular Value and QR<br />
Decompo<strong>si</strong>tions. Math.Comp., 43:483–490, 1984.<br />
[57] G.W. Stewart. On the Early History of the Singular Value Decompo<strong>si</strong>tion.<br />
SIAM Review, 35(4):551–566, December 1993.<br />
[58] G.W. Stewart. Afternotes on Numerical Analy<strong>si</strong>s. SIAM, 1996.<br />
[59] G.W. Stewart, R. Chapman. Fast Stable Kalman Filter Algorithms Utilizing<br />
the Square Root Procedure. SIAM J. Sci. Stat. Comput., 8:1815–1818, 1990.<br />
[60] V. Strassen. Gaus<strong>si</strong>an elimination is not optimal. Numerische Mathematik,<br />
13:354–356, 1969.<br />
[61] M. Tertişco, P. Stoica. Identificarea şi estimarea parametrilor <strong>si</strong>stemelor. Ed.<br />
Academiei, 1980.<br />
[62] M.H. Verhaegen, P. Van Dooren. Numerical Aspects ofDifferent KalmanFilter<br />
Implementations. IEEE Trans.Auto.Control, AC-31:907–917, 1986.<br />
[63] S.J. Wright. A Collection of Problems for Which Gaus<strong>si</strong>an Elimination with<br />
Partial Pivoting is Unstable. SIAM J.Sci.Comput., 14(1):231–238, January<br />
1993.
Index<br />
acurateţe, 13<br />
algoritmi la nivel de bloc<br />
eliminare gaus<strong>si</strong>ană, 87<br />
factorizarea Crout, 90<br />
produs matriceal, 44<br />
rutine BLAS, 62<br />
<strong>si</strong>steme triunghiulare, 56<br />
triangularizare ortogonală, 156<br />
algoritmul<br />
Bartels-Stewart, 301<br />
DVS, 393, 403<br />
QR, 239<br />
QR <strong>si</strong>metric, 314<br />
QZ, 455, 472<br />
Strassen, 45<br />
alternativa lui Fredholm, 297<br />
anulare catastrofală, 9<br />
bază, 22<br />
bază ortogonală, 152, 172, 386<br />
bloc, 42<br />
cât Rayleigh, 236, 330<br />
calculatoare<br />
cu memorie ierarhică, 17<br />
vectoriale, 17<br />
cifre semnificative, 7<br />
combinaţie liniară, 21<br />
componente principale, 373<br />
condiţionare, 11<br />
condiţionarea<br />
problemelor CMMP, 177<br />
<strong>si</strong>stemelor liniare, 97<br />
subspaţiilor invariante, 350<br />
<strong>valorilor</strong> <strong>proprii</strong>, 343<br />
<strong>valorilor</strong> <strong>si</strong>ngulare, 413<br />
<strong>vectorilor</strong> <strong>proprii</strong>, 350<br />
<strong>vectorilor</strong> <strong>si</strong>ngulari, 414<br />
congruenţă, 47<br />
convergenţă pătratică, 236<br />
deflaţie<br />
de permutare, 272<br />
iterativă, 455<br />
ortogonală, 230<br />
unitară, 228<br />
depăşire<br />
inferioară, 8<br />
superioară, 8<br />
deplasare, 244<br />
Rayleigh, 236<br />
Wilkinson, 320, 399<br />
descompunerea<br />
bloc-diagonală, 303<br />
CS, 377<br />
ortogonală completă, 197<br />
polară, 376<br />
spectrală, 296<br />
<strong>valorilor</strong> <strong>si</strong>ngulare, 369, 371<br />
<strong>valorilor</strong><strong>si</strong>ngularegeneralizate,379,<br />
431<br />
determinant, 53<br />
diferenţă unghiulară, 352, 414<br />
distanţă dintre spectre<br />
absolută, 354<br />
relativă, 354<br />
echilibrare, 104, 274<br />
ecuaţie caracteristică, 210<br />
a unui fascicol, 446<br />
ecuaţie matriceală Sylvester, 297<br />
eliminare gaus<strong>si</strong>ană, 74<br />
la nivel de bloc, 87<br />
pentru matrice bandă, 106<br />
stabilitate numerică, 103<br />
ep<strong>si</strong>lon maşină, 7
538 INDEX<br />
eroare<br />
înainte, 13<br />
înapoi, 13<br />
absolută, 2<br />
de reprezentare, 6<br />
de rotunjire, 7<br />
relativă, 2<br />
factor de creştere<br />
în eliminarea gaus<strong>si</strong>ană, 102<br />
înfactorizareacva<strong>si</strong>-diagonală,113<br />
în metoda puterii inverse, 285<br />
factorizare Cholesky, 114<br />
cu pivotare, 195<br />
cu semn, 202<br />
factorizare cva<strong>si</strong>-diagonală, 110, 206<br />
factorizare LDU, 81<br />
factorizare LQ, 172<br />
factorizare LU, 81<br />
Crout, 82, 85<br />
Crout cu pivotare, 86<br />
Crout la nivel de bloc, 90<br />
Doolitle, 82<br />
factorizare QL, 162<br />
factorizare QR, 150<br />
factorizare RQ, 173<br />
fascicol matriceal, 445<br />
hermitic, 447, 449<br />
ne<strong>si</strong>ngular, 447<br />
pozitiv definit, 447, 449<br />
regulat, 447<br />
<strong>si</strong>metric, 447, 449<br />
<strong>si</strong>ngular, 447<br />
fascicole<br />
congruente, 450<br />
echivalente, 449<br />
ortogonal echivalente, 449<br />
unitar echivalente, 449<br />
flop, 15<br />
formă bidiagonală, 394<br />
formă bloc-diagonală, 296<br />
formă canonică Jordan, 215, 308<br />
formă canonică Kronecker, 450<br />
formă diagonală generalizată, 453<br />
formă Hessenberg, 239<br />
generalizată, 455<br />
generalizată ireductibilă, 466<br />
ireductibilă, 252<br />
formă Schur, 227, 229<br />
complexă, 230<br />
generalizată, 451<br />
generalizată ordonată, 486<br />
ordonată, 287<br />
reală, 230, 232<br />
reală generalizată, 452<br />
reală ordonată, 290<br />
format virgulă mobilă, 4<br />
funcţie de rotunjire, 6<br />
gramian, 150, 172<br />
grup Poincaré, 202<br />
hiperelipsoid, 372, 431<br />
hipersferă, 372<br />
imagine, 29<br />
inerţia unei matrice, 223<br />
LAPACK<br />
rutine de calcul, 118<br />
rutine driver, 118<br />
lema proiecţiei ortogonale, 163<br />
liniar independenţă, 21<br />
mantisă, 4<br />
matrice<br />
antihermitică, 224<br />
anti<strong>si</strong>metrică, 47, 224<br />
asemenea, 60, 214<br />
bandă, 40<br />
bloc diagonală, 44<br />
bloc triunghiulară, 44<br />
complexă <strong>si</strong>metrică, 217<br />
congruente, 223<br />
cu spectru <strong>si</strong>mplu, 214<br />
de permutare, 272<br />
de permutare elementară, 72<br />
de proiecţie ortogonală, 388<br />
diagonal dominantă, 119<br />
diagonală, 39<br />
diagonalizabilă, 214<br />
echilibrată, 274<br />
echivalente, 34, 35, 370<br />
epică, 31
INDEX 539<br />
hermitică, 49, 215<br />
Hessenberg, 40<br />
Hessenberg ireductibilă, 252, 291<br />
Hilbert, 99<br />
inferiortriunghiularăelementară,<br />
70<br />
inversabilă, 34<br />
ireductibilă, 274<br />
monică, 30<br />
normală, 46, 215<br />
ortogonal asemenea, 214<br />
ortogonal echivalente, 370<br />
ortogonală, 47, 215<br />
pozitiv definită, 47<br />
S-ortogonală, 201<br />
S-<strong>si</strong>metrică, 201<br />
<strong>si</strong>metrică, 46, 215, 314<br />
<strong>si</strong>mplă, 60, 214<br />
spectru, 60<br />
strict triunghiulară, 39<br />
tridiagonală, 315<br />
triunghiulară, 39<br />
triunghiulară unitate, 39<br />
unitar asemenea, 214<br />
unitar echivalente, 370<br />
unitară, 49, 215<br />
Matrice companion, 362<br />
Matrice convergentă, 363<br />
Matrice diagonal dominantă, 364<br />
Matrice idempotentă, 361<br />
Matrice nilpotentă, 361<br />
Matrice <strong>si</strong>multan diagonalizabile, 360<br />
memorarecompactă(împachetată),41<br />
metoda<br />
bisecţiei, 330<br />
câtului Rayleigh, 330<br />
Jacobi ciclică, 341<br />
Jacobi cla<strong>si</strong>că, 340<br />
puterii, 233, 499<br />
puterii cu deplasare, 235, 246<br />
puterii inverse, 235, 245, 499<br />
metode de rădăcină pătrată, 151<br />
Moore-Penrose<br />
condiţii, 207<br />
pseudoinversă, 198<br />
mulţime <strong>si</strong>metrică, 210<br />
multiplicatori (gaus<strong>si</strong>eni), 70, 74<br />
multiplicitate<br />
algebrică, 210<br />
algebrică a unei valori <strong>proprii</strong> generalizate,<br />
446<br />
geometrică, 211<br />
geometrică a unei valori <strong>proprii</strong><br />
generalizate, 447<br />
normă<br />
con<strong>si</strong>stentă, 37<br />
euclidiană, 24<br />
Frobenius, 38<br />
indusă, 38<br />
urmă, 384<br />
nucleu, 29<br />
număr de condiţionare, 98, 384<br />
al unui subspaţiu invariant, 354<br />
al valorii <strong>proprii</strong>, 344<br />
estimare, 100<br />
pentru matrice nepătrate, 178<br />
rutine de calcul, 119<br />
ortogonalitate numerică, 28<br />
ortogonalizareGram-Schmidt,161,169<br />
Ovaluri Cas<strong>si</strong>ni, 364<br />
p-norme Schatten, 384<br />
p-secţiune a unei matrice hermitice,<br />
363<br />
Partea antihermitică a unei matrice,<br />
362<br />
Partea hermitică a unei matrice, 362<br />
partiţionare conformă, 43<br />
pas DVS, 401<br />
pas QR, 244<br />
dublu cu deplasare explicită, 251<br />
dublu cu deplasare implicită, 262<br />
<strong>si</strong>mplucudeplasareexplicită, 250<br />
<strong>si</strong>mplucudeplasareimplicită, 254<br />
pas QZ<br />
dublu, 480<br />
<strong>si</strong>mplu, 470<br />
pivot, 74<br />
pivotare<br />
întriangularizareaortogonală,192
540 INDEX<br />
completă(îneliminareagaus<strong>si</strong>ană),<br />
79<br />
completă(înfactorizareacva<strong>si</strong>-diagonală),<br />
112<br />
parţială (în eliminarea gaus<strong>si</strong>ană<br />
la nivel de bloc), 88<br />
parţială (în eliminarea gaus<strong>si</strong>ană<br />
pentru matrice bandă), 108<br />
parţială(îneliminareagaus<strong>si</strong>ană),<br />
76, 77<br />
parţială (în factorizarea Crout),<br />
86<br />
parţială(înfactorizareacva<strong>si</strong>-diagonală),<br />
113<br />
parţială (în factorizarea LU), 83<br />
plan Lobacevski, 202<br />
polinom caracteristic, 210<br />
al unui fascicol, 446<br />
ponderea operaţiilor de nivel 3, 66<br />
precizie, 4<br />
dublă, 7<br />
<strong>si</strong>mplă, 5, 7<br />
precondiţionare, 275<br />
problema CMMP<br />
cu restricţii liniare, 207<br />
cu restricţii pătratice, 431<br />
cu restrictii liniare, 429<br />
generalizată, 207<br />
ponderată, 187, 207<br />
totală, 422<br />
problema generală CMMP, 197, 421<br />
produs<br />
exterior, 32, 35<br />
matrice-vector, 31<br />
matriceal, 32<br />
scalar, 24<br />
scalar matriceal, 37<br />
program principal (driver), 279<br />
proiecţie<br />
ortogonală, 167, 388<br />
spectrală, 346<br />
proiector, 48<br />
ortogonal, 152, 172, 388<br />
spectral, 346<br />
pseudoinversă, 163, 168, 385<br />
normală, 174, 198<br />
pseudosoluţie, 124, 163<br />
normală, 198, 421<br />
R-bidiagonalizare, 397<br />
rafinare iterativă, 105, 187<br />
rang, 30, 193, 369, 383<br />
numeric, 417<br />
rază spectrală, 210<br />
reflector, 126<br />
bloc, 158<br />
complex, 139<br />
hermitic, 139, 147<br />
J-reflector, 202<br />
modificat, 130, 162<br />
reprezentare W 2 T, 159<br />
reprezentare WY, 158<br />
restricţia<br />
unei matrice la un subspaţiu, 287<br />
unei matrice la un subspaţiu invariant,<br />
212<br />
uneiperechidematricelaunsubspaţiu<br />
de deflaţie, 448<br />
reziduu de normă minimă, 124<br />
rotaţie, 134<br />
complexă, 142<br />
hiperbolică, 203<br />
modificată, 404<br />
rotaţii disjuncte, 136<br />
secvenţă de rotaţii, 136<br />
rotaţie complexă, 460<br />
Saxpy, 23<br />
scalare, 104, 186<br />
schimbare de bază, 34<br />
secvenţă de rotaţii, 149<br />
separarea<br />
spectrelor a două matrice, 353<br />
<strong>valorilor</strong> <strong>si</strong>ngulare, 414<br />
<strong>si</strong>stem<br />
extins, 164<br />
normal, 164<br />
soluţie normală, 124, 174<br />
spaţiu Minkovski, 202<br />
spectru generalizat, 446<br />
spectrul unei matrice, 210<br />
stabilitate numerică, 13<br />
a algoritmului DVS, 415
INDEX 541<br />
a algoritmului QR, 356<br />
a eliminării gaus<strong>si</strong>ene, 103<br />
a triangularizării ortogonale, 184<br />
submatrice<br />
bloc, 42<br />
lider principală, 42<br />
subspaţii liniare, 386<br />
(operaţii cu), 390<br />
subspaţiu, 22<br />
complement ortogonal, 26<br />
complementar, 22<br />
de deflaţie, 447, 486<br />
dimen<strong>si</strong>une, 22<br />
invariant, 61, 211, 286<br />
propriu, 211<br />
substituţie<br />
înainte, 54<br />
înapoi, 55<br />
şir QR, 244<br />
şir Sturm, 332<br />
teorema<br />
Bauer-Fike, 348<br />
Courant-Fisher, 219<br />
desepararea<strong>valorilor</strong><strong>proprii</strong>,221<br />
de separare a <strong>valorilor</strong> <strong>si</strong>ngulare,<br />
412<br />
Gershgorin, 226<br />
Wielandt-Hoffmann, 223<br />
Teorema lui Brauer, 364<br />
Teorema lui Ostrovski, 364<br />
transformare<br />
de asemănare, 60, 214<br />
de asemănare de permutare, 272<br />
de coordonate, 35<br />
elementară, 70<br />
involutivă, 126<br />
Jacobi, 337<br />
QR, 244<br />
triangularizare ortogonală, 147<br />
completă, 196<br />
cu pivotare, 192<br />
la dreapta, 171<br />
generalizată, 445<br />
valoare proprie dominantă, 233<br />
valori <strong>si</strong>ngulare, 371<br />
generalizate, 380, 433<br />
variaţie unghiulară, 414<br />
varianta Hessenberg-Schur (de rezolvareaecuaţieiSylvester),300<br />
varianta Schur-Schur (de rezolvare a<br />
ecuaţiei Sylvester), 300<br />
vector<br />
de deplasare implicită, 399, 468,<br />
476, 479<br />
Gauss, 70<br />
Householder, 126<br />
propriu, 59, 210, 281<br />
propriu al formei Schur, 282<br />
propriu al unei matrice Hessenberg,<br />
284<br />
propriu generalizat, 485<br />
unitate, 20<br />
vector propriu<br />
generalizat, 445<br />
vectori Schur, 229, 232<br />
generalizaţi, 451, 452<br />
vectori <strong>si</strong>ngulari, 371<br />
generalizaţi, 380<br />
urmă, 28<br />
valoare proprie, 59, 210