12.01.2015 Views

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!