12.01.2015 Views

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!