Sunteți pe pagina 1din 333

Capitolul 4

Calculul valorilor si
vectorilor proprii
Valorile si vectorii proprii joaca un rol fundamental n descrierea matematica a unor
categorii foarte largi de procese tehnice, economice, biologice etc. Astfel, proprietati
esentiale (cum este, e.g. stabilitatea) ale modelelor matematice cunoscute sub denumirea de sisteme dinamice se exprima n raport cu valorile proprii ale unor matrice.
In acest context, calculul cat mai eficient si mai exact al valorilor si vectorilor proprii
se impune cu necesitate.
Cadrul cel mai natural de abordare a problemei este cel al matricelor complexe,
n care caz valorile si vectorii proprii sunt, n general, numere complexe, respectiv
vectori complecsi. Totusi, majoritatea problemelor tehnice conduc la necesitatea
calculului valorilor si vectorilor proprii pentru matrice reale. Desi valorile proprii
si vectorii proprii asociati ai unei matrice reale pot fi numere complexe, respectiv
vectori complecsi, calculul cu numere complexe este sensibil mai putin eficient si,
din acest motiv, n cazul datelor initiale reale, dezvoltarile procedurale vor urmari
utilizarea, practic exclusiva, a calculului cu numere reale.

4.1
4.1.1

Formularea problemei
Valori si vectori proprii

Valorile si vectorii proprii pentru o matrice patrata A C


I nn sunt notiuni introduse
n capitolul 1 n contextul prezent
arii unor algoritmi de calcul elementari (sectiunea
1.10). Problema determinarii valorilor si vectorilor proprii poate fi apreciata ca fiind
simpla numai pentru matrice cu structura triunghiulara, caz care a si fost tratat n
capitolul mentionat (v. algoritmul 1.23).
Cu riscul de a ne repeta, reluam cateva definitii si rezultate fundamentale introduse n 1.10 cu dezvoltarile corespunzatoare necesare abordarii problemei n cazul
general.

210

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Definitia 4.1 Fie o matrice A C


I nn . Un num
ar C
I se numeste valoare
proprie a matricei A, dac
a exist
a un vector nenul x C
I n astfel nc
at
Ax = x.

(4.1)

Un vector x 6= 0 care satisface (4.1) se numeste vector propriu al matricei A asociat


valorii proprii .
Valorile proprii ale matricei A C
I nn , conform teoremei 1.13, sunt zerourile
polinomului caracteristic
p() = det(In A),
(4.2)
1
care este un polinom de gradul n cu coeficienti complecsi . In consecinta, orice
matrice A C
I nn are exact n valori proprii complexe, nu neaparat distincte.
Daca matricea este reala, atunci polinomul caracteristic are coeficientii reali si
valorile proprii complexe apar n perechi complex-conjugate 2 . Daca x = u+iv C
In
n
cu u, v IR , este un vector propriu asociat valorii proprii = + i, , IR,
6= 0, a unei matrice reale, atunci x
= u iv este un vector propriu asociat valorii
= i (verificati!).
proprii
Ordinul de multiplicitate ni al radacinii i a polinomului caracteristic se numeste
multiplicitate algebric
a a valorii proprii respective. Daca ni = 1 valoarea proprie i
se numeste simpl
a.
Multimea
(A) = {1 , 2 , ..., n } = { C
I | det(I A) = 0}

(4.3)

a valorilor proprii ale unei matrice A C


I nn se numeste spectrul matricei A, iar
numarul real nenegativ
(A) = max(|1 |, |2 |, ..., |n |)

(4.4)

se numeste raza spectral


a a matricei A. Deci, n planul complex C,
I valorile proprii
ale unei matrice A sunt situate n discul nchis de raza (A) cu centrul n origine.
Se poate arata imediat ca valorile proprii ale unei matrice A C
I nn satisfac
relatiile
n
n
n
X
X
Y
def
i =
aii = tr(A),
i = det(A),
(4.5)
i=1

i=1

i=1

unde tr(A) este, prin definitie, urma matricei A. In particular, o matrice este
singulara daca si numai daca are (cel putin) o valoare proprie nula.
Vectorii proprii introdusi prin definitia 4.1 sunt denumiti uneori vectori proprii
la dreapta ai matricei A si satisfac sistemul liniar omogen singular
(In A)x = 0.

(4.6)

Deci, fiecarei valori proprii i corespunde cel putin un vector propriu. Vectorii proprii
asociati valorilor proprii distincte sunt liniar independenti.
1 Ecuat
ia

p() = 0 se numeste ecuatie caracteristic


a a matricei A.
O multime de numere (reale si complexe) n care numerele complexe apar n perechi complexconjugate va fi numit
a n continuare multime simetric
a.
2

211

4.1. FORMULAREA PROBLEMEI

In acest context, vectorii proprii la st


anga sunt vectorii nenuli y C
I n ce satisfac
conditia
y H A = y H ,
(4.7)
unde H reprezinta operatorul cumulat de transpunere si conjugare. Aplicand operatorul H relatiei (4.7) obtinem

AH y = y,

(4.8)

i.e. vectorii proprii la stanga ai matricei A asociati valorii proprii sunt vectori
(AH ). De aici
proprii (la dreapta) ai matricei AH asociati valorii proprii
rezulta

(AH ) = (A),
(4.9)
adica valorile proprii ale matricei AH sunt conjugatele valorilor proprii ale matricei
A.
Intrucat det(In A) = det(In AT ) matricele A si AT au acelasi polinom
caracteristic si, deci, aceleasi valori proprii dar vectorii proprii, n general, difera.
Cum un vector propriu y al matricei AT asociat valorii proprii satisface AT y = y
sau y T A = y T vectorii proprii reali ai matricei AT sunt vectori proprii la stanga
ai matricei A.
Daca xi este un vector propriu al matricei A asociat valorii proprii i , vectorul
yi = xi este, de asemenea, un vector propriu al matricei A asociat aceleiasi valori
proprii i , oricare ar fi C,
I 6= 0. Mai mult, este clar ca multimea vectorilor
proprii asociati unei valori proprii i mpreuna cu vectorul nul din C
I n formeaza
n
subspatiul liniar Vi = Ker(i In A) C
I numit subspatiul propriu asociat valorii
proprii i . Dimensiunea i = dimVi a subspatiului propriu, i.e. numarul de vectori
proprii liniar independenti asociati lui i , se numeste multiplicitate geometric
a a
valorii proprii i . Este evident ca
i n i .

4.1.2

(4.10)

Subspatii invariante

Subspatiile proprii sunt subspatii A-invariante n sensul definitiei urmatoare


(v. si 1.10).
Definitia 4.2 Fie o matrice A C
I nn . Un subspatiu liniar V C
I n se numeste
subspatiu invariant al matricei A sau, pe scurt, subspatiu A-invariant dac
a
AV V

i.e.

Ax V,

x V.

(4.11)

Cum IRn C
I n , pot exista subspatii A-invariante n IRn pentru matrice A complexe.
De asemenea, pentru matrice A reale pot exista subspatii A-invariante care nu sunt
n IRn . Dintre proprietatile subspatiilor A-invariante amintim urmatoarele.

212

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Propozitia 4.1 Fie matricea A C


I nn .

1 . Dac
a x1 , x2 , . . . , xp sunt vectori proprii ai matricei A, atunci subspatiul
S = Im[ x1 x2 . . . xp ] C
I n este A-invariant.

2 . Dac
a S este un subspatiu A-invariant cu dimS = p si coloanele matricei
(monice) V = [ v1 v2 . . . vp ] C
I np formeaz
a o baz
a a lui S, atunci exist
a o matrice
pp
B C
I
astfel nc
at
AV = V B.
(4.12)
Mai mult, avem
(B) (A).

(4.13)

(Matricea B se numeste restrictia matricei A la subspatiul A-invariant S si se


noteaz
a B = A|S.)

In particular, orice subspatiu A-invariant nenul (i.e. p 1) contine un vector


propriu al matricei A. Reciproc, dac
a are loc o relatie de forma (4.12), atunci ImV
este un subspatiu A-invariant.
3 Complementul ortogonal T = S n C
I n al subspatiului A-invariant S este un
subspatiu AH -invariant.

In cazul real un subspatiu A-invariant generat de vectori proprii reali este, evident, real. Dac
a x1,2 = v1 iv2 , v1 , v2 IRn , sunt vectori proprii asociati unei
perechi de valori proprii complex conjugate 1,2 = i, , IR, 6= 0,
atunci vectorii v1 , v2 sunt liniar independenti si S = Im [ v1 v2 ] este un subspatiu
A-invariant. Mai mult, dac
a are loc o relatie de forma (4.12), unde coloanele lui
V IRnp formeaz
a o baz
a a unui subspatiu A-invariant S IRn , atunci restrictia
B IRpp a lui A la S satisface (4.13) cu (B) o multime simetric
a.
In sf
arsit,
complementul ortogonal T = S n IRn al subspatiului A-invariant real S este un
subspatiu AT -invariant.
Demonstratie.
Proprietatea 1 este evidenta. Pentru a arata 2 sa observam
ca Avj S, de unde rezulta Avj = V bj , j = 1 : p, i.e. (4.12) este adevarata.
Dac
a z C
I p este un vector propriu al matricei B, i.e. Bz = z, asociat valorii
proprii (B), atunci din (4.12) avem AV z = V z. Cum z 6= 0 iar V este
monica, rezulta y = V z 6= 0, i.e. y este un vector propriu al lui A continut n
S. In consecinta, S contine un vector propriu al matricei A si avem (A),
deci (4.13) este adevarata. Acum, daca are loc o relatie de forma (4.12), atunci
AV z = V Bz = V w ImV, z C
I p , i.e. ImV este A-invariant. 3 . Fie x S,
H
y T doi vectori arbitrari. Atunci Ax S si, deci, y H Ax = (AH y) x = 0. Cum
x S este arbitrar, rezulta AH y S, respectiv AH y T , i.e. T este AH -invariant.
In cazul real, din A(v1 iv2 ) = ( i)(v1 iv2 ) rezulta



Av1 = v1 v2

, i.e. AV = V B cu B =
.
(4.14)
Av2 = v1 + v2

Dac
a v1 , v2 sunt liniar dependenti, atunci v2 = v1 cu 6= 0 si din (4.14) rezulta
(1 + 2 )v1 = 0. Cum 6= 0, obtinem v1 = 0, de unde v2 = 0 si x1,2 = 0, ceea
ce contrazice definitia vectorilor proprii. Celelalte afirmatii se demonstreaza similar
cazului complex.
3

213

4.1. FORMULAREA PROBLEMEI


Exemplul 4.1 Se considera matricea

5 25
9
1
1 5 9
A=
6
0 24 24

care are polinomul caracteristic

p() = det(I3 A) = 3 42 + 6 4
si valorile proprii 1 = 2, 2,3 = 1 i. Vectorii

1
5
2
def
def
x1 = v1 = 1 ,
x2,3 = v2 i v3 = 1 i 2
2
2
2

sunt vectori proprii ai matricei A asociati valorilor proprii 1 si, respectiv, 2,3 . Fie
V1 = v1 si V23 = [ v2 v3 ]. Avem urmatoarele relatii de tipul (4.12) (verificati!):


1 1
AV1 = V1 B1 cu B1 = 2,
AV23 = V23 B23 cu B23 =
1 1

si, prin urmare, S1 = ImV1 si S23 = ImV23 (vezi fig.4.1) sunt subspatii A-invariante,
6
3
IR3

S
=
ImV
@

1
1
@
 C

@ 

S23 = ImV23C
@
C
v
@
C
I1
@
v2 C
: C

@
C

@

C
0
C

C
C
 C
C
C 
C

C v3
C
C


WC 
 C
2 
@
@
C 

+

C
@
@

1
-

Fig. 4.1: Vectori proprii si subspatii A-invariante pentru matricea A din exemplul
4.1.
iar B1 = A|S1 si B23 = A|S23 sunt restrictii ale matricei A la cele doua subspatii
(sunt aceste restrictii unic determinate?). Propunem cititorului sa calculeze complementele ortogonale n IR3 ale celor doua subspatii si sa verifice ca aceste subspatii
sunt AT -invariante.
3
Problema de calcul care face obiectul acestui capitol este determinarea valorilor
si vectorilor proprii ai unei matrice date. Desi pentru calculul unei valori proprii

214

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

sau al unui grup de valori proprii pot fi utilizate tehnici specifice, ne vom concentra
demersul nostru, n principal, asupra problema de calcul al ntregului spectru. Problema calculului vectorilor proprii va fi tratata n subsidiar, tinand seama si de
faptul ca n multe aplicatii calculul explicit al vectorilor proprii poate fi (si este bine
sa fie) evitat.

4.1.3

Matrice asemenea

Urmand metodologia generala de reducere a unei probleme de calcul la alte probleme mai simple, utilizata si n capitolele precedente, suntem interesati sa evidentiem
transformarile matriceale care conserva spectrul unei matrice date.
Asa cum s-a specificat si n 1.10, valorile proprii sunt conservate de transform
arile de asem
anare definite mai jos.
Definitia 4.3 Dou
a matrice A, B C
I nn se numesc asemenea dac
a exist
a o mann
trice nesingular
a T C
I
astfel nc
at
B = T 1 AT.

(4.15)

Dac
a matricea de transformare T este unitar
a, atunci matricele A si B se numesc
unitar asemenea.
In cazul real, dac
a matricea de transformare T este ortogonal
a,
matricele A si B se numesc ortogonal asemenea.
Intr-adevar, conform teoremei 1.14, daca matricele A, B C
I nn satisfac o relatie
de forma (4.15), i.e. sunt asemenea, atunci ele au acelasi spectru 3
(A) = (B)

(4.16)

si daca x este un vector propriu al matricei A asociat valorii proprii (A),


atunci vectorul
y = T 1 x
(4.17)
este un vector propriu al matricei B, asociat aceleiasi valori proprii.
In dezvoltarile din aceasta lucrare vom insista asupra cazului generic al matricelor de ordin n care admit un set (complet) de n vectori proprii liniar independenti.
Asa cum s-a demonstrat n teorema 1.15, n acest caz, utilizand n (4.15) ca matrice
de transformare T = X, unde X este o matrice avand drept coloane n vectori
proprii liniar independenti ai matricei A, obtinem o matrice diagonala:
X 1 AX = = diag ( 1 , 2 , ..., j , ..., n ) C
I nn .

(4.18)

Astfel de matrice se numesc diagonalizabile (peste C).


I Daca o matrice n n are n
valori proprii distincte, atunci este diagonalizabila dar reciproca nu este, n general,
adevarata 4 .
3 De remarcat faptul c
a transform
arile uzuale cum ar fi multiplic
arile cu matrice (la st
anga
sau la dreapta) altereaz
a spectrul matricei date. In particular, operatiile elementare cu linii sau
coloane, inclusiv permut
arile, pot modifica valorile si vectorii proprii.
4 O matrice cu toate valorile proprii simple (i.e. distincte) se nume
ste cu spectru simplu, iar
matricele care admit seturi complete de vectori proprii liniar independenti sunt cunoscute sub
denumirea de matrice simple. In acest din urm
a caz multiplicit
atile algebrice ale valorilor proprii
distincte coincid cu multiplicit
atile lor geometrice. Evident, matricele cu spectru simplu sunt
simple dar nu si reciproc.

4.1. FORMULAREA PROBLEMEI

215

In cazul general, structura fina a unei matrice, care poate fi dezvaluita prin
transformari de asemanare corespunzatoare, este data de asa numita form
a canonic
a
Jordan. Desi forma canonica Jordan joaca un rol esential n analiza matriceala,
continand maximum de informatie structurala privitor la o matrice data, totusi
rolul ei n calculul numeric este mult diminuat de sensibilitatea structurii Jordan la
perturbatii numerice n elementele matricei initiale, perturbatii inerente n calcule
efectuate pe un calculator datorita reprezentarii informatiei numerice n virgula
mobila. Acesta este motivul pentru care n toate dezvoltarile numerice se prefera
o structura mult mai robusta si anume forma Schur reala sau complexa prezentata
ntr-una din sectiunile urmatoare 5 .

4.1.4

Valorile proprii ale matricelor simetrice si hermitice

Prezentam n continuare cateva rezultate referitoare la valorile si vectorii proprii


pentru matricele hermitice (simetrice). Matricele hermitice (simetrice) se ntalnesc
n numeroase aplicatii si prezinta particularitati remarcabile.
Definitia 4.4 Fie A C
I nn . Matricea A se numeste normala dac
a
AH A = AAH .

(4.19)

In cazul real, matricea A IRnn este normal


a dac
a
AT A = AAT .

(4.20)

In acest context reamintim ca matricea A se numeste hermitic


a daca AH = A
nn
T
si simetric
a daca A = A. De asemenea, o matrice A C
I
se numeste unitar
a
daca AH A = In si ortogonal
a dac
a AT A = In .
Se constata imediat ca matricele hermitice si cele unitare sunt matrice normale.
Matricele hermitice au proprietatea ca elementele simetrice fata de diagonala principala sunt complex conjugate, i.e. aij = a
ji , i, j 1 : n, deci elementele diagonale
ale matricelor hermitice sunt reale. O matrice hermitica reala este simetrica. O
matrice unitara reala este ortogonala. Prin urmare matricele reale simetrice sau
ortogonale sunt normale. Exist
 a matrice
 normale care nu sunt nici simetrice nici
1 1
ortogonale, de exemplu A =
.
1
1
Prezentam n continuare cateva rezultate fundamentale, urmand ca aspectele
specifice legate de calculul efectiv al valorilor si vectorilor proprii pentru matrice
hermitice (simetrice) sa fie date n doua sectiuni distincte ( 4.8 si 4.9), iar cele
legate de conditionare si stabilitate n 4.10 si 4.11.
Teorema 4.1 O matrice nn complex
a A este normal
a dac
a si numai dac
a admite
un set complet de n vectori proprii ortogonali, adic
a exist
a o matrice unitar
aQ
C
I nn ale c
arei coloane sunt vectori proprii ai matricei A astfel nc
at
QH AQ = = diag(1 , 2 , . . . , n ) C
I nn .
5

(4.21)

Algoritmii de reducere la forma canonic


a Jordan, prezentati n unele lucr
ari de matematic
a
(vezi, e.g. [ XVI ]) nu prezint
a interes practic dec
at n contextul unor medii de calcul exact. Pentru
detalii privitoare la aspectele numerice si algoritmice ale calculului formei canonice Jordan, vezi
sectiunea 4.7.

216

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Altfel spus, matricele normale sunt matricele unitar diagonalizabile (peste C).
I

In cazul real, matricea A este normal


a dac
a si numai dac
a satisface aceleasi
conditii, i.e. este unitar diagonalizabil
a.
Demonstratie.
Presupunem ca matricea A este normala. Demonstram mai ntai urmatorul
rezultat preliminar.
Lema 4.1 Dac
a S este un subspatiu simultan A-invariant si AH -invariant, atunci
H
A si A admit un vector propriu comun x continut n S 6 . Dac
a Ax = x atunci

AH x = x.
Subspatiul S fiind A-invariant, n conformitate cu propozitia 4.1, punctul 2 , exista
un vector propriu x al matricei A (i.e. care satisface Ax = x, x 6= 0) continut n
k
k
k
k
S. Din (4.19) rezulta imediat ca A(AH ) = (AH ) A. Deci A(AH ) x = (AH ) x,
k
k = 0, 1, 2, . . ., i.e. yk = (AH ) x 6= 0 sunt vectori proprii ai matricei A asociati
aceleiasi valori proprii . Cum subspatiul S este si AH -invariant rezulta ca toti
vectorii yk sunt continuti n S. Fie p ntregul pentru care y0 , y1 , . . . , yp1 sunt
liniar independenti, iar yp este o combinatie liniara a acestora. Atunci, subspatiul
S = ImY S, unde Y = [ y0 y1 . . . yp1 ] este A-invariant (conform propozitiei
4.1, punctul 1 ) si, fiind generat de vectori proprii asociati aceleiasi valori proprii,
orice vector nenul din S este vector propriu al lui A. Pe de alta parte, S este
si AH -invariant ntrucat x = Y u S avem AH x = AH Y u = Y v S . In
consecinta, conform propozitiei 4.1, 2 , exista o matrice B astfel ncat AH Y = Y B,
de unde rezulta AH Y z = Y Bz = Y z pentru orice vector propriu z al ei asociat
valorii proprii (B). Prin urmare, notand x = Y z avem AH x = x cu
(B) (AH ). Altfel spus, exista un vector propriu al matricei AH continut
n S . Cum toti vectorii nenuli din S sunt vectori proprii ai lui A, am aratat ca
matricea normala A si matricea AH au (cel putin) un vector propriu comun continut
n S , deci si n S. Mai mult, din Ax = x si AH x = x cu acelasi x 6= 0, avem
H
2
H
2

kxk = xH x = xH Ax = (AH x) x = (x) x =


kxk , de unde rezulta = .
Demonstratia lemei este complet
a.
Vom construi acum un set complet de vectori proprii ortogonali ai matricei
normale A.
Pasul 1 . Spatiul C
I n fiind simultan A- si AH -invariant, conform lemei de mai sus
H
matricele A si A admit un vector propriu comun x1 care poate fi normat:
Ax1 = 1 x1 ,

1 x1 ,
AH x1 =

kx1 k = 1.

Subspatiul S1 = Im[ x1 ] este simultan A-invariant si AH -invariant. Conform propozitiei 4.1, 3 complementul sau ortogonal T1 = S1 n C
I n este, de asemenea,
H

simultan A- si A -invariant. In consecinta matricele A si AH admit un vector


propriu (normat) comun x2 T1 , i.e. ortogonal cu x1 :
Ax2 = 2 x2 ,

2 x2 ,
AH x2 =

kx2 k = 1,

x2 x1 .

6 Un rezultat mai general este urm


atorul: dou
a matrice care comut
a admit un vector propriu
comun (v. exercitiul 4.7).

217

4.1. FORMULAREA PROBLEMEI

Pasul k . Presupunem ca am construit un set de k < n vectori proprii ortogonali


x1 , x2 , . . . , xk ai matricei normale A (si, simultan, ai matricei AH ). Subspatiul
Sk = Im[ x1 x2 . . . xk ] este simultan A-invariant si AH -invariant. Cu aceleasi argumente, complementul sau ortogonal Tk = Sk n C
I n este, de asemenea, simultan AH
H

si A -invariant. In consecinta, matricele A si A admit un vector propriu (normat)


comun xk+1 T1 , i.e. ortogonal cu x1 , x2 , . . . , xk :
Axk+1 = k+1 xk+1 ,

k+1 xk+1 ,
AH xk+1 =

kxk+1 k = 1,

xk+1 Sk .

Procesul recurent de constructie a vectorilor proprii ortogonali conduce dupa k =


= n1 pasi la determinarea unui set ortogonal complet de vectori proprii ai matricei
A si, simultan, ai matricei AH . Notand cu Q matricea vectorilor proprii, implicatia
directa este demonstrata.
Reciproc, presupunem ca matricea A admite un set complet de vectori proprii
def
ortogonali xi , i 1 : n, respectiv o matrice unitara Q = X = [ x1 x2 xn ] de
vectori proprii. Avem
X H AX = = diag(1 , 2 , . . . , n ) C
I nn ,
de unde rezulta

X H AH X = .

=
= X H AAH X = X H AH AX, i.e. AAH =
Din ultimele doua relatii avem
H
= A A si teorema este complet demonstrata.
3
Observatia 4.1 Demonstratia prezentata mai sus evidentiaza, printre altele, urmatoarele proprietati suplimentare ale matricelor normale:
1 Daca A este normala, atunci matricele A si AH au aceiasi vectori proprii.
2 Daca S este un subspatiu A-invariant, atunci si complementul sau ortogonal
n C
I n este A-invariant.
3
Teorema 4.2 O matrice n n complex
a A este hermitic
a dac
a si numai dac
a
admite un set complet de n vectori proprii ortogonali si toate valorile proprii sunt
reale adic
a exist
a o matrice unitar
a Q, ale c
arei coloane sunt vectori proprii, astfel
nc
at
QH AQ = = diag(1 , 2 , . . . , n ) IRnn .
(4.22)
Altfel spus, matricele hermitice sunt matricele unitar diagonalizabile cu spectru real.

In cazul real matricea A este simetric


a dac
a si numai dac
a admite un set complet
de n vectori proprii ortogonali reali si toate valorile proprii sunt reale adic
a exist
a
o matrice ortogonal
a Q, ale c
arei coloane sunt vectori proprii, astfel nc
at
QT AQ = = diag(1 , 2 , . . . , n ) IRnn ,
i.e. matricele reale simetrice
real.

(4.23)

sunt matricele ortogonal diagonalizabile cu spectru

7 Matricele complexe simetrice sunt matrice cu multe propriet


ati esential diferite de cele ale
matricelor hermitice sau ale matricelor reale simetrice (vezi [ I ], [ II ] si exercitiul 4.31).

218

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Demonstratie.
Matricele hermitice fiind normale, conform teoremei precedente
sunt unitar diagonalizabile, i.e. are loc (4.21). Acum, din AH = A rezulta ca H =
, i.e. spectrul este real. In cazul real aceasta are drept consecinta faptul ca vectorii
proprii sunt reali. Reciproc, din (4.22) rezulta H = , i.e. QH AQ = QH AH Q, de
unde obtinem AH = A.
3
Faptul ca matricele hermitice (n cazul real, simetrice) au spectrul real si sunt
unitar (ortogonal) diagonalizabile are implicatii majore asupra tehnicilor de calcul al
valorilor proprii, asigurand o complexitate relativ redusa a algoritmilor si o precizie
ridicata a rezultatelor. Pentru dezvoltarea algoritmilor de calcul se vor dovedi utile
rezultatele prezentate n continuare. Formularea rezultatelor si demonstratiile vor
fi prezentate pentru matricele hermitice, particularizarea pentru matricele reale
simetrice (care se reduce, n esenta, la nlocuirea multimii C
I cu multimea IR si
a operatorului hermitic H cu operatorul de transpunere T ) fiind lasata n sarcina
cititorului.
Fie matricea hermitica A C
I nn si functia reala de n variabile complexe
xHAx
:C
I \ {0} IR definita de (x) = H . Vom fi interesati de extremele functiei
x x
. Pentru determinarea acestora, observam mai ntai ca (x) = (x) pentru toti
nenuli din C.
I In consecinta, este suficient sa ne rezumam la vectorii x de norma
euclidiana unitara, i.e. sa consideram functia
: S IR,
unde
S=

x C
In

x 7 (x) = xHAx,
kxk2 = xH x = 1

(4.24)

(4.25)

este sfera de raza unitara din C


I . Vom considera ca spectrul (A) = {1 , 2 , . . . , n }
al matricei A este ordonat descrescator, i.e.
1 2 . . . n ,

(4.26)

si fie qj C
I n , j = 1 : n un set complet de vectori proprii, de norma euclidiana
unitara, ai matricei A, asociati valorilor proprii j . Vom nota


Q = q1 q2 qn ,
Qk = Q( : , 1 : k),
Qk = Q( : , k + 1 : n). (4.27)
Avem urmatorul rezultat.

Teorema 4.3 Valorile extreme absolute ale functiei definite n (4.24), (4.25) sunt
date de
M = max xHAx = 1 ,
m = min xHAx = n .
(4.28)
xS
xS
Mai mult, dac
a Wk = Im Qk este subspatiul A-invariant asociat valorilor proprii
j , j = k + 1 : n, atunci
max
xHAx = k+1 .
x S Wk

(4.29)

219

4.1. FORMULAREA PROBLEMEI

Demonstratie. Conform teoremei 4.2, matricea Q este unitara, A = QQH unde


= diag(1 , 2 , . . . , n ) si, prin urmare,
(x) = xH Ax = y H y =

n
X

k=1

k |y (k) |2 ,

y = QH x = [ y (1) y (2) y (n) ]T .

(4.30)
Cum vectorii x si y din (4.30) se afla ntr-o relatie biunivoca, iar transformarile
unitare conserva norma euclidian
a, rezulta ca extremele functiei coincid cu extremele functP
iei : S IR, (y) = y H y. Din faptul ca vectorii y sunt de norma
n
(j) 2
unitara, i.e.
| = 1, rezulta
j=1 |y
(y) = 1

n
X
j=2

(1 j )|y (j) |2 =

n1
X
j=1

(j n )|y (j) |2 + n .

(4.31)

Intrucat sumele din relatia (4.31) sunt, datorita (4.26), nenegative, iar valoarea
nula a acestor sume se poate realiza, e.g. pentru y (j) = 0, j = 2 : n n primul
caz si j = 1 : n 1 n cel de al doilea, avem egalitatile (4.28). Daca valorile
proprii maxima, respectiv minim
a, sunt simple, atunci valorile extreme ale functiei
se ating pentru vectorii y de forma y1 = [ y (1) 0 0 ]T = ei1 e1 , respectiv
yn = [ 0 0 y (n) ]T = ein en , cu 1 , n IR. Prin urmare, cele doua extreme ale
functiei se ating pentru vectorii x de forma x1 = ei1 q1 si, respectiv xn = ein qn .
Dac
a 1 are multiplicitatea s, iar n multiplicitatea t, atunci maximul se atinge
pentru orice vector x de norma unitara din Vs = Im Qs , i.e. subspatiul A-invariant
asociat valorilor proprii j , j = 1 : s, iar minimul se atinge pentru orice vector de
norma unitara din Wnt .
Pentru cea de a doua parte a teoremei, daca x Wk = Vk atunci xH Qk = 0 si
y = QH x = [ 0 0 y (k+1) y (n) ]T . Prin urmare,
(x) = (y) = k+1

n
X

j=k+2

(k+1 j )|y (j) |2 ,

(4.32)

de unde, cu aceleasi argumente ca mai sus, se obtine (4.29).

Rezultatul urmator prezinta o interesanta caracterizare minimax a valorilor proprii ale unei matrice hermitice (n cazul real, simetrice) si este util prin consecintele
sale. Notam, generic, cu V subspatiile liniare ale spatiului C
I n si cu W = V complen
mentele lor ortogonale n C
I . De asemenea, vom nota cu VS = V S si, respectiv,
WS = W S, multimile vectorilor de norma euclidiana unitara din V si W.
Teorema 4.4 (Courant Fisher) Dac
a matricea hermitic
a A C
I nn are valorile
proprii ordonate ca n (4.26) atunci pentru toti k 1 : n avem
k =

max
min xHAx =
min
max xHAx
dimV = k x VS
dimV = k x WS

(4.33)

8
Intruc
at oric
arui subspatiu n k dimensional din C
I n i corespunde un complement ortogonal k dimensional, ultimul termen al egalit
atilor (4.33) poate fi scris si n forma k =
= mindimV = n k maxx V xHAx.
S

220

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Demonstratie. Fie V un subspatiu arbitrar de dimensiune k si vj , j = 1 : k, o baza


a lui V. Fie, de asemenea, wj , j = 1 : n k, o baza a lui W. Notam cu V C
I k,
nk
respectiv W C
I
, matricele vectorilor care formeaza bazele celor doua subspatii
complementare. Conform teoremei precedente
n xHAx 1

(4.34)

pentru toti x din S, i.e. functia este marginita pe compactul VS si, n consecinta,
si atinge marginile pe aceasta multime. La fel ca n demonstratia teoremei precedente, fie y = QH x, unde Q este o matrice unitara de vectori proprii, ordonati
conform (4.26). Avem, evident, kyk = kxk si x = Qy V daca si numai daca este
ortogonal pe W, i.e.
W H x = W H Qy = 0.
(4.35)


Intrucat W este monica, factorizarea QR a matricei W
= QH W = Q
R are
0
matricea superior triunghiulara R C
I (nk)(nk) nesingulara. In consecinta, (4.35)
devine
 H
 H
y = 0.
R
0 Q
(4.36)
def H
Notand z = Q
y relatia (4.36) impune z(1 : n k) = 0. Notand, nca o data,
def

u = z(n k + 1 : n) C
I k si tinand seama de faptul ca transformarile unitare
= Qu,
unde
conserva norma euclidiana, din (4.35), (4.36) rezulta ca x = Qy = QQz

Q = QQ( : , n k + 1 : n), apartine multimii VS daca si numai daca kuk = 1, fara


nici o alta restrictie asupra lui u. Acum, putem alege u astfel ncat y(1 : k1) = 0.
Intr-adevar, y = Q(
: , nk+1 : n)u si orice solutie normata (i.e. de norma euclidiana
: k1, , nk+1 : n)u = 0 asigura satisfacerea
unitara) a sistemului subdeterminat Q(1
acestei conditii. Cu aceasta alegere a lui u, pentru vectorul corespunzator x din VS ,
avem
n
X
(x) = xHAx = y H y = k
(k j )|y (j) |2 k ,
(4.37)
j=k+1

Pn

unde am tinut seama de faptul ca j=k |y (j) |2 = kyk2 = 1 si de ordonarea descrescatoare a valorilor proprii. Natural, din (4.37) rezulta
min xHAx k
x VS

(4.38)

si, cum subspatiul V, de dimensiune k, era arbitrar, inegalitatea (4.38) are loc n
toate subspatiile de aceeasi dimensiune sau, altfel spus,
max
min xHAx k .
dimV = k x VS

(4.39)

Ramane sa aratam ca aceasta margine este atinsa efectiv. Aceasta se ntampla n


subspatiul A-invariant asociat primelor k valori proprii din secventa (4.26). Intradevar, fie V = Im Qk si x = Qk z cu kzk = 1. Rezulta kxk = 1, i.e. x VS si
(x) = xHAx =

k1
X
j=1

(j k )|z (j) |2 + k k ,

(4.40)

221

4.1. FORMULAREA PROBLEMEI


de unde, n acest subspatiu,
min xHAx k
x VS

(4.41)

egalitatea obtinandu-se pentru z = [ 0 0 1 ]T . Prima egalitate din (4.33) este


demonstrata. Demonstratia celei de a doua egalitati (4.33) urmeaza aceleasi idei.
Intrucat dimW = n k, exista un vector x WS astfel ncat vectorul y = QH x are
componentele k +1 : n nule (demonstrati!). Pentru aceasta alegere a lui x avem o
relatie de forma (4.40)
(x) = xHAx = y H y =

k1
X
j=1

(j k )|y (j) |2 + k k ,

(4.42)

de unde rezulta
max xHAx k .
x WS

(4.43)

min
max xHAx k .
dimV = k x WS

(4.44)

Cum subspatiul (n k)-dimensional W a fost arbitrar, rezulta ca inegalitatea (4.43)


are loc n toate subspatiile de aceasta dimensiune sau, altfel spus,

Adaugand faptul ca marginea din (4.44) se atinge efectiv n subspatiul W = Im Qk ,


cea de a doua egalitate (4.33), si o data cu ea ntreaga teorema, sunt complet
demonstrate.
3
Teorema Courant Fisher este importanta, n contextul calculatoriu al acestei lucrari, prin consecintele sale, dintre care cateva sunt prezentate n continuare.
def
Notam A[k] = A(1 : k, 1 : k) submatricele lider principale de ordinul k ale matricei hermitice A C
I nn , care sunt la randul lor, evident, hermitice. Presupunem
[k]
[k]
[k]
[k]
ca spectrele (A ) = {1 , 2 , . . . , k } (evident, reale) ale submatricelor lider
principale sunt, si ele, ordonate descrescator, i.e.
[k]

[k]

[k]

1 2 . . . k .

(4.45)

Teorema 4.5 (Teorema de separare) Valorile proprii ale submatricelor lider principale de ordinul k ale unei matrice hermitice separ
a valorile proprii ale submatricelor lider principale de ordinul k + 1, i.e.
[k+1]

[k]

[k+1]

1 2

[k]

[k]

[k+1]

2 . . . k1 k

[k]

[k+1]

k k+1 ,

(4.46)

pentru toti k 1 : n1.


Demonstratie. Este suficient sa consideram cazul k = n1. Pentru simplificarea
def [n1]
notatiilor, fie i = i
, i = 1 : n1. Cu aceste notatii, este suficient sa dovedim
inegalitatile
i i i+1 ,
i = 1 : n 1.
(4.47)

222

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Avem, evident,
H

[n1]

x A

x=

x
0

x C
I n1 .

(4.48)

Pe aceasta baza, ntre multimile




= maxxWS xHAx, W C
I n , dimW = ni
Mi = IR
, (4.49)


Mi = IR = maxxWS xHA[n1] x, W C
I n1 , dimW = n1i ,
(4.50)
exista relatiile
Mi Mi Mi+1 ,
(4.51)
de unde rezulta

min Mi+1 min Mi min Mi ,

(4.52)

inegalitati care, n baza teoremei Courant-Fisher, sunt echivalente cu (4.47). Teorema este demonstrata.
3
O relatie dintre valorile proprii a doua matrice hermitice si valorile proprii ale
sumei lor, utila n aprecierea influentei perturbatiilor numerice hermitice, este data
n teorema urmatoare.
Teorema 4.6 Dac
a matricele hermitice A, E C
I nn au spectrele ordonate descresc
ator, atunci, cu notatii evidente, avem
k (A) + 1 (E) k (A + E) k (A) + n (E)

(4.53)

pentru toti k 1 : n.
Demonstratie.

Conform teoremei Courant-Fisher

k (A + E) =

min
max xH(A + E)x
dimV = k x WS

min
( max xHAx + max xHEx)
x WS
dimV = k x WS

min
( max xHAx + 1 (E)) = k (A) + 1 (E).
dimV = k x WS
Pentru a demonstra a doua inegalitate (4.53) avem, similar,

k (A + E) =

(4.54)

max
min xH(A + E)x
dimV = k x VS

max ( min xHAx + min xHEx)


x VS
dimV = k x VS

max ( min xHAx + n (E)) = k (A) + n (E).


(4.55)
dimV = k x VS
Teorema este demonstrata.
3
In sfarsit, cu notatiile utilizate n teorema 4.8, formulam urmatorul rezultat
util, de asemenea, n evaluarea influentelor perturbatiilor numerice asupra valorilor
proprii ale matricelor hermitice.

223

4.1. FORMULAREA PROBLEMEI

Teorema 4.7 (Wielandt Hoffmann) Dac


a matricele A, E C
I nn sunt hermitice,
atunci
n
X
(j (A + E) j (A))2 kEk2F ,
(4.56)
j=1

qP
n

2
unde kEkF =
i=1 |eii | + 2
benius a matricei E.

Demonstratie.

Pn

i=2

Pi1

j=1

|eij |2 =

pPn

i=1

2i (E) este norma Fro-

Pentru demonstratie se poate consulta [ IV ].

Un rezultat remarcabil, de o factura aparte, se refera la inertia unei matrice.


Inertia unei matrice hermitice A C
I nn se defineste prin tripletul (n , n0 , n+ )
unde n este numarul valorilor proprii negative, n0 este numarul valorilor proprii
nule si, respectiv, n+ este numarul valorilor proprii pozitive ale matricei A. De
asemenea, se spune ca doua matrice (hermitice) A, B C
I nn sunt congruente daca
nn
exista o matrice nesingulara T C
I
astfel ncat B = T H AT . Rezultatul, datorat
lui Sylvester, are urmatorul enunt.
Teorema 4.8 Dou
a matrice hermitice congruente au aceeasi inertie.
Demonstratie.
Fie A C
I nn hermitica, B = T H AT cu T nesingulara si k (A)
o valoare proprie nenula a matricei A. Presupunem ca spectrele matricelor A si B
sunt ordonate descrescator. Conform teoremei Courant-Fisher avem
k (B) =

xHBx
max
min xHBx min xHBx = min
,
H
dimV = k x VS
x VS
x V x x

(4.57)

unde V este orice subspatiu particular de dimensiune k, iar V = V \ {0}. Considerand V = Im T 1 Qk , cu Qk definit n (4.27), avem x V daca si numai daca
def

x = T 1 Qk z cu z C
I k , z 6= 0. Pe de alta parte, matricea R = T T H este hermitica, pozitiv definita (i.e. xH Rx > 0, x 6= 0) si, prin urmare, are spectrul real si
pozitiv (demonstrati!) aceleasi proprietati avandu-le si matricea R1 = T H T 1 .
Cu aceste precizari, pentru toti x V , avem
( H
x Bx = xH T H QA QH T x = z H diag (1 (A), 2 (A), . . . , k (A))z
,
(4.58)
1
xH x = z H QH
Qk z,
k R
de unde, tinand seama de ordonarea valorilor proprii, rezulta
xH Bx k (A)z H z

min (R1 )z H z xH x max (R1 )z H z.


Cu aceste inegalitati, din (4.57), obtinem

k (A)

k (B)
1 )
max (R

k (A)

k (B)
,
min (R1 )

(4.59)

daca k (A) > 0


(4.60)
daca k (A) < 0.

224

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Schimband rolul matricelor A si B, cu un rationament analog obtinem urmatoarele


corespondente ale relatiilor (4.60)
(
k (B) max (R) k (A), daca k (A) > 0
(4.61)
k (B) min (R) k (A), daca k (A) < 0.
In concluzie, n toate cazurile, k (A) k (B) k (A) cu > 0, > 0, i.e.
k (A) si k (B) au acelasi semn. Rezulta ca A si B au aceeasi inertie.
3
In contextul acestui paragraf este natural sa introducem matricele antihermitice,
respectiv antisimetrice n cazul real.
Definitia 4.5 Matricea A C
I nn se numeste antihermitica dac
a
AH = A.

(4.62)

In cazul real, matricea A IRnn se numeste antisimetrica dac


a
AT = A.

(4.63)

O matrice antihermitica are elementele diagonale pur imaginare. Este usor de observat ca daca matricea complex
a A este antihermitica, atunci matricea B = iA
este hermitica. In consecinta, A este unitar diagonalizabila si are toate valorile
proprii pur imaginare. Matricele antihermitice sunt normale.
In cazul real, o matrice antisimetrica are elementele diagonale nule. Daca A
este antisimetrica, atunci B = iA este o matrice complexa hermitica. Rezulta
ca A este unitar diagonalizabila si are toate valorile proprii pur imaginare. Cum,
n aceasta situatie, valorile proprii apar n perechi complex conjugate rezulta ca o
matrice antisimetrica de ordin impar are, n mod necesar, o valoare proprie nula,
i.e. este singulara. Evident, o matrice antisimetrica este normala.
Ultimul rezultat pe care l prezentam se refera la valorile si vectorii proprii pentru
matricele unitare si ortogonale.
Teorema 4.9 O matrice n n complex
a A este unitar
a dac
a si numai dac
a admite
un set complet de n vectori proprii ortogonali si toate valorile proprii sunt de modul
unitar, adic
a este unitar diagonalizabil
a cu spectru unitar, respectiv exist
a o matrice
unitar
a Q C
I nn astfel nc
at
QH AQ = = diag(1 , 2 , . . . , n )

cu

|i | = 1,

i .

(4.64)

In cazul real matricea A este ortogonal


a dac
a si numai satisface aceleasi conditii,
i.e. este unitar diagonalizabil
a cu spectru unitar.
Demonstratie.
O matrice unitara A C
I nn fiind normala, conform teoremei
4.1, este unitar diagonalizabila, i.e. exista o matrice unitara Q C
I nn astfel ncat
H
Q AQ = = diag(1 , 2 , . . . , n ), de unde rezulta A = QQH . In plus, din
j j = |j |2 = 1, de unde rezulta |j | = 1,
= In , i.e.
AH A = In obtinem
j = 1 : n. Deci toate valorile proprii sunt de modul unitar, i.e. pot fi scrise sub
forma j = eij , cu j IR, j = 1 : n. Reciproc, daca avem QH AQ = , cu Q

225

4.1. FORMULAREA PROBLEMEI

unitara si diagonala cu elementele diagonale de modul unitar, atunci prin calcul


direct rezulta imediat AH A = In , i.e. A este unitara. In cazul real demonstratia
este identica cu singura mentiune suplimentara ca alaturi de orice valoare proprie
complexa j = eij C
I \ IR apare si conjugata ei j = eij .
3
Observatia 4.2 Este simplu de constatat ca daca o matrice complexa A este
normala, hermitica sau unitara, atunci orice matrice B unitar asemenea cu A are
aceleasi proprietati. Similar, n cazul real, proprietatile de normalitate, simetrie si
ortogonalitate sunt conservate de transformarile ortogonale de asemanare. Aceasta
invarianta explica utilizarea exclusiva a transformarilor unitare (ortogonale) n demersul calculatoriu legat de valorile si vectorii proprii.
3
Incheiem acest paragraf cu precizarea ca principala proprietate comuna a celor
trei tipuri de matrice mentionate mai sus, indusa de proprietatea de normalitate,
consta n faptul ca toate admit seturi complete de vectori proprii ortogonali, fapt
care le confera o perfecta conditionare a spectrelor de valori proprii (v. 4.10).

4.1.5

Localizarea valorilor proprii

In finalul acestei sectiuni introductive vom prezenta cateva rezultate privitoare la


localizarea valorilor proprii n planul complex, rezultate utile atat prin ele nsele cat
si n contextul stabilirii initializarilor pentru diverse metode iterative de calcul sau
al analizei sensibilitatii valorilor proprii la perturbatii n matricea data.
Unele din cele mai cunoscute rezultate n aceasta privinta sunt oferite de teoremele urmatoare.
Teorema 4.10 Oricare ar fi matricea A C
I nn si kk o familie arbitrar
a de norme
consistente avem
(A) kAk.
(4.65)
Demonstratie.
Din proprietatea de consistenta a familiei de norme pentru orice
(A) si vector propriu asociat x cu kxk = 1 avem || = kxk = kAxk
kAkkxk = kAk, de unde rezulta (4.65) 9 .
3
Teorema 4.11 (Gershgorin) Valorile proprii ale unei matrice A C
I nn sunt situate n domeniul D din planul complex definit de
D=

n
[

i=1

Di ,

(4.66)

9 Exist
a si un rezultat, datorat lui Householder (v. exercitiul 4.32), care arat
a c
a pentru
orice > 0 exist
a o norm
a consistent
a k k astfel nc
at kAk (A) + , relatie care, mpreun
a
cu (4.65), permite aproximarea oric
at de bun
a a razei spectrale a unei matrice cu ajutorul unei
norme a acesteia. Din p
acate, aceast
a norm
a este o norm
a special
a care depinde de A si , astfel
c
a rezultatul mentionat are o valoare n primul r
and teoretic
a.

226

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

unde Di sunt discurile


Di = {z C
I | |z aii |

n
X
j=1

|aij |},

i = 1 : n,

(4.67)

j6=i

numite discuri Gershgorin.


Demonstratie.
Fie x un vector propriu asociat valorii proprii (A). Atunci
linia i a relatiei Ax = x se scrie
( aii )xi =

n
X

aij xj ,

(4.68)

j=1

j6=i

de unde rezulta | aii ||xi |


= maxk=1:n (|xk |) 6= 0, rezulta

Pn

j=1

j6=i

|aij ||xj |. Alegand linia i astfel ncat |xi | =

n
X

|xj | X
| aii |
|aij |

|aij |,
|xi |
j=1
j=1
j6=i

(4.69)

j6=i

i.e. Di .

Daca o linie a matricei A are elementele extradiagonale nule, atunci elementul


diagonal este o valoare proprie a matricei A, iar discul Gershgorin corespunzator
liniei respective se reduce la punctul {aii }. De asemenea, se poate arata [ I ] ca daca
m discuri Gershgorin formeaza o multime disjuncta de multimea celorlalte n m
discuri, atunci exact m valori proprii se gasesc situate n reuniunea celor m discuri.
In particular, un disc disjunct de celelalte contine exact o valoare proprie 10 .
Im
6
'$
2 
1 Re

3 
&%
a)

Im
6
'$


2
1 Re

3


&%
b)

Fig. 4.2: Utilizarea discurilor Gershgorin pe linii (a) si pe coloane (b) pentru
localizarea valorilor proprii ai matricei din exemplul 4.2.
10 Discurile Gershgorin (4.67) ar putea fi denumite discuri-linie
ntruc
at sunt construite cu
ajutorul liniilor matricei date. Cum transpusa matricei are acelasi spectru, aplic
and teorema
4.11 matricei transpuse obtinem o localizare a valorilor proprii n reuniunea discurilor Gershgorin
definite pe coloane. Evident, o localizare mai bun
a se obtine intersect
and cele dou
a domenii.

227

4.2. FORMA SCHUR


Exemplul 4.2 Consideram matricea

1 0
1
0
A= 1 5
1 1 1

pentru care cele trei discuri Gershgorin sunt D1 de centru 1 si raza 1, D2 de centru 5
si raza 1 si D3 de centru -1 si raza 2 (v. fig. 4.2), iar valorile proprii sunt 1 = 5.0394,
2,3 = 0.0197 0.4450i. Raza spectrala este deci (A) = 5.0394, inferioara e.g.
normei kAkF = 5.5678.
3
Teorema lui Gershgorin este utila, de exemplu, pentru deciziile de neglijare a elementelor extradiagonale la o precizie fixata a valorilor proprii calculate n tehnicile
de diagonalizare iterativa prin transformari de asemanare. Generalizari ale teoremei
4.11 fac obiectul exercitiilor 4.40 si 4.41. Alte rezultate privind localizarea valorilor
proprii se pot gasi n [ I ], [ II ].

4.2

Forma Schur

Transformarile de asemanare unitare, respectiv ortogonale n cazul real, prezinta


marele avantaj de a conserva conditionarea spectrului de valori proprii ale unei
matrice date (v. 4.10). De aceea vom fi interesati n utilizarea lor exclusiva pentru
determinarea valorilor proprii. Pe de alta parte, structurile canonice, cum este
forma Jordan, nu se pot obtine, n general, prin astfel de transformari 11 . Rezultatul
principal al acestui paragraf arata ca orice matrice este unitar asemenea cu o matrice
triunghiulara, numita forma Schur. In acest fel este posibila evidentierea valorilor
proprii ale unei matrice (elementele diagonale ale formei sale Schur), utilizand o
secventa de transformari unitare de asemanare.

4.2.1

Forma Schur (complex


a)

Calculul valorilor proprii ale unei matrice este intim legat de calculul vectorilor
proprii asociati. Daca (A) este cunoscuta, atunci vectorul propriu asociat este
o solutie nenula a unui sistem liniar omogen. Daca se cunoaste un vector propriu x
al matricei A, atunci valoarea proprie asociata poate fi calculata cu relatia
xH Ax
xH x
= H =
H
x x
x x

(4.70)

care, pentru x de norma euclidiana unitara, i.e. kxk = 1, devine


= xH Ax.

(4.71)

Intrucat valorile proprii sunt rad


acinile unei ecuatii algebrice, calculul lor pentru
matrice de ordin superior lui patru, n absenta cunoasterii vectorilor proprii, este
11 Matricele normale, care sunt unitar diagonalizabile (v. teorema 4.10), nu constituie un caz
generic.

228

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

n mod necesar un proces (iterativ) infinit, aceeasi situatie aparand si la calculul


vectorilor proprii fara a se cunoaste valorile proprii asociate.
De aceea, una din ideile aflate la baza asigurarii eficientei tehnicilor de calcul
a valorilor si vectorilor proprii este exploatarea rezultatelor partiale prin reducerea corespunzatoare a dimensiunii problemei. In sprijinul aplicarii acestei idei vin
urmatoarele rezultate.
Propozitia 4.2 Fie A C
I nn si X C
I n un subspatiu A-invariant p-dimensional
dat printr-o baz
a ortogonal
a x1 , x2 , . . . , xp . Atunci exist
a o matrice unitar
a Q
C
I nn cu Q( : , j) = xj , j = 1 : p, astfel nc
at


S11 S12
QH AQ =
,
(4.72)
0 S22
cu S11 C
I pp .

In cazul real, i.e. A IRnn si X IRn , matricea Q poate fi real


a (i.e. ortogonal
a), iar matricea real
a QT AQ are structura (4.72).
def

Demonstratie.
Fie Q( : , 1 : p) = X = [x1 x2 xp ] si Y C
I n(np) o baza
n
ortogonala a complementului ortogonal Y = X al lui X n C
I . Atunci matricea
Q = [ X Y ] este unitara. Conform propozitiei 4.1, punctul 2 , exista o matrice
S11 C
I pp cu (S11 ) (A) astfel ncat AX = XS11 , i.e. X H AX = S11 . In plus
Y H AX = Y H XS11 = 0. In consecinta avem
 H 
 H
 



X
X AX X H AY
S11 S12
H
S = Q AQ =
A X Y =
=
YH
Y H AX Y H AY
0 S22
(4.73)
unde, evident, S12 = X H AY , S22 = Y H AY . q.e.d.
In cazul real, conform aceleiasi propozitii 4.1, toate subspatiile implicate n
demonstratia de mai sus sunt n IRn , iar matricea Q este ortogonala. Evident, n
acest caz spectrul matricei S11 este o submultime simetrica a spectrului matricei A.
Demonstratia este completa.
3
Observatia 4.3 Calculul matricei unitare de asemanare Q este conditionat esential
de cunoasterea unei baze V = [ v1 v2 vp ] a subspatiului A-invariant X . In acest
caz, constructia unei baze ortogonale X a lui X si a unei completari ortogonale Y
se poate face dupa recomandarile din capitolul 3. Concret, daca


R1
V =Q
0
este factorizarea QR (complexa) a matricei V , unde Q C
I nn este unitara, iar
pp
R1 C
I
este nesingulara, atunci X = Q( : , 1 : p), Y = Q( : , p + 1 : n) sunt
cele doua baze ortogonale cautate, iar Q este matricea de transformare unitara de
asemanare din (4.72).
3
Pentru p = 1 baza V a subspatiului A-invariant din propozitia 4.2 se reduce
la un vector propriu x de norma unitara asociat valorii proprii . In acest caz
propozitia 4.2 se particularizeaza n urmatoarea lema.

229

4.2. FORMA SCHUR

Lema 4.2 (Deflatie unitara) Fie A C


I nn si (A). Atunci exist
a o matrice
nn
unitar
a Q C
I
astfel nc
at


S12
QH AQ =
.
(4.74)
0 S22
Conform observatiei 4.3, matricea de transformare poate fi Q = U1H , unde U1 este
reflectorul (complex) care anuleaz
a elementele 2 : n ale vectorului propriu x asociat
valorii proprii .
Aplicarea consecventa a lemei 4.2 ne conduce la urmatorul rezultat important.
Teorema 4.12 (Forma Schur) Oricare ar fi matricea A C
I nn exist
a o matrice
nn
unitar
a Q C
I
astfel nc
at matricea
QH AQ = S,

(4.75)

este superior triunghiular


a. Elementele diagonale ale matricei S sunt valorile proprii ale matricei A si pot fi dispuse n orice ordine predeterminat
a.
Matricea S se numeste forma Schur (FS) a matricei A, iar coloanele matricei
de transformare Q se numesc vectori Schur ai matricei A asociati formei Schur S.
Demonstratie.
Pasul 1 . Conform lemei 4.2, daca 1 (A), atunci exista o
matrice unitara Q1 astfel ncat

(1)

S
1
12

(1) ,
S1 = Q H
1 AQ1 =
0 S22

realizandu-se o deflatie n prima coloana.


Pasul k . Presupunem ca n primii k 1 pasi am realizat triangularizarea n
primele k 1 coloane prin transformari unitare de asemanare

(k1)
(k1)
S
S
11
12
H H

(k1) ,
Sk1 = QH
k1 . . . Q2 Q1 AQ1 Q2 . . . Qk1 =
0
S22
(k1)

unde S11
C
I (k1)(k1) este superior triunghiulara. Vom aplica lema 4.2 pentru
(k1)
a realiza deflatia n coloana k. Pentru aceasta, daca k (S22 ), atunci exista
k astfel ncat
o matrice unitara Q
H S (k1) Q
k
Q
k 22
Acum, matricea
Qk =

Ik1
0

"

(k)
S12

S22

0
k
Q

(k)

C
I nn

230

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

este unitara si
Sk =

QH
k Sk1 Qk

"

S11

(k)

S12

(k)

S22

(k)

este superior triunghiulara n primele k coloane.


Procesul de triangularizare prin transformari unitare de asemanare, initiat conform pasului 1 si continuat conform celor prezentate la pasul k , produce dupa
n 1 pasi matricea superior triunghiulara
S = QH AQ,
unde matricea
Q = Q1 Q2 . . . Qn1 ,

(4.76)

este unitara ca produs de matrice unitare.


Evident, ordinea elementelor diagonale ale matricei S poate fi aleasa n mod
arbitrar prin selectarea corespunzatoare a vectorilor proprii n aplicarea lemei 4.2.
Demonstratia este completa.
3
Incheiem paragraful subliniind faptul ca orice matrice patrata este unitar asemenea cu o matrice superior triunghiulara. Daca matricea A este reala, dar are si valori
proprii complexe, atunci forma Schur S este complexa ca si matricea de transformare Q. In acest caz se spune ca S este forma Schur complex
a (FSC) a matricei A.

4.2.2

Forma Schur real


a

In majoritatea aplicatiilor n care este necesar calculul valorilor proprii, matricea are
elementele reale. In aceste situatii este mult mai eficienta utilizarea unei aritmetici
reale. Pentru aceasta, perechile de valori proprii complexe si perechile de vectori
proprii asociati (care, dupa cum s-a mai precizat, pot fi considerati, la randul lor, sub
forma unor vectori complex conjugati) trebuie si pot fi tratate n mod unitar, ntr-o
aritmetica reala, prin intermediul unor blocuri matriceale 2 2, respectiv al unor
subspatii A-invariante reale. Corespondentul formei Schur din cazul complex devine
o matrice cvasi-superior triunghiulara n care perechile de valori proprii complex
conjugate sunt evidentiate prin blocuri diagonale 2 2, numita forma Schur reala.
In acest context vom formula si, n masura n care apar aspecte noi, vom demonstra corespondentele reale ale lemei 4.2 si teoremei 4.12.
Lema 4.3 (Deflatie ortogonala) Fie A IRnn .
a) Dac
a (A) IR, atunci exist
a o matrice ortogonal
a Q IRnn astfel nc
at


S12
QT AQ =
.
(4.77)
0 S22
b) Dac
a 1,2 = i (A), 6= 0, atunci exist
a o matrice ortogonal
a Q IRnn
astfel nc
at


S11 S12
T
Q AQ =
,
(4.78)
0 S22

231

4.2. FORMA SCHUR


unde
S11 IR22 ,

cu

(S11 ) = {1 , 2 }.

(4.79)

Demonstratie. Prima parte a lemei se demonstreaza la fel cu lema 4.2 considerand


o matrice ortogonala Q a carei prima coloana este un vector propriu de norma
euclidiana unitara asociat valorii proprii . Pentru a doua parte a lemei consideram
vectorii proprii x1,2 = v1 iv2 asociati valorilor proprii complex conjugate 1,2 si
Y = [ y1 y2 ] IRn2 o baza ortogonala a subspatiului liniar A-invariant S = Im V ,
unde V = [ v1 v2 ] IRn2 si Z IRn(n2) o baza ortogonala a complementului
ortogonal T = S a lui S n IRn 12 . Evident, matricea Q = [ Y Z ] este ortogonala.
Pe de alta parte, ntrucat vectorii v1 si v2 sunt liniar independenti (vezi propozitia
4.1), exista o matrice nesingulara P IR22 astfel
ncat V = Y P . In consecinta,


din (4.14) avem AV = V B cu B =
. Rezulta

AY = AV P 1 = V BP 1 = Y S11 ,
unde
S11 = P

P 1 .

(4.80)

si, deci,
T

A1 = Q AQ =

YT
ZT

Y T AY
0

Y T AZ
Z T AZ

S11
0

S12
S22

(4.81)
punandu-se n evidenta blocul diagonal de ordinul 2 real S11 avand valorile proprii
complexe 1,2 .
3
Calculul matricei ortogonale de asemanare Q din lema de mai sus este conditionat esential de cunoasterea unui vector propriu (real) x asociat valorii proprii reale
evidentiate respectiv a partii reale si a celei imaginare a unui vector propriu asociat
unei valori proprii complexe. Altfel spus, posibilitatea deflatiei este conditionata de
cunoasterea subspatiului A-invariant corespunzator.
Procedand ca n demonstratia teoremei 4.12, i.e. efectuand deflatia matricei
A pentru valorile proprii reale, respectiv pentru perechile de valori proprii complexe, prin aplicarea sistematica a lemei de mai sus, pana la epuizarea ntregului
spectru si cumuland transformarile ortogonale partiale, obtinem urmatorul rezultat
important.
Teorema 4.13 (Forma Schur reala) Oricare ar
o matrice ortogonal
a Q IRnn astfel nc
at

S11 S12

0 S22
QT AQ = S =

0
0
12

Pentru constructia acestor baze vezi observatia 4.3.

fi matricea real
a A IRnn , exist
a

S1p
S2p
,

Spp

(4.82)

232

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

unde Sii IR11 sau Sii IR22 si toate blocurile diagonale 22 au valorile proprii
complexe. Avem, evident,
(A) = (S) =

p
[

(Sii ).

(4.83)

i=1

Matricea cvasi-superior triunghiular


a S se numeste forma Schur reala (FSR) a matricei A, iar coloanele matricei de transformare Q se numesc vectori Schur ai matricei A asociati formei Schur reale S.
Evident, ordinea pasilor de deflatie fiind arbitrara, forma Schur reala a unei
matrice poate avea blocurile diagonale n orice ordine predeterminata.
Conform (4.83) valorile proprii reale ale unei matrice pot fi determinate prin
simpla inspectie a elementelor diagonale ale formei sale Schur reale, iar cele complexe
se pot calcula prin rezolvarea ecuatiilor caracteristice (de gradul 2) ale blocurilor
diagonale ale acesteia.
Procedura de deflatie sugereaza o tehnica de calcul a valorilor proprii ale unei
matrice prin reducerea acesteia la forma Schur (reala). Din pacate, punerea n
evidenta a fiecarei valori proprii necesita cunoasterea unui vector propriu asociat,
care, la randul sau, nu poate fi calculat direct fara a cunoaste valoarea proprie
respectiva. De aceea, procedura de deflatie trebuie sa fie completata cu o metoda
de calcul a unui vector propriu fara cunoasterea valorii proprii asociate.
Metodele cele mai folosite de calcul iterativ al unui vector propriu sunt cunoscute
sub denumirile de metoda puterii si metoda puterii inverse.

4.3

Metoda puterii. Metoda puterii inverse

In aceasta sectiune vom prezenta doua modalitati de constructie recurenta a unor


siruri de vectori convergente, n conditii precizate, catre un vector propriu al unei
matrice date. Aceste metode se bazeaza pe urmatorul rezultat simplu, a carui
demonstratie face obiectul exercitiului 4.11.
Lema 4.4 Fie o matrice A C
I nn cu spectrul
(A) = { 1 , 2 , ..., n }.

(4.84)

Atunci matricele Ak , k IN , AIn , C,


I si, n cazul n care A este nesingular
a,
A1 au aceiasi vectori proprii cu matricea A si spectrele
(Ak ) = { k1 , k2 , ..., kn },

(4.85)

(A In ) = { 1 , 2 , ..., n },


1
1 1
1
, , ...,
.
(A ) =
1 2
n

(4.86)
(4.87)

4.3. METODA PUTERII. METODA PUTERII INVERSE

4.3.1

233

Metoda puterii

Consideram o matrice A C
I nn care are o valoare proprie dominant
a, i.e. o valoare
proprie de modul strict superior modulelor tuturor celorlalte. Numerotam valorile
proprii ale matricei A n ordinea descrescatoare a modulelor
|1 | > |2 | |3 | ... |n |.

(4.88)

Fie y (0) C
I n un vector de norma euclidiana unitara a carui proiectie ortogonala
pe directia vectorului propriu x1 asociat valorii proprii dominante 1 (A) este
(0)
nenula, i.e. xH
6= 0. Generic, un vector aleator normat satisface o astfel de
1 y
conditie. Daca A este o matrice simpla, i.e. exista o baza a spatiului C
I n formata
din vectorii proprii x1 , x2 , ..., xn ai acesteia, atunci y (0) poate fi descompus, n mod
unic, n raport cu acesta baza
y (0) =

n
X

i xi ,

(4.89)

i=1

unde
1 6= 0.

(4.90)

y (k) = k Ay (k1) , k = 1, 2,

(4.91)

Dac
a definim sirul vectorial (y (k) )kIN prin

cu initializarea y (0) si k un factor de normare definit de


k =

(4.92)

y (k) = k Ak y (0) ,

(4.93)

kAy (k1) k

atunci, folosind inductia, este usor de aratat ca

unde k este un factor de normare cumulat k = 1/kAk y (0) k. Din (4.89), (4.93) si
lema 4.2 rezulta
!
n
n
n
X
X
X
i k
k
k
k
(k)
A xi = k
i i xi = k 1 1 x1 +
i ( ) xi .
y = k
(4.94)
1
i=1
i=1
i=2


Utilizand (4.88) obtinem 1i < 1, i = 2 : n, de unde rezulta
lim

i
1

k

= 0,

i = 2 : n,

(4.95)

si
lim y (k) = x1 ,

(4.96)

n care este un scalar nenul astfel ncat kx1 k = 1. Prin urmare, sirul vectorial
construit cu schema de calcul

234

MP

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

1. Pentru k = 1, 2, . . .
1. Se calculeaza vectorul y (k) = Ay (k1)
2. y (k) y (k) /ky (k) k

bazata pe relatia de recurenta (4.91), care defineste metoda puterii, este convergent
catre vectorul propriu (4.95) asociat valorii proprii dominante a matricei A. Viteza
de convergenta este determinata de raportul |2 /1 |, fiind cu atat mai mare cu cat
acest raport este mai mic. In consecinta, metoda este eficienta n cazul matricelor
care au o valoare proprie net dominanta si o structura cu multe elemente nule (n
vederea unei implementari eficiente a produsului Ay (k1) ).
Pentru oprirea iterarii este necesar un criteriu care sa asigure o precizie de calcul impusa. Avand n vedere faptul ca un vector propriu de norma unitara este
determinat pana la o multiplicare cu un numar de modul unitar (i.e. ei cu IR
n cazul complex si 1 n cazul real), un criteriu posibil este asigurarea unei colinearitati impuse ntre vectorii calculati la doi pasi consecutivi. Cum, n cazul
vH u
complex unghiul dintre doi vectori u si v este definit de (u, v) = arccos
kuk kvk
vT u
iar n cazul real de (u, v) = arccos
, conditia de oprire a iterarii poate fi
kuk kvk
ek = |1 |(y (k) )H y (k1) | | < tol,

ek = |1 |(y (k) )T y (k1) | | < tol,


(4.97)
unde tol este o toleranta prescrisa (vezi si exercitiul 4.48). Introducand si abandonul
iterarii la atingerea unui numar maxim de iteratii, obtinem urmatorul algoritm.
respectiv

Algoritmul 4.1 (Metoda puterii) (Data o matrice A C


I nn , un
nivel de toleranta tol IR, tol > 1, si un numar maxim admis maxiter de
iteratii, algoritmul calculeaza un vector propriu unitar y asociat valorii
proprii dominante a matricei date sau tipareste un mesaj daca obiectivul
nu a fost atins n numarul de iteratii admis.)
1. Se alege aleator un vector y C
I n.
2. y y/kyk
3. i = 0,

e=1

4. C^
at timp e > tol
1. Dac
a i > maxiter atunci
1. Tip
are
ste S-a atins numarul maxim de iteratii fara a se
fi obtinut nivelul prescris al tolerantei.
2. Stop
2. z = Ay
3. z z/kzk
4. e = |1 |z H y| |
5. y z
6. i i + 1

4.3. METODA PUTERII. METODA PUTERII INVERSE

235

Comentarii.
Avand n vedere simplitatea relatiei de recurenta, metoda puterii
se poate dovedi atractiva daca se cunoaste apriori existenta unei valori proprii net
dominante. In caz contrar, viteza de convergenta poate fi nesatisfacatoare, iar n
cazul absentei unei valori proprii dominante sirul poate fi divergent. De aceea,
folosind rezultatele lemei 4.4, trebuie realizate transformari ale matricei A care,
fara a afecta vectorii proprii, sa creeze o astfel de valoare proprie (net) dominanta.
O posibilitate este de a utiliza o deplasare (eventual variabila k ) a spectrului
matricei A astfel ncat matricea A In sa aiba o valoare proprie (net) dominanta.
In acest caz schema de calcul pentru o iteratie a metodei puterii cu deplasare devine
MP

1. Pentru k = 1, 2, . . .
1. Se calculeaza vectorul y (k) = (A k )y (k1) .
2. y (k) y (k) /ky (k) k.

Din nefericire, determinarea deplasarii k efectiv utile nu este deloc simpla, motiv pentru care aceasta idee este folosita n paragraful urmator pentru rezolvarea
aceleiasi probleme ntr-un context modificat.
3

4.3.2

Metoda puterii inverse

Presupunem din nou ca matricea A C


I nn este simpla avand valorile proprii i ,
i = 1 : n (nu neaparat ntr-o ordine anumita) si vectorii proprii asociati xi , i = 1 : n.
Fie 6 (A) o aproximatie a lui 1 . Atunci, conform lemei 4.4, matricea (In A)1
are valorile proprii ( i )1 , i = 1 : n, si aceiasi vectori proprii cu cei ai matricei
A. Prin urmare, daca alegem un vector initial y (0) nedefectiv n raport cu x1 , i.e.
satisfacand (4.89) si (4.90), putem defini, utilizand metoda puterii pentru matricea
(In A)1 , sirul de vectori unitari
y (k) = k (I A)1 y (k1) , k = 1, 2, ...

(4.98)

unde k este un factor scalar de normare. Acum, daca deplasarea este mult mai
apropiata de 1 decat de i , i = 2 : n, atunci |( 1 )1 | va fi mult mai mare
decat |( i )1 |, i = 2 : n, i.e.,
maxi=2:n |( i )1 |
1,
|( 1 )1 |

(4.99)

si, n consecinta sirul (y (k) ) este foarte rapid convergent catre x1 .


Relatia de recurenta (4.98) defineste metoda puterii pentru matricea (In A)1
si este cunoscuta sub denumirea de metoda puterii inverse cu deplasare pentru
matricea A. Desigur, pentru calculul iteratiei (4.98) nu se inverseaza matricea
In A ci se rezolva sistemul liniar corespunzator, conform urmatoarei scheme de
calcul, definitorie pentru o iteratie a metodei puterii inverse.
MPI

1. Pentru k = 1, 2, . . .
1. Se rezolva sistemul (In A)y (k) = y (k1) n raport cu y (k) .
2. y (k) y (k) /ky (k) k.

236

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Rezolvarea sistemului liniar din schema de mai sus necesita un efort de calcul apreciat la n3 /3 operatii scalare n virgula mobila de tipul + , ceea ce reprezinta
un pret foarte ridicat pentru o singura iteratie a procesului de calcul al unui singur
vector propriu. Din fericire, cel mai adesea metoda se aplica unor matrice avand
structura superior Hessenberg ceea ce reduce numarul de operatii la n2 pentru
o iteratie. Utilizarea unei deplasari constante asigura convergenta catre vectorul
propriu asociat valorii proprii dominante a matricei (A In )1 , i.e. asociat valorii
proprii a matricei A celei mai apropiate de deplasarea .
In continuare prezentam o versiune importanta a metodei puterii inverse care
utilizeaza o deplasare k variabila cu pasul k si optimala ntr-un sens precizat.
Conform celor aratate mai sus, deplasarea care asigura cea mai mare viteza de
convergenta este egala cu cea mai bun
a aproximatie a unei valori proprii a matricei
A, disponibila la pasul respectiv. O modalitate cu excelente rezultate practice este
aceea n care aceasta aproximatie se obtine rezolvand, n sens CMMP, sistemul
supradeterminat
y (k1) k = Ay (k1)
(4.100)
de n ecuatii cu necunoscuta scalara k , sistem obtinut prin actualizarea, pentru
pasul curent, a relatiei asimptotice y () = Ay () , care este chiar relatia de
definitie a valorilor si vectorilor proprii. Pseudosolutia n sens CMMP a sistemului
(4.100) (vezi cap. 3) este asa numitul c
at Rayleigh al perechii (A, y (k1) ) definit de
k =

(y (k1) )H Ay (k1)
= (y (k1) )H Ay (k1) .
ky (k1) k2

(4.101)

Av
and n vedere faptul ca aceast
a aproximare este din ce n ce mai buna rezulta ca
viteza de convergenta a sirului (y (k) )kIN este din ce n ce mai ridicata. Concret, se
poate demonstra ca are loc asa-numita convergent
a p
atratic
a, i.e. exista o constanta
astfel ncat
ky (k+1) x1 k ky (k) x1 k2 .
(4.102)
Criteriile practice de trunchiere a sirului construit prin metoda puterii inverse sunt
aceleasi cu cele utilizate n cadrul algoritmului 4.1. Cu aceste precizari prezentam
algoritmul de implementare a metodei puterii inverse cu deplasarile (4.101).
Algoritmul 4.2 (Metoda puterii inverse cu deplasare Rayleigh)
(Data o matrice A C
I nn , un nivel de toleranta tol IR, tol < 1, si un
numar maxim admis maxiter de iteratii, algoritmul calculeaza un vector
propriu unitar y al matricei date sau tipareste un mesaj daca obiectivul
nu a fost atins n numarul admis de iteratii.)
1. Se alege aleator un vector y C
I n.
2. y y/kyk
3. i = 0,

e=1

4. C^
at timp e > tol
1. Dac
a i > maxiter atunci
1. Tip
are
ste S-a atins numarul maxim de iteratii fara a se
fi obtinut nivelul prescris al tolerantei.

237

4.3. METODA PUTERII. METODA PUTERII INVERSE

2.
3.
4.
5.
6.
7.

2. Stop
= y H Ay
Se rezolva sistemul liniar (In A)z = y
z z/kzk
e = |1 |z H y| |
yz
ii+1

Comentarii. Metoda puterii inverse cu deplasare variabila data de catul Rayleigh


reprezinta cea mai buna cale de calcul al unui vector propriu al unei matrice. Convergenta patratica este foarte rapida (dupa cum se poate vedea si din exemplul
k
4.3). Astfel, e.g. daca ky (0) x1 k si = 1, atunci ky (k) x1 k 2 .
Simultan cu calculul vectorului propriu, algoritmul calculeaza si valoarea proprie
asociata, data de valoarea finala a deplasarii . In vederea obtinerii unei eficiente
sporite, este utila transformarea prealabila a matricei date la o forma (e.g., forma
superior Hessenberg) care sa aiba ca efect reducerea efortului de calcul necesar
pentru rezolvarea sistemului liniar de la instructiunea 4.3.
3

Metoda puterii
k

ek

0
1
2
3
4
5
6
7
8
9
..
.
23

1.0000000000000
0.1055728090001
0.0262710088797
0.0026194296043
0.0006379322733
0.0002519147863
0.0000549638856
0.0000060060669
0.0000014882055
0.0000006272018
..
.
0.00000000000000

Metoda puterii inverse


(k)
ek
k = 1

(k)

2.0000000000000
3.2000000000000
3.1481481481482
2.8921933085502
3.0572569906791
2.9922635151170
2.9945140858135
3.0060698628267
2.9974207755674
3.0004545082285
..
.
3.0000000351815

1.0000000000000
0.1322781687254
0.2003991735561
0.0000155353785
0.0000000000709
0.0000000000000

2.0000000000000
2.9411764705882
3.0045159755566
3.0000169808688
3.0000000001717
3.0000000000000

Tabelul 4.1: Rezultate numerice privind evolutia erorii de pas ek si aproximatiei


(k)
curente 1 = (y (k) )H Ay (k) a valorii proprii dominante din exemplul 4.3.
Exemplul 4.3 Se considera matricea

2
1
A=
0
0

companion
3
0
1
0

2
0
0
1

6
0
,
0
0

238

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

avand valorile proprii (exacte)


1 = 3,

2,3 = 1 i,

4 = 1.

Un vector propriu exact asociat valorii proprii dominante 1 = 3 si, respectiv,


vectorul propriu normat calculat pe baza valorii exacte sunt (verificati!)

999
0.94288089928893
333
0.31429363309631
x1

.
x1 =
x1 =
=
111 ,
kx1 k 0.10476454436544
37
0.03492151478848

Evolutia erorii curente ek din (4.97) si a aproximatiei curente 1k a valorii proprii


dominante, calculate cu metoda puterii si metoda puterii inverse n variantele algoritmice 4.1 si 4.2, sunt prezentate n tabelul 4.1, unde au fost utilizate initializarea
y (0) = [ 1 0 0 0 ]T pentru vectorul propriu si toleranta de 1.0 1015 . Se verifica
faptul ca, n aceleasi conditii initiale, convergenta metodei puterii inverse este mult
mai rapida. Mai mult, valoarea proprie si vectorul propriu asociat (vezi tabelul
4.2), calculate n aceleasi conditii de oprire a iterarii (i.e. cu aceeasi toleranta) sunt
Metoda puterii

y (23)

Metoda puterii inverse

0.94288089793487
0.31429363608802
=
0.10476454880574
0.03492151110188

y (5)

0.94288089928893
0.31429363309631
=
0.10476454436544
0.03492151478848

Tabelul 4.2: Vectorii proprii calculati pentru datele din exemplul 4.3.
sensibil mai precise n cazul metodei puterii inverse (nu se constata nici o diferenta
n cele 15 cifre semnificative utilizate la afisare fata de valoarea considerata exacta).
3
In conformitate cu cele prezentate n aceasta sectiune, problema calculului valorilor si vectorilor proprii 13 se poate rezolva astfel:
1. Se calculeaza un vector propriu, utilizand metoda puterii sau metoda puterii inverse.
2. Se calculeaza valoarea proprie asociata, utilizand catul Rayleigh.
3. Se aplica procedura de deflatie, punand n evidenta valoarea proprie calculata si reduc
and dimensiunea problemei.
4. Daca nu s-au calculat toate valorile proprii se revine la pasul 1.
Aceasta procedura este elegant exprimata, ntr-o forma implicita, n cadrul unui
algoritm performant, cunoscut n literatura de specialitate sub denumirea de algoritmul QR.
13
In cadrul procedurii de deflatie, este vorba de vectorii proprii ai matricei (reduse) curente
care, de la al doilea pas, nu mai sunt vectori proprii ai matricei initiale. Totusi acesti vectori
proprii pot servi, ulterior, la calculul vectorilor proprii ai matricei initiale (vezi exercitiul 4.49).

4.4. ALGORITMUL QR

4.4

239

Algoritmul QR

Algoritmul QR este, n esenta, o procedura de deflatie iterativa care construieste


(recurent) un sir de matrice unitar asemenea cu matricea initiala, sir care, n conditii
precizate, este convergent catre forma Schur. In cazul real se poate impune utilizarea
exclusiva a aritmeticii reale. In aceasta situatie termenii sirului sunt matrice ortogonal asemenea, iar limita sa este o forma Schur reala a matricei initiale.
In vederea minimizarii efortului de calcul, ntr-o faza preliminara, matricea data
este adusa, prin transformari de asemanare ce implica un numar (teoretic) finit
si (practic) rezonabil de mic de operatii, la cea mai apropiata structura posibila
de forma Schur (reala). Aceasta structura este forma superior Hessenberg 14 . In
continuare, structura Hessenberg este conservata de recurenta fazei iterative a algoritmului. In acest fel, se obtine o importanta reducere a complexitatii unei iteratii
QR, fapt esential n economia algoritmului.
Performantele deosebite ale algoritmului QR se explica atat prin deciziile teoretice cum sunt cele referitoare la maximizarea vitezei de convergenta cat si
prin numeroase decizii tehnice de gestionare structurala optima pe parcursul
desfasurarii calculului.
In vederea unei prezentari mai clare si mai concise a algoritmilor din aceasta
sectiune vom folosi o serie de proceduri dezvoltate n capitolul 3. Sintaxa utilizata
si o descriere succinta a acestor proceduri sunt date n tabelul 4.3 15 . Precizam
ca, daca n apelul acestor proceduri, unii dintre parametrii de iesire au acelasi
nume cu unii dintre parametrii de intrare, atunci suprascrierea are loc n interiorul
procedurii respective, cu efecte benefice corespunzatoare pentru economia spatiului
de memorie necesar. De asemenea, pentru a crea posibilitatea unor comparatii
corecte a complexitatilor, numarul asimptotic de operatii aritmetice dat n tabel
este cel corespunzator operatiilor cu numere reale 16 .
c
a matricea H C
I nn este n form
a superior Hessenberg dac
a hij = 0, i > j + 1.
Atragem atentia c
a, din dorinta de a prezenta c
at mai unitar si mai limpede algoritmii
din capitolele 4, 5 si 6, procedurile din tabelul 4.3 au denumirile si sintaxele posibil diferite de
cele introduse n capitolul 3. Evident, pentru o implementare performant
a a acestor proceduri
(acuratete maxim
a, memorare optim
a etc.) vor fi urmate recomand
arile date n capitolul 3. Facem,
de asemenea, precizarea c
a reflectorii complecsi utilizati n algoritmii din capitolele 4, 5 si 6 sunt, n
exclusivitate, reflectori hermitici. Acolo unde utilizarea reflectorilor nehermitici ofer
a o alternativ
a
de calcul viabil
a (cum este cazul unor algoritmi din capitolul 5), versiunile respective fac obiectul
unor exercitii.
16
In cadrul algoritmilor care opereaz
a cu numere complexe evaluarea num
arului asimptotic de
operatii aritmetice s-a realizat cu urm
atoarele corespondente:
Operatie cu numere complexe
Operatii cu numere reale
adunare/sc
adere
2
nmultire
6
mp
artire
11.
Totusi, chiar cu acceptarea aritmeticii complexe, acolo unde economia de efort de calcul este evident
a, evaluarea s-a f
acut consider
andu-se c
a s-au utilizat explicit operatiile aritmetice cu numere
reale. Astfel, de exemplu, pentru un vector x P
C
I n , kxk22 se calculeaz
a cu expresia kxk22 =
n
= kRexk22 + kImxk22 si nu folosind kxk22 = xH x =
x

x
,
realiz
a
ndu-se
un efort de 4n flopi
i=1 i i
n loc de 7n flopi. Preciz
am, de asemenea, c
a evalu
arile num
arului de operatii nu includ operatii
conexe cum ar fi scalarea.
14 Reamintim
15

240

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Sintaxa

Intr
ari

Iesiri
b IRn
u IRn
IR
b C
In
u C
In
IR

[ b, u, ] = Hr(a)

a IR

[ b, u, ] = Hc(a)

a C
In

B = Hrs(u, , A)

u IRn
IR
A IRnm

B IRnm

B = Hrd(A, u, )

A IRmn
u IRn
IR

B IRmn

B = Hcs(u, , A)

u C
In
IR
A C
I nm

B C
I nm

B = Hcd(A, u, )

A C
I mn
u C
In
IR

B C
I mn

[ b, c, s] = Gr(a)

a IR

[ b, c, s] = Gc(a)

a C
I2

B = Grs(c, s, A)

c IR
s IR
A IR2m

B = Grd(A, c, s)

B = Gcs(c, s, A)

B = Gcd(A, c, s)

A IRm2
c IR
s IR
c IR
s C
I
A C
I 2m
A C
I m2
c IR
s C
I

b IR2
c IR
s IR
b C
I2
c IR
B IR2m

B IRm2
B C
I 2m

B C
I m2

Descriere
Calculul unui reflector real
U1 = In uuT / astfel
nc
at (b = U1 a)(2 : n) = 0.
Calculul unui reflector complex U1 = In uuH / astfel
nc
at (b = U1 a)(2 : n) = 0.
Inmultirea la st
anga a matricei A cu reflectorul real
U1 = In uuT /, i.e.
B = U1 A.
Inmultirea la dreapta a matricei A cu reflectorul real
U1 = In uuT /, i.e.
B = AU1 .
Inmultirea la st
anga a matricei A cu reflectorul complex U1 = In uuH /,
i.e. B = U1 A.
Inmultirea la dreapta a matricei A cu reflectorul complex U1 = In uuH /,
i.e. B = AU1 .
Calculul unei rotatii reale P ,
de ordinul 2, astfel nc
at
(b = P T a)(2) = 0.
Calculul unei rotatii complexe P , de ordinul 2, astfel nc
at
(b = P H a)(2) = 0.
Inmultirea la st
anga a matricei A cu P T , i.e. B = P T A,
unde P este o rotatie real
a
de ordinul 2.
Inmultirea la dreapta a matricei A cu rotatia real
a de
ordinul 2 P , i.e. B = AP .
Inmultirea la st
anga a matricei A cu P H , i.e. B = P H A,
unde P este o rotatie complex
a de ordinul 2.
Inmultirea la dreapta a matricei A cu rotatia complex
a
P de ordinul 2, i.e. B = AP .

Nop

2n

4n

4nm

4mn

14nm

14mn

18

6m

6m

26m

26m

Tabelul 4.3: Proceduri utilizate pentru scrierea algoritmilor din capitolele 4, 5 si


6. Evaluarea numarului asimptotic de opertii Nop s-a efectuat n flopi cu numere
reale, pentru operatiile cu numere complexe utilizandu-se echivalarile din nota de
subsol alaturata. Nu au fost incluse eventuale operatii de scalare pentru evitarea
depasirilor n format virgula mobila.

241

4.4. ALGORITMUL QR

4.4.1

Reducerea la forma superior Hessenberg

Este binecunoscuta teorema conform careia rezolvarea ecuatiilor algebrice generale


de grad superior lui patru nu este posibila printr-o secventa finita de operatii aritmetice (inclusiv extrageri de radical). Intrucat calculul valorilor proprii este echivalent cu rezolvarea ecuatiei caracteristice, deducem ca nu exista un algoritm direct care sa reduca o matrice data, de ordin superior lui patru, la o forma mai
apropiata de forma Schur dec
at forma Hessenberg si care, n acelasi timp, sa
conserve valorile proprii.
Posibilitatea reducerii unei matrice A C
I nn la forma superior Hessenberg, cu
conservarea valorilor proprii, este data de urmatorul rezultat.
Teorema 4.14 Oricare ar fi matricea A C
I nn , exist
a o matrice unitar
a Q
nn
C
I
, calculabil
a printr-o secvent
a finit
a de operatii aritmetice, astfel nc
at matricea
H = QH AQ
(4.103)
este superior Hessenberg.

In cazul real matricele H si Q sunt reale, i.e. matricea Q este ortogonal


a.
Demonstratie.
de calcul
HQ

Vom da o demonstratie constructiva bazata pe urmatoarea schema

1. Pentru k = 1 : n 2
1. Se calculeaza un reflector elementar (complex) Uk+1
H
astfel ncat (Uk+1
A)(k + 2 : n, k) = 0.
H
2. A Uk+1 A
3. A AUk+1

care suprascrie matricea A cu matricea


H
A H = Un1
U3H U2H AU2 U3 Un1 .

(4.104)

Q = U2 U3 Un1

(4.105)

Notand
H
avem QH = Un1
U3H U2H si, n consecinta, (4.104) poate fi scrisa n forma
(4.103). Ramane de aratat ca schema de calcul de mai sus creaza efectiv o structura
superior Hessenberg. Vom aplica un procedeu bazat pe inductie finita.
Pasul 1 . Exista un reflector elementar (complex) U2 de ordinul n astfel ncat
H
(U2 A)(3 : n, 1) = 0 (vezi cap. 3), care realizeaza structura superior Hessenberg n
prima coloana. Matricea U2 are structura


1 0
U2 =
(4.106)
2 .
0 U

Prin urmare, postmultiplicarea matricei U2H A cu U2 nu modific


a prima coloana a lui
U2H A, i.e. zerourile create n prima coloana a lui U2H A sunt conservate n U2H AU2 .

242

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Pasul k . Presupunem ca n cadrul primilor k 1 pasi (k < n 1) am obtinut


o matrice avand o structura superior Hessenberg n primele k 1 coloane:
def

A Ak = UkH U2H AU2 Uk .

(4.107)

H
Acum, exista un reflector elementar Uk+1 astfel ncat (Uk+1
A)(k + 2 : n, k) = 0, i.e.
H
premultiplicarea cu Uk+1 creeaza structura superior Hessenberg n coloana k fara
sa afecteze structura de zerouri din primele k 1 coloane. Mai mult, structura


Ik
0
Uk+1 =
(4.108)
k+1
0 U

a reflectorului utilizat la acest pas, ne asigura, de asemenea, ca postmultiplicarea


H
cu Uk+1 nu afecteaz
a nici una din primele k coloane ale matricei (Uk+1
Ak ).
Prin urmare, schema de calcul prezentata la nceputul demonstratiei realizeaza
reducerea matricei date la forma superior Hessenberg prin transformarea unitara
de asemanare (4.104).
In cazul real demonstratia este identica cu precizarea ca transformarea ortogonala de asemanare este un produs de reflectori reali. Caracterul finit al calculului
este evident.
3
Utilizand procedurile din tabelul 4.3, demonstratia de mai sus conduce imediat
la urmatorul algoritm.
Algoritmul 4.3 (HQc Reducerea la forma superior Hessenberg)
(Date o matrice A C
I nn si o matrice unitara Q C
I nn , algoritmul
calculeaza o secventa de reflectori (complecsi) U2 , U3 , , Un1 astfel
H
ncat matricea transformata A H = Un1
U3H U2H AU2 U3 Un1
este n forma superior Hessenberg. Optional se calculeaza actualizarea
matricei de transformare, i.e. Q QU2 U3 Un1 . Optiunea se exprima prin intermediul unei variabile logice opt de tipul sir de caractere
ce poate lua valorile da sau nu . Daca opt = nu , matricea Q ramane
nemodificata.)
1. Pentru k = 1 : n 2
1.
2.
3.
4.

Comentarii.

[ A(k + 1 : n, k), u, ] = Hc(A(k + 1 : n, k))


A(k + 1 : n, k + 1 : n) = Hcs(u, , A(k + 1 : n, k + 1 : n))
A(1 : n, k + 1 : n) = Hcd(A(1 : n, k + 1 : n), u, )
Dac
a opt = da atunci
Q(1 : n, k + 1 : n) = Hcd(Q(1 : n, k + 1 : n), u, )

Pentru apelul algoritmului HQc va fi utilizata sintaxa generala


[ H, V ] = HQc(A, Q, opt),

care exprima posibilitatea de a memora rezultatele n alte tablouri decat cele initiale
desi calculele se fac cu suprascrierea interna a matricei initiale si a matricei de
transformare. Sintaxa propusa mai sus se poate dovedi utila n asigurarea unei

243

4.4. ALGORITMUL QR

prezentari clare a procedurilor care utilizeaza algoritmul HQc. De exemplu, apelul


[ A, U ] = HQc(A, In , da ) calculeaza, pe loc, reducerea la forma Hessenberg si
creeaza matricea de transformare din (4.104).
In cazul real reflectorii utilizati vor fi reali si, n consecinta, matricea Hessenberg rezultata va fi reala. Intruc
at aceasta particularizare se obtine pur si simplu
nlocuind identificatorii procedurilor complexe cu cei ai procedurilor reale corespunzatoare, ne marginim sa precizam sintaxa de apel cu care aceasta varianta va
fi folosita n continuare:
[ H, V ] = HQr(A, Q, opt).
Complexitatea algoritmului este O(n3 ), executia sa implicand Nop 10n3 /3
operatii cu numere complexe n format virgula mobila. Acumularea matricei de

transformare necesita Nop 4n3 /3 operatii suplimentare. Algoritmul HQ este numeric stabil, i.e. matricea superior Hessenberg calculata ntr-o aritmetica n virgula
mobila este o matrice exact unitar (ortogonal) asemenea cu o matrice usor perturbata A + E, unde matricea de perturbatie E satisface conditia kEk p(n)M kAk,
cu p(n) o functie cu crestere modesta de dimensiunea n a problemei.
3
Observatia 4.4 Pentru obtinerea formei Hessenberg se pot utiliza si transformari
de asemanare neunitare (neortogonale). Intr-adevar, folosind transformari gaussiene
elementare stabilizate Mk Pk , k = 2 : n 1, unde Mk este o matrice inferior triunghiulara elementara, iar Pk este o matrice de permutare elementara (v. cap.2),
determinate corespunzator pentru anularea elementelor k + 1 : n din coloana k 1
a matricei curente, matricea
1
H = Mn1 Pn1 . . . M2 P2 AP2 M21 . . . Pn1 Mn1

va fi superior Hessenberg. O implementare ngrijita a secventei de transformari de


mai sus conduce la un efort de calcul redus la jumatate fata de cel necesar pentru executia algoritmului HQ. Detaliile algoritmului fac obiectul exercitiului 4.50.
Anumite retineri existente n utilizarea acestei solutii sunt datorate unor posibile
instabilitati numerice (a caror existenta este dovedita teoretic, dar care apar foarte
rar n practica) precum si unor dificultati n analiza erorilor, dificultati induse de
faptul ca transformarile neunitare (neortogonale) nu conserva conditionarea valorilor proprii.
3

4.4.2

Faza iterativ
a a algoritmului QR

Etapa iterativa a algoritmului QR utilizeaza, ntr-o maniera implicita, metodele


puterii si puterii inverse pentru reducerea unei matrice la forma Schur (reala). Desi
implementarile profesionale ale algoritmului QR utilizeaza, n exclusivitate, din
motive de eficienta calculatorie (n cazul matricelor reale), varianta cu deplasare
implicita cu pas dublu, din ratiuni pedagogice vom prezenta si variantele cu deplasare explicita.

244

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

A. Algoritmul QR cu deplasare explicit


a
Presupunem ca matricea H C
I nn are o structura superior Hessenberg. Algoritmul
QR cu deplasare explicita construieste un sir de matrice
H = H1 , H2 , , Hk , Hk+1 ,
pe baza relatiei de recurenta

Hk k In = Qk Rk
, k = 1, 2, ,
Hk+1 = Rk Qk + k In

(4.109)

H1 = H,

(4.110)

unde scalarul k , denumit deplasare, este folosit pentru asigurarea convergentei. In


prima relatie (4.110) matricea Hk k In este factorizata QR, i.e. scrisa sub forma
unui produs dintre matricea unitara Qk si matricea superior triunghiulara Rk (vezi
cap.3). In relatia a doua din (4.110) matricea succesor Hk+1 se obtine nmultind
matricele Qk si Rk n ordine inversa si anuland deplasarea prin adunarea matricei
k In . Sirul (4.109), generat de (4.110), este denumit sirul QR. Corespunzator,
tranzitia Hk Hk+1 se numeste un pas sau o transformare QR.
Principalele proprietati ale sirului QR sunt date de urmatoarea propozitie.
Propozitia 4.3 a) Dac
a matricea initial
a H1 = H a sirului matriceal QR este
superior Hessenberg, atunci toate matricele sirului au aceeasi structur
a. Altfel spus,
structura Hessenberg este invariant
a la transform
arile QR.
b) Toate matricele sirului QR sunt unitar asemenea si, prin urmare, au acelasi
spectru de valori proprii.

In cazul real afirmatiile de mai sus r


am
an valabile dac
a n locul operatorului
hermitic, de transpunere si conjugare, se utilizeaz
a operatorul de transpunere.
Demonstratie. a) Daca Hk din (4.110) este o matrice superior Hessenberg, aceeasi
structura o are si matricea Hk k In . Algoritmul de factorizare QR (v. cap.3) aplicat matricei superior Hessenberg Hk k In produce o matrice unitara Qk superior
Hessenberg 17 . Intrucat Rk este superior triunghiulara rezulta ca matricea unitara
Qk este, de asemenea, superior Hessenberg. Cum produsul dintre o matrice superior
triunghiulara si o matrice superior Hessenberg este o matrice superior Hessenberg
(verificati!) rezulta ca Rk Qk este superior Hessenberg si, evident, aceeasi structura
o are si matricea Hk+1 . Prin inductie, daca H1 = H este superior Hessenberg,
atunci toate matricele Hk , k = 2, 3, ... sunt matrice superior Hessenberg.
b) Din prima relatie (4.110) avem
Rk = QH
k (Hk k In ),

(4.111)

care, introdusa n cea de a doua relatie (4.110), conduce la


H
Hk+1 = QH
k (Hk k In )Qk + k In = Qk Hk Qk ,

(4.112)

17 Dac
a k 6 (Hk ) (care este cazul curent), atunci matricea superior triunghiular
a Rk este
nesingular
a si matricea Qk este, n mod necesar, superior Hessenberg.

245

4.4. ALGORITMUL QR

i.e. Hk+1 si Hk sunt unitar asemenea si au acelasi spectru. Aplicand (4.112) n


mod repetat obtinem
H
H
H
Hk = Q H
k1 Qk2 Q1 H1 Q1 Qk2 Qk1 = Qk H Qk ,

(4.113)

unde
k = Q1 Q2 Qk1
Q

(4.114)

este o matrice unitara (ca produs de matrice unitare). Prin urmare, toate matricele
din sirul QR sunt unitar asemenea si, n consecinta, au acelasi spectru. Transformarea unitara cumulata (4.114) poate fi construita recurent cu relatia
k+1 = Q
k Qk ,
Q

k = 1, 2, ,

1 = In .
Q

(4.115)

Propozitia este demonstrata.

In continuare, vom arata ca, prin alegerea adecvata a deplasarilor k , k =


= 1, 2, . . ., n afara unor situatii patologice (vezi exemplul 4.4), sirul QR este convergent catre forma Schur (reala). Mai precis, vom arata ca, n primul rand, elementul
extradiagonal al ultimei linii a matricei Hk se anuleaza asimptotic pentru k .
Mai mult, generic, toate elementele subdiagonale, cu viteze diferite, au tendinta de
anulare. Argumentele sunt urmatoarele.
(i) Cu o alegere adecvata a deplasarilor k , sirul QR implementeaza, ntr-o
forma implicita, o versiune a metodei puterii inverse cu deplasare Rayleigh si, n
consecinta, asigura o convergenta patratica a ultimei coloane a matricei de trans k catre un vector propriu al matricei H H ceea ce are ca efect
formare cumulate Q
anularea asimptotica a elementului Hk (n, n 1).
Pentru a justifica aceasta afirmatie observam mai ntai faptul ca din relatiile
(4.111), (4.113) si (4.115) rezulta
H H
H

Rk = QH
k (Qk H Qk k In ) = Qk Qk (H k In )Qk = Qk+1 (H k In )Qk , (4.116)

de unde
H = Q
H (H k In ).
Rk Q
k
k+1

(4.117)
(k+1)

(k)

Putem scrie acum dependenta dintre ultimele coloane qn


si qn ale matricelor
k+1 si, respectiv, Q
k . Intr-adev
Q
ar, prin transpunerea si conjugarea relatiei (4.117)
se obtine
k RkH = (H H
k+1 ,
Q
k In )Q
(4.118)
unde
k este conjugata deplasarii k . Intrucat RkH este inferior triunghiulara, egalitatea ultimelor coloane din (4.118) conduce la
(k) (k)
rnn
qn = (H H
k In )
qn(k+1)

(4.119)

(k)
qn(k+1) = rnn
(H H
k In )1 qn(k) ,

(4.120)

sau, daca k 6 (H),

246

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(k)

(k)

unde rnn este conjugatul lui rnn . Relatia (4.120) defineste iteratia puterii inverse
pentru determinarea unui vector propriu al matricei H H . In continuare vom arata
ca daca ultima coloana a matricei unitare de transformare este un vector propriu al
matricei H H atunci elementele extradiagonale ale ultimei linii ale matricei H se anuleaza, similar cu procedura standard de deflatie. Pentru aceasta reamintim faptul
ca valorile proprii ale matricei H H sunt conjugatele valorilor proprii ale matricei H
si consideram transformarea unitara definita de matricea


= Q
vn ,
Q
(4.121)
cu vn un vector propriu al matricei H H , i.e.
n vn ,
H H vn =

cu n (H).

(4.122)

Atunci, din (4.121) si (4.122) avem


(
= n vnH Q
= 0,
vnH H Q

(4.123)

vnH Hvn = n vnH vn = n ,

de unde rezulta
 
 H
 H 
HQ
Q
H Hvn




Q
H
H HQ
= Q

=
H
=
Q
Q
v
n
T
H
H

0
vn
vn H Q vn Hvn

hH
n

(4.124)
Viteza patratica de convergenta a vectorului coloana
din (4.120) catre un vector
propriu al matricei H H poate fi obtinuta alegand pentru deplasarea
k valoarea
(4.101) a catului Rayleigh
(k)
qn

(k)

k =

(k)

(
qn )H H H qn
(k)

(k)

(
qn )H qn

H
T
H
(k)
H
= (
qn(k) )H H H qn(k) = eTn Q
k H Qk en = en Hk en = hnn ,

respectiv,
k = h(k)
nn .

(4.125)

Alegerea (4.125) a deplasarii originii garanteaza o rata excelenta de convergenta a sirului QR catre forma Schur n ultima linie, i.e. de anulare asimptotica a
(k)
(k)
elementului hn,n1 . Cand elementul hn,n1 satisface o conditie de forma
(k)

(k)

|hn,n1 | < tol(|hn1,n1 | + |h(k)


nn |),

(4.126)
(k)

unde tol este un nivel prescris de toleranta, putem considera ca hn,n1 este numeric
(k)

neglijabil si l putem anula efectiv. Astfel hnn devine o valoare proprie calculat
aa
lui H. Dupa aceasta operatie, dimensiunea problemei s-a redus cu o unitate.
(ii) S
irul QR implementeaza simultan o versiune a metodei puterii cu deplasare. Astfel, n acelasi timp, sirul QR pune asimptotic n evidenta, chiar daca
cu o viteza mai redusa, si alte valori proprii pe diagonala matricei curente a sirului.

247

4.4. ALGORITMUL QR
Intr-adevar, din (4.116), avem
k+1 Rk = (H k In )Q
k.
Q

(4.127)

Egalitatea primelor coloane ale matricelor din (4.121) conduce la


(k)
k+1 r(k) = (H k In )
Q
q1 ,
1

(4.128)

(k)
k e1 este prima coloana a matricei Q
k si r(k) = Rk e1 este prima
unde q1 = Q
1
(k)
(k)
coloana a matricei Rk . Intrucat Rk este superior triunghiulara, avem r1 = r11 e1
si, deci, (4.128) poate fi scrisa n forma echivalenta
(k+1)

q1

1
(k)
r11

(k)

(H k In )
q1 ,

(4.129)

care exprima recurenta ce defineste metoda puterii pentru calculul unui vector propriu al matricei H, utilizand un parametru scalar de deplasare k . Conform celor
aratate n sectiunea 4.3, daca k evolueaza astfel ncat matricea H k In are o
valoare proprie dominanta atunci prima coloana a matricei unitare de transformare
k converge catre un vector propriu asociat acestei valori proprii. In conformitate
Q
H HQ
k = Hk
cu procedura de deflatie (vezi sectiunea 4.2) prima coloana a matricei Q
k
converge catre prima coloana a formei Schur a lui A, i.e. elementul subdiagonal din
prima coloana a lui H se anuleaza asimptotic. Viteza de convergenta depinde de
evolutia modulului raportului primelor doua valori proprii (enumerate n ordinea
descrescatoare a modulelor) ale matricei H k In .
Avand n vedere faptul ca cele doua procese de deflatie au loc simultan si ca,
odata luata decizia de neglijare a elementelor subdiagonale suficient de mici, dimensiunea problemei de calcul scade, o experienta numerica destul de consistenta
a condus la evaluarea ca, n mod obisnuit, pentru calculul unei valori proprii a unei
matrice Hessenberg sunt suficiente, n medie, 1.5-2 iteratii QR. Aceasta viteza de
convergenta exceptionala se datoreaza faptului, constatat experimental, ca o data cu
elementele subdiagonale din ultima linie si prima coloana, toate celelalte elemente
subdiagonale au tendinta de anulare asimptotica.
Pe de alta parte, asa cum s-a precizat, sirul QR nu converge ntotdeauna, existand situatii n care elementele subdiagonale, inclusiv cel de pe pozitia (n, n1),
nu se anuleaza asimptotic. In practica numerica astfel de situatii sunt rare, patologice, si se pot lua masuri care s
a le faca extrem de rare. Prezentam n continuare
un astfel de caz.
Exemplul 4.4 Se considera matricea H IR44 n forma superior Hessenberg

0 0 0 1
1 0 0 0

H =
0 1 0 0 ,
0 0 1 0

avand valorile proprii (exacte), ordonate arbitrar,


1 = 1,

2,3 = i,

4 = 1.

248

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

h21

1 = 0.001
(k)
h32

h43

1
2
3
..
.
11
12
13
14
15
16
..
.
25
..
.
50
..
.
100

1.00000000000000
0.99999900000088
0.99999800000800
..
.
0.89589063292443
0.74524339988451
0.58630453030022
0.44579447911603
0.32803260297652
0.23685107105612
..
.
0.01069551270948
..
.
0.00000184648291
..
.
0.00000000000006

1.00000000000000
0.99999999999950
0.99999999999800
..
.
0.99770241027003
0.99080233083311
0.99453900211462
0.99846792286246
0.99959510209257
0.99989584829055
..
.
0.99999999959102
..
.
1.00000000000000
..
.
1.00000000000000

1.00000000000000
0.99999949999887
0.99999799999200
..
.
0.86085664887513
0.48323652626445
0.04719725489411
0.00003625307539
0.00000000000002
0.00000000000000
..
.
0
..
.
0
..
.
0

(k)

(k)

Tabelul 4.4: Rezultate numerice pentru exemplul 4.4 privind evolutia elementelor
(k)
subdiagonale hi+1,i , i = 1 : 3, ale matricelor Hk cu initializarea 1 = 0.001 6= 0 a
deplasarii.

249

4.4. ALGORITMUL QR

Se observa ca H este o matrice ortogonala (de permutare). De asemenea nu este


greu de vazut ca sirul QR construit cu relatiile (4.110) cu deplasarile (4.125) lasa
matricea H nemodificata, i.e.
Hk = H,

k = 1, 2, . . .

Intr-adevar, fie H1 def


= H. Avem 1 = h44 = 0, deci H1 1 I4 = H1 . Cum H1
este ortogonala, o factorizare QR a lui H1 se obtine pentru Q1 = H1 si R1 = I4 .
Rezulta H2 = H1 si, prin inductie, se obtine relatia de mai sus pentru toti k.
(k)
Evolutia elementelor subdiagonale hi+1,i , i = 1 : 3, ale matricelor Hk pentru
initializarea 1 = 0.001 6= 0 a deplasarii este prezentata n tabelul 4.4, iar pentru
initializarea recomandata 1 = 2 6= 0 a deplasarii este prezentata n tabelul 4.5,
din care se poate observa viteza diferita de anulare asimptotica a elementelor h43

h21

1 = 2
(k)
h32

h43

1
2
3
4
5
6
..
.
25
..
.
50
..
.
100

1.00000000000000
0.91651513899117
0.78445125612917
0.63665525316291
0.49164479289711
0.36518170914743
..
.
0.00053197970928
..
.
0.00000009183752
..
.
0.000000000000000

1.00000000000000
0.98169181562325
0.97895246315181
0.99162466881300
0.99761224919910
0.99936015720678
..
.
1.00000000000000
..
.
1.00000000000000
..
.
1.00000000000000

1.00000000000000
0.80868982852162
0.34595766230725
0.01531773203215
0.00000122920448
0.00000000000000
..
.
0
..
.
0
..
.
0

(k)

(k)

Tabelul 4.5: Rezultate numerice pentru exemplul 4.4 privind evolutia elementelor
(k)
subdiagonale hi+1,i , i = 1 : 3, ale matricelor Hk cu initializarea 1 = 2 6= 0 a
deplasarii.
si h21 si evidentierea valorilor proprii reale 1 si 4 n pozitiile diagonale 11 si 44 .
Iterand de un numar suficient de ori cititorul interesat va avea confirmarea faptului
ca limita sirului QR construit cu una din initializarile date pentru este

1 0
0 0
0 0 1 0
.
Hk H =
0 1
0 0
0 0
0 1
(k)

Faptul ca elementul h32 nu se anuleaza asimptotic se datoreaza utilizarii exclusive

250

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(k)

a aritmeticii reale si alegerii k = h44 , a deplasarii pentru toti k 2. Modul n


care se gestioneaza ntreaga structura a matricei Hk este tratat mai departe. 3
Observatia 4.5 Situatiile de genul celor evidentiate n exemplul 4.4 se pot sesiza prin supravegherea elementului hn,n1 si daca, dupa un numar convenit de
iteratii 18 modulul sau nu scade sub o toleranta impusa, se intervine, de obicei prin
renuntarea, pentru un singur pas, la deplasarea data de (4.125). In literatura de
specialitate (vezi [ X ]) exista unele recomandari pentru alegerea acestei deplasari
modificate, bazate pe o bogata experienta numerica dar lipsite de o justificare teoretica corespunzatoare. Daca o astfel de masura nu da rezultate, n general se
renunta la continuarea calculului 19 . Detaliile vor fi precizate n descrierea algoritmilor.
3
In concluzie, algoritmul QR cu deplasare explicita este definit, n esenta, de
recurenta (4.110), cu alegerea (4.125) a deplasarii. Avandu-se n vedere structura
superior Hessenberg a tuturor matricelor sirului QR, pentru factorizarea QR se
recomanda utilizarea rotatiilor. In consecinta, un pas simplu QR cu deplasare
explicit
a (fara acumularea transformarii) consta n efectuarea urmatoarelor calcule,
pe loc, n spatiul de memorie al matricei H.
1. = hnn
2. H H In

3. Pentru j = 1 : n 1

1. Se determina rotatia plana (complexa) Pj,j+1 astfel


H
ncat (Pj,j+1
H)j+1,j = 0.
H
2. H Pj,j+1
H

4. Pentru j = 1 : n 1
1. H HPj,j+1

5. H H + In

Matricea de transformare curenta este data de


Qk = P12 P23 Pn1,n ,
iar completarea algoritmului cu acumularea transformarilor (care se face numai n
caz de necesitate) este lasata n sarcina cititorului.
Complexitatea unui pas QR cu deplasare explicita aplicat unei matrice superior
Hessenberg este O(n2 ) algoritmul de mai sus necesitand N 6n2 flopi (complecsi).
Pasul QR de mai sus se ajusteaza la dimensiunea curenta a problemei, pe masura
ce se pun n evidenta valorile proprii calculate. O modalitate concreta de gestionare
a valorilor proprii calculate va fi prezentata n cadrul algoritmului QR cu deplasare
implicita.
18

Valorile uzuale sunt n jurul lui 10.


Num
arul de iteratii la care se ia decizia de lips
a de convergenta
si de oprire a calculului
este, uzual, ntre 20 si 30.
19

251

4.4. ALGORITMUL QR
B. Strategia pasilor dubli

In cazul matricelor reale se poate impune utilizarea exclusiva a unei aritmetici reale.
Dac
a matricea are si valori proprii complex conjugate alegerea recomandata mai sus
pentru deplasarea k nu mai poate asigura convergenta procesului de evidentiere a
valorilor proprii. Asa cum s-a vazut n demonstratia lemei 4.3, pentru evidentierea
unui bloc 22 al formei Schur reale, deflatia se face cu ajutorul unei baze ortogonale
(reale) a subspatiului A-invariant generat de partea reala si cea imaginara a perechii
de vectori proprii asociati. Aceasta a condus la ideea comasarii a doi pasi consecutivi
QR ntr-unul singur 20 si a utiliz
arii unei perechi de deplasari complex conjugate
care, n pasul dublu, apar n combinatii reale.
Concret, fie H IRnn o matrice superior Hessenberg si doi pasi consecutivi
QR cu deplasare explicita
(
(
Hk k In = Qk Rk
Hk+1 k+1 In = Qk+1 Rk+1
,
,
(4.130)
Hk+1 = Rk Qk + k In
Hk+2 = Rk+1 Qk+1 + k+1 In
care pot fi contrasi n transformarea directa Hk Hk+2 , numita pas dublu QR.
Intr-adevar, pasul k produce matricea Hk+1 = QH Hk Qk astfel ncat factorizarea
k
QR din cadrul pasului k + 1 poate fi scrisa sub forma QH
k Hk Qk k+1 In =
= Qk+1 Rk+1 . Inmultind aceasta relatie la stanga cu Qk , la dreapta cu Rk si utilizand factorizarea QR din cadrul pasului k, rezulta ca un pas dublu QR este descris
de
(
(Hk k In )(Hk k+1 In ) = Qk Qk+1 Rk+1 Rk
,
(4.131)
T
Hk+2 = (Qk Qk+1 ) Hk Qk Qk+1
si implica efectuarea urmatoarelor calcule:
def

1. Se calculeaza matricea M = Hk2 sk Hk +pk In , unde sk = k +k+1


si pk = k k+1 .
R,
unde
2. Se calculeaza factorizarea QR a matricei M , i.e. M = Q

Q = Qk Qk+1 si R = Rk Rk+1 .
T Hk Q.

3. Hk+2 = Q
Deplasarile k si k+1 se aleg, n concordanta cu cele discutate mai sus, egale cu
valorile proprii ale blocului 2 2 din coltul din dreapta jos al matricei Hk :
#
" (k)
(k)
hn1,n1 hn1,n
Hk (n1 : n, n1 : n) =
.
(4.132)
(k)
(k)
hn,n1
hn,n
Important este faptul ca, n schema de calcul aferenta unui pas dublu QR, cele
dou
a valori proprii apar sub form
a de suma si produs:

(k)
sk = k + k+1 = h(k)
n1,n1 + hn,n
,
(4.133)
(k)
(k)
(k)
(k)
p =
k
k k+1 = hn1,n1 hn,n hn1,n hn,n1
20 Se poate imagina
si o comasare a mai multi pasi QR n cadrul unei strategii a pasilor
multipli. O astfel de solutie este utilizat
a n LAPACK [ XV ] pentru procedurile bloc de calcul
al valorilor proprii.

252

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

care sunt reale chiar daca cele doua deplasari individuale sunt complexe.
Strategia pasului dublu QR nu se aplica nsa n forma explicit
a de mai sus
ntrucat implementarea schemei de calcul prezentate conduce la o reducere sensibila a eficientei. Intr-adevar, complexitatea unui pas simplu QR este O(n2 ) si la fel
este si complexitatea a doi pasi simpli QR n timp ce numarul de operatii necesar
pentru executia unui pas dublu QR, datorita calculului explicit al matricei M , este
de ordinul O(n3 ). Aceasta nseamna ca forma explicita a pasului dublu QR nu este
optimala. Refacerea complexitatii la O(n2 ) este posibila (dar nu apare n mod simplu), iar varianta de calcul este cunoscuta sub denumirea de varianta cu deplasare
implicit
a si este utilizata n toate implementarile profesionale ale algoritmului QR
pentru matrice reale.
C. Ideea algoritmului QR cu deplasare implicit
a
Scopul fundamental al dezvoltarii variantei cu deplasare implicita a algoritmului
QR este reducerea complexitatii unui pas dublu QR aplicat unei matrice reale
n forma superior Hessenberg la nivelul complexitatii a doi pasi simpli QR. Desi,
principial, exista toate motivele ca acest lucru sa fie posibil, aspectele tehnice sunt
departe de a fi triviale. Algoritmul QR cu deplasare implicita dateaza din anul
1961 si a fost propus de J.G.F. Francis [ 26 ] si V.N. Kublanovskaia [ 39 ].
Conform celor prezentate mai sus referitor la pasul dublu QR, matricele Hk
T Hk Q
k au structura superior Hessenberg si sunt ortogonal asemenea.
si Hk+2 = Q
k
Sansele de a gasi o cale alternativ
a de calcul a matricei succesor Hk+2 si, eventual,
a matricei de transformare asociate, sunt legate nemijlocit de evidentierea gradelor
de libertate existente. Avand n vedere aceasta observatie, suntem interesati de
conditiile n care transformarea care defineste un pas QR este unica sau poate fi
restransa la o clasa bine precizat
a.
Pentru nceput, observam ca, n general, matricea unitara Qk care defineste
relatia de asemanare dintre matricele superior Hessenberg Hk si Hk+1 din sirul QR
nu este unica. Intr-adevar, fie V C
I nn o matrice unitara arbitrara. Aplicarea
H
algoritmului HQc matricei V Hk V conduce la obtinerea unei matrice superior
Hessenberg unitar asemenea cu Hk si care depinde de alegerea lui V .
Restrangerea transformarilor la o clasa de transformari, echivalente din punctul de vedere al convergentei catre forma Schur, va fi facuta pentru matricele superior Hessenberg ireductibile 21 definite mai jos.
Definitia 4.6 O matrice n n complex
a sau real
a H superior Hessenberg se numeste ireductibila dac
a are toate elementele subdiagonale nenule, i.e.
hj+1,j 6= 0,

j 1 : n1.

(4.134)

Pentru matricele superior Hessenberg ireductibile prezentam teorema urmatoare.


21 Problema calculului valorilor proprii ale unor matrice superior Hessenberg reductibile se
reduce la calculul valorilor proprii ale unor matrice superior Hessenberg ireductibile de dimensiuni
mai mici (vezi mai departe).

253

4.4. ALGORITMUL QR

Teorema 4.15 Fie matricea A C


I nn si matricele unitare U C
I nn si V C
I nn
astfel nc
at matricele
H = U H AU,
G = V H AV
(4.135)
sunt ambele superior Hessenberg ireductibile. Dac
a matricele U si V au aceeasi
prim
a coloan
a, i.e.
U e1 = V e1 ,
(4.136)
atunci
U ej = eij V ej ,

j IR,

j = 2 : n,

(4.137)
ij

i.e. exist
a o matrice diagonal
a unitar
a D = diag(1, 2 , . . . , n ) cu j = e , j = 2 : n,
astfel nc
at
H = DH GD.
(4.138)
nn
nn
nn

In cazul real, i.e. A IR


si matricele U IR
si V IR
ortogonale,
conditia (4.136) implic
a U ej = V ej , j = 2 : n, i.e. matricea diagonal
a din (4.138)
este ortogonal
a av
and j { 1, 1 }, j = 2 : n. Dac
a elementele subdiagonale
corespondente ale matricelor G si H din (4.135) au acelasi semn, atunci (4.136)
implic
a U = V , i.e transformarea este unic determinat
a.
Observatia 4.6 Avand n vedere obiectivele urmarite, putem afirma ca, n conditiile teoremei 4.15, matricele H si G sunt esential aceleasi. Intr-adevar, este usor
de constatat ca |hij | = |gij | (n cazul real aceasta nseamna hij = gij ) pentru toti
i si j si, prin urmare, distanta (n norma Frobenius) pana la forma Schur cea
mai apropiata a celor doua matrice poate fi considerata aceeasi.
3
def

Demonstratia teoremei 4.15. Fie W = V H U si W = [ w1 w2 wn ] partitia sa


pe coloane. Atunci, din (4.136), rezulta w1 = W e1 = e1 , iar din (4.135) avem
GW = W H relatie care, scrisa pe coloane, devine
Gwj = W H(:, j) =

j
X

wk hkj + wj+1 hj+1,j ,

k=1

j = 1 : n 1.

Intrucat hj+1,j 6= 0, obtinem urm


atoarea exprimare a coloanei j + 1 a matricei W
n functie de coloanele precedente
wj+1 =

1
hj+1,j

(Gwj

j
X

wk hkj ),

k=1

expresie care, cu initializarea w1 = e1 , probeaza faptul ca matricea W este superior


triunghiulara. Cum o matrice unitara triunghiulara este n mod necesar diagonala
cu toate elementele diagonale de modul unitar (vezi exercitiul 4.20), rezulta wj =
= W ej = eij ej , j = 2 : n, si, deci, n (4.138) matricea diagonala D este chiar W ,
def

i.e. avem D = W . Relatiile (4.137) sunt o consecinta imediata a relatiei (4.138).


In cazul real demonstratia este aceeasi daca se tine seama de faptul ca operatia de
conjugare nu are efect si ca singurele numere reale de modul unitar sunt 1 si 1.
Fie 1 = 1. Atunci elementele diagonale ale matricei D se determina cu relatia de
gi,i1
recurenta i =
i1 de unde rezulta ca, daca gi,i1 si hi,i1 au acelasi semn,
hi,i1
atunci i = 1, i = 2 : n, i.e. D = In .
3

254

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

D. Un pas QR cu deplasare implicit


a
pentru matrice complexe
Teorema 4.15 reprezinta fundamentul teoretic pentru variantele cu deplasare implicita ale algoritmului QR. Ideea centrala a acestora consta n asigurarea conditiei
ca prima coloana a matricei de transformare cumulate aferente unui pas QR sa
coincida cu prima coloana a matricei de transformare de la varianta cu deplasare
explicita corespunzatoare, simultan cu minimizarea numarului de operatii aritmetice, prin exploatarea eficienta a structurilor de zerouri ale matricelor implicate.
Concret, pentru implementarea unui pas simplu QR cu deplasare implicita se
procedeaza n felul urmator:
(k)

1. Se calculeaza prima coloana q1 a matricei Qk din (4.110) ce defineste transformarea unitara aferenta unui pas simplu QR cu deplasare explicita.
2. Se determina o matrice unitara U1 astfel ncat prima sa coloana sa
(k)
(k)
fie q1 , i.e. U1 e1 = q1 .
3. Se calculeaza matricea B = U1H Hk U1 (a carei structura nu mai
este superior Hessenberg).
4. Se reface structura superior Hessenberg, aplicand algoritmul HQc
k+1 ] = HQc(B, Q
k , opt). Transformarile immatricei B: [Hk+1 , Q
plicate de aceasta reducere nu afecteaza prima coloana a matricei
de transformare cumulate.
Aceasta schema de calcul defineste un pas QR cu deplasare implicit
a. Daca matricea
Hk este ireductibila, atunci rezultatul Hk+1 al aplicarii schemei de calcul de mai
sus va fi esential acelasi, n sensul observatiei 4.6, cu cel dat de un pas QR cu
deplasare explicita. Pentru ca procedura cu deplasare implicita sa nu fie inferioara,
din punctul de vedere al eficientei, celei cu deplasare explicita, trebuie exploatate
corespunzator avantajele structurale date de forma Hessenberg a matricelor initiala
si finala. Detaliile unei implementari eficiente sunt prezentate n continuare.
not

Fie, pentru simplificarea notatiilor, Hk = H matricea curenta a sirului QR,


not
not
presupusa ireductibila, Hk+1 = H matricea succesor, k = etc. (i.e. renuntam
la indicele k). Aceste notatii se justifica si prin faptul ca atat matricea H cat si
matricea intermediara B pot suprascrie matricea H, i.e. toate calculele aferente
unui pas simplu QR cu deplasare implicita se pot desfasura pe loc, n tabloul H.
Urmand etapele din schema de calcul de mai sus avem urmatoarele particularitati.
1. Presupunem ca = hnn 6 (H), i.e. matricea H In este nesingulara.
not
Prin urmare matricea superior triunghiulara Rk = R din (4.110) este, de asemenea,

255

4.4. ALGORITMUL QR
not

nesingulara, iar prima coloana a matricei de transformare Qk = Q este

1
q1 = Qe1 =
r11

Numim vectorul
w=

h11
h21

h11
h21
0
..
.
0


C
I2

(4.139)

(4.140)

vector de deplasare implicit


a aferent unui pas QR.
2. Matricea unitara U1 de la instructiunea 2 a schemei de calcul de mai sus
poate fi un reflector (complex) sau, si mai simplu, datorita structurii vectorului q1
din (4.139), o rotatie (complexa) U1 = P12 , astfel calculata ncat
U1H q1 = kq1 ke1 .

(4.141)

In ambele situatii, structura matricei U1 este


U1 =

1
U
0

0
In2

(4.142)

1 C
cu U
I 22 . Vom opta pentru utilizarea rotatiilor, asadar elementele definitorii
c1 si s1 ale rotatiei P12 se obtin cu ajutorul functiei Gc n cazul complex, respectiv
Gr n cel real (vezi tabelul 4.3) aplicate vectorului de deplasare implicita w.
3. Datorita structurii (4.142) a matricei U1 alterarea formei Hessenberg prin
calculul matricei B de la instructiunea 3 are loc numai n pozitia (3, 1).
4. Matricea B avand un singur element nenul ce altereaza forma superior
Hessenberg, pentru asigurarea eficientei se impune adaptarea algoritmului HQc
la aceasta situatie structurala. Concret, putem utiliza o transformare unitara de
asemanare definita de o secventa de rotatii (complexe) care elimina elementul nenul
din afara structurii Hessenberg prin deplasarea lui de-a lungul unui traseu paralel
cu diagonala principala. Schema de calcul este urmatoarea:
1. Pentru i = 2 : n1
1. Se calculeaza rotatia (complexa) Pi,i+1 astfel ncat
H
(Pi,i+1
B)(i+1, i1) = 0.
H
2. B Pi,i+1
B. % Se anuleaza elementul (i+1, i1).
3. B BPi,i+1 . % Pentru i < n1 apare un element nenul
n pozitia (i+2, i).
Pentru exemplificare prezentam evolutia structurala a matricei B n cazul n = 5.
In diagramele structurale de mai jos zerourile nou create au fost marcate cu , iar
alterarile de zerouri de la transformarea curenta au fost marcate cu +. Incadrarile

256

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

marcheaza liniile si/sau coloanele afectate

H B = U1H HU1 =
+
0
0

H
H
P23

H HP23

H
H P34
H=

H HP34

H
H P45
H=

H HP45

de transformarea curenta.


,
0
0 0

0 0
0 0

0
0
0

+
0

0
0

0 0

0
0

0
0
0

0
0

0
0
0

0
0

Calculul elementelor definitorii ci si si ale rotatiei Pi,i+1 se face cu functia Gc, iar
H
calculul economic al produselor Pi,i+1
B si
BPi,i+1 exploateaza structura (aproape)

257

4.4. ALGORITMUL QR

Hessenberg a matricei B. Varianta adaptata a algoritmului HQc data de schema


de calcul de mai sus calculeaza matricea superior Hessenberg
H
H H
H H = Pn1,n
P34
P23 BP23 P34 Pn1,n =
H
H H
= Pn1,n
P23
P12 HP12 P23 Pn1,n = QH
k HQk ,

(4.143)

i.e. matricea succesor a lui H din sirul QR cu pasi simpli.


Din ratiuni de organizare judicioasa a algoritmului QR si, mai ales, a algoritmului de ordonare a formei Schur (vezi sectiunea 4.6), vom introduce un algoritm
distinct de calcul al vectorului de deplasare implicita asociat unui pas simplu QR.
Algoritmul 4.4 (VD1 Calculul vectorului de deplasare implicit
a
pentru un pas simplu QR) (Data o matrice superior Hessenberg ireductibila H C
I nn , algoritmul calculeaza vectorul w C
I 2 de deplasare
implicita pentru un pas simplu QR.)
1. = hnn


h11
2. w =
h21
Comentarii.

Sintaxa de apel a acestui algoritm va fi


w = VD1(H),

iar executia sa implica efectuarea unei singure operatii cu numere complexe.

Cu aceste precizari putem prezenta algoritmul de implementare a unui pas simplu QR cu deplasare implicita. Sunt utilizate proceduri prezentate n tabelul 4.3.
Algoritmul 4.5 (IT QR1 Un pas simplu QR cu deplasare implicit
a) (Date o matrice superior Hessenberg ireductibila H C
I nn si
2
vectorul de deplasare implicita w C
I , algoritmul suprascrie matricea
H cu matricea succesor H H = Qk HQH
sirul QR. De asemenea,
k din
algoritmul furnizeaza vectorii c IRn1 si s C
I n1 ale caror elemente
(ci , si ) definesc rotatiile Pi,i+1 utilizate.)
1. % Calculul si aplicarea rotatiei P12
1. [ w, c1 , s1 ] = Gc(w)
2. H(1 : 2, :) = Gcs(c1 , s1 , H(1 : 2, :))
3. H(1 : min(3, n), 1 : 2) = Gcd(H(1 : min(3, n), 1 : 2), c1 , s1 )
2. % Refacerea structurii Hessenberg
Pentru i = 2 : n 1

1. [ H(i : i+1, i 1), ci , si ] = Gc(H(i : i+1, i1))


2. H(i : i+1, i : n) = Gcs(ci , si , H(i : i+1, i : n))
3. H(1 : min(i+2, n), i : i+1) =
= Gcd(H(1 : min(i+2, n), i : i+1), ci , si ).

258
Comentarii.

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
Vom utiliza urmatoarea sintaxa de apel a algoritmului de mai sus
[ H, c, s ] = IT QR1(H, w).

Complexitatea unui pas simplu QR este O(n2 ) n ambele variante de utilizare a


deplasarii. Concret, pentru executia algoritmului 4.5 sunt necesari Nop 6n2 flopi
complecsi, carora le corespund Nop 26n2 flopi reali, la care se adauga cele n 1
extrageri de radical.
Preferinta pentru varianta cu deplasare implicita este justificata de o anume
omogenitate a demersului de calcul al valorilor proprii, tinand seama de faptul ca
n cazul matricelor reale aceasta varianta se impune cu necesitate.
3
E. Algoritmul QR pentru matrice complexe
Algoritmul QR pentru matrice complexe 22 se obtine prin iterarea algoritmului
4.5, anularea efectiva a elementelor subdiagonale devenite neglijabile si exploatarea
structurala a acestor anulari n vederea obtinerii unei eficiente maxime.
Pentru deciziile de anulare a elementelor subdiagonale criteriul uzual este de
forma (4.126), i.e.
|hi+1,i | < tol (|hii | + |hi+1,i+1 |),
(4.144)
unde scalarul tol defineste nivelul de toleranta si are, n mod obisnuit, un ordin
de marime comparabil cu eroarea de reprezentare din formatul virgula mobila al
masinii tinta. Acest criteriu si gaseste o fundamentare, n sensul asigurarii unei
erori de evaluare a valorilor proprii de ordinul de marime al tolerantei tol, mai
ales n situatiile n care are loc o scalare prealabila a matricei date (vezi 4.4 H).
De asemenea, avand n vedere faptul ca testul (4.144) are o pondere importanta n
economia algoritmului, efectuadu-se la fiecare iteratie pentru toate elementele subdiagonale ale submatricei superior Hessenberg ireductibile curente, n cazul matricelor
complexe se obtine un spor semnificativ de eficienta daca se utilizeaza criteriul
|Re hi+1,i | + |Im hi+1,i | < tol (|Re hii | + |Im hii | + |Re hi+1,i+1 | + |Im hi+1,i+1 |),
(4.145)
practic echivalent cu criteriul (4.144).
Pentru monitorizarea evolutiei structurale a matricelor din sirul QR, la fiecare
iteratie, dupa anularea elementelor subdiagonale hi+1,i , care satisfac conditia din
(4.145), se va determina cel mai mic ntreg p si cel mai mare ntreg q astfel ncat
matricea Hessenberg curenta sa aiba structura

H11 H12 H13


}p
H22 H23 } n p q ,
H = 0
(4.146)
0
0
H33
}q
22 Algoritmul ce urmeaz
a se poate aplica, evident, si matricelor reale, cu conditia accept
arii
efectu
arii operatiilor aritmetice cu numere complexe. Cum o operatie elementar
a cu numere complexe implic
a ntre dou
a si unsprezece operatii cu numere reale, utilizarea acestui algoritm pentru
matrice reale este ineficient
a. De aceea, n cazul real se utilizeaz
a algoritmul 4.10 care opereaz
a
numai cu date reale.

259

4.4. ALGORITMUL QR

cu H11 C
I pp , H22 C
I (npq)(npq) superior Hessenberg ireductibil
a si H33
qq
IR
superior triunghiular
a. Astfel, elementele diagonale ale blocului H33 reprezinta valori proprii deja evidentiate 23 , iar iteratia QR se va aplica, de fapt, numai
blocului H22

H22 H22
= QH
(4.147)
22 H22 Q22 ,
echivalenta cu aplicarea transformarii (4.110) cu
Q = diag(Ip , Q22 , Iq ).

(4.148)

Aceasta transformare afecteaza celelalte blocuri ale matricei H din (4.146) n felul
urmator:

H11
H12 Q22
H13
H
.
QH
H H = QH HQ = 0
(4.149)
22 H22 Q22 Q22 H23
0
0
H33

Algoritmul QR se termina n momentul n care se anuleaza toate elementele


subdiagonale, i.e. q devine n 1.
Asa cum s-a aratat n exemplul 4.4, exista situatii n care algoritmul QR, cu
deplasarile utilizate n pasul QR cu deplasare implicita din algoritmul 4.4, nu este
convergent. Conform recomand
arilor din observatia 4.5, n marea majoritate a
acestor situatii convergenta poate fi restabilita modificand, pentru o singura iteratie,
modul de calcul al vectorului de deplasare implicita. Pentru constatarea lipsei de
convergenta sau a unei rate de convergenta prea reduse vom contoriza iteratiile
efectuate pentru evidentierea valorii proprii din pozitia curenta (n q, n q) (vezi
(4.146)). Daca dupa 10 sau 20 iteratii elementul subdiagonal (n q, n q 1) nu
satisface conditia (4.145), vectorul w de deplasare implicita (4.140) va fi calculat
folosind deplasarea empirica, recomandata e.g. n [ X ],

= |Re hnq,nq1 | + |Re hnq1,nq2 | + i (|Im hnq,nq1 | + |Im hnq1,nq2 |),


(4.150)
unde i este unitatea imaginara. Daca nici aceasta dubla masura nu asigura o
viteza de convergenta satisfacatoare, fapt apreciat prin efectuarea a nca 10 iteratii
fara satisfacerea conditiei (4.145) de catre elementul (n q, n q 1), atunci se
declara esecul rezolvarii problemei de calcul al valorilor proprii ale matricei date.
Mentionam ca desi, teoretic, o astfel de posibilitate nu este exclusa, practic ea nu
apare decat pentru date special create n acest scop.
Utilizand sintaxele de apel mentionate ale algoritmilor 4.4 si 4.5 precum si ale
procedurilor din tabelul 4.3, algoritmul QR cu pasi
simpli, cu deplasari implicite,
se scrie astfel.
Algoritmul 4.6 (QR1 Algoritmul QR cu pasi simpli, cu deplas
ari
implicite) (Date o matrice A C
I nn , o matrice unitara Q C
I nn
si un nivel de toleranta tol pentru anularea elementelor subdiagonale,
H AQ
a matricei A (si,
algoritmul calculeaza forma Schur A S = Q
deci, valorile proprii ale matricei A care sunt elementele diagonale ale
23

Alte valori proprii evidentiate se pot g


asi printre elementele diagonale ale blocului H11 .

260

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
lui S). Toate calculele se efectueaza pe loc, n locatiile de memorie ale
tabloului A. Optional, se acumuleaza transformarile n matricea unitara
Optiunea se exprima cu ajutorul variabilei logice opt de tipul
Q QQ.
sir de caractere care poate lua valorile da sau nu . Daca nu se doreste
acumularea transformarilor, matricea Q ramane nemodificata.)
1. Dac
a n = 1 atunci return
2. % Reducerea la forma Hessenberg
1. [ A, Q ] =HQc(A, Q, opt)
3. % Faza iterativa
1. p = 0, q = 0, cont it = 0
2. C^
at timp q < n
1. % Anularea elementelor subdiagonale neglijabile
1. Pentru i = p + 1 : n q 1
1. Dac
a |Re ai+1,i | + |Im ai+1,i | <
< tol (|Re aii |+|Im aii |+|Re ai+1,i+1 |+|Im ai+1,i+1 |)
atunci ai+1,i = 0
2. % Determinarea lui q
1. C^
at timp anq,nq1 = 0
1. q q + 1
2. % Terminarea normala a algoritmului
Dac
a q = n 1 atunci return.
3. cont it = 0
3. % Terminarea prin esec a algoritmului
1. Dac
a cont it > 30 atunci
1. Tip
are
ste S-au consumat 30 iteratii QR pentru
evidentierea unei valori proprii fara a se atinge
acest obiectiv. Este posibil ca, pentru aceste date
de intrare, algoritmul QR sa nu fie convergent.
2. Return.
4. % Determinarea lui p
1. p = n q 1
2. C^
at timp ap+1,p 6= 0
1. p p 1
2. Dac
a p = 0 atunci break
5. % Iteratia curenta
1. k = p+1, l = nq
2. w = VD1(A(k : l, k : l))
3. % Calculul deplasarii implicite modificate
1. Dac
a cont it = 10 sau cont it = 20 atunci
1. = |Re hl,l1 | + i |Im hl,l1 |
2. Dac
a l > k + 1 atunci
= + |Re hl1,l2 | + i |Im hl1,l2 |
3. w = [ hkk hk+1,k ]T

261

4.4. ALGORITMUL QR
4. [ A(k : l, k : l), c, s ] = IT QR1(A(k : l, k : l), w)
5. Dac
a k > 1 atunci
1. Pentru i = 1 : lk
1. A(1 : p, p+i : p+i+1) =
= Gcd(A(1 : p, p+i : p+i+1), ci, si ).
6. Dac
a l < n atunci
1. Pentru i = 1 : lk
1. A(p+i : p+i+1, l+1 : n) =
= Gcs(ci , si , A(p+i : p+i+1, l+1 : n))
7. cont it cont it + 1
6. Dac
a opt = da atunci
1. Pentru i = 1 : lk
1. Q(:, p+i : p+i+1) = Gcd(Q(:, p+i : p+i+1), ci, si )

Comentarii. Algoritmul implementeaza ideile expuse n prezentarea teoretica premergatoare, iar comentariile incluse asigura, speram, transparenta necesara pentru
identificarea lor. Mentionam suplimentar ca, pentru contorizarea iteratiilor, a fost
utilizata variabila ntreaga cont it care se reinitializeza la zero ori de cate ori se anuleaza un nou element subdiagonal. De asemenea, s-a utilizat instructiunea break
(de iesire fortata din cicluri de tip pentru sau c^
at timp) pentru ncadrarea index
arilor n limitele permise de dimensiunile matricelor. Vom apela n continuare
acest algoritm utilizand sintaxa
[S, Q] = QR1(A, Q, tol, opt).
In aspectele sale esentiale, algoritmul de mai sus sta la baza tuturor programelor
profesionale de calcul al valorilor proprii ale unei matrice complexe. Utilizarea lui
pentru calculul formei Schur a unei matrice reale este posibila 24 , dar este mai putin
eficienta n raport cu varianta special elaborata pentru aceasta situatie si prezentata
n continuarea acestui capitol.
Datorita procesului iterativ complexitatea algoritmului depinde de datele de intrare precum si de toleranta practicata. Pentru un nivel de toleranta de ordinul
de marime al erorilor de reprezentare 25 , evaluarile experimentale converg catre
aprecierea ca, n medie, doua iteratii sunt suficiente pentru a pune n evidenta o
valoare proprie. In aceasta situatie, pentru matrice de ordin superior (de exemplu
n > 100), se poate aprecia ca algoritmul QR1 are o complexitate O(n3 ). Evaluarea
de mai sus este corecta pentru matrice de dimensiuni medii si mari. In exemplele academice sau aplicatiile studentesti apar, de regula, matrice de ordin redus
24 Pentru probleme de mic
a dimensiune diferenta de eficienta
nu este decisiv
a astfel c
a acest
algoritm poate fi folosit cu succes. Atragem ns
a atentia c
a procedura Gc de calcul a unei rotatii
complexe (vezi capitolul 3) aplicat
a unui vector real calculeaz
a de fapt o rotatie real
a astfel nc
at
pentru date reale acest algoritm va lucra exclusiv cu numere reale privite ca numere complexe si
nu va fi capabil s
a reduc
a blocurile diagonale 2 2 cu valori proprii complexe. Pentru a dep
asi
acest impas se poate proceda, de exemplu, ca n algoritmul special destinat cazului real (vezi mai
departe) prin identificarea unor astfel de situatii si monitorizarea blocurilor diagonale sau prin
introducerea unor deplas
ari implicite modificate cu parte imaginar
a nenul
a.
25
In pachetele comerciale de programe acest nivel de toleranta este practicat uzual si nu poate
fi modificat de utilizator.

262

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

(e.g. n jurul lui n = 10), pentru care numarul mediu de iteratii necesar pentru
evidentierea unei valori prorii este ceva mai mare (din experienta noastra didactica apreciem acest numar la 3-4). Aceasta se explica prin faptul ca, simultan cu
elementele subdiagonale din ultima linie si prima coloana, toate elementele subdiagonale ale blocului iterat au tendinta de anulare asimptotica astfel ncat, la matrice
de dimensiuni mai mari, ultima faza a procesului iterativ este extrem de rapida.
Evaluari mai fine sunt date la varianta reala.
Utilizarea exclusiva a transformarilor unitare confera algoritmului QR1 o foarte
buna stabilitate numerica. Aspectele cantitative ale acestei aprecieri calitative a algoritmului QR1, precum si specte suplimentare referitoare la conditionarea valorilor
proprii sunt prezentate n sectiunile 4.10 si 4.11.
3
F. Un pas dublu QR cu deplasare implicit
a
pentru matrice reale
In cazul matricelor reale un spor important de eficienta se obtine utilizand o aritmetica reala si strategia pasilor dubli QR. La fel ca n cazul pasului simplu, un
pas dublu QR cu deplasare implicita are ca baza teoretica aceeasi teorema 4.15. Si
aici, ideea centrala consta n asigurarea coincidentei primei coloane a matricei de
transformare cumulate aferente unui pas dublu QR cu prima coloana a matricei de
transformare cumulate de la doi pasi simpli consecutivi din varianta cu deplasare
explicita. Reducerea efortului de calcul la nivelul a doi pasi cu deplasare explicita se
bazeaza esential pe minimizarea numarului de operatii aritmetice, prin exploatarea
eficienta a structurilor de zerouri ale matricelor implicate.
Concret, un pas dublu QR cu deplasare implicita consta din urmatoarele transformari.
(k)
= Qk Qk+1 ce de1. Se calculeaza prima coloana q1 a matricei Q
fineste transformarea ortogonala aferenta unui pas dublu QR cu
deplasare explicita.

2. Se determina o matrice ortogonala U1 astfel ncat prima sa coloana


(k)
(k)
sa fie q1 , i.e. U1 e1 = q1 .
3. Se calculeaza matricea B = U1T Hk U1 (a carei structura nu mai este
superior Hessenberg).
4. Se reface structura superior Hessenberg aplicand algoritmul HQ
] = HQ(B). Transformarile implicate de aceamatricei B: [Hk+2 , U
sta reducere nu afecteaza prima coloana a matricei de transformare
cumulate.
Daca matricea Hk este ireductibila atunci rezultatul Hk+2 al aplicarii schemei de
calcul de mai sus va fi esential acelasi, n sensul observatiei 4.5, cu cel dat de un pas
dublu QR cu deplasare explicita. Mai mult, schema de mai sus este determinant
mai eficienta decat varianta cu deplasare explicita. Intr-adevar, exploatand corespunzator avantajele structurale date de forma Hessenberg a matricelor initiala si
finala se poate reduce complexitatea pasului dublu de la O(n3 ) la O(n2 ), ceea ce n
economia ntregului algoritm este esential. Detaliile sunt prezentate n continuare.

263

4.4. ALGORITMUL QR
not

Consideram si aici, pentru simplificarea notatiilor, Hk = H matricea curenta a


not
sirului QR, presupusa ireductibil
a, iar Hk+2 = H matricea succesor n varianta
cu utilizarea pasilor dubli. Urmand etapele din schema de calcul de mai sus avem
urmatoarele particularitati.
1. Fara a reduce generalitatea, presupunem ca matricea superior triunghiulara
not
Rk Rk+1 = R
este nesingulara. Atunci prima coloana a matricei de transformare
not
Qk Qk+1 = Q
este
2

h11 + h12 h21 sh11 + p

h21 (h11 + h22 s)

h
h
21 32
1

1=
q1 = Qe
(4.151)

,
0

r11

..

.
0
not

not

unde sk = s si pk = p sunt scalari reali definiti n (4.133). Similar cu cazul pasului


simplu, numim
2

h11 + h12 h21 sh11 + p


IR3
h21 (h11 + h22 s)
w=
(4.152)
h21 h32

vector de deplasare implicit


a aferent pasului dublu QR.
2. Matricea ortogonala U1 de la instructiunea 2 a schemei de calcul de mai sus
poate fi un reflector (real) astfel calculat ncat
U1T q1 = U1 q1 = k
q1 ke1 .
Datorita structurii vectorului q1 din (4.151), structura matricei U1 este


1
U
0
U1 =
0 In3

(4.153)

(4.154)

1 IR33 reflector elementar (real) de ordinul 3.


cu U
3. Datorita structurii (4.154) a matricei U1 , alterarea formei Hessenberg prin
calculul matricei B de la instructiunea 3 are loc numai n pozitiile (3, 1), (4, 1) si
(4, 2).
4. Matricea B avand numai trei elemente nenule ce altereaza forma superior
Hessenberg, sporul de eficienta se obtine prin adaptarea algoritmului HQr la aceasta
situatie structurala. Concret, se evita operatiile de adunare si nmultire cu zerouri,
tinandu-se seama de urmatoarea structura



Ii1 0
0
In2
0
i
, i = 2 : n 2,
Ui = 0
Un1 =
(4.155)
U
0
n1
0
U
0
0 Ini2

i IR33
a reflectorilor Ui , i = 2 : n1, utilizati n cadrul algoritmului HQr, unde U
22

si Un1 IR
sunt reflectori elementari de indice 1.
Schema de calcul este urmatoarea:

264

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

1. Pentru i = 2 : n2
1. Se calculeaza reflectorul elementar Ui cu structura (4.155)
astfel ncat (UiT B)(i+1 : i+2, i1) = 0.
2. B UiT B. % Se anuleaza elementele (i+1 : i+2, i1).
3. B BUi . % Pentru i < n2 sunt alterate zerourile
din pozitiile (i+3, i : i+1).
2. % Ultima transformare
1. Se calculeaza reflectorul elementar Un1 astfel ncat
T
(Un1
B)(n, n2) = 0.
T
2. B Un1
B. % Se anuleaza elementul (n, n2).
3. B BUn1 .
In acest fel, eliminarea elementelor nenule care altereaza structura Hessenberg se
realizeaza prin deplasarea lor de-a lungul unor trasee paralele cu diagonala principala.
Pentru exemplificare prezentam evolutia structurala a matricei B n cazul n = 5.
Si aici zerourile nou create au fost marcate cu , alterarile de zerouri au fost
evidentiate cu +, iar ncadrarile indica liniile si/sau coloanele afectate de transformarea curenta.

H B = U1 HU1 =
+ ,
+ +
0 0 0

U2T H

H HU2 =

U3T H



+
0

0
0
0

+
+



0
0
0

265

4.4. ALGORITMUL QR

H HU3 =

U4T H

H HU4 =

0
0
0

0
0

0 0
0 0



0
0 0
0 0

S
i n aceasta varianta adaptata a algoritmului HQr, atat matricea succesor
H cat si matricea intermediara B pot suprascrie matricea H, i.e. toate calculele
aferente unui pas dublu QR cu deplasare implicita se pot desfasura pe loc, n tabloul
matricei H.
Din aceleasi ratiuni de organizare corespunzatoare a algoritmului QR pentru
matrice reale si, mai ales, a algoritmului de ordonare a formei Schur reale (vezi
sectiunea 4.6), vom introduce si aici un algoritm distinct de calcul al vectorului de
deplasare implicita asociat unui pas dublu QR.
Algoritmul 4.7 (VD2 Calculul vectorului de deplasare implicit
a
pentru un pas dublu QR) (Data o matrice superior Hessenberg H
IRnn , algoritmul calculeaza vectorul w IR3 , de deplasare implicita
pentru un pas dublu QR.)
1. s = hn1,n1 + hnn
2. p = hn1,n1 hnn hn1,n hn,n1
2

h11 + h12 h21 sh11 + p

h21 (h11 + h22 s)


3. w =
h21 h32
Comentarii.

Sintaxa de apel a acestui algoritm va fi


w = VD2(H),

iar complexitatea sa este, evident, O(1).

Cu aceste precizari putem prezenta algoritmul de implementare a unui pas dublu


QR cu deplasare implicita.

266

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
Algoritmul 4.8 (IT QR2 Pas dublu QR cu deplasare implicit
a)
(Date o matrice superior Hessenberg ireductibila H IRnn si vectorul
de deplasare implicita w IR3 , algoritmul suprascrie matricea H cu maT HQ
din sirul QR. Algoritmul furnizeaza,
tricea succesor H H = Q
de asemenea, elementele definitorii semnificative ale reflectorilor utilizati, i.e. elementele definitorii ale blocurilor reflector 3 3 n matricele
V IR3(n1) si b IRn1 .)
1. % Calculul si aplicarea reflectorului U1

1. [ w, V ( : , 1), b1 ] = Hr(w)
2. H(1 : 3, :) = Hrs(V (:, 1), b1 , H(1 : 3, :))
3. H(1 : min(4, n), 1 : 3) = Hrd(H(1 : min(4, n), 1 : 3), V (:, 1), b1 )
2. % Refacerea formei superior Hessenberg
1. Pentru i = 2 : n 2
1. [ H(i : i+2, i1), V (:, i), bi ] = Hr(H(i : i+2, i1))
2. H(i : i+2, i : n) = Hrs(V ( : , i), bi , H(i : i+2, i : n))
3. H(1 : min(i+3, n), i : i+2) =
= Hrd(H(1 : min(i+3, n), i : i+2), V (:, i), bi )
3. % Ultimul pas
1. [ H(n1 : n, n2), V (1 : 2, n1), bn1 ] =
= Hr(H(n1 : n, n2))
2. H(n1 : n, n1 : n) =
= Hrs(V (1 : 2, n1), bn1, H(n1 : n, n1 : n))
3. H(:, n1 : n) = Hrd(H(:, n1 : n), V (1 : 2, n1), bn1).
Comentarii.

Vom utiliza urmatoarea sintaxa de apel a algoritmului de mai sus


[ H, V, b ] = IT QR2(H, w).

Complexitatea unui pas dublu QR realizat de algoritmul 4.8 este O(n2 ). Concret, pentru executia algoritmului sunt necesari Nop 24n2 flopi (reali) la care se
adauga cele n 1 extrageri de radical. Subliniem faptul ca aceasta solutie este cea
mai eficienta implementare cunoscuta a iteratiilor QR pentru matricele reale, fiind
utilizata n toate programele profesionale de calcul al valorilor proprii.
Algoritmul 4.8 nu calculeaza actualizarea matricei de transformare curente Q
dar ofera, prin matricea V si vectorul b, informatia necesara pentru un eventual
calcul al acesteia.
3
G. Algoritmul QR pentru matrice reale
Algoritmul QR pentru matrice reale 26 se obtine prin iterarea algoritmului 4.8,
anularea efectiva a elementelor subdiagonale devenite neglijabile si exploatarea
26

Algoritmul ce urmeaz
a se poate aplica si pentru calculul valorilor proprii ale matricelor
complexe (mai mult, n unele pachete profesionale de calcul numeric asa se si procedeaz
a).
Intr-adev
ar, dac
a C C
I nn se scrie C = A + iB cu A, B IRnn , atunci este usor de ar
atat c
a

4.4. ALGORITMUL QR

267

structurala a acestor anulari n vederea obtinerii unei eficiente maxime. Dupa


epuizarea procedurii de iterare se obtine o matrice cvasisuperior triunghiulara, ortogonal asemenea cu matricea initiala, cu blocurile diagonale de dimensiune cel
mult 2 2. Pentru obtinerea unei forme Schur reale a matricei initiale, algoritmul
se completeaza cu reducerea la forma superior triunghiulara a blocurilor diagonale
2 2 care au valori proprii reale.
Aspectele tehnice, pe care le trecem succint n revista mai jos, sunt similare cu
cele din cazul complex.
Pentru deciziile de setare la zero a elementelor subdiagonale se utilizeaza criteriul
dat de relatia (4.144).
Similar cu algoritmul 4.6, pentru monitorizarea evolutiei structurale a matricelor
din sirul QR, la fiecare iteratie, dupa anularea elementelor subdiagonale care satisfac conditia (4.144), se va determina cel mai mic ntreg p si cel mai mare ntreg q
astfel ncat matricea Hessenberg curenta sa aiba structura (4.146) cu H11 C
I pp ,
(npq)(npq)
qq
H22 C
I
superior Hessenberg ireductibil
a si H33 IR
cvasisuperior triunghiular
a (i.e. cu blocurile diagonale de dimensiune cel mult 2 2).
Astfel, blocurile diagonale ale submatricei H33 au valori proprii pe care le consideram deja evidentiate (alte valori proprii evidentiate se pot gasi printre valorile
proprii ale blocurilor diagonale de dimensiune cel mult 2 2 ale submatricei H11 ),
iar iteratia QR se va aplica, de fapt, numai submatricei H22 (v. (4.146)-(4.148)).
Aceasta transformare afecteaza celelalte blocuri ale matricei H din (4.146) ca n
relatia (4.149).
Faza iterativa a algoritmului QR se termina n momentul n care ordinul submatricei H22 scade la cel mult 2, i.e. q devine mai mare sau egal cu n 2.
Supravegherea convergentei procesului iterativ se efectueaza similar cu cazul
complex, cu urmatoarele aspecte specifice:
aprecierea convergentei se face la nivelul evidentierii unui bloc diagonal n
coltul din dreapta jos al submatricei H22 (n 10 sau 20 de iteratii pentru modificarea
modului de calcul al vectorului de deplasare implicita, respectiv 30 de iteratii pentru
renuntarea la continuarea calculului);
pentru calculul vectorului de deplasare implicita w modificat n (4.152) se vor
utiliza urmatoarele relatii empirice pentru suma si produsul deplasarilor 1 si 2

s = 1.5 (|hnq,nq1 | + |hnq1,nq2 |)
(4.156)
p = (|hnq,nq1 | + |hnq1,nq2 |)2 ,
valorile si vectorii
h proprii ale
i matricei C se pot exprima n functie de valorile si vectorii proprii ale
A B
matricei F =
IR2n2n . Concret, fiec
arei valori proprii complexe k a matricei C,
B
A
n
cu xk = uk + ivk (uk , vk IR ) vector propriu asociat, i corespund
h valorile
i hproprii ik si conjugata
uk
vk
k , ale matricei reale F , cu vectorii proprii asociati de forma
ei
i
si, respectiv,
vk
uk
h
i h
i
uk
vk
+i
, iar fiec
arei valori proprii reale k , cu vectorul propriu asociat notat identic,
vk
uk
i.e. xk = uk + ivk cu uhk , vk i IRnh, a matricei
i C, i corespunde o valoare proprie dubla k si doi
uk
vk
vectori proprii asociati
si
ai matricei reale F . Dac
a se calculeaz
a numai valorile
vk
uk
proprii ale matricei F nu se poate deduce prin mijloace simple care din valorile proprii complex
conjugate ale matricei F apartin spectrului lui C.

268

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

recomandate n [ X ].
La terminarea cu succes a fazei iterative, triangularizarea blocurilor diagonale
2 2 cu valori proprii reale se poate face aplicand procedura standard de deflatie.
Dac
a G IR22 are valorile proprii reale, i.e.
= (g11 g22 )2 + 4g12 g21 0,
atunci
x1 =

1 g22
g21

este un vector propriu asociat valorii proprii 1 (G) data de

g11 + g22 + sgn(g11 + g22 )


1 =
.
2

(4.157)

(4.158)

(4.159)

Atunci rotatia P IR22 , care asigura satisfacerea conditiei (P T x1 )(2) = 0, are


prima coloana coliniara cu x1 si, conform lemei 4.3, realizeaza triangularizarea
urmarita


1 g12
T

G = P GP =
.
(4.160)
0 2
Dac
a blocul diagonal ce trebuie triangularizat, pe care l notam generic cu G, se
afla n pozitia definita de liniile si coloanele k si k + 1, atunci rezultatul dorit se
obtine aplicand matricei date o transformare ortogonala de asemanare definita de
matricea diag(Ik1 , P, Ink1 ).
In vederea unei scrieri mai concise a algoritmului QR cu deplasare implicita pentru matrice reale, prezentam aici un algoritm preliminar care proceseaza perechea
bloc-diagonala 2 2 aflata n pozitia (k, k + 1).
Algoritmul 4.9 (TRID2 Triangularizarea unui bloc diagonal
2 2) (Data o matrice S IRnn n forma cvasisuperior triunghiulara si ntregul k 1 : n 1 algoritmul testeaza daca submatricea
S(k : k + 1, k : k + 1) are valorile proprii reale si, n caz afirmativ, calculeaza triangularizarea ortogonala a blocului diagonal vizat, rezultatul
suprascriind matricea S. De asemenea, algoritmul returneaza elementele
definitorii c si s ale rotatiei reale calculate. In caz contrar matricea
S ramane nemodificata si, pentru identificarea acestei situatii, se returneaza c = 1, s = 0.)
1. c = 1, s = 0
2. = sk,k +sk+1,k+1 , = sk,k sk+1,k+1 sk,k+1 sk+1,k , = 2 4.

3. Dac
a 0 atunci

1. = ( + sgn() )/2
"
#
sk+1,k+1
2. x =
sk+1,k
3. [ x, c, s ] = Gr(x)
4. S(1 : k+1, k : k+1) = Grd(S(1 : k+1, k : k+1), c, s)

269

4.4. ALGORITMUL QR
5. S(k : k+1, k : n) = Grs(c, s, S(k : k+1, k : n))
6. S(k+1, k) = 0 % Zeroul calculat devine un zero efectiv.
Comentarii.

Sintaxa de apel a acestui algoritm va fi


[ S, c, s ] = TRID2(S, k),

iar complexitatea sa este O(n).

Cu precizarile de mai sus, algoritmul QR standard cu pasi dubli cu deplasari


implicite pentru calculul formei Schur reale se scrie astfel.
Algoritmul 4.10 (QR2 Algoritmul QR cu pasi dubli, cu deplas
ari
implicite) (Date o matrice A IRnn , o matrice ortogonala Q IRnn
si un nivel de toleranta tol pentru anularea elementelor subdiagonale,
T AQ.

algoritmul calculeaza forma Schur reala a matricei A S = Q


Toate calculele se efectueaz
a pe loc, n locatiile de memorie ale tabloului
A. Optional, se acumuleaz
a transformarile prin actualizarea matricei
Optiunea se exprima prin intermediul
ortogonale Q, i.e. Q QQ.
variabilei logice opt de tip sir de caractere care poate lua valorile da
sau nu. Daca opt = nu , matricea Q ramane nemodificata.)
1. Dac
a n = 1 atunci return
2. % Reducerea la forma Hessenberg
1. [ A, Q ] =HQr(A, Q, opt)
3. % Faza iterativa
1. p = 0, q = 0, cont it = 0
2. C^
at timp q < n
1. % Anularea elementelor subdiagonale neglijabile
1. Pentru i = p + 1 : n q 1
1. Dac
a |ai+1,i | tol(|aii | + |ai+1,i+1 |) atunci
1. ai+1,i = 0
2. % Determinarea lui q
1. continu
a = da
2. C^
at timp continu
a = da
1. Dac
a q n 2 atunci break
2. Dac
a anq,nq1 = 0
atunci
1. q q + 1
2. cont it = 0
altfel
1. Dac
a anq1,nq2 = 0
atunci
1. q q + 2
2. cont it = 0
altfel continu
a = nu .

270

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
3. %
1.
4. %
1.

Terminarea normala a fazei iterative


Dac
a q n 2 atunci break
Terminarea prin esec a algoritmului
Dac
a cont it > 30 atunci
1. Tip
are
ste S-au consumat 30 iteratii QR pentru
evidentierea unui bloc diagonal fara a se atinge
acest obiectiv. Este posibil ca, pentru aceste date
de intrare, algoritmul QR sa nu fie convergent.
2. Return
5. % Determinarea lui p
1. p = n q 1
2. C^
at timp ap+1,p 6= 0
1. p = p 1
2. Dac
a p = 0 atunci break
6. % Iteratia curenta
1. k = p+1, l = nq
2. w = VD2(A(k : l, k : l))
3. % Calculul deplasarii implicite modificate
1. Dac
a cont it = 10 sau cont it = 20 atunci
1. s = 1.5 (|al,l1 | + |al1,l2 |)
2. p = (|a
| + |al1,l2 |)2
l,l1

2
akk + ak,k+1 ak+1,k sakk + p
3. w = ak+1,k (akk + ak+1,k+1 s)
ak+1,k ak+2,k+1
4. [ A(k : l, k : l), V, b ] = IT QR2(A(k : l, k : l), w)
5. t = 3
6. Pentru i = 1 : lk
1. Dac
a i = l k atunci t = 2
2. r = min(p+i+2, l)
3. Dac
a k > 1 atunci
1. A(1 : p, p+i : r) =
= Hrd(A(1 : p, p+i : r), V (1 : t, i), bi )
4. Dac
a l < n atunci
1. A(p+i : r, l+1 : n) =
= Hrs(V (1 : t, i), bi , A(p+i : r, l+1 : n))
7. cont it = cont it + 1
7. Dac
a opt =da atunci
1. t = 3
2. Pentru i = 1 : lk
1. Dac
a i = l k atunci t = 2
2. r = min(p+i+2, l)
3. Q(:, p+i : r) = Hrd(Q(:, p+i : r), V (1 : t, i), bi ))

271

4.4. ALGORITMUL QR
4. % Triangularizarea blocurilor diagonale 2 2 cu valori proprii reale
1. k = 1
2. C^
at timp k < n
1. Dac
a ak+1,k = 0 atunci k = k + 1,
altfel
1. [ A, c, s ] =TRID2(A, k)
2. Dac
a opt =da si c 6= 1 atunci
1. Q( : , k : k+1) = Grd(Q( : , k : k+1), c, s)
3. k = k + 2

In aspectele sale esentiale, algoritmul de mai sus sta la baza tuComentarii.


turor programelor profesionale de calcul al valorilor proprii ale unei matrice reale.
Precizarile referitoare la aspectele de organizare a algoritmului facute la varianta
complexa raman valabile. Sintaxa de utilizare a algoritmului de mai sus va fi
[A, Q] = QR2(A, Q, tol, opt).
Acceptand evaluarea conform careia sunt suficiente, n medie, doua iteratii
pentru a pune n evidenta o valoare proprie, algoritmul necesita un numar de
A
Q
Nop
= 30n3 flopi fara acumularea transformarilor, Nop
= 16n3 flopi suplimentari pentru calculul vectorilor Schur, i.e. al matricei ortogonale Q. Putem, deci,
considera ca pentru matrice de ordin superior (e.g. n > 100) algoritmul QR2 are o
complexitate O(n3 ).
S
i aici, utilizarea exclusiva a transformarilor ortogonale confera algoritmului
QR2 o foarte buna stabilitate numerica. Pentru aspecte suplimentare, referitoare
la conditionarea valorilor proprii si stabilitatea numerica a algoritmului de mai sus,
vezi sectiunile 4.10 si 4.11.
3

H. Permutare si echilibrare
Implementarile profesionale ale algoritmului QR contin o faza de prelucrari preliminare efectuate asupra matricei A care urmaresc doua obiective:
a) cresterea eficientei prin evidentierea eventualelor valori proprii izolate
utilizand exclusiv transformari de asemanare definite de matrice de permutare (deci
fara efectuarea de operatii aritmetice);
b) mbunatatirea conditionarii spectrului de valori proprii prin transformari
de asemanare diagonale si, n acest mod, asigurarea unei acurateti superioare a
rezultatelor.
Permutare
Dac
a matricea A C
I nn are toate elementele extradiagonale ale liniei sau coloanei
i nule, atunci elementul diagonal (i, i) este o valoare proprie a matricelor AT si A
si, fapt esential, ei este un vector propriu al matricei AT , respectiv A, asociat ei.
De aceea, elementul diagonal (i, i) poate fi adus n pozitia (1,1) sau (n,n) printr-o

272

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

deflatie de permutare, i.e. printr-o transformare de asemanare definita de o matrice de permutare elementara P1i 27 , respectiv Pin . Evident, acest proces poate continua examinand matricea ramas
a A(2 : n, 2 : n) sau A(1 : n 1, 1 : n 1). Pentru
a sistematiza procesul de cautare si permutare vom deplasa mai ntai liniile cu
elementele extradiagonale nule n jos (i.e. pe ultima linie a matricei ramase curente)
conform schemei prezentate mai jos. Pentru claritate, utilizam instructiunea break
i pentru iesirea fortata din ciclul pentru i = ..., variabila de indexare i ramanand
cu valoarea avuta n momentul iesirii din ciclu.
1. Pentru l = n : 1 : 1
1. Pentru i = l : 1 : 1

1. Dac
a elementele extradiagonale ale liniei i ale matricei A(1 : l, 1 : l)
sunt nule atunci
1. Se permuta liniile i si l ale matricei A
2. Se permuta coloanele i si l ale matricei A
3. break i
altfel dac
a i = 1 (i.e. nu exista nici o linie a matricei A(1 : l, 1 : l)
cu toate elementele extradiagonale nule) atunci
1. break l

Se obtine o matrice avand structura


A = P1T AP1 =

A11
0

A12
A22

(4.161)

cu A11 C
I ll fara nici o linie cu toate elementele extradiagonale nule si A22 superior
triunghiulara. Matricea de permutare P1 cumuleaza toate permutarile efectuate.
Procedand similar cu matricea A11 prin deplasarea coloanelor cu toate elementele extradiagonale nule spre stanga (i.e., la fiecare pas, n prima coloana a
matricei ramase) se obtine n final o matrice cu structura

A11 A12 A13


(4.162)
A = P T AP = 0
A22 A23 ,
0
0
A33

cu A11 , A33 superior triunghiulare si A22 fara nici o linie si nici o coloana cu toate
elementele extradiagonale nule. Matricea de permutare P cumuleaza permutarile
efectuate.
Elementele diagonale ale matricelor A11 si A33 sunt valori proprii ale matricei A
care au fost puse n evidenta fara a efectua nici o operatie aritmetica. Pentru aflarea
celorlalte valori proprii algoritmul QR se aplica numai blocului A22 . Daca pe langa
calculul valorilor proprii se urmareste si calculul vectorilor proprii, atunci trebuie
retinuta matricea de permutare P (de obicei, n forma factorizata, prin retinerea
27 Amintim c
a matricea de permutare elementar
a Pij se obtine din matricea unitate prin permutarea liniilor (sau coloanelor) i si j. Premultiplicarea (postmultiplicarea) unei matrice cu Pij
are ca efect permutarea liniilor (coloanelor) i si j.

273

4.4. ALGORITMUL QR

elementelor definitorii ale permutarilor elementare). Transformarile efectuate de

algoritmul QR aplicat blocului A22 definite A22 S22 = QH


iona
22 A22 Q22 vor act

si asupra blocurilor A12 si A23 , i.e. vom efectua A12 A12 Q22 si, respectiv,

A23 QH
22 A23 .
Algoritmul de reducere la forma (4.162), n care este utilizata instructiunea
break avand semnificatia precizata mai sus, este urmatorul.
Algoritmul 4.11 ( Evidentierea, prin permut
ari, a valorilor
proprii izolate) (Data matricea A C
I nn , algoritmul calculeaza o matrice de permutare P astfel ncat matricea A = P T AP sa aiba struc : k 1, 1 : k 1) si A33 =
tura (4.162) avand blocurile A11 = A(1

: l, k : l)
= A(l+1 : n, l+1 : n) superior triunghiulare iar blocul A22 = A(k
nu are nici o linie si nici o coloana cu toate elementele extradiagonale
nule. Matricea A suprascrie matricea A, iar permutarile elementare
sunt memorate prin elementele vectorului p INn , p (i) 6= i avand
drept semnificatie faptul c
a linia (si coloana) i a fost permutata cu
linia (respectiv, coloana) p (i). Ordinea de aplicare a permutarilor este
p (n), p (n 1), . . . , p (l + 1), p (1), p (2), . . . , p (k 1).)
1. p = [ 0 0 . . . 0 ]

2. Pentru l = n : 1 : 1

1. Pentru i = l : 1 : 1
1. Dac
a A(i, j) = 0, j = 1 : l, j 6= i, atunci
1. A(i, :) A(l, :)
2. A(1 : l, i) A(1 : l, l)
3. p (l) = i
4. break i
altfel dac
a i = 1 atunci
1. break l

3. Pentru k = 1 : l
1. Pentru j = k : l
1. Dac
a A(i, j) = 0, i = k : l, i 6= j, atunci
1. A(j, k : n) A(k, k : n)
2. A(1 : l, j) A(1 : l, k)
3. p (k) = j
4. break j
altfel dac
a j = l atunci
1. break k
Comentarii. Vom utiliza n continuare urmatoarea sintaxa pentru apelarea algoritmului de permutare de mai sus:
[ A, p, k, l ] = (A),
unde semnificatia parametrilor este evidenta.

274

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Trebuie precizat ca algoritmul nu pune n evidenta, n cazul general, toate


valorile proprii izolate, i.e. care s-ar putea obtine fara a efectua calcule aritmetice.
Astfel, daca matricea initiala are, e.g. structura

0 0

,
A=

0 0 0
0 0 0 0
0 0 0 0

unde elementele marcate sunt nenule, aceasta nu va fi modificata de algoritmul


de mai sus (ntrucat nu are nici o linie si nici o coloana cu toate elementele extradiagonale nule) desi se vede clar ca elementele (3, 3) si (4, 4) sunt valori proprii.
Obtinerea prin transformari de asemanare cu permutari a structurii bloc (4.162)
nu mai este posibila n acest caz pentru ca vectorii proprii asociati valorilor proprii
remarcate au o structura mai complexa.
3
Echilibrare

Asa cum vom vedea n 4.10, conditionarea spectrului de valori proprii ale unei
matrice A este dependenta de kAkF si este de dorit ca aceasta norma sa fie cat
mai mica. Pe de alta parte, toate transformarile efectuate n diversele variante ale
algoritmului QR sunt unitare (ortogonale) deci, printre altele, asigura conservarea
conditionarii spectrului. Se ridic
a n mod natural problema daca, ntr-o faza preliminara, aceasta conditionare nu ar putea fi mbunatatita aplicand transformari de
asemanare neunitare (neortogonale).
Din motive de eficienta, n practica numerica s-a pus numai problema unei preprocesari a matricei A n sensul reducerii initiale a normei kAkF prin transformari
de asemanare definite de matrice diagonale, i.e. a determinarii matricei diagonale
D = diag(d1 , d2 , . . . , dn ), astfel ncat kD1 ADkF sa fie minima 28 .
Fie D IRnn multimea tuturor matricelor diagonale nesingulare de ordinul n.
Procesul de minimizare a normei kD1ADkF are la baza urmatoarele rezultate [ X ].
1 . Pentru orice matrice ireductibila 29 A IRnn 30 exista o matrice Ac
IRnn astfel ncat kAc kF = inf DD kD1 ADkF .
2 . Se poate construi recurent un sir de matrice (Ak ), diagonal asemenea cu A,
astfel ncat A = limk Ak = Ac .
3 . Matricea Ac este echilibrat
a n sensul ca normele euclidiene ale liniilor si
coloanelor cu acelasi indice sunt egale, i.e. kAc (k, :)k = kAc (:, k)k, k 1 : n.
4 . Oricare ar fi matricea diagonala nesingulara D0 sirurile (Ak ) si (Bk ) asociate
matricelor initiale A si, respectiv, B = D01 AD0 au aceeasi limita Ac .
Aceste rezultate teoretice nu pot fi utilizate ca atare ntr-o operatie de preconditionare a unei matrice ntrucat nsesi aceste calcule sunt afectate de erorile de
28

Evident, pot fi utilizate si alte norme matriceale consistente.


O matrice A IRnn (sau A C
I nn ), nh 2 se nume
i ste ireductibila daca nu exista nici o
B C
T
matrice de permutare P astfel nc
at P AP =
cu B IRrr , 1 r < n.
0 D
30 Cazul matricelor complexe se trateaz
a analog.
29

275

4.4. ALGORITMUL QR

rotunjire si, n consecinta, se obtine o matrice cu un spectru mai robust dar, posibil,
deja afectat de erori de nivel inadmisibil.
T
inand seama de aceste observatii, algoritmii de preconditionare utilizati n
practica au drept obiectiv concret o echilibrare cat mai buna a normelor euclidiene
ale liniilor si coloanelor cu acelasi indice prin utilizarea unor matrice de transformare diagonale care permit efectuarea unor calcule exacte n formatul virgula mobila
(FVM) al masinii tinta. Pentru aceasta fie baza de numeratie a FVM utilizat 31 si
D D multimea matricelor diagonale de forma D = diag( 1 , 2 , . . . , n ), i
Z
Z, i = 1 : n. Intrucat calculul matricei D1 AD implica numai operatii de
nmultire si mpartire, aceste calcule se efectueaza exact 32 si preconditionarea matricei este efectiv utila pentru mbunatatirea preciziei valorilor si vectorilor proprii
calculati.
Pentru prezentarea algoritmului de echilibrare consideram matricea A IRnn
si scriem
A = AD + A0 ,
unde AD = diag(A),
(4.163)
i.e. A0 este matricea elementelor extradiagonale ale lui A. Se constata imediat ca
pentru orice matrice D D avem
D1 AD = AD + D1 A0 D,

(4.164)

i.e. elementele diagonale nu sunt afectate de transformarile diagonale de asemanare.


Prin urmare, pentru reducerea normei lui D1 AD este suficient sa actionam numai
asupra matricei A0 . Vom presupune n continuare ca matricea A0 nu are nici o linie
si nici o coloana nule 33 .
Reducerea kD1 A0 DkF se face iterativ construind sirul Ak , k = 0, 1, 2, . . . ,
printr-o relatie recurenta de forma
Ak+1 = Dk1 Ak Dk ,

(4.165)

cu Dk D astfel calculat ncat kAk+1 kF sa fie cat mai mica. Vom efectua aceasta
minimizare descompunand matricea Dk ntr-un produs de matrice diagonale elementare
Dk = Dk1 Dk2 Dkn ,
(4.166)
cu Dki = diag(1, 1, . . . , dki , . . . , 1) cu dki = ki (pe pozitia diagonala (i, i)) si
maximizand scaderea de norma
def

ki = kAki kF 2 kAk,i+1 kF 2 ,

(4.167)

1
1 1
unde Aki = Dk,i1
Dk2
Dk1 Ak Dk1 Dk2 Dk,i1 , i = 0 : n 1, Ak0 = Ak ,
Akn = Ak+1 . Pentru aceasta fie, pentru nceput, dki = o variabila reala si
31

Uzual = 2, dar se nt
alnesc si situatii cu = 10 sau = 16.
Dac
a = (m, e) este reprezentarea n FVM a num
arului real , unde m este mantisa iar e
exponentul, atunci = (m, e + ) si / = (m, e ) deci este afectat numai exponentul
care, fiind ntreg, se calculeaz
a exact. Dac
a se utilizeaz
a un limbaj de programare de nivel nalt
este posibil s
a fie necesar ca portiunile de cod pentru efectuarea acestor operatii s
a fie scrise n
limbaj de asamblare.
33
In caz contrar se foloseste algoritmul de permutare si preconditionarea se aplic
a unei
matrice de ordin redus.
32

276

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

ki = kAki (i, :)k, ki = kAki (:, i)k normele liniei, respectiv a coloanei i a matricei
Aki , singurele afectate de transformarea definita de Dki . (Datorita ipotezei ca
matricea A0 nu are linii sau coloane nule avem ki ki 6= 0). Atunci diferenta din
(4.167), ca functie de , are expresia
2

ki () = kAki kF kAk,i+1 kF = 2ki + 2ki (


si este maxima pentru

2ki
+ 2ki 2 )
2

(4.168)

ki
.
(4.169)
ki
Acum, consideram dki = ki cel mai apropiat de valoarea de mai sus a lui , i.e.
acel ki ntreg (unic determinat) pentru care

ki 2 < ki + 2

(4.170)

sau, echivalent,

ki
2ki +1 .
(4.171)
ki
def
def ki
Calculul efectiv al lui = ki , pentru =
> 0 dat, se poate face eficient
ki
observand ca
21 < 2+1 2+1 < 2 ,
(4.172)
2ki 1 <

observatie care conduce la urmatoarea schema de calcul.

1.
2.
3.
4.

=0
=1
=
C^
at timp <
1. + 1
2. =
3. = 2
5. C^
at timp 2
1. 1

2. =

3. = 2

De retinut ca toate calculele din schema de mai sus se pot efectua exact (i.e.
instructiunile 4.2, 4.3, 5.2, 5.3 contin operatii aritmetice care se efectueaza, esential,
n numere ntregi), iar dupa executia lor avem = 2+1 si = , cea mai
apropiata valoare de acest tip de valoarea optima .
Pentru a se evita cicluri, posibile datorita formei speciale a elementelor matricelor diagonale de transformare, modificarea efectiva a unei perechi linie-coloana
i are loc numai atunci cand valoarea relativa a lui de la un pas elementar este
superioara unei tolerante tol impuse, i.e.
ki (dki ) = 2ki + 2ki (

2ki
+ 2ki d2ki ) > tol(2ki + 2ki )
d2ki

(4.173)

277

4.4. ALGORITMUL QR
sau

ki 2
) + (ki dki )2 < (2ki + 2ki ))
(4.174)
dki
unde = 1 tol. Valoarea recomandata n [ X ] pentru tol este 0.05, respectiv 0.95
pentru .
Procesul de iterare se opreste atunci cand la pasul curent k nu are loc modificarea
nici unei perechi linie-coloana.
Rezulta urmatorul algoritm.
(

Algoritmul 4.12 (ECH Echilibrare) (Date matricea A C


I nn
si baza a sistemului de numeratie, algoritmul calculeaza matricea diagonala D, avand ca elemente diagonale numai puteri ntregi ale bazei ,
astfel ncat matricea A = D1 AD sa aiba norma Frobenius minima n
raport cu toate transformarile de acest tip. Matricea A suprascrie A, iar
puterile i ale bazei , care definesc elementele diagonale D(i, i) = i ,
sunt memorate n vectorul s Z
Zn .)
1. Pentru i = 1 : n
1. si = 0
2. = 2
3. f inal = nu
4. C^
at timp f inal = nu
1. f inal = da
2. Pentru i = 1 : n
Pn
1. = j=1 |aij |2 ,
j6=i

7.

8.

Pn

j=1

j6=i

|aji |2

=1
=
= s(i)
C^
at timp <
1. + 1
2. =
3. =
C^
at timp
1. 1

2. =

3. =

Dac
a 2 + 2 < 0.95( + ) atunci

1. s(i) =
A(i, :)
2. A(i, :)
,
A(:, i) A(:, i)

3. f inal = nu .

2. =

3.
4.
5.
6.

278

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Comentarii.

Apelul algoritmului se poate face cu sintaxa


[ A, s ] = ECH(A, ).

Variabila logica f inal este utilizata pentru sesizarea aparitiei unui pas n care nu
are loc modificarea nici unei perechi linie-coloana si a stabili astfel terminarea algoritmului.
In unele implementari profesionale ale algoritmului, pentru reducerea efortului de calcul, n locul echilibrarii normelor euclidiene ale liniilor si coloanelor, se
efectueaza o echilibrare
a normelor k k1 ale acestora. T
inand seama de faptul

ca kzk kzk1 nkzk, o echilibrare a normelor k k1 are drept consecinta si o


echilibrare, considerata corespunzatoare n aplicatiile curente, a normelor euclidiene. Intr-un astfel de caz, instructiunea 4.2.1 se modifica adecvat.
Avandu-se n vedere caracterul iterativ, complexitatea algoritmului nu poate
fi evaluata exact. Totusi, ntrucat majoritatea calculelor se fac practic cu numere
ntregi, se poate aprecia ca ponderea eventualei utilizari a algoritmului de echilibrare
n calculul valorilor proprii este putin semnificativa.
3
Permutare si echilibrare
Algoritmii de permutare si echilibrare se utilizeaza de obicei n tandem, situatie
n care apar detalii tehnice interesante. Dintre acestea, semnalam posibilitatea
memorarii permutarilor elementare si a elementelor definitorii ale matricei diagonale
D de echilibrare n cadrul aceluiasi vector de ntregi. Intr-adevar, dupa evidentierea
valorilor proprii izolate, echilibrarea se efectueaza numai asupra blocului diagonal
median A22 = A(k : l, k : l), i.e.

A11
A12 D22
A13
1
1
A D1 P T AP D = 0
(4.175)
D22
A22 D22 D22
A23 .
0
0
A33
Prin urmare, pentru memorarea elementelor diagonale se poate utiliza portiunea
din vectorul destinat memorarii permutarilor neafectata de acestea. Tandemul permutare echilibrare poate fi descris n felul urmator:
Algoritmul 4.13 (ECH Permutare si echilibrare) (Date matricea A C
I nn si baza de numeratie , algoritmul calculeaza matricea de permutare P si matricea diagonala D22 (prin puterile bazei
care dau valorile elementelor diagonale ale lui D22 ) astfel ncat matricea
A obtinuta n (4.175) sa aibe submatricele A(1 : k 1, 1 : k 1) si
A(l + 1 : n, l + 1 : n) superior triunghiulare iar submatricea A(k : l, k : l)
echilibrata. Permutarile sunt memorate n subvectorii d(1 : k 1) si
d(l + 1 : n) iar puterile bazei care definesc elementele diagonale ale
matricei D22 n subvectorul d(k : l).)
1. [ A, d, k, l ] = (A)
2. Dac
al>k
1. [ A(k : l, k : l), d(k : l) ] = ECH(A(k : l, k : l), )

279

4.4. ALGORITMUL QR
2. Pentru i = k : l
1. ci = 1
2. Pentru j = 1 : |di |
1. Dac
a di > 0 atunci
1. ci = ci
altfel
ci
1. ci =

3. Dac
al<n
1. Pentru i = k : l
1. A(i, l + 1 : n) A(i, l + 1 : n)/ci
4. Dac
ak>1
1. Pentru j = k : l
1. A(1 : k 1, j) A(1 : k 1, j)cj
Comentarii.

Apelul algoritmului se va face cu sintaxa


[ A, d, k, l ] = ECH(A, ).

Evident, calculele de la instructiunile 4 si 5 se pot efectua exact. Daca portiunile


de interes se codifica n limbaj de asamblare, atunci calculul efectiv al numerelor ci
nu este necesar, operatiile de la instructiunile 4 si 5 realizandu-se prin modificarea
exponentilor.
Complexitatea algoritmului este dictata esential de valorile parametrilor k si
l, dar aprecierea ca ponderea sa n economia unui algoritm de calcul al valorilor
proprii este putin semnificativa r
amane valabila.
3

4.4.3

Programe principale (driver-e)

Utilizarea algoritmilor prezentati n aceasta sectiune n cadrul unor programe de calcul al valorilor si vectorilor proprii (vezi si sectiunea urmatoare) se poate face n diverse variante, n raport cu tipul datelor initiale si al obiectivelor concrete urmarite.
Desi o astfel de ntreprindere nu prezinta dificultati de principiu, prezentam, totusi,
o exemplificare pentru urmatoarea situatie concreta:
date initiale: o matrice real
a A IRnn , baza a sistemului de numeratie a
FVM utilizat si toleranta tol pentru aprecierea elementelor neglijabile;
obiective: calculul formei Schur reale, acumularea tuturor transformarilor si
calculul partilor reale si complexe ale tuturor valorilor proprii.
Admitem n continuare, pentru simplificare, ca o multime de tipul M = n1 : n2 , cu
n2 < n1 , este vida si ca orice operatie care implica (cel putin) o multime vida nu
se execut
a. O solutie posibila pentru problema formulata, incluzand permutarea si
echilibrarea, este urmatoarea.

280

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

1. [ A, d, l, k ] = ECH(A, )
2. T = In
3. % Acumularea transformarilor din faza de permutare
1. Pentru j = n : 1 : l + 1
1. T (: , j) T (: , dj )

2. Pentru j = 1 : k 1

1. T (: , j) T (: , dj )

4. % Acumularea transformarilor din faza de echilibrare


1. Pentru j = k : l
1. c = 1
2. Pentru i = 1 : |dj |
1. Dac
a dj > 0 atunci
1. c = c
altfel
c
1. c =

3. T (: , j) T (: , j)c
5. % Aplicarea algoritmului QR pentru matrice reale
1. [ A(k : l, k : l), Q ] = QR2(A(k : l, k : l), Ilk+1 , tol, da )
2. A(1 : k 1, k : l) = A(1 : k 1, l : k)Q

3. A(k : l, l + 1 : n) = QT A(k : l, l + 1 : n)
4. T ( : , k : l) = T ( : , k : l)Q
6. % Calculul vectorilor cu partile reale si imaginare ale valorilor proprii
1. Pentru i = 1 : k 1
1. re (i) = aii ,

im (i) = 0

2. i = k
3. C^
at timp i < l
1. Dac
a ai+1,i 6= 0 atunci
1. = (aii ai+1,i+1 )2 + 4ai,i+1 ai+1,i

2. re (i) = (aii + ai+1,i+1 )/2, im (i) = /2


3. re (i + 1) = re (i),
im (i + 1) = im (i)
4. i i + 2
altfel
1. re (i) = aii , im (i) = 0
2. i i + 1

4.5. CALCULUL VECTORILOR PROPRII

281

4. Pentru i = l + 1 : n
1. re (i) = aii ,

im (i) = 0

Acest program calculeaza matricea de transformare nesingulara (dar nu n mod


necesar ortogonala) T IRnn si matricea A S IRnn n forma Schur reala,
astfel ncat A S = T 1 AT , precum si toate valorile proprii. El poate fi completat
cu calculul vectorilor proprii, al unor baze pentru subspatii invariante etc., probleme
tratate n alte sectiuni ale capitolului.

4.5

Calculul vectorilor proprii

Este important de precizat ca n multe aplicatii (cum este, e.g. calculul subspatiilor
invariante) vectorii proprii pot fi nlocuiti cu succes de catre vectorii Schur.
Daca se doreste totusi determinarea explicita a vectorilor proprii xi , i I 1 : n,
ai unei matrice n n A date, acestia pot fi calculati n urmatoarele doua modalitati
folosite curent.
a) Daca numarul vectorilor proprii ce trebuie calculati depaseste 25 de procente
din numarul total, atunci se recomanda urmatoarea schema de calcul:
VP 1

1. Se calculeaza forma Schur (reala), utilizand algoritmul QR corespunzator, cu acumularea transform


arilor, i.e. se calculeaza matricea (cvasi-)
superior triunghiulara S si matricea unitara (ortogonala) Q astfel ncat
S = QH AQ.
2. Se calculeaza vectorii proprii vi ai matricei S, asociati valorilor proprii
de interes, prin rezolvarea sistemelor liniare omogene corespunzatoare.
3. Vectorii proprii xi ai matricei initiale A se calculeaza cu relatia
xi = Qvi .

In cadrul acestei scheme singura problema netratata exhaustiv pana acum este
calculul vectorilor proprii ai formelor Schur (reale).
b) Daca numarul vectorilor proprii ce trebuie calculati este relativ mic, atunci
se considera mai economica urmatoarea schema de calcul:
VP 2

1. Se determina, utilizand algoritmul HQ, forma superior Hessenberg


H = QH AQ, a matricei A, cu acumularea transform
arilor Q.
2. Se calculeaza valorile proprii de interes, cel mai adesea prin executia
fazei iterative a algoritmului QR corespunzator, f
ar
a acumularea
transform
arilor.
3. Se calculeaza vectorii proprii wi ai matricei H, asociati valorilor proprii
de interes, prin cateva iteratii (teoretic, datorita cunoasterii valorilor
proprii, ntr-o singura iteratie) ale metodei puterii inverse.
4. Vectorii proprii xi ai matricei initiale A se calculeaza cu relatia
xi = Qwi .

282

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

In cadrul acestei scheme singura problema care necesita o tratare suplimentara este
aplicarea metodei puterii inverse n contextul unei cunoasteri (aproape exacte) a
valorilor proprii asociate.
Prezentam succint unele aspecte importante referitoare la cele doua probleme
semnalate mai sus.

4.5.1

Calculul vectorilor proprii ai formelor Schur

Consideram matricea n n A complexa sau reala. Presupunem obtinute forma


Schur (reala) S si, implicit, valorile proprii ale matricei A, precum si vectorii Schur
definiti de coloanele matricei de transformare unitara (ortogonala) cumulate Q.
In cazul complex, matricea S C
I nn este superior triunghiulara, iar elementele
sale diagonale sunt valorile proprii ale matricei S. Calculul vectorilor proprii pentru
matricele triunghiulare a fost tratat n capitolul 1 (algoritmul 1.23 TRV).
In cazul real, forma Schur reala S este o matrice cvasi-superior triunghiulara.
Fie structura

S11 S12 S13


S = 0 S22 S23
(4.176)
0
0 S33
a matricei S, unde vom considera, pe rand, ca blocul S22 este un scalar, respectiv
o matrice 2 2 cu valori proprii complex conjugate, iar matricele S11 IRn1 n1 ,
S33 IRn3 n3 sunt cvasi-superior triunghiulare. In primul caz, daca = S22 este o
valoare proprie distinct
a a matricei S, atunci orice vector de forma

u1
u = 1 ,
(4.177)
0
unde u1 este solutia sistemului liniar cvasi-superior triunghiular
(S11 In1 )u1 = S12

(4.178)

si un scalar real nenul, este vector propriu asociat valorii proprii = S22 . In cel de
al doilea caz, vectorii proprii asociati perechii de valori proprii complex conjugate
i ale blocului S22 se pot considera, la randul lor, ca doi vectori complex
conjugati u iv, u, v IRn . Pentru a ramane n limitele utilizarii aritmeticii reale,
n practica numerica se obisnuieste calculul exclusiv al vectorilor reali u si v ca
solutie nenula a sistemului omogen, singular, 2n-dimensional


  
S In
In
u
0
=
.
(4.179)
In
S In
v
0
Presupunem ca perechea de valori proprii i este distinct
a si consideram o
partitie conforma

u1
v1
u = u2 ,
v = v2 ,
(4.180)
u3
v3

4.5. CALCULUL VECTORILOR PROPRII

283

a partilor reala u si imaginar


 a v ale vectorilor proprii asociati. Intrucat matricea
S33 In3
In3
este nesingulara rezulta u3 = 0, v3 = 0. Acum, daca
In3
S33 In3
vectorii bidimensionali u2 si v2 formeaza o solutie nenula a sistemului liniar omogen,
singular, real, de patru ecuatii cu patru necunoscute,


 

S22 I2
I2
u2
0
=
,
(4.181)
I2
S22 I2
v2
0
atunci u1 , v1 se calculeaza rezolvand, cu mijloacele clasice, sistemul liniar nesingular





S11 In1
In1
u1
S12 u2
=
.
(4.182)
In1
S11 In1
v1
S12 v2
Pentru calculul unei solutii nenule a sistemului liniar omogen (4.181) se constata
usor ca, de exemplu, vectorul nenul u2 IR2 poate fi ales arbitrar, e.g. u2 = [ 1 0 ]T ,
caz n care vectorul v2 IR2 se obtine rezolvand sistemul liniar, nesingular, de doua
ecuatii
(S22 I2 )v2 = u2 .
(4.183)
Cu aceste precizari putem prezenta urmatorul algoritm de calcul al vectorilor proprii
ale unei matrice n forma Schur reala.
Algoritmul 4.14 (VPS Calculul vectorilor proprii ai unei matrice n form
a Schur real
a) (Data matricea S IRnn , n forma Schur
reala, cu valori proprii distincte, algoritmul calculeaza un set de vectori
proprii ai matricei S. Vectorii proprii xj , asociati valorilor proprii reale
j = sjj sunt situati n coloanele j ale matricei X, i.e. xj = X( : , j).
Pentru valorile proprii complex conjugate corespunzatoare blocului diagonal S(j : j + 1, j : j + 1), vectorii proprii asociati xj,j+1 = uj ivj
sunt obtinuti prin calculul vectorilor reali uj si vj care se memoreaza n
coloanele j si j + 1 ale matricei X, i.e. uj = X( : , j) si vj = X( : , j + 1).)
1. Dac
a n = 1 atunci
1. X = 1
2. Return
2. j = 1
3. C^
at timp j < n
1. Dac
a sj+1,j = 0 atunci
1. X(j + 1 : n, j) = 0
2. xjj = 1
3. Dac
a j > 1 atunci
1. Se rezolva sistemul cvasisuperior triunghiular
(S(1 : j1, 1 : j1) sjj Ij1 )X(1 : j1, j) = S(1 : j1, j)
4. j j + 1
altfel

284

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1.
2.
3.
4.
5.

= (sjj + sj+1,j+1 )/2


p
= (sjj sj+1,j+1 )2 4sj+1,j sj,j+1 /2
X(j + 2 : n, j : j + 1) = 0
xj,j = 1, xj+1,j = 0
Fie S22 = S(j : j + 1, j : j + 1).
Se rezolva sistemul nesingular de doua ecuatii
(S22 I2 )X(j : j + 1, j + 1) = X(j : j + 1, j)
6. Dac
a j > 1 atunci
1. Fie S11 = S(1 : j 1, 1 : j 1), S12 = S(1
 : j 1, j : j +1)
S11 Ij1
Ij1
si F =
.
Ij1
S11 Ij1
Serezolva sistemul nesingular
 

X(1 : j 1, j)
S12 X(j : j +1, j)
F
=
X(1 : j 1, j + 1)
S12 X(j : j 1, j +1)
7. j j + 2

4. Dac
a j = n atunci

1. xjj = 1
2. Se rezolva sistemul cvasisuperior triunghiular
(S(1 : j 1, 1 : j 1) sjj Ij1 )X(1 : j 1, j) = S(1 : j 1, j)
Comentarii.

Sintaxa de apel a algoritmului este


X = VPS(S).

In cadrul algoritmului nu are loc o verificare a faptului ca matricea S este n forma


Schur reala. De asemenea, utilizarea matricei vectorilor proprii X se poate face
numai n conjunctie cu structura blocurilor diagonale ale matricei S, care trebuie
cunoscuta pentru a putea forma vectorii proprii asociati valorilor proprii complex
conjugate.
3
Calculul vectorilor proprii asociati valorilor proprii multiple ridica dificultati
similare celor evidentiate n cazul matricelor triunghiulare (v. cap. 1). Intr-o astfel
de situatie, n algoritmul VPS, sistemele liniare ce se rezolva devin singulare si
trebuie luate masuri speciale pentru a evita mpartirile cu 0 sau cu numere foarte
mici. O cale de urmat este utilizata n algoritmul de calcul al vectorilor proprii
pentru matrice triunghiulare prezentat n capitolul 1. O alta cale, utilizata, de
exemplu, n [ X ], nlocuieste diferentele i j , apreciate ca fiind nule, cu M kSk,
erorile introduse de o astfel de decizie fiind de nivelul erorilor de calcul. In orice
caz, calculul vectorilor proprii asociati valorilor proprii apropiate ridica probleme
datorita relei conditionari a sistemelor liniare mentionate.

4.5.2

Calculul vectorilor proprii ai matricelor


superior Hessenberg

In cazul n care numarul vectorilor proprii care se calculeaza este inferior procentului de 25%, n practica numeric
a s-a format convingerea ca este mai avantajoasa

285

4.5. CALCULUL VECTORILOR PROPRII

schema de calcul VP 2 , care presupune acumularea transformarilor numai n faza


directa (neiterativa) a algoritmului QR si aplicarea metodei puterii inverse matricei
superior Hessenberg rezultata n aceasta faza 34 . De aceea consideram util sa semnalam unele dificultati ce pot aparea la rezolvarea unor sisteme (de tip Hessenberg)
aproape singulare.
Fie A C
I nn si H = QH AQ matricea superior Hessenberg obtinuta, e.g. cu algoritmul HQ. Reamintim ca metoda puterii inverse (v. 4.3) de calcul al unui vector
propriu al matricei H consta ntr-un proces iterativ bazat pe relatia de recurenta
(H In )zk+1 = k zk ,

k = 0, 1, . . . ,

z0 arbitrar,

(4.184)

unde k este un factor scalar de normare. Spre deosebire de cazul curent, aici
vom presupune ca deplasarea este o valoare proprie calculat
a a matricei H (si,
n limitele preciziei de calcul, a matricei A). Notam cu 1 valoarea proprie exact
a
a matricei H a carei aproximatie este . Admitand ca a fost calculata cu un
algoritm numeric stabil (cum este, e.g. algoritmul QR) rezulta ca este o valoare proprie exacta a matricei G = H + E unde E este o matrice de perturbatie
de norma spectrala mica, i.e. satisfacand kEk kHk, unde are ordinul de
marime al erorilor de reprezentare (v. 4.11). Daca, n plus, 1 este o valoare bine
conditionata (v. 4.10) atunci
= 1
(4.185)
este si ea de ordinul de marime al lui kHk. Presupunand ca matricea H este simpla,
i.e. exista vectorii proprii wi , i = 1 : n, care formeaza o baza a lui C
I n , si scriind
z0 =

n
X

i wi ,

(4.186)

i=1

rezulta
zk = k (1 w1 +

n
X
i=2

i
wi ),
(i )k

(4.187)

unde k este un factor cumulat de normare. Daca 1 nu este neglijabila (ceea ce este
o ipoteza plauzibila) si 1 este o valoare proprie simpla si suficient de bine separata
de celelalte, i.e. |i | ||, i = 2 : n (ceea ce nu este ntotdeauna adevarat),
atunci zk devine coliniar cu w1 , cu precizia formatului virgula mobila, practic ntr-o
singura iteratie, cu toate ca sistemul (4.184) este aproape singular si, deci, posibil
rau conditionat. Daca nsa 1 nu este simpla, sau nu este suficient de departe
de celelalte sau este rau conditionata, atunci analiza de mai sus nu poate garanta
acuratetea rezultatului, chiar dac
a se executa mai multe iteratii. Pentru a depista
astfel de situatii si pentru a le depasi, n [ X ] se propune determinarea unui factor
de crestere definit dupa cum urmeaza. Fie z vectorul propriu de norma euclidiana
unitara (i.e. kzk2 = z H z = 1) calculat cu metoda puterii inverse. Consideram
reziduul
r = Hz z.
(4.188)
34 Renunt
area complet
a la acumularea transform
arilor si aplicarea, dup
a determinarea valorilor
proprii, a metodei puterii inverse matricei initiale se consider
a a fi o procedur
a mai putin avantajoas
a.

286

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Relatia anterioara poate fi scrisa si sub forma


(H rz H )z = z.

(4.189)

Avem krz H k = krk si, daca norma krk a reziduului este mica (e.g. de ordinul
de marime al lui M kHk), atunci z este un vector propriu al unei matrice foarte
usor perturbate fata de H, ceea ce este tot ce se poate spera ntr-o aritmetica
aproximativa. Pentru evaluarea normei reziduului r se procedeaza astfel. Fie z0
vectorul initial avand kz0 k = 1 si y solutia sistemului
(H In )y = z0 ,

(4.190)

i.e. rezultatul primei iteratii a metodei puterii inverse f


ar
a normarea acestuia.
Atunci definind vectorul succesor al lui z0 prin normarea lui y, i.e.
z1 =

y
,
kyk

obtinem
(H In )z1 =

1
z0 .
kyk

(4.191)

(4.192)

Prin urmare, cu cat kyk este mai mare cu atat norma reziduului definit n (4.188)
este mai mica. De aceea putem defini kyk drept factor de crestere si cere ca acesta
sa fie superior unei valori impuse. Mecanismul de realizare a acestui deziderat este
modificarea initializarii z0 si reluarea primei iteratii (n locul continuarii iteratiilor
care nu ofera sansa mbunatatirii rezultatului). In [ X ] este propusa o strategie de
modificare a initializarii. Pentru detalii recomandam consultarea referintei citate.
Incheiem acesta sectiune semnaland faptul ca, n majoritatea aplicatiilor, vectorii
proprii pot fi supliniti cu succes de catre vectorii Schur, al caror calcul, apeland n
exclusivitate la transformari unitare (ortogonale), este mult mai fiabil.

4.6

Forma Schur ordonat


a.
Calculul subspatiilor invariante

Asa cum s-a aratat n sectiunea 4.1, conceptul de subspatiu invariant al unei matrice,
introdus prin definitia 4.2, este intim legat de valorile si vectorii proprii ale matricei
respective si joaca un rol fundamental n tratarea operatoriala a spatiilor liniare C
In
n
sau IR . In sens larg, subspatiile invariante sunt subspatii generate de vectori proprii. In contextul problemelor de calcul numeric abordate n prezenta lucrare, acest
concept a fost folosit pentru a demonstra posibilitatea reducerii, prin transformari
unitare (ortogonale) de asemanare, a unei matrice la forma Schur (propozitia 4.2 si
lemele 4.2, 4.3).
Reciproc, cunoasterea formei Schur si a vectorilor Schur asociati permite calculul subspatiilor invariante asociate unor grupuri precizate de valori proprii ale
matricei initiale. Mai precis, prin calculul subspatiilor invariante vom ntelege aici
determinarea unor baze ortonormale pentru acestea.

287

4.6. CALCULUL SUBSPAT


IILOR INVARIANTE

Fie o matrice A C
I nn , S = QH AQ o forma Schur a acesteia si urmatoarele
partitii ale matricelor S si Q
k

nk

z}|{ z}|{


S11 S12 } k
S=
,
0 S22 } n k
Avem

nk

z}|{ z}|{


Q1 Q2
Q=

AQ1 = Q1 S11

(4.193)

(4.194)

i.e., conform propozitiei 4.1, V = Im Q1 este un subspatiu A-invariant, subspatiu


pe care l asociem, n mod natural, cu setul de valori proprii (S11 ) (A), unde
S11 = A|S este restrictia lui A la V. Altfel spus, coloanele matricei Q1 = Q( : , 1 : k)
formeaza o baza ortonormala a subspatiului A-invariant asociat valorilor proprii ale
matricei A date de primele k elemente diagonale ale matricei S.
In cazul real, consideratiile de mai sus raman valabile cu singurul amendament
ca subspatiile invariante reale ale unei matrice reale se asociaza ntotdeauna unor
seturi simetrice de valori proprii 35 , fapt indus de posibilitatea unor partitii de forma
(4.193) unde, de data aceasta, S este n forma Schur reala.
T
inand seama de cele de mai sus, un subspatiu A-invariant este complet definit
de un set de valori proprii, iar calculul sau se reduce, n definitiv, la obtinerea unei
forme Schur S = QH AQ n care setul de valori proprii precizat coincide cu spectrul de valori proprii al submatricei lider principale de dimensiune corespunzatoare.
O data obtinuta aceasta forma Schur, baza cautata este data de primele coloane
ale matricei de transformare Q. Prin urmare, dupa aplicarea algoritmului QR si
obtinerea unei prime forme Schur, n care elementele (blocurile, n cazul real) diagonale nu au o ordine predeterminata, calculul unui subspatiu invariant se reduce
la ordonarea elementelor diagonale (i.e. aducerea n primele pozitii diagonale a
valorilor proprii vizate), prin transformari unitare (ortogonale) de asemanare, si
actualizarea matricei de transformare Q.
Avandu-se n vedere faptul ca, datorita structurii (cvasi)superior triunghiulare
a matricei S, permutarea a doua elemente (blocuri) neadiacente nu este posibila
printr-o transformare elementara (rotatie sau reflector) fara alterarea structurii,
mecanismul de ordonare a formei Schur consta dintr-o secventa de permutari de
elemente (blocuri) diagonale adiacente.

4.6.1

Ordonarea formei Schur

In cazul complex forma Schur este triunghiulara astfel ca este suficient sa stabilim
o procedura de permutare a dou
a elemente diagonale adiacente (vecine). Pentru
aceasta, consideram mai ntai o matrice superior triunghiulara de ordinul doi S
C
I 22 cu valorile proprii distincte, i.e. s11 6= s22 . Fie x2 un vector propriu unitar
al matricei S asociat valorii proprii 2 = s22 , i.e. (exercitiu pentru cititor),


s12
i y
x2 = e
, unde y =
,
(4.195)
s22 s11
kyk
35 Reamintim c
a prin set simetric ntelegem o multime numeric
a n care elementele complexe
apar n perechi complex conjugate.

288

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

si unde, fara a reduce generalitatea, putem considera = 0, i.e. x2 = y/kyk.


Conform lemei de deflatie unitar
a 4.2, o transformare de asemanare S = P H SP ,
n care matricea unitara P are ca prima coloana vectorul propriu x2 , va evidentia,
n pozitia 11 a matricei S valoarea proprie asociata vectorului propriu x2 , i.e. s22 ,
conservand, n acelasi timp, zeroul din pozitia 21 . Concret, daca P C
I 22 este
rotatia (complexa) care asigura
(P H y)(2) = 0,

(4.196)

unde y este vectorul definit n (4.195), obtinem (nca un exercitiu pentru cititor)


s22 s12

H
S = P SP =
.
(4.197)
0 s11
S-a realizat astfel permutarea celor doua valori proprii.
Pentru o matrice superior triunghiulara S de ordinul n permutarea valorilor
proprii adiacente skk si sk+1,k+1 se realizeaza folosind transformarea unitara de
asemanare S = QH SQ cu
Q = diag(Ik1 , P, Ink1 ),

(4.198)

unde transformarea definita de matricea de ordinul doi P asigura permutarea valorilor proprii ale matricei S(k : k+1, k : k+1).
Rezumand cele prezentate mai sus, rezulta urmatoarea schema de calcul
P 11 c

1. Dac
a skk 6= sk+1,k+1 atunci
1. Se calculeaza vectorul y din (4.195).
2. Se calculeaza rotatia P astfel ncat (P H y)(2) = 0.
3. S diag(Ik1 , P H , Ink1 ) S
4. S S diag(Ik1 , P, Ink1 )

iar algoritmul corespunzator, bazat pe procedurile din tabelul 4.3, este prezentat n
continuare.
Algoritmul 4.15 (P 11c Permutarea a dou
a valori proprii adiacente) (Date o matrice S C
I nn n forma Schur, matricea de transformare initiala Q C
I nn si ntregul k 1 : n 1, algoritmul suprascrie
H SQ
care realizeaza permutarea valorilor
matricea S cu matricea S = Q
proprii skk , sk+1,k+1 si actualizeaza matricea de transformare Q.)
1. Dac
a skk 6= sk+1,k+1 atunci


sk,k+1
1. y =
sk+1,k+1 skk
2. [ y, c, s ] = Gc(y)
3. skk sk+1,k+1
4. Dac
a k > 1 atunci
1. S(1 : k1, k : k+1) = Gcd(S(1 : k1, k, k+1), c, s)
5. Dac
a k < n 1 atunci

4.6. CALCULUL SUBSPAT


IILOR INVARIANTE

289

1. S(k : k+1, k+2 : n) = Gcs(c, s, S(k : k+1, k+2 : n))


6. Q(:, k : k+1) = Gcd(Q(:, k : k+1), c, s)
Comentarii.

Sintaxa de apel a algoritmului de mai sus va fi


[ S, Q ] = P11c(S, Q, k).

Complexitatea unei permutari a doua valori proprii vecine distincte este O(n),
numarul asimptotic de flopi (reali) fiind Nop = 52n (independent de k).
3
Din momentul n care dispunem de procedura de permutare a doua valori proprii nvecinate, algoritmul de ordonare a formei Schur se reduce, n esenta, la
un algoritm de sortare a unei multimi bazat pe interschimbarea elementelor adiacente. Vom prezenta mai ntai cazul unei ordonari totale care dispune valorile
proprii ale unei forme Schur S a matricei A n ordinea impusa de o permutare data
= {i1 , i2 , . . . , in } a multimii 1 : n, n sensul ca elementul diagonal aflat initial
n pozitia (k, k) va fi plasat n final n pozitia (ik , ik ). Prin actualizarea matricei
unitare de transformare Q, se calculeaza bazele ortogonale pentru subspatiile Ainvariante asociate unor grupuri impuse de valori proprii. Concret, coloanele 1 : k
ale matricei actualizate, i.e. Q(: , 1 : k), formeaza o baza a subspatiului A-invariant
Vk asociat setului de valori proprii k = {i = sii | i = 1 : k} (n numerotarea
finala). Prezentam un algoritm de ordonare bazat pe o procedura de sortare prin
selectie. Invitam cititorul sa elaboreze alte variante care sa aibe la baza algoritmi
de sortare alternativi.
Algoritmul 4.16 (FSC ORD Ordonarea formei Schur) (Date
o matrice S C
I nn n form
a Schur, matricea unitara Q C
I nn si permutarea = {i1 , i2 , . . . , in }, algoritmul suprascrie matricea S cu maH SQ
care are s
tricea unitar asemenea S = Q
si actualizeaza
ik ,ik = skk
n mod corespunzator matricea de transformare Q.)
1. Pentru k = 1 : n1
1. mut
a =nu
2. l = k
3. Pentru j = k+1 : n
1. Dac
a ij < il atunci
1. l = j
2. mut
a =da
4. Dac
a mut
a =da atunci
1. Pentru j = (l 1) : 1 : k
1. [ S, Q ] = P11c(S, Q, j)
2. ij ij+1
Comentarii.

Sintaxa naturala de apel a algoritmului prezentat este


[ S, Q ] = FSC ORD(S, Q, ).

290

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Complexitatea unei ordonari este dictata esential de natura permutarii. Cazurile


limita sunt permutarea identica, pentru care nu se face nici o operatie aritmetica, si
inversiunea, pentru care se efectueaza Cn2 = n(n + 1)/2 apelari ale procedurii P11c
care conduc la o complexitate O(n3 ).
De multe ori este mai comod ca n locul permutarii sa utilizam permutarea
inversa = 1 = {j1 , j2 , . . . , jn }. In acest caz, algoritmul suprascrie matricea S
H SQ
care are s = sj ,j . O varianta a unui
cu matricea unitar asemenea S = Q
k k
kk
astfel de algoritm de ordonare arata astfel.
FSC ORD

1. Pentru k = 1 : n1
1. Dac
a k 6= jk atunci
1. Pentru i = (jk 1) : 1 : k
1. [ S, Q ] = P11c(S, Q, i)
2. Pentru i = k+1 : n
1. Dac
a ji < jk atunci ji = ji + 1.
Dupa executia acestui algoritm coloanele 1 : k ale matricei de transformare actualizate, i.e. Q(: , 1 : k), formeaza o baza ortonormala a subspatiului A-invariant Vk
asociat setului de valori proprii k = {i = sii | i {j1 , j2 , . . . , jk }} (n numerotarea
initiala). Observatiile de mai sus privitoare la complexitate raman valabile.
Algoritmul de mai sus realizeaza o ordonare totala a perechilor diagonale. Daca
se urmareste exclusiv constructia unei baze unitare pentru un subspatiu A-invariant
k-dimensional (k < n), este suficienta o ordonare partiala constand n aducerea, pe
caile cele mai scurte, a valorilor proprii vizate n primele k pozitii diagonale. O
varianta posibila pentru rezolvarea acestei probleme este urmatoarea. Presupunem
ca dorim constructia unei baze ortonormale a subspatiului A-invariant asociat valorilor proprii si1 i1 , si2 i2 , . . ., sik ik . Fara a reduce generalitatea, putem considera ca
i1 < i2 < . . . < ik . Aducerea celor k elemente diagonale ale matricei S n primele k
pozitii diagonale se face cu urmatorul algoritm simplu.
FSC ORD p

1. Pentru j = 1 : k1
1. Dac
a ij > j atunci
1. Pentru l = (ij 1) : 1 : j
1. [ S, Q ] = P11c(S, Q, l)

Incheiem aici comentariile la algoritmul 4.16 si consideratiile privitoare la ordonarea


formei Schur complexe cu mentiunea ca aceste aspecte vor fi ntalnite si la ordonarea
formei Schur reale.
3

4.6.2

Ordonarea formei Schur reale

In cazul real vom considera partitia bloc dictata de dimensiunile lk lk cu lk {1, 2},
k = 1 : p, ale blocurilor diagonale ale formei Schur reale S = QT AQ a matricei
A IRnn

S11 S12 S1p


0 S22 S1p

S= .
(4.199)
..
.. .
..
..
.
.
.
0

Spp

4.6. CALCULUL SUBSPAT


IILOR INVARIANTE

291

Problema calculului subspatiilor A-invariante reale asociate unor seturi simetrice


de valori proprii revine la ordonarea corespunzatoare a blocurilor diagonale ale
formei Schur reale. In acest scop este necesar sa stim sa permutam doua blocuri
diagonale adiacente. Permutarea a doua blocuri vecine 1 1 se face cu algoritmul
P11c, cu singura mentiune ca toate transformarile utilizate sunt reale. Intrucat
scrierea variantei reale a algoritmului se rezuma la nlocuirea siglei c cu sigla r n
identificatorii procedurilor, ne marginim sa introducem sintaxa de utilizare
[ S, Q ] = P11r(S, Q, k),
cu mentiunea ca aici k reprezinta linia (si coloana) pe care se afla primul dintre cele
doua blocuri 1 1 ce se permuta.
Ramane sa aratam cum se pot permuta, prin transformari ortogonale de asemanare, doua blocuri diagonale vecine din care cel putin unul are ordinul 2.
Consideram acum matricea de ordinul 3 sau 4


S11 S12
S=
,
(4.200)
0 S22
unde, prin urmare, cel putin unul din blocurile diagonale S11 , S22 este 2 2. In
principiu, putem aplica ideile utilizate la elaborarea algoritmului P 11, i.e. calculul
unei baze ortogonale a subspatiului invariant asociat valorilor proprii ale matricei
S22 si aplicarea lemei de deflatie ortogonala, solutie propusa cititorului. Aici vom
urma o cale echivalenta care utilizeaza algoritmul QR cu deplasare implicita. Avand
n vedere faptul ca matricea S din (4.200) este deja n forma Schur reala rezulta ca
putem determina deplasarea (n forma implicita) exact
a care, utilizata n algoritmul
QR2 pune n evidenta, n pozitia (2, 2), blocul cu valorile proprii dorite, n cazul
nostru, n vederea permutarii, cu valorile proprii ale matricei S11 . Cunoasterea
exact
a a deplasarii face ca, teoretic, sa fie suficienta o singur
a iteratie QR pentru
obtinerea rezultatului dorit. In practica, daca nivelul de toleranta practicat este de
ordinul de marime al erorilor de rotunjire, este posibil sa fie necesare cateva (douatrei) iteratii pentru a putea considera elementele blocului (2, 1) neglijabile. De
asemenea, ntrucat algoritmul QR cu deplasare implicita actioneaza corect numai
asupra matricelor n forma Hessenberg ireductibil
a este necesar mai ntai un pas QR
artificial, cu un vector de deplasare implicita aleator, care sa altereze structura Schur
reala a matricei S n sensul obtinerii formei Hessenberg ireductibile. In consecinta,
toate cele trei tipuri de permutare se vor supune urmatoarei scheme de calcul.
P ij
1. Se determina elementele definitorii exacte pentru vectorul de deplasare
implicita (i.e. valoarea proprie daca primul bloc este 1 1, respectiv suma
si produsul valorilor proprii n cazul cand primul bloc este 2 2).
2. Se executa un pas QR cu un vector de deplasare implicita fixat aleator
T
(e.g. alegerea w = [ 1 1 1 ] da bune rezultate).
3. Se aplica algoritmul QR cu deplasarea implicita exacta (i.e. calculata cu
elementele de la punctul 1).

292

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Pentru matricea nn din (4.199) permutarea blocurilor adiacente Srr si Sr+1,r+1


ale formei Schur reale S IRnn se obtine folosind transformarea ortogonala de
T SQ
definita de
asemanare S = Q
= diag(Ik1 , Q,
Is ),
Q

(4.201)

de ordinul 2, 3 sau 4, asigura permutarea


unde transformarea definita de matricea Q,
blocurilor diagonale ale matricei


Srr
Sr,r+1
S =
,
(4.202)
0 Sr+1,r+1
si unde k este pozitia diagonala a elementului 11 al blocului diagonal Srr , iar s este
ordinul cumulat al blocurilor diagonale r+2 : p.
Vom implementa schema de calcul de mai sus ntr-un algoritm care va trata toate
cazurile dimensionale. Pentru aceasta vom utiliza rezultatele stabilite si procedurile
elaborate n acest capitol.
Pentru o ntelegere mai lesnicioasa a algoritmului facem urmatoarele precizari:
localizarea blocurilor diagonale ale matricei S care vor fi permutate se face
prin pozitia diagonala k a elementului 11 al primului bloc diagonal si ordinele i si j
ale celor doua blocuri;
elementele definitorii ale vectorilor de deplasare implicita exact
a n vederea
permutarii blocurilor diagonale ale submatricei (4.202) sunt deplasarea = skk n
cazul n care i = 1 si, respectiv, suma si produsul deplasarilor exacte = 1 + 2 =
= skk + sk+1,k+1 si = 1 2 = skk sk+1,k+1 sk+1,k sk,k+1 n cazul n care i = 2;
dupa efectuarea unui pas dublu QR cu deplasare aleatoare, vectorii de deplasare
exacta, n cele doua cazuri, vor fi

skk
wexact = sk+1,k
0

si, respectiv,

wexact

s2kk + sk,k+1 sk+1,k skk +


= sk+1,k (skk + sk+1,k+1 ) ,
sk+1,k sk+2,k+1

vezi (4.140), (4.152);


vom renunta la apelarea algoritmului QR2 si vom adapta ideile acestuia la
situatia concreta existenta; pentru aprecierea ca neglijabile a elementelor subdiagonale vom utiliza toleranta tol, uzual de ordinul de marime al erorilor de reprezentare;
actualizarea blocurilor nediagonale de pe bloc-liniile si bloc-coloanele afectate,
conform relatiei (4.201), se va face utilizand elementele definitorii ale reflectorilor
implicati memorate n tablourile de lucru V si b.
Cu convingerea ca pentru cititorul interesat nu va fi greu sa identifice ideile
mentionate mai sus, prezentam acest algoritm.
Algoritmul 4.17 (Pr Permutarea a doua blocuri diagonale adiacente) (Date o matrice S IRnn n forma Schur reala, matricea de

4.6. CALCULUL SUBSPAT


IILOR INVARIANTE
transformare initiala Q IRnn , ntregul k care marcheaza pozitia elementului 11 al primului bloc diagonal, precum si ordinele i, j {1, 2}
ale celor doua blocuri diagonale, algoritmul suprascrie matricea S cu
T SQ
care realizeaza permutarea blocurilor diagonale
matricea S = Q
mentionate si actualizeaza matricea de transformare Q.)
1. Dac
a i = 1 si j = 1 atunci
1. [ S, Q ] = P11r(S, Q, k)
2. Return
2. Dac
a i = 1 si j = 2 atunci
1.
2.
3.
4.
5.

6.

7.
8.
9.

l =k+2
= skk
T
w = [1 1 1]
[ S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), w)
Dac
a k > 1 atunci
1. S(1 : k 1, k : l) = Hrd(S(1 : k 1, k : l), V (:, 1), b(1))
2. S(1 : k 1, k + 1 : l) =
= Hrd(S(1 : k 1, k + 1 : l), V (1 : 2, 2), b(2))
Dac
a l < n atunci
1. S(k : l, l + 1 : n) = Hrs(V (:, 1), b(1), S(k : l, l + 1 : n))
2. S(k + 1 : l, l + 1 : n) =
= Hrs(V (1 : 2, 2), b(2), S(k + 1 : l, l + 1 : n))
Q(:, k : l) = Hrd(Q(:, k : l), V (:, 1), b(1))
Q(:, k + 1 : l) = Hrd(Q(:, k + 1 : l), V (1 : 2, 2), b(2))
C^
at timp |sk+2,k+1 | tol(|sk+1,k+1 | + |sk+2,k+2 |)
T

1. wexact = [ skk sk+1,k 0 ]


2. [ S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), wexact )
3. Dac
a k > 1 atunci
1. S(1 : k 1, k : l) = Hrd(S(1 : k 1, k : l), V (:, 1), b(1))
2. S(1 : k 1, k + 1 : l) =
= Hrd(S(1 : k 1, k + 1 : l), V (1 : 2, 2), b(2))
4. Dac
a l < n atunci
1. S(k : l, l + 1 : n) = Hrs(V (:, 1), b(1), S(k : l, l + 1 : n))
2. S(k + 1 : l, l + 1 : n) =
= Hrs(V (1 : 2, 2), b(2), S(k + 1 : l, l + 1 : n))
5. Q(:, k : l) = Hrd(Q(:, k : l), V (:, 1), b(1))
6. Q(:, k + 1 : l) = Hrd(Q(:, k + 1 : l), V (1 : 2, 2), b(2))
10. sk+2,k+1 = 0 % anularea efectiva a elementului neglijabil
11. Return
3. Dac
a i = 2 atunci
1. l = k + 1 + j

293

294

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
2. = skk + sk+1,k+1
3. = skk sk+1,k+1 sk+1,k sk,k+1
T

4. w = [ 1 1 1 ]
5. [ S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), w)
6. Dac
a k > 1 atunci
1. Pentru q = 1 : i + j 2
1. S(1 : k 1, k + q 1 : k + q + 1) =
= Hrd(S(1 : k + q 1, k + q 1 : k + q + 1), V (:, q), b(q))
2. S(1 : k 1, l 1 : l) =
= Hrd(S(1 : k 1, l 1 : l), V (1 : 2, i + j 1), b(i + j 1))
7. Dac
a l < n atunci
1. Pentru q = 1 : i + j 2
1. S(k + q 1 : k + q + 1, l + 1 : n) =
= Hrs(V (:, q), b(q), S(k + q 1 : k + q + 1, l + 1 : n))
2. S(l 1 : l, l + 1 : n) =
= Hrs(V (1 : 2, i + j 1), b(i + j 1), S(l 1 : l, l + 1 : n))
8. Pentru q = 1 : i + j 2
1. Q(:, k + q 1 : k + q + 1) =
= Hrd(Q(:, k + q 1 : k + q + 1), V (:, q), b(q))
9. Q(:, l 1 : l) =
= Hrd(Q(:, l 1 : l), V (1 : 2, i + j 1), b(i + j 1))
10. r = k + j 1
11. C^
at timp |sr+1,r | tol(|sr,r | + |sr+1,r+1 |)
2

skk + sk,k+1 sk+1,k skk +


1. wexact = sk+1,k (skk + sk+1,k+1 )
sk+1,k sk+2,k+1
2. [ S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), wexact )
3. Dac
a k > 1 atunci
1. Pentru q = 1 : i + j 2
1. S(1 : k 1, k + q 1 : k + q + 1) =
= Hrd(S(1 : k 1, k + q 1 : k + q + 1), V (:, q), b(q))
2. S(1 : k 1, l 1 : l) =
= Hrd(S(1 : k 1, l 1 : l), V (1 : 2, i+j 1), b(i+j 1))
4. Dac
a l < n atunci
1. Pentru q = 1 : i + j 2
1. S(k + q 1 : k + q + 1, l + 1 : n) =
= Hrs(V (:, q), b(q), S(k + q 1 : k + q + 1, l + 1 : n))
2. S(l 1 : l, l + 1 : n) =
= Hrs(V (1 : 2, i + j 1), b(i + j 1), S(l 1 : l, l + 1 : n))
5. Pentru q = 1 : i + j 2
1. Q(:, k + q 1 : k + q + 1) =
= Hrd(Q(:, k + q 1 : k + q + 1), V (:, q), b(q))

4.6. CALCULUL SUBSPAT


IILOR INVARIANTE

295

6. Q(:, l1 : l) = Hrd(Q(:, l1 : l), V (1 : 2, i + j 1), b(i + j 1))


12. sr+1,r = 0 % anularea efectiva a elementului neglijabil
13. Return
Comentarii.

Sintaxa de apel naturala a algoritmului de mai sus este


[ S, Q ] = Pr(S, Q, k, i, j, tol).

Numarul de operatii necesar depinde, evident, de tipul blocurilor permutate dar nu


depinde de pozitia acestora. Asimptotic, n toate cazurile complexitatea algoritmului se ncadreaza totusi n categoria O(n).
3
Dispunand de procedura de mai sus, de permutare a doua blocuri diagonale
adiacente, algoritmul de ordonare a formei Schur reale este, n esenta, identic cu cel
de ordonare a formei Schur complexe. Pentru un plus de claritate, facem, si aici,
cateva precizari:
structura blocurilor diagonale ale matricei S n FSR va fi memorata n vectorul
strbl, i.e. strbl(k), k = 1 : p, este ordinul blocului diagonal k al matricei S la momentul curent al procesarii; structura initiala este unul din parametrii de intrare;
pentru localizarea blocurilor diagonale ale matricei S vom utiliza vectorul lcbl
care va contine pozitiile elementelor 11 ale acestora, i.e. lcbl(k), k = 1 : p, este
linia (si coloana) elementului 11 al blocului diagonal k al matricei S de la momentul
curent al procesarii.
Rezulta urmatorul algoritm.
Algoritmul 4.18 (FSR ORD Ordonarea formei Schur reale)
(Date o matrice S IRnn n forma Schur reala (4.199), matricea de
transformare initiala Q IRnn , numarul p al blocurilor diagonale,
vectorul strbl INp al ordinelor blocurilor diagonale si permutarea
= {i1 , i2 , . . . , ip }, algoritmul suprascrie matricea S cu matricea orT SQ
avand s
togonal asemenea S = Q
si actualizeaza, n mod
ik ik = skk
corespunzator, matricea de transformare Q.)
1. Pentru k = 1 : (p 1)

1. mut
a =nu
2. l = k
3. Pentru j = (k + 1) : n
1. Dac
a ij < il atunci
1. l = j
2. mut
a =da
4. Dac
a mut
a =da atunci
1. Pentru j = (l 1) : 1 : k
1. lcbl(1) = 1
2. Pentru i = 2 : j
1. lcbl(i) = lcbl(i 1) + strbl(i 1)

296

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
3. [ S, Q ] = Pr(S, Q, lcbl(j), strbl(j), strbl(j + 1), tol)
4. ij ij+1
5. strbl(j) strbl(j + 1)

Comentarii.

Sintaxa de apel a algoritmului de mai sus este


[ S, Q ] = FSR ORD(S, Q, p, strbl, , tol).

La fel ca n cazul complex, volumul de calcul necesar pentru ordonare este dictat
esential de natura permutarii. In cazul cel mai defavorabil, cand permutarea este o
inversiune si toate blocurile sunt 2 2, se efectueaza 12 p(p + 1) permutari de blocuri
2 2 adiacente care conduc la o complexitate de O(n3 ).
In cazul n care se prefera utilizarea permutarii inverse = 1 = {j1 , j2 , . . . , jp }

se poate utiliza o schema de calcul FSR ORD1 , similara cu FSC ORD1 ,


prezentata n comentariile la algoritmul 4.16.
S
i aici, daca se urmareste exclusiv constructia unei baze unitare pentru un
subspatiu A-invariant asociat unui set simetric de valori proprii definite de k blocuri
diagonale (k < p), este suficient
a o ordonare partiala. Adaptarea algoritmului la
aceasta situatie este similara cu cea din cazul complex (vezi schema FSC ORD p ),
si este propusa ca exercitiu cititorului.
3

4.7

Forma bloc-diagonal
a

Forma Schur S a unei matrice reale sau complexe A, mpreuna cu matricea ortogonala sau unitara Q utilizata pentru obtinerea acesteia, joaca un rol fundamental
n rezolvarea multor probleme concrete care au o legatura mai mult sau mai putin
directa cu conceptele de valori si vectori proprii. Exista nsa si probleme 36 n care
este necesara o descompunere suplimentara a formei Schur, descompunere care sa
ofere informatii structurale cu semnificatie mai profunda.
Precizam, de la nceput, ca transformarile de asemanare unitare (ortogonale, n
cazul real) si-au epuizat potentele n evidentierea formei Schur (ordonate) si orice
alte transformari structurale suplimentare, cu conservarea spectrului, fac apel, n
mod necesar, la transformari de asemanare neunitare (neortogonale).
Posibilitatile de constructie a asa numitei forme bloc-diagonale a unei matrice
patrate sunt intim conexate cu existenta si calculul solutiilor unor ecuatii matriceale
Sylvester asociate. De aceea, consacram paragraful urmator acestei probleme.

4.7.1

Ecuatia matriceal
a Sylvester

Consideram date matricele A C


I mm , B C
I nn si C C
I mn . Ecuatia matriceala
liniara
AX XB = C,
(4.203)
36 Amintim,
n acest sens, problemele de descompunere spectral
a a sistemelor dinamice liniare
n care se urm
areste obtinerea unor submatrice decuplate cu spectre av
and propriet
ati specifice.
De asemenea, forma bloc diagonal
a este util
a n calculul functiilor de matrice.


4.7. FORMA BLOC-DIAGONALA

297

cu matricea necunoscutelor X C
I mn , se numeste ecuatie matriceala Sylvester
37
si este echivalenta cu un sistem liniar determinat de mn ecuatii scalare cu mn
necunoscute 38 .
Avand n vedere structurarea matricei coeficientilor acestui sistem n cele doua
matrice de date A si B este interesant si util sa exprimam conditiile de existenta
si unicitate ale solutiei n raport cu aceste matrice si sa gasim metode specifice de
rezolvare.
Teorema de existenta si unicitate a solutiei are urmatorul enunt.
Teorema 4.16 Ecuatia Sylvester (4.203) admite o solutie X C
I mn si aceast
a
solutie este unic determinat
a dac
a si numai dac
a
(A) (B) =

39

(4.204)

Demonstratie. Fie formele Schur 40 S = U H AU si T = V H BV ale matricelor A


si B. Avem A = U SU H si B = V T V H , expresii care, introduse n (4.203), conduc
la ecuatia
U SU H X XV T V H = C,
(4.205)
echivalenta, datorita nesingularitatii matricelor unitare U si V , cu ecuatia (4.203).
Notand
Y = U H XV,
C = U H CV,
(4.206)
ecuatia (4.205) devine

SY Y T = C.

(4.207)

Cu aceleasi argumente ca mai sus, ecuatia (4.203) admite o solutie X si aceasta


solutie este unic determinata dac
a si numai daca ecuatia (4.207) admite o solutie
Y unic determinata. Dar ecuatia matriceala (4.207) poate fi scrisa sub forma unui
sistem bloc-inferior triunghiular de mn ecuatii cu mn necunoscute. Intr-adevar,
37
Intr-un context sistemic, ecuatia (4.203) este cunoscut
a sub denumirea de ecuatie Sylvester
continu
a, context n care ecuatia Sylvester discret
a are forma AXB X = C.
38 Dac
ax
C
I mn si c C
I mn sunt vectorii definiti, de exemplu, prin concatenarea, n ordinea natural
a, a coloanelor matricelor X si, respectiv C, atunci sistemul de mn ecuatii si mn necunoscute
(4.203) poate fi scris explicit sub forma

(In A + B T Im )
x = c.
In relatia de mai sus este operatorul pentru produsul Kronecker a dou
a matrice definit n felul
def

urm
ator: dac
a M C
I pq si N C
I rs , atunci P = M N C
I prqs este matricea av
and
structura bloc P = [ Pij ]i=1:p, j=1:q cu Pij = mij N .
39 Dac
a (4.204) nu este satisf
acut
a, atunci ecuatia Sylvester (neomogen
a) (4.203) poate s
a
admit
a sau s
a nu admit
a solutii (alternativa lui Fredholm) n raport cu matricea termenilor liberi
C. Dac
a admite solutii, atunci solutia general
a este de forma X = Xp + Xo , unde Xp este o
solutie particular
a a ecuatiei Sylvester neomogene (4.203), iar Xo este solutia general
a a ecuatiei
omogene AX XB = 0. In aceasta situatie, ecuatia omogen
a are solutia general
a Xo dependent
a
de N P
parametri
arbitrari (sau, altfel spus, admite un sistem de N solutii liniar independente). Aici
P
p
q
N =
cu il = min(mi , nl ) unde mi si, respectiv, nl sunt ordinele celulelor Jordan
i=1
l=1 il
ale matricelor A si, respectiv, B care au aceeasi valoare proprie. Pentru detalii se poate consulta
referinta [ I ].
40 Dac
a matricele A si B sunt reale atunci S si, respectiv, T sunt forme Schur complexe ale
acestora.

298

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

avand n vedere structura superior triunghiulara a matricelor S si T ecuatia (4.207)


se poate scrie pe coloane sub forma
Syj Y tj = cj ,

j = 1 : n,

(4.208)

j . Prin urmare,
unde yj = Y ej , tj = T ej = [ t1j t2j . . . tjj 0 . . . 0 ]T si cj = Ce
ecuatiile (4.208) devin
Syj

j
X

tkj yk = cj ,

care se scriu sub forma matriceala 41

S t11 Im
0

t12 Im
S

t
I
0
22
m

..
..
.
..

.
.
t1n Im

t2n Im

j = 1 : n,

(4.209)

k=1

0
0
..
.

S tnn Im

y1
y2
..
.
yn

c1
c2
..
.
cn

(4.210)

Acest sistem admite o solutie unica daca si numai daca matricea sistemului este
nesingulara, i.e. daca si numai daca matricele S tjj Im , j = 1 : n, sunt nesingulare,
respectiv
sii tjj 6= 0, i = 1 : m, j = 1 : n.
(4.211)
Avand n vedere faptul ca (A) = {s11 , s22 , . . . , smm } si (B) = {t11 , t22 , . . . , tnn }
conditia (4.211) este echivalenta cu (4.204). Aceasta observatie ncheie demonstratia
teoremei.
3
Structura bloc-inferior triunghiulara a sistemului (4.210) mpreuna cu structura
superior triunghiulara a blocurilor diagonale fac ca rezolvarea sistemului (4.210) sa
fie posibila prin rezolvarea sistemelor
(S tjj Im )yj = cj +

j1
X

tkj yk ,

j = 1 : n,

(4.212)

k=1

n ordinea j = 1, 2, . . . , n, necunoscutele scalare yij calculandu-se, n ordinea i =


= n, n 1, . . . , 2, 1, cu formula
P
Pm
cij + j1
k=1 yik tkj
k=i+1 sik ykj
.
(4.213)
yij =
sii tjj
Dupa calculul matricei Y , matricea necunoscuta initiala se determina din prima
relatie (4.206) cu formula
X = UY V H.
(4.214)
Valorificarea algoritmica a partii constructive a demonstratiei teoremei 4.16 o
vom face n doua etape. Mai ntai vom prezenta un algoritm pentru rezolvarea
unei ecuatii Sylvester triunghiulare de tipul (4.207) care va fi apoi folosit ntr-un
algoritm pentru rezolvarea ecuatiei Sylvester avand forma generala (4.203).
41

Vezi si una din notele de subsol precedente, referitoare la utilizarea produselor Kronecker.


4.7. FORMA BLOC-DIAGONALA

299

Algoritmul 4.19 (SYLVtri - Rezolvarea ecuatiei Sylvester triunghiulare) (Date matricele superior triunghiulare S C
I mm , T C
I nn
mn
cu (A)(B) = , precum si matricea C C
I
, algoritmul calculeaza
solutia Y C
I mn a ecuatiei Sylvester SY Y T = C.
1. Pentru j = 1 : n
1. Dac
a j > 1 atunci
1. Pentru i = 1 : m
Pj1
1. cij = cij + k=1 yik tkj .
2. Pentru i = m : 1 : 1
1. Dac
a i < m atunci
P
1. cij = cij m
k=i+1 sik ykj .
cij
2. yij =
.
sii tjj
Comentarii.

Sintaxa de apel a algoritmului 4.19 este


Y = SYLVtri(S, T, C).

Complexitatea algoritmului este O(n3 ) (sau O(m3 )), numarul de flopi complecsi
(c)
(c)
fiind N = 14 (m2 n + mn2 ) nmultiri si N = 14 (m2 n + mn2 ) adunari si scaderi,
2
echivalat cu evaluarile uzuale la N = 2(m n + mn2 ) flopi reali. In cazul real, evident, Nop = 12 (m2 n + mn2 ). Algoritmul fiind, n esenta, o colectie de rezolvari de
sisteme triunghiulare are, cel putin n parte, proprietatile algoritmilor de rezolvare
ale acestora. Se poate afirma ca daca spectrele matricelor S si T sunt bine separate, i.e. n acest caz |sii tjj | sunt suficient de mari, atunci algoritmul este
numeric stabil. Asupra conceptului de separare a spectrelor se va reveni, ntr-un
context mai general, n sectiunea 4.10.
3
Algoritmul de rezolvare a ecuatiei Sylvester triunghiulare serveste ca baza, conform celor aratate mai sus, pentru rezolvarea ecuatiei Sylvester generale. Avem
urmatorul algoritm.
Algoritmul 4.20 (SYLVc - Rezolvarea ecuatiei matriceale Sylvester
complexe) (Date matricele A C
I mm , B C
I nn , C C
I mn cu (A)
(B) = si toleranta tol, algoritmul calculeaza solutia X C
I mn a
ecuatiei Sylvester continue AX XB = C utilizand algoritmul QR1
pentru reducerea matricelor A si B la forma Schur. Se presupune ca
algoritmul QR1 se termina normal n ambele cazuri.)
1. [ S, U ] = QR1(A, Im , tol, da )
2. [ T, V ] = QR1(B, In , tol, da )
3. C C = U H CV
4. Y = SYLVtri(S, T, C)
5. X = U Y V H .

300
Comentarii.

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
Sintaxa de apel a algoritmului 4.20 este
X = SYLVc(A, B, C).

Complexitatea algoritmului este O(n3 ). Evident, efortul de calcul cel mai important
se consuma n executia instructiunilor 1 si 2 de aducere la forma Schur a matricelor
A, B si de acumulare a transformarilor (dar nici efortul pentru rezolvarea ecuatiei
Sylvester triunghiulare si efectuarea produselor matriceale nu poate fi neglijat).
Dac
a numim, ad-hoc, metoda prezentata mai sus varianta Schur-Schur, din motive
de asigurare a unei eficiente maxime, se impune analiza alternativelor n care se
renunta la aducerea la forma Schur a ambelor matrice A si B. Astfel, n asa numita
variant
a Hessenberg-Schur numai matricea B este adusa la forma Schur aparand
urmatoarele diferente n raport cu algoritmul 4.20 de mai sus:
n instructiunea 1 matricea A este adusa, printr-un algoritm de calcul direct
(neiterativ) algoritmul HQc la forma superior Hessenberg; n acest fel se evita
faza iterativa a algoritmului QR1;
n compensatie, la instructiunea 3, n loc de rezolvarea unei ecuatii Sylvester
triunghiulare se rezolva o ecuatie Sylvester Hessenberg-triunghiulara, ceea ce presupune rezolvarea a n sisteme de tip Hessenberg, incluzand eliminare gaussiana cu
eventuala pivotare.
Evaluarile existente apreciaza ca varianta Hessenberg-Schur este cu 30 pana la
80 procente mai eficienta. Scrierea explicita a algoritmului Hessenberg-Schur este
propusa cititorului ca exercitiu.
Evident, matricele S si T pot suprascrie matricele A si, respectiv, B dupa cum
matricea Y a rezultatelor intermediare si solutia X pot suprascrie matricea C dar
s-a preferat scrierea de mai sus pentru claritatea prezentarii algoritmului.
3
In cazul uzual, n care datele de intrare, i.e. matricele A, B si C, sunt reale
solutia X este reala si toate calculele se pot efectua ntr-o aritmetica reala. Pentru
aceasta, n locul formei Schur complexe se utilizeaza reducerea la forma Schur reala.
Ne propunem mai ntai sa rezolvam ecuatia Sylvester
SY Y T = C,

(4.215)

n care matricele S IRmm si T IRnn au structuri cvasi-superior triunghiulare


(i.e. cu blocurile diagonale de ordin cel mult 2)

S11 S12 S1p


T11 T12 T1q
0 T22 T2q
0 S22 S2p

(4.216)
, T = .
S= .

..
.. ,
.
.
..
.
..
..
..
..
..
.
.
.
0
0 Tqq
0
0 Spp
iar C IRmn . Algoritmul corespunzator acestei situatii structurale este cunoscut
sub denumirea de algoritmul Bartels-Stewart [ 4 ].
Procedura urmareste cu fidelitate ideile din algoritmul 4.19, cu singura deosebire ca n locul unor scalari apar blocuri i j cu i, j {1, 2}. Partitionam
matricea necunoscutelor Y = [ Yij ]i=1:p, j=1:q si matricea termenilor liberi C =
= [ Cij ]i=1:p, j=1:q conform cu partitiile (4.216) ale matricelor S si T .


4.7. FORMA BLOC-DIAGONALA

301

In acest fel, corespondentele relatiilor (4.212) sunt ecuatiile bloc


Sii Yij Yij Tjj = Cij +

j1
X

k=1

Tkj Yik

q
X

Sik Ykj

i = 1 : p,

j = 1 : q, (4.217)

k=i+1

i.e. ecuatii Sylvester avand matricele Sii si Tjj de dimensiuni 1 1 sau 2 2 care,
scrise explicit, reprezinta sisteme liniare determinate de ordin 1, 2 sau 4. Termenii
liberi ai acestor sisteme, i.e. matricele din membrul drept al relatiilor (4.218), sunt
calculabili daca rezolvarea acestor sisteme se face n ordinea j = 1, 2, . . . , q, i =
= p, p 1, . . . , 1.
Rezulta urmatorul algoritm.
Algoritmul 4.21 (BS Algoritmul Bartels-Stewart) (Date matricele cvasi-superior triunghiulare S IRmm , B IRnn cu blocurile
indexate ca n (4.216), astfel ncat (S) (T ) = si matricea termenilor liberi C IRmn , partitionata conform cu partitilile matricelor
S si T , algoritmul calculeaza solutia Y IRmn a ecuatiei Sylvester
SY Y T = C.)
1. Pentru j = 1 : q

1. Dac
a j > 1 atunci
1. Pentru i = 1 : p
Pj1
1. Cij = Cij + k=1 Yik Tkj .
2. Pentru i = p : 1 : 1
1. Dac
a i < p atunci
P
1. Cij = Cij pk=i+1 Sik Ykj .
2. Se rezolva ecuatia Sylvester Sii Yij Yij Tjj = Cij (prin
scrierea explicita si utilizarea, e.g. a eliminarii gaussiene)
Comentarii.
este

Sintaxa de apel, cu care a algoritmul 4.21 va fi utilizat n continuare,


Y = BS(S, T, C).

Complexitatea algoritmului este O(n3 ), comparabila cu rezolvarea ecuatiei Sylvester


triunghiulare cu algoritmul 4.19. Concret numarul asimptotic de operatii aritmetice
ce se efectueaza este Nop = 12 (m2 n + mn2 ). De asemenea, proprietatile numerice
sunt similare cu cele ale algoritmului 4.19, fiind dependente esential de nivelul de
separare al spectrelor celor doua matrice S si T .
3
Revenim la rezolvarea ecuatiei Sylvester (4.203) avand matricele de date A, B
si C reale. Fie U T AU = S si V T BV = T formele Schur reale ale matricelor A,
respectiv B, unde matricele U IRmm si V IRnn sunt ortogonale. Introducand
A = U SU T si B = V T V T n (4.203) obtinem ecuatia
SU T XV U T XV T = U T CV,

(4.218)

care poate fi scrisa n forma (4.215)

SY Y T = C,

(4.219)

302

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

unde
C = U T CV.

Y = U T XV,

(4.220)

Dupa calculul matricei Y cu algoritmul Bartels-Stewart, matricea necunoscuta initial


a se determina cu relatia
X = UY V T .
(4.221)
Obtinem urmatorul algoritm.
Algoritmul 4.22 (SYLVr Rezolvarea ecuatiei Sylvester reale)
(Date matricele A IRmm , B IRnn , C IRmn , cu (A) (B) = ,
si toleranta tol, algoritmul calculeaza solutia X IRmn a ecuatiei
Sylvester continue AX XB = C prin reducerea matricelor A si B la
forma Schur reala cu algoritmul QR2 si utilizarea algoritmului BartelsStewart. Se presupune ca algoritmul QR2 se termina normal n ambele
cazuri.)
1. [ S, U ] = QR2(A, Im , tol, da )
2. [ T, V ] = QR2(A, In , tol, da )
3. C C = U T CV
4. Y = BS(S, T, C)
5. X = U Y V T
Comentarii.
este

Sintaxa de apel, cu care algoritmul 4.22 va fi utilizat n continuare,


X = SYLVr(A, B, C).

Pentru alte aspecte, cum sunt aprecierea complexitatii si memorarea economica,


vezi comentariile de la algoritmul 4.20.
3
Observatia 4.7 Conditia (4.204), de existenta si unicitate a solutiei ecuatiei
Sylvester (4.203), sugereaza ideea ca solutia este cu atat mai robusta cu cat
spectrele matricelor A si B sunt mai bine separate. Masura separarii spectrelor
matricelor A si B este data de scalarul
sep(A, B) = min
V 6=0

kAV V BkF
kV kF

(4.222)

(pentru mai multe detalii vezi 4.10). Concret, se poate arata [ 54 ] ca solutia X a
ecuatiei Sylvester (4.203) satisface conditia
kXkF

kCkF
.
sep(A, B)

(4.223)

Deci, daca separarea matricelor A si B este redusa, atunci este posibil ca norma
Frobenius a solutiei sa fie mare.
3


4.7. FORMA BLOC-DIAGONALA

4.7.2

303

Descompunerea bloc-diagonal
a

Posibilitatea reducerii, prin transformari de asemanare, a unei matrice bloc-triunghiulare la o matrice bloc-diagonala are la baza urmatoarea lema.
Lema 4.5 Fie o matrice T C
I nn 2 2 superior bloc-triunghiular
a


T11 T12
T =
,
T11 C
I n1 n1 , T22 C
I n2 n2 , n1 + n2 = n.
0 T22

(4.224)

Dac
a (T11 ) (T22 ) = , atunci exist
a o matrice nesingular
a X C
I nn av
and
structura


In1 X12
X=
,
(4.225)
0
In2
astfel nc
at

D = X 1 T X =

Demonstratie. Este simplu de constatat ca



In1
X 1 =
0

T11
0

0
T22

X12
In2

(4.226)

(4.227)

si, n consecinta,
D = X 1 T X =

T11
0

T11 X12 X12 T22 + T12


T22

(4.228)

Conform teoremei 4.16, n conditiile lemei, ecuatia matriceala Sylvester continua


T11 X12 X12 T22 + T12 = 0

(4.229)

admite o solutie X12 unic determinata. Utilizand aceasta solutie n definirea matricei X asertiunea lemei este probata evident.
3
Lema 4.5 se generalizeaza imediat n urmatorul rezultat.
Teorema 4.17 Dac
a matricea T
unghiular
a

T11 T12 T1q


0 T22 T2q

T = .
..
..
..
..
.
.
.
0

si satisface conditiile

Tqq

C
I nn are o structur
a q q superior bloc-tri

Tii C
I ni ni ,

(Tii ) (Tjj ) = ,
nn

atunci exist
a o matrice nesingular
a X C
I

In1 X12
0
In2

X = .
..
.
.
.
0

i 6= j,

q
X

ni = n,

av
and structura

X1q
X2q

.. ,
..
.
.

Inq

(4.230)

i=1

(4.231)

(4.232)

304

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

astfel nc
at

D = X 1 T X =

T11
0
..
.

0
T22
..
.

..
.

0
0
..
.

Tqq

(4.233)

Demonstratie. Dovada se obtine imediat prin aplicarea repetata a lemei 4.5 pentru
a proba existenta si pentru a calcula submatricele Xij care definesc matricea de
transformare X. Procedura are q 1 pasi.
Pasul 1 . Fie partitia

T22 T2q




T11 T12

.. .
..
T =
, unde T12 = T12 T1q , T22 = ...
.
.

0 T22
0 Tqq

Din (4.231) rezulta (T11 ) (T22 ) = . Prin urmare, conform lemei 4.5, transformarea definita de T T (1) = X11 T X1 cu


12
In1
X
X1 =
,
0 Inn1
12 este solutia ecuatiei Sylvester
unde X
12 X
12 T22 + T12 = 0
T11 X
asigura anularea blocurilor extradiagonale de pe prima bloc-linie a matricei T .
Pasul k . Presupunem ca la primii k 1 pasi am realizat bloc-diagonalizarea
din primele bloc linii, i.e.

T11
0
0
1
T T (k1) = Xk1
X21 X11 T X1 X2 Xk1 = 0 Tkk
Tk,k+1 ,

0
0
Tk+1,k+1
unde

T11

T11
..
= .
0

..
..
,
.
.
Tk1,k1
Tk+1,k+1

Tk,k+1 =

Tk+1,k+1

..
=
.
0

Tk,k+1

Tkq

Tk+1,q

..
..
.
.
.

Tqq

k,k+1 este solutia ecuatiei Sylvester


Din aceleasi motive ca la pasul 1 , daca X
k,k+1 X
k,k+1 Tk+1,k+1 + Tk,k+1 = 0,
Tkk X

(4.234)


4.7. FORMA BLOC-DIAGONALA
atunci matricea
unde

305

T T (k) = Xk1 T (k1) Xk ,

In 1
Xk = 0
0

Ink
0

k,k+1
X
Inn1 nk

n
1 =

(4.235)
k1
X

ni ,

(4.236)

i=1

asigura anularea blocurilor extradiagonale de pe bloc-linia k. Prin urmare, procedura initiata la pasul 1 poate fi continuata astfel ncat, dupa q 1 pasi, matricea
1
T T (q1) = Xq1
X21 X11 T X1 X2 Xq1 = X 1 T X

(4.237)

este bloc-diagonala, unde


X = X1 X2 Xq1

(4.238)

este o matrice unitar bloc superior triunghiulara (ca produs de matrice unitar bloc
superior triunghiulare). Demonstratia este completa.
3
Conform demonstratiei de mai sus, schema de calcul pentru bloc-diagonalizarea
unei matrice bloc superior triunghiulare 42 , care satisface conditiile (4.231), este
urmatoarea:
1. X = In
2. Pentru k = 1 : q 1
k,k+1 a ecuatiei Sylvester (4.234).
1. Se calculeaza solutia X
2. Se anuleaza blocurile extradiagonale de pe bloc-linia k pe baza
relatiei (4.235).
3. X = XXk unde Xk este definita de (4.236).
Aceasta schema de calcul se poate detalia prin rezolvarea ecuatiei Sylvester (4.234)
pe blocuri. Intr-adevar, fie partitia


k,k+1 = Xk,k+1 Xkq ,
X

conforma cu partitia lui Tk,k+1 . Atunci ecuatia (4.234) se reduce la setul de ecuatii
Sylvester
Tkk Xkj Xkj Tjj =

j1
X

l=k+1

Xkl Tlj Tkj ,

j = k + 1 : q,

(4.239)

(unde, pentru j = k + 1 suma se considera nula) care pot fi rezolvate n ordinea


impusa j = k + 1, k + 2, . . . , q. Acumularea transformarilor, se poate face si ea pe
masura ce se calculeaza blocurile. Intrucat bloc-diagonalizarea urmeaza, de obicei,
reducerii la forma bloc-triunghiulara si unei eventuale ordonari a blocurilor diagonale (e.g. calculul formei Schur ordonate), pentru a nu reduce generalitatea vom
considera ca matricea initiala de transformare este Q, posibil diferita de matricea
unitate. Astfel, acumularea transformarilor consta n calculul Q QX.
Rezulta urmatoarea schema de calcul.
42 Pentru diagonalizarea matricelor bloc inferior triunghiulare se aplic
a aceast
a procedur
a matricei transpuse, dup
a care se transpune rezultatul.

306

BD

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

1. Pentru k = 1 : q 1
1. Pentru j = k + 1 : q
1. Se rezolva ecuatia Sylvester Tkk Xkj Xkj Tjj = Tkj
2. Tkj = 0
3. Dac
a k < q 1 atunci
1. Pentru l = j + 1 : q
1. Tkl = Tkl Xkj Tjl
2. Pentru i = 1 : q
1. Qij = Qij + Qik Xkj

Algoritmul de implementare al schemei de calcul BD arata astfel.


Algoritmul 4.23 (BDc Diagonalizarea bloc a unei matrice bloc
superior triunghiulare) (Date matricea bloc superior triunghiulara T
C
I nn , avand blocurile diagonale Tii C
I ni ni , i = 1 : q, astfel ncat
(Tii ) (Tjj ) = , i 6= j, matricea de transformare initiala Q C
I nn
si vectorul nd = [n1 n2 . . . nq ] al ordinelor blocurilor diagonale, algoritmul calculeaza matricea unitar bloc triunghiulara X C
I mn astfel
1
ncat T X T X este bloc-diagonala T = diag(T11 , T22 , . . . , Tqq ) si
acumuleaza transformarile actualizand matricea Q: Q QX. Matricea
X nu se formeaza explicit.)
1. r1 = 1
2. s1 = n1
3. Pentru k = 1 : q 1

1. rk+1 = rk + nk
2. sk+1 = sk + nk+1

4. Pentru k = 1 : q 1

1. Pentru j = k + 1 : q
1. Y = SYLV(T (rk : sk , rk : sk ), T (rj : sj , rj : sj ),
T (rk : sk , rj : sj ))
2. T (rk : sk , rj : sj ) = 0
3. Dac
a k < q 1 atunci
1. Pentru l = j + 1 : q
1. T (rk : sk , rl : sl ) = T (rk : sk , rl : sl ) Y T (rj : sj , rl : sl )
4. Q( : , rj : sj ) = Q( : , rj : sj ) + Q( : , rk : sk )Y

Comentarii.

Sintaxa de apel pentru algoritmul 4.23 este


[ T, Q ] = BD(T, Q, nd).

Pentru simplificarea scrierii algoritmului s-au introdus vectorii de indici initiali (r)
si finali (s) ai blocurilor, i.e. astfel ncat Tij = T (ri : si , rj : sj ). Intrucat matricea
X nu se formeaza explicit (n afara cazului cand Q initial este In ) pentru solutiile
Xkj ale ecuatiilor Sylvester s-a utilizat aceeasi variabila matriceala Y .


4.7. FORMA BLOC-DIAGONALA

307

Versiunea pentru date initiale reale s-o numim BDr este absolut similara, singura diferenta constand n utilizarea algoritmului SYLVr pentru rezolvarea
ecuatiilor Sylvester implicate.
Complexitatea algoritmului este O(n3 ) numarul concret de operatii fiind dependent de structura blocurilor diagonale. Daca blocurile diagonale sunt toate 1 1,
atunci n cazul real Nop = 23 n3 flopi, iar n cazul complex numarul echivalent de
flopi reali este de patru ori mai mare.
3
Observatia 4.8 In majoritatea aplicatiilor calitatea formei boc-diagonale calculate
de algoritmul BD este apreciata prin conditionarea (X) = kXk kX 1k a matricei
de transformare X. Data o matrice T n forma Schur (reala), se poate formula
problema unei ordonari prealabile a acesteia si apoi a fixarii blocurilor diagonale
astfel ncat sa se obtina o conditionare cat mai buna a matricei de transformare
X. Consideram, spre exemplificare, cazul a numai doua blocuri diagonale. Din
structura (4.225) si (4.227) a matricelor X si X 1 avem
F (X) = kXkF kX 1 kF = n + kX12 k2F .
Prin urmare, conditionarea matricei X este cu atat mai buna cu cat norma solutiei
X12 a ecuatiei Sylvester (4.229) este mai mica, i.e. conform observatiei 4.7, separarea spectrelor blocurilor T11 si T22 este mai mare. Revenind la problema formulata
mai sus, ordonarea formei Schur si fixarea blocurilor diagonale trebuie facuta astfel
ncat spectrele blocurilor diagonale sa fie cat mai bine separate.
3

4.7.3

Aspecte numerice privitoare la calculul


formei canonice Jordan

In cazul general, cea mai simpla structura care poate fi obtinuta, prin transformari
de asemanare corespunzatoare, este asa numita form
a canonic
a Jordan definita n
teorema urmatoare.
Teorema 4.18 Oricare ar fi matricea A C
I nn exist
a o matrice nesingular
aT
nn
C
I
astfel nc
at
J = T 1 AT = diag( J1 , J2 , ... , Jq ),

(4.240)

unde blocurile diagonale Jk se numesc celule Jordan si sunt fie scalari Jk = k , fie
au structura

k 1 0
0

0 k . . . 0
0

.. . .
..
..
I nk nk .
(4.241)
Jk =
C
...
.
.
.
.

0
0 k 1
0
0 0 k

Unei valori proprii multiple i pot corespunde una sau mai multe celule Jordan.
Num
arul si dimensiunile celulelor Jordan asociate fiec
arei valori proprii sunt unic
determinate, dar ordonarea blocurilor n (4.240) poate fi arbitrar
a.

308

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Demonstratie. Demonstratii complete pot fi gasite n lucrarile clasice de algebra


liniara sau analiza matriceala, cum sunt, de exemplu, [ I ], [ II ].
3
Desi forma canonica Jordan joaca un rol esential n analiza matriceala, continand
maximum de informatie structurala privitor la o matrice data, totusi rolul ei n calculul numeric este mult diminuat de sensibilitatea structurii Jordan la perturbatii
numerice n elementele matricei initiale, perturbatii inerente datorita erorilor de
reprezentare a informatiei numerice ntr-un format virgula mobila. De asemenea,
ncercarile de a calcula forma canonica Jordan a unei matrice presupuse ca avand
o reprezentare exacta, ntr-un mediu de calcul aproximativ, prezinta dificultati majore datorita influentelor structurale, posibil decisive, ale erorilor de rotunjire. Din
pacate (sau din fericire) nu s-a putut degaja un concept de forma canonica Jordan
aproximativa sau, mai bine zis, acest rol poate fi jucat de o structura diagonala,
ntrucat oricat de aproape (n sensul unei norme matriceale consistente) de o matrice cu o structura Jordan oricat de complexa se gasesc matrice cu structura Jordan
cea mai simpla, i.e. diagonala.
Trebuie subliniat nsa ca, practic n toate aplicatiile, forma canonica Jordan
poate fi suplinita cu succes de catre forma Schur, al carei calcul se poate efectua cu
o nalta acuratete.
Privind acum determinarea formei canonice Jordan ca o provocare la adresa
calculului numeric, ne propunem sa scoatem n evidenta, la un nivel mai putin
formal, natura dificultatilor ce apar ntr-o astfel de ntreprindere.
In primul rand este evident faptul ca o abordare procedurala naturala a constructiei formei canonice Jordan a unei matrice A C
I nn presupune ca o prima etapa,
decisiva, calculul formei formei Schur ordonate si, pe aceasta baza, a formei blocdiagonale (prezentate n sectiunile precedente) n care fiecare bloc diagonal corespunde unei valori proprii distincte a matricei initiale si, prin urmare, are ordinul
dat de multiplicitatea algebrica a valorii proprii respective. De asemenea, amintim
ca, n cazul complex, blocurile diagonale sunt matrice superior triunghiulare.
In consecinta, problema se reduce, de fapt, la calculul formei canonice Jordan a
unui bloc diagonal al formei bloc diagonale, i.e. a unei matrice (utilizam din nou
notatiile generice) A C
I nn de forma
A = In + N,

(4.242)

nn

unde N C
I
este o matrice strict superior triunghiulara. Mai mult, ntrucat
T 1 AT = In + T 1 N T , este suficient sa construim forma canonica Jordan a
matricei strict superior triunghiulare N .
Fie
J = T 1 N T = diag( J1 , J2 , ... , Jq ),
(4.243)
forma canonica Jordan a matricei N , unde celulele Jordan Jk sunt definite, n acest
caz, de

0 1 0 0

0 0 ... 0 0

I nk nk .
Jk =
(4.244)
... ... . . . . . . ... C

0 0 0 1
0 0 0 0


4.7. FORMA BLOC-DIAGONALA

309

O prima dificultate majora este determinarea ordinelor nk , k = 1 : q, ale celulelor.


O modalitate de a face acest lucru pleaca de la urmatoarele observatii: a) Jkl = 0
pentru toti l nk si b) dimKerJkl = l, pentru l < nk . Cum
J l = T 1 N l T = diag( J1l , J2l , ... , Jql ),

(4.245)

si
dimKerJ l = dimKerN l =

q
X

dimKerJil ,

(4.246)

i=1

def

rezulta ca, daca putem calcula ml = dimKerN l pentru l 1 : n 43 , atunci dimensiunile ni ale celulelor Jordan pot fi determinate din (4.246) pe baza urmatoarelor
constatari:
a) numarul celulelor Jordan de ordin l sau mai mare este l = ml ml1 (se
considera m0 = 0), ntrucat o data ce l a atins valoarea ni , Jil a devenit nula,
i.e. dimKerJil a atins valoarea maxima ni si nu mai contribuie la variatia sumei la
trecerea la valoarea urmatoare a lui l;
b) numarul celulelor Jordan de ordin l este dat de l = l l+1 (se considera
lmax +1 = 0).
Exemplul 4.5 Fie n = 8 ordinul matricei strict superior triunghiulare N . O
situatie structurala posibila ce poate fi dedusa din determinarea dimKerN l , pentru
toate valorile de interes ale lui l, este rezumata n tabelul 4.6. Deci structura Jordan
a matricei N are o celula scalara, doua celule de ordinul 2 si o celula de ordinul 3.
3

l
ml = dimKerN l
l = ml ml1
l = l l+1

1
4
4
1

2
7
3
2

3
8
1
1

Tabelul 4.6: Determinarea dimensiunii celulelor Jordan pentru o matrice strict


superior triunghiulara de ordinul 8
Pentru aplicarea celor aratate mai sus este necesar un mijloc fiabil de determinare a dimensiunilor subspatiilor implicate sau, echivalent, de calcul al rangului
unor matrice. Aici este de fapt punctul critic al procedurii, ntrucat deciziile de
rang exact ntr-un mediu de calcul aproximativ sunt dificile, daca nu imposibile,
iar conceptul de rang numeric (i.e. ntr-un sens, de rang aproximativ, v. cap. 5),
singurul instrument de care putem dispune n conditiile precizate, trebuie utilizat
cu multa grija ntr-o abordare structurala n care structura este foarte sensibila la
variatiile elementelor.
43 Evident, este suficient s
a ne rezum
am la l s, unde s este cel mai mic ntreg pentru care
N s = 0.

310

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Pentru a ncheia constructiv acest paragraf, vom considera ca fiind exact rangul oferit de instrumentele numerice existente si, pentru a apela la proceduri deja
familiare cititorului, vom folosi n acest scop triangularizarea unitara (ortogonala)
completa 44 (v. cap. 3). Reamintim ca, data o matrice A C
I mn , procedura de
triangularizare unitara completa presupune o triangularizare unitara cu pivotarea
coloanelor care calculeaza matricea unitara Q C
I mm si matricea (ortogonala) de
nn
permutare P IR
astfel ncat
H

Q AP = R =

R11
0

R12
0

R11 C
I rr ,

(4.247)

unde R11 este superior triunghiulara nesingulara (i.e. r este rangul matricei A),
urmata de anularea blocului R12 printr-o transformare unitara (ortogonala) aplicata
pe dreapta, obtinandu-se
H

Q AP V = Q AZ = RV =

R11
0

0
0

Z = P V.

(4.248)

In cele ce urmeaza, vom utiliza variante ale descompunerii (4.248) obtinute prin
permutari suplimentare ale blocurilor. In acest scop vom introduce sintaxa de apel
[ R, Q, Z, r ] = QRCij(A),
unde ij marcheaza pozitia blocului triunghiular nesingular R11 , indexat n continuare n functie de necesitatile contextului. Subliniem nca o data ca, desi rangul
calculat r este esential dependent de nivelul erorilor de calcul si al tolerantelor
practicate n procesul de triangularizare, n cele ce urmeaza acesta va fi considerat
exact.
Trecem la constructia formei canonice Jordan a matricei strict superior triunghiulare (deci nilpotente) N C
I nn , si vom presupune N 6= 0 45 . Esenta
procedurii de constructie a formei Jordan consta n urmatoarele etape.
Etapa 1 rezida n reducerea matricei N la o structura bloc supradiagonala.
Pentru a obtine aceasta structura aplicam matricei N procedura de triangularizare
unitara (ortogonala) completa [ N1 , Q1 , Z1 , r1 ] = QRC12(N ). Rezulta
m1 =1

r1

z}|{ z}|{


0
R1 }r1
QH
N
Z
=
R
=
,
1
1
0
0
}1

(4.249)

cu R1 C
I r1 r1 nesingulara si
m1 = dimKerN = n r1 = 1 .

(4.250)

44 Un mijloc mai bun de evaluare a rangului este descompunerea valorilor singulare, tratat
a n
capitolul 5.
45 Dac
a N = 0, atunci ea se afl
a deja n form
a canonic
a Jordan cu n celule de ordinul 1.


4.7. FORMA BLOC-DIAGONALA

311

In continuare fie matricea N1 , unitar asemenea cu N , definita de


1

Z1H N Z1

N1 =

Z1H Q1 R

r1

z}|{ z}|{
0
0

K1
L1

}1
,
}r1

(4.251)

unde, evident, (L1 ) (N ), i.e. blocul L1 are toate valorile proprii nule, respectiv
este nilpotent. Putem determina acum m2 = dimKerN 2 = dimKerN12 . Intr-adevar,
m2 =

dimKerN12

= dimKer

0
0

K1 L1
L21


K1 L1
= m1 + dimKer
= m1 + dimKerL1 ,
(4.252)
L21

 



K1 L1
K1
K1
ntrucat
=
L
,
iar
matricea
este monica. Daca L1 = 0
1
L21
L1
L1
se trece la etapa a doua. Daca L1 6= 0 continuam procesul initiat mai sus, prin
aplicarea unor transformari similare matricei nilpotente L1 , obtinand
2

2 = Z H L1 Z2 =
N
2

r2

z}|{ z}|{
0
0

K2
L2

}2
,
}r2

(4.253)


K2
monica, m2 = m1 + 2 si 2 = r1 r2 .
L2
Considerand matricea de transformare unitara


Im1 0
Z2 =
,
(4.254)
0
Z2
cu matricea L2 nilpotenta, matricea

obtinem
1

2 =
N

Z2H N1 Z2

Z2H Z1H N Z1 Z2


0
0

K1 Z2
0 K2
0 L2

r2

z}|{ z}|{ z}|{

0 K12 K13
}1
= 0
0
K23 }2 ,
0
0
L2
}r2
(4.255)


K23
sunt monice. In aceasta faza putem anula blocul
L2
K13 printr-o transformare de asemanare (neunitara) definita de o matrice de transformare de tipul


I1 S
T2 =
,
(4.256)
0 Ir1

n care matricele K12 si

312

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

unde S C
I 1 r1 este o solutie a ecuatiei matriceale


K23
S
= K13 .
L2

46

(4.257)

Cu aceasta transformare rezulta


1

r2

z}|{ z}|{ z}|{

0 K12
0
}1
2 T2 = T 1 Z2H Z1H N Z1 Z2 T2 = 0

0
K
}2 ,
N2 = T21 N
23
2
0
0
L2
}r2

(4.258)

Acest proces se desfasoara ntr-un numar s de pasi, unde s este primul ntreg
pentru care Ls =0, obtinandu-se, n finalul acestei etape, o matrice avand o structura
bloc supradiagonala
K = Ns = Ts1 ZsH . . . T21 Z2H Z1H N Z1 Z2 T2 . . . Zs Ts =
1

z}|{ z}|{ z}|{


0 K12
0
0
..
..
.
.

0
0

0
0

0
K23
..
.
0
0

..
.
..

z}|{
0
0
..
.

. Ks1,s

}1
}2
..
.

(4.259)

}s1
}s

cu toate blocurile Ki1,i , i = 2 : s, monice. Din dimensiunile l l ale blocurilor


diagonale se pot deduce, dupa cum s-a aratat mai sus, numarul l = l l+1 ,
l = 1 : s, al celulelor Jordan de ordinul l.
Etapa 2 are ca obiect introducerea zerourilor n blocurile supradiagonale Ki1,i .
Pentru claritate, descriem modalitatea n care acest obiectiv poate fi atins n cazul
particular s = 3. Consideram descompunerea unitara completa a blocului K23
23 , Q23 , Z23 , 3 ] = QRC21(K23 ), cu care obtinem
[K


0
}2 3 = 2
23 = QH
K
K
Z
=
,
(4.260)
23 23 23
R23 }3 = 3
cu R23 C
I 3 3 nesingulara. Acum, cu transformarea de asemanare definita de
matricea

I1
0
0
,
0
T23 = 0 Q23
(4.261)
1
0
0
Z23 R23
h
i

K23
L2
este monic
a. h
O solutie
poate
fi
calculat
a
cu
mijloacele
descrise

n
capitolele
2

s
i
3.
De
exemi
h
i
i h
K23
R
K23
plu, dac
a QH
=
este triangularizarea unitar
a a matricei
, atunci S =
L2
0
L2

 H
= R1 K13 Y
Q , cu Y C
I 1 2 arbitrar
a, este o astfel de solutie. Pentru Y = 0 se obtine
solutia normal
a, i.e. de norm
a Frobenius minim
a.
46

Ecuatia (4.257) are ntotdeauna (cel putin) o solutie S ntruc


at matricea sistemului


4.7. FORMA BLOC-DIAGONALA
rezulta

313

K12 Q23

= T 1 KT23 = 0
M
23

0
0

 0 

02
.

I3
0

(4.262)

Continuand n acelasi mod, consideram descompunerea unitara completa a blocului


12 , Q12 , Z12 , 2 ] = QRC21(K12 Q23 ) si transformarea de asemaK12 actualizat [ K
nare definita de matricea

Q12
0
0
1
T12 = 0
(4.263)
Z12 R12
0 .
0
0
I3
Rezulta

M=

1
T12
M T12

=
0

01
I2
0

0


02
I3
0


.

(4.264)

0
In cazul general, procesul descris mai sus, poate fi sintetizat n urmatoarea
schema de calcul.
Pentru i = s : 1 : 2
i1,i , Qi1,i , Zi1,i , i ] = QRC21(Ki1,i )
1. [ K


0i1
2. Ki1,i
Ii
3. Dac
a i > 2 atunci
1. Ki2,i1 Ki2,i1 Qi1,i .
Observatia 4.9 Punerea n evidenta a matricelor unitate din structura creata cu
schema de calcul are n vedere obtinerea formei canonice Jordan uzuale. T
inand
seama nsa de faptul ca esenta structurala a formei Jordan rezida n dimensiunile
celulelor Jordan, se poate oferi un plus de informatie daca n locul matricelor unitate
se lasa matricele diagonale construite cu elementele diagonale ale matricelor Ri1,i
(sau cu valorile singulare (v. cap. 5) ale matricelor Ki1,i curente). In acest fel
se poate pune n evidenta o eventuala fragilitate numerica a unor celule datorata
valorilor prea mici ale unora dintre elementele diagonale amintite.
3

Etapa 3 consta n transformari de asemanare tip permutare pentru a pune


n lumina celulele Jordan de dimensiuni corespunzatoare si pentru eventuala lor
ordonare. Lasam n seama cititorului aceasta sarcina.
In concluzie, parcurgand cele trei etape, se obtine forma canonica Jordan J0 a
matricei strict superior triunghiulare N . Forma canonica Jordan a matricei initiale
A din (4.242) este J = In + J0 .
Matricea nesingulara care defineste transformarea de asemanare ce evidentiaza
forma canonica Jordan se obtine cumuland toate transformarile efectuate pe parcursul procedurii.
Rezumand cele prezentate mai sus, avem urmatoarea schita a unei posibile proceduri de calcul a formei canonice Jordan.

314
J

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1. Se calculeaza forma Schur (complexa) utilizand algoritmul QR.
2. Se ordoneaza forma Schur astfel ncat valorile proprii apreciate
ca fiind egale sa fie grupate.
3. Se calculeaza forma bloc-diagonala astfel ncat fiecarui bloc sa-i
corespunda o valoare proprie distincta.
4. Se calculeaza forma canonica Jordan a fiecarui bloc diagonal
conform indicatiilor din prezenta sectiune.

Subliniem n final complexitatea sarcinii de a calcula forma canonica Jordan,


dependenta critica a structurii obtinute de delicate decizii de rang ce trebuie luate la
pasul 4, precum si posibile conditionari nesatisfacatoare sau instabilitati numerice
n rezolvarea ecuatiilor matriceale Sylvester din pasul 3, mai ales n situatia n
care separarea valorilor proprii considerate distincte este insuficienta. De aceea,
n aplicatiile de calcul numeric, se evita utilizarea formei canonice Jordan. Asa
cum s-a precizat, din fericire, forma Schur, mult mai robusta, este suficienta pentru
rezolvarea practic a tuturor problemelor de interes aplicativ.

4.8

Algoritmul QR simetric

Matricele reale simetrice A = AT IRnn apar n numeroase aplicatii specifice. In


particular, problema generala a celor mai mici patrate presupune rezolvarea (mai
mult sau mai putin explicita a) sistemului normal de ecuatii a carui matrice este
simetrica. Mai mult, cazul simetric este important pentru calculul valorilor singulare
ale unei matrice, problema ce apare n toate aplicatiile ce fac apel la conceptul de
rang matriceal.
Din punct de vedere procedural, exploatarea simetriei n determinarea valorilor
si vectorilor proprii conduce la dezvoltari elegante si la importante simplificari ale
calculelor. Algoritmul QR simetric ramane un instrument fundamental pentru
calculul ntregului spectru al unei matrice simetrice. Totusi, spre deosebire de cazul
general, n care algoritmul QR nu are rival, n cazul simetric, n situatii specifice,
exista solutii alternative viabile, cele mai importante fiind prezentate n 4.9.
Sursa importantelor facilitati de calcul care apar n cazul simetric se afla n
rezultatul fundamental dat de teorema 4.2 47 , conform careia orice matrice simetrica
A IRnn este ortogonal diagonalizabila, i.e. exista o matrice ortogonala Q
IRnn astfel ncat
QT AQ = = diag(1 , 2 , . . . , n ),
(4.265)
adica toate matricele simetrice reale sunt simple, au un spectru real (A) IR, iar
directiile proprii, definite de coloanele matricei Q din (4.265), sunt ortogonale doua
cate doua.
In continuare vom trece n revista principalele aspecte ale algoritmului QR simetric. Atat pentru acest algoritm, cat si pentru metodele alternative mentionate,
47 Rezultatele stabilite
n continuare pentru matricele reale simetrice r
am
an valabile, cu mici
adapt
ari, pentru matricele complexe A C
I nn hermitice. Formularea exact
a a unor rezultate
si prezentarea aspectelor algoritmice specifice fac obiectul paragrafului 4.8.5 precum si al unor
exercitii.

315

4.8. ALGORITMUL QR SIMETRIC

se obtine un spor esential de eficienta prin parcurgerea prealabila a fazei directe a algoritmului QR, i.e. reducerea matricei date la forma superior Hessenberg. Datorita
conservarii simetriei la transformarile ortogonale de asemanare, structura superior
Hessenberg obtinuta este, simultan, inferior Hessenberg, i.e. devine o structura
tridiagonala.

4.8.1

Reducerea la forma tridiagonal


a

Baza teoretica a posibilitatii de reducere la forma tridiagonala a unei matrice simetrice este data de teorema 4.14, care, n noul context, are urmatorul enunt.
Teorema 4.19 Oricare ar fi matricea simetric
a A IRnn , exist
a o matrice ortonn
gonal
a Q IR
astfel nc
at matricea
T = QT AQ

(4.266)

este tridiagonal
a, i.e. tij = 0, pentru toti i, j, cu |i j| > 1.
Demonstratie. Demonstratia se reduce la observatia de mai sus ca, n conformitate
not
cu teorema 4.14, exista o matrice ortogonala Q astfel ncat matricea T = H =
T
= Q AQ este superior Hessenberg si la faptul ca aceasta matrice este simetrica
T T = QT AT Q = QT AQ = T . Prin urmare T este, simultan, inferior Hessenberg,
i.e. este o matrice tridiagonala.
3
Pentru a elabora un algoritm performant, care sa exploateze eventualele facilitati
calculatorii induse de conservarea simetriei, reamintim schema de calcul care sta la
baza reducerii la forma Hessenberg, aceeasi cu schema de calcul pentru reducerea
la forma tridiagonala.
TQ

1. Pentru k = 1 : n 2
1. Se calculeaza un reflector elementar Uk+1 astfel ncat
(Uk+1 A)(k + 2 : n, k) = 0.
2. A (Uk+1 A)Uk+1 % Se anuleaza A(k + 2 : n, k) si, simultan,
datorita conservarii simetriei, se anuleaza
A(k, k + 2 : n).

In urma efectuarii calculelor de mai sus matricea A este suprascrisa cu matricea


A T = QT AQ = Un1 U3 U2 AU2 U3 Un1 ,

(4.267)

Q = U2 U3 . . . Un1 .

(4.268)

unde, evident,
Consideram acum pasul curent k al procesului de tridiagonalizare descris mai sus
si fie

AT

(k)

k1

nk

z}|{

z}|{

z}|{

(k)

T11

(k)
= Uk U3 U2 AU2 U3 Uk =
T21
0

(k)

T12

(k)
T22
(k)
T32

(k)
T23
(k)
T33

}k 1

}1

}n k

(4.269)

316

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(k)

matricea obtinuta dupa primii k 1 pasi, partitionata convenabil, n care T11 este
tridiagonala, simetrica, iar
(k) T

(k)

(k)

T21 = (T12 ) = [ 0 0 0 tk,k1 ].


Avand n vedere faptul ca reflectorul elementar Uk+1 are structura


Ik
0
Uk+1 =
k+1 ,
0 U
unde
k+1 = Ink
U

u
k+1 u
Tk+1
,
k+1

uk+1 IRnk ,

(4.270)

(4.271)

este un reflector elementar de ordin n k si indice 1, transformarile efectuate la


pasul k au ca efect
(k)

(k)
T11
T12
0
(k)

(k)
(k)
. (4.272)
A T (k+1) = Uk+1 T (k) Uk+1 =
T22
T23 U
k+1
T21

k+1 T (k) U
k+1 T (k) U
k+1
0
U
32
33

Cum

(k)
(k)

T23 U
k+1 = (Uk+1 T32 ) = [ 0 0 0 ],
(k)

(k)

cu = sgn(T32 (1, 1))kT32 k


tricei simetrice

48

, ramane sa efectuam n mod eficient calculul ma(k+1)

A(k + 1 : n, k + 1 : n) T33

k+1 T (k) U
k+1 .
=U
33

(4.273)

Consideram necesar sa precizam aici faptul ca performantele deosebite privind


memoria utilizata si eficienta calculatorie din cazul simetric se datoresc unei judicioase exploatari a proprietatii de simetrie. Astfel, o memorare economica a unei
matrice simetrice se face retinand numai elementele din triunghiul sau inferior sau
superior. De asemenea, cand se cunoaste faptul ca rezultatul unei procesari este
o matrice simetrica, se calculeaz
a, evident, numai elementele sale din triunghiul
inferior sau superior.
In consecinta, n (4.273) vom calcula, de exemplu, numai elementele din tri(k+1)
unghiul inferior al matricei T33 . De asemenea, tinand seama de (4.271) si notand,
pentru simplificarea scrierii,
not

u
k+1 = u
,

not

= k+1 ,

relatia (4.273) devine


(k+1)

T33
48

= (Ink

uu
T
u
u
T
(k)
) T33 (Ink
)=

Pentru calculul reflectorilor si semnificatia notatiilor utilizate, vezi capitolul 3.

317

4.8. ALGORITMUL QR SIMETRIC


(k)

(k)

= T33

uT
uu
T (k)
uu
T T33 u
u
T
(k) u
T33 T33
+
.
2

Notand

(4.274)

(k)

v=

T33 u
IRnk

(4.275)

obtinem
(k+1)

T33

(k)

= T33
uv Tv
uT+

u
uT v
uT
u
T v T
u
T v
(k)
= T33
u(v T
u
)(v
u
)
uT. (4.276)

2
2

Introducand acum notatia


w=v

u
T v
u
,
2

(4.277)

(4.276) devine
(k+1)

T33

(k)

= T33 uwT w
uT ,

(4.278)

relatie care, mpreuna cu (4.275) si (4.277), va fi folosita pentru calculul triunghiului


(k+1)
k+1 T (k) U
k+1 .
inferior al matricei A(k + 1 : n, k + 1 : n) T33
=U
33
Forma tridiagonala simetrica obtinuta constituie punctul de plecare pentru diverse tehnici iterative de calcul a valorilor proprii. De aceea, n cele ce urmeaza,
vom considera ca matricea tridiagonala A T = T T IRnn este memorata numai prin elementele sale semnificative, date de componentele vectorilor f IRn si
g IRn1 conform scrierii

f1 g1 0
0
0
g1 f2 g2
0
0

.
..
0 g2 f3
0
0

AT = .
(4.279)
.. . . . .
.. .
..
..

.
.
.
.
.

..
0 0
. fn1 gn1
0
0 0
0
0 gn1
fn
Aplicarea ideilor mentionate mai sus conduce la urmatorul algoritm.

Algoritmul 4.24 (TQ Reducerea la forma tridiagonal


a)
(Date matricea simetrica A IRnn si matricea de transformare initiala
Q IRnn , algoritmul calculeaza secventa de reflectori U2 , U3 , , Un1
astfel ncat matricea A T = Un1 U3 U2 AU2 U3 Un1 are o structura tridiagonala. Se considera ca A este data numai prin triunghiul sau
inferior n care sunt efectuate calculele curente. Algoritmul extrage vectorii f IRn si g IRn1 , conform (4.279), care definesc matricea
tridiagonala rezultata. Optional se actualizeaza matricea de transformare Q QU2 U3 Un1 . Optiunea se exprima prin intermediul unei
variabile logice opt, de tipul sir de caractere, care poate lua valorile
da sau nu. Daca nu se doreste actualizarea, matricea Q ramane
nemodificata.)

318

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1. Pentru k = 1 : n 2

k+1
1. % Calculul reflectorului elementar U
1. [ A(k + 1 : n, k), u
, ] = Hr(A(k + 1 : n, k))
2. % Calculul A (Uk+1 A)Uk+1 numai n triunghiul inferior
1. Pentru i = 1 : n k 1
1. l = k + i
A(l, k+1 : l)
u(1 : i) + A(l+1 : n, l)
u(i+1 : nk)
2. vi =

A(n, k + 1 : n) u
2. vnk =

T
u v
3. =
2
4. w = v
u
5. Pentru j = 1 : n k
1. Pentru i = j : n k
1. A(k + i, k + j) A(k + i, k + j) ui wj wi uj
3. % Acumularea transformarilor
1. Dac
a opt = da atunci
1. Q(:, k + 1 : n) = Hrd(Q(:, k + 1 : n), u
, )

2. % Extragerea vectorilor f si g
1. f1 = A(1, 1)
2. Pentru i = 1 : n 1
1. gi = A(i + 1, i)
2. fi+1 = A(i + 1, i + 1).
Comentarii.

Sintaxa de apel a algoritmului TQ va fi


[ f, g, Q ] = TQ(A, Q, opt).

Utilizarea relatiei de calcul (4.276) reduce efortul de calcul la mai putin de jumatate
n raport cu cazul nesimetric. Intr-adevar, calculul vectorilor v si w la pasul curent
2
k necesita N1 (k) (n k) flopi si, respectiv N2 (k) (n k) flopi. Cum determinarea elementelor definitorii ale reflectorilor necesita, de asemenea, N3 (k)
(n k) flopi, rezulta ca num
arul asimptotic de flopi necesari pentru calculul
tridiagonalizarii este
n2
X
2
Nop
N1 (k) n3 ,
3
k=1

fata de 53 n3 flopi necesari pentru reducerea la forma superior Hessenberg n cazul


nesimetric. Acumularea transformarilor, i.e. calculul explicit al matricei de trans
formare Q din (4.274), implica efectuarea a Nop
32 n3 flopi suplimentari 49 . Volu49 Dac
a matricea Q initial
a este In , se poate obtine o reducere a num
arului de operatii n calculul
acumul
arii transform
arilor dac
a se memoreaz
a (economic) elementele definitorii ale reflectorilor si
acumularea se face n afara ciclului principal, n ordine invers
a, cu exploatarea structurii de zerouri
a matricei Q curente.

4.8. ALGORITMUL QR SIMETRIC

319

mul de memorie este M 3n2 /2 locatii, necesar pentru memorarea elementelor


triunghiului inferior al matricei A si a elementelor matricei Q 50 .
Algoritmul TQ este numeric stabil, i.e. matricea tridiagonala calculata ntr-o
aritmetica n virgula mobila este o matrice exact ortogonal asemenea cu o matrice usor perturbata A + E, unde matricea de perturbatie E satisface conditia
kEk p(n)M kAk, cu p(n) o functie cu crestere modesta de dimensiunea n a
problemei.
3
Observatia 4.10 Spre deosebire de cazul nesimetric n care reducerea la forma
superior Hessenberg se putea face, suficient de performant, si prin transformari
de asemanare neortogonale, aici astfel de transformari altereaza simetria si, prin
urmare, nu sunt recomandate.
3

4.8.2

Faza iterativ
a a algoritmului QR simetric

Etapa iterativa a algoritmului QR simetric beneficiaza de importante simplificari


calculatorii care se datoreaza, n principal, conservarii simetriei matricei initiale la
transformari ortogonale de asemanare si constau n:
conservarea structurii tridiagonale la transformarile implicate de iteratiile
QR; n consecinta toate transformarile aferente sirului QR se pot desfasura n
locatiile de memorie ale vectorului f al elementelor diagonale si ale vectorului g al
elementelor subdiagonale ale matricei tridiagonale curente (v. (4.279));
valorile proprii ale unei matrice simetrice reale fiind reale nu sunt necesare
deplasari complexe si, prin urmare, nu este necesara strategia pasilor dubli.
Vom folosi aceste observatii n vederea elaborarii unui algoritm QR simetric cat
mai performant.
A. Algoritmul QR simetric cu deplasare explicit
a
Presupunem matricea simetrica tridiagonala T IRnn data prin vectorii f si g din
(4.279). Pentru claritatea expunerii vom utiliza si indexarea obisnuita a elementelor
matricei T urmand ca algoritmul sa fie scris exclusiv n raport cu elementele vectorilor f si g.
Algoritmul QR simetric cu deplasare explicita construieste un sir de matrice
tridiagonale, ortogonal asemenea
T = T1 , T2 , , Tk , Tk+1 ,
pe baza relatiei de recurenta


T In = QR
,
T T = RQ + In

(4.280)

(4.281)

unde T semnifica matricea curenta din sirul (4.280), iar indicele superior marcheaza matricea succesor. Deplasarea se poate alege ca n cazul nesimetric
= tnn = fn

(4.282)

50 Asigur
am cititorul c
a unele licente minore, cum este utilizarea explicit
a a doi vectori (v si
w) c
and sunt suficiente locatiile de memorie ale unuia singur, servesc exclusiv clarit
atii prezent
arii
algoritmului.

320

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

sau, si mai eficient, egala cu valoarea proprie, ntotdeauna reala, cea mai apropiata
de tnn , a blocului 2 2 din coltul din dreapta jos al matricei curente T


fn1 gn1
T (n 1 : n, n 1 : n) =
.
(4.283)
gn1
fn
Deplasarea din cea de a doua varianta, numita deplasare Wilkinson, are expresia
(verificati!)
q
1
2
2
= (fn1 + fn sgn(fn1 fn ) (fn1 fn ) + 4gn1
)
(4.284)
2
si se calculeaza economic si fiabil cu relatiile
=

fn1 fn
,
2

2
= gn1
,

= fn

p
.
+ (sgn) 2 +

(4.285)

Se poate arata [ VI ] ca, pentru oricare din deplasarile (4.282) sau (4.284), n partea
finala a procesului iterativ se obtine o convergenta cubica a sirului QR simetric
(4.280) catre o structura diagonala. Exista, totusi, unele argumente de natura
euristica n favoarea deplasarii Wilkinson.
Avandu-se n vedere structura tridiagonala a tuturor matricelor sirului QR simetric (4.280), pentru factorizarea QR din (4.281) se recomanda utilizarea rotatiilor.
Este usor de constatat ca matricea superior triunghiulara R a acestei factorizari va
avea numai doua supradiagonale nenule. Mai mult, pentru necesitatile de calcul ale
matricei succesor, conform (4.281), cea de a doua supradiagonala nici nu trebuie
calculata. In consecinta, pentru memorarea elementelor utile sunt suficienti doi
vectori de dimensiuni n si n 1 care pot fi vectorul f al elementelor diagonale ale
matricei T si un vector suplimentar pe care l notam cu h. Cu aceste precizari, un
pas simplu QR simetric cu deplasare explicit
a (fara acumularea transformarilor)
consta n efectuarea urmatoarelor calcule.
Algoritmul 4.25 (IT QRsim Un pas QR simetric cu deplasare
Wilkinson explicit
a) (Data o matrice simetrica tridiagonala ireductibila
T IRnn prin vectorul f IRn al elementelor diagonale si vectorul
g IRn1 al elementelor subdiagonale, algoritmul calculeaza vectorii
definitorii f si g ai matricei succesor din sirul QR simetric. Toate
calculele se efectueaza pe loc, n locatiile de memorie ale elementelor
vectorilor f si g. Algoritmul furnizeaza, de asemenea, vectorii c si s ale
elementelor ce definesc rotatiile utilizate.)
1. % Calculul deplasarii Wilkinson
fn1 fn
2
, = gn1
,
1. =
2
2. % T T In

1. Pentru i = 1 : n
1. fi fi

= fn

p
+ (sgn) 2 +

321

4.8. ALGORITMUL QR SIMETRIC


3. % Calculul factorizarii QR a matricei T fara calculul explicit al
matricei Q.
1. h1 = g1
2. Pentru
 i = 1 : n 1


fi
fi
1. [
, ci , si ] = Gr(
)
gi
gi
2. = hi
3. hi = ci hi si fi+1
4. fi+1 = si + ci fi+1
5. Dac
a i<n1
1. hi+1 = ci gi+1
4. % Calculul produsului RQ
1. Pentru i = 1 : n 1
1. fi = ci fi si hi
2. gi = si fi+1
3. fi+1 = ci fi+1
5. % T T + In

1. Pentru i = 1 : n
1. fi fi +

Comentarii. Pentru apelul algoritmului de implementare a unui pas QR simetric


cu deplasare explicita vom utiliza sintaxa
[ f, g, c, s ] = IT QRsim(f, g).
Matricea de transformare curenta este data de
Q = P12 P23 Pn1,n ,

(4.286)

algoritmul furnizand elementele definitorii pentru cele n 1 rotatii utilizate pentru


o eventuala acumulare a transformarilor (care se face numai n caz de necesitate).
In forma de mai sus, executia unui pas QR simetric cu deplasare explicita necesita
un numar Nop 20n flopi la care se adauga n 1 extrageri de radical.
3
Exemplul 4.6 Consideram matricea tridiagonala simetrica

1 1 0
T = 1 2 1
0 1 1

definita de vectorii f = [ 1 2 1 ]T si g = [ 1 1 ]T si avand valorile proprii exacte


(T ) = { 0, 1, 3 }. Iterarea bruta (i.e. fara supravegherea si anularea elementelor
neglijabile) a algoritmului IT QRsim conduce la evolutia elementelor vectorilor
g si f prezentata n tabelele 4.7 si 4.8. Se confirma anularea rapida a ultimului

322

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

(k)

(k)

g1

0
1
2
3
4
5
6
7
..
.
10
..
.
15
..
.
25

g2

1.00000000000000
0.85065080835204
0.25379174838439
0.08564664424607
0.02859558021545
0.00953359280112
0.00317792845516
0.00105931186244
..
.
0.00003923378367
..
.
0.00000016145590
..
.
0.00000000000273

1.00000000000000
0.52573111211913
0.06711070517530
0.00000629541717
0.00000000000000
0.00000000000000
0.00000000000000
0
..
.
0
..
.
0
..
.
0

Tabelul 4.7: Date numerice privind evolutia elementelor vectorului g din exemplul
4.5.

k
0
1
2
3
4
5
..
.
10
..
.
15
16
..
.
25

(k)

f1

1.00000000000000
2.61803398874990
2.96739091997935
2.99632557546692
2.99959106278125
2.99995455427149
..
.
2.99999999923036
..
.
2.99999999999999
3.00000000000000
..
.
3.00000000000000

(k)

f2

2.00000000000000
1.00000000000000
1.02821618974253
1.00367442449350
1.00040893721875
1.00004544572851
..
.
1.00000000076964
..
.
1.00000000000001
1.00000000000000
..
.
1.00000000000000

(k)

f3

1.00000000000000
0.38196601125011
0.00447471825954
0.00000000003958
0.00000000000000
0.00000000000000
..
.
0.00000000000000
..
.
0.00000000000000
0.00000000000000
..
.
0.00000000000000

Tabelul 4.8: Date numerice privind evolutia elementelor vectorului f din exemplul
4.5.

323

4.8. ALGORITMUL QR SIMETRIC

element al vectorului g (convergenta cubica!) si evolutia ntregii matrice T catre o


structura diagonala.
3
La fel ca si n cazul nesimetric, diminuarea modulului elementelor vectorului g
are loc are loc mai rapid la cele doua capete (cel mai rapid n zona terminala,
vezi tabelul 4.7). In cadrul unui algoritm global, iterarea schemei de calcul de mai
sus se completeaza cu anularea efectiva a elementelor extradiagonale ale matricei
curente T , i.e. ale vectorului g, atunci cand acestea devin inferioare, n modul, unei
tolerante precizate. Prin urmare, pasul QR simetric de mai sus se ajusteaza la
dimensiunea curenta a problemei, pe masura ce se pun n evidenta valorile proprii
calculate. O modalitate concret
a de gestionare a valorilor proprii calculate va fi
prezentata n cadrul algoritmului QR simetric cu deplasare implicita. Un algoritm
de calcul, bazat pe iterarea pasului QR simetric de mai sus, se termina, evident, n
momentul n care toate elementele vectorului g au fost declarate nule.
B. Un pas QR simetric cu deplasare implicit
a
Consideram important sa subliniem de la nceput faptul ca, spre deosebire de cazul
real nesimetric, aici utilizarea variantei cu deplasare implicita nu aduce un spor de
eficienta fata de varianta cu deplasare explicita, astfel ncat preferinta pentru deplasarea implicita poate fi justificata numai prin dorinta asigurarii unei omogenitati
a tratarii tuturor problemelor de calcul al valorilor proprii ale matricelor reale.
Varianta cu deplasare implicita a algoritmului QR simetric are la baza teorema
4.15 conform careia transformarea ortogonala de asemanare definita de un pas QR
simetric cu deplasare explicita pentru o matrice tridiagonala ireductibila (i.e. cu
toate elementele subdiagonale nenule)
T T = QT T Q

(4.287)

este esential determinata, n sensul observatiei 4.6, de prima coloana a matricei


de transformare Q. Similar cazului deplasarii explicite, vom considera matricea
ortogonala de transformare Q sub forma secventei de rotatii plane (4.286). Intrucat
Pj,j+1 e1 = e1 , j = 2 : n 1, prima coloana a matricei Q este prima coloana a
matricei P12 , i.e.

c1
s1

(4.288)
q1 = Qe1 = P12 e1 = 0 .
..
.
0

La fel ca n cazul nesimetric, un pas QR simetric cu deplasare implicita va consta


din urmatoarele transformari.
1. Se calculeaza prima coloana q1 a matricei de transformare Q din
pasul QR simetric cu deplasare explicita.
2. Se determina rotatia P12 ce satisface (4.288).
T
3. Se calculeaza matricea T P12
T P12 n care este alterat
a structura
tridiagonal
a n pozitiile (3, 1) si (1, 3) dar se conserva simetria.

324

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
4. Se reface structura tridiagonala prin transformari ortogonale de
asemanare utilizand o secventa de rotatii plane (o adaptare a algoritmului de tridiagonalizare TQ).

In acest fel, se obtine o matrice succesor ortogonal asemenea cu matricea initiala,


tridiagonala, simetrica si cu prima coloana a matricei de transformare identica cu
prima coloana a matricei de transformare din cadrul pasului QR simetric cu deplasare explicita. Asa cum am mentionat mai sus, conform teoremei 4.15, daca
matricea T este ireductibila, i.e. vectorul g are toate elementele nenule, atunci matricea succesor T T este aceeasi (v. obs. 4.6) cu matricea succesor din cadrul
pasului QR cu deplasare explicita.
Pentru a scrie efectiv algoritmul, vom aduce unele precizari privitoare la punctele
din schema de calcul de mai sus.
1. Daca vectorul g are toate elementele nenule, atunci deplasarea data de
relatia (4.284) nu este valoare proprie a lui T (demonstrati!) si, prin urmare, matricea T In si matricea superior triunghiulara R din (4.281) sunt nesingulare. In
consecinta, din egalarea primelor coloane ale primei relatii din (4.281), obtinem

t11
f1
t21
g1

1
1

0
0
q1 =
(4.289)

.
r11

r11
..
..

.
.
0
0
Numim, si aici, vectorul

w=

f1
g1

IR2

(4.290)

vector de deplasare implicit


a aferent unui pas simplu QR simetric.
2. Din (4.288) si (4.290) rezulta ca elementele definitorii c1 si s1 ale rotatiei P12
pot fi furnizate de functia Gr (vezi tabelul 4.3) aplicata vectorului w.
T
T
3. Se vede imediat ca (P12
T P12 )(3, 1) = (P12
T P12 )(1, 3) = s1 g2 6= 0, i.e.
aplicarea transformarii ortogonale definite de P12 altereaza structura tridiagonala
a matricei T n pozitiile mentionate.
4. Pentru refacerea structurii tridiagonale - un invariant al sirului QR simetric
- se aplica algoritmul TQ adaptat corespunzator pentru asigurarea unei eficiente
maxime. Concret, se utilizeaza o secventa de rotatii care elimina elementele nenule
din afara structurii tridiagonale prin deplasarea lor de-a lungul unor trasee paralele
cu diagonala principala conform urmatoarei scheme de calcul.
1. Pentru k = 2 : n 1
T
1. Se calculeaza rotatia Pk,k+1 astfel ncat (Pk,k+1
T )(k + 1, k 1) = 0.
T
2. T Pk,k+1 T % Se anuleaza elementul (k+1, k1) si se altereaza
(pentru k < n1) zeroul din pozitia (k, k+2).
3. T T Pk,k+1 % Se anuleaza automat (datorita simetriei) elementul (k 1, k + 1) si se altereaza (pentru k < n1)
zeroul din pozitia (k+2, k).

325

4.8. ALGORITMUL QR SIMETRIC

Pentru exemplificare prezent


am evolutia structurala a matricei T n cazul
n = 5. La fel ca n diagramele structurale precedente, si aici semnul + marcheaza
elementul nul alterat iar elementul anulat la pasul curent. Incadrarile indica
liniile sau coloanele afectate la pasul curent.

+ 0 0

0 0

0 0
0 0

T
0
T P12 T = 0 0 , T T P12 = +


0 0 ,
0 0
0 0
0
0 0 0

T
T P23
T =

0 0
0 0

0 0

0
0

0 0 0
0

T
T P34
T = 0 +

T
T P45
T =

0 0

0
0

0
0

0
0

0
0

T T P23

T T P34

T T P45

0
0
0

0 0




+
0 0

0
0
0

0
0

0
0
0

0


0
0 0

0 0



+
0
0

0
0

0
0

Calculul elementelor definitorii ck si sk ale rotatiei Pk,k+1 se face cu procedura


T
Gr (v. tabelul 4.3), iar pentru calculul economic al produselor Pk,k+1
T si
T Pk,k+1
se renunta la utilizarea procedurilor Grs si Grd pentru a exploata eficient structura
tridiagonala si simetria matricei T .
Cu aceste precizari putem prezenta algoritmul de implementare al unui pas QR
simetric cu deplasare Wilkinson implicita.
Algoritmul 4.26 (IT QRsim Un pas QR simetric cu deplasare
Wilkinson implicit
a) (Data o matrice simetrica tridiagonala ireductibila
T IRnn prin vectorul f IRn al elementelor diagonale si vectorul
g IRn1 al elementelor subdiagonale, algoritmul calculeaza vectorii
definitorii f si g ai matricei succesor din sirul QR simetric. Toate
calculele se efectueaza pe loc, n locatiile de memorie ale elementelor
vectorilor f si g. Pentru elementul ratacitor, care afecteaza temporar
structura tridiagonala se utilizeaza o variabila scalara locala . Algoritmul furnizeaza, de asemenea, vectorii c si s ale caror elemente definesc
rotatiile utilizate.)

326

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1. % Calculul deplasarii Wilkinson
fn1 fn
2
1. =
, = gn1
,
2

= fn

p
+ (sgn) 2 +

2. % Calculul si aplicarea rotatiilor P12 si Pk,k+1 , k = 2 : n 1.


1. Pentru k = 1 : n 1
1. Dac
a k = 1 atunci
1. w = [ f1 g1 ]T
2. [ w, c1 , s1 ] = Gr(w)
altfel




gk1
gk1
1. [
, ck , sk ] = Gr(
)

2.
3.
4.
5.
6.
7.

1 = c2k , 2 = ck sk , 3 = s2k
= 22 gk
1 = 1 fk + 3 f2 , 2 = 2 (fk fk+1 ) + (1 3 )gk
fk+1 = 1 fk+1 + 3 fk +
fk = 1 , gk = 2
Dac
a k < n 1 atunci
1. = sk gk+1 % elementul ratacitor
2. gk+1 = ck gk+1

Comentarii.
Avand n vedere echivalenta performantelor algoritmilor, cu deplasare explicita si implicita, de implementare a unui pas QR simetric, utilizam
aceeasi sintaxa de apel, i.e.
[ f, g, c, s ] = IT QRsim(f, g).
Complexitatea unei iteratii QR simetrice cu deplasare implicita este O(n), pentru
executia algoritmului 4.26 fiind necesari Nop 20n flopi, la care se adauga cele
n 1 extrageri de radical. Si aici, algoritmul ofera, prin vectorii c si s, informatia
necesara pentru o eventuala actualizare a matricei de transformare.
3
Exemplul 4.7 Invitam cititorul sa reia datele de intrare din exemplul precedent si
sa itereze pasul QR simetric cu deplasare implicita de mai sus. Va avea satisfactia
sa constate ca elementele calculate ale vectorului g coincid n primele 15 cifre semnificative, iar cele ale vectorului f n primele 14 cifre semnificative cu cele produse
de iterarea pasului QR cu deplasare explicita.
3
C. Algoritmul QR simetric pentru matrice reale simetrice
Algoritmul QR simetric se obtine prin iterarea algoritmului 4.26, anularea efectiva
a elementelor nediagonale devenite neglijabile si exploatarea structurala a acestor
anulari n vederea obtinerii unei eficiente maxime. Pentru deciziile de anulare efectiva a elementelor extradiagonale si monitorizarea evolutiei structurale a matricelor

327

4.8. ALGORITMUL QR SIMETRIC

tridiagonale din sirul QR simetric vom urma ideile folosite la algoritmul QR nesimetric. Astfel, conditia de anulare a elementelor extradiagonale, i.e. a elementelor
vectorului g, este
|gk | tol(|fk | + |fk+1 |),
(4.291)
unde scalarul real tol defineste nivelul de toleranta si are, uzual, un ordin de marime
comparabil cu eroarea de reprezentare din formatul virgula mobila al masinii tinta.
De asemenea, pentru gestionarea evolutiei structurale, la fiecare iteratie, dupa anularea elementelor vectorului g care satisfac conditia (4.291), se va determina cel mai
mic ntreg p si cel mai mare ntreg q astfel ncat matricea tridiagonala curenta din
sirul QR simetric sa aiba structura

T11
0
0
(4.292)
T = 0 T22
0 ,
0
0 T33

cu T11 IRpp , T22 IR(npq)(npq) tridiagonala ireductibil


a si T33 IRqq
diagonal
a, i.e. g(p+1 : nq) are toate elementele nenule, iar g(nq +1 : n1) = 0.
In acest fel, iteratia QR se va aplica de fapt blocului T22

T22 T22
= QT22 T22 Q22 ,

(4.293)

echivalenta cu aplicarea transformarii (4.287) cu


Q = diag(Ip , Q22 , Iq ).

(4.294)

Algoritmul QR simetric se termin


a n momentul n care se anuleaza toate elementele
vectorului g, i.e. q devine n1. Cu precizarile de mai sus, putem prezenta algoritmul
QR simetric.
Algoritmul 4.27 (QRsim Algoritmul QR simetric cu deplas
ari
Wilkinson implicite) (Date o matrice simetrica A IRnn , o matrice
ortogonala Q IRnn si un nivel de toleranta tol pentru anularea elementelor extradiagonale, algoritmul calculeaza vectorul f IRn al valorilor proprii ale matricei A si, optional, actualizeaza matricea de transformare ortogonala Q. Optiunea se exprima prin intermediul variabilei
logice opt care poate lua valorile da sau nu. Daca nu se doreste
acumularea transformarilor, matricea Q se returneaza nemodificata.)
1. % Reducerea la forma tridiagonala
1. [ f, g, Q ] =TQ(A, Q)
2. % Faza iterativa
1. p = 0, q = 0
2. C^
at timp q < n
1. % Anularea elementelor neglijabile
Pentru i = p + 1 : n q 1
1. Dac
a |gi | tol(|fi | + |fi+1 | atunci gi = 0

328

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
2. % Determinarea lui q
C^
at timp gnq1 = 0
1. q q + 1
3. % Terminarea algoritmului
Dac
a q = n 1 atunci return
4. % Determinarea lui p
1. p = n q 1
2. C^
at timp gp 6= 0
1. p p 1
5. [f (p + 1 : n q), g(p + 1 : n q 1), c, s] =
=IT QRsim(f (p + 1 : n q), g(p + 1 : n q 1))
6. Dac
a opt=da atunci
1. Pentru i = 1 : n p q
1. Q(:, p + i : p + i + 1) = Grd(Q(:, p + i : p + i + 1), ci, si )

Comentarii.

Sintaxa de apel a algoritmului QR simetric este


[ f, Q ] = QRsim(A, Q, tol, opt).

Algoritmul QR simetric reprezinta cel mai bun instrument numeric de calcul al


ntregului spectru al unei matrice simetrice reale. Daca nu se acumuleaza transformarile, algoritmul este foarte rapid, numarul de flopi necesar pentru calculul
tuturor valorilor proprii fiind estimat, n medie, la Nop = 4n3 /3 fara acumularea transformarilor si la Nop = 9n3 daca transformarile se acumuleaza. Pentru o toleranta de ordinul M valorile proprii calculate sunt valori proprii exacte pentru o matrice simetrica foarte apropiata, algoritmul avand o buna stabilitate numerica. Mai mult, spre deosebire de cazul nesimetric, aici se poate
afirma ca eroarea absoluta pentru fiecare valoare proprie calculata este mica, i.e.
|i fi | tolkAk2 . Daca se doreste calculul vectorilor proprii, atunci se utilizeaza
apelul [ f, Q ] = QRsim(A, In , tol, da ). In aceasta situatie xj = Q( : , j) este un
vector propriu calculat asociat valorii proprii j fj . Acuratetea vectorului propriu
calculat este dependenta de separarea valorii proprii asociate de restul spectrului.
Algoritmul asigura o foarte buna ortogonalitate a vectorilor proprii calculati. Pentru detalii suplimentare asupra stabilitatii numerice a se vedea 4.11.
3

4.8.3

Algoritmul QR pentru matrice hermitice

Fie C = A + iB cu A, B IRnn o matrice hermitica, i.e. C H = C, ceea ce


implica simetria matricei A si antisimetria matricei B. Deci AT = A si B T = B.
Asa cum s-a aratat n sectiunea 4.1 matricele hermitice au spectrul real si sunt
unitar diagonalizabile. Pentru calculul valorilor proprii ale unei matrice hermitice
cu algoritmul QR, n practica numerica se ntalnesc doua abordari.
I. Fie (C) si x = u + iv, cu u, v IRn , un vector propriu asociat. Atunci

Au Bv = u,
Cx = x
(4.295)
Bu + Av = v,

4.9. METODE ALTERNATIVE

329

egalitatile din dreapta scriindu-se compact n forma












A B
u
u
A B
v
v
=
sau
=
. (4.296)
B
A
v
v
B
A
u
u


u
v

v
u

, fiind ortogonali, sunt liniar independenti. In consecinta,




A B
def
daca (C) = { 1 , 2 , . . . , n }, atunci matricea simetrica reala F =
B
A
are spectrul (F ) = { 1 , 1 , 2 , 2 , . . . , n , n }, iar daca w IR2n este un vector
propriu al matricei F asociat valorii proprii k , atunci x = w(1 : n) + iw(n + 1 : 2n)
sau y = w(n + 1 : 2n) + iw(1 : n) este un vector propriu 51 al matricei C asociat
aceleiasi valori proprii.
Din cele de mai sus rezulta esenta calculatorie a primei abordari care consta n
aplicarea algoritmului QR simetric matricei F . Utilizarea exclusiva a aritmeticii
reale face aceasta solutie deosebit de atractiva. Scrierea algoritmului este imediata
si este lasata n sarcina cititorului.
Vectorii

si

II. Cea de a doua modalitate de calcul al valorilor proprii ale unei matrice hermitice utilizata n practica numerica (de exemplu, n LAPACK [ XV ]) utilizeaza
o aritmetica n numere complexe numai n faza directa a algoritmului QR, i.e.
n faza de reducere la forma tridiagonala. Este posibil ca matricea tridiagonala
rezultata sa fie real
a astfel ncat faza iterativa apeleaza exclusiv la o aritmetica
reala, procedurile utilizate n faza iterativa fiind cele descrise n aceasta sectiune.
Posibilitatea obtinerii, prin transformari unitare de asemanare a unei matrice tridiagonale reale este conditionata de utilizarea unor reflectori complecsi nehermitici
(v. cap. 3). Intr-adevar, dat un vector complex x C
I n se poate calcula un astfel
nn
H

de reflector U1 C
I
care sa asigure U1 x = e1 cu un numar real. Notand
Ik1
0
def

cu Uk =
I (nk+1)(nk+1) este un reflector de tipul
1 , unde U1 C
0
U
mentionat, daca U2 este astfel calculat ncat (U2H C)(3 : n, 1) = 0, atunci matricea C C1 = U2H CU2 este hermitica si tridiagonala n prima linie si prima
coloana. Cum o matrice hermitic
a are elementele diagonale reale, rezulta ca blocul
C1 (1 : 2, 1 : 2) este real. Continuand acest proces, n final matricea
H
C Cn2 = Un1
. . . U3H U2H CU2 U3 . . . Un1

(4.297)

va fi tridiagonala, simetrica si reala. Scrierea efectiva a algoritmului face obiectul


exercitiului 4.58.

4.9

Alte metode de calcul al valorilor proprii


pentru matrice simetrice

Algoritmul QR simetric ramane un instrument fundamental pentru calculul ntregului spectru al unei matrice simetrice. Totusi, spre deosebire de cazul general,
51

De observat c
a y = ix, i.e. vectorii x si y sunt coliniari n C
I n.

330

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

nesimetric, n care algoritmul QR s-a impus definitiv ca fiind fara rival, n cazul
simetric exista solutii alternative, cu performante comparabile cu cele ale algoritmului QR. Utilizarea tehnicilor alternative este recomandata mai ales n situatii
particulare. Mentionam, n acest sens, problemele de calcul al unui grup restrans
de valori proprii sau implementari pe masini cu arhitecturi specifice, e.g. calculatoarele paralele cu memorie distribuita.
Vom prezenta mai ntai unele tehnici de calcul al unei valori proprii sau al
unui grup redus de valori proprii, cum sunt iterarea catului Rayleigh sau metoda
bisectiei, iar apoi metodele de tip Jacobi, consacrate calculului ntregului spectru.
Pentru metodele ale caror iteratii conserva structura tridiagonala simetrica, vom
presupune parcursa etapa direct
a, de reducere la forma tridiagonala cu ajutorul
algoritmului TQ. In consecinta, n aceste situatii, matricea tridiagonala simetrica
T IRnn se va considera data prin vectorul f IRn al elementelor diagonale si
vectorul g IRn1 al elementelor sub- si supradiagonale.

4.9.1

Metoda c
atului Rayleigh

Asa cum s-a vazut la metoda puterii inverse, de calcul iterativ al unui vector propriu
(vezi sectiunea 4.3), fiind cunoscut
a aproximatia x 6= 0 a vectorului propriu x asociat
valorii proprii a unei matrice T IRnn , c
atul Rayleigh al vectorului x
n raport
cu matricea T , definit prin
x
T T x

= r(
x) = T ,
(4.298)
x
x
constituie cea mai buna aproximatie, n sens CMMP, a valorii proprii . Aplicand
acum un pas al metodei puterii inverse cu deplasarea , obtinem o aproximatie si mai
buna pentru vectorul propriu asociat lui si, pe baza catului Rayleigh din (4.298),
o aproximatie superioara pentru nsusi . Altfel spus, adaptand algoritmul 4.2, de
implementare a metodei puterii inverse cu deplasare Rayleigh, la cazul matricelor
simetrice se obtine un mijloc performant de calcul al unei valori proprii (n general,
fara posibilitati de selectie a acesteia) si al unui vector propriu asociat. Invitam
cititorul sa faca aceasta adaptare prin exploatarea simetriei n rezolvarea sistemului
liniar ce defineste o iteratie a metodei puterii inverse. Precizam ca o prealabila
reducere la forma tridiagonala nu se justifica decat daca se urmareste calculul,
pe aceasta cale, al mai multor valori si vectori proprii. In [ VI ] se afirma (si se
demonstreaza ntr-un caz particular) convergenta globala si asimptotic cubic
a (i.e.
extrem de rapida) a algoritmului si se evidentiaza conexiunea cu algoritmul QR
simetric care, ntr-o forma implicita, uzeaza de aceasta tehnica.

4.9.2

Metoda bisectiei

Metoda bisectiei (sau metoda Givens [ IV ]) este utilizata pentru determinarea unei
valori proprii sau a unui grup relativ redus de valori proprii 52 .
Fie matricea tridiagonala simetrica T IRnn definita prin vectorul f IRn
al elementelor diagonale si vectorul g IRn1 al elementelor extradiagonale. Pre52 Se apreciaz
a c
a metoda poate fi considerat
a eficient
a pentru determinarea a cel mult 40% din
valorile proprii ale unei matrice.

331

4.9. METODE ALTERNATIVE

supunem, de asemenea, ca toate elementele vectorului g sunt nenule 53 . In esenta,


pentru calculul unei valori proprii, metoda bisectiei consta n localizarea acesteia
ntr-un interval [ , ] si reducerea acestui interval, prin njumatatire succesiva, cu
pastrarea valorii proprii n interval. In acest fel, dupa t njumatatiri lungimea inter
valului devine =
si, n consecinta, ntr-o aritmetica exacta, se poate obtine
2t
orice precizie dorita.
Pentru determinarea intervalului initial [ , ] putem utiliza teorema discurilor
lui Gershgorin, de localizare a ntregului spectru, conform careia (T ) este situat
n reuniunea intervalelor
I=

n
[


i=1

IR

| fi | |gi1 | + |gi |

(4.299)

unde, pentru simplificarea scrierii, am introdus numerele g0 = 0 si gn = 0. Evident,


avem

=
min (fi |gi1 | |gi |),

i1:n
I [ , ], unde
(4.300)
=
max (fi + |gi1 | + |gi |).

i1:n

In continuare, intervalul [ , ], cu si din (4.300), va servi drept initializare


pentru orice demers de calcul al valorilor proprii prin metoda bisectiei. Lasand cititorului sarcina codificarii relatiei (4.300), de calcul a scalarilor si , ne marginim
sa precizam sintaxa de apel a procedurii respective
[ , ] = Int(f, g).
Prezentam, n continuare, cateva rezultate care ne vor permite sa decidem daca
o valoare proprie sau un grup de valori proprii se afla sau nu se afla situate ntr-un
def
interval dat. Fie T [k] = T (1 : k, 1 : k) submatricea lider principala de ordinul k a
def

def

matricei T definita, evident, de vectorii f [k] = f (1 : k) si g [k1] = g(1 : k 1).


Definim polinoamele
p0 () = 1,
p1 () = det(T [1] I1 ) = f1 ,
pk () = det(T [k] Ik ),

(4.301)

k=2:n

((1) pk () sunt polinoamele caracteristice ale submatricelor T [k] ).


Pentru k > 2 avem

..
T [k1] Ik1

=
pk () = det
gk1

0 gk1
fk
53

Altfel, problema se sparge n dou


a sau mai multe probleme de dimensiune mai mic
a.

332

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

T [k2] Ik2

= det

0 gk2
0
0

0
..
.

0
..
.

gk2

fk1 gk1
gk1
fk

(4.302)

relatie din care, prin dezvoltare dupa elementele ultimei linii sau ultimei coloane,
obtinem
2
pk () = (fk )pk1 () gk1
pk2 ().
(4.303)

Relatia (4.303), mpreuna cu initializarile p0 () = 1, p1 () = f1 din (4.301),


permit calculul recurent al polinoamelor pk (), k = 2 : n, si, pentru o valoare fixata
a lui , valorile acestor polinoame n punctul . Polinoamele pk (), k = 0 : n, definite
mai sus, formeaza asa numitul sir Sturm asociat matricei tridiagonale simetrice
ireductibile T .
[k]
Notam cu i , i = 1 : k, valorile proprii ale matricei T [k] (care sunt, simultan,
zerourile polinoamelor pk ()) pe care le vom presupune ordonate crescator, i.e. 54
[k]

[k]

[k]

1 < 2 < . . . < k .

(4.304)

Metoda bisectiei are la baza urmatoarele rezultate clasice.


Teorema 4.20 Dac
a vectorul g are toate elementele nenule, i.e. matricea tridiagonal
a, simetric
a T , definit
a de vectorii f si g, este ireductibila, atunci valorile
proprii ale matricei T [k1] separ
a strict valorile proprii ale matricei T [k] , i.e.
[k]

[k1]

1 < 1

[k]

[k1]

< 2 < 2

[k]

[k1]

[k]

< . . . < k1 < k1 < k

(4.305)

pentru toti k 2 : n.
Demonstratie.
Conform teoremei 4.5 inegalitatile (4.305) au loc ntr-o forma
nestricta. Vom arata ca, n conditiile teoremei, egalitatile nu pot avea loc. Pre[k]
[k1] def
[k1]
supunem, prin absurd, ca exista i astfel ncat i = i
= sau i
=
[k] def

= i+1 = . In ambele cazuri polinoamele pk si pk1 au pe radacina comuna.


Cum toti gj sunt nenuli, din relatiile de recurenta (4.303) rezulta pk () = pk1 () =
= . . . = p1 () = p0 () = 0 ceea ce este n contradictie cu faptul ca p0 () = 1. 3
Teorema 4.21 Num
arul valorilor proprii ale matricei tridiagonale, simetrice, ireductibile T IRnn , mai mici dec
at un num
ar fixat IR este egal cu num
arul
() al schimb
arilor de semn din multimea numeric
a ordonat
a 55
p() = { p0 (), p1 (), . . . , pn () },

(4.306)

unde pk (), k = 0 : n, este sirul Sturm asociat matricei T .


54 O matrice tridiagonal
a simetric
a ireductibil
a nu are valori proprii multiple (exercitiul 4.63).
Evident, dac
a T este ireductibil
a, atunci toate submatricele T [k] sunt ireductibile.
55
In cazurile n care unele din elementele multimii sunt nule (fapt putin probabil n calculele
efectuate ntr-o aritmetic
a aproximativ
a), convenim c
a o pereche ordonat
a (, ) se consider
a
schimbare de semn dac
a 6= 0, = 0 si nu se consider
a schimbare de semn dac
a = 0, 6= 0.
Intr-un astfel de caz () este num
arul de valori proprii mai mici sau egale cu . Dou
a zerouri
consecutive n secventa numeric
a p() nu sunt posibile.

333

4.9. METODE ALTERNATIVE

Demonstratie. Vom considera numai cazul generic n care toti pk () sunt nenuli,
lasand n sarcina cititorului sa analizeze cazurile n care unele valori pk () sunt
nule. Pentru demonstratie vom utiliza inductia dupa n. Fie n () numarul valorilor
proprii mai mici decat si n () numarul schimbarilor de semn din sirul (4.306).
def
Se verifica imediat ca 1 () = 1 (). Presupunem ca k1 () = k1 () = l. In
ipoteza ordonarii crescatoare a valorilor proprii ale submatricelor T [k] rezulta ca
[k1]
[k1]
este situat n intervalul deschis (l
, l+1 ). Acum, datorita separarii stricte a
[k]
valorilor proprii ale submatricei T de catre valorile proprii ale lui T [k1] (teorema
4.20), sunt posibile urmatoarele doua situatii
[k]

[k]

a) (l , l+1 )

sau

[k]

[k]

b) (l+1 , l+2 ).

(4.307)

In cazul a) avem k () = l, iar n cazul b), evident, k () = l + 1. Ramane sa


aratam ca n cazul a) perechea (pk1 (), pk ()) nu este schimbare de semn, iar n
cazul b) este schimbare de semn. Conform (4.301) putem scrie
pk1 () =

k1
Y

[k1]

(i

i=1

),

pk () =

k
Y

[k]

(i ).

(4.308)

i=1

Avand n vedere situarea lui n raport cu valorile proprii ale celor doua submatrice,
[k1]
[k]
este evident faptul ca sgn(i
) = sgn(i ) pentru i = 1 : l precum si
[k1]
[k]
faptul ca sgn(i
) = sgn(i+1 ) pentru i = l + 1 : k 1. Rezulta
sgn(pk ()) = sgn(pk1 ()) sgn(l+1 ),

(4.309)

de unde obtinem, evident, situatia necesara a semnelor n cazurile a) si b). Inductia


este completa.
3
Exemplul 4.8 Consideram matricea tridiagonala T , de ordinul 3, din exemplele
numerice 4.6 si 4.7, definita de vectorii f = [ 1 2 1 ]T si f = [ 1 1 ]T . Spectrul
matricei T este (T ) = { 0, 1, 3 }, iar sirul Sturm asociat
p0 () = 1,

p1 () = + 1,

p2 () = 2 3 + 1,

p3 () = 3 + 42 3.

Valorile
proprii
ale submatricelor
lider principale sunt (T [1] ) = { 1 } si (T [2] ) =



3 5
3+ 5
, verificandu-se imediat sirurile de inegalitati din (4.305).
=
,
2
2
Avem, de asemenea,
p(1) = { 1, 0, 1, 0 },

p(2) = { 1, 1, 2, 1 },

i.e. fiecare din multimile p(1) si p(2) are cate doua schimbari de semn care corespund
cu numerele de valori proprii ale matricei T mai mici sau egale cu 1, respectiv mai
mici decat 2.
3
Utilizarea teoremei 4.21 ridica probleme dificile n practica [ X ] datorita frecventelor depasiri inferioare si superioare n format virgula mobila de catre valorile pk ()
pentru k apropiati de n, chiar pentru un ordin n modest. Acest fenomen apare mai

334

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

ales cand matricea are valori proprii apropiate si nu poate fi evitat printr-o scalare
prealabila a matricei T initiale.
Pentru depasirea acestor dificultati, n [ X ] se recomanda utilizarea multimii
numerice
q() = { q1 (), q1 (), . . . , qn () },

unde

qi () =

pi ()
,
pi1 ()

i = 1 : n, (4.310)

ale carei elemente pot fi calculate cu relatia recurenta


qi () = fk

2
gi1
,
qi1 ()

q1 () = f1 .

i = 2 : n,

(4.311)

Pentru situatiile n care qk1 = 0 (sau, n general, cand apar depasiri inferioare) se
recomanda calculul lui qk () cu formula
qi () = fi

|gi1 |
,
M

(4.312)

unde M este epsilon masina al calculatorului utilizat.


Evident, numarul de schimbari de semn al multimii p() din (4.306) si, simultan,
numarul () al valorilor proprii ale matricei T mai mici decat , este egal cu
num
arul de elemente negative al multimii q(). Mai mult, numarul [,] al valorilor
proprii ale matricei T situate n intervalul [ , ], este dat de relatia
[,] = () ().

(4.313)

Calculul lui () pentru un numar dat se face cu urmatoarea procedura.


()

1.
2.
3.
4.

=0
q = f1
Dac
a q < 0 atunci = 1
Pentru i = 2 : n
1. Dac
a |q| > M atunci q fi
|gi1 |
M
2. Dac
a q < 0 atunci + 1

2
gi1
q

altfel q fi

In continuare, vom utiliza procedura de mai sus cu sintaxa de apel


= (f, g, ).
Vom considera acum problema determinarii unei singure valori proprii, mai
precis a valorii proprii k , k 1 : n, din spectrul matricei T , presupus ordonat
crescator, respectiv
1 < 2 < . . . < k < . . . < n ,
(4.314)
unde egalitatile nu sunt posibile ntrucat T este ireductibila (vezi exercitiul 4.63).
Metoda bisectiei pentru calculul valorii proprii k poate fi rezumata prin urmatoarea
schema de calcul.

4.9. METODE ALTERNATIVE

BISECT k

335

1. [ , ] = Int(f, g)
2. C^
at timp > tol
+
1. =
2
2. = (f, g, )
3. Dac
a < k atunci
altfel
3. k =

Este usor de verificat faptul ca aceasta procedura evalueaza corect, n limitele fixate
de toleranta tol, valoarea proprie k din (4.314).
Pentru localizarea si calculul unui grup contiguu de valori proprii ale matricei
T din secventa (4.314), fie acesta k1 , k1 +1 , . . . , k2 , k2 k1 , se aplica, n esenta,
de k2 k1 + 1 ori procedura de mai sus, cu unele amendamente care conduc la
obtinerea unui spor de eficienta. Aceste amendamente urmaresc exploatarea intensiva a informatiei obtinute n procesul iterativ de localizare a valorii proprii curente
pentru reducerea intervalelor de separare a valorilor proprii care se calculeaza ulterior. Concret, vom realiza o actualizare, la fiecare iteratie, a extremitatilor inferioare
ale intervalelor de localizare a valorilor proprii i , i = k1 : k2 . Pentru aceasta observ
am ca valoarea calculata la instructiunea 2.2 a procedurii de mai sus, permite
aprecierea ca, la iteratia curenta de evaluare a valorii proprii k , un numar de k
valori proprii se gasesc n intervalul [ , k ]. Prin urmare, daca < k1 atunci n
intervalul [ , k ] se gasesc valorile proprii i , i = k1 : k 1, iar daca k1 atunci
n acest interval se afla valorile proprii i , i = + 1 : k 1. Utilizarea informatiilor
de mai sus presupune:
calculul valorilor proprii n ordine inversa, i.e. n ordinea k = k2 : 1 : k1 ;
introducerea unui vector IRk2 k1 +1 , al extremitatilor stangi ale intervalelor de localizare, ale carui elemente vor fi actualizate, la fiecare iteratie, pe baza
observatiilor de mai sus.
Utilizand, pentru elementele vectorului , o indexare conforma cu cea a valorilor
proprii (i.e. k , k = k1 : k2 , este extremitatea stanga a intervalului de localizare a
valorii proprii k ), la o iteratie curenta de calcul al lui k , actualizarea consta n
atribuirile

k1 : k 1,
daca < k1
i = pentru i =
(4.315)
+ 1 : k 1, daca k1 .
Prezentam direct algoritmul care implementeaza ideile de mai sus.
Algoritmul 4.28 (BISECT Calculul unui grup de valori proprii
prin metoda bisectiei) (Dati vectorii f IRn si g IRn1 care definesc matricea tridiagonala, simetrica, ireductibila T IRnn precum
si ntregii k1 < k2 n si toleranta tol, algoritmul calculeaza valorile
proprii k , k k1 : k2 .)
1. [ , ] = Int(f, g)

2. % Initializarea vectorului extremitatilor stangi ale intervalelor de


separare si a extremitatii din dreapta pentru k2 .

336

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1. Pentru i = k1 : k2
1. i
2. k2

3. % Calculul iterativ al grupului impus de valori proprii


1. Pentru k = k2 : 1 : k1
% Calculul valorii proprii curente k si actualizarea intervalelor
de localizare pentru valorile proprii j , j = k 1 : 1 : k1
1. k
2. C^
at timp > tol
+
1. =
2
2. = (f, g, )
3. Dac
a < k atunci
1.
2. Dac
a < k1 si k > k1 atunci
1. Pentru i = k1 : k 1
1. i =
altfel
1. Pentru i = + 1 : k 1
1. i =
altfel
3. k =
4.
Comentarii.

O sintaxa de utilizare naturala a algoritmului este


= BISECT(f, g, k1 , k2 , tol),

unde este vectorul valorilor proprii calculate. Desi este dificil de stabilit o complexitate corecta a algoritmului datorita, n primul rand, caracterului sau iterativ,
practica a aratat ca algoritmul BISECT, n varianta prezentata, este sensibil mai
rapid decat aplicarea repetata a aceleiasi metode pentru fiecare valoare proprie individuala, mai ales atunci cand exista valori proprii multiple sau apropiate. In [ X ]
se afirma ca algoritmul poate fi utilizat si pentru calculul valorilor proprii ale unei
matrice tridiagonale nesimetrice T daca elementele nediagonale satisfac conditia
ti,i+1 ti+1,i > 0. In acest scop se utilizeaza datele de intrare fi = tii , i = 1 : n, si

gi = ti,i+1 ti+1,i , i = 1 : n 1.
Acuratetea rezultatelor este considerata a fi foarte buna, calculul ntr-un format
virgula mobila cu baza de numeratie si un numar t de cifre al mantisei, conducand
la un nivel al erorilor absolute de ordinul t max(|min |, |max |), nivel care nu poate
fi redus prin cresterea numarului de iteratii [ X ].
3

4.9.3

Metode Jacobi

Metodele tip Jacobi, de calcul al valorilor proprii ale unei matrice simetrice, sunt
inferioare din punctul de vedere al eficientei, apreciate prin numarul necesar de

337

4.9. METODE ALTERNATIVE

operatii n format virgula mobila, algoritmului QR simetric. Renvierea interesului


pentru metodele Jacobi se datoreaza modificarii contextului arhitectural al echipamentelor de calcul de nalta performanta actuale, mai precis dezvoltarii calculatoarelor paralele. Eficienta unui algoritm paralel se evalueaza pe principii diferite,
avandu-se n vedere efectuarea calculelor simultan de mai multe procesoare. In
acest context, metodele Jacobi devin competitive datorita faptului ca au o structura
granulara, bogata n actiuni de calcul practic independente, care pot fi executate,
n acelasi timp, de procesoare diferite. Desi prezentarea unor algoritmi paraleli nu
face obiectul acestei lucrari, am considerat oportun sa introducem metodele Jacobi,
n variantele lor secventiale, ca punct de plecare, de altfel uzual, pentru dezvoltarea
variantelor paralele.
Fie A IRnn o matrice simetrica, DA = diag( a11 , a22 , . . . , ann ) si B = A DA
matricea elementelor sale extradiagonale. Precizam ca transformarile din cadrul
metodelor Jacobi nu conserva structura tridiagonala astfel ca etapa de reducere la
aceasta structura nu este necesara.
In esenta, metodele Jacobi construiesc, iterativ, un sir de matrice, ortogonal
asemenea cu matricea initiala, pe baza relatiei de recurenta
Ak+1 = JkT Ak Jk ,

, k = 1, 2, . . . ,

A1 = A,

(4.316)

unde Jk sunt rotatii plane, numite, n acest context, transform


ari Jacobi, astfel
calculate ncat sa minimizeze norma Frobenius a matricei curente Bk a elementelor
extradiagonale. Acest sir este convergent, n general mai lent decat sirul QR, catre
forma diagonala, care pune n evidenta valorile proprii ale matricei initiale. Calculul
vectorilor proprii este posibil prin acumularea transformarilor.
Pentru simplificarea notatiilor si pentru a evidentia faptul ca toate calculele se
efectueaza pe loc, n locatiile de memorie ale tabloului A, introducem notatiile
def

A = Ak ,

def

A = Ak+1 ,

def

B = Bk+1 = Ak+1 diag(Ak+1 ),

def

J = Jk

si
def

A B = Bk+1 .

In vederea determinarii rotatiei plane J optimale, reamintim parametrii definitorii


ai acesteia

..

c
s

..

.
, p < q, c = cos , s = sin ,
J(p, q, ) =

s
c

..

.
1

(4.317)
toate elementele extradiagonale nemarcate ale matricei J fiind nule. Pentru parametrii p si q fixati, unghiul de rotatie optimal este cel care minimizeaza norma

338

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Frobenius a matricei B. Se poate arata (v. exercitiul 4.64) ca valoarea optimala


a lui este situata n intervalul [ 4 , 4 ) si asigura anularea elementului aqp si,
simultan, datorita simetriei, a elementului apq . In consecinta, parametrii c si s pot
fi determinati din aceasta conditie, respectiv, din conditia ca matricea
D=

d11
d21

d12
d22

def

c
s

s
c

T 

app
aqp

apq
aqq



c
s

s
c

sa fie diagonala. Prin calcul direct obtinem

d11 = app c2 2aqp cs + aqq s2


d12 = (app aqq )cs + apq (c2 s2 ) = d21

d22 = app s2 + 2aqp cs + aqq c2 .

(4.318)

(4.319)

Dac
a apq 6= 0 (altfel J = In ), atunci impunand d12 = d21 = 0, din (4.319) rezulta
c2 s2
aqq app
=
.
cs
aqp

(4.320)

Introducand, acum, notatiile


t=

s
= tg,
c

aqq app
,
2aqp

(4.321)

relatia (4.320) se scrie sub forma unei ecuatii de gradul 2 n t


t2 + 2 t 1 = 0.

(4.322)

Radacina t a acestei ecuatii care corespunde valorilor optimale ale parametrilor c si


s trebuie sa asigure satisfacerea conditiei || < 4 , i.e. |t| < 1. Prin urmare, valorile
optimale ale lui t, c si s se calculeaza cu relatiile
t=

sgn

,
| | + 1 + 2

1
c=
,
1 + t2

s = ct.

(4.323)

Dupa determinarea valorilor optimale ale parametrilor c si s, calculul produsului


A J T AJ se poate face economic tinand seama de simetria rezultatului. Evident,
n acest produs vor fi afectate numai liniile si coloanele p si q. La fel ca la algoritmul
QR simetric, vom presupune ca matricea A este memorata numai prin triunghiul
ei inferior. In acest fel elementele afectate sunt cele evidentiate n figura 4.9.3, iar
relatiile de calcul sunt deja familiare cititorului care a parcurs capitolul 3. Pentru
o redactare mai concisa si mai clara a algoritmilor de implementare a metodelor
Jacobi vom scrie un algoritm pentru implementarea unui pas descris mai sus.
Algoritmul 4.29 (IT J Iteratie Jacobi) (Date matricea simetrica
A IRnn , prin triunghiul sau inferior, precum si ntregii 1 p <
< q n, algoritmul calculeaza parametrii optimali c, s ai rotatiei Jacobi
si suprascrie triunghiul inferior al matricei A cu triunghiul inferior al
matricei succesor A = J T AJ.)

4.9. METODE ALTERNATIVE

@
@
O
@
p
@s
@
q
0 @s
@
@
p
q
Fig. 4.3: Elementele afectate de un pas al metodelor de tip Jacobi.

1. Dac
a aqp = 0 atunci
1. c = 1, s = 0
2. Return
2. % Determinarea parametrilor rotatiei Jacobi
aqq app
1. =
2aqp
sgn

2. t =
| | + 1 + 2
1
, s = ct
3. c =
1 + t2
3. % Calculul A J T AJ numai n triunghiul inferior
= app c2 2aqp cs + aqq s2
aqq app s2 + 2aqp cs + aqq c2
app , aqp 0
Dac
a p > 1 atunci
1. Pentru j = 1 : p 1
1. = capj saqj
2. aqj sapj + caqj
3. apj
5. Dac
a p < q 1 atunci
1. Pentru j = p + 1 : q 1
1. = sajp + caqj
2. ajp cajp saqj
3. aqj .
6. Dac
a q < n atunci
1. Pentru i = q + 1 : n
1. = caip saiq
2. aiq saip + caiq
3. aip
1.
2.
3.
4.

339

340

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Comentarii.

Sintaxa de apel a algoritmului IT J va fi


[ A, c, s ] = IT J(A, p, q),

iar complexitatea sa este O(n), fiind necesari numai Nop 6n flopi.

Parametrii p, q ai transformarii Jacobi ce defineste iteratia curenta se pot determina aplicand strategii diverse. Oricare ar fi strategia aplicata, un element anulat
la o iteratie poate deveni nenul la iteratiile ulterioare (acesta este cazul obisnuit),
astfel ca, asa cum era de asteptat, procesul de diagonalizare este, teoretic, infinit.
Criteriile practice de terminare se refera la situatiile n care toate elementele extradiagonale devin, n valoare absoluta, neglijabile. Dintre criteriile uzuale de apreciere
a acestui fapt amintim
n max |aij | < tol,
(4.324)
i,j1:n
i6=j

sau
kA diag(A)kF < tolkAkF ,

(4.325)

unde scalarul pozitiv tol exprim


a nivelul de toleranta acceptat, si are, n mod
obisnuit, valori de ordinul de marime al erorilor de reprezentare n formatul virgula mobila folosit.
Prezentam n continuare dou
a strategii de alegere a parametrilor p si q, care
s-au impus n practica numerica, si algoritmii de calcul corespunzatori.
Metoda Jacobi clasic
a
In asa numita metod
a Jacobi clasic
a, parametrii p, q se determina astfel ncat apq sa
fie elementul extradiagonal de modul maxim al matricei curente. Intuitiv, o astfel
de alegere ar trebui sa asigure o viteza de convergenta superioara, ceea ce nu este
ntotdeauna adevarat. Algoritmul corespunzator, cu criteriul de terminare de tipul
(4.324), arata astfel.
a a unei maAlgoritmul 4.30 (J clasic Diagonalizare iterativ
trice simetrice prin metoda Jacobi clasic
a) (Date matricea simetrica
A IRnn , prin triunghiul sau inferior, matricea ortogonala Q IRnn
si toleranta tol < 1, algoritmul calculeaza valorile proprii ale matricei A prin diagonalizarea iterativa cu rotatii Jacobi care anuleaza, la
pasul curent, elementul extradiagonal de modul maxim. Acumularea
transformarilor Jacobi se efectueaza optional. Optiunea se exprima prin
intermediul unei variabile logice opt care poate lua valorile da sau
nu. Daca opt = nu , matricea Q ramane nemodificata.)
1. = 1
2. C^
at timp n > tol
1. = 0
2. Pentru i = 2 : n
1. Pentru j = 1 : i 1

4.9. METODE ALTERNATIVE

341

1. Dac
a |aij | > atunci
1. = |aij |
2. p j
3. q i
3. [ A, c, s ] = IT J(A, q, p)
4. Dac
a opt = da atunci
1. Pentru i = 1 : n
1. = cqip sqiq
2. qiq sqip + cqiq
3. qip .
Comentarii.

Sintaxa de apel a algoritmului J clasic va fi


[ A, Q ] = J clasic(A, Q, tol, opt),

iar complexitatea sa, pentru n relativ mari poate fi apreciata statistic la O(n3 ) si
la O(n4 ) pentru n relativ reduse.
3
Metoda Jacobi ciclic
a
Dezavantajul principal al metodei Jacobi clasice consta n necesitatea cautarii, la
fiecare iteratie, a elementului extradiagonal de modul maxim, o operatie de complexitate O(n2 ) comparatii, n timp ce complexitatea de calcul a unei iteratii este
de numai O(n). De aceea, pentru a se asigura o eficienta sporita, metoda Jacobi ciclic
a evita efectuarea comparatiilor prin anularea elementelor extradiagonale ntr-o
ordine predeterminata. Avand n vedere ca elementele anulate pot deveni nenule
ntr-o faza ulterioara a aceleiasi iteratii sau ntr-o iteratie ulterioara, anularile se
reiau, ciclic, pana la satisfacerea criteriului de oprire a iteratiilor.
Presupunand ca operam exclusiv n triunghiul inferior al matricei A si efectuam
anularile pe linii, n ordinea naturala, i.e. n cadrul unui ciclu, n ordinea (2,1),
(3,1), (3,2), . . . (n, 1), . . . (n, n 1), obtinem urmatorul algoritm.
a a unei matrice
Algoritmul 4.31 (J ciclic Diagonalizare iterativ
simetrice prin metoda Jacobi ciclic
a) (Date matricea simetrica A
IRnn , prin triunghiul sau inferior, matricea ortogonala Q IRnn si
toleranta tol < 1, algoritmul calculeaza valorile proprii ale matricei A
prin diagonalizarea iterativa cu rotatii Jacobi care anuleaza elementele
extradiagonale ciclic, pe linii. Acumularea transformarilor se realizeaza
optional, pe baza optiunii exprimate prin intermediul unei variabile logice opt, care poate lua valorile da sau nu. Daca opt = nu , matricea
Q ramane nemodificata.)
Pn Pi1
1. = i=2 j=1 a2ij
p

Pn
2. A = 2 + i=1 a2ii ,
E = 2
3. C^
at timp E > tol A
1. Pentru q = 2 : n

342

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Comentarii.

1. Pentru p = 1 : q 1
1. [ A, c, s ] = IT J(A, p, q)
2. Dac
a opt = da atunci
1. Pentru i = 1 : n
1. = cqip sqiq
2. qiq sqip + cqiq
3. qip
q P P
n
i1
3. E = 2 i=2 j=1 a2ij

Sintaxa de apel a algoritmului J ciclic va fi


[ A, Q ] = J ciclic(A, Q, tol, opt),

iar complexitatea sa poate fi apreciata, statistic, la O(n3 ) daca n este relativ mare.
Pentru a mari eficienta, exista versiuni cu prag ale algoritmului J ciclic (v. [ IV ])
la care anularea elementelor extradiagonale are efectiv loc numai daca modulul lor
este superior unui anumit prag. O reducere progresiva a pragului pe parcursul
procesului iterativ asigura conservarea si chiar o mbunatatire a proprietatilor de
convergenta.
3
Calculul vectorilor proprii prin intermediul metodelor tip Jacobi se realizeaza,
n esenta, prin acumularea transformarilor. Concret, coloanele matricei de transformare Q obtinute n urma apelului [ A, Q ] = J clasic(A, In , da ) sau, respectiv, al
apelului [ A, Q ] = J ciclic(A, In , da ), sunt vectorii proprii ai matricei A initiale,
mai precis coloana Q(:, j) este vector propriu asociat valorii proprii ajj din forma
finala a matricei A.
Analiza proprietatilor de convergenta [ IV ] a metodei clasice Jacobi a condus
la concluzia ca n faza initiala convergenta poate fi considerata ca liniara, dar pe
masura ce numarul iteratiilor creste si elementele extradiagonale scad n modul,
convergenta devine patratica. Metoda Jacobi ciclica are o convergenta patratica.
Desi viteza de convergenta a metodelor tip Jacobi este inferioara celorlalte
metode de calcul al valorilor proprii ale matricelor simetrice (a se vedea convergenta
asimptotic cubica a algoritmului QR simetric sau a metodei bisectiei) totusi, pentru matrice de dimensiuni mai modeste aceste metode se pot dovedi, datorita simplit
atii lor, atractive. Metodele Jacobi reprezinta nsa o alternativa viabila la implementarea pe echipamentele de calcul paralel, unde un grad superior de paralelism
poate compensa viteza mai redusa de convergenta.

4.10

Conditionarea valorilor si vectorilor proprii

Precizia rezultatelor unui calcul cu datele initiale afectate de erori, cum sunt erorile
de reprezentare n format virgula mobila, este esential influentata de sensibilitatea
acestor rezultate la variatii n datele initiale sau, altfel spus, de conditionarea problemei respective (vezi cap. 0). Aprecierea conditionarii se face n ipoteza unor
calcule exacte, deci este independenta de modul efectiv de calcul. In continuare

343

4.10. CONDIT
IONARE

ne propunem sa abordam cateva aspecte ale problemei sensibilitatii valorilor si


vectorilor proprii la perturbatii ale elementelor matricei.
Aprecierea conditionarii se face, de obicei, prin stabilirea unor margini superioare
pentru variatiile valorilor si vectorilor proprii n raport cu variatiile elementelor
matricei date. Chiar daca aceste margini sunt, de cele mai multe ori, supraevaluate,
ele ofera o imagine foarte utila asupra unor situatii critice, n care erorile rezultatelor
ies de sub control. Stabilirea evaluarilor privind sensibilitatea valorilor si vectorilor
proprii se bazeaza pe proprietatile de continuitate ale acestora n raport cu variatiile
elementelor matricei. Intrucat aceste proprietati capata un aspect complicat n
cazul valorilor proprii multiple, ne vom margini demersul teoretic n principal asupra
matricelor cu valori proprii distincte, atragand de la nceput atentia asupra faptului
ca valorile proprii multiple sunt semnificativ mai rau conditionate decat cele simple.
De asemenea, vom trata distinct cazul matricelor hermitice (n cazul real, simetrice)
care prezinta calitati cu totul remarcabile din acest punct de vedere.
Proprietatile de netezime ale dependentelor valorilor proprii simple si ale vectorilor proprii asociati se pot exprima n felul urmator [ IV ]. Fie matricea A C
I nn
nn
si o matrice de perturbatie E = G, cu IR si G C
I
avand kGk = 1, arbitrara dar fixata 56 . Daca (A) este o valoare proprie simpl
a si x C
I n un
vector propriu asociat, de norma euclidiana unitara (i.e. kxk = 1), atunci exista o
valoare proprie () (A + E) a matricei perturbate F = A + E = A + G cu un
vector propriu asociat x() (de asemenea de norma euclidiana unitara) care admit
urmatoarele dezvoltari n serii de puteri n raport cu :
() = + 1 + 2 2 + . . . ,
x() = x + z1 + z2 2 + . . . ,

(4.326)

convergente ntr-o vecinatate a punctului = 0. Evident, avem (0) = , x(0) = x,


iar () si x() sunt functii continue si derivabile n domeniul de convegenta, n
particular lim0 () = si lim0 x() = x. Intrucat, n general, n dezvoltarile
de mai sus, 1 6= 0 si z1 6= 0, o prima evaluare a dependentei valorilor proprii simple
si a vectorilor proprii asociati de perturbatiile din elementele matricei este data de
|() | = O(),
kx() xk = O(),

(4.327)

util
a n aprecierea conditionarii n cazul practic al perturbatiilor mici, i.e. al
celor pentru care 2 este neglijabil n raport cu . Evaluarile calitative (4.327) se
pot aprecia cantitativ prin |1 | si, respectiv, prin kz1 k (sau margini superioare ale
acestora), care pot servi drept numere de conditionare pentru valoarea proprie si
vectorul propriu asociat x.

4.10.1

Conditionarea valorilor si vectorilor proprii


pentru matrice generale (nehermitice)

A. Conditionarea valorilor proprii


Fie A C
I nn , (A) o valoare proprie simpla a matricei A si x, y C
I n vectori
proprii la dreapta, respectiv la st
anga, de norma euclidiana unitara, asociati valorii
56

Dac
a nu se mentioneaz
a altfel, norma matriceal
a k k este norma spectral
a, i.e. k k2 .

344

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

proprii , i.e. avem Ax = x si, respectiv, y H A = y H . Consideram, ca mai


sus, matricea perturbata F = A + E, cu E = G, si (), x() definite n (4.326).
Derivand, n raport cu , relatia de definitie
(A + G)x() = ()x()

(4.328)

si facand = 0 obtinem
Gx + Az1 = 1 x + z1 ,

unde

1 =


d()
,
d =0

z1 =


dx()
.
d =0

(4.329)

Dar, ntrucat este o valoare proprie simpla, avem y H x 6= 0 (v. exercitiul 4.9).
Prin urmare, nmultind relatia (4.329) la stanga cu y H , obtinem
y H Gx + y H Az1 = 1 y H x + y H z1 ,
de unde rezulta
|1 | =

|y H Gx|
kyk kGk kxk
1

= H .
|y H x|
|y H x|
|y x|

Numarul
def

1
= max |1 |
|y H x| G C
I nn
kGk = 1

(4.330)

(4.331)

(maximul fiind atins pentru G = xy H ) defineste sensibilitatea sau num


arul de
conditionare al valorii proprii simple . In literatura de specialitate (v. [ IV ],
[ VI ], [ XV ] ) se utilizeaza nsa curent inversul numarului de conditionare, i.e. asa
numitul parametru s definit de
def

s = |y H x|.

(4.332)

Evident, cu cat este mai mare (s este mai mic) conditionarea valorii proprii
simple este mai rea, erorile din datele initiale putand fi amplificate de pana la
ori. Din punct de vedere geometric, n cazul real numarul s reprezinta cosinusul
unghiului ascutit dintre directiile vectorilor proprii la stanga si la dreapta asociati
valorii proprii simple . Cazul cel mai favorabil apare atunci cand vectorii proprii
la stanga si la dreapta sunt aceiasi (e.g. matricele normale au toate valorile proprii
perfect conditionate, v. teorema 4.1).
Este evident faptul ca sensibilitatea unei valori proprii, definita de parametrul
s sau de conditionarea , se refera la erorile absolute introduse de perturbatiile
numerice n datele initiale. Prin urmare, erorile relative vor fi cu atat mai mari cu
cat valorile proprii sunt mai mici n modul.
Fie Q C
I nn o matrice unitar
a oarecare, B = QH AQ si (A) = (B). Daca
x si y sunt vectori proprii la dreapta si, respectiv, la stanga, de norma unitara, ai
matricei A, asociati valorii proprii , atunci x
= QH x si, respectiv, y = QH y sunt
vectori proprii de norma unitara ai matricei B, asociati aceleiasi valori proprii. Se

345

4.10. CONDIT
IONARE

constata imediat ca s = |
yH x
| = |y H x| = s , i.e. numerele de conditionare ale
valorilor proprii simple sunt invariante la transformari unitare de asemanare.


1
Exemplul 4.9 Fie A =
IR22 , cu 1 6= 2 . Atunci este usor de
0 2
constatat ca
|1 2 |
s1 = s2 = p
,
2 + (1 2 )2
respectiv,

1 = 2 =

1+

2
.
(1 2 )2

||
Dac
a || |1 2 |, atunci 1 = 2
.
|
2 |
1


In cazul numeric A = 0.1 100 , avem 1 = 2 103 . Valorile proprii ale
0 0.2




0.1 100
0 0
6
matricei perturbate F = A + G =
, unde = 10 si G =
106 0.2
1 0

(cu kGk = 1), sunt 1 = 0.0990098 si 2 = 0.2009902, i.e. o perturbare cu numai


106 a unui singur element al matricei initiale are ca efect modificari de ordinul a
103 ale celor doua valori proprii, deci de aproximativ 1000 mai mari.
Expresia de mai sus a numerelor de conditionare sugereaza o justificare a faptului, afirmat deja, ca valorile proprii multiple au o conditionare mai rea decat valorile
proprii simple.
3
Atragem atentia asupra faptului ca, desi exemplul de mai sus arata ca sensibilitatea unei valori proprii poate fi influentata decisiv de distanta de la ea pana la
restul spectrului, exista situatii de valori proprii bine separate de restul spectrului
si, n acelasi timp, foarte rau conditionate. Exemple celebre n acest sens fac obiectul
exercitiilor 4.69 si 4.70.
Numerele i (sau si ) definesc conditionarea valorilor proprii i ale unei matrice
n raport cu variatii mici dar arbitrare ale tuturor elementelor matricei, i.e. n raport
cu perturbatii nestructurate. Desigur, putem sa formulam problema conditionarii
valorilor proprii n raport cu variatia unui anumit element (v. exercitiul 4.68) sau cu
variatiile elementelor dintr-un grup precizat structural (perturbatii structurate). In
continuare ne vom ndrepta nsa atentia ntr-o directie considerata mai importanta
n aplicatii si anume a exprimarii sintetice a conditionarii unui grup de valori proprii
sau a ntregului spectru n raport cu perturbatii nestructurate. In acest scop pot
fi utilizate teoremele de localizare a spectrului de valori proprii n planul complex
(dintre care amintim teorema lui Gershgorin, vezi teorema 4.11, 4.1). O alta
cale este de a defini conditionarea ntregului spectru printr-o norma a vectorului
conditionarilor valorilor proprii individuale, i.e.
def

s = ksk,

def

= kk,

(4.333)

unde
s = [ s1 s2 sn ]T ,

= [ 1 2 n ]T ,

(4.334)

346

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

definitie care ar putea fi utilizata si pentru un grup de valori proprii.


Pentru definirea conditionarii unui grup de valori proprii vom urma totusi o cale
alternativa care generalizeaza o interpretare interesanta a numerelor de conditionare
individuale definite mai sus. In acest scop vom introduce si utiliza conceptul de
proiector spectral. Pentru simplitate, consideram o matrice A C
I nn cu valori
proprii distincte si fie I = { i1 , i2 , . . . , iq } o multime ordonata (i.e. i1 < i2 <
. . . < iq ) de indici din 1 : n. Notam I (A) = { i1 , i2 , . . . , iq } (A). Fie,
acum, UI C
I n subspatiul A-invariant asociat setului de valori proprii I (A) si
n
V C
I subspatiul A-invariant complementar, asociat setului J (A) = (A)\I (A).
Intrucat avem C
I n = U V, pentru orice vector x C
I n exista vectorii u U si v V,
unic determinati, astfel ncat x = u + v. Vectorul u se numeste proiectia vectorului
x pe subspatiul U paralela cu subspatiul V, iar vectorul v proiectia vectorului x pe
subspatiul V paralela cu subspatiul U. Aplicatia liniara PI : C
I n U se numeste
proiectia spectral
a asociata setului de valori proprii I (A), iar pentru o baza fixata
a spatiului C
I n , matricea PI C
I nn asociata aplicatiei PI se numeste proiector
spectral pe subspatiul U. Evident, PI x = u, x C
I n si PI2 = PI .
nq
Fie, acum, o matrice U C
I
ale carei coloane formeaza o baza a subspatiului
U. Conform propozitiei 4.1, avem AU = U B, unde B C
I qq este o restrictie a
matricei A la subspatiul A-invariant U si (B) = I (A). Similar, fie V C
I n(nq)
o matrice ale carei coloane formeaza o baza a subspatiului V si AV = V C.
 Evident,
Y
1
matricea T = [ U V ] este nesingulara. Consideram partitia T =
a inversei
Z
matricei T , unde Y C
I qn si Z C
I (nq)n . Avem imediat Y AU = B, Y AV = 0,
ZAU = 0 si ZAV = C. Prin urmare, T 1 AT = diag(B, C). Mai mult, este simplu
de vazut ca matricele
PI = U Y,

PJ = V Z = In PI

(4.335)

sunt proiectorii spectrali pe subspatiile A-invariante U si, respectiv, V.


Consideram, n continuare, o valoare proprie simpla (A), un vector propriu
la dreapta x si un vector propriu la stanga y, ambii de norme euclidiene unitare,
asociati valorii proprii . Subspatiul A-invariant unidimensional U = Imx are drept
xy H
complement subspatiul A-invariant n 1 dimensional V = Kery H , iar P = H
y x
este proiectorul spectral pe subspatiul U. Avem urmatoarea exprimare posibila a
conditionarii valorii proprii . Intrucat kxy H k = kxk kyk (demonstrati!), rezulta
s =

1
,
kP k

respectiv

1
,
kPI k

respectiv

= kP k.

(4.336)

Aceste relatii pot fi generalizate, n modul cel mai natural, la definirea conditionarii unor seturi de mai multe valori proprii. Fara a intra n detalii, vom defini
parametrul sI si conditionarea I a unui set I (A) de valori proprii prin
sI =

I = kPI k,

(4.337)

unde PI este proiectorul spectral pe subspatiul A-invariant asociat valorilor proprii


I . La fel ca n cazul valorilor proprii individuale, sI si I sunt invariante la transformari unitare (n cazul real, ortogonale) de asemanare. In consecinta, evaluarea

347

4.10. CONDIT
IONARE

conditionarii unui set I de valori proprii se poate face n felul urmator. Fie


S11 S12
H
S = Q AQ =
(4.338)
0 S22
forma Schur ordonata a matricei A astfel ncat I = (S11 ), (S11 ) (S22 ) = si
solutia X C
I q(nq) a ecuatiei Sylvester
S11 X XS22 = S12 .

(4.339)

Atunci, asa cum s-a ar


atat n 4.7, transformarea de asemanare definita de maIq X
tricea T =
conduce la obtinerea matricei cu structura bloc-diagonala
0 Inq
T 1 ST = diag(S11 , S22 ), iar proiectorul spectral pe subspatiul S-invariant asociat
valorilor proprii (S11 ), conform (4.335), este


Iq X
P = T ( : , 1 : q)T 1 (1 : q, : ) =
.
(4.340)
0 0
Rezulta
sI =

1
1
= p
,
kP k
1 + kXk2

respectiv

I = kP k =

p
1 + kXk2.

(4.341)

Avandu-se n vedere dificultatile legate de calculul normei spectrale, n pachetele


profesionale de calcul al valorilor proprii 57 , se utilizeaza norme matriceale mai
usor de calculat. Astfel, n LAPACK [ XV ], n locul relatiei (4.341) de calcul al
parametrului sI se foloseste expresia
1
sI = p
,
1 + kXk2F

(4.342)

care, avandu-se n vedere relatia dintre norma spectrala si norma Frobenius,


da o esp
timare care difera de valoarea real
a printr-un factor cel mult egal cu min(q, n q).
In finalul acestui paragraf prezentam un rezultat important care permite definirea conditionarii spectrului unei matrice simple ntr-un context general.

Teorema 4.22 (Bauer-Fike) Fie o matrice diagonalizabil


a A C
I nn si V o matrice nesingular
a ale c
arei coloane sunt vectori proprii ai matricei A, i.e. astfel nc
at
V 1 AV = = diag(1 , 2 , . . . , n ). Dac
a E C
I nn este o matrice de perturbatie
si o valoare proprie a matricei perturbate (A + E), atunci
e() = min | | p (V )kEkp ,
(A)

p = 1, 2, ,

(4.343)

unde p (V ) = kV kp kV 1 kp este num


arul de conditionare la inversare al matricei
V a vectorilor proprii.
57 O dovad
a cert
a de profesionalism este ns
asi posibilitatea oferit
a utilizatorului de a-si evalua
conditionarea problemelor sale de calcul si, pe aceast
a cale, nivelul probabil al erorilor.

348

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Demonstratie.
Daca (A), atunci min(A) | | = 0 si, deci, (4.343)
este, evident, satisfacuta. Daca 6 (A), atunci matricele In A si In sunt
nesingulare, iar matricele In AE si In V 1 EV sunt singulare. Rezulta ca
1
1
matricea (In ) (In V 1 EV ) = In , unde = (In ) V 1 EV ,
este singulara, i.e. exista un vector z, cu kzk = 1, astfel ncat (In )z = 0. De
aici, cu orice norma matriceala consistenta, obtinem
1 = kzk = kzk kk kzk = kk.
Pe de alta parte, oricare ar fi norma matriceala consistenta k k, care ndeplineste
conditia
kdiag(1 , 2 , . . . , n )k = max (|i |),
i=1:n

(n particular k k = k kp , p = 1, 2, ) avem
1

kk k(In )
max | i |
i=1:n

k kV 1 EV )k

kV 1 k kEk kV k =

1
mini=1:n | i |

(V )kEk.

Din ultimele doua relatii rezulta


1

1
(V )kEk,
mini=1:n | i |

i.e. (4.343) este adevarata, q.e.d.

In primul rand remarcam faptul ca n demonstratia teoremei Bauer-Fike nu s-a


utilizat ipoteza unor perturbatii mici, i.e. rezultatul este valabil pentru orice nivel
al perturbatiilor.
e()
Interpretand
ca sensibilitate numerica a (numar de conditionare al) valorii
kEkp
proprii pentru care se realizeaza minimul din (4.343) rezulta, pe de o parte, faptul
ca numarul de conditionare la inversare al matricei vectorilor proprii ai unei matrice
simple este o margine superioara pentru numerele de conditionare individuale ale
fiecarei valori proprii.
Pe de alta parte, putem considera max(A+E) e() drept influenta matricei de
perturbatie E asupra ntregului spectru a lui A si putem utiliza marginea superioara
e()
p (V ) a numarului max(A+E)
pentru aprecierea sensibilitatii spectrului makEk
tricei simple A. Intrucat vectorii proprii sunt determinati pana la nmultirea cu un
scalar nenul, pentru a elimina aceasta nedeterminare, definirea conditionarii spectrului unei matrice diagonalizabile se poate face prin intermediul numarului
(p)

(A) = min p (V ),
V VA

(4.344)

unde VA este multimea tuturor matricelor de vectori proprii ai matricei A pentru


care avem V 1 AV = .

349

4.10. CONDIT
IONARE

Pentru p = 2, aceasta caracterizare a conditionarii spectrului de valori proprii al


unei matrice simple este ntr-o conexiune stransa cu cea introdusa n relatia (4.333).
Intr-adevar, daca V VA , atunci xi = V ei este un vector propriu la dreapta,
kV ei k
(eT V 1 )H
de norma euclidiana unitara, asociat valorii proprii i , iar yi = i H
este un
kV
ei k
vector propriu unitar la stanga asociat aceleiasi valori proprii. Avem
si = |yiH xi | =

|eTi V 1 V ei |
1
=
.
kV H ei k kV ei k
kV ei k kV H ei k

T
inand seama de faptul ca kV ei k kV k kei k = kV k si, analog, kV H ei k
kV 1 k, rezulta
si

1
,
2 (V )

respectiv

i 2 (V )

pentru toti i = 1 : n. Cum V VA era arbitrara, aceasta nseamna


(2)

kk = max (i ) (A).

(4.345)

i=1:n

x2 xn ], av
and
y1H
y2H

vectori proprii la dreapta de norma euclidiana unitara si Y = .


..
Pe de alta parte, fie matricele X = [ x1

drept
coloane

, cu vectorii

ynH
yi vectori proprii la stanga, de asemenea de norma euclidiana unitara. Atunci,
tinand seama de faptul ca yiH xj = 0 pentru toti i 6= j (v. exercitiul 4.8), avem
Y X = diag(s1 , s2 , . . . , sn ). Prin urmare, matricea

V = XD = Xdiag( 1 , 2 , . . . , n )
apartine multimii VA si V 1 = D1 X 1 = DY . Rezulta
(V ) = kV k kV 1 k kV kF kV 1 kF = kXDkF kDY kF = kDk2F =

n
X
i=1

i = kk1 .

Reunind acest rezultat cu (4.345) putem scrie n concluzie


(2)

kk (A) kk1 .

(4.346)

Avand n vedere rolul determinant al structurii directiilor proprii asupra sensibilitatii valorilor proprii, este interesant de vazut n ce conditii (A) este minim.
In acest sens avem urmatoarea propozitie.
Propozitia 4.4 Valoarea minim
a a num
arului de conditionare (4.342) pentru
p = 2 este 1 si este atins
a dac
a matricea A este normala (n particular, hermitic
a
sau unitar
a, iar n cazul real simetric
a sau ortogonal
a).

350
Demonstratie.

CAPITOLUL 4. VALORI S
I VECTORI PROPRII
Pentru orice matrice de vectori proprii V VA avem
2 (V ) = kV k kV 1 k kV V 1 k = 1.
(2)

Prin urmare si (A) 1. Daca matricea A este normala, atunci este unitar
diagonalizabila, respectiv vectorii proprii sunt ortogonali, i.e. 2 (V ) = 1 pentru
(2)
toti V VA . Rezulta (A) = 1.
3
Prin urmare spectrele matricelor normale sunt perfect conditionate.
O alta problema foarte importanta este legata de existenta mijloacelor de mbunatatire si de conservare a conditionarii numerice a spectrului de valori proprii
ale unei matrice date. Intrucat spectrul nsusi trebuie conservat, aceste mijloace se
refera la existenta unor transform
ari de asemanare astfel ncat matricea A = T AT 1

sa aiba (A) (A). In acest sens avem urmatorul rezultat.


Propozitia 4.5 Transform
arile unitare (n cazul real, ortogonale) de asem
anare
(2)
conserv
a num
arul de conditionare (A) al spectrului unei matrice.
Demonstratie.
Conservarea numarului de conditionare este urmare directa a
conservarii normei euclidiene la transformari unitare. Intr-adevar, fie A = U AU H
unde U C
I nn este unitara, i.e. U H U = U U H = In . Atunci, daca V este o matrice
arbitrara de vectori proprii liniar independenti ai matricei A, V = U V este o matrice
Prin urmare, 2 (V ) = kV k kV 1 k =
(nesingulara) de vectori proprii a matricei A.
1 H
= kU V k kV U k = 2 (V ) de unde rezulta si conservarea numarului de conditionare minV VA 2 (V ), q.e.d.
3
Implicatiile importante ale propozitiei de mai sus constau n utilizarea, practic
exclusiva, a transformarilor unitare (ortogonale) de asemanare n toti algoritmii
de calcul al valorilor proprii (vezi sectiunile precedente). De asemenea, rezulta
ca o eventuala ameliorare a conditionarii spectrului de valori al unei matrice nu
este posibila decat prin recurgerea la transformari de asemanare neunitare, care sa
realizeze o apropiere a matricei initiale de o matrice normala. Intrucat o matrice
normala este caracterizata, printre altele, de faptul ca este perfect echilibrata, i.e.
are normele euclidiene ale liniilor si coloanelor de acelasi indice egale, procedurile de
ameliorare a conditionarii spectrului unei matrice urmaresc o echilibrare a acesteia,
asa cum s-a prezentat n detaliu n sectiunea 4.4.
B. Conditionarea vectorilor proprii si a subspatiilor invariante
La fel ca si n cazul valorilor proprii, din motive de simplitate, ne vom margini la
analiza conditionarii vectorilor proprii asociati valorilor proprii simple. De asemenea, precizam de la nceput ca subspatiile invariante generate de vectori proprii rau
conditionati pot avea o conditionare mult mai buna. Acesta si este unul din motivele
principale pentru care n practica numerica nu se recomanda, n general, calculul
explicit al vectorilor proprii, subspatiile invariante de interes putand fi generate
mult mai fiabil, de exemplu, de vectorii Schur.
Fie matricea A C
I nn cu valorile proprii distincte k si vectorii proprii asociati,
de norma euclidiana unitara, xk , k = 1 : n. Consideram matricea perturbata

351

4.10. CONDIT
IONARE

F = A + E, cu E = G, kGk = 1, si k (), xk () (cu kxk k = 1) valorile si vectorii


proprii ai matricei perturbate, definiti ca n (4.326). Adaptand notatiile la noul
context, relatia (4.329) se poate scrie sub forma


dk ()
dxk ()
(k)
(k)
(k)
(k)
(k)
, z1 =
.
Gxk + Az1 = 1 xk + k z1 , unde 1 =
d =0
d =0
(4.347)
Intrucat, n ipotezele acceptate, vectorii proprii xk , k = 1 : n, formeaza o baza
Pn
(k)
(k)
a spatiului C
I n , putem scrie z1 = i=1 i xi , relatie care, introdusa n (4.347),
conduce la
n
X
(k)
i (k i )xi = (G k In )xk .
(4.348)
i=1
i6=k

Inmultind la stanga relatia (4.347) cu y H , unde yi este vectorul propriu la stanga


i
asociat valorii proprii i , si tinand seama de faptul ca yjH xi = 0 pentru j 6= i si
yiH xi 6= 0 (v. exercitiile 4.8 si 4.9) obtinem
(k)

yiH Gxk
,
(k i )yiH xi

i = 1 : n,

i 6= k.

(4.349)

Prin urmare, dezvoltarea n serie (4.326) conduce la urmatoarea evaluare a influentei


perturbatiei asupra vectorului propriu xk :
xk () = xk +

n
X
i=1
i6=k

yiH Gxk
xi + O(2 ).
(k i )yiH xi

(4.350)

In sensul celor precizate n preambulul acestei sectiuni, putem considera


x k = k

n
X
i=1
i6=k

yiH Gxk
xi k
(k i )yiH xi

(4.351)

drept numar de conditionare al vectorului propriu xk . Relatia (4.351) arata ca


sensibilitatea unui vector propriu este dependenta esential atat de sensibilitatile
tuturor valorilor proprii cat si de distanta (separarea) valorii proprii asociate fata
de celelalte valori proprii.
Exemplul
4.10 Reluam matricea din exemplul precedent, respectiv consideram

1
A=
IR22 cu 1 6= 2 si notam = 1 2 . Vectorii proprii, de
0 2
norma unitara, au expresiile (facand abstractie de semn)
 




 
1
1

0
1
x1 =
, x2 = p
,
y1 = p
, y2 =
.
2
2
2
2
0

1
+
+

Prin urmare, relatiile (4.351) se scriu n acest caz sub forma


x 1 = k

y2T Gx1
x2 k,
y2T x2

x 2 = k

y1T Gx2
x1 k.
y1T x1

352

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

1.01 0.01
, avem 1 = 2 = 2, i.e. ambele
0
1
valori proprii sunt foarte bine conditionate. Vectorii proprii normati ai matricei
neperturbate sunt

 
  
1
0.70710
1
2

.
x1 =
,
x2 =
0.70710
0
2 2


1.01 0.01
Valorile proprii ale matricei perturbate F = A + G =
, unde =
103
1


0 0
1 1.0109 si
2 0.99908, i.e.
= 103 si G =
(cu kGk = 1), sunt
1 0
cu perturbari de ordinul de marime al lui . In schimb, vectorii proprii normati ai
matricei perturbate sunt




0.995830
0.67549
x
1 = x1 (103 )
,
x2 = x2 (103 )
.
0.091226
0.73737
In cazul numeric A =

Se observa influenta mult mai puternica a perturbatiei asupra vectorilor proprii


decat asupra valorilor proprii. De exemplu, x
2 are un element fara nici o cifra
zecimala corecta desi perturbatia a modificat numai a treia cifra zecimala a unui
element al matricei initiale. Aceasta se datores
te faptului ca vectorul propriu x2
este relativ rau conditionat ntrucat x2 = 100/ 2.
3
Exprimarea conditionarii vectorilor proprii si, mai general, evaluarea erorilor n
calculul vectorilor proprii prin expresii de genul k
x xk nu este ntotdeauna semnificativa datorita faptului ca vectorii proprii, chiar normati, nu sunt unic determinati.
De exemplu, daca x = x, i.e. x
este un vector propriu exact, avem k
x xk = 2. De
aceea, este preferabila aprecierea influentei perturbatiilor asupra vectorilor proprii
prin evaluarea diferentei unghiulare dintre vectorul exact si cel perturbat, definita
prin
|xH x
|
(x, x) = arccos
= arccos |xH x
|,
(4.352)
kxk k
xk
ultima expresie fiind adevarata n cazul utilizarii vectorilor normati kxk = k
xk = 1.
Prin definitie, unghiul (x, x), introdus n relatia (4.352), este unghiul ascutit dintre
directiile vectorilor x si x
.
Aceasta abordare poate fi extinsa la exprimarea conditionarii subspatiilor invariante. Fie doua subspatii U, V C
I n . Definim diferenta unghiular
a sau unghiul
ascutit dintre subspatiile U si V prin
(U, V) = max min (u, v).
uU vV
u6=0 v6=0

(4.353)

Evident, (U, V) = (V, U). Relatia de definitie (4.353) nu permite calculul unghiului dintre doua subspatii dar mijloace pentru a face acest lucru exista 58 . Fiind data
o matrice A si I (A) un set de valori proprii ale acesteia, prin conditionarea
58

O relatie care exprim


a unghiul dintre dou
a subspatii si generalizeaz
a expresia (4.352) a unghiu-

353

4.10. CONDIT
IONARE

subspatiului A-invariant U asociat setului I vom ntelege variatia unghiulara (sau


o margine superioara a acesteia) a subspatiului U raportata la nivelul perturbatiilor
n elementele matricei A.
Conditionarea subspatiilor invariante este determinata n mod decisiv de localizarea valorilor proprii asociate. Este nsa posibil ca un subspatiu generat de
vectori proprii rau conditionati sa aiba o conditionare foarte buna daca grupul
corespunzator de valori proprii este bine separat de restul valorilor proprii.
Pentru a aborda constructiv aceasta problema introducem cateva notiuni noi.
Vom defini mai ntai separarea dintre spectrele a doua matrice A C
I mm si B
nn
mn
mn
C
I
. In acest scop, fie aplicatia liniara L : C
I
C
I
definita de L(X) =
= AX XB. Distanta (sau separarea) dintre spectrele matricelor A si B se masoara
prin scalarul
def

sep(A, B) = min

X6=0

kL(X)kF
kAX XBkF
= min
.
X6=0
kXkF
kXkF

(4.354)

Intrucat cadrul propus al lucrarii nu ne ofera mijloacele necesare prezentarii pe larg


a proprietatilor parametrului de separare sep 59 , vom sugera semnificatia sa printr-o
particularizare. Fie B = C
I o matrice 1 1 si A o matrice normala, i.e. unitar
diagonalizabila (v. teorema 4.1). Atunci, QH AQ = = diag(1 , 2 , . . . , m ) cu Q
o matrice unitara. Avem
sep(A, B) = min
x6=0

k(A In )xkF
= min k(A In )xk =
kxkF
kxk=1

= min k( In )zk = min |i |,


i=1:m

kzk=1

i.e. sep(A, B) este efectiv o distanta dintre si spectrul matricei A. In acest


context, daca B este o matrice de ordinul n si (B) = {1 , 2 , . . . , n } definim
distanta absoluta dintre spectrele matricelor A si B prin
def

gap(A, B) = min |i j |
i=1:m
j=1:n

(4.355)

lui dintre doi vectori (sau dou


a subspatii unidimensionale) este
(U , V) = arccos min (U H V ),
unde min () este valoarea singular
a minim
a (v. cap. 5) a matricei argument, U este o matrice
ale c
arei coloane formeaz
a o baz
a ortogonal
a a subspatiului U si V este o matrice ale c
arei coloane
formeaz
a o baz
a ortogonal
a a subspatiului V. O astfel de p
abordare permite introducerea conceptu2 (U H V ) = sin (U , V), concept
lui de distant
a dintre subspatii liniare prin dist(U , V) =
1 min
util unei trat
ari cantitative a condition
arii subspatiilor invariante. Pentru detalii recomand
am
consultarea referintei [ VI ].
59 O exprimare posibil
a a separ
arii matricelor A si B, care permite calculul ei cel putin n
principiu, este
sep(A, B) = min (In A B T Im ),

unde min () este valoarea singular


a minim
a (v. cap. 5) a matricei argument, iar Z = X Y este
produsul Kronecker al matricelor X si Y , i.e. matricea bloc [Zij ] = [xij Y ].

354

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

si distanta relativa prin


def

gaprel(A, B) = min

i=1:m
j=1:n

|i j |
.
|i + j |

(4.356)

Proprietatea evidentiata n cazul particular de mai sus se generalizeaza n mod


natural si justifica utilizarea parametrului sep(A, B) ca masura a separarii spectrelor
matricelor A si B. In cazul general se pot face urmatoarele afirmatii:
sep(A, B) = 0 daca si numai daca matricele A si B au cel putin o valoare
proprie comuna;
sep(A, B) este mica daca si numai daca exista o perturbare mica a uneia
dintre matrice care face ca cele doua matrice sa aibe cel putin o valoare proprie
comuna;
daca matricele A si B sunt hermitice (n cazul real, simetrice), atunci separarea
coincide cu distanta dintre spectre, i.e. sep(A, B) = gap(A, B);
daca matricele A si B nu sunt hermitice (n cazul real, simetrice), atunci
sep(A, B) < gap(A, B) si chiar poate fi mult inferioara lui gap(A, B);
In pachetele profesionale de calcul numeric exista proceduri de estimare rapida
a separarii spectrelor.

60

Revenind la problema conditionarii vectorilor proprii ai unei matrice A C


I nn
si a subspatiilor sale invariante, precizam ca, la fel ca n cazul valorilor proprii,
aceasta nu este afectata de transformari unitare de asemanare. Prin urmare, fara
a reduce generalitatea, putem considera matricea initiala direct n forma Schur,
eventual ordonata n mod convenabil. Fie, asadar, multimea de indici I 1 : n si
setul I (A) al valorilor proprii de interes. Consideram matricea


S11 S12
S = QH AQ =
C
I nn , cu S11 C
I qq , (S11 ) = I (4.357)
0 S22
si XI = ImQ( : , 1 : q) subspatiul A-invariant asociat setului de valori proprii I .
Vom nota separarea spectrelor matricelor S11 si S22 cu
not

sep(S11 , S22 ) = sepI .


Conditionarea subspatiului invariant XI , i.e. variatia unghiulara a acestuia raportata la nivelul perturbatiilor n matricea initiala, se poate aprecia prin numarul
de conditionare
1
def
X I =
.
(4.358)
sepI
60 Variantele rapide se obt
in de obicei prin utilizarea unor norme matriceale care se calculeaz
a
mai usor (cum sunt k k1 sau k
k ). In acest fel se obtin estim
ari care difer
a de valoarea real
a
printr-un factor cel mult egal cu mn, perfect acceptabil n practica numeric
a.

355

4.10. CONDIT
IONARE
In particular, daca I contine un singur element, i.e. I = {i} numarul
def

X i =

1
sepi

(4.359)

exprima conditionarea vectorului propriu asociat valorii proprii i a matricei A.


Pentru detalii recomandam consultarea referintelor bibliografice [ IV ], [ VI ], [ VIII ].

4.10.2

Conditionarea valorilor si vectorilor proprii


pentru matrice hermitice

A. Conditionarea valorilor proprii


Desigur, toate dezvoltarile privitoare la conditionarea valorilor proprii pentru matricele nehermitice raman valabile si pentru matricele hermitice, iar n cazul real,
pentru matricele simetrice. Pe de alta parte matricele hermitice 61 prezinta numeroase particularitati interesante si din acest punct de vedere.
In primul rand, conform teoremei 4.2, o matrice A C
I nn hermitica este unitar
diagonalizabila si are spectrul real, i.e. exista o matrice unitara Q C
I nn astfel
nn
H
ncat Q AQ = = diag(1 , 2 , . . . , n ) IR
. Rezulta ca vectorul propriu
H
xi = Q( : , i), de norma euclidiana unitara, satisface simultan relatia xH
i A = i xi ,
i.e. este si vector propriu la st
anga asociat aceleiasi valori proprii. Rezulta ca
numerele de conditionare ale valorilor proprii i , definite de (4.331), sunt
i =

1
1
= H
= 1,
si
|xi xi |

i = 1 : n.

(4.360)

Prin urmare, valorile proprii ale matricelor hermitice (n cazul real, simetrice) sunt
perfect conditionate, variatiile (absolute) ale valorilor proprii induse de perturbatii
n matricea initiala nedepasind nivelul acestor perturbatii.


1.000 0.900
Exemplul 4.11 Fie matricea simetrica A =
IR22 cu val0.900 1.000
orile proprii exacte 1 = 1.9 si 2 = 0.1. Valorile
proprii ale matricelor
simetrice



1.001 0.900
1.000 0.901
perturbate F1 = A + G1 =
, F2 = A + G2 =
0.900
0.901 1.000
 1.001

1.001 0.900
si F3 = A + G3 =
, unde, de fiecare data perturbatiile sunt sime0.900 1.000
trice, = 103 si kGi k = 1, sunt (F1 ) = {1.901, 0.101}, (F2 ) = {1.901, 0.101},
(F3 ) = {1.9005, 0.1005}, n toate cazurile variatiile absolute ale valorilor proprii
nedepasind valoarea lui . In schimb, variatiile relative ale valorii proprii mai mici
sunt de aproximativ 20 de ori (i.e raportul celor doua valori proprii) mai mari decat
variatiile relative ale valorii proprii mai mari.
Conditionarea excelenta a valorilor proprii ale unei matrice simetrice se manifest
a si la perturbatii nesimetrice (desi nu se mai poate garanta
ca matricele

 per1.000 0.901
turbate au un spectru real). Astfel pentru F4 = A + G4 =
avem
0.900 1.000
(F4 ) = {1.9005, 0.0995}.
3
61

Majoritatea rezultatelor sunt adev


arate pentru cazul mai general al matricelor normale.

356

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Subliniem, n ncheierea acestui paragraf, ca alte evaluari utile ale efectelor


perturbatiilor n datele initiale sunt consecinte directe ale teoremelor 4.6 si 4.7.
B. Conditionarea vectorilor proprii si a subspatiilor invariante
Desi valorile proprii ale matricelor hermitice sunt perfect conditionate nu acelasi
lucru se poate spune despre vectorii proprii si subspatiile invariante, a caror conditionare este dependenta, la fel ca n cazul general, de separarea seturilor de valori
proprii carora le sunt asociate de restul spectrului matricei date. Singura particularitate, mentionata deja ntr-unul din paragrafele precedente, consta n faptul ca
parametrii de separare sepi , respectiv sepI , definite n (4.354), coincid cu distantele
dintre spectre gapi , respectiv gapI , definite n (4.355) si, n consecinta, se calculeaza
mult mai usor.

4.11

Stabilitatea numeric
a a algoritmului QR

O problema de calcul numeric rau conditionata nu poate fi rezolvata bine ntr-un


mediu de calcul aproximativ. In schimb, o problema bine conditionata poate fi
rezolvata prost daca nu se utilizeaza un algoritm corespunzator. Contributia unor
algoritmi concreti de calcul la nivelul erorilor din rezultate, un atribut esential al
calitatii lor, este apreciata cu ajutorul conceptului de stabilitate numeric
a si se face
curent prin evaluarea acestei contributii n echivalent erori n datele initiale (vezi
cap. 0). In acest sens, amintim c
a un algoritm este considerat numeric stabil daca
rezultatele oferite de executia sa sunt rezultate exacte ale problemei cu date initiale
ce difera de datele reale la nivelul erorilor de reprezentare, eventual multiplicate cu o
functie de dimensiunea problemei avand o crestere modesta. Garantia tinerii sub
control a erorilor de calcul se poate da numai pentru probleme bine conditionate,
cu restrictia utilizarii unor algoritmi numeric stabili.
Pentru probleme de calcul netriviale, cum este calculul valorilor si vectorilor
proprii, analiza erorilor introduse de calculul n virgula mobila este o sarcina extrem
de dificila. Mai mult, stabilirea unor margini cat mai exacte ale erorilor (reduse la
nivelul datelor initiale) nici nu are o relevanta majora. Asa cum reiese dintr-o
experienta ce poate fi considerata semnificativa, un obiectiv mai important al analizei numerice l constituie sesizarea unor situatii de instabilitate numerica, situatii
n care utilizarea algoritmului respectiv trebuie interzisa. De aceea, n continuare
ne propunem sa prezentam, fara demonstratii sau justificari matematice profunde,
rezultatele existente n literatura de specialitate referitoare la stabilitatea numerica
a algoritmilor prezentati n acest capitol si, n primul rand, a algoritmului QR.
Rezultatul principal consta n faptul ca algoritmul QR de calcul al valorilor si
vectorilor proprii ai unei matrice n n reale sau complexe A este numeric stabil si
acest fapt se datoreaza esential utilizarii exclusive a transformarilor unitare 62 (n
cazul real, ortogonale). Concret, forma Schur (n cazul real, reala sau complexa)
calculat
a S este o forma Schur exact
a a unei matrice A = A + E foarte apropiate
62 Procedura de echilibrare, singura care nu utilizeaz
a transform
ari unitare, a fost astfel conceput
a nc
at toate calculele sunt exacte, deci nu apar probleme de stabilitate.


4.11. STABILITATE NUMERICA
de matricea initiala, i.e.

357

S = QH (A + E)Q,

(4.361)

unde Q este o matrice unitara si E o matrice a erorilor raportate la datele de intrare


ale algoritmului satisfacand conditia
kEk p(n)kAkM ,

(4.362)

cu p(n) o functie de ordinul matricei, cu o crestere modesta 63 .


Daca se acumuleaza transformarile, atunci matricea de transformare calculata
este aproape unitara n sensul ca
Q
H Q
= In + E,
Q

cu

kEk p(n)kAkM .

(4.363)

Prin urmare, valorile proprii calculate cu algoritmul QR, ca si vectorii proprii calculati sau subspatiile invariante calculate sunt valori proprii exacte, vectori proprii exacti sau subspatii invariante exacte ale unor matrice foarte apropiate
de matricea data. Aceasta nseamna ca nivelul erorilor n rezultate va fi redus
daca problema concreta respectiva este bine conditionata, respectiv poate fi important n cazul unei conditionari necorespunzatoare. Asa cum s-a mentionat, pentru
aprecierea erorilor din rezultate, pachetele profesionale de programe permit estimarea numerelor de conditionare si, pe aceasta baza estimarea erorilor conform
celor aratate n sectiunea precedenta. Consideram util sa prezentam n finalul acestei sectiuni astfel de estimari ale erorilor de calcul al valorilor proprii, vectorilor
proprii si subspatiilor invariante cu algoritmii propusi n capitolul de fata. Vom
utiliza notatia consacrata cu accentpentru valorile calculate.
Matrice generale (nehermitice)
Valori proprii:

i i | p(n)kAkM .
|
i

(4.364)

(
xi , xi )

p(n)kAkF M
.
sepi

(4.365)

(SI , SI )

p(n)kAkF M
.
sepI

(4.366)

Vectori proprii:

Subspatii invariante:

Matrice hermitice (n cazul real, simetrice)


Valori proprii:

i i | p(n)kAkM .
|
i

(4.367)

63 Practic pentru tot


i algoritmii prezentati n acest capitol, p(n) este o functie polinomial
a de un
grad modest (1, 2 sau, foarte rar, 3) de parametri ce definesc dimensiunea problemei. Expresiile
existente, la un moment istoric dat, pentru p(n) sunt, n general, evalu
ari pesimiste si cunoasterea
exact
a a acestor expresii este lipsit
a de semnificatie pentru practica numeric
a. In [ XV ] se afirm
a
c
a o apreciere de genul p(n) < 10n este adev
arat
a n majoritatea situatiilor practice pentru care
se foloseste formula de evaluare functie cu o crestere modest
a.

358

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

Vectori proprii:

Subspatii invariante:

(
xi , xi )

p(n)kAkF M
.
gapi

(4.368)

(SI , SI )

p(n)kAkF M
.
gapI

(4.369)

Pentru detalii recomandam consultarea referintelor bibliografice [ XI ], [ XII ], [ XV ].

4.12

Rutine LAPACK si MATLAB

LAPACK. Calculul valorilor si vectorilor proprii ai unei matrice A este efectuat


n LAPACK de cateva rutine driver, diferentiate de tipul matricei (generala sau
simetrica) si de gradul de detaliere a rezultatelor.
Pentru matrice generale exist
a doua categorii de rutine driver.
1. Rutina xGEES calculeaza forma Schur a matricei A si eventual vectorii Schur,
folosind algoritmul QR. Forma Schur poate fi ordonata, n sensul ca o submultime a valorilor proprii, aleasa de utilizator, se va afla n coltul stanga-sus al
formei Schur (ca n schema FSC ORD p ).
Driverul expert xGEESX calculeaza n plus numerele de conditie ale valorilor
proprii.
2. Rutina xGEEV calculeaza valorile si eventual vectorii proprii ai matricei A.
Rutina expert xGEEVX poate efectua suplimentar si scalarea matricei (ca n
algoritmii din sectiunea 4.7) sau calcula numerele de conditie ale valorilor
proprii.
Pentru matricele simetrice, driverul simplu xyyEV (unde yy este SY, HE, SP, HP,
SB, HB, ST; ultima notatie este pentru matrice simetrice tridiagonale) calculeaza
valorile si, eventual, vectorii proprii, utilizand algoritmul QR simetric.
Rutina expert xyyEVX poate calcula si toate sau numai o submultime a valorilor
proprii si, optional, vectorii proprii corespunzatori.
Rutinele de calcul sunt mult mai numeroase, de aceea ne vom margini la
prezentarea celor mai importante.
Pentru matrice generale, diversele faze ale calculului sunt implementate astfel:
xGEHRD realizeaza reducerea unei matrice oarecare A la forma Hessenberg
H prin transformari de asemanare ortogonale (ca n algoritmul HQc din
sectiunea 4.4.1).
xHSEQR implementeaza faza iterativa a algoritmului QR, transformand H n
forma Schur, cu acumularea optionala a transformarilor (si deci obtinerea
vectorilor Schur).

4.12. RUTINE LAPACK S


I MATLAB

359

vectorii proprii ai matricei A sunt calculati fie cu rutina xTREVC, care utilizeaza
forma Schur (problema este deci de a calcula vectorii proprii ai unei matrice
(cvasi-)triunghiulare), fie cu rutina xHSEIN, care utilizeaza forma Hessenberg
si metoda puterii inverse, foarte eficienta cand valorile proprii sunt disponibile,
dar care functioneaza si far
a ca acestea sa fi fost calculate.
Alte rutine utile sunt urmatoarele:
xGEBAL realizeaza scalarea (echilibrarea) matricei A; se utilizeaza n conjunctie
cu rutina complementara xGEBAK, care reface vectorii proprii ai matricei A din
cei ai matricei scalate (evident, valorile proprii sunt identice).
xTRSEN ordoneaza forma Schur prin aducerea n coltul stanga-sus a unei
submultimi de valori proprii descrise de utilizator.
xTREXC aduce o singura valoare proprie n pozitia dorita (aceasta rutina trebuie apelata repetat pentru a realiza o permutare completa, ca n algoritmul
FSR ORD).
xTRSYL rezolva ecuatia Sylvester cvasi-triunghiulara.
xTRSNA calculeaza numerele de conditie ale valorilor proprii.
Pentru matrice simetrice, etapele de calcul sunt implementate de
xyyTRD efectueaza reducerea unei matrice simetrice (hermitice) la forma tridiagonala reala, prin transformari de asemanare ortogonale.
xSTEQR calculeaza valorile si, optional, vectorii proprii ai unei matrice tridiagonale, implementand faza iterativa a algoritmului QR simetric. Exista nca
alte cateva rutine cu aceeasi functionalitate, dar utilizand algoritmi diferiti; de
exemplu xSTEBZ implementeaza metoda bisectiei (vezi algoritmul BISECT).
xSTEIN calculeaza vectorii proprii (eventual numai unii dintre acestia) ai unei
matrice tridiagonale, utilizand metoda puterii inverse.

MATLAB. Valorile si vectorii proprii ai unei matrice generale A pot fi calculate


cu
[V, D] = eig(A)
V fiind matricea vectorilor proprii (posibil complecsi), iar D o matrice diagonala
continand valorile proprii. Apelul simplu eig(A) returneaza un vector continand
valorile proprii. Functia eig implementeaza algoritmul QR.
Reducerea la forma Hessenberg a matricei A se face cu functia hess, care acumuleaza optional transformarile.
Forma Schur a matricei A si, optional, vectorii Schur, se obtin cu functia schur.
Echilibrarea matricei A se realizeaza cu functia balance.

360

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

O functie pentru ordonarea formei Schur se gaseste n Control Toolbox 64 .


Aceasta se numeste schord si implementeaza algoritmul FSC ORD, adica permuta complet forma Schur. Functia utilizeaza numai forma Schur complexa, adica
o matrice superior triunghiulara. In cazul real, trebuie apelate functiile rsf2csf si
csf2rsf pentru transformarea ortogonala a unei forme Schur reale ntr-una complexa (nainte de ordonare) si invers (dupa aceea).
Nu exista nici o functie speciala pentru matrice simetrice.

4.13

Probleme

P 4.1 Se consider
a date matricele
A=

"

3
1
1

3
5
3

2
2
0

B=

"

4
8
4

0
3
1

8
9
9

Folosind definitiile, calculati valorile proprii ale celor dou


a matrice si c
ate un vector propriu
asociat fiec
arei valori proprii. Sunt cele dou
a matrice diagonalizabile? Verificati.
P 4.2 In cadrul capitolului, cazul real a fost tratat adesea ca un caz particular al cazului complex. In acest context, este IRn un subspatiu liniar al spatiului C
I n ? Justificati
r
aspunsul.

A 0
, suma direct
aa
0 B
matricelor A si B. Demonstrati c
a C este diagonalizabil
a dac
a si numai dac
a A si B sunt
diagonalizabile.
P 4.3 Fie matricele A C
I mm , B C
I nn si matricea C =

nn
P 4.4
av
and structura bloc superior triunghiular
a
 a o matrice A IR
 Se consider
A1 A12
. Dac
a matricele A1 si A2 sunt diagonalizabile, este diagonalizabil
a si
A=
0
A2
matricea A? Argumentati r
aspunsul.

P 4.5 Fie matricele A C


I mn , B C
I nm . Demonstrati c
a (AB) (BA) dac
amn
si (BA) (AB) dac
a m n. In cazul, m 6= n, care dintre valorile proprii ale matricei
de ordin mai mare (dintre matricele AB si BA) nu sunt valori proprii ale matricei de ordin
mai mic ?
P 4.6 Perechea de matrice (A, B) C
I nn C
I nn se numeste diagonalizabil
a (sau, echivalent, matricele A si B se numesc simultan diagonalizabile) dac
a exist
a o matrice nesingular
a
def

X C
I nn astfel nc
at X 1 (A, B)X = (X 1 AX, X 1 BX) = (A , B ), cu A , B diagonale. Demonstrati: a) Dac
a A este diagonalizabil
a, atunci perechea (A, In ) este
diagonalizabil
a pentru toti C.
I b) Dac
a (A, B) este diagonalizabil
a, atunci matricele
A si B comut
a. c) Presupunem c
a matricele A si B sunt diagonalizabile. Atunci A si B
comut
a dac
a si numai dac
a perechea (A, B) este diagonalizabil
a. d) Dati un exemplu de
dou
a matrice care comut
a si care nu sunt simultan diagonalizabile.
P 4.7 Dac
a matricele A, B C
I nn comut
a, atunci au un vector propriu comun.
64 Colect
iile de functii MATLAB dedicate unor domenii specializate si nef
ac
and parte din setul
de baz
a al limbajului poart
a numele consacrat de toolbox.

361

4.13. PROBLEME

P 4.8 Fie 1 , 2 dou


a valori proprii distincte ale unei matrice A C
I nn si x1 un vector
propriu la dreapta asociat lui 1 , iar y2 un vector propriu la st
anga asociat lui 2 . Ar
atati
c
a cei doi vectori sunt ortogonali, i.e. y2H x1 = 0.
P 4.9 Dac
a (A), este o valoare proprie simpl
a a unei matrice A C
I nn si x, respectiv
y, sunt vectori proprii la dreapta, respectiv la st
anga, asociati lui , atunci y H x 6= 0. Dati
un exemplu n care aceast
a conditie nu este satisf
acut
a dac
a nu este o valoare proprie
simpl
a.
P 4.10 Se consider
a o matrice A C
I nn diagonalizabil
a. Ar
atati c
a exist
a vectorii
proprii
(la
dreapta)
x
,
i
=
1
:
n,

s
i
vectorii
proprii
la
st
a
nga
y
,
i
=
1
:
n,
astfel
nc
at
i
i
Pn
A = i=1 i xi yiH .
P 4.11 S
a se demostreze lema 4.4.

P 4.12 Fie date o matrice A C


I nn si un polinom p() = n + p1 n1 + . . . + pn1 + pn .
Consider
am matricea
def

P = p(A) = An + p1 An1 + . . . + pn1 A + pn In .


S
a se arate c
a dac
a i (A), atunci p(i ) (P ) si dac
a xi este un vector propriu al
matricei A, asociat valorii proprii i , atunci el este si vector propriu al matricei P asociat
valorii proprii p(i ).
P 4.13 Fie date o matrice A C
I nn si o functie rational
a r() =
def

def

p()
. Definim matricele
q()

def

P = p(A), Q = q(A) si, dac


a Q este nesingular
a, R = Q1 P . Ar
atati c
a dac
a i (A)
si xi este un vector propriu al matricei A asociat valorii proprii i , atunci r(i ) (R),
iar xi este si vector propriu al matricei R asociat valorii proprii r(i ).
P 4.14 Fie o matrice nesingular
a A C
I nn . Dac
a kk este o norm
a matriceal
a consistent
a,
def

ar
atati c
a num
arul de conditionare la inversare (A) = kAk kA1 k satisface inegalitatea
max(|i (A)|)
(A)
.
min(|i (A)|)

P 4.15 a) O matrice patrat


a A se numeste nilpotent
a dac
a exist
a un num
ar natural k
astfel nc
at Ak = 0. Ar
atati c
a o matrice nilpotent
a are toate valorile proprii nule. Dati un
exemplu de matrice nilpotent
a nenul
a. b) O matrice A C
I nn se numeste idempotent
a
2
dac
a A = A. Ar
atati c
a o matrice idempotent
a nu poate avea alte valori proprii n afar
a
de 0 si 1. Dati un exemplu de matrice idempotent
a nenul
a si diferit
a de matricea unitate.

P 4.16 a) C
ati vectori proprii (la dreapta) liniar independenti poate avea o celul
a Jordan

1
1

de ordinul n? Dar la stanga ? b) Aratati ca o celula Jordan


J =
..

. 1

de ordin n 2 nu poate fi diagonalizat


a prin transform
ari de asem
anare. c) Calculati
expresia analitic
a a matricei Jk unde J este o celul
a Jordan de ordin n cu elementele
diagonale egale cu . Exist
a k IN astfel nc
at Jk s
a fie diagonalizabil
a ? d) Calculati
expresia analitic
a a matricei J1 , unde 6= 0. Este J1 diagonalizabil
a?

362

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

P 4.17 Ce rang (i.e. num


arul maxim de linii sau coloane liniar independente) poate avea o
matrice superior Hessenberg H C
I nn ireductibil
a (i.e. cu toate elementele subdiagonale
nenule)? Se poate diagonaliza o matrice superior Hessenberg ireductibil
a cu valori proprii
multiple? Justificati r
aspunsul.
P 4.18 Fie o matrice A C
I nn de forma

C=

p1
1
0
..
.
0

p2
0
1
..
.
0

..
.

pn1
0
0
..
.
1

pn
0
0
..
.
0

a) S
a se arate c
a polinomul caracteristic al matricei A este

p() = n + p1 n1 + . . . + pn1 + pn .
b) S
a se arate c
a matricea C este nesingular
a dac
a si numai dac
a pn 6= 0 si n aceast
a
situatie s
a se calculeze matricea C 1 . Care este polinomul caracteristic al matricei C 1 ?
c) Presupun
and c
a r
ad
acinile i , i = 1 : n, ale polinomului p(), sunt cunoscute, s
a se
calculeze c
ate un set de vectori proprii pentru matricele C si C T . d) Matricile C si C T
poart
a numele de matrice companion ale polinomului p(). Puteti preciza si alte matrice
care s
a justifice aceast
a denumire?
P 4.19 a) Calculati valorile si vectorii proprii pentru o matrice de rotatie. b) Calculati
valorile si vectorii proprii pentru un reflector elementar.
P 4.20 Demonstrati c
a o matrice normal
a triunghiular
a este diagonal
a. In particular, o
matrice hermitic
a (simetric
a) sau unitar
a (ortogonal
a) triunghiular
a este diagonal
a.
22
P 4.21 Ar
atati c
a o matrice
A
este normal
a dac
a si numai dac
a este simetric
a

 IR

sau are structura A =
.

P 4.22 Demonstrati urm


atorul rezultat important. O matrice real
a A IRnn este
normal
a dac
a si numai dac
a este ortogonal cvasi-diagonalizabil
a, i.e. exist
a o matrice ortogonal
a Q IRnn astfel nc
at QT AQ = diag(A1 , A2 , . . . , Ap ), unde Ai sunt

 blocuri reale
i i
.
1 1 sau 2 2, cu blocurile 2 2 cu valori proprii complexe de forma Ai =
i i
P 4.23 Se consider
a o matrice arbitrar
a A C
I nn . Demonstrati urm
atoarele asertiuni.
a) Matricile F = AH + A, G = AH A, H = AAH sunt hermitice. b) Matricea K = A AH
este antihermitic
a. c) Matricea A poate fi descompus
a, n mod unic, n suma A = B + C,
unde B este hermitic
a (numit
a partea hermitic
a a lui A), iar C este antihermitic
a (numit
a
partea antihermitic
a a lui A). d) Matricea A poate fi descompus
a, n mod unic, n suma
A = S + iT , unde S si T sunt matrice hermitice.
P 4.24 Fie A, B C
I nn dou
a matrice hermitice si C, D C
I nn dou
a matrice antihermitice. Demonstrati urm
atoarele asertiuni. a) Matricile F = A + B, cu , IR,
G = Ak , cu k IN , K = C 2k , si, dac
a A este nesingular
a, L = A1 sunt matrice hermitice. b) Matricile M = C + D, cu , IR, N = C 2k+1 si, dac
a C este nesingular
a,
P = C 1 sunt matrice antihermitice.

363

4.13. PROBLEME

P 4.25 Demonstrati c
a o matrice A C
I nn este normal
a dac
a si numai dac
a partea sa
hermitic
a (vezi problema 4.23) comut
a cu partea sa antihermitic
a.
P 4.26 Ar
atati c
a o matrice A C
I nn este normal
a dac
a si numai dac
a kAxk2 = kAH xk2
pentru toti x C
I n.
P 4.27 Fie A C
I nn si multimea de indici I = { i1 , i2 , . . . , ik }, cu i1 < i2 < . . . < ik ,
ij 1 : n. Matricea B = A(I, I) se numeste submatrice principal
a a lui A. a) Dac
a
matricea A este hermitic
a (antihermitic
a), atunci si B este hermitic
a (antihermitic
a).
b) Dac
a matricea A este normal
a, f
ar
a a fi hermitic
a sau antihermitic
a, este B normal
a?
P 4.28 Fie A C
I nn o matrice hermitic
a si x C
I n un vector nenul, arbitrar, fixat.
H
x Ax
Not
am = H
c
atul Rayleigh asociat lui x. Ar
atati c
a fiecare din intervalele (, ]
x x
si [, ) contin cel putin o valoare proprie a matricei A.
P 4.29 Fie o matrice hermitic
a A C
I nn . Se numeste p-sectiune a lui A o matrice
H
pp
(hermitic
a) B = Q AQ C
I
, unde Q C
I np este o matrice av
and coloanele ortogonale
(i.e. satisface conditia QH Q = Ip ). Ar
atati c
a dac
a spectrele (A) = { 1 , 2 , . . . , n } si
(B) = { 1 , 2 , . . . , p } sunt ordonate descresc
ator, atunci k k , k = 1 : p, precum si
pk+1 nk+1 , k = 1 : p.
P 4.30 Fie A C
I nn o matrice hermitic
a. Ar
atati c
a A are o valoare proprie situat
a n
intervalul [ a11 , a11 + ], unde = kA(1, 2 : n)k2 .
P 4.31 Dati dou
a exemple de matrice simetrice complexe, din care una s
a fie normal
a
si cealalta nu. Retineti din aceast
a situatie c
a exist
a o diferent
a esential
a ntre matricele
simetrice reale si matricele simetrice complexe 65 .
P 4.32 Fie A C
I nn . Ar
atati c
a pentru orice scalar > 0 exist
a o norm
a matriceal
a
consistent
a k k (posibil dependent
a de A si ) pe C
I nn astfel nc
at
kAk (A) + ,
unde (A) este raza spectral
a a matricei A.
P 4.33 O matrice A C
I nn se numeste convergent
a dac
a limk Ak = 0. Demonstrati
c
a o matrice este convergent
a dac
a si numai dac
a (A) < 1.
P 4.34 S
a se determine localiz
ari pentru valorile proprii ale matricelor
A=

"

3
2
1

2
4
1

1
0
5

B=

"

0
1
1

1
4
1

2
1
3

C = A + iB,

utiliz
and teorema discurilor lui Gershgorin.
P 4.35 Utiliz
and teorema discurilor lui Gershgorin, stabiliti o margine superioar
a pentru
raza spectral
a a unei matrice. Comparati acest rezultat cu cel oferit de teorema 4.10.
P 4.36 a) Fie A IRnn si o matrice diagonal
a de scalare D = diag(1 , 2 , . . . , n ), i > 0,
i = 1 : n. Stabiliti localizarea spectrului matricei A aplic
and teorema discurilor Gershgorin
matricei scalate B = D1 AD. Poate scalarea s
a conduc
a la o localizare mai bun
a?
65

Pentru propriet
atile matricelor simetrice complexe se poate consulta [ II ].

364

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

=
b) Fie A IR22 o matrice cu toate elementele pozitive. S
a se determine matricea D
1
1

= diag(1 , 2 ) astfel nc
at kD ADk = min1 ,2 IR+ kD ADk , unde D = diag(1 , 2 ).
Ce relatie exist
a ntre acest minim si raza spectral
a a matricei A ? Renunt
 and la condit
 ia
2 2
ca elementele matricei A s
a fie pozitive, ar
atati c
a pentru matricea A =
avem
3 4
(A) < min1 ,2 IR+ kD1 ADk .

"

5
8
8
8
7 16 . Folosind teorema
P 4.37 Se consider
a matricea simetric
a A =
8 16
7
discurilor lui Gershgorin s
a se extrag
a maximum de informatie privind localizarea valorilor
proprii ale matricei A. Puteti mbun
at
ati localizarea prin scalare ?
P 4.38 Se spune c
a o matrice A C
I nn este
diagonal dominant
a dac
a |aii | ri
P(strict)
n
(|aii | > ri ) pentru toti i 1 : n, unde ri =
|a
|
sunt
razele
discurilor
Gershgorin.
ij
j=1
j6=i

a) Demonstrati c
a o matrice strict diagonal dominant
a este nesingular
a. b) Dac
a o matrice
strict diagonal dominant
a are elementele diagonale reale si pozitive atunci Rei (A) > 0
pentru toti i. c) Dac
a A C
I nn strict diagonal dominant
a este hermitic
a si aii > 0,
i = 1 : n, atunci i (A) > 0 pentru toti i.
P 4.39 Demonstrati inegalit
atile
a) |detA|

n
n
Y
X
i=1

j=1

|aij |

b) |detA|

n
n
Y
X
j=1

i=1

P 4.40 (Teorema lui Ostrovski) Fie A C


I nn . Not
am cu ri =
ci =

Pn

i=1
i6=j

|aij |

Pn

j=1
j6=i

|aij | si, respectiv,

|aij |, razele discurilor Gershgorin pentru matricele A si, respectiv, AT . De

asemenea, fie [0, 1] fixat. Atunci (A) D, unde D este reuniunea discurilor
D=

n
[

i=1

Di ,

Di = z C
I | |z aii | ri c1
.
i

P 4.41 (Teorema lui Brauer) Fie A C


I nn . Atunci (A) D, unde D este reuniunea
1
celor 2 (n 1)n ovaluri Cassini definite de
D=

unde ri =

P 4.42

Pn

j=1
j6=i

n
[

i,j=1
i6=j

Oi ,

Oi = {z C
I | |z aii ||z ajj | ri rj } ,

|aij |, i = 1 : n, sunt razele discurilor Gershgorin.

Calculati forme Schur pentru matricele A =

1
2

2
3

, B =

1
1

1
1

C = A + iB. In cazul matricelor reale determinati at


at formele Schur reale c
at si cele
complexe.

365

4.13. PROBLEME

P 4.43 Fie matricea A C


I nn si U C
I nk o matrice cu coloanele ortogonale (i.e.
H
kk
U U = Ik ). Dac
a functia f : C
I
IR+ este definit
a de f (X) = kAU U XkF , ar
atati
c
a f admite un minim care se atinge pentru X = U H AU . Care este valoarea acestui
minim ?
P 4.44 Presupunem c
a matricea A C
I nn are valorile proprii distincte si c
a B C
I nn
H
comut
a cu A, i.e. AB = BA. Ar
atati c
a dac
a Q AQ = S este descompunerea Schur a lui
A, atunci T = QH BQ este superior triunghiular
a.
P 4.45 a) Dat un vector nenul x C
I n , elaborati un algoritm de calcul al unui vector
n
H
v C
I astfel nc
at v x = 1. b) Presupunem c
a matricea A C
I nn are valorile proprii
i , i = 1 : n, iar xi , i = 1 : n, sunt vectori proprii asociati. Fie un vector v C
I n astfel
nc
at v H x1 = 1 si matricea B = (In x1 v H )A. Ar
atati c
a (B) = { 0, 2 , . . . , n }, iar
B
H
vectorii xB
a un set de vectori proprii ai matricei B.
1 = x1 , xi = xi (v1 xi )x1 formeaz
P 4.46 a) Fie doi vectori nenuli x, y C
I n astfel nc
at y H x = 1. Demonstrati existenta
nn
si stabiliti un mod de calcul al matricelor X, Y C
I
care satisfac conditiile Xe1 = x,
Y e1 = y si Y H X = In . b) Fie A C
I nn , o valoare proprie simpl
a a lui A si x, y vectorii
proprii la dreapta, respectiv la st
anga, ai lui A asociati lui . Demonstrati existenta si
stabiliti un mod
de calcul
al matricei X C
I nn care realizeaz
a o deflatie diagonal
a, i.e.


0
1
X AX =
. c) Presupun
and c
a dispuneti de o procedur
a de calcul al unui
0 B
vector propriu al unei matrice date, av
and sintaxa x = vp(A), elaborati un algoritm de
diagonalizare a unei matrice A C
I nn simple.

"

5 8
P 4.47 a) Care va fi rezultatul aplic
arii metodei puterii matricei A =
0 1
0 0
b) Discutati, n raport cu parametrii reali si , rezultatul aplic
arii metodei
"
#
1 1
0 1 .
matricei B =
0 1 1

1
2
?
2
puterii

P 4.48 Presupunem c
a n locul conditiei de terminare a iter
arii din algoritmii 4.1 si 4.2, de
implementare a metodei puterii si, respectiv, a metodei puterii inverse, utilizati conditia
ca norma diferentei dintre vectorii calculati la doi pasi consecutivi s
a devin
a inferioar
a
unei tolerante impuse, i.e.
ek = ky (k) y (k1) k < tol.
Scrieti, n limbajul de programare preferat, programe pentru implementarea algoritmilor
mentionati si testati-le pe mai multe exemple. Puteti explica de ce o astfel de conditie de
trunchiere nu functioneaz
a ntodeauna pentru sirurile de vectori a c
aror directie converge,
totusi, c
atre o directie proprie? Considerati at
at cazul real c
at si cel complex.
P 4.49 Presupun
and c
a dispuneti de o procedur
a de calcul al unui vector propriu al unei
matrice A C
I nn date, procedur
a av
and sintaxa x = vp(A), elaborati un algoritm de
calcul al unei formei Schur a matricei A. Ce relatie exist
a ntre vectorii proprii utilizati
pentru calculul formei Schur si cei ai matricei A ?
P 4.50 Elaborati un algoritm pentru reducerea unei matrice A IRnn la forma superior
Hessenberg H = T AT 1 , unde T este o secvent
a de transform
ari elementare stabilizate
Mi Pi , i = 2 : n 1 (de tipul celor utilizate, de exemplu, la eliminarea gaussian
a).

366

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

P 4.51 Presupunem A C
I nn si z C
I n date. Elaborati un algoritm pentru calculul unei
matrice unitare (n cazul real, ortogonale) Q astfel nc
at QH AQ este superior Hessenberg
si QH z este coliniar cu vectorul e1 .
P 4.52 Fie H IRnn o matrice superior Hessenberg. Scrieti un algoritm care s
a testeze
dac
a H este n form
a Schur real
a.
P 4.53 Elaborati un algoritm pentru calculul valorilor si vectorilor proprii ai matricei
A = In + uv H , unde u, v C
I n sunt vectori nenuli dati.
P 4.54 Se consider
a dat
a o pereche (valoare proprie, vector propriu asociat)= (, x) real
a
a unei matrice H IRnn superior Hessenberg. Elaborati un algoritm de calcul
al unei


fT
matrice ortogonale Q astfel nc
at matricea QT HQ sa aib
a structura QT HQ =
,
0 G
unde matricea G IR(n1)(n1) este n form
a superior Hessenberg.
P 4.55 Fie matricea superior Hessenberg H IRnn si urm
atoarea procedur
a recurent
a
de calcul al matricei succesor H H :
1. Se aplic
a matricei H procedura de triangularizare prin eliminare gaussian
a cu pivotare partial
a Mn1 Pn1 . . . M1 P1 H = R, unde Pk sunt matrice de permutare
elementare, Mk matrice inferior triunghiulare elementare, iar R este o matrice superior triunghiular
a.
1
2. H H = RP1 M11 . . . Pn1 1Mn1
,

care defineste o iteratie a algoritmului LR modificat (un precursor al algoritmului QR).


Ar
atati c
a matricea succesor H a) are o structur
a superior Hessenberg si b) este asemenea
cu matricea H.
P 4.56 Se consider
a matricea bloc superior triunghiular
a
A=

"

A11
0
0

A12
A22
0

A13
A23
A33

cu A22 IR22 av
and valori proprii complexe si distincte de valorile proprii ale matricelor
A11 si A33 . Se cere s
a se calculeze un subspatiu A-invariant real asociat valorilor proprii
ale matricei A22 , i.e. vectorii liniar independenti x1 , x2 IRn care s
a formeze o baz
a a
acestui subspatiu.
P 4.57 Calculati valorile si vectorii proprii pentru matricele simetrice A, B si pentru
matricea hermitic
a C, unde
A=

1
2

2
3

B=

"

1
2
3

2
4
5

3
5
6

C=

"

1
1i
i

1+i
2
1 + i

i
1 i
3

Verificati c
a vectorii proprii sunt ortogonali.
P 4.58 Fie o matrice hermitic
a A = AH C
I nn . Adaptati algoritmul TQ pentru
tridiagonalizarea unitar
a a matricei A astfel nc
at matricea T = QH AQ s
a fie tridiagonal
a,
simetric
a si real
a.

367

4.13. PROBLEME

P 4.59 Adaptati algoritmul TQ pentru tridiagonalizarea prin transform


ari unitare (ortogonale) de asem
anare a unei matrice antihermitice (antisimetrice) A C
I nn (A IRnn ).


P 4.60 a) Se consider
a matricea H IR
cu valori proprii reale si fie Hk =

matricea curent
a a sirului QR al matricii H. Utiliz
and deplasarea k = calculati
matricea succesor Hk+1 . Ce se poate spune despre convergenta sirului QR din examinarea
expresiei elementului Hk+1 (2, 1)?



not
22
b) Se consider
a matricea simetric
a T IR
si fie Tk =
matricea curent
aa

sirului QR simetric al matricii T . Utiliz
and deplasarea k = calculati matricea succesor
Tk+1 . Ce se poate spune despre convergenta sirului QR simetric din examinarea expresiei
elementelor extradiagonale Tk+1 (1, 2) = Tk+1 (2, 1)?
not

22

0 d
P 4.61 a) Consider
am matricea simetric
a A=
, cu d 6= 0. Calculati valorile
d 0
si vectorii propriiai matricei
 A. b) Fie matricea D = diag(d1 , d2 . . . , dn ), unde di 6= dj ,
0 D
i 6= j, si B =
IR2n2n . Scrieti un algoritm pentru calculul valorilor si
D 0
vectorilor proprii ai matricei B.
P 4.62 a) Fie T IRnn o matrice tridiagonal
a, simetric
a si pozitiv definit
a. Scrieti si
implementati urm
atorul algoritm iterativ:
1. Pentru k = 1, 2, . . .
1. Se calculeaz
a factorul Cholesky L al matricei T .
2. T T = LT L.
Ce constatati? b) Ar
atati c
a n cazul n = 2 si t11 t22 sirul matricelor T calculat de
algoritmul de la punctul a) converge c
atre = diag(1 , 2 ), unde {1 , 2 } = (T ).
P 4.63 a) Se consider
a o matrice tridiagonal
a simetric
a T IRnn . S
a se arate c
a dac
a
T are valori proprii multiple, atunci T nu poate fi ireductibil
a. Mai mult, s
a se arate c
a
dac
a T are o valoare proprie cu ordinul de multiplicitate k 2, atunci are cel putin k 1
elemente subdiagonale (si, corespunz
ator, cele simetrice supradiagonale) nule. b) Aplicati
algoritmul TQ de reducere la forma tridiagonal
a unei matrice simetrice av
and o valoare
proprie multipl
a. Ce constatati ? Puteti da o justificare celor constatate ?
P 4.64 Fie o matrice simetric
a A IRnn si o iteratie Jacobi A A = J T AJ, unde
J(p, q, ) este o rotatie plan
a de unghi n planul (p, q). S
a se arate c
a, pentru ntregii p si
q fixati, rotatia care anuleaz
a elementele A(p, q) si A(q, p) asigur
a minimizarea, n raport
cu unghiul , a normei Frobenius a matricei elementelor extradiagonale ale matricei A .
P 4.65 a) Fie date A =

IR22 , cu (A) = { 1 , 2 }, si un scalar real .

c s
astfel
s c
nc
at (J T AJ)(1, 1) = . b) Consider
am matricea simetric
a A IRnn . Elaborati un
algoritm de calcul al unei secvente de rotatii Jacobi Q = J1 J2 . . . , astfel nc
at matricea
1
T
B = Q AQ s
a aibe toate elementele diagonale egale b11 = b22 = . . . = bnn = tr(A) =
n
1 Pn
=
i (A).
n i=1
Ar
atati c
a, dac
a [1 , 2 ], atunci exist
a o rotatie Jacobi real
a J =

368

CAPITOLUL 4. VALORI S
I VECTORI PROPRII

P 4.66 Elaborati algoritmi tip Jacobi pentru calculul valorilor proprii ale unei matrice
antihermitice (antisimetrice).

1+
1
P 4.67 Fie matricea A =
IR22 , cu 0 < 1. S
a se calculeze
0
1
num
arul de conditionare al celor dou
a valori proprii si al spectrului matricei A. Ce se
nt
ampl
a dac
a 0?
P 4.68 S
a se arate c
a sensibilitatea unei valori proprii simple k (A) n raport cu
variatiile elementului aij = A(i, j) este dat
a de
yk (i)xk (j)
k
=
,
aij
ykH xk
unde xk si yk sunt vectori proprii la dreapta, respectiv la st
anga, ai matricei A asociati
valorii proprii k .
P 4.69 Fie matricea bidiagonal
a A IRnn

n
0

A=

0
..
.
0
0

n
n1

0
n

0
..
.
0
0

n2
..
.
0
0

..
.
..
.

0
0

0
0

0
..
.
2
0

0
..
.
n
1

S
a se calculeze num
arul de conditie al valorii proprii k = k. Pentru n = 20 s
a se dea o
evaluare a num
arului de conditie pentru valorile proprii 1 = 1 si 20 = 20. Pentru acelasi
n = 20 s
a se calculeze, cu ajutorul functiei eig din MATLAB, valorile proprii ale matricei
care difer

A
a de A numai prin elementul A(20,
1) = 0.01. Ce constatati ?
P 4.70 Se consider
a matricea superior Hessenberg A IRnn

n1
n1

n2
n2

0
..
.

n2
..
.

n2
..
.

0
0

0
0

0
0

n
n1

A=

..
.
..
.
..
.

2
2
2
..

2
1

1
1
1
..
.
1
1

a) Ar
atati c
a detA = 1. b) Fie matricea perturbat
a F = A + E, unde E = G, cu
matricea G av
and un singur element nenul G(n, 1) = 1. Ar
atati c
a detF = 1 (n 1)!.
Evaluati detF pentru n = 20 si = 1010 . c) Pentru n = 10, calculati cu ajutorul functiei
eig din MATLAB, vectorii proprii la st
anga si la dreapta si, pe aceast
a baz
a, numerele de
conditionare max si min ale valorilor proprii maxim
a si, respectiv, minim
a ale matricei
A. Ce constatati ?
P 4.71 a) Elaborati un algoritm performant de calcul al polinomului caracteristic al unei
matrice.
b) Elaborati un algoritm performant de rezolvare a ecuatiilor algebrice, i.e. a ecuatiilor
de tipul p() = 0 unde p este un polinom cu coeficenti reali sau complecsi.

Capitolul 5

Descompunerea valorilor
singulare
Descompunerea valorilor singulare (DVS) joaca un rol fundamental n evidentierea
proprietatilor structurale legate nemijlocit de conceptul de rang matriceal. In contextul calcului numeric se impune o reevaluare a notiunii de rang ntrucat, datorita tolerantelor admise, definirea uzuala capata un caracter ambiguu. In aceste
circumstante, devine utila introducerea conceptului de distanta pana la o matrice
de rang imediat inferior si a notiunii pragmatice de rang numeric.
Calculul DVS este intim legat de conceptul de ortogonalitate fiind bazat, n
exclusivitate, pe utilizarea transformarilor unitare (ortogonale). Acest fapt induce
calitati numerice remarcabile tuturor procedurilor de rezolvare a problemelor ce
apeleaza la DVS.
In ceea ce priveste aplicatiile, n cadrul general al matricelor de rang nemaximal,
DVS constituie cel mai bun mijloc numeric de rezolvare a numeroase probleme de
metrica euclidiana cum sunt problema generala a celor mai mici patrate, calculul
bazelor ortogonale pentru subspatii liniare etc.

5.1
5.1.1

Formularea problemei
Valori singulare. Descompunerea valorilor singulare

Avand n vedere conexiunea intim


a a descompunerii valorilor singulare cu conceptul
de rang 1 , vom introduce mai ntai definitia uzuala a notiunii de rang matriceal.
Fie A C
I mn 2 .
1 Unele dintre not
iunile utilizate n continuare au fost definite, ntr-un context introductiv, n
capitolul 1. Pentru confortul cititorului, prefer
am reluarea acestora n cadrul extins si specializat
al capitolului de fat
a.
2 Vom considera cazul, mai general, al matricelor complexe. Particularizarea rezultatelor cu
caracter teoretic pentru matrice reale este imediat
a reduc
andu-se, practic n toate situatiile, la
nlocuirea operatorului hermitic (i.e. de transpunere si conjugare) cu operatorul de transpunere.
In dezvolt
arile algoritmice cazul matricelor reale va fi tratat distinct.

370

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Definitia 5.1 Rangul r al matricei A este num


arul maxim de coloane liniar independente ale lui A, sau, echivalent,
r = rangA = dim(ImA).

(5.1)

Se poate arata (vezi cap. 1) c


a rangA = rangAT si, astfel, orice matrice are
acelasi numar maxim de linii si coloane liniar independente. Deci, rangul unei
matrice A este dimensiunea maxim
a a unei submatrice nesingulare A(I, J ), I =
= {i1 , i2 , . . . , ir }, J = {j1 , j2 , . . . , jr } a lui A.
In vederea elaborarii unor proceduri fiabile de determinare numerica a rangului
suntem interesati n definirea transformarilor matriceale pentru care rangul este un
invariant. In acest sens introducem
Definitia 5.2 Dou
a matrice A, B C
I mn se numesc echivalente dac
a exist
a mamm
tricele nesingulare S C
I
si T C
I nn astfel nc
at
B = SAT.

(5.2)

Dac
a matricele S si T sunt unitare, atunci vom spune c
a A si B sunt unitar echivalente.

In cazul real este suficient s


a ne rezum
am la matrice de transformare reale.

Intr-o astfel de situatie, dac


a matricele S si T sunt ortogonale vom spune c
a A si
B sunt ortogonal echivalente.
In vederea determinarii rangului unei matrice date vom urma o cale deja familiara
din capitolele precedente, respectiv, vom calcula o matrice de acelasi rang cu matricea data la care rangul sa poata fi evaluat prin simpla inspectie. Astfel de matrice
sunt matricele cu structura diagonala la care rangul este, evident, egal cu numarul
elementelor diagonale nenule. Din motive de fiabilitate numerica ne vom restrange
la utilizarea transformarilor unitare, respectiv ortogonale n cazul real.
Avem urmatorul rezultat important.
Teorema 5.1 (Descompunerea valorilor singulare - DVS) Dac
a A C
I mn ,
mm
nn
atunci exist
a matricele unitare U C
I
si V C
I
astfel nc
at


1 0
U H AV = =
,
(5.3)
0 0
unde
cu
Expresia

1 = diag(1 , 2 , ..., r ) IRrr ,

(5.4)

1 2 ... r > 0.

(5.5)

A = U V H

(5.6)

defineste descompunerea valorilor singulare a matricei A. Numerele nenegative


i = 1 : p, p = min(m, n) (i = 0, i = r + 1 : p) se numesc valori singulare
matricei A. Coloanele matricei unitare U se numesc vectori singulari la stanga,
coloanele lui V se numesc vectori singulari (la dreapta) ai matricei A.

In cazul real se obtine acelasi rezultat, cu matricele U si V ortogonale, i.e.


vectorii singulari reali.

i ,
ale
iar
cu

371

5.1. FORMULAREA PROBLEMEI

Demonstratie. Daca A = 0, atunci (5.3)-(5.5) sunt satisfacute de r = 0, U = Im ,


V = In , = 0. Daca A 6= 0, atunci kAk2 6= 0 si, folosind tehnica inductiei finite,
vom obtine matricea cu structura din (5.3) n r pasi.
Pasul 1 . Conform definitiei normei spectrale exista un vector de norma euclidiana unitara v1 C
I n , pentru care kAk2 = maxkxk2 =1 kAxk2 = kAv1 k2 si fie u1 C
Im
Av1
1 C
definit de u1 =
avand, evident, ku1 k2 = 1. Fie, acum, U
I m(m1) si
kAk2
3
V1 C
I n(n1) complet
u
 ari ale vectorilor

 1 si v1 pana la matrice unitare , i.e. astfel
1 , V1 = v1 V1 sa fie unitare. Atunci
ncat matricele U1 = u1 U

(1) def

U1H AV1

uH
1 Av1
H Av1
U
1

uH
1 AV1
H
AV1
U
1

1
0

wH
B1

H Av1 = U
H u1 kAk2 = 0 si unde am utilizat notatiile evidente
ntrucat U
1
1
def

1 = uH
1 Av1 = kAk2

(5.7)

def
def H

si wH = uH
ntrucat transformarile unitare
1 AV1 , B1 = U1 AV1 . In continuare,
(1)
conserva norma spectrala, avem k k2 = kAk2 = 1 si





(1) 1 2 12 + wH w 2

=
= (12 + wH w)2 + kB1 wk22 (12 + kwk22 )2 .


B1 w
w 2
2

Pe de alta parte, datorita consistentei normei spectrale, avem




 2



(1) 1 2


k(1) k22 1 = 12 (12 + kwk22 ).

w
w 2
2

Rezulta 12 + kwk22 12 , i.e. kwk2 = 0 sau w = 0. Deci




1 0
(1) = U1H AV1 =
0 B1

(5.8)

si obiectivul primului pas este atins.


Pasul k . Presupunem ca n primii k 1 pasi ai procedurii de diagonalizare am
obtinut
 (k1)

1
0
(k1)
H
H H

= Uk1 U2 U1 AV1 V2 Vk1 =


,
0
Bk1
(k1)

unde 1
= diag(1 , 2 , . . . , k1 ), cu 1 2 . . . k1 > 0. Daca Bk1 =
0, atunci r = k 1 si procedura este ncheiata. Daca Bk1 6= 0, atunci cu
k si Vk astfel ncat
argumentele de la pasul 1 exist
a matricele unitare U


kH Bk1 Vk = k 0
U
,
k = kBk1 k2 > 0.
(5.9)
0 Bk
3 Pentru argumentarea existent
ei acestor complet
ari si a modalit
atilor de calcul, vezi observatia
4.3 din capitolul 4.

372

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

k ), Vk = diag(Ik1 , Vk ) rezulta
Definind matricele unitare Uk = diag(Ik1 , U
 (k)

1
0
(k)
H (k1)
= Uk
Vk =
,
(5.10)
0
Bk
(k)

cu 1 = diag(1 , 2 , . . . , k ).
Pentru a ncheia demonstratia este suficient sa aratam ca k k1 . Din
expresia (5.9), scrisa pentru pasul k 1, avem


k1

0
kBk1 k = k .
k1 = kBk2 k2 =
2

0
Bk1 2

In concluzie, procedura de diagonalizare poate fi initiata si apoi continuata.


Astfel, fie vom obtine Br = 0 pentru r < p, fie procedura se va incheia cu r = p =
= min(m, n), i.e.
 (r)

1
0
(r) = UrH U2H U1H AV1 V2 Vr = U H AV =
,
(5.11)
0
0
unde
U = U1 U2 ...Ur ,
def

V = V1 V2 ...Vr

(5.12)

def

(r)

sunt matrice unitare. Cu 1 = 1 si = (r) obtinem (5.3). Demonstratia este


completa.
In cazul matricelor reale cursul demonstratiei este identic cu mentiunea ca n
locul transformarilor complexe se utilizeaza transformari reale, i.e. ortogonale. 3
Exemplul 5.1 Este usor de verificat ca matricea


1.60 0.36 0.48
A=
1.20 0.48 0.64
admite o DVS A = U V T definit
a de
U=

0.8 0.6
0.6 0.8

, =

2 0
0 1

0
0

1 0
, V = 0 0.6
0 0.8

0
0.8
0.6

si are, evident, valorile singulare 1 = 2 si 2 = 1. Matricea B = AT are, la fel de


evident, aceleasi valori singulare si B = V T U T este o DVS a sa. Valorile singulare
ale unei matrice reale au o interpretare interesanta n geometria spatiului euclidian.
Concret, valorile singulare nenule ale matricei A IRmn sunt lungimile semiaxelor
hiperelipsoidului E = AS ImA IRm unde S este hipersfera cu centrul n origine
si de raza unitara din IRn , i.e.
E = {y IRm | y = Ax, x IRn , kxk2 = 1}.
In figura 5.1 sunt reprezentate elipsele EA si EB pentru matricele A, de mai sus, si

373

5.1. FORMULAREA PROBLEMEI


x3 IR3
6
'$
1
* x1
0 

x2 &%

y
1 = 2-  2
H'
$
ImA
= IR2
HH

2 = 1 6 HH 
?
HH
HH
EA&
HH
%

j
y1


y3
6

x2 IR2
6
'$
1
* x1


0
&%


1 = 2-

#




=1
2

1

y

EB"

!

3
T
ImA IR

y2

Fig. 5.1: O interpretare geometrica a valorilor singulare


B = AT . De remarcat faptul ca EA include si punctele interioare ale elipsei n timp
ce EB cuprinde numai punctele de pe frontiera.
3

Fie o matrice A C
I mn cu rangA = r si DVS A = U V H . In continuare vom
utiliza intensiv urmatoarele notatii ce definesc partitii ale matricelor de transformare
U si V induse de structura matricei .
def

def

U2 = U ( : , r+1 : m),

def

V2 = V ( : , r+1 : n).

U1 = U ( : , 1 : r),
V1 = V ( : , 1 : r),

def

(5.13)

Prezentam doua consecinte imediate ale teoremei 5.1.


Corolar 5.1 Orice matrice A C
I mn poate scris
a ca sum
a de produse externe de
vectori singulari ponderate cu valorile singulare, i.e. cu notatiile (5.13) avem
A = U1 1 V1H =

r
X

j uj vjH ,

(5.14)

j=1

def

unde matricele Wj = uj vjH , j = 1 : r poart


a numele de componente principale ale
matricii A.
Corolar 5.2 Fie o matrice A C
I mn cu rangA = r. Atunci exist
a matricele
mm
nn
nesingulare S C
I
si T C
I
astfel nc
at


Ir 0
SAT =
,
(5.15)
0 0

374

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

i.e. orice matrice este echivalent


a cu o matrice cu structura din (5.15).
Demonstratie.
Fie A = U H V DVS a matricei A si matricele nesingulare P, R
1 def
1
1
1
rr
C
I
astfel ncat P 1 R = Ir , e.g. P = R = 1 2 = diag(1 2 , 2 2 , . . . , r 2 ).
Atunci (5.15) este satisfacuta, de exemplu, de catre matricele nesingulare S =
= diag(P, Imr )U H si T = V diag(R, Inr ).
3
Vom nota cu (A) multimea valorilor singulare ale matricei A. Rescriind (5.3)
n forma AV = U sau AH U = V T obtinem imediat relatiile
Avj = j uj ,

AH uj = j vj ,

j = 1 : p,

p = min(m, n),

(5.16)

care indica o analogie cu definirea vectorilor proprii ale unei matrice patrate si
constituie o justificare pentru denumirea de vectori singulari data coloanelor uj ,
respectiv vj , ale matricelor U si V care definesc DVS. Mai mult, vectorii singulari
din (5.16) sunt efectiv vectori proprii ai unor matrice derivate din matricea A (vezi
teorema urmatoare). De remarcat si faptul ca, desi echivalenta (5.15) apare ca o
reducere completa dictata de necesitatile de evidentiere a rangului unei matrice,
echivalenta unitara (ortogonala) care defineste DVS ofera, prin valorile si vectorii
singulari, o informatie mult mai bogata, utila n numeroase evaluari cantitative.
Demonstratia prezentata pentru teorema 5.1 nu are un caracter constructiv
ntrucat calculul vectorului pentru care se realizeaza norma spectrala prezinta dificultati majore. Alegerea acestei demonstratii se datoreaza ordonarii naturale a valorilor singulare si evidentierii conexiunii stranse dintre valorile singulare si norma
spectrala.
O modalitate de calcul al DVS este oferita de urmatorul rezultat.
Teorema 5.2 Valorile singulare nenule ale matricei A C
I mn sunt r
ad
acinile
p
atrate (pozitive) ale valorilor proprii nenule ale matricelor hermitice pozitiv semidefinite
B = AH A C
I nn sau C = AAH C
I mm ,
(5.17)
i.e. dac
a 1 2 r > 0, sunt cele r valori proprii nenule ale lui B (sau
C), atunci
p
i = i ,
i = 1 : r.
(5.18)
Mai mult, vectorii singulari la st
anga ui = U ei , i = 1 : m, sunt vectori proprii ai
matricei C, iar vectorii singulari (la dreapta) vj = V ej , j = 1 : m, sunt vectori
proprii ai matricei B.

In cazul real, asertiunile de mai sus sunt adev


arate, cu mentiunea c
a matricele
B si C sunt simetrice pozitiv semidefinite.
Demonstratie.

Din (5.3) obtinem

B = AH A = V T U H U V H = V T V H = V
H

C = AA

= U V V U

= U U

=U

21
0

0
0

21
0

0
0

V H,
(5.19)
H

U .

375

5.1. FORMULAREA PROBLEMEI

Prin urmare, matricea B este unitar asemenea cu matricea diagonala S1 = T =


= diag(12 , 22 , . . . , r2 , 0, . . . , 0), respectiv matricea C este unitar asemenea cu matricea diagonala S2 = T = diag(12 , 22 , . . . , r2 , 0, . . . , 0), de unde rezulta imediat
toate asertiunile teoremei.
3
Un rezultat similar, care conexeaza valorile singulare ale unei matrice cu valorile
proprii ale altei matrice, este prezentat n propozitia urmatoare.
Propozitia 5.1 Fie matricea A C
I mn , p = min(m, n) si 1 , 2 , . . . , p valorile
singulare ale matricei A. Atunci valorile proprii ale matricei


0
A
F =
(5.20)
AH 0
sunt 1 , 2 , . . . , p , 1 , 2 , . . . , p si |m n| valori proprii nule.
Consideram cazul m n (cazul m < n se trateaza absolut
def
def
similar). Fie A = U V H DVS a matricei A, S = (1 : n, :), U
= 12 U (1 : n, :),
Demonstratie.

def
def
U
= U (n+1 : m, :) si V =
def

Q =
este unitara si ca

1 V
2

. Atunci, prin calcul direct, se constata ca matricea



U

U
C
I (m+n)(m+n)
(5.21)
V
0

S
G = QH F Q = 0
0

0
S
0

0
0 .
0

Cum (F ) = (G) si S = diag(1 , 2 , . . . , n ), propozitia este demonstrata.

(5.22)
3

Observatia 5.1 Teorema 5.1 arata ca orice matrice admite o DVS dar nu afirma
nimic despre unicitatea acestei descompuneri. Utilizand si teorema 5.2 putem sa
facem cateva consideratii asupra acestui aspect.
In primul rand, valorile singulare ale unei matrice A C
I mn , fiind radacinile
patrate pozitive ale valorilor proprii ordonate ale matricelor AH A sau AAH , sunt
unic determinate.
In ceea ce priveste unicitatea matricelor de transformare este suficient sa ne
marginim la cazul 4 m n.
Daca cele m valori singulare sunt distincte, atunci sunt distincte si valorile proprii ale matricei hermitice AAH . In aceasta situatie, coloanele matricei de transformare U , fiind vectori proprii de norma euclidiana unitara ai matricei AAH , sunt
determinate pana la multiplicarea cu numere complexe de modul unitar. Cu alte
cuvinte, n conditiile mentionate, matricea U este determinata pana la o postmultiplicare cu o matrice diagonala m m cu elementele diagonale de modul unitar,
i.e. daca avem doua DVS
A = U1 V1H = U2 V2H ,
4 Cazul matricelor cu m n se reduce la cel analizat dac
a n locul matricei A se consider
a
matricea AH C
I nm . Dac
a A = U V H este o DVS a lui A, atunci AH = V T U H este o DVS
a matricei AH .

376

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

atunci
cu D = diag(ei1 , ei2 , . . . , eim ),

U2 = U1 D

j IR, j = 1 : m.

(In cazul real, cu matrice de transformare reale, matricea U este determinata, evident, pana la semnul coloanelor sale.)
Daca m = n, A este nesingulara si U este fixata, atunci matricea este nesingulara si V este unic determinata de V = 1 U H A.
Daca m < n, atunci are (cel putin) ultimele n m coloane nule si, deci,
ultimele n m coloane ale matricei V sunt date de orice completare pana la o
matrice unitara a primelor m coloane, i.e. n mod sigur matricea V nu este unic
determinata.
3
In continuarea acestei sectiuni introductive prezentam unele generalizari derivate
din conceptul de valori singulare.

5.1.2

Descompunerea polar
a

Fie A C
I mn , rangA = r si DVS (5.3) A = U V H a lui A. Utilizand notatiile
(5.13) si introducand noile notatii


= U (:, 1 : n) daca m n
U
(1 : n, :) daca m n
,
S=
,
(:, 1 : m) daca m n
V = V (:, 1 : m) daca m n
(5.23)
putem sa scriem
A = U1 V1H V1 1 V1H = W P1

sau A = U1 1 U1H U1 V1H = P2 W,

(5.24)

unde
def

def

W = U1 V1H C
I mn ,
si
A=
unde

P1 = V1 1 V1H C
I nn ,

def

P2 = U1 1 U1H C
I mm
(5.25)

SV H = U
V H V SV H = Y P1 daca m n
U
,
H

U S V = U SU H U V H = P2 Z daca m n

def H
Y = U
V C
I mn ,

def

Z = U V H C
I mn .

(5.26)

(5.27)

Este usor de constatat ca matricele P1 si P2 sunt hermitice si pozitiv semidefinite cu


rangP1 = rangP2 = rangA, Y este o matrice cu coloanele ortogonale (i.e. Y H Y =
= In ), Z este o matrice cu liniile ortogonale (i.e. ZZ H = Im ) si, n consecinta,
matricele Y si Z au norma spectrala unitara. In cazul real, evident, matricele W ,
P1 , P2 , Y si Z pot fi reale.
Putem introduce urmatoarea definitie.
Definitia 5.3 Factorizarea
A=

Y P1
P2 Z

daca m n
daca m n

(5.28)

377

5.1. FORMULAREA PROBLEMEI

unde matricele P1 , P2 , Y si Z sunt cele definite mai sus, se numeste descompunerea


polara 5 a matricei A.
Fie matricele hermitice, pozitiv semidefinite B = AH A, C = AAH si descompunerile lor spectrale B = V B V H si C = U C U H , unde B = diag(1 , 2 , . . . , n ),
1

def

def

C = diag(1 , 2 , . . . , m ), cu toti i nenegativi. Definim B 2 = V B2 V H =


1

1 def
def
= V diag( 1 , 2 , . . . , n )V H si, similar, C 2 = U A2 U H .
Se poate arata (exercitiu pentru cititor) ca matricele P1 si P2 din descompunerea
1

polara sunt unic determinate de P1 = (AH A) 2 , respectiv de P2 = (AAH ) 2 , iar


matricele Y si Z sunt unic determinate daca r = n, respectiv r = m.

5.1.3

Descompunerea CS

In operarea numerica cu subspatii liniare se dovedeste a fi extrem de utila asa numita


descompunere CS 6 (DCS) a matricelor unitare (ortogonale) care, printre altele,
permite introducerea notiunii de distanta dintre subspatii n cazul multidimensional
si care are conexiuni naturale cu DVS. Introducem DCS prin urmatoarea teorema.
Teorema 5.3 Fie o matrice unitar
a Q C
I nn cu urm
atoarea partitie


Q11 Q12
Q=
,
Q11 C
I kk , Q22 C
I ll , k + l = n.
Q21 Q22
Atunci exist
a matricele unitare U1 , V1 C
I kk si U2 ,


H 



Q11 Q12
V1 0
U1 0
=
W=
Q21 Q22
0 V2
0 U2

(5.29)

V2 C
I ll astfel nc
at

C S
0
S C
0 pt. k l
0
0 Ilk

Ikl
0
0
0
C S pt. k > l
0
S C
(5.30)

unde

C = diag(c1 , c2 , . . . , cp ) IRpp

S = diag(s1 , s2 , . . . , sp ) IRpp

cu

c1 c2 . . . cp ,

cu

s1 s2 . . . sp ,

p = min(k, l) si c2i + s2i = 1, i = 1 : p , i.e. ci si si pot fi scrise sub forma

ci = cos i , si = sin i , cu 0 1 2 . . . p .
2

(5.31)

(5.32)

Egalitatea (5.30) se numeste descompunerea CS a matricei unitare Q.

In cazul real, i.e. atunci c


and Q este ortogonal
a, matricele de transformare bloc
diagonale pot fi reale, i.e. ortogonale.
5 Denumirea de descompunere polar
a este justificat
a de analogia cu reprezentarea polar
a
z = ei a numerelor complexe, la care factorul este nenegativ, iar factorul ei are modulul
unitar.
6 Denumirea CS provine de la init
ialele functiilor cosinus si sinus, matricea ortogonal
a transformat
a av
and aspectul unei rotatii generalizate (vezi mai departe).

378

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Demonstratie. Consideram cazul k l = nk. Fie Q11 = U1 CV1H DVS a blocului


Q11 unde C = diag(c1 , c2 , . . . , ck ) cu 1 c1 c2 . . . ck 0, prima inegalitate
datorandu-se faptului ca 1 (Q) = 1 si c1 = 1 (Q11 ) 1 (Q) (vezi exercitiul 5.7).
Consideram acum matricea
 H
 
 

0
V1 0
C
U1H Q12
= U1
Q
Q
=
,
0
Il
0 Il
Q21 V1
Q22
care este unitara ca produs de matrice unitare. Din egalitatea blocurilor
H Q
= In obtinem
relatia Q

11

din

def

2
2 2
2
2
V1H QH
21 Q21 V1 = Ik C = S = diag(s1 , s2 , . . . , sk ),
p
cu s2i = 1 c2i , i = 1 : k. Luand si = 1 c2i , obtinem 0 s1 s2 . . . sk 1.
In continuare vom presupune ca matricea S este nesingulara 7 . Fie acum matricea
def
U21 = Q21 V1 S 1 care are coloanele ortogonale (verificati!) si U22 o completare a
def
sa pana la o matrice unitara, i.e. astfel ncat matricea U2 = [ U21 U22 ] C
I ll sa
fie unitara (vezi si observatia 4.3). Avem
"
#
"
# "
#
H
U21
S 1 V1H QH
S
21 Q21 V1
H
U2 Q21 V1 =
Q21 V1 =
=
.
H
H
U22
U22
U21 S
0

Mai departe, matricea


=
Q

U1H
0

0
U2H

V1
0

0
Il

 C 
S
=
0

U1H Q12
U2H Q22

Q
H = In conduce la
din Q
 2
  2

S 0
C
0
.
U
=
I

=
U2H Q22 QH
l
22 2
0 0
0 Ilk

este unitara. Egalitatea blocurilor

22

In continuare vom presupune ca matricea C este nesingulara 8 . Definim matricea


V2 prin
 1

C
0
def
H
V2 = Q22 U2
0
Ilk
care, n virtutea ultimei relatii de mai sus, este unitara si


C
0
H
U2 Q22 V2 =
.
0 Ilk
7

Dac
a S este singular
a, atunci s1 = s2 = . . . = sq = 0 pentru un q l si corespunz
ator
sunt eT respectiv ei
c1 = c2 = . . . = cq = 1. In acest caz primele q linii si coloane ale matricei Q
i
i = 1 : q care au deja structura din (5.30) si pot fi separate (pentru detalii suplimentare se poate
consulta si demonstratia teoremei ce urmeaz
a). Demonstratia pentru restul matricei decurge ca
mai sus.
8 Dac
a C este singular
a, atunci cq = cq+1 = . . . = cl = 0 pentru un q 1 si corespunz
ator
sq = sq+1 = . . . = sl = 1. In acest caz se procedeaz
a similar cu modul prezentat n nota de picior
precedent
a.

5.1. FORMULAREA PROBLEMEI

379

def
In sfarsit, notand U def
= diag(U1 , U2 ), V = diag(V1 , V2 ) obtinem urmatoarea
structura a matricei W

C X
Y
W = U H QV = S C
0 ,
0 0 Ikl
def

unde [ X Y ] = U1H Q12 V2 .


Rezultatul urmarit se obtine imediat din faptul ca matricea W este unitara, din
egalitatea W H W = In rezultand X = S si Y = 0.
In cazul k > l = nk se ncepe cu descompunerea valorilor singulare ale blocului
Q22 , dupa care cursul demonstratiei este similar cu cel de mai sus.
In cazul real toate transformarile unitare utilizate pot fi luate ortogonale, cursul
demonstratiei fiind identic.
3

5.1.4

Descompunerea valorilor singulare generalizate

O generalizare posibila a descompunerii valorilor singulare este diagonalizarea simultana a doua matrice sau, echivalent, diagonalizarea unui fascicol matriceal, prin
transformari de echivalenta. Conditiile n care acest demers este posibil sunt enuntate n teorema de mai jos.
Teorema 5.4 Descompunerea valorilor singulare generalizate (DVSG). Fie matricele A C
I mn cu m n si B C
I pn 9 astfel nc
at KerA KerB = {0}. Atunci
mm
exist
a matricele unitare U C
I
si V C
I pp precum si matricea nesingular
a
W C
I nn astfel nc
at


S




pentru p n
C
0
U H AW =
,
V H BW =
(5.33)
0



0 S
pentru p < n
unde

C = diag(c1 , c2 , . . . , cn ) IRnn cu 1 c1 c2 . . . cp 0,

nn
cu 0 s1 s2 . . . sn 1, pt. p n

diag(s1 , s2 , . . . , sn ) IR
S = diag(s
pp
np+1 , snp+2 , . . . , sn ) IR

cu 0 = s1 = s2 = . . . = snp snp+1 . . . sn 1, pt. p < n


(5.34)
cu c2i + s2i = 1, i = 1 : n 10 . Perechile (ci , si ), i = 1 : n definesc valorile singulare generalizate ale perechii (A, B), mai exact perechile (ci , si ) cu si = 0 definesc

9 Teorema este enunt


at
a pentru cazul a dou
a matrice cu acelasi num
ar de coloane. Se poate
da si o formulare pentru dou
a matrice A si B cu acelasi num
ar de linii, formulare care se poate
obtine aplic
and enuntul de mai sus matricelor AH si B H . L
as
am detaliile n sarcina cititorului
interesat.
10
In cazul p < n avem c1 = c2 = . . . = cnp = 1 si, de aceea, am introdus n (5.34), prin
conventie si pentru comoditatea notatiilor, numerele s1 = s2 = . . . = snp = 0. De asemenea,
n aceeasi situatie, vom conveni s
a extindem termenul de structur
a diagonal
a pentru matricea
[ 0 S ] (n unele lucr
ari [ VI ] , n cazul p < n, matricea V H BW are structura [ S 0 ] cu S diagonal
a
dar pretul pl
atit este pierderea ordon
arii elementelor diagonale ale matricelor C si S).

380

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

valorile singulare generalizate infinite, iar


i =

ci
IR,
si

si 6= 0,

(5.35)

sunt valorile singulare generalizate finite. Coloanele wi ale matricei nesingulare W


se numesc vectori singulari generalizati ai perechii (A, B) asociati valorilor singulare
generalizate i .

In cazul real, matricele de transformare pot fi alese reale, i.e. W real


a nesingular
a, iar U si V ortogonale.
Demonstratie. Este usor de constatat ca ipoteza KerA KerB = {0} este echivalenta cu faptul ca matricea


A
def
F =
C
I (m+p)n
(5.36)
B
este monica (i.e. are coloanele liniar independente). Fie F = QR factorizarea QR
a matricei F , unde Q C
I (m+p)n este o matrice avand coloanele ortogonale (i.e.
nn
QH Q = In ), iar R C
I
este superior triunghiulara si, n virtutea monicitatii lui
F , nesingulara. De asemenea, fie urmatoarea partitie a matricei Q


Q1
, Q1 C
I mn , Q2 C
I pn .
Q=
Q2
In continuare vom proceda similar cu demonstratia teoremei 5.3 privitoare la de

C
H o DVS a matricei Q1 unde C =
scompunerea CS. Fie Q1 = U CZ
cu
0
C = diag(c1 , c2 , . . . , cn ) IRnn si, cu argumentele din demonstratia teoremei citate, 1 c1 c2 . . . cn 0. Consideram acum matricea
 H



0
C
= U
Q
QZ =
0
Ip
Q2 Z
= In , relatie din care rezulta
H Q
care are, si ea, coloanele ortogonale, i.e. Q
def

2
2
Z H QH
2 Q2 Z = In C = S ,

(5.37)
p
unde S 2 = diag(s21 , s22 , . . . , s2n ) cu s2i = 1 c2i , i = 1 : n. Alegand si = 1 c2i
rezulta S = diag(s1 , s2 , . . . , sn ) cu 0 s1 s2 . . . sp 1. In continuare
distingem doua situatii:
a) Matricea S este nesingular
a (conditie posibila numai daca p n). In acest
1 H H
caz, din (5.37) avem S Z Q2 Q2 ZS 1 = In , i.e. matricea V1 = Q2 ZS 1 C
I pn
are coloanele ortogonale si poate fi completata pana la o matrice unitara, i.e. exista
matricea V2 C
I p(pn) astfel ncat matricea V = [ V1 V2 ] C
I pp este unitara.
Rezulta


S
def
H
H

S = V Q2 Z = V V1 S =
,
0

381

5.1. FORMULAREA PROBLEMEI


relatie cu care obtinem
=
Q

UH
0

0
VH



C
S

QZ =

C
S

(5.38)

de unde
F =

A
B

= QR =

U
0

0
V

Z R=

HR
U CZ
HR
V SZ

(5.39)

In final, datorita nesingularitatii matricei Z H R, din ultima relatie se obtine diagonalizarea simultana urmarita a matricelor A si B, i.e. U H AW = C si V H BW = S
unde W = R1 Z. q.e.d.
b) Daca S este singular
a (ceea ce se ntampla ntotdeuna daca p < n) demonstratia decurge asemanator. Elementele diagonale ale lui S din (5.37) fiind ordonate
crescator, S este singulara numai daca s1 = . . . = sl = 0 pentru un l 1, i.e. (5.37)
se scrie


0 0
2 def 2
=
S
=
(5.40)
Z H QH
Q
Z
=
I

C
2
n
2
0 S2
cu S = diag(sl+1 , sl+2 , . . . , sn ) nesingulara. Notam X = Q2 Z C
I pn si consideram
pl
p(nl)
partitia X = [ X1 X2 ] cu X1 C
I
, X2 C
I
. Din (5.40) avem X1H X1 = 0 de
H
unde rezulta X1 = 0. De asemenea, avem X2 X2 = S2 , deci S1 X2H X2 S1 = Inl ,
def
i.e. matricea V2 = X2 S1 C
I p(nl) are coloanele ortogonale. Consideram si aici
dou
a situatii.
b1) In cazul p n, procedand ca mai sus, i.e. completand V2 cu matricele
V1 C
I pl si V3 C
I p(pn) pana la o matrice unitara V = [ V1 V2 V3 ] 11 putem
scrie



0 0
0 V1H X2
S }n
def
H
H
H
H

S = V Q2 Z = V X = [ 0 V X2 ] = 0 V2 X2 = 0 S =
,
0 }pn
0 V3H X2
0 0

relatie cu care se obtine imediat (5.38) si apoi, cu aceleasi argumente, (5.33). q.e.d.
b2) In cazul p < n avem, n mod necesar, l n p sau n l p si, prin urmare,
completand matricea cu coloanele ortogonale V2 cu matricea V1 C
I p(pn+l) pana
pp
la o matrice unitara V = [ V1 V2 ] C
I
, obtinem

 



0 0 0
0 V1H X2
def
S = V H Q2 Z = V H X = [ 0 V HX2 ] =
=
= 0 S
H

0 V2 X2
0 0 S

unde, de aceasta data, C


I pp S = diag(snp+1 , snp+2 , . . . , sn ) cu 0 = snp+1 =
= . . . = sl < sl+1 sl+2 . . . sn , q.e.d. In acest caz elementele s1 = s2 =
= . . . = snp = 0 conventional introduse nu apar efectiv n structurile matricelor
transformate dar participa la definirea valorilor singulare generalizate infinite.
11 Dac
a V13 C
I p(pn+l) este o completare a matricei V2 p
an
a la o matrice unitar
a, calculat
a
n modul uzual (vezi observatia 4.3), atunci V1 se obtine lu
and oricare l coloane ale matricei V13 ,
iar V3 este definit
a de celelalte p n coloane.

382

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

In cazul real, toate transformarile partiale pot fi alese reale si, n consecinta, toate
rezultatele partiale ca si cele finale sunt reale. Cu aceasta observatie demonstratia
este completa.
3
Observatia 5.2 DVSG poate fi definita si n situatia n care KerA KerB 6= {0},
i.e. matricea F din (5.36) nu este monica. In acest caz, utilizand triangularizarea
unitara cu pivotarea coloanelor (vezi cap. 3), obtinem




A
F =
= Q R T PT,
B
unde Q C
I (m+p)k cu k < n are coloanele ortogonale, R C
I kk este superior
nn
triunghiulara nesingulara iar P IR
este o matrice de permutare. Aplicand
teorema de mai sus matricei G = QR C
I (m+p)k , e.g. n cazul cu matricea S
IRkk nesingulara, conform (5.39), obtinem


U C
1
G = QR =
W
V S

si, deci,
 

A
= G Ik
B

R1 T

PT =

U C
V S

1
W

1R1 T
W

PT =

U [ C 0 ]
V [ S 0 ]

W 1


1 R1 T 1
1 W
W
este o matrice n n nesingulara (M fiind o
unde W = P
0
M
matrice nesingulara (nk)(nk) arbitrara de completare). Rezulta urmatoarea
forma a relatiei (5.33)




C 0
S 0
U H AW =
,
V H BW =
,
(5.41)
0 0
0 0


cele n k coloane nule corespunzand subspatiului KerA KerB.

Am vazut ca valorile singulare ordinare ale unei matrice A sunt radacinile patrate
ale valorilor proprii ale matricelor hermitice pozitiv semidefinite AH A sau AAH (vezi
teorema 5.2). Se poate stabili o legatura similara si ntre valorile singulare generalizate si valorile proprii generalizate ale unui fascicol hermitic pozitiv semidefinit
12
. Concret, avem urmatorul rezultat pe care l formulam utilizand notiuni din
capitolul urmator si, din acest motiv, demonstratia este omisa.
Teorema 5.5 Fie dat
a o pereche de matrice (A, B), A C
I mn , B C
I pn si
H
H
fascicolul matriceal hermitic pozitiv semidefinit F = {A A B B | C}
I cu
+
valorile proprii generalizate

=
{
,

,
.
.
.
,

},

IR
ordonate
descresc
ator.
1
2
n
i

Atunci numerele i = i sunt valorile singulare generalizate ale perechii (A, B).
12 Un fascicol matriceal F = {G H | C}
I definit de perechea (G, H) se numeste hermitic
(n cazul real, simetric), pozitiv semidefinit dac
a matricele G si H sunt hermitice (simetrice), iar
matricea H si pozitiv semidefinit
a.

5.2. PROBLEME DE CALCUL CONEXE

383

Se constata imediat ca valorile singulare generalizate ale perechii (A, In ) sunt


valorile singulare ordinare ale matricei A.
Problema de calcul a acestui capitol este, n primul rand, determinarea valorilor singulare ale unei matrice date. Ca si pana acum, cazul matricelor reale va fi
tratat distinct pentru a asigura maximum de eficienta posibil. Determinarea vectorilor singulari revine la acumularea transformarilor si apare ca necesara n multe
aplicatii.
Observatia 5.3 Teorema 5.2 sugereaza o procedura de determinare a valorilor
singulare ale unei matrice A folosind algoritmul QR simetric pentru calculul valorilor proprii e.g. ale matricei B = AH A. De asemenea, daca se acumuleaza
transformarile din aplicarea algoritmului QR matricei B, se pot calcula matricele
de transformare U si V . Concret, matricea V este chiar matricea de transformare
din descompunerea spectrala ordonata = V H BV a matricei B, iar U se poate
determina cu relatiile (exercitiu pentru cititor)
U = [ U1 U2 ] cu U1 = AV ( : , 1 : r)1
1
si U2 o completare a lui U1 pan
a la o matrice unitara. Din punctul de vedere
al calculului numeric singurul punct slab al unei astfel de proceduri este nsusi
calculul efectiv al matricei B. Ideea adaptarii algoritmului QR simetric astfel ncat
sa se evite formarea matricei B a fost propusa n anul 1965 de catre G.H.Golub si
W.Kahan [30] si a condus la algoritmul DVS prezentat n sectiunea 5.3.
3

5.2

Probleme de calcul conexe

Consideram util sa prezentam n continuare cateva rezultate fundamentale care fac


din DVS un instrument foarte puternic de rezolvare numerica a numeroase probleme
de algebra liniara. In cazurile n care rezolvarea este directa schemele de calcul
propuse se pot implementa ca atare si, pentru a evita repetitii suparatoare, nu mai
sunt prezentati algoritmi formali. Pentru problemele mai dificile detalii practice si
aspecte numerice pot fi gasite n sectiunile 5.5 si 5.6.

5.2.1

Rangul matriceal

Dupa cum se stie (v. si cap. 1), doua matrice echivalente au acelasi rang 13 (o
demonstratie poate fi gasita n [ I ]). Avand n vedere acest lucru din teorema 5.1
rezulta imediat urmatorul rezultat.
Propozitia 5.2 Rangul unei matrice este egal cu num
arul valorilor sale singulare
nenule.
13 Este adev
arat
a si reciproca, i.e. dou
a matrice de aceleasi dimensiuni care au acelasi rang sunt
echivalente.

384

5.2.2

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Norme matriceale

Valorile singulare permit definirea unei clase interesante de norme matriceale unitar
(ortogonal) invariante.
Propozitia 5.3 Fie A C
I mn si (A) = {1 , 2 , , r } valorile sale singulare
nenule. Atunci
! p1
r
X
def
p
|A|p =
i
,
p = 1, 2, . . .
(5.42)
i=1

sunt norme matriceale numite p-norme Schatten. p-normele Schatten sunt invariante la transform
ari unitare, i.e.
|W AZ|p = |A|p ,

(5.43)

oricare ar fi matricele unitare W C


I mm si Z C
I nn .
Demonstratie.

Vezi [ II ].

Urmatoarea propozitie releva legatura stransa dintre p-normele Schatten si unele


norme matriceale uzuale.
Propozitia 5.4 Fie matricea A C
I mn si 1 , 2 , , r valorile sale singulare
nenule. Avem
def
|A|1 = 1 + 2 + + r = kAktr ,
(5.44)
q
|A|2 = 12 + 22 + + r2 = kAkF ,
(5.45)
|A| = 1 = kAk2 ,

(5.46)

i.e. norma urma este definit


a de suma valorilor singulare, norma Frobenius este
egal
a cu r
ad
acina p
atrat
a a sumei p
atratelor valorilor singulare, iar norma spectral
a
a unei matrice coincide cu valoarea singular
a maxim
a.
Demonstratie. Relatia (5.45) rezulta imediat din (5.3) avand n vedere conservarea
normei Frobenius la transformarile unitare (ortogonale). Expresia (5.46) a normei
spectrale rezulta din nsasi demonstratia teoremei 5.1 (vezi (5.7)), q.e.d.
3

5.2.3

Numere de conditionare

Dac
a matricea A este patrata (n n) si nesingulara obtinem evaluari imediate ale
numarului de conditionare la inversare n raport cu normele matriceale uzuale. Intradevar, este usor de vazut din (5.3) ca valorile singulare ale matricei inverse sunt
inversele valorilor singulare ale lui A, i.e. daca (A) = {1 , 2 , , n }, atunci
1
(A1 ) = {n1 , n1
, , 11 }.

(5.47)
q
Prin urmare, kA1 ktr = 11 +21 + +n1 , kA1 kF = 12 + 22 + + n2
si kA1 k2 = 1/n , iar numarul de conditionare la inversare al matricei A are expresiile
def

tr (A) = kAktr kA1 ktr = (1 + 2 + + n )(11 + 21 + + n1 ),

(5.48)

385

5.2. PROBLEME DE CALCUL CONEXE


def

F (A) = kAkF kA1 kF =


si, respectiv,

q
(12 + 22 + + n2 )(12 + 22 + + n2 ), (5.49)
def

2 (A) = kAk2 kA1 k2 =

5.2.4

1
.
n

(5.50)

Pseudoinversa

In continuare vom defini ntr-un cadru general pseudoinversa unei matrice. Desi,
n general, calculul explicit al pseudoinversei este evitat n aplicatii, vom prezenta
totusi exprimarea ei cu ajutorul DVS, exprimare care ofera calea cea mai avantajoasa pentru un eventual calcul al acesteia.
Definitia 5.4 Fie A C
I mn . O matrice X C
I nm care satisface urm
atoarele
patru conditii Moore-Penrose 14

AXA = A

XAX = X
(5.51)
(AX)H = AX

(XA)H = XA
se numeste pseudoinversa matricei A.

Avem urmatoarea teorema de existenta si unicitate.


Teorema 5.6 Orice matrice A C
I mn admite o pseudoinvers
a unic
a. Dac
aA=
H
= U V este DVS a matricei A, atunci pseudoinversa sa este

unde
+ =
este pseudoinversa matricei .

A+ = V + U H ,

(5.52)

(5.53)

1
1
0

0
0

IRnm

Demonstratie.
Existenta psedoinversei se demonstreaza aratand mai ntai ca
(5.53) satisface cele patru conditii din (5.51) si apoi ca acestea sunt satisfacute si de
catre matricea A+ definita n (5.52) (exercitiu pentru cititor). Pentru demonstratia
unicitatii, fie X, Y C
I nm doua pseudoinverse ale matricei A si D = X Y . Din
(5.51) rezulta

ADA = 0,

DAD + DAY + Y AD = D,
(AD)H = AD,

(DA)H = DA.
14

Cele patru conditii Moore-Penrose sunt echivalente cu urm


atoarele trei (vezi [ II ])

AXA = A
X = P AH = AH R

unde P si R sunt dou


a matrice oarecare. Ultimele dou
a conditii exprim
a faptul c
a liniile si coloanele
pseudoinversei sunt combinatii liniare ale liniilor, respectiv ale coloanelor matricei AH .

386

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Utilizand prima din relatiile de mai sus, din penultima obtinem (AD)H AD =
= ADAD = 0, i.e. AD = 0. Similar, din prima si ultima relatie obtinem DA = 0.
Prin urmare satisfacerea celei de a doua din relatiile de mai sus implica D = 0, i.e.
X =Y.
3
Propozitia ce urmeaza ofera o caracterizare interesanta a pseudoinversei.
Propozitia 5.5 Fie A C
I mn . Pseudoinversa X = A+ este unica solutie matriceal
a de norma Frobenius minima a problemei
min
kAX Im kF .
nm

(5.54)

X C
I

Demonstratie.
avem

Intrucat norma Frobenius nu este alterata de transformari unitare,

def

rF (X) = kAX Im kF = kU H AV V H X U H kF = kV H X U H kF =






1 Y11 Ir 1 Y12
1 0
Y11 Y12
H


kV XU Im kF =
Im =

0
Imr
0 0
Y21 Y22
F
def

nm



,

F

unde Y = V XU C
I
si partitia lui Y este conforma cu partitia lui . Evident,
rF (X) este minima atunci cand at
at k1 Y12 kF cat si k1 Y11 Ir kF sunt minime, i.e.,
pentru Y12 = 0 si Y11 = 1
.
Deci,
toate matricele X IRnm care minimizeaza
1
rF (X) sunt de forma
 1

1
0
X = V Y UH = V
UH.
Y21 Y22
 1


0
1

Dar kXkF =
Y12 Y22 este minima pentru Y21 = 0, Y22 = 0. In consecinta,
F
solutia de norma Frobenius minima pentru problema (5.54) este matricea X =
= V + U H = A+ .
3
Din rezultatele de mai sus rezulta ca valorile singulare nenule ale pseudoinversei
sunt inversele valorilor singulare nenule ale matricei initiale, vectorii singulari la
stanga, respectiv la dreapta ai pseudoinversei sunt vectorii singulari la dreapta,
respectiv la stanga, ai matricei initiale asociati valorilor singulare corespondente.
Drept consecinta, obtinem urmatoarea DVS pentru pseudoinversa matricei A
H
A+ = U1 1
1 V1 =

r
X
vj uH
j
j=1

(5.55)

unde uj , vj sunt coloanele j ale matricelor U si, respectiv, V .

5.2.5

Subspatii liniare. Baze ortogonale

Consideram important sa evidentiem faptul ca se pot construi baze ortogonale ale


subspatiilor fundamentale definite de o matrice arbitrara folosind vectorii sai singulari 15 .
15
In capitolul 3 a fost prezentat
a o metod
a alternativ
a de constructie a bazelor ortogonale ale
subspatiilor fundamentale definite de o matrice, metod
a bazat
a pe utilizarea factoriz
arii QR cu

387

5.2. PROBLEME DE CALCUL CONEXE

Propozitia 5.6 Fie A C


I mn av
and rangA = r si = U AV H descompunerea
valorilor sale singulare. Atunci
i) Primele r coloane ale matricei unitare U formeaz
a o baz
a ortogonal
a a
subspatiului imagine al lui A, iar ultimele m r coloane ale lui U formeaz
a o
baz
a ortogonal
a a subspatiului nucleu a lui AH , i.e. cu notatiile (5.13) avem
ImU1 = ImA,

ImU2 = KerAH .

(5.56)

ii) Primele r coloane ale matricei unitare V formeaz


a o baz
a ortogonal
a a subspatiului imagine al lui AH , iar ultimele n r coloane ale lui V formeaz
a o baz
a
ortogonal
a a subspatiului nucleu a lui A, i.e. cu notatiile (5.13) avem
ImV1 = ImAH ,

ImV2 = KerA.

(5.57)

In cazul real toate asertiunile r


am
an adev
arate dac
a operatorul hermitic este nlocuit
cu operatorul de transpunere.
Demonstratie.
i) Din DVS a matricei A avem A = U1 1 V1H . Cum matricea
H
1 V1 este epica obtinem ImA = ImU1 . Evident, coloanele matricei U2 formeaza o
baza ortogonala a complementului ortogonal n C
I n al lui ImU1 =ImA care este acelasi
H
subspatiu cu KerA .
ii) Se repeta rationamentul de mai sus pentru matricea
AH = V T U H .
3
Pentru scopuri mnemotehnice, n figura 5.2 sunt reprezentate, ntr-o forma conventionala, relatiile dintre subspatiile liniare definite de o matrice m n.
'
'$
$
A

ImAH =
A
ImV1 I
@
@
@$H
0a
'
&
%
YH
H
@ A
HH
KerA = ImV2 HH AH
&
%
C
In
&
%

'
$
C
Im
'
$
@
R
@
H
HH ImA = ImU1
HH
ja
H
&
'
$
%
0
KerAH =
ImU2

&
&%
%

Fig. 5.2: Subspatiile liniare fundamentale definite de o matrice A C


I mn si relatiile
dintre ele

pivotarea coloanelor. Desi, din punct de vedere numeric, metoda bazat


a pe DVS este considerat
a
superioar
a, n majoritatea aplicatiilor metoda bazat
a pe factorizarea QR cu pivotarea coloanelor
este la fel de sigur
a fiind, n acelasi timp, mai eficient
a.

388

5.2.6

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Proiectori ortogonali

DVS ofera pe langa baze ortogonale si posibilitatea de calcul a proiectorilor ortogonali pe subspatiile fundamentale definite de o matrice data. Desi notiunea de
proiector ortogonal a mai fost introdusa si utilizata n capitolele 1 si 3, pentru
comoditatea cititorului, reluam problema n contextul DVS.
Definitia 5.5 Fie S C
I n un subspatiu liniar si T = S complementul s
au orton
gonal n C
I . O matrice P C
I nn care satisface conditiile

y = Px S
, x C
In
(5.58)
z =xy T
se numeste matrice de proiectie ortogonala sau proiector ortogonal pe S.
Vectorii y = P x si z = x y se numesc proiectiile ortogonale ale vectorului x
pe S si, respectiv, pe T .
Definitia de mai sus se particularizeaza n mod natural la subspatii liniare din
spatiul vectorial IRn .
Existenta, unicitatea si principalele proprietati ale proiectorilor ortogonali sunt
prezentate sub forma unei teoreme.
Teorema 5.7 Oricare ar fi subspatiul S C
I n proiectorul ortogonal P exist
a si este
unic determinat. Dac
a vectorii v1 , v2 , . . . , vk formeaz
a o baz
a ortogonal
a a lui S,
atunci proiectorul ortogonal are expresia
P = V V H,

def

V = [ v1 v2 vk ] C
I nk .

(5.59)

Matricea de proiectie ortogonal


a P este hermitic
a (simetric
a n cazul real), idempotent
a si coloanele ei genereaz
a subspatiul S, i.e.
P H = P,

P 2 = P,

ImP = S.

(5.60)

Demonstratie. Existenta. Daca S = {0}, atunci P = 0. Pentru un subspatiu cu


dim S = k 1 exista o baza ortogonala. Vom arata ca matricea P definita de (5.59)
este un proiector ortogonal pe S. Intr-adevar, y = P x = V V H x = V w ImV = S
pentru toti x C
I n si daca z = x y, atunci z H V = xH V xH V V H V = 0, i.e.
z S sau, echivalent, z S . Unicitatea. Fie P1 si P2 doi proiectori ortogonali
pe acelasi subspatiu S. Atunci avem
k(P1 P2 )xk22 = (P1 x)H (x P2 x) + (P2 x)H (x P1 x) = 0,

x C
In

ntrucat, conform (5.58), S P1 x (x P2 x) S si S P2 x (x P1 x) S .


Obtinem (P1 P2 )x = 0, x C
I n si, considerand n vectori liniar independenti x,
rezulta P1 = P2 .
In continuare, primele doua relatii (5.60) rezulta imediat din expresia (5.59) a
unui proiector ortogonal. Vom arata acum ca ImP = S oricare ar fi proiectorul
ortogonal pe S. Avem P x S, i.e. ImP S. Reciproc, conform (5.58), pentru
toti y C
I n avem P y S si z = y P y S . Daca y S, atunci avem si y P y S

389

5.2. PROBLEME DE CALCUL CONEXE

i.e. z S S = {0}. Deci z = 0 sau y = P y, i.e. y ImP . Prin urmare rezulta


S ImP si, datorita incluziunii precedente, ImP = S.
3

Conform acestei teoreme, pentru toate matricele V C


I nk ale caror coloane
formeaza baze ortogonale ale aceluiasi subspatiu, matricele V V H sunt aceleasi.
Proiectorul ortogonal pe C
I n este P = In . Proiectorul ortogonal pe un subspatiu
vv H
unidimensional S = Imv, unde v este un vector nenul din C
I n , este P = H .
v v
Fie A C
I mn , A = U V H si subspatiile fundamentale ImA, KerAH din C
I m,
n
H
ImA , KerA din C
I . Asa cum am vazut n paragraful precedent, coloanele matricelor U si V formeaza baze ortogonale pentru toate aceste subspatii. Utilizand
notatiile (5.13) si relatiile (5.56), (5.57), (5.59) obtinem pentru proiectorii ortogonali
pe cele patru subspatii mentionate urmatoarele expresii
P1
P2
P3
P4

= U1 U1H = AA+
= U2 U2H = Im AA+
= V1 V1H = A+ A
= V2 V2H = In A+ A

proiector ortogonal pe
proiector ortogonal pe
proiector ortogonal pe
proiector ortogonal pe

ImA,
KerAH ,
ImAH ,
KerA,

(5.61)

unde A+ este pseudoinversa matricei A. Demonstrarea egalitatilor secunde din


expresiile de mai sus se propune ca exercitiu pentru cititor.
Exemplul 5.2 Consideram matricea

0.9600 1.2800
A = 0.6912 0.9216
0.2016 0.2688

care admite o DVS A = U V T definita de



0.8000 0.3600 0.4800
2 0
0.6000 0.8000

U = 0.5760
0.6848
0.4464 , = 0 0 , V =
0.8000
0.6000
0.1680 0.6336
0.7552
0 0

si are, evident, valorile singulare (A) = {2, 0}. Notand cu uj = U (:, j), j =
= 1 : 3, si vj = V (:, j), j = 1 : 2, coloanele matricelor U si, respectiv, V cele patru
subspatii definite cu ajutorul matricei A sunt (vezi fig. 5.3) ImA = Imu1 , KerAT =
= Im[ u2 u3 ], din IR3 , respectiv ImAT = Imv1 , KerA = Imv2 , din IR2 . Cei patru
proiectori ortogonali sunt

0.6400 0.4608 0.1344


P1 = u1 uT1 = 0.4608 0.3318 0.0968 ,
0.1344 0.0968 0.0282

 T 
0.3600 0.4608 0.1344
u2
0.6682 0.0968 ,
P2 = [ u2 u3 ]
= 0.4608
uT3
0.1344 0.0968
0.9718




0.3600 0.4800
0.6400 0.4800
T
T
P3 = v1 v1 =
,
P4 = v2 v2 =
.
0.4800 0.6400
0.4800
0.3600

390

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

A
P2 y A
H
H A
IRm
 HH
AH

Hy
A 
H
*

HH
A 


 A
H
u3AK
A  
A y1
 
A A
A

H

A
u1
 0 HH
j

H

A
H 
H
jH
H
 A u2
ImA



P1 y HH
A
H
y2
A
T
KerA
A
A
A
y3
6

x2
6
 IRn
P
x
3
KerA

Z
7
 ZZ x

Z
v1 
3

Z v

 

7

Z

}Z2
Z



Z  
x1
Z

Z
Z 
0 Z
~
 Z
P4Z
x

Z
Z

Z
T
ImA 


Fig. 5.3: Subspatii liniare si proiectii ortogonale


(Precizam ca, n majoritatea aplicatiilor, proiectorii sunt utilizati n forma factorizata din (5.61).)
In figura 5.3 sunt prezentate actiunile acestor proiectori ortogonali asupra a doi
vectori arbitrari y si x din IR3 si, respectiv, IR2 .
3

5.2.7

Operatii cu subspatii liniare

In aplicatiile cu suport geometric apare de multe ori necesitatea de a calcula subspatii liniare derivate din subspatii existente cu ajutorul operatiilor uzuale. Natural,
DVS poate fi de un real folos n astfel de situatii. In continuare, vom considera
ca subspatiile date apartin spatiului liniar C
I m 16 si sunt cunoscute prin baze (nu
neaparat ortogonale) ale acestora, iar vectorii din baze se scriu sub forma unor
coloane de matrice omonime, i.e. X = ImX, Y = ImY 17 etc. Subspatiile rezultat
vor fi calculate prin determinarea unor baze ortogonale ale acestora. Asa cum s-a
mai precizat, aspectele numerice legate de utilizarea calculului aproximativ vor fi
discutate ntr-o alta sectiune a acestui capitol aici admitand ipoteza posibilitatii
unui calcul exact.
A. Incluziune si egalitate. Fie X = ImX si Y = ImY doua subspatii liniare
din C
I n cu dimX dimY. Este usor de vazut ca incluziunea X Y are loc daca si
numai daca
rangY = rang[ X Y ]
(5.62)
si, prin urmare incluziunea poate fi testata pe aceasta baza calculand DVS a matricelor Y si [ X Y ]. O cale alternativa, mai economica, se bazeaza pe faptul ca
Pentru subspatii din IRm se procedeaz
a absolut similar.
Matricele X, Y nu sunt neap
arat monice, i.e. pe l
ang
a vectorii din baz
a pot contine drept
coloane si combinatii liniare ale acestora.
16

17

391

5.2. PROBLEME DE CALCUL CONEXE

X Y atunci si numai atunci cand coloanele matricei X apartin lui Y. Numeric,


apartenenta unui vector la un subspatiu se poate constata verificand coincidenta
vectorului respectiv cu proiectia sa ortogonala pe acel subspatiu. In consecinta,
testul incluziunii X Y se poate face cu urmatoarea schema de calcul.
X Y
1. Se calculeaza DVS Y = U V H a matricei Y si fie r = rangY
2. Daca kU1 U1H X Xk = 0, unde U1 = U (:, 1 : r), atunci X Y
Egalitatea a doua subspatii X = ImX si Y = ImY se testeaza e.g. aplicand de doua
ori schema de mai sus pentru verificarea incluziunilor X Y si Y X .
B. Suma a dou
a subspatii liniare. Subspatiul suma al subspatiilor X =
= ImX, Y = ImY din C
I n se defineste prin
def

S = X + Y = {s C
I n | s = x + y, x X , y Y }

(5.63)

si, este simplu de constatat, poate fi scris sub forma


S = ImS,

unde

S = [ X Y ].

(5.64)

In consecinta, daca S = U V H este DVS a lui S, atunci r = rangS este dimensiunea


spatiului suma, iar coloanele matricei U1 = U ( : , 1 : r) formeaza o baza ortogonala
a lui S. Evident, procedura poate fi extinsa pentru calculul sumei a mai multor
subspatii liniare. Celelalte coloane ale matricei U si coloanele matricei V definesc
subspatii evidentiate ntr-un paragraf anterior. De exemplu, coloanele matricei U2 =
= U ( : , r+1 : m) formeaza o baza ortogonala a subspatiului T = S = X Y .
C. Intersectia. Subspatiul intersectie
def

T = X Y = { t C
In | tX & tY}

(5.65)

a subspatiilor X = ImX, Y = ImY din C


I n se poate calcula plecand de la ultima
observatie din aliniatul precedent, i.e. utilizand relatia

T = X Y = (X + Y )

(5.66)

ceea ce presupune calculul a trei DVS conform schemei


X Y v1
1. Se calculeaza
2. Se calculeaza
3. Se calculeaza
matricei [ BX

o baza BX pentru X = KerX H , folosind DVS a matricei X


o baza BY pentru Y = KerY H , folosind DVS a matricei Y
baza cautata a subspatiului T = X Y, utilizand DVS a
BY ]

O procedura alternativa, mai economica, se bazeaza pe DVS S = [ X Y ] = U V H


a matricei S din (5.64) din care rezulta
[ X Y ]V ( : , r+1 : nx +ny ) = XV2X + Y V2Y = 0,

392

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

unde r este rangul lui S, cu nx , ny s-a notat numarul de coloane al matricelor X,


respectiv Y , V2X = V (1 : nx , r+1 : nx+ny ) si V2Y = V (nx+1 : nx+ny , r+1 : nx +ny ).
Avem
T = X Y = ImXV2X = ImY V2Y .
(5.67)

Intr-adevar, e.g. daca t ImXV2X , atunci pentru un anumit vector u avem t =


= XV2X u = Y V2Y u, respectiv, cu notatii evidente, t = Xw = Y z, i.e. t T .
Reciproc, daca t T , atunci
t = Xw = Y z pentru anumit
w si z, de

 i vectori

w
V2X
unde Xw + Y z = 0, i.e.
KerS = ImV2 cu V2 =
. Prin urmare,
z
V2Y


w
= V2 u pentru un anumit u, i.e. w = V2X u si z = V2Y u, de unde rezulta
z
t ImXV2X si t ImY V2Y . Deci, (5.67) este adevarata si poate fi utilizata pentru
calculul unei baze ortogonale a subspatiului intersectie conform urmatoarei scheme
de calcul.
X Y v2
1. Se calculeaza DVS S = U V H a matricei S = [ X Y ]

V H a matricei T = XV2X sau T = Y V2Y


2. Se calculeaza DVS T = U
Notam cu rangul matricei T . Baza ortogonala cautata a subspatiului
( : , 1 : )
intersectie T este U
D. Aplicatii liniare. Fie o aplicatie liniara A : C
In C
I m . Pentru baze
mn
fixate, aplicatiei A i se asociaza matricea A C
I
astfel ncat corespondentei
x 7 y = A(x) i se asociaza relatia numerica y = Ax. Fie acum un subspatiu liniar
X din C
I n . Atunci multimea
Y = AX = {y C
I m | y = Ax, x X }

(5.68)

este un subspatiu liniar din C


I m numit subspatiul imagine a lui X prin aplicatia liniara
definita de A. Problema este urmatoarea: date matricea A si matricea X C
I nk
astfel ncat X = ImX, se cere calculul unei baze ortogonale a subspatiului Y = AX .
Este usor de vazut ca
Y = A ImX = ImAX,
(5.69)
de unde rezulta imediat faptul c
a o baza ortogonala a subspatiului Y este data
de coloanele matricei U1 = U ( : , 1 : ry ) din DVS a matricei Y = AX = U V H ,
unde ry este rangul lui Y . Rezultate numerice mai bune se obtin [ XIX ] daca mai
1 a lui X si apoi se tine seama de faptul ca
ntai se determina o baza ortogonala U

Y = ImAU1 . Schema de calcul este urmatoarea.


Y = AX

V H . Fie rx rangul lui X


1. Se calculeaza DVS X = U
( : , 1 : rx )
2. Se calculeaza B = AU
3. Se calculeaza DVS B = U V H . Daca ry este rangul lui B, atunci baza
cautata a subspatiului Y este data de coloanele matricei U1 = U ( : , 1 : ry )

393

5.3. ALGORITMUL DVS

5.3

Algoritmul DVS

Dupa cum s-a precizat, valorile singulare ale matricei A C


I mn sunt radacinile
patrate nenegative ale valorilor proprii ale uneia dintre matricele hermitice pozitiv
semidefinite B = AH A sau C = AAH (vezi teorema 5.2). Mai mult, exista conexiuni
importante
dintre
DVS a matricei A


 si forma Schur a matricelor hermitice F =
0 AH
0 A
=
sau G =
(vezi propozitia 5.1). Natural, n cazul real,
A
0
AH 0
conjugarea nu are nici un efect, astfel ca matricele B = AT A, C = AAT sunt
simetrice, pozitiv semidefinite, iar matricele F si G simetrice.
Teorema 5.2 sugereaza o posibilitate de calcul a valorilor singulare ale unei matrice A calculand valorile proprii ale uneia dintre matricele B, C, F sau G, cu
ajutorul algoritmului QR simetric. Intr-o astfel de abordare, determinarea matricelor unitare (n cazul real, ortogonale) U si V se poate face conform indicatiilor
din observatia 5.3.
Totusi, calculul explicit al matricelor B sau C poate conduce la o pierdere de
informatie, dupa cum se poate vedea din exemplul urmator.
Exemplul 5.3

Fie matricea

1
1
0 ,
A = 0.001
0
0.001

avand valorile singulare (A) = { 2.000001, 0.001}. Avem




1.000001
1
T
B=A A=
.
1
1.000001
Intr-un format virgula mobila avand mantisa cu mai putin de 7 cifre zecimale,
matricea B este reprezentata prin


= 1 1 ,
B
1 1
= { 2, 0 }, valorile singulare calculate prin procedura sugerata
avand spectrul (B)

mai sus fiind (A) = { 2, 0}, i.e. o evaluare cu o precizie mult inferioara celei de
reprezentare.
3
O metoda mai performanta pentru calculul DVS propusa de G.H. Golub si
W. Kahan [30] n 1965 si cunoscuta sub denumirea de algoritm DVS 18 evita
formarea explicita a matricelor B sau C, construind recurent un sir de matrice unitar (ortogonal) echivalente cu matricea A, convergent catre o matrice diagonala.
Calculul DVS al matricei diagonale limita este trivial dupa care, ordonand corespunzator elementele diagonale, se obtine matricea ce defineste DVS a matricei
initiale. Matricele U si V se calculeaza prin acumularea transformarilor. Ideea de
18
In literatura de specialitate de limb
a englez
a acronimul utilizat este SVD (Singular Value
Decomposition).

394

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

baza a algoritmului DVS consta n faptul ca matricele Ak , k = 1, 2, . . . ale sirului


DVS au proprietatea ca matricele Bk = AH
n cazul real Bk = ATk Ak ) formeaza
k Ak (
sirul QR hermitic (simetric) corespunzator, asociat matricei B. De aceea, se spune
ca algoritmul DVS este o variant
a mascata a algoritmului QR simetric.
Algoritmul DVS are doua etape.
1. Prima etap
a consta n reducerea matricei A, prin transformari unitare (ortogonale) de echivalenta, la o forma superior bidiagonala J astfel ncat matricea
tridiagonala T = J H J sa coincid
a cu cea produsa de prima etapa a algoritmului
QR simetric aplicat lui B.
2. Etapa a doua consta n reducerea iterativa a matricei J la forma diagonala
prin anularea asimptotica a elementelor supradiagonale prin transformari unitare
(ortogonale) bilaterale ce corespund pasilor algoritmului QR simetric cu deplasare
implicita aplicati lui B.
Vom prezenta n continuare detaliile acestui algoritm.

5.3.1

Reducerea la forma bidiagonal


a

Baza teoretica a primei etape a algoritmului DVS este data de urmatorul rezultat.
Teorema 5.8 Fie o matrice A C
I mn . Exist
a matricele unitare U C
I mm si
nn
V C
I
astfel nc
at matricea
J = U H AV C
I mn

(5.70)

este superior bidiagonal


a, i.e. J(i, j) = 0, i > j si j > i + 1.

In cazul real, matricele U si V pot fi reale (i.e. ortogonale) si, prin urmare, si
matricea bidiagonal
a J este, n acest caz, real
a.
Demonstratie.
Vom da o demonstratie constructiva, aratand cum se calculeaza
efectiv matricele unitare U si V din (5.70). Pentru fixarea ideilor, presupunem ca
m n 19 , n care caz procedura are p = min(m 1, n) pasi.
Pasul 1 . In primul rand, exista reflectorul (complex) U1 , de ordinul m, astfel ncat (U1H A)(2 : m, 1) = 0. Dupa aplicarea reflectorului U1 , exista reflectorul
V2 , de ordinul n si indice 2 (i.e. avand structura V2 = diag(1, V2 )) astfel ncat
((U1H A)V2 )(1, 3 : n) = 0. Datorita structurii mentionate a reflectorului V2 , postmultiplicarea cu acesta nu altereaza zerourile create n prima coloana. Prin urmare,
def
matricea A A1 = U1H AV2 este superior bidiagonala n prima coloana si prima
linie.
def
Pasul k . Presupunem ca, dupa primii k 1 pasi, matricea A Ak1 =
def
H
= Uk1
. . . U1H AV2 . . . Vk este superior bidiagonala n primele k 1 coloane si
k ) astprimele k 1 linii. Acum, exist
a reflectorul (complex) Uk = diag(Ik1 , U
H
fel ncat (Uk Ak1 )(k + 1 : m, k) = 0. Dupa aplicarea reflectorului Uk , ne folosim
de existenta reflectorului Vk+1 pentru anularea elementelor (k, k + 2 : n), i.e. astfel
ncat ((UkH Ak1 )Vk+1 )(k, k+2 : n) = 0. Este usor de vazut ca structura reflectorilor
19 Dac
a m < n se poate calcula DVS a matricei G = AH . Dac
a G = U V H , atunci DVS a
matricei A este, evident, A = V T U H .

395

5.3. ALGORITMUL DVS

utilizati la acest pas asigura conservarea zerourilor create la pasii precedenti si, prin
urmare, procesul de bidiagonalizare, initiat la pasul 1 , poate fi continuat.
In final, dupa p pasi, matricea A este suprascrisa de matricea bidiagonala
def

A J = Ap = UpH U2H U1H AV2 V3 Vn1 = U H AV.

(5.71)

Matricele unitare de transformare U si V au, evident, expresiile


U = U1 U2 Up ,

V = V2 V3 Vn1 .

Demonstratia este completa.

(5.72)
3

In demonstratia teoremei 5.8 s-a scos n evidenta faptul ca ntregul proces de


diagonalizare se poate efectua pe loc, n locatiile de memorie ale elementelor matricei
A. Mai mult, asa cum se va vedea mai departe, locatiile elementelor matricei A
pot servi pentru memorarea elementelor definitorii ale matricelor de transformare
utilizate. De asemenea, avandu-se n vedere faptul ca procesul iterativ conserva
structura superior bidiagonala, n continuare vom memora matricea bidiagonala J
numai prin vectorii f C
I n al elementelor diagonale si g C
I n1 al elementelor
supradiagonale (n cazul m n considerat) conform scrierii

f1 g1

f2 g2

.
.
.. ..

H
.

..
(5.73)
J = U AV =
.
gn1

fn

Algoritmul de bidiagonalizare, prezentat n continuare, reproduce fidel ideile


demonstratiei teoremei 5.8. Vom utiliza reflectori hermitici, caz n care matricea
bidiagonala care se obtine este, n general, complexa. Pentru un plus de claritate
prezentam mai ntai o schema de calcul.
JQ

1. p = min(m 1, n)
2. Pentru k = 1 : p
1. Se calculeaza reflectorul Uk astfel ncat
(UkH A)(k + 1 : m, k) = 0.
2. A UkH A
3. Dac
a k < n 1, atunci
1. Se calculeaza reflectorul Vk+1 astfel ncat
(AVk+1 )(k, k + 2 : n) = 0.
2. A AVk+1
3. Dac
a se doreste calculul matricei U , atunci
1. U Im
2. Pentru k = p : 1 : 1
1. U Uk U

396

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE


4. Dac
a se doreste calculul matricei V , atunci
3. V In
4. Pentru k = n 2 : 1 : 1
1. V Vk+1 V

Utilizand procedurile din tabelul 4.3 (vezi cap. 4), algoritmul corespunzator
schemei de calcul de mai sus se scrie astfel.
Algoritmul 5.1 (JQc Reducerea la forma bidiagonal
a) (Data matricea A C
I mn , cu m n, algoritmul calculeaza reflectorii hermitici
Uk , k = 1 : p, p = min(m1, n), si Vk , k = 2 : n1, astfel ncat matricea
J = UpH . . . U1H AV2 . . . Vn1 = U H AV este bidiagonala. Matricea J este
obtinuta prin vectorii f C
I n si g C
I n1 ai elementelor sale diagonale,
respectiv supradiagonale. Optional, se acumuleaza matricele unitare de
transformare U si/sau V . Optiunea se exprima cu ajutorul variabilelor
logice opt1 si opt2 care pot lua valorile da sau nu. Daca nu se doreste
acumularea, atunci pentru matricea respectiva se returneaza matricea
unitate de dimensiune corespunzatoare.)
1. p = min(m 1, n)

2. Pentru k = 1 : p

1. [ c, A(k : m, k), k ] = Hc(A(k : m, k))


2. fk = c1
3. Dac
a k < n atunci
1. A(k : m, k + 1 : n) =
= Hcs(A(k : m, k), k , A(k : m, k + 1 : n))
4. Dac
a k < n 1 atunci
1. [ c, v, k+1 ] = Hc((A(k, k + 1 : n))T )
2. A(k, k + 1 : n) = v T
3. gk = c1
4. A(k + 1 : m, k + 1 : n) =
= Hcd(A(k : m, k + 1 : n), v, k+1 )
5. gn1 = A(n 1, n)

3. Dac
a m = n atunci
1. fn = A(n, n)
4. U = Im ,

V = In

5. Dac
a opt1 = da atunci
1. Pentru k = p : 1 : 1
1. U (k : m, k : m) = Hcs(A(k : m, k), k , U (k : m, k : m))
6. Dac
a opt2 = da atunci
1. Pentru k = n 2 : 1 : 1
1. V (k + 1 : n, k + 1 : n) =
= Hcs((A(k, k+1 : n))T , k+1 , V (k + 1 : n, k + 1 : n))

397

5.3. ALGORITMUL DVS

Comentarii. Semnalam, n primul rand, faptul ca vectorul u


k ce defineste refleck (din structura reflectorului Uk ) este memorat n locatiile (k : m, k)
torul hermitic U
ale matricei A. Pentru a fi posibil acest lucru, n afara elementelor (k + 1 : m, k),
anulate la pasul curent k de catre Uk , este utilizata si locatia (k, k), ceea ce predef

supune salvarea prealabila a elementului diagonal calculat akk = fk . Similar,


H
vk+1 vk+1
vectorul vk+1 definitoriu pentru reflectorul Vk+1 = Ink
, este memorat
k+1
def
n locatiile (k, k + 1 : n) dupa ce, n prealabil, a fost salvat elementul ak,k+1 = gk .
Pentru a face posibil acest lucru fara modificarea procedurilor utilizate a fost introdus un vector de lucru c. De asemenea, pentru a nu introduce o noua procedura
de calcul a unui reflector care sa anuleze componentele (2 : n) ale unui vector linie
n-dimensional, s-a utilizat un vector de lucru v.
Sintaxa de utilizare a algoritmului de mai sus este
[ f, g, U, V ] = JQc(A, opt1 , opt2 ).
In cazul datelor initiale reale, toate matricele de transformare sunt reale, i.e. ortogonale, iar algoritmul de mai sus se adapteaza prin simpla substituire a procedurilor
pentru date complexe cu cele pentru date reale (concret, se nlocuieste sigla c din
numele procedurilor cu sigla r). De aceeea ne marginim sa prezentam pentru acest
caz numai sintaxa de utilizare
[ f, g, U, V ] = JQr(A, opt1 , opt2 ).
Efortul de calcul asimptotic implicat de executia variantei reale, fara acumularea
4
transformarilor, este Nop = 4mn2 n3 flopi, iar n cazul complex, daca avem
3
n vedere echivalarile operatiilor cu numere complexe cu cele cu numere reale (v.
cap. 4), de cateva ori mai mare. Tot n varianta reala, pentru calculul matricei de
4

transformare U , sunt necesare Nop


= 4m2 n n3 flopi, respectiv, pentru calculul
3
4

matricei de transformare V se executa Nop


= n3 flopi suplimentari. De retinut
3
ordinea inversa de acumulare a transformarilor care este mai economica, exploatand
umplerea progresiva a matricelor de transformare.
3
Observatia 5.4 In cazul n care m n este posibila o usoara mbunatatire a
eficientei daca naintea aplicarii algoritmului JQ are loc o prealabila triangularizare
unitara (ortogonala) a matricei A. Concret, procedura, numita R-bidiagonalizare,
este urmatoarea.


R1
RJQ
1. Se efectueaza triangularizarea unitara QH A = R =
,
0
cu R1 o matrice n n superior triunghiulara.
, V ] = JQ(R1 , opt1 , opt2 )
2. [ f, g, U
3. Dac
a opt1 = da atunci
, Imn ).
1. U = Q diag(U

398

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

R
Complexitatea acestei proceduri este apreciata, pentru date reale, la Nop
2mn2 +
3
R
2
+2n , fara acumularea transformarilor. Rezulta Nop Nop = 2n (m 53 n), i.e.
R-bidiagonalizarea devine asimptotic mai eficienta daca m > 53 n. Consideratii
similare asupra complexitatii se pot face si pentru diverse variante de acumulare a
transformarilor (vezi [ VI ]).
3

Observatia 5.5 Utilizand reflectori complecsi nehermitici (vezi cap. 3) adecvat


calculati, este posibila reducerea unei matrice complexe la o matrice bidiagonala
real
a prin transformari unitare de echivalenta. Aceasta versiune a algoritmului JQc
permite utilizarea exclusiva a unei aritmetici reale n faza iterativa a algoritmului
DVS si este folosita, de exemplu, n pachetul de programe LAPACK. Detaliile
algoritmului fac obiectul exercitiului 5.15.
3

5.3.2

Faza iterativ
a a algoritmului DVS

Faza iterativa construieste un sir de matrice


J = J1 , J 2 , , J k ,
(5.74)


1 0
convergent catre matricea diagonala reala =
, 1 = diag(1 , 2 , . . . , r ),
0 0
astfel ncat sirul matriceal
T1 = J1H J1 , T2 = J2H J2 , . . . , Tk = JkH Jk , . . .

(5.75)

este sirul QR simetric cu deplasare implicita convergent catre forma Schur


 2

1 0
S=
Rnn
(5.76)
0 0
a matricei tridiagonale hermitice (simetrice) T = T1 .
A. Un pas DVS
Presupunem, n continuare, ca matricea superior bidiagonala J C
I mn este data
n
n1
prin vectorii f C
I si g C
I
conform (5.73). Avand n vedere faptul ca transformarile ce definesc un pas QR conserva structura tridiagonala a matricelor Tk ,
anticipam afirmand ca un pas DVS va conserva structura bidiagonala astfel ncat
toate calculele (mai putin acumularea transformarilor) pot avea loc n locatiile de
memorie ale vectorilor f si g.
Vom determina transformarile vectorilor f si g aferente unui pas DVS prin
transferarea catre acestia a aplicarii unui pas al algoritmului QR simetric cu deplasare implicita matricei tridiagonale
def

def

T = Tk = JkH Jk = J H J.

(5.77)

In primul rand, aplicabilitatea variantei cu deplasare implicita este conditionata


de ireductibilitatea matricei T (sau, mai bine zis, iteratia se aplica numai partii
ireductibile a matricei T ). T
inand seama de faptul ca
ti,i+1 = fi gi ,

ti+1,i = fi gi ,

i = 1 : n 1,

(5.78)

399

5.3. ALGORITMUL DVS


conditia de ireductibilitate devine
fi 6= 0,

gi 6= 0,

i = 1 : n 1.

(5.79)

In conformitate cu cele prezentate n capitolul precedent (vezi sectiunea 4.8),


un pas QR simetric cu deplasare implicita presupune transformarile prezentate
mai jos. Prezentam, n paralel, efectele acestor transformari la nivelul vectorilor f
si g care definesc matricea bidiagonala J, evidentiind astfel ideile unui pas DVS
Golub-Kahan.
1. Calculul deplasarii
= tnn = |gn1 |2 + |fn |2

(5.80)

sau, mai bine, al deplas


arii Wilkinson, care este valoarea proprie a matricei




|gn2 |2 + |fn1 |2
fn1 gn1

not
T (n 1 : n, n 1 : n) =
=
fn1 gn1
|gn1 |2 + |fn |2

(5.81)
cea mai apropiata de tnn . Concret, aceasta deplasare are expresia
p
= + sgn() 2 + ||2 ,

,
2

(5.82)

si se calculeaza economic si fiabil cu relatiile


=

|gn2 |2 + |fn1 |2 |gn1 |2 |fn |2


,
2
= |gn1 |2 + |fn |2 +

= |fn1 |2 |gn1 |2 ,

p
.
+ sgn() 2 +

(5.83)

In cazul real, particularizarile se obtin imediat.

2. Se calculeaza matricea unitara U1 astfel ncat prima sa coloana U1 e1 sa coincida cu prima coloana a matricei de transformare care defineste un pas QR simetric
cu deplasare explicita, i.e.

t11
|f1 |2

t21
f1 g1

0
0
U1 e1 =
(5.84)
,
=

..
..

.
.
0

unde este un factor scalar de normare. Introducand vectorul de deplasare implicit


a
aferent unui pas DVS

 

t11
|f1 |2
def
w =
=
,
(5.85)
t21
f1 g1

400

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

matricea U1 poate fi o rotatie (complexa) P12 = diag(P12 , Im2 ) astfel ncat


 

H
P12
w=
.
(5.86)
0
H
3. Calculul matricei T C = P12
T P12 , care altera structura tridiagonala n
pozitiile (3, 1) si (1, 3), se transfer
a n calculul matricei

K = JP12

(5.87)

care evidentiaza o alterare a matricei superior bidiagonale n pozitia (2, 1).


4. Aplicarea algoritmului TQ matricei C, pentru refacerea structurii tridiagonale a matricei C se transfera, n cadrul unui pas DVS, n aplicarea unui algoritm
JQ adaptat pentru refacerea structurii superior bidiagonale a matricei J prin transformari unitare bilaterale
H
H
J J = Un1
Un2
U1H KV2 Vn1 ,

(5.88)

unde Uk , Vk pot fi rotatii (complexe) sau reflectori (complecsi). Schema de calcul


este urmatoarea.
1. Pentru k = 1 : n 1

def

1. Se calculeaza rotatia Uk = Pk,k+1 astfel ncat


(UkH K)(k + 1, k) = 0
2. K UkH K
% Se anuleaza elementul (k + 1, k) si
% se altereaza zeroul din pozitia (k, k + 2)
3. Dac
a k <n1
def

1. Se calculeaza rotatia Vk+1 = Pk+1,k+2 astfel ncat


(KVk+1 )(k, k + 2) = 0.
2. K KVk+1 % Se anuleaza elementul (k, k + 2) si
% se altereaza zeroul din pozitia (k + 2, k + 1)

Pentru a exemplifica adaptarea algoritmului JQ la situatia structurala caracteristica unei iteratii DVS cu deplasare implicita, consideram cazul dimensional
m = 5, n = 3. Ca si pana acum, ncadrarile indica liniile sau coloanele afectate,
+ zerourile alterate, iar elementele anulate, toate referindu-se la transformarea curenta.

0

0

0

+

,
J =
J JP12 = 0 0
0 0 ,

0 0 0
0
0 0
0 0 0
0 0
0

H
J U1 J = 0 0 ,
J JV2 = 0
+ ,

0 0
0 0 0
0
0
0 0
0 0 0

401

5.3. ALGORITMUL DVS

U2H J


0
0

0
0

0
0

Matricea succesor K = J este bidiagonala si

0
0

H
H
T = J H J = (Un1
U1H JP12 V2 Vn1 )H Un1
U1H JP12 V2 Vn1 =
H
H H
H
J U1 Un1 Un1
U1H JP12 V2 Vn1 = QH J H JQ (5.89)
= Vn1
V2H P12

si
Qe1 = P12 V2 Vn1 e1 = P12 e1

(5.90)

este aceeasi cu cea corespunzatoare pasului QR simetric implicit pentru matricea


tridiagonala T .
In consecinta, matricea Jk = J, care defineste sirul DVS este astfel calculata
ncat matricea Tk = JkH Jk defineste sirul QR pentru matricea hermitica B = AH A
si, prin urmare, este convergent la forma diagonala.
In conformitate cu cele prezentate mai sus, o iteratie DVS este implementata
de urmatorul algoritm.
Algoritmul 5.2 (IT DVSc Un pas DVS Golub-Kahan) (Dati
vectorii f C
I n si g C
I n1 care definesc matricea bidiagonala (5.73)
si matricele unitare U C
I mm si V C
I nn , algoritmul calculeaza

H
matricea succesor J J = Q JQ din sirul DVS, mai exact, noii
vectori f si g care suprascriu vectorii f si g. Optional, se actualizeaza
matricele U si/sau V . Optiunea se exprima prin intermediul variabilelor
logice opt1 si opt2 , care pot lua valorile logice da si nu. Daca nu se
doreste actualizarea, matricele U si/sau V se returneaza nemodificate.)
1. % Calculul deplasarii Wilkinson
1. = (|gn2 |2 + |fn1 |2 |gn1 |2 |fn |2 )/2
2. = |fn1 |2 |gn1 |2

p
3. = |gn1 |2 + |fn |2 +
+ sgn() 2 +


|f1 |2
2. w =
f1 g1

3. [ w, c, s ] = Gc(w)

4. % Se calculeaza J JP12 . Fie elementul nenul care altereaza


structura bidiagonala
1.
2.
3.
4.

f1 c g1 s
g1 f1 s + g1 c
f1
f2 s

402

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE


5. f2 f2 c

5. Dac
a opt2 = da atunci
1. V ( : , 1 : 2) = Gcd(V ( : , 1 : 2), c, s)
6. % Reducerea la forma bidiagonala
Pentru k = 1 : n 1




fk
fk
1. [
, c, s] = Gc(
)

2. cgk sfk+1
3. fk+1 sgk + cfk+1
4. gk
5. Dac
a k < n 1 atunci
1. sgk+1
2. gk+1 cgk+1
6. Dac
a opt1 = da atunci
1. U ( : , k : k + 1) = Gcd(U ( : , k : k + 1), c, s)
7. Dac
a k < n 1 atunci


gk
1. [v, c, s] = Gc(
)

2. gk = v1
3. fk+1 c gk+1 s
4. gk+1 fk+1 s + gk+1 c
5. fk+1
6. fk+2 s
7. fk+2 fk+2 c
8. Dac
a opt2 = da atunci
1. V ( : , k + 1 : k + 2) = Gcd(V ( : , k + 1 : k + 2), c, s)
Comentarii.

Sintaxa de apel utilizata n continuare va fi n cazul complex


[ f, g, U, V ] = IT DVSc(f, g, U, V, opt1 , opt2 )

si
[ f, g, U, V ] = IT DVSr(f, g, U, V, opt1 , opt2 )
n cazul real, care se obtine prin nlocuirea procedurilor complexe apelate cu corespondentele lor reale si renuntarea la operatia de conjugare. Numarul de operatii
necesar pentru executia unui pas DVS real este Nop 2n + 30n daca nu se

acumuleaza transformarile, Nop


6mn operatii sunt necesare pentru acumularea

matricei U si, respectiv, Nop


6n2 pentru acumularea matricei V .
3
Observatia 5.6 In cadrul algoritmului DVS, iteratia DVS curenta, implementa
de algoritmul de mai sus, va actiona numai asupra unei parti a matricei bidiagonale
(asa numitul bloc diagonal ireductibil). Aceasta actiune are ca efect modificarea
la fiecare iteratie numai a anumitor coloane a matricelor de transformare U si V .

403

5.3. ALGORITMUL DVS

Avand n vedere acest fapt, suntem interesati sa accceptam ca parametri de intrare


si de iesire pentru algoritmul IT DVSc matrice U si V cu un numar de linii superior
celui precizat n preambulul algoritmului. Utilizarea n instructiunile 5.1, 6.6.1 si
6.7.8.1 a simbolului : cu semnificatia de toate liniile face ca sa nu fie necesare
nici un fel de modificari ale algoritmului. Acelasi mecanism de simbolizare permite
o codificare directa a algoritmului n MATLAB. Pentru alte limbaje de programare
se vor face precizarile de indexare ce se impun.
3
B. Algoritmul DVS
Algoritmul DVS consta din pasii iterativi Golub-Kahan aplicati partii ireductibile
a matricei bidiagonale J, anularea elementelor diagonale si supradiagonale devenite
neglijabile, conform unui criteriu acceptat, si reducerea, pe aceasta baza, a dimensiunii problemei de diagonalizare, pana la epuizare. In final, dupa un numar finit 20
de pasi, se obtine o matrice diagonala a carei DVS se obtine imediat. In legatura cu
modul de gestionare structurala a matricei curente a sirului DVS facem urmatoarele
precizari.
1. Pentru deciziile de anulare a elementelor supradiagonale se poate utiliza
urmatorul criteriu
Dac
a |gi | tol(|fi | + |fi+1 |)

atunci gi = 0.

(5.91)

2. Tratarea situatiilor n care conditiile de ireductibilitate (5.79) ale matricei


T = J H J nu sunt satisfacute se face diferentiat n functie de faptul ca elementul
nul se afla pe supradiagonala sau pe diagonala. In continuare, referirile le facem la
matricea bidiagonala J initiala definita de vectorii f C
I n si g C
I n1 .
Daca este nul un element terminal al vectorului g, i.e. g1 = 0 sau gn1 = 0,
atunci problema se reduce, evident, la o problema de dimensiune inferioara cu o
unitate. Daca ambele elemente terminale mentionate sunt nule, atunci dimensiunea
problemei reduse este n 2.
Daca exista un singur element supradiagonal neterminal nul, i.e. gi = 0 pentru
un i 2 : n 2, atunci matricea J se scrie sub forma


J1 0
J=
, J1 C
I ii , J2 C
I (ni)(ni) ,
(5.92)
0 J2
cu matricele J1H J1 si J2H J2 tridiagonale ireductibile, i.e. problema se sparge n
dou
a probleme de aceeasi natura dar de dimensiuni mai mici. Daca sunt mai multe
elemente supradiagonale nule, atunci problema si reduce, similar, dimensiunea sau
se sparge n doua sau mai multe probleme de dimensiuni mai mici.
Daca exista un singur element diagonal nul, i.e. fi = 0 pentru un i 1 : n 1,
atunci exista o procedura care, prin transformari unitare (e.g. o secventa de rotatii),
anuleaza si elementul supradiagonal de pe aceeasi linie, creand astfel posibilitatea
divizarii problemei ca n (5.92). Schema de calcul este urmatoarea.
20

Datorit
a deciziilor de anulare efectiv
a a elementelor neglijabile.

404

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

TZD

% Tratarea zerourilor diagonale.


1. Pentru j = i + 1 : n
1. Se calculeaza rotatia modificata Pij astfel ncat
(PijH J)(i, j) = 0.
2. J PijH J % Se anuleaza elementul (i, j) si, pentru j < n,
este alterat zeroul din pozitia (i, j + 1).
3. Dac
a se doreste acumularea transformarilor, atunci
U U Pij .
Exemplificam modul de actiune al procedurii de mai sus pentru cazul dimensional
cu n = 4 si cu zeroul diagonal n pozitia (2,2).

0 0
0 0 0

J =
0 0 ,
0 0 0

0 0
0 0

0 0 0
0 0 +

J P23 J =
J P24 J =
,
0 0 .
0 0

0 0

In vederea scrierii mai concise a algoritmului DVS vom introduce un algoritm


auxiliar de tratare a zerourilor diagonale, care implementeaza schema de calcul
TZD . Pentru scrierea lui avem nevoie de o procedura de calcul a unei rotatii
modificate. Concret, rotatia (complexa) modificata pe care o vom utiliza este
o matrice unitara de ordinul 2 cu structura cunoscuta


c s
P =
, cu c IR, s C,
I
c2 + |s|2 = 1,
(5.93)

s c
care, pentru un vector z C
I 2 dat asigura
(P H z)(1) = 0.

(5.94)

Facand apel la rezultatele stabilite n capitolul 3, nu este greu de vazut ca relatiile de


calcul ale scalarilor c si s, care asigura satisfacerea conditiei (5.94), sunt urmatoarele.

0,
daca z1 = 0,
1,
daca z1 = 0,

1,
daca z1 6= 0, z2 = 0,
0,
dac
a
z
=
6
0,
z
=
0,
1
2
c=
s=
z1 z2

|z
|

, daca z1 6= 0, z2 6= 0,
, daca z1 6= 0, z2 6= 0,
|z2 |r
r
(5.95)
p
rz2
r = |z1 |2 + |z2 |2 ,
(P H z)(2) =
.
|z2 |

Calculul elementelor definitorii de mai sus va fi nsotit de calculul z P H z astfel


ncat sintaxa propusa pentru aceasta procedura este
[ y, c, s ] = Gcm(z),

5.3. ALGORITMUL DVS

405

suprascrierea (interna a) lui z realizandu-se cu apelul [ z, c, s ] = Gcm(z). Particularizarea pentru date reale este propusa cititorului, aici marginindu-ne sa introducem
numai sintaxa de utilizare
[ y, c, s ] = Grm(z).
Rezulta urmatorul algoritm.
Algoritmul 5.3 (TZDc Tratarea zerourilor diagonale) (Date
matricea superior bidiagonala J C
I mn cu m n, prin vectorii f si g
al elementelor diagonale, respectiv supradiagonale, si matricea unitara
U C
I mm , precum si ntregul i 1 : n 1 ce indica pozitia ultimului element diagonal nul, algoritmul calculeaza rotatiile (complexe) Pi,j ,
H
H
j = i + 1 : n, astfel ncat matricea J Pi,n
. . . Pi,i+1
J ramane bidiagonala, iar elementul gi devine nul. Calculele principale se efectueaza
n locatiile de memorie ale elementelor vectorilor f si g. Optional, se
actualizeaza matricea unitara de transformare U . Optiunea se exprima
cu ajutorul variabilei logice opt, care poate lua valorile da sau nu.
Daca nu se doreste actualizarea, matricea U se returneaza nemodificata.)
1. = gi
2. gi = 0
3. Pentru j = i + 1 : n
z = [ f j ]T
[ z, c, s ] = Gcm(z)
fj = z2
Dac
a j < n atunci
1. = sgj
2. gj cgj
5. Dac
a opt = da atunci
1. Pentru l = 1 : m
1. = uli c ulj s
2. ulj uli s + ulj c
3. uli = .
1.
2.
3.
4.

Comentarii. In algoritmul de mai sus variabila scalara a fost utilizata pentru


memorarea elementului alterant temporar al structurii bidiagonale, iar variabila
auxiliara scalara pentru calculul produsului U U Pij . Algoritmul nu verifica
faptul ca fi = 0 sau ca nu exista j > i astfel ca fj = 0. Este clar faptul ca daca nu
sunt ndeplinite conditiile din preambulul algoritmului, acesta nu realizeaza scopul
pentru care a fost elaborat.
Sintaxa de apel a algoritmului este, evident,
[ f, g, U ] = TZDc(f, g, i, U, opt).
Complexitatea algoritmului este O(n i) fara acumularea transformarilor si O(mn)
cu acumularea acestora. Se poate aprecia ca algoritmul are, n general, o contributie
modesta la complexitatea algoritmului DVS.

406

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

In cazul datelor reale, algoritmul se particularizeaza fara dificultate, utilizand


procedura de calcul a unei rotatii modificate reale, mentionata mai sus. Ca atare,
ne marginim la precizarea sintaxei de apel:
[ f, g, U ] = TZDr(f, g, i, U, opt).
In ambele situatii, utilizandu-se exclusiv transformari unitare, respectiv ortogonale, precizia rezultatelor nu este afectata semnificativ.
3
3. La fiecare iteratie, dupa deciziile de anulare a elementelor supradiagonale
neglijabile si dupa tratarea elementelor diagonale nule, se determina parametrii
structurali p si q astfel ncat matricea J curenta sa poata fi scrisa sub forma
p

npq

z}|{ z}|{ z}|{

J11
0
0
J = 0 J22
0

0
0 J33
0
0
0

}p
}npq
}q
}mn

(5.96)

unde p este cel mai mic ntreg, iar q cel mai mare ntreg astfel ncat blocul J33
este diagonal, iar blocul bidiagonal J22 este ireductibil, i.e. are toate elementele
supradiagonale nenule si toate elementele diagonale (mai putin, eventual, ultimul),
de asemenea, nenule. In termenii vectorilor f si g, prin care este memorata matricea
J, conditiile de mai sus devin
g(n q + 1 : n 1) = 0,

gi 6= 0, i = p + 1 : n q,

fi 6= 0, i = p + 1 : n q 1.
(5.97)
Evident, iteratia DVS curenta se aplica numai blocului ireductibil J22 , i.e.

H
J22 J22
= U22
J22 V22

(5.98)

care este echivalenta cu urmatoarea transformare unitara bilaterala aplicata intregii


matrice J
J J = diag(Ip , U22 , Impq )H Jdiag(Ip , V22 , Inpq ).

(5.99)

Dac
a blocul ireductibil J22 are dimensiunea 2 2 atunci devine mai eficient calculul
direct al DVS a acestuia. Avand n vedere faptul ca n acest caz matricea 2 2
este si triunghiulara propunem cititorului scrierea unei proceduri care sa realizeze
acest lucru (caz particular al exercitiului 5.2). Aici ne vom margini la specificarea
sintaxei de apel a acestei proceduri care va fi utilizata
[ f, g, U, V ] = DVS 2(f, g)
unde, evident, f este un vector cu doua elemente, iar g este un scalar anulat de
procedura.
4. Procesul de diagonalizare se termina n momentul n care au fost anulate
toate elementele supradiagonale, i.e. toate componentele vectorului g, sau, altfel
spus, cand parametrul structural q ia valoarea n 1.

407

5.3. ALGORITMUL DVS

5. Dupa ncheierea procesului de diagonalizare, elementele diagonale ale matricei


limita J J , i.e. componentele vectorului f , sunt, n general, complexe. Pentru
a obtine o matrice diagonala real
a cu elementele diagonale nenegative se aplica o
transformare de echivalenta unitara definita de

J DJ
= diag(D, Imn ) cu
unde D

sau

J JD,

(5.100)

21

D = diag(d1 , d2 , . . . , dn ),

di =

1, daca fi = 0
fi
, daca fi 6= 0.

|fi |

(5.101)

Dupa aceasta transformare elementele diagonale ale matricei J, i.e. elementele


vectorului f sunt valorile singulare ale matricei initiale.
6. Prin definitie, n DVS, valorile singulare apar ordonate descrescator. De
aceea, n finalul algoritmului DVS se realizeaza ordonarea elementelor diagonale
utilizand o secventa de permutari elementare bilaterale (i.e. diagonale), definita de
matricele de permutare UP = diag(P, Imn ), VP = P si un algoritm de ordonare
a listelor. Avand n vedere faptul ca ordonarea are o pondere putin semnificativa
n economia algoritmului DVS, vom utiliza un algoritm popular de sortare, anume
algoritmul bubblesort, si, din aceleasi motive de concizie a formularii algoritmului
DVS, vom prezenta un algoritm separat de ordonare.
Algoritmul 5.4 (DVS ORD Ordonarea valorilor singulare)
(Date matricea diagonala J, prin vectorul f IRn al elementelor diagonale, si matricele unitare U C
I mm si V C
I nn , algoritmul realizeaza
ordonarea n sens descrescator a elementelor vectorului f , folosind algoritmul de sortare bubblesort. Optional, se actualizeaza matricele
unitare de transformare U si/sau V , prin permutarea coprespunzatoare
a coloanelor acestora. Optiunea se exprima cu ajutorul variabilelor logice opt1 si opt2 care pot lua valorile da sau nu. Daca nu se doreste
actualizarea, matricele U si/sau V se returneaza nemodificate.)
1. ord = nu
2. i = 1
3. C^
at timp ord = nu si i < n
1. ord = da
2. Pentru j = n 1 : 1 : i
1. Dac
a fj < fj+1 atunci
1. fj+1 fj
21
In cazul real, matricea diagonal
a J este real
a, dar poate avea elemente diagonale negative.
Evident, n aceast
a situatie utiliz
am transformarea de echivalenta
ortogonal
a definit
a de matricea
D av
and
n
1, dac
a fi 0,
di =
1, dac
a fi < 0.

408

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE


2. Dac
a opt1 = da atunci
1. U (:, j) U (:, j + 1)
3. Dac
a opt2 = da atunci
1. V (:, j) V (:, j + 1)
4. ord = nu
3. i i + 1.

Comentarii. Variabila logica ord reprezinta starea procesului de ordonare si este


familiara celor care utilizeaza curent algoritmul de sortare mentionat. Sintaxa de
apel a algoritmului va fi
[ f, U, V ] = DVS ORD(f, U, V, opt1 , opt2 ).
Evident, nu se efectueaza operatii aritmetice. Numarul maxim posibil de comparatii
este 12 n(n 1). Desigur, se pot folosi algoritmi de sortare mai sofisticati dar castigul
nu este semnificativ pentru matrice de dimensiuni curente.
3
Avandu-se n vedere faptul ca matricele de permutare sunt ortogonale, matricea
finala

1 0 0
0
2 0

..
.. . .
..

.
.
.
.
def

= diag(P T , Imn )JP =


(5.102)

0
0

.
..
..
..
..
.
.
.
0
0 0

= U diag(P, Imn ), V = V P definesc DVS calcumpreuna, cu matricele unitare U


lat
a a matricei initiale.
Cu toate precizarile de mai sus si utilizand algoritmii auxiliari introdusi, putem
prezenta algoritmul DVS n integralitatea lui.
Algoritmul 5.5 (DVSc Descompunerea valorilor singulare)
(Date matricea A C
I mn cu m n si nivelul de toleranta tol, algoritmul calculeaza valorile singulare ale matricei A care sunt elementele
vectorului f IRn si optional matricele de transformare U C
I mm
nn
si/sau V C
I
, care definesc DVS a matricei A. Optiunea se exprima
cu ajutorul variabilelor logice opt1 si opt2 care pot lua valorile da sau
nu. Daca nu se doreste acumularea, atunci pentru matricea respectiva
se returneaza matricea unitate de dimensiune corespunzatoare.)
1. % Cazul matricelor coloana
Dac
a n = 1 atunci
1.
2.
3.
4.

[ A, u, ] = Hc(A)
f = |A(1, 1)|
U = Im , V = 1
Dac
a opt1 = da si 6= 0 atunci
u uH
U = Im

5.3. ALGORITMUL DVS


5. Dac
a opt2 = da si 6= 0 atunci
1)
A(1,
V =
f
6. Return
2. % Reducerea la forma bidiagonala
[ f, g, U, V ] = JQc(A, opt1 , opt2 )
3. % Faza iterativa
1. p = 0, q = 0
2. C^
at timp q < n 1
1. Pentru i = 1 : n q 1
1. Dac
a |gi | tol(|fi | + |fi+1 |) atunci
gi 0
2. % Determinarea parametrului q
1. C^
at timp g(n q 1) = 0
q q+1
2. Dac
a q = n 1 atunci break
3. % Terminarea fazei iterative
1. Dac
a q = n 1 atunci break
4. % Determinarea parametrului p
1. p = n q 1
2. C^
at timp g(p) = 0
1. p p 1
2. Dac
a p = 0 atunci break
5. k = p + 1, l = n q
6. % Tratarea unui zero diagonal (daca exista)
1. j = 0
2. Pentru i = l 1 : 1 : k
1. Dac
a fi = 0 atunci
1. j = i k + 1
2. break
3. Dac
aj>0
1. [ f (k : l), g(k : l 1), Z ] =
= TZDc(f (k : l), g(k : l 1), j, Ilk+1 , opt1 )
2. Dac
a opt1 = da atunci
U (:, k : l) U (:, k : l)Z
altfel
1. % Iteratia curenta
Dac
a k < l 1 atunci
[ f (k : l), g(k : l 1), U (:, k : l), V (:, k : l) ] =
= IT DVSc(f (k : l), g(k : l 1), U (:, k : l),
V (:, k : l), opt1 , opt2 )
altfel

409

410

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE


1. [ f (k : l), g(k : l 1), Y, Z ] =
= DVS 2(f (k : l), g(k : l 1))
2. Dac
a opt1 = da atunci
U ( : , k : l) U ( : , k : l)Y
3. Dac
a opt2 = da atunci
V ( : , k : l) V ( : , k : l)Z

4. % Calculul valorilor singulare ale matricei diagonale obtinute n


faza iterativa
1. Pentru j = 1 : n
1. Dac
a opt2 = da atunci
1. Dac
a fj 6= 0 atunci
fj
1. d =
|fj |
2. V ( : , j) = V ( : , j)d
2. fj = |fj |

5. % Ordonarea valorilor singulare

1. [ f, U, V ] = DVS ORD(f, U, V, opt1 , opt2 )


Comentarii. Comentariile incluse pun n evidenta ideile care au stat la baza elabor
arii algoritmului. Din punct de vedere tehnic semnalam utilizarea instructiunii
break de abandonare a executiei ciclurilor de tip pentru sau de tip c^
at timp.
O sintaxa de apel naturala a algoritmului DVSc este, evident,
[ f, U, V ] = DVSc(A, tol, opt1 , opt2 ).
Algoritmul DVSc calculeaza DVS si pentru matrice reale 22 desi pentru date reale
este mai economica o versiune reala a algoritmului, care se obtine simplu prin
utilizarea corespondentelor reale ale procedurilor implicate.
De asemenea, din ratiuni de concizie si claritate, n cele ce urmeaza vom utiliza
si sintaxa (poate chiar mai semnificativa)
[ U, , V ] = DVSc(A, opt1 , opt2 ),
care presupune unele ajustari minore ale algoritmului de mai sus, cum sunt introducerea unei tolerante implicite (de obicei de nivelul lui M kAk) si formarea matricei
diagonale IRmn din definitia DVS ale carei elemente diagonale sunt elementele
vectorului f . Ordinea modificata a parametrilor de iesire sugereaza formula DVS.
Complexitatea estimata a algoritmului DVS, conform [ VI ], este data n tabelul
5.1 pentru varianta reala cu date de intrare matrice reale m n si diverse tipuri de
optiuni. De asemenea, rezultatele sunt date pentru doua versiuni ale algoritmului:
prima versiune utilizeaza algoritmul de bidiagonalizare JQr (ca mai sus), iar cea
de a doua algoritmul de R-bidiagonalizare (v. obs. 5.4).
3
22

Din acest motiv, n referirile ulterioare vom renunta la caracterul c din sigl
a.

411

5.4. CONDIT
IONARE

opt1

opt2

Nop
versiunea 1

Nop
versiunea 2

nu

nu

4mn2 43 n3

2mn2 + 2n3

da

nu

4m2 n + 8mn2

4m2 n + 13n3

nu

da

4mn2 + 8n3

2mn2 + 11n3

da

da

4m2 n + 8mn2 + 8n3

4m2 n + 22n3

Tabelul 5.1: Complexitatea algoritmului DVS

5.4

Conditionarea valorilor singulare

In aceasta sectiune vom aborda cateva aspecte privind sensibilitatea valorilor singulare si a vectorilor singulari la perturbatii numerice n matricea initiala. In acest
scop se vor dovedi utile rezultatele preliminare stabilite n continuare. Ca si pana
acum, rezultatele si demonstratiile vor fi prezentate pentru cazul, mai general, al matricelor complexe, particularizarea pentru matricele reale (care se reduce, n esenta,
la nlocuirea multimii C
I cu multimea IR si a operatorului hermitic H cu operatorul
T
de transpunere ) fiind lasata n sarcina cititorului.

5.4.1

Rezultate preliminare

Fie matricea A C
I nn . Valorile singulare ale matricei A fiind nemijlocit
legate

0 AH
H
H
de valorile proprii ale matricelor hermitice A A, AA sau
multe din
A
0
rezultatele stabilite n sectiunea 4.1, referitoare la proprietatile spectrale ale matricelor hermitice (n cazul real, simetrice) si gasesc un corespondent direct si imediat n proprietatile valorilor singulare. Fie V un subspatiu liniar al lui C
I n si S
n
multimea vectorilor de norma euclidiana unitara din C
I , i.e. sfera de raza unitara
centrata n origine. Notam cu VS = V S, i.e. multimea vectorilor de norma unitara din subspatiul V. Reamintim ca intotdeauna valorile singulare ale unei matrice
sunt indexate n sens descrescator.
In primul rand, teoremei 4.3 i corespunde urmatorul rezultat.
Teorema 5.9 Fie A C
I nn si (A) = {1 , 2 , . . . , p }, p = min(m, n), multimea
valorilor sale singulare. Atunci avem

def

max = max kAxk,


xS

unde k k = k k2 .

min = min kAxk,


xS

(5.103)

412

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Demonstratie.
B = AH A.

Rezultatele sunt urmare directa aplicarii teoremei 4.3 matricei


3

In al doilea rand, avem urmatoarea caracterizare minimax a valorilor singulare


care si are originea n teorema Courant-Fisher (v. 4.1).
Teorema 5.10 Fie A C
I nn si (A) = {1 , 2 , . . . , p }, p = min(m, n), multimea
valorilor sale singulare. Atunci pentru toti k 1 : p avem
k =

max
min kAxk =
min
max kAxk,
dimV = k x VS
dimV = n k x VS

(5.104)

def

unde k k = k k2 este norma euclidian


a n C
I n.
Demonstratie.
Consideram matricea hermitica B = AH A. Pentru orice vector
n
H
x C
I avem x Bx = kAxk2 si, presupunand ca valorile proprii ale matricei B sunt
ordonate descrescator, k (B) = k2 . Cu aceste precizari, caracterizarile minimax
(5.104) rezulta imediat din aplicarea teoremei Courant-Fisher matricei B.
3
Corespondentul teoremei de separare 4.5 are urmatorul enunt.
Teorema 5.11 (Teorema de separare a valorilor singulare) Fie A C
I nn . Not
am
def

def

Ak = A( : , 1 : k) sau Ak = A(1 : k, : ). Atunci valorile singulare ale matricei Ak


separ
a valorile singulare ale matricei Ak+1 , i.e.

1 (Ak+1 ) 1 (Ak ) 2 (Ak+1 ) . . . k (Ak+1 ) k (Ak ) k+1 (Ak+1 ),


(5.105)
pentru toti k 1 : p1, p = min(m, n).
Demonstratie. Presupunem mai ntai ca Ak este matricea formata din primele k
coloane ale matricei A. Atunci submatricea lider principala de ordinul k a matricei
def
si separarea (5.105) rezulta
B = AH A este data de B [k] = B(1 : k, 1 : k) = AH
k Ak
din aplicarea directa a teoremei 4.5 matricei B. Daca Ak este matricea formata din
primele k linii ale matricei A, atunci inegalitatile (5.105) se obtin aplicand teorema
4.5 matricei C = AAH .
3
Una din observatiile imediate care rezulta din teorema 5.11 este aceea ca adaugarea unei coloane sau unei linii la o matrice data are ca efect cresterea valorii
singulare maxime (i.e. a normei spectrale) si scaderea valorii singulare minime.
O relatie dintre valorile singulare a doua matrice si valorile singulare ale sumei
lor, data n teorema urmatoare, este utila n aprecierea influentei perturbatiilor
numerice n elementele unei matrice asupra valorilor sale singulare.
Teorema 5.12 Fie matricele A, E C
I nn . Atunci, cu notatii evidente, avem
k (A) 1 (E) k (A + E) k (A) + 1 (E)
pentru toti k 1 : min(m, n).

(5.106)

413

5.4. CONDIT
IONARE

Demonstrat
ie.
Aplic

 and teorema
 4.7 (v. 4.1) matricelor hermitice B =
0 AH
0 EH
=
si F =
, n ipoteza ca valorile proprii sunt ordonate
A
0
E
0
descrescator, avem
k (B) + m+n (F ) k (B + F ) k (B) + 1 (F ).

(5.107)

Dar, conform propozitiei 5.1, avem k (B) = k (A), k = 1 : min(m, n), 1 (F ) =


= 1 (E) si m+n (F ) = 1 (E), i.e. relatia (5.107) este de fapt una si aceeasi cu
(5.106). Teorema este demonstrata.
3
In sfarsit, prezentam corespondentul pentru valorile singulare al teoremei 4.8
(Wielandt-Hoffmann).
Teorema 5.13 Dac
a A, E C
I mn si p = min(m, n), atunci
p
X
(j (A + E) j (E))2 kEk2F ,

(5.108)

j=1

unde kEkF este norma Frobenius a matricei E.


Aplicand teorema Wielandt-Hofmann
(v. 4.1) matricelor her
0 AH
0 EH
mitice B =
si F =
si tinand seama de relatia dintre
A
0
E
0
valorile proprii ale matricelor B si F si valorile singulare ale matricelor A si E (v.
propozitia 5.1) se obtine rezultatul dorit.
3
Demonstratie.

5.4.2

Conditionarea valorilor singulare

Rezultatele prezentate mai sus permit aprecierea conditionarii valorilor singulare.


In primul rand, avand n vedere faptul ca valorile singulare ale unei matrice A
C
I nn sunt radacinile patrate ale valorilor proprii ale matricelor hermitice AH A
sau AAH , iar acestea din urma sunt perfect conditionate (v. 4.10), rezulta ca si
valorile singulare sunt perfect conditionate, i.e. putem considera ca numerele de
conditionare ale valorilor singulare sunt egale cu unitatea.
Rezultatul principal care sustine afirmatia de mai sus este dat de teorema 5.12.
Intr-adevar, inegalitatile (5.106) pot fi scrise sub forma
|k (A + E) k (A)| 1 (E) = kEk,

(5.109)

unde, evident kEk = 1 (E) este norma spectrala a lui E. Daca privim matricea E
ca o matrice de perturbatii (sau de incertitudine) n datele initiale, atunci marginea
(5.109) arata ca, n ipoteza unui calcul exact, variatiile absolute ale valorilor singulare induse de variatiile n elementele matricei nu depasesc norma spectrala a
matricei de perturbare. Desigur, daca ne referim la variatiile relative, valorile singulare mari sunt avantajate, n timp ce valorile singulare mici pot sa sufere variatii
relative mari.

414

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

De asemenea, cum era de asteptat, conditionarea ntregului ansamblu de valori


singulare, privita ca o norma a vectorului conditionarilor valorilor singulare, este
cea mai buna posibila. In sprijinul acestei afirmatii vine si teorema 5.13 care arata
ca norma euclidiana a vectorului variatiilor absolute ale valorilor singulare este
inferioara normei Frobenius a matricei variatiilor elementelor matricei initiale.


1.60 0.36 0.48
Exemplul 5.4 Fie matricea A =
IR23 ale carei valori
1.20 0.48 0.64
singulare exacte sunt 1 = 2 si 2 = 1. Valorile
 singulare ale matricei
 perturbate

1.60 0.36 0.481
0 0 1
3
F = A + E = A + G =
, unde = 10 , G =
1.20 0.48 0.64
0 0 0
(cu kGk = kGkF = 1), sunt
1 2.0000002,
2 1.0004800. Se observa ca
nici variatiile p
absolute ale valorilor singulare individuale, nici norma euclidiana a
vectorului lor (
1 1 )2 + (
2 2 )2 0.48 104 nu depasesc valoarea lui . 3
Conditionarea excelenta a valorilor singulare este unul din argumentele fundamentale ale utilizarii lor pentru rezolvarea numerica a unei multitudini de probleme
aplicative de algebra liniara.

5.4.3

Conditionarea vectorilor singulari

Similar cazului matricelor hermitice (v. 4.10), perfecta conditionare a valorilor


singulare nu implica n mod necesar buna conditionare a vectorilor singulari si a
subspatiilor generate de acestia.
Fie A C
I mn si A = U H V descompunerea valorilor sale singulare. Aprecierea
conditionarii vectorilor singulari, i.e a coloanelor matricelor unitare de transformare U si V , se face prin evaluarea diferentei unghiulare dintre vectorul exact si cel
perturbat, definita prin
(ui , ui ) = arccos |uH
i |, i = 1 : m
i u

(vj , vj ) = arccos |vjH vj |, j = 1 : n,


(5.110)

raportata la norma variatiei matricei date.


Aceasta abordare poate fi extinsa la exprimarea conditionarii subspatiilor generate de vectori singulari care este apreciata prin variatia unghiular
a (v. 4.10)
a subspatiilor respective. Concret, fiind data o matrice A si I (A) un set de
valori singulare ale acesteia, prin conditionarea subspatiului U, generat de vectorii
singulari asociati setului I , vom ntelege variatia unghiulara (sau o margine superioara a acesteia) a subspatiului U raportata la nivelul perturbatiilor n elementele
matricei A.
Conditionarea subspatiilor generate de vectori singulari este determinata n
mod decisiv de localizarea valorilor singulare asociate. Este posibil, si aici, ca un
subspatiu generat de vectori singulari rau conditionati sa aiba o conditionare foarte
buna daca grupul corespunzator de valori singulare este bine separat de celelalte.
In contextul DVS, vom nota separarea unei valori singulare individuale i si,
respectiv a setului de valori singulare I , de celelalte valori singulare ale aceleiasi

415

5.5. STABILITATEA ALGORITMULUI DVS


matrice, prin
def

gapi = min(i1 i , i i+1 ),

def

gapI = min |i j |
iI
j6I

(5.111)

si corespondentele lor relative, prin


def

relgapi = min

j1:p
j6=i

|i j |
,
i + j

def

relgapI = min
iI
j6I

|i j |
,
i + j

(5.112)

unde p = min(m, n).


Conditionarea subspatiului UI , i.e. variatia unghiulara a acestuia raportata
la nivelul perturbatiilor n matricea initiala, se poate aprecia prin numarul de
conditionare
1
def
U I =
(5.113)
gapI
si, n particular, conditionarea unui vector singular prin numarul
def

ui =

1
.
gapi

(5.114)

Pentru detalii recomandam consultarea referintelor bibliografice [ IV ], [ VI ], [ VIII ].

5.5

Stabilitatea numeric
a a algoritmului DVS

Analiza erorilor introduse de algoritmul DVS a condus la aprecierea ca acesta


reprezinta un mijloc foarte fiabil de calcul al valorilor singulare si al vectorilor
singulari. Altfel spus, algoritmul DVS este un algoritm numeric stabil [ VI ], [ XV ],
, ,
V ), care defineste DVS calculat
i.e. se poate arata ca tripletul (U
a, este o DVS
exact
a pentru o matrice foarte apropiata de matricea data. Intermeni
 formali,
1

mn
mm
nn
C
=
=
daca A C
I
si, prin urmare, U
I
, V C
I
,
sau
0


1 = {
1 0 , cu
=
1 ,
2 , . . . ,
p }, p = min(m, n), atunci exista matricele
mm
C
unitare U
I
, V C
I nn , astfel ncat, notand
def
,
U = U
U

def H
A = U
V A,

def
V = U
V ,

(5.115)

sunt satisfacute inegalitatile


kU k p(m, n)M ,

kAk p(m, n)kAkM ,

kV k p(m, n)M ,
(5.116)

def

unde, ca si pana acum, k k = k k2 este norma spectrala, p(m, n) este o notatie


generica pentru o functie cu o crestere modesta 23 iar M este epsilon masina
definind precizia de reprezentare a formatului virgula mobila utilizat.
23 A
sa cum s-a precizat si n capitolul 4, practic pentru toti algoritmii prezentati n acest
capitol, p(m, n) sau p(n) este o functie polinomial
a de un grad modest (1, 2 sau, foarte rar,
3) de parametri ce definesc dimensiunea problemei. In [ XV ] se afirm
a c
a o apreciere de genul
p(n) < 10n sau p(m, n) < 10 max(m, n) este adev
arat
a n majoritatea situatiilor practice pentru
care se foloseste formula de evaluare functie cu o crestere modest
a.

416

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Combinand excelenta conditionare a valorilor singulare cu stabilitatea numerica


a algoritmului DVS, se poate afirma ca descompunerea valorilor singulare este cel
mai bun mijloc de a calcula invariantii unei matrice la transformarile de echivalenta
(cum este rangul). Concret valorile singulare calculate
i satisfac inegalitatile
|
i i | p(m, n)kAkM = p(m, n)1 M .

(5.117)

Deci, pentru toate valorile singulare avem aceeasi margine de eroare absoluta, ceea
ce nseamna ca valorile singulare mari vor avea erori relative mici.
Pentru vectorii singulari si subspatiile generate de acestia, erorile raportate la
matricea initiala pot fi amplificate de numerele de conditionare, astfel ca putem
scrie
(ui , ui )

p(m, n)kAkM
,
gapi

p(m, n)kAkM
(UI , UI )
.
gapI

(5.118)

In sfarsit, mentionam ca cea mai mare acumulare a erorilor are loc n faza de reducere la forma bidiagonala, faza iterativa a algoritmului DVS avand o contributie
modesta n acest sens. Prin urmare, pentru matricele bidiagonale, chiar erorile relative ale tuturor valorilor singulare sunt marginite de un multiplu modest al erorilor
de reprezentare. Pentru amanunte, vezi [ XV ].

5.6

Aplicatiile DVS

In prima sectiune a acestui capitol au fost introduse o serie de concepte si probleme de calcul numeric conexe, probleme a caror rezolvare se poate face performant
apeland la DVS a unor matrice. Cu aceasta ocazie au fost prezentate si demonstrate
rezultate matematice care sugereaza unele modalitati de calcul. In sectiunea de
fata ne propunem sa revenim asupra acestor probleme n vederea dezvoltarii unor
proceduri de calcul fiabile, pentru relevarea unor aspecte numerice semnificative
precum si pentru extinderea unor rezultate n contextul utilizarii algoritmului DVS
pentru calculul valorilor singulare.

5.6.1

Trunchierea DVS calculate. Calculul rangului.


Rangul numeric

In conformitate cu propozitia 5.2, rangul unei matrice este dat de numarul valorilor sale singulare nenule 24 . Acest rezultat fundamental are o utilitate redusa n
aplicatiile curente n care matricele de date sunt, n general, rezultatul unor evaluari
aproximative, iar utilizarea calculatorului pentru determinarea valorilor singulare
este nsotita de erori. In astfel de situatii, generic, toate valorile singulare calculate
sunt, n sens strict, nenule. Prin urmare, generic, n urma procesarii n medii de
calcul aproximativ, toate matricele devin de rang maximal si, datorita acestui fapt,
24 O alternativ
a viabil
a, cu un efort de calcul mai redus, pentru rezolvarea problemelor de rang
este dat
a de triangularizarea unitar
a (ortogonal
a) cu pivotarea coloanelor (vezi cap. 3.). Din
punctul de vedere al calit
atilor numerice DVS constituie ns
a metoda cea mai bun
a (vezi exemplul
din acest paragraf).

417

5.6. APLICAT
IILE DVS

problema determinarii rangului r


amane fara obiect. De aceea, pentru aplicatii, este
necesara o modalitate coerenta de apreciere a valorilor singulare neglijabile. Rangul rezultat dupa deciziile de neglijare, n conformitate cu criterii bine precizate,
a valorilor singulare mici va fi numit rangul numeric al matricei initiale. Mai
precis avem urmatoarea definitie.
Definitia 5.6 Fie A C
I mn si A = U V H DVS a matricei A. Rangul numeric
al matricei A pentru o toleranta fixat
a este definit de
r = rang(A, ) =

min
rangX,
kA Xk
XC
I mn

(5.119)

i.e. este cel mai mic dintre rangurile tuturor matricelor de aceleasi dimensiuni aflate
la o distant
a definit
a de norma spectral
a de matricea A mai mic
a dec
at toleranta
admis
a 25 .
DVS este un mijloc extrem de sigur de determinare a rangului numeric n sensul
definitiei de mai sus. In sprijinul acestei afirmatii avem urmatoarea teorema.
Teorema 5.14 Dac
a A = U V H este DVS a matricei A C
I mn , k < r = rangA
si
k
X
def
Ak =
j uj vjH ,
(5.120)
j=1

atunci

min
kA Xk = kA Ak k = k+1 .
rangX = k
XC
I mn

(5.121)

Demonstratie.
Precizam mai ntai faptul ca, atat n enuntul teoremei cat si
n cele ce urmeaza, utilizam n exclusivitate norma spectrala. Din (5.120) rezulta
U H Ak V = diag(1 , 2 , . . . , k , 0, . . . , 0), de unde rangAk = k. Rezulta A Ak =
P
r
H
H
j=k+1 j uj vj , de unde avem U (AAk )V = diag(0, . . . , 0, k+1 , . . . , r , 0, . . . , 0)
si, prin urmare, kA Ak k = k+1 .
Fie acum o matrice m n (complexa) X de rang k, altfel arbitrara. TFie, de
asemenea, subspatiile liniare X = KerX, V = ImV ( : , 1 : k +1) si W = X V din
C
I n . Intrucat dimX = n k si dimV = k + 1 avem dimW 1. Exista deci un
vector unitar w W. Avem pe de o parte Xw = 0, iar peP
de alta parte exista
k+1
z C
I k+1 cu kzk2 = 1 astfel nc
at w = V ( : , 1 : k + 1)z =
inem
i=1 zi vi . Obt
Pk+1
Pk+1
Aw = i=1 zi Avi = i=1 zi i ui . Rezulta
v
uk+1
uX
def
2
kA Xk = max k(A X)xk k(A X)wk = kAwk = t
|zi | i2 .
i=1
kxk = 1

25
In ceea ce priveste nivelul tolerantelor practicate, acesta depinde de contextul aplicativ. De
exemplu, dac
a matricea provine din date experimentale cu un nivel cunoscut al erorilor de m
asur
a,
atunci nu are nici un sens ca s
a fie inferior acestui nivel. Dac
a matricea initial
a se consider
a
exact
a, atunci se recomand
a M kAk, unde M este epsilon masin
a al formatului virgul
a mobil
a
al masinii pe care se efectueaz
a calculele.

418

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Deoarece vectorul z are norma unitara, i.e.


radical avem evaluarea
k+1
X
i=1

2
|zi |2 i2 = k+1
+

k
X
i=1

Pk+1
i=1

|zi | = 1, pentru expresia de sub

2
2
|zi |2 (i2 k+1
) k+1
.
2

2
Din ultimele doua relatii rezulta kA Xk k+1
pentru orice matrice X C
I mn
de rang k si, cum am vazut mai sus ca marginea inferioara poate fi atinsa, ca (5.121)
este adevarata.
3

Prin urmare, k+1 este cea mai mica distanta, n sensul normei spectrale, dintre
matricea A si toate matricele m n de rang k. In particular, cea mai mica distanta
dintre o matrice A C
I nn nesingulara si toate matricele singulare este data de
valoarea singulara minima n a lui A.
Exemplul 5.5 Consideram important si util, n contextul acestui paragraf, sa
reluam un exemplu prezentat n capitolul 2, exemplu menit sa ilustreze faptul ca
unele criterii, nca uzitate, pentru aprecierea apropierii unei matrice de o matrice
singulara (cum ar fi valoarea determinantului sau cel mai mic dintre modulele valorilor proprii), dau informatii false si ca singurul criteriu corespunzator este dat de
valoarea singulara minima. Fie matricea Toeplitz superior triunghiulara

1 1 1 1
0
1 1 1

..
.. IRnn
.. . .
..
A= .

.
.
.
.

0
0
1 1
0
0
0
1
avand, evident, detA = 1 si toate valorile proprii egale cu 1, deci min |i (A)| = 1,
independent de dimensiunea matricei. Prin urmare, ambele criterii amintite mai sus
indica indubitabil faptul ca matricea A este suficient de departe de o matrice
singulara si ca, aparent, este bine conditionata la inversare. Faptul ca, cel putin n
cazul de fata, aparentele nseala se poate constata imediat considerand matricea

1
1 1 1

0
1 1 1

.. . .
..
.. IRnn
.
..
A =
.
.
.
.

0
0
1 1
1
2n2
0
0
1

1
= n2
care este (demonstrati!) singular
a. Cum kA Ak
n (A) rezulta ca
2
matricea A se apropie exponential de o matrice singulara odata cu cresterea dimensiunii.
Numarul de conditionare la inversare creste si el exponential cu dimensiunea
matricei. De exemplu, utilizand k k , numarul de conditionare are expresia
= n2n1 . Pe de alta parte, matrice avand valori proprii foarte mici si, ca

419

5.6. APLICAT
IILE DVS

urmare, si determinanti asijderea, pot avea o conditionare foarte buna. Pentru


detalii, vezi capitolul 2.
3
Una dintre consecintele conceptuale importante ale teoremei 5.14 este faptul ca
matricele mn de rang maximal formeaza o multime deschisa si densa n C
I mn , i.e.
generic, toate matricele sunt de rang maximal. De aceea, n problemele de calcul
numeric care fac apel la notiunea de rang, utilizarea notiunii de rang numeric este
indispensabila.
Prezentam n continuare un corolar al teoremei 5.14. In contextul lucrarii, rezultatul are o utilitate practica evidenta.
Corolar 5.3 Dac
a matricea A C
I mn are rangul numeric r = rang(A, ), atunci
1 2 . . . r > r+1 . . . p ,

(5.122)

unde p = min(m, n).


Demonstratie.
Daca r+1 > rezulta rang(A, ) > r, iar daca r , atunci
rang(A, ) < r. Deci, r > r+1 .
3
Observatia 5.7 Practic toate aplicatiile care utilizeaza DVS a unei matrice, fac
apel la rangul acesteia. In contextul calculatoriu al lucrarii, n continuare vom presupune ca este vorba implicit de rangul numeric. In consecinta, vom presupune
ca s-au neglijat, prin anulare efectiva, valorile singulare inferioare tolerantei precizate si vom renunta la notatii speciale care diferentiaza rangul numeric de rangul
matematic.
3
Desi, avand n vedere corolarul 5.3 si observatia 5.7, scrierea unui algoritm pentru determinarea rangului numeric al unei matrice nu prezinta nici o dificultate,
totusi, tinand seama de importanta aplicativa a problemei, consideram necesara
ndeplinirea acestei formalitati.
Algoritmul 5.6 (Rang DVS Calculul rangului numeric) (Date
matricea A C
I mn si toleranta tol > 0, algoritmul calculeaza rangul
numeric r = rang(A, tol) al matricei A.)
1. p = min(m, n)
2. [ U, , V ] = DVS(A, nu , nu )
3. r = 0
4. C^
at timp r+1,r+1 tol

1. r r + 1
2. Dac
a r = p atunci break

Comentarii.

Sintaxa de apel a algoritmului este


r = Rang DVS(A, tol).

In aplicatiile care sunt prezentate n continuare se vor ivi situatii n care este necesar
atat calculul rangului cat si calculul explicit al DVS a matricei A. Pentru a evita
un calcul dublu al aceleiasi DVS, se va utiliza secventa de apeluri

420

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

1. [ U, , V ] = DVS(A, opt1, opt2)


2. r = Rang DVS(, tol)
la instructiunea 2 matricea argument fiind diagonal nu se mai calculeaza n fapt
nici o DVS.
Complexitatea algoritmului este data, n cazul general, de complexitatea algoritmului DVS fara acumularea transformarilor.
3
Observatia 5.8 In definirea si calculul rangului numeric a fost utilizata, n exclusivitate, norma spectrala. In unele lucrari [ VI ], pentru dezvoltarea acelorasi idei, se
prefera utilizarea normei Frobenius, rezultatele fiind ntru totul similare. In aceasta
observatie prezentam rezultatul corespunzator teoremei 5.14, care ne va fi util si n
rezolvarea problemei celor mai mici patrate totala.
Teorema 5.15 Dac
a = U AV H este DVS a matricei A C
I mn , k < r = rangA
26
si Ak este matricea definit
a n (5.120), atunci
min
rangX=k
XC
I

kA Xk2F = kA Ak k2F =

mn

r
X

i2 .

(5.123)

i=k+1

Mai mult Ak este unica matrice de rang k pentru care acest minim este atins.

V H
Fie X C
I mn
de rang k arbitrara si X = U
 o matrice


= 11 0 IRmn cu
11 = diag(
DVS a matricei X, unde
1 ,
2 , . . . ,
k ).
0 0

H AV = B11 B12 cu B11 C
Notam B = U
I kk . Fie (B11 ) = {1 , 2 , . . . , k }.
B21 B22
Evident, (A) = (B) si, din teorema 5.11, de separare a valorilor singulare, rezulta
Pk
Pk
2
2
imediat i i , i = 1 : k. Rezulta kB11 k2F =
n
i=1 i
i=1 i . Avem,
consecinta, urmatoarele evaluari:
Demonstratie.

kA

Xk2F

2 = kBk2 +
= kB k
F
F

k
X
j=1

|bjj
j |

kBk2F kB11 k2F kBk2F

k
X

k
X
j=1

i2 =

i=1

Ak k2F

|bjj |2
r
X

i2 .

i=k+1

Pr

Pe de alta parte este evidenta egalitatea kA


= i=k+1 i2 , i.e. minimul
este atins pentru X = Ak . VomParata acum ca X = Ak este singura matrice de
r
rang k astfel ncat kA Xk2F = i=k+1 i2 . Cu notatiile utilizate mai sus rezulta
k
X
j=1

26

j2 +

k
X
j=1

|bjj
j |2

k
X
j=1

|bjj |2 = 0

Aici, la fel ca n teorema 5.14, r este rangul matematic.

421

5.6. APLICAT
IILE DVS
si
k
X
j=1

j2

k
X
j=1

j2 = kB11 k2F

k
X
j=1

|bjj |2 ,

de unde obtinem
bjj =
j ,

j = 1 : k.

11 , de unde unicitatea se obtine imediat.


Rezulta B11 =

In lumina teoremei 5.15 putem defini rangul numeric rF , n sensul normei matriceale Frobenius, ca fiind ce mai mic ntreg k pentru care
min(m,n)

i2 < ,

i=k+1

unde este o toleranta precizata. Si aceasta definire a notiunii de rang numeric este
util
a mai ales n contextul calculului numeric, situatie n care i , din relatia de mai
sus, sunt valorile singulare calculate ale matricei A.
3

5.6.2

Problema general
a a celor mai mici p
atrate

Consideram sistemul liniar


Ax = b

(5.124)

n cadrul general n care matricea A C


I mn nu este de rang maximal 27 (i.e.
m
r = rangA < min(m, n)), cu b C
I arbitrar. Formulam problema rezolvarii n
sens CMMP a acestui sistem, respectiv de calcul a vectorului x C
I n de norma
euclidiana minima care minimizeaza norma euclidiana a reziduului r(A, b) = bAx,
i.e.
kx k =
min
kxk,
(5.125)
kb Axk = minim
x C
In
numita pseudosolutie normal
a a sistemului (5.124). Avem urmatorul rezultat.
Propozitia 5.7 Sistemul liniar (5.124) admite o pseudosolutie normal
a unic determinat
a. Dac
a A = U V H este DVS a matricei A, atunci aceast
a pseudosolutie
normal
a are expresia
r
X
uH
j b
x = A+ b =
vj .
(5.126)

j
j=1

 
d
y
H
Demonstratie.
Fie d = U b =
,y=V x=
unde d = d(1 : r),
d
y
d = d(r+1 : m) si y = y(1 : r), y = y(r+1 : n). Avem
q
kb Axk2 = kb U V H xk2 = kd yk2 = kd 1 y k22 + kd k22
H

27 Pentru

sistemele de rang maximal vezi capitolul 3.

422

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

care este, evident, minima pentru y = 1


si y arbitrar. Dintre toti vectorii y
1 d
care minimizeaza reziduul de mai sus, cel de norma euclidiana minima corespunde
lui y = 0. Cum kxk2 = kyk2 , rezulta ca vectorul de norma euclidiana minima care
minimizeaza reziduul kb Axk2 este
 1 
 1

1 d
1
0
x = V
=V
d = V + U H b = A+ b,
0
0
0

ultima egalitate din (5.126) obtin


andu-se utilizand (5.55). Unicitatea pseudosolutiei
normale rezulta din unicitatea pseudoinversei.
3
Propozitia 5.7 conduce la urm
atorul algoritm.
Algoritmul 5.7 (CMMP Rezolvarea problemei generale CMMP)
(Date matricea A C
I mn , vectorul b C
I m si toleranta tol > 0, algorit
mul calculeaza (pseudo)solutia x = x C
I n , n sens CMMP, de norma
euclidiana minima, a sistemului liniar Ax = b.)
1. [ U, , V ] = DVS(A, da , da )
2. r = Rang DVS(, tol)
3. x = 0
4. Pentru j = 1 : r
1. = (U ( : , j))H b

2. =
j
3. x = x + V ( : , j)
Comentarii.

Sintaxa de apel a algoritmului este


x = CMMP(A, b, tol),

iar complexitatea sa este determinata de complexitatea algoritmului DVS cu acumularea transformarilor.


Algoritmul prezentat este numeric stabil, detalii privind acuratetea solutiei problemei CMMP calculata mai sus putand fi gasite n [ VI ].
3

5.6.3

Problema celor mai mici p


atrate total
a

Vom formula si rezolva n cele ce urmeaza o generalizare a problemei clasice a celor


mai mici patrate (CMMP). Pentru a da o justificare formularii acestei generalizari,
sa observam ca problema CMMP, de minimizare a normei euclidiene a reziduului
r = Ax b, unde matricea A C
I mn si vectorul b C
I n sunt date 28 , poate fi
reformulata n modul urmator. Putem privi reziduul r din egalitatea Ax = b + r ca
o perturbare a vectorului de date b sub restrictia ca b + r = Ax pentru un anumit
28 Toate rezultatele r
am
an valabile si n cazul real. S-a preferat considerarea datelor complexe
pentru asigurarea omogenit
atii trat
arii materialului din acest capitol.

423

5.6. APLICAT
IILE DVS

x, i.e. (b + r) Im A. In aceste conditii problema CMMP este de a determina acel


reziduu r C
I m pentru care avem
kr k =

min
krk,
(b + r) ImA

(5.127)

def
unde k k = k k2 este norma euclidiana din C
I m . In aceasta interpretare, daca
r este o solutie a problemei de minimizare (5.127), atunci orice solutie x C
In a
sistemului Ax = b + r este (pseudo)solutie CMMP a sistemului liniar Ax = b.
Un prim pas spre generalizare se poate face impunand o ponderare a patratelor
1
Pm
din expresia krk = ( i=1 |ri |2 ) 2 , i.e. considerarea problemei minimizarii reziduului
1
P
2 2
ponderat kCrk = ( m
I mm este o
i=1 |ci ri | ) , unde C = diag(c1 , c2 , . . . , cm ) C
matrice nesingulara, i.e. problema (5.127) devine

kCr k =

min
kCrk,
(b + r) ImA

r C
I m.

(5.128)

Al doilea pas de generalizare poate fi facut considerand si perturbatii la nivelul


elementelor matricei A, respectiv considerand sistemul liniar (A + E)x = b + r
def
si impunand minimizarea normei Frobenius a reziduului cumulat G = [ E r ]
C
I m(n+1) . Introducand si matricele diagonale nesingulare C = diag(c1 , c2 , . . . , cm )
si D = diag(d1 , d2 , . . . , dn+1 ) de ponderare pe linii, respectiv pe coloane, a matricei G, problema de minimizare devine
kCG DkF =

min
kCGDkF ,
(b + r) Im(A + E)

E C
I mn ,

r C
I m,

(5.129)

fiind cunoscuta sub denumirea de problema celor mai mici p


atrate total
a (CMMPT).
Dac
a (E , r ) este o solutie a problemei de minimizare (5.129), atunci orice solutie
x a sistemului (A + E )x = b + r se numeste (pseudo)solutie, n sens CMMPT, a
sistemului Ax = b.
Observatia 5.9 Problema CMMPT (5.129) poate fi echivalata cu o problema de
minimizare a unei functii reale de n variabile, fara restrictii suplimentare. Pentru
simplitate, consideram cazul real. Privind x IRn ca un parametru vectorial,
problema (5.129) poate fi formulata, ntr-o prima faza, ca o problema de minimizare
cu legaturi: sa se calculeze matricea G IRm(n+1) astfel ncat


x
2
2

kCG DkF =
min
kCGDkF , cu legaturile (G + [ A b ])
= 0.
1
G IRm(n+1)
(5.130)
Fie


x
2
h(G, ) = kCGDkF + T (G + [ A b ])
(5.131)
1
functia lui Lagrange asociata problemei de extrem cu legaturi (5.131). Pentru calculul extremului impunem conditiile clasice
h(G, )
= 0,
gij

i = 1 : m, j = 1 : n + 1,

(5.132)

424

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

(unde, evident, gij = G(i, j)) care conduc imediat la exprimarea elementelor matricei G n functie de multiplicatorii Lagrange i = (i)
i xj
,
2c2i d2j

i
, i = 1 : m.
2c2i d2n+1
(5.133)
Impunand satisfacerea legaturilor obtinem valoarea multiplicatorilor Lagrange corespunzatoare punctului de extrem
def

gij = eij =

i = 1 : m, j = 1 : n,

2(Ax b)
,
+ d2
n+1

def

gi,n+1 = ri =

= diag(d1 , d2 , . . . , dn ).
D

2 x
xT D

(5.134)

Pentru un vector x fixat, valoarea optima G (x) = [ E (x) r (x) ] se obtine nlocuind i n relatiile (5.133). Obtinem
1
2 ,
E (x) = C 2 xT D
2

r (x) =

1 2 2
C dn+1 .
2

(5.135)

Utilizand, acum, egalitatea ky z T kF = kyk kzk, adevarata pentru orice vectori y si


z (demonstrati!), obtinem valoarea minima (pentru un x fixat) a criteriului (5.130)
def
2 + kCr (x)dn+1 k2 =
f (x) = kCG (x)Dk2F = kCE (x)Dk
F
F
Pm 2 T
ci (ai x bi )2
1
= Pi=1
n
2 ,
2 2
4
i=1 xi di + dn+1

(5.136)

unde aTi = A(i, : ) este linia i a matricei A. Evident, punctul de minim x IRn al
functiei f este (pseudo)solutia problemei CMMPT (5.129). Desi aceasta observatie
nu ofera o alternativa viabila de calcul, totusi este utila pentru interpretarea unor
rezultate.
3
Observatia 5.10 Observatia 5.9 ofera posibilitatea unei interpretari geometrice a
problemei CMMPT. Fie subspatiul liniar
 


a
n
T
Px =
a IR , b IR, a x = b
IRn+1
b
definit pentru fiecare parametru vectorial x IRn . Utilizand aceeasi procedura
clasica, de calcul a extremelor cu legaturi, se arata (exercitiu pentru cititor)

 ca
a
def
distanta, n sensul normei kzkD = kDzk, dintre un punct arbitrar z =

b
IRn+1 si cel mai apropiat punct din subspatiul Px este
(z, Px ) = qP
n

|aT x b|

i=1

2
x2i d2
i + dn+1

In consecinta, conform observatiei 5.9, solutia x a problemei CMMPT (5.129)


determina acel subspatiu Px pentru care suma ponderata a distantelor (n sensul

425

5.6. APLICAT
IILE DVS


(A(i, :))T
normei k kD ) de la punctele z =
b(i)
apropiate ale lui Px (vezi (5.136)) este minima.

IRn+1 la punctele cele mai


3

A treia treapta de generalizare o introducem considerand un membru drept


multiplu, i.e. formuland problema CMMPT pentru sistemul liniar matriceal AX =
= B cu B C
I mp , respectiv problema de minimizare
kCG Dk =

E C
I mn , R C
I mp , G = [ E R ],

min
kCGDkF ,
(B + R) Im(A + E)

(5.137)
unde matricele A C
I mn , B C
I mp , cu m n + p, precum si matricele diagonale
nesingulare C C
I mm si D C
I (n+p)(n+p) sunt date. La fel ca si pana acum,

daca (E , R ) este o solutie a problemei de minimizare (5.137), atunci orice matrice


X C
I np care satisface sistemul liniar matriceal (A+ E )X = B + R va fi numita
(pseudo)solutia, n sens CMMPT, a sistemului AX = B.
Pentru a formula mai concis rezultatul referitor la existenta si unicitatea solutiei
problemelor de minimizare ce definesc CMMPT, vom introduce unele notatii si vom
stabili un rezultat preliminar. Fie
p

n
def

H = C[ A B ]D =

z}|{ z}|{
H1

H2

(5.138)

si H = U V H DVS a matricei H, cu urmatoarele partitii ale matricelor U , V si


impuse de structura lui H
n

U=
n

z}|{ z}|{

1
= 0
0

mnp

z}|{ z}|{ z}|{




U1 U2 U3
,

0
}n
2 } p
,
0
} mnp

V =

z}|{ z}|{
V11
V21

V12
V22

}n
}p

1 = diag(1 , 2 , . . . , n )
2 = diag(n+1 , n+2 , . . . , n+p ).

(5.139)

Introducem urmatoarea lema.

Lema 5.1 Dac


a n (H1 ) > n+1 , atunci
1 . Matricea V22 din (5.139) este nesingular
a.
2 . Cu notatiile din (5.139), avem inegalitatea strict
a
n > n+1 .

(5.140)

Demonstratie. 1 . Presupunem ca matricea V22 este singulara. Atunci exista un


vector z C
I p nenul, pe care l putem considera de norma euclidian
aunitara, astfel

V12
def
ncat V22 z = 0. Mai departe, din faptul ca matricea V2 =
are coloanele
V22
ortogonale, i.e. V2H V2 = Ip , obtinem kV2 zk = kV12 zk = 1. Pe de alta parte din

426

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

DVS a matricei H, cu partitiile din (5.139), avem U2 2 = H1 V12 + H2 V22 . Acum,


tinand seama de consistenta normei spectrale, putem scrie urmatoarea secventa de
inegalitati
n+1 = k2 k = kU2 k k2 k kU2 2 k = kH1 V12 + H2 V22 k =
= max k(H1 V12 + H2 V22 )yk kH1 V12 zk min kH1 wk = n (H1 ),
kyk=1

kwk=1

ceea ce contrazice ipoteza lemei. Deci V22 este nesingulara.


2 . Conform teoremei 5.11 (de separare a valorilor singulare) avem
def

n = n (H) n (H [n+p1] ) . . . n (H [n] ) = n (H1 ),

(5.141)

de unde, n ipoteza lemei, rezulta n n (H1 ) > n+1 , obtinandu-se inegalitatea


stricta din enunt.
3
Formulam acum teorema de existenta si unicitate a solutiei problemei CMMPT.
Teorema 5.16 Utiliz
and notatiile (5.138), (5.139), dac
a n (H1 ) > n+1 , atunci
def

matricea G = [ E R ] definit
a de
H
H
G = [ E R ] = C 1 U2 2 [ V12
V22
]D1

(5.142)

este o solutie a problemei de minimizare CMMPT (5.137).


In plus, dac
a not
am
D1 = diag(d1 , d2 , . . . , dn ),
atunci matricea

D2 = diag(dn+1 , dn+2 , . . . , dn+p ),

1 1
X = D1 V12 V22
D2

(5.143)
(5.144)

exist
a si este unica solutie a sistemului
(A + E )X = B + R ,

(5.145)

i.e. este unica (pseudo)solutie, n sens CMMPT, a sistemului liniar AX = B.


Demonstratie. Conditia (B + R) Im(A + E) este echivalenta cu existenta unei
matrice X C
I np astfel ncat (A + E)X = B + R. Cu notatiile din (5.137) si
(5.138), ultima relatie poate fi scrisa n urmatoarele forme echivalente







X
X
1
A B +G
= 0 (H + CGD)D
= 0.
(5.146)
Ip
Ip


X
Intrucat matricea
este monica, din (5.146) rezulta rang(H + CGD) n.
Ip
def

Notand F = CGD, n continuare aplicam teorema 5.15 matricei F = H (H +F ).


Obtinem
n+p
X
min
kF k2F =
i2 ,
(5.147)
rang(H+F )n

i=n+1

427

5.6. APLICAT
IILE DVS
minimul atingandu-se pentru

(H + F ) =

n
X

j uj vjH

= U 1 1

j=1

Rezulta
F = U 1 1

V11
V21

H

V11
V21

H = U2 2

H

V21
V22

H

(5.148)

(5.149)

de unde se obtine imediat (5.142). Mai mult, conform lemei 5.1, n conditiile teoremei avem inegalitatea stricta n > n+1 , ceea ce asigura unicitatea matricei G = G
care minimizeaza expresia (5.137).
In finalul demonstratiei vom arata ca X din (5.144) este unica solutie a sistemului (A + E )X = B + R care, conform (5.146), poate fi scris si sub forma


X
(H + CG D)D1
= 0.
(5.150)
Ip
Pentru aceasta, din expresia (5.142) a matricei G si DVS a matricei H rezulta
 H

H
V21
H + CG D = U1 1 V11
,
(5.151)
de unde, datorita monicitatii matricei U1 1 , rezulta

Ker (H + CG D) = Ker

H
V11

H
V21

= Im

V12
V22

(5.152)

Prin urmare, din (5.150) si (5.143) rezulta ca orice solutie X satisface relatiile

 

 1
X
V12
D1 X = V12 Y
1
D
=
Y

(5.153)
Ip
V22
D21 = V22 Y.
1 1
Deci, n virtutea lemei 5.1, avem Y = V22
D2 . In concluzie, n mod necesar, din
(5.153) rezulta ca unica (pseudo)solutie, n sens CMMPT, este
1 1
X = D1 V12 Y = D1 V12 V22
D2 = X ,

i.e. (5.144). Teorema este demonstrata.

Prezentam n continuare o modalitate de calcul a solutiei problemei CMMPT


care deriva nemijlocit din demonstratia teoremei 5.16.
Algoritmul 5.8 (CMMPT Solutia problemei CMMPT) (Se dau
matricele A C
I mn , B C
I mp , cu m n + p, precum si matricele diagonale nesingulare C = diag(c1 , c2 , . . . , cm ) C
I mm si D = diag(D1 , D2 )
(n+p)(n+p)
C
I
, unde D1 = diag(d1 , d2 , . . . , dn ), D2 = diag(dn+1 , dn+2 ,
. . . , dn+p ). Algoritmul calculeaza solutia (daca exista a) problemei
CMMPT, definite de cvartetul (A, B, C, D), i.e. calculeaza matricele
E = E C
I mn si R = R C
I mp care sunt solutia problemei de minimizare (5.137) precum si solutia X a sistemului liniar (A + E )X =
= B + R . Daca solutia nu exista sau nu este unica se tipareste un
mesaj, iar elementele tripletului (E , R , X ) raman vide.)

428

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE


1. E = [ ],

R = [ ],

X=[]

2. H = C[ A B ]D
3. [ U, , V ] = DVS(H, da , da )
4. [ P, , Q] = DVS(H( : , 1 : n), nu , nu )
5. Dac
a n n+1 atunci

1. Tip
are
ste(Problema nu admite solutie!)
2. Return

6. Dac
a n = n+1 atunci
1. Tip
are
ste(Problema nu admite o solutie unica!)
2. Return
7. Se rezolva sistemul matriceal
X(D2 V (n + 1 : n + p, n + 1 : n + p)) = D1 V (1 : n, n + 1 : n + p)
H 1
8. E = C 1 U2 2 V12
D1 , unde U2 = U (:, n + 1 : n + p),
2 = (n + 1 : n + p, n + 1 : n + p), V12 = V (1 : n, n + 1 : n + p)

H 1
9. R = C 1 U2 2 V22
D2 , unde V22 = V (n+ 1 : n+ p, n+ 1 : n+ p).

Comentarii.

Sintaxa de apel a algoritmului este


[ X, E, R ] = CMMPT(A, B, C, D).

In cadrul algoritmului s-au folosit notatiile evidente i = (i, i) si i = (i, i).


Pentru date de intrare (A, B, C, D) reale algoritmul functioneaza ca atare ntrucat
operatorul hermitic se reduce la cel de transpunere. Evident, ntr-un astfel de
caz se utilizeaza, n exclusivitate, o aritmetica reala. Singura problema critica
este rezolvarea sistemului liniar matriceal de la instructiunea 7 care poate fi rau
conditionat daca valorile singulare n (H(:, 1 : n)) si n+1 nu sunt bine separate.
Inversarea matricelor diagonale nu ridica probleme numerice (si nici nu trebuie
efectuata explicit). Complexitatea algoritmului este determinata, n primul rand,
de complexitatea calculului DVS.
3
Daca n = n+1 , CMMPT poate avea solutii multiple si, ntr-un astfel de caz,
cutuma CMMP este de a calcula solutia de norma minima. Vom numi aceasta
solutie CMMPT normala (CMMPTN). Avandu-se n vedere expresia (5.154) a
solutiilor, o norma adecvata este k kD definita de kZkD = kD11 ZD2 k cu care
avem
1 2
H H
1
kXk2D = kV12 V22
k = max (V22
V12 V12 V22
)=
H
1
H
= max (V22
(Ip V22
V22 )V22
)=

2
1 min
(V22 )
,
2
min (V22 )

(5.154)

ceea ce indica faptul ca a minimiza kXkD este echivalent cu maximizarea celei mai
mici valori singulare a submatricei V22 . Un algoritm pentru cazul important si uzual
p = 1, i.e. al problemei (5.129), poate fi gasit n [ VI ].

429

5.6. APLICAT
IILE DVS

5.6.4

Probleme CMMP cu restrictii

In cadrul paragrafelor anterioare relative la rezolvarea problemelor de minimizare de


tipul celor mai mici patrate, (pseudo)solutia era cautata n tot spatiul C
I n , respectiv
n

IR n cazul datelor reale. In cele ce urmeaza vom restrange aria de cautare a solutiei
minimizante la un domeniu nevid X C
I n care nu coincide cu tot spatiul. Desi majoritatea aplicatiilor de aceasta natura opereaza cu date reale, pentru omogenitatea
trat
arii vom considera, ca si pan
a acum, cazul, mai general, al datelor complexe.
Cititorul interesat nu va ntampina, cu siguranta, nici un fel de dificultati la particularizarea rezultatelor si a algoritmilor pentru cazul datelor reale.
Intr-o formulare generala, problema celor mai mici patrate cu restrictii are
urmatorul enunt. Date matricea A C
I mn , cu m > n, vectorul b C
I m si multimea
n
nevida X C
I , sa se determine vectorul x X (daca exista) astfel ncat
def

kr k = kAx bk = min kAx bk,


xX

(5.155)

unde, ca n toate problemele de tip CMMP, k k este norma euclidiana.


Diversele probleme CMMP cu restrictii difera, natural, prin tipurile de multimi
X . In continuare vom considera c
ateva cazuri frecvent ntalnite n aplicatii.
Problema CMMP cu restrictii liniare tip egalitate
Restrictiile liniare tip egalitate pot fi descrise prin
X = {x | x C
I n , Cx = d} ,

(5.156)

unde C C
I pn , p < n, este o matrice epica 29 si d C
I p.
Problema CMMP (5.155), (5.156) poate fi rezolvata prin reducerea la rezolvarea
unei probleme CMMP fara restrictii n modul urmator. Fie factorizarea QR a
matricei monice C H , i.e.


R1
CH = Q
= Q1 R1 ,
(5.157)
0
unde R1 C
I pp este superior triunghiulara nesingulara, Q C
I nn este unitara si
H H
Q1 = Q( : , 1 : p). Conditia Cx = d devine echivalenta cu R1 Q1 x = d, i.e.
def

H 1
QH
d = y.
1 x = (R1 )

(5.158)

Pe de alta parte, considerand partitia Q = [ Q1 Q2 ], avem


 H 
Q1 x
def
H
r = Ax b = AQQ x b = [ AQ1 AQ2 ]
b = A1 y + A2 z b = A2 z b
QH
2 x
(5.159)
29 Dac

= d,
a C nu este epic
a, i.e. r = rangC < p, atunci restrictiile pot fi rescrise n forma Cx
C
unde C
I rn este epic
a. Intr-adev
ar, dac
a C = U1 1 V1H este dezvoltarea DVS a matricei C,
poate fi 1 V H , n care caz d = U H d. Dac
atunci C
a p = n, atunci C este nesingular
a, i.e. X are
1
1
un singur element, si problema de minimizare devine trivial
a.

430

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

unde am utilizat notatiile


A1 = AQ1 ,

y = QH
1 x,

A2 = AQ2 ,

z = QH
2 x,

b = b A1 y.

Acum, ntrucat restrictiile sunt echivalente cu fixarea vectorului y conform (5.158),


problema CMMP cu restrictiile (5.156) s-a redus la problema minimizarii normei
reziduului (5.159) n raport cu z, f
ara alte restrictii. Altfel spus, daca z este solutia
problemei CMMP f
ar
a restrictii
def
kr k = kA2 z b k =

min kA2 z b k,
z C
I np

atunci, evident,

x =Q

y
z

def
unde b = b A1 y ,

(5.160)

(5.161)

este solutia problemei CMMP cu restrictii (5.155), (5.156).


Rezulta urmatorul algoritm de calcul.
Algoritmul 5.9 (CMMP RLE Solutia problemei CMMP cu
restrictii liniare tip egalitate) (Se considera date matricea monica A
C
I mn , cu m > n, si vectorul b C
I m , care definesc problema CMMP,
pn
precum si matricea epica C C
I
, cu p < n, si vectorul d C
I p , care
definesc restrictiile (5.156). De asemenea se considera data toleranta tol
care este parametru de intrare pentru algoritmul CMMP fara restrictii.
Algoritmul calculeaza solutia x = x a problemei CMMP cu restrictii
(5.155), (5.156).)
1. [ Q, R ] = FQR(C H )
2. Se rezolva sistemul inferior triunghiular nesingular
(R(1 : p, : ))H y = d
3. b b AQ( : , 1 : p) y

4. z = CMMP(AQ( : , p+1 : n), b, tol)




y
5. x = Q
.
z
Comentarii.

Apelul acestui algoritm are sintaxa


x = CMMP RLE(A, b, C, d, tol).

Pentru algoritmul de factorizare QR a se vedea capitolul 3. De asemenea, daca se


stie a priori faptul ca matricea A este monica, atunci rezolvarea problemei CMMP
fara restrictii se poate face cu mijloacele din capitolul 3. Daca matricea A nu este
monica, se impune utilizarea factorizarii QR cu pivotarea coloanelor sau a DVS.
Algoritmul este numeric stabil iar complexitatea sa este O(n3 ).
3
Observatia 5.11 Problema CMMP cu restrictii liniare tip inegalitate se trateaza
utilizand proceduri specifice de programare patratica si nu este abordata n aceasta
lucrare.
3

431

5.6. APLICAT
IILE DVS
Problema CMMP cu restrictii p
atratice

Restrictiile patratice ntalnite n practica problemelor CMMP sunt, n general, de


tip inegalitate avand forma
X = {x | x C
I n , kBx dk } ,

(5.162)

unde B C
I pn , d C
I p , 0 este un scalar real, iar k k este norma euclidiana.
Evident, daca = 0, atunci restrictiile patratice (5.162) devin restrictii liniare de
tip egalitate, tratate n paragraful precedent.
Pentru date reale multimea X este un (hiper)elipsoid n IRn . Particularizarile
curente ale restrictiilor (5.162) se obtin pentru d = 0 (n care caz elipsoidul este
centrat n origine) sau pentru B = In (elipsoidul devine o sfera plina, i.e. o bila).
In sfarsit, o categorie importanta o reprezinta restrictiile patratice de tip egalitate
care se obtin nlocuind n (5.162) relatia de inegalitate cu o relatie de egalitate si
considerand > 0.
Vom aborda rezolvarea problemei CMMP, definite de (5.155), (5.162), mai ntai
n cazul general, iar apoi n cazul particular al unei bile.
Fie problema CMMP (5.155), (5.162). Avand n vedere faptul ca sunt implicate doua matrice, A si B, apare ca naturala abordarea problemei prin ncercarea
de diagonalizare simultana a celor doua matrice. Instrumentul adecvat este descompunerea valorilor singulare generalizate (DVSG, v. 5.1). Pesupunem KerA
KerB = {0} 30 , si, pentru fixarea ideilor si notatiilor, p n. In conformitate cu
teorema 5.4, exista matricele unitare U C
I mm , V C
I pp si matricea nesingulara
nn
W C
I
astfel ncat


C1
H
U AW = C =
,
C1 = diag(c1 , c2 , . . . , cn ) IRnn ,
0


(5.163)
S1
nn
H
V BW = S =
,
S1 = diag(s1 , s2 , . . . , sn ) IR
,
0
unde valorile singulare generalizate (ci , si ) satisfac conditiile c2i + s2i = 1, i = 1 : n,
si sunt ordonate conform
1 c1 c2 . . . cn 0,

(5.164)

0 s1 s2 . . . sn 1.

T
inand seama de faptul ca transformarile unitare conserva norma euclidiana si
notand
def
W 1 x = y
(5.165)
norma reziduului asociat problemei CMMP si restrictia (5.162) se scriu n forma
echivalenta
krk = kAx bk = kU CW 1 x bk = kCy bk,
,
kBx dk = kV SW 1 x dk = kSy dk

30

b = U H b,
d = V H d,

(5.166)

Aceste conditii nu sunt neap


arat necesare, dar permit anumite simplific
ari (v. 5.1).

432

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

i.e. rezolvarea problemei (5.155), (5.162), revine la a rezolva problema echivalenta


de calcul a (pseudo)solutiei y Y = W 1 X (daca exista) astfel ncat
kr k = kCy bk = min kCy bk.
yY

(5.167)

Fie, acum, rA = rangA, rB = rangB ceea ce, avand n vedere ordonarea din
(5.164), nseamna
crA +1 = crA +2 = . . . = cn = 0,

s1 = s2 = . . . = snrB = 0.

(5.168)

Rezulta
def
(y) = krk2 = kCy bk2 =

rA
X
i=1

|ci yi bi |2 +

m
X

i=rA +1

|bi |2

(5.169)

si, respectiv,
def

2=
(y) = kSy dk

nr
XB
i=1

|di |2 +

n
X

i=nrB +1

|si yi di |2 +

p
X

i=n+1

|di |2 2 . (5.170)

O conditie evidenta ca multimea Y sa nu fie vida, i.e. o conditie necesara de


existenta a solutiei problemei (5.167), este
nr
XB
i=1

|di |2 +

p
X

i=n+1

|di |2 2 .

(5.171)

Avand n vedere ca functia (5.169), care trebuie minimizata, este marginita pe


compactul Y, definit de (5.170), conditia (5.171) este si suficienta pentru existenta
solutiei problemei CMMP (5.167) cu restrictii patratice.
Ideea rezolvarii problemei (5.167) este reducerea acesteia la o problema cu restrictii de tip egalitate, pentru care se pot aplica tehnici clasice de minimizare.
1. Consideram, mai ntai, cazul particular n care n (5.171) avem egalitate n
locul inegalitatii 31 . Rezulta, n mod necesar, pentru satisfacerea restrictiei,
yi =

di
,
ci

i = n rB + 1 : n.

(5.172)

Intrucat, conditia c2 + s2 = 1, i = 1 : n implica rA + rB n, i.e. rA n rB ,


i
i
rezulta ca putem calcula componentele yi , i = 1 : n rB astfel ncat (y) = krk2
sa fie minima. Obtinem
bi
yi = , i = 1 : n rB .
(5.173)
si
31
In cazul n care matricea B, vectorul d si scalarul sunt stabilite din alte considerente
dec
at cele de asigurare a existentei solutiei problemei, este putin probabil ca n (5.171) s
a c
adem
peste situatia de egalitate. Totusi, n situatia n care nu exist
a solutii, un compromis posibil este
cresterea scalarului p
an
a la atingerea egalit
atii din (5.171).

433

5.6. APLICAT
IILE DVS
Prin urmare, solutia problemei CMMP (5.167), n situatia
nr
XB
i=1

|di |2 +

p
X

i=n+1

|di |2 = 2 .

(5.174)

este

b1
c1
..
.

bnr
B

c
nrB

y =
dnrB +1

s
nrB +1

..

dn
sn

0
..
.


nrB +1 dnrB +1

def
..
ry = Cy b =
.

rA drA

br +1

..

.
bm

(5.175)

iar solutia corespunzatoare a problemei CMMP initiale, n acest caz, este


x = W 1 y ,

r = U ry ,

(5.176)

cu valoarea minima a normei euclidiene a reziduului data de


v
u X
rA
m
X
u

kr k = kry k = t
|i di bi |2 +
|bi |2 ,
i=nrB +1

(5.177)

i=rA +1

ci
, i = n rB + 1 : rA , sunt valorile singulare generalizate finite si nenule
si
ale perechii (A, B).
unde i =

2. In continuare, studiem situatia n care inegalitatea (5.171) este satifacuta


strict, i.e.
p
nr
XB
X
|di |2 +
|di |2 < 2 .
(5.178)
i=1

i=n+1

In acest caz, consideram cea mai mica valoare posibila (i.e. n absenta oricaror
restrictii) pe care o poate lua functia criteriu (y) din (5.169) si anume
m
X
= min n (y) =
|bi |2 ,
y C
I
i=rA +1

(5.179)

care se obtine pentru y Y unde


bi
Y = {y | y C
I n cu yi = , i = 1 : rA },
ci

(5.180)

434

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

i.e. componentele yi , i = rA + 1 : n, ale vectorilor din Y sunt arbitrare.


Pe de alta parte vectorul y Y care minimizeaza functia (y), ce defineste
restrictia (5.170), este dat de
yi =

bi
, i = 1 : rA ,
ci

yi =

di
, i = rA + 1 : n,
si

(5.181)

iar valoarea minima a functiei este


= min (y) = (
y) =
y Y

nr
XB
i=1

|di |2 +

rA
X

i=nrB

|si

p
X
bi
di |2 +
|di |2 .
ci
i=n+1

(5.182)

Pot exista doua situatii:


a. In prima situatie, caracterizata de
2,

(5.183)

vectorul y = y din (5.181) asigura atingerea minimului absolut al criteriului si, n


acelasi timp, satisface restrictia patratica (5.170). Prin urmare, y = y reprezinta,
n acest caz, o solutie a problemei 32 (5.167). O solutie a problemei CMMP initiale
se obtine utilizand relatiile (5.176).
b. A doua situatie este caracterizata de
> 2,

(5.184)

n care minimul absolut din (5.179) al functiei (y) nu poate fi atins. Un rationament simplu, indica faptul ca, din motive de continuitate a functiei obiectiv, n
acest caz minimul lui se atinge pe frontiera domeniului Y. Prin urmare avem aici
o problema de extrem cu legaturi tip egalitate. Concret, problema este de a calcula
y pentru care
(y ) = min (y),
yY

Y = {y |y C
I n , (y) = 2 },

(5.185)

iar pentru rezolvarea ei vom utiliza metoda clasica a multiplicatorilor lui Lagrange.
Hamiltonianul asociat problemei (5.185) este
2 2 ),
h(, y) = (y) + ((y) 2 ) = kCy bk2 + (kSy dk

(5.186)

unde IR este multiplicatorul Lagrange. Introducand vectorii y R = Rey IRn


si y I = Imy IRn putem privi functia h din (5.186) ca o functie reala de 2n + 1
variabile reale. Impunand conditiile cunoscute, de anulare a derivatelor partiale,
h

y R = 0
i
,
i = 1 : n,
(5.187)

=0
yiI

32 Problema init
ial
a nu impune selectia, dintre solutiile care asigur
a minimul absolut al functiei
, a celei care minimizeaz
a functia , criteriu ndeplinit de y. Prin urmare, ar putea fi utilizate
si alte criterii de selectie, cum ar fi, de exemplu, calculul vectorului y Y de norm
a euclidian
a
minim
a care satisface restrictia (5.170).

435

5.6. APLICAT
IILE DVS
se obtine sistemul liniar diagonal
(C T C + S T S) y = S T b + S T d

(5.188)

care, considerand drept parametru, se rezolva imediat. Admitand a priori ca


matricea sistemului (5.188) este nesingulara, obtinem expresia y = y() definita de

bi

,
i = 1 : n rB

ci


ci bi + sibi
(5.189)
yi () =
,
i = n rB + 1 : rA

c2i + s2i

di

,
i = rA + 1 : n
si
Multiplicatorul Lagrange = , care defineste solutia problemei de extrem cu
legaturi (5.185), se obtine prin rezolvarea ecuatiei neliniare 33
def

() = (y()) 2 =

nr
XB
i=1

kd2i +

rA
X

i=nrB +1

|ci

p
X
sibi ci di 2
|
+
|di |2 2 = 0,
c2i + s2i
i=n+1

(5.190)
obtinuta prin impunerea conditiei ca solutia (5.189) sa satisfaca relatia de legatura.
Intrucat, pentru > 0, () este o functie descrescatoare (ca suma de functii
descrescatoare),
(0) =

nr
XB
i=1

kd2i +

rA
X

i=nrB

p
X
|sibi ci di |2
+
|di |2 2 > 0,
2
c
i
+1
i=n+1

(5.191)

n virtutea conditiei (5.184), si


lim () =

nr
XB
i=1

|di |2 +

p
X

i=n+1

|di |2 2 < 0,

(5.192)

n virtutea conditiei (5.178), ecuatia (5.190) admite o solutie reala pozitiva =


unica. Calculul solutiei se face prin metode iterative standard de rezolvare a
ecuatiilor neliniare (cum este metoda Newton, vezi [ XVII ]). In sfarsit, n acest caz,
solutia problemei CMMP (5.185) si reziduul aferent sunt
y = y( ),

ry = Cy b,

(5.193)

iar solutia problemei CMMP initiale se obtine utilizand relatiile (5.176).


Pentru a scrie algoritmul de rezolvare al problemei CMMP cu restrictii patratice
tip inegalitate vom admite ca dispunem de o procedura de calcul a descompunerii
valorilor singulare generalizate (exercittiul 5.22) care va fi apelata utilizand sintaxa
[ c, s, U, V, W ] = DVSG(A, B).
33 Ecuat
iile de tipul (5.190) sunt cunoscute sub numele de ecuatii seculare, denumire provenit
a
din astronomie.

436

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Algoritmul DVSG furnizeaza vectorii c si s ai elementelor diagonale ale matricelor


diagonale C si S, precum si matricele de transformare. Evident, rangul matricei A
este dat de numarul componentelor nenule ale vectorului c, iar rangul matricei B
de cel al componentelor nenule ale vectorului s. Neglijarea elementelor vectorilor
c si s inferioare lui tolkAk, respectiv lui tolkBk, unde tol este o toleranta fixata, si
determinarea rangului (numeric al) celor doua matrice vor fi realizate cu algoritmul
Rang DVSG care poate fi scris fara dificultate de cititor (exercitiul 5.23) si care
va fi apelat folosind sintaxa
[ rA , rB ] = Rang DVSG(s, c, tol).
Rezulta urmatorul algoritm.
Algoritmul 5.10 (CMMP RPI Solutia problemei CMMP cu restrictii p
atratice tip inegalitate) (Se considera date matricea A C
I mn ,
m
cu m > n, si vectorul b C
I , care definesc problema CMMP, precum
si matricea B C
I pn , cu p n, vectorul d C
I p si scalarul > 0 care
definesc restrictiile (5.162). De asemenea, pentru evaluarea rangului
este utilizata toleranta tol. Algoritmul calculeaza solutia x = x C
In
a problemei CMMP cu restrictii (5.155), (5.162) si reziduul r = r , de
norma euclidiana minima, aferent.)
1. [ c, s, U, V, W ] = DVSG(A, B)
2. [ rA , rB ] = Rang DVSG(s, c, tol)
3. b U H b

4. d V H d
Pnr
Pp
5. = i=1 B |di |2 + i=n+1 |di |2

6. Dac
a > 2 atunci

1. Tip
are
ste Problema unu are solutie.
2. Return
altfel
1. Dac
a = 2 atunci
bi
1. yi =
pentru i = 1 : n rB
ci
di
2. yi =
pentru i = n rB + 1 : n
si
altfel
PA
bi
1. = + ri=nr
|si di |2
B
ci
2. Dac
a 2 atunci
bi
1. yi =
pentru i = 1 : rA
ci
di
2. yi =
pentru i = rA + 1 : n
si
altfel

437

5.6. APLICAT
IILE DVS
1. Se calculeaza solutia = > 0 a ecuatiei seculare
PrA
si bi ci di 2
| + 2 = 0
i=nrB +1 |ci 2
ci + s2i
utilizand, e.g. metoda Newton.
bi
pentru i = 1 : n rB
2. yi =
ci

ci b i + si b i
3. yi = 2
pentru i = n rB + 1 : rA
ci + s2i
di
pentru i = rA + 1 : n
4. yi =
si
7. x = W y .
Comentarii.

Sintaxa de apel a acestui algoritm este


x = CMMP RPI(A, b, B, d, , tol).

Cititorul poate completa algoritmul cu calculul reziduului optimal r = r si, eventual, a normei euclidiane a acestuia.
Complexitatea algoritmului este determinata decisiv de calculul DVSG si de
rezolvarea iterativa a ecuatiei seculare.
3
Observatia 5.12 Pentru rezolvarea problemei CMMP cu restrictii patratice tip
egalitate se procedeaza ca n partea a doua a deducerii algoritmului de mai sus.
Intrucat algoritmul corespunzator se obtine practic prin eliminarea unor instructiuni
din algoritmul 5.10, detaliile sunt lasate n sarcina cititorului.
3
3. Incheiem acest paragraf, particularizand algoritmul 5.10 pentru rezolvarea
unei probleme ntalnite deseori n aplicatii, si anume problema CMMP cu restrictii
patratice definite de o bila. Concret, formularea acestei probleme se obtine considerand n (5.162) B = In si d = 0, i.e. restrictia devine
X = {x | x C
I n , kxk } .

(5.194)

In acest caz, matricea B fiind diagonala de la nceput, nu mai este necesara utilizarea
DVSG ci este suficienta DVS a matricei A. Fie, deci, A = U V H DVS a matricei
A. Notand y = V H x si b = U H b, problema revine la a calcula y C
I n astfel ncat
sa avem
kr k2 = ky bk2 = min ky bk2 ,
ycalY

Y = { y | y C
I n , kyk } . (5.195)

Avand n vedere faptul ca


def

(y) = ky bk2 =

rA
X
i=1

|i yi bi |2 +

m
X

i=rA +1

|bi |2 ,

(5.196)

minimul absolut al functiei este


=

m
X

i=rA +1

|bi |2

(5.197)

438

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

si se atinge pentru

bi
,
yi =
i

0,

i = 1 : rA

(5.198)

i = rA + 1 : n,

componentele nule fiind alese n vederea satisfacerii restrictiei. Prin urmare, daca
pentru y = y restrictia este satisf
acuta, i.e.
kyk2 =

m
X
|bi |2
2
2 ,

i
i=r +1

(5.199)

atunci solutia y = y mentionat


a este optimala si solutia problemei initiale este
x = V y . Daca
m
X
|bi |2
2
(5.200)
2 > ,

i
i=r +1
A

atunci, procedand ca n cazul general, solutia optimala a problemei CMMP (5.195)


este definita de

ibi
,
i = 1 : rA
2

yi =
(5.201)
i +
0,
i = rA + 1 : n,
unde este solutia pozitiva a ecuatiei seculare
rA
X
i=1

i |bi |
i2 +

!2

2 = 0.

(5.202)

Solutia problemei CMMP initiale este, evident, x = V y .


Rezumam cele aratate mai sus ntr-un algoritm.
Algoritmul 5.11 (CMMP RPB Solutia problemei CMMP cu
restrictii p
atratice tip bil
a) (Se considera date matricea A C
I mn , cu
m
m > n, si vectorul b C
I , care definesc problema CMMP, precum si
scalarul > 0 care defineste restrictia (5.194). De asemenea, pentru
evaluarea rangului, este utilizata toleranta tol. Algoritmul calculeaza
solutia x = x a problemei CMMP cu restrictii (5.155), (5.194).)
1. [ U, , V ] = DVS(A, da , da )
2. r = Rang DVS(, tol)
3. b U H b
Pr |bi |2
4. = i=1 2
i

5. Dac
a 2 atunci

1. Se calculeaza vectorul y C
I n definit n (5.198).

altfel

1. Se calculeaza solutia a ecuatiei seculare (5.202).

439

5.6. APLICAT
IILE DVS
2. Se calculeaza vectorul y C
I n definit n (5.201).
6. x = V ( : , 1 : rA )y (1 : rA ).
Comentarii.

Sintaxa de apel a algoritmului va fi


x = CMMP RPI(A, b, B, d, , tol).

Efortul principal de calcul consta n calculul DVS. Pentru rezolvarea ecuatiei seculare se poate folosi orice metoda iterativa fiabila.
3

5.6.5

Calculul pseudoinversei

Mentionam de la nceput ca sunt putine situatiile aplicative n care este necesar


calculul explicit al pseudoinversei unei matrice date. In cazul general, calculul
pseudoinversei matricei A C
I mn face apel la DVS A = U V H , utilizandu-se
relatia
r
X
vj uH
j
X=
,
vj = V ( : , j), uj = U ( : , j),
(5.203)

j
j=1
stabilita n 5.1 si unde r este rangul (numeric al) matricei A. Rezulta urmatorul
algoritm.
Algoritmul 5.12 (Pinv Calculul pseudoinversei) (Data matricea
A C
I mn si toleranta tol > 0 pentru determinarea rangului numeric,
algoritmul calculeaza pseudoinversa X C
I nm a matricei A.)
1. [ U, , V ] = DVS(A, da , da )
2. r = Rang DVS(, tol)
3. X = 0
4. Pentru j = 1 : r
vj
1. vj =
j
2. X X + vj uH
j
Comentarii.

Sintaxa de apel a algoritmului este


X = Pinv(A, tol),

iar complexitatea sa este determinata, n principal, de complexitatea algoritmului


DVS cu acumularea transformarilor.
3

440

5.7

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Rutine LAPACK si MATLAB

LAPACK. Calculul DVS al unei matrice generale este efectuat de o singura rutina
de tip driver, numita xGESVD. Aceasta calculeaza valorile singulare si, optional,
vectorii singulari stanga si/sau dreapta.
Rutinele de calcul care implementeaza cele doua faze ale algoritmului DVS sunt
urmatoarele:
xGEBRD realizeaza reducerea unei matrice oarecare la forma bidiagonala prin
transformari ortogonale de echivalenta. xGBBRD efectueaza aceeasi operatie
pentru matrice banda, utilizand rotatii Givens (n loc de reflectori).
xBDSQR implementeaza faza iterativa a algoritmului DVS, calculand valorile
singulare si, optional, vectorii singulari, ai unei matrice bidiagonale (de retinut
abrevierea BD pentru matricele bidiagonale).
DVS este utilizata pentru rezolvarea problemei generale a celor mai mici patrate
(calculul pseudosolutiei normale a sistemului Ax = b) n rutina driver xGELSS.
Descompunerea valorilor singulare generalizate (DVSG) a unei perechi de matrice este furnizata de rutina driver xGGSVD.
MATLAB. Valorile si vectorii singulari ai unei matrice generale A pot fi calculati cu
[U, S, V] = svd(A)
unde U si V contin (pe coloane) vectorii singulari stanga, respectiv dreapta iar S este
o matrice diagonala continand valorile singulare. Apelul simplu svd(A) returneaza
un vector continand valorile singulare.
Alte functii care utilizeaza DVS sunt:
rank pentru calculul rangului.
pinv care calculeaza pseudoinversa.
norm pentru obtinerea normei spectrale kAk2 = 1 .
cond pentru calculul numarului de conditionare 2 (A) = 1 /n .
Amintim n final ca rezolvarea n sens CMMP a sistemului Ax = b (de rang
nemaxim) prin operatia A\b nu produce pseudosolutia normala (vezi detalii n capitolul 3).

5.8

Probleme

P 5.1 Care sunt valorile singulare ale matricelor


A=

1
1

1
0

2
1

B=

1
3

2
1

0
1

441

5.8. PROBLEME
Dar ale matricei C = A + iB ?

P 5.2 Scrieti formulele explicite pentru calculul DVS a unei matricei A IR22 . Aceeasi
problem
a pentru o matrice complex
a 2 2.
AT si AH , unde A
este conjugata
P 5.3 Fie A C
I mn . a) Demonstrati c
a matricele A,
mm
nn
matricei A, au aceleasi valori singulare cu A. b) Dac
a P C
I
si Q C
I
sunt matrice
unitare, atunci matricea B = P AQ are aceleasi valori singulare cu matricea A. c) Ar
atati
c
a matricea A, unde C,
I are valorile singulare ||i (A).

0 AH
C
I (m+n)(m+n) .
A
0
Exprimati vectorii proprii ai matricei B n functie de vectorii singulari ai matricei A.

P 5.4

Fie A C
I mn , cu m n, si matricea B =

P 5.5 Se consider
a date matricele reale A, B IRmn
 . Fie matricea complexa C =
A
B
= A + iB C
I mn si matricea real
a D =
IR2m2n . Stabiliti relatiile de
B
A
leg
atur
a dintre DVS ale matricelor C si D.
P 5.6 a) Fie A C
I nn o matrice normal
a, i.e. care satisface conditia AH A = AAH (v.
cap.4), (n particular hermitic
a, iar n cazul real, simetric
a) si (A) = { 1 , 2 , . . . , n }, cu
|1 | |2 | . . . |n |. Ar
atati c
a valorile singulare ale matricei A sunt i = |i |, i = 1 : n.
"
#
6
3 1
3 3 ?
b) Care sunt valorile proprii si valorile singulare ale matricei A = 1
3 1 3
P 5.7 Care sunt valorile singulare ale unei matrice n n unitare (ortogonale) ?
P 5.8 Fie V C
I mk o matrice av
and coloanele ortogonale si P = V V H proiectorul
ortogonal pe ImV .
a) Ar
atati c
a matricea Q = I 2P este unitar
a.
b) Care sunt valorile singulare ale unui proiector ortogonal ?

P 5.9 Ar
atati c
a dac
a A C
I mn , atunci kAk2 kAkF rang A kAk2 .
P 5.10 Demonstrati c
a dac
a Q C
I mn este o matrice cu coloanele ortogonale, i.e.
QH Q = In , si P este o matrice obtinut
a din Q prin eliminarea a cel mult n 1 linii
(oricare), atunci kP k2 = 1.
P 5.11 Ar
atati c
a dac
a A C
I mn are rangul n, atunci kA(AH A)1 AH k2 = 1.
P 5.12 Demonstrati c
a dac
a 1 este cea mai mare valoare singular
a a matricei A, atunci
1 =

y T Ax
max
.
y IRm \ {0} kyk2 kxk2
n
x IR \ {0}

P 5.13 a) Fie vectorii u C


I m, v C
I nsi matricea A = uv H . Care este DVS a matricei
A ? Care este rangul lui A ? b) Ar
atati c
a orice matrice A C
I mn de rang 1 poate fi
H
m
n
scris
a sub forma A = uv , unde u C
I , v C
I .
P 5.14 Elaborati un algoritm pentru calculul DVS a matricei A = In + uv T , unde
u, v IRn sunt doi vectori necoliniari.

442

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

P 5.15 Elaborati un algoritm, similar algoritmului JQ, care s


a calculeze reducerea unei
matrice complexe A C
I mn la o form
a superior bidiagonal
a real
a prin transform
ari unitare
bilaterale.
P 5.16 Fie o matrice superior bidiagonal
a J C
I nn definit
a prin vectorul f C
I n al
n1
elementelor diagonale si vectorul g C
I
al elementelor sale supradiagonale. Ar
atati
c
a dac
a J are dou
a valori singulare egale i = i+1 , atunci f si/sau g au cel putin o
component
a nul
a.
P 5.17 Adaptati algoritmul JQ pentru reducerea eficient
a a unei matrice A C
I nn superior triunghiulare la forma superior bidiagonal
a prin transform
ari unitare de echivalent
a.

A1 A2
P 5.18 Fie A =
, unde A C
I mn , A1 C
I pp . Elaborati un algoritm pentru
0 A3
reducerea eficient
a a matricei A la forma bidiagonal
a prin transform
ari unitare bilaterale.
P 5.19 Adaptati algoritmul JQ pentru reducerea eficient
a a unei matrice A C
I nn
tridiagonale la forma superior bidiagonal
a prin transform
ari unitare de echivalent
a.
P 5.20 Fie A C
I mn , cu m < n. Elaborati un algoritm
pentru
calculul matricelor


unitare U C
I mm , V C
I nn astfel nc
at U H AV = B 0 cu B C
I mm superior
bidiagonal
a.
P 5.21 Demonstrati c
a orice matrice m n este limita unui sir de matrice m n de rang
maximal. Interpretati importanta acestui rezultat pentru practica numeric
a.
P 5.22 Elaborati un algoritm de calcul al descompunerii valorilor singulare generalizate
(DVSG) a unei perechi de matrice (A, B) C
I mn C
I pn date.
P 5.23 Scrieti un algoritm de calcul simultan al rangurilor numerice a dou
a matrice
A C
I mn si B C
I pn date, utiliz
and descompunerea valorilor singulare generalizate a
perechii (A, B).
P 5.24 Elaborati un algoritm de calcul al descompunerii polare a unei matrice A C
I mn
date.
P 5.25 Elaborati un algoritm de calcul al descompunerii CS a unei matrice unitare
Q C
I mm date.
P 5.26 Se dau matricele A C
I mm , B C
I nn si C, D C
I mn . a) Ar
atati c
a sistemul
de ecuatii matriceale

AX Y B = C
XB H AH Y = D

are solutie unic


a (X, Y ) C
I mn C
I mn dac
a si numai dac
a (A) (B) = . b) Scrieti
un algoritm pentru rezolvarea sistemului de mai sus.
P 5.27 Fie date matricea A IRmn si vectorul b IRm . a) Ar
atati c
a pentru orice
> 0 problema de minimizare

kb Axk2 + kxk2
min
x IRn

443

5.8. PROBLEME

are o solutie unic


a x . b) Elaborati un algoritm de calcul al solutiei x . c) Ce se nt
ampl
a
c
and 0 ? d) Ar
atati c
a sistemul
(AT A + In )(AT A + In )y = ( )AT b
not

este satisf
acut de y = x x .
P 5.28 Ar
atati c
a o matrice p
atrat
a are (cel putin) o valoare singular
a nul
a dac
a si numai
dac
a are (cel putin) o valoare proprie nul
a.
P 5.29 Fie matricele p
atrate A, B C
I nn . Se stie (vezi exercitiul 4.5 din cap.4) c
a
matricele AB si BA au aceleasi spectre de valori proprii. Este adev
arat acest lucru si
pentru multimile lor de valori singulare?
P 5.30 Fie matricele A, B C
I mn , p = min(m, n) si (A), (B) multimile (nu uitati,
ordonate descresc
ator!) ale valorilor singulare ale matricei A, respectiv B.
a) Demonstrati si interpretati inegalitatea
1 (A + B) 1 (A) + 1 (B).
Este adev
arat
a inegalitatea i (A+B) i (A)+i (B) si pentru i 2 : p ? Dac
a r
aspunsul
dv. este afirmativ, atunci prezentati o demonstratie, iar dac
a este negativ prezentati un
contraexemplu.
b) Demonstrati inegalitatea
i+j1 (A + B) i (A) + j (B),
unde i, j 1 : p, cu i + j p + 1.
P 5.31 Fie matricele A, B C
I mn , p = min(m, n) si (A), (B) multimile ale valorilor
singulare ale matricei A, respectiv B.
a) Demonstrati si interpretati inegalitatea
1 (AB H ) 1 (A)1 (B).
Este adev
arat
a inegalitatea i (AB H ) i (A)i (B) si pentru i 2 : p ? Dac
a r
aspunsul
dv. este afirmativ, atunci prezentati o demonstratie, iar dac
a este negativ prezentati un
contraexemplu.
b) Demonstrati inegalitatea
i+j1 (AB H ) i (A)j (B),
unde i, j 1 : p, cu i + j p + 1.
P 5.32 Fie matricea A C
I nn si matricea B = AP C
I nn unde P este o matrice
de permutare. Presupunem c
a P a fost aleas
a astfel nc
at matricea B s
a aib
a coloanele
ordonate n sensul descresc
ator al normelor lor euclidiene, i.e. dac
a j = kB(:, j)k2 , atunci
1 2 . . . n . Demonstrati c
a
n
X
j=k

j2

n
X

2j ,

k = 1 : n,

j=k

unde i sunt valorile singulare ale matricei A. Formulati un rezultat analog pentru linii.
Trageti, printre alte concluzii, pe aceea c
a o matrice care are o coloan
a (sau o linie) de
norm
a euclidian
a mic
a are, n mod necesar, si o valoare singular
a mic
a.

444

CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

P 5.33 Se consider
a matricea
A() =

In1
0

IRnn ,

0.

a) Calculati valorile proprii si valorile singulare ale matricei A.


b) Pentru n=10, care sunt variatiile absolute ale modulelor valorilor proprii si ale
valorilor singulare atunci c
and variaz
a de la 0 la 1010 ?
c) Trageti concluzia c
a n timp ce valorile proprii ale unei matrice pot fi (foarte) r
au
conditionate, valorile singulare sunt ntotdeauna perfect conditionate. Retineti c
a aceast
a
concluzie este de o important
a capital
a n rezolvarea numeric
a pe calculator a problemelor
de algebr
a liniar
a n sensul c
a metodele care fac apel la valorilor singulare sunt cele mai
bune.
P 5.34 Ar
atati c
a o matrice A C
I nn este normal
a, i.e. AH A = AAH , dac
a si numai
dac
a n descompunerea polar
a A = P W modulul P = U U H C
I nn (hermitic si
pozitiv semidefinit) si factorul de faz
a W = U V H (unitar) comut
a. (In relatiile de mai
sus s-a utilizat DVS A = U V H a matricei A.)

Capitolul 6

Calculul valorilor si
vectorilor proprii generalizati
Valorile proprii generalizate si vectorii proprii generalizati asociati caracterizeaza din
punct de vedere structural perechile de matrice patrate si reprezinta o generalizare
naturala a conceptelor de valoare proprie si vector propriu.
Metoda de calcul a valorilor proprii generalizate care s-a impus reprezinta o
adaptare performanta a algoritmului QR la noul cadru structural.

6.1
6.1.1

Formularea problemei
Valori si vectori proprii generalizati

Fie matricele patrate A, B C


I nn . Multimea de matrice
F = {F C
I nn | F = A B, C}
I

(6.1)

se numeste fascicol matriceal asociat perechii (A, B) 1 .


Definitia 6.1 Fie F fascicolul matriceal definit de perechea (A, B) C
I nn C
I nn .
Un num
ar C
I se numeste valoare caracteristica a fascicolului F sau, nc
a, valoare
proprie generalizata a perechii (A, B), dac
a exist
a un vector nenul x C
I n astfel
nc
at
Ax = Bx.
(6.2)
Orice vector x 6= 0 care satisface (6.2) se numeste vector principal al fascicolului
F sau, nc
a, vector propriu generalizat al perechii (A, B) asociat valorii proprii
generalizate .
Sistemul liniar omogen (6.2), scris sub forma
(A B)x = 0,
1

Fascicolele matriceale se definesc si pentru perechile de matrice nep


atrate.

(6.3)

446

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

admite solutii nenule numai daca matricea sistemului A B este singulara. Prin
urmare, valorile proprii generalizate ale perechii (A, B) sunt zerourile polinomului
p() = det(A B),

(6.4)

numit polinomul caracteristic al fascicolului F 2 . Daca matricele A si B sunt reale,


atunci polinomul caracteristic are coeficientii reali si valorile proprii generalizate
complexe apar n perechi complex-conjugate. Multiplicitatea ni a radacinii i a
polinomului caracteristic se numeste multiplicitate algebric
a a valorii proprii generalizate i .
Evident, valorile si vectorii proprii ai matricei A coincid cu corespondentii lor
generalizati ai perechii (A, In ).
Vom nota cu (A, B) spectrul generalizat, i.e. multimea valorilor proprii generalizate ale perechii (A, B).
Prezentam principalele proprietati ale valorilor si vectorilor proprii generalizati
sub forma urmatoarei propozitii.
Propozitia 6.1 Fie perechea (A, B) C
I nn C
I nn .

1 Dac
a matricea B este nesingular
a, atunci gradul polinomului caracteristic
este n, deci num
arul valorilor proprii generalizate ale perechii (A, B), incluz
and
multiplicit
atile, este egal cu ordinul n al matricelor. Mai mult,
(A, B) = (B 1 A) = (AB 1 ).
2 Dac
a (A, B) si 6= 0, atunci

(6.5)

1
(B, A).

Demonstratie. 1 In acest caz polinomul caracteristic (6.4) este p() = det(A


B) = det(B)det(B 1 A In ) = det(AB 1 In )det(B) cu det(B) 6= 0, i.e.
are aceleasi radacini cu polinoamele caracteristice ale matricelor B 1 A si AB 1 .
Rezulta ca p() este un polinom de gradul n cu coeficienti complecsi si, n consecinta,
are exact n valori proprii complexe, nu neaparat distincte. 2 Daca 6= 0, atunci
(6.3) implica (B 1 A)x = 0.
3
Observatia 6.1 Daca matricea B este singulara, atunci numarul valorilor proprii
generalizate al perechii (A, B) poate lua orice valoare din multimea (0 : n1){}.
Intr-adevar, sa consideram situatiile:
a) A nesingulara si B = 0, caz n care perechea (A, B) nu are nici o valoare
proprie generalizata;
b) A = diag(A1 , A2 ), B = diag(B1 , 0) cu A1 , B1 C
I kk , k = 1 : n 1, si A2 ,
B1 nesingulare; n acest caz perechea (A, B) are exact k valori proprii generalizate;
c) polinomul caracteristic al fascicolului definit de perechea (A, B) este identic
nul (e.g. A singulara si B = 0), situatie n care orice numar complex este valoare
proprie generalizata a perechii (A, B).
Aceste situatii nu sunt exclusive, vezi exemplul de mai jos.
3
2

Ecuatia p() = 0 se numeste ecuatia caracteristic


a a fascicolului F .

6.1. FORMULAREA PROBLEMEI

447






1 0
0 0
Exemplul 6.1 Perechea de matrice A =
,B =
nu are nici
0 3
1 0



1 2
1 0
o valoare proprie generalizata, perechea A =
,B =
are una
0 3
0 0
singur
a si orice
Ieste valoare proprie generalizata pentru perechea

 numar C
1 2
1 0
A=
,B =
.
3
0 0
0 0

Pentru a elimina cazul nedeterminat, cand toate numerele complexe sunt valori
proprii generalizate, caz care nu poate fi obiectul unei probleme de calcul, vom
presupune n continuare ca polinomul caracteristic al fascicolului definit de perechea
(A, B) nu este identic nul. In acest caz fascicolul se numeste regulat 3 . De asemenea,
vom conveni ca un fascicol regulat de ordinul n avand gradul polinomului caracteristic k < n (i.e. avand k valori proprii generalizate finite, nu neaparat distincte)
are n k valori proprii infinite 4 . Cu aceasta conventie, spectrul de valori proprii
(A, B) al unui fascicol regulat de ordinul n va avea ntotdeauna exact n elemente.
Daca matricea B (sau A) este nesingulara fascicolul definit de perechea (A, B)
poate fi numit nesingular. Un fascicol se numeste hermitic (n cazul real, simetric)
pozitiv definit daca matricele A si B sunt hermitice (simetrice), iar matricea B este
pozitiv definita.
Vectorii proprii generalizati, introdusi prin definitia 6.1, satisfac sistemul liniar
omogen singular (6.3). Prin urmare, fiecarei valori proprii generalizate finite i
corespunde cel putin un vector propriu. Daca perechea (A, B) este reala, vectorii
proprii generalizati asociati valorilor proprii generalizate complex conjugate pot fi
alesi complex conjugati. Multimea vectorilor proprii generalizati asociati unei valori
proprii generalizate finite i formeaza subspatiul liniar Ui = Ker(A i B) C
In a
carui dimensiune i constituie multiplicitatea geometric
a a lui i .

6.1.2

Subspatii de deflatie

Corespondentul generalizat al conceptului de subspatiu invariant este subspatiul de


deflatie, definit n felul urmator.
Definitia 6.2 Fie o pereche (A, B) C
I nn C
I nn , un subspatiu liniar k-dimenn
sional S din C
I si subspatiul liniar
def

V = AS + BS = {z C
I n | z = Ax + By, cu x, y S}.
Subspatiul S se numeste subspatiu de deflatie al perechii (A, B) dac
a
dimV dimS.

(6.6)

Pentru proprietatile subspatiilor de deflatie ale fascicolelor de matrice recomandam


consultarea referintei [ VI ].
3
In caz contrar (i.e. polinomul caracteristic este identic nul sau matricele nu sunt p
atrate)
fascicolul se numeste singular.
4 Justificarea acestei convent
ii va deveni limpede mai t
arziu.

448

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Problema de calcul care face obiectul acestui capitol este determinarea valorilor
proprii generalizate ale unui fascicol regulat dat. Problema calculului vectorilor
proprii generalizati va fi tratata n subsidiar tinand seama si de faptul ca, n multe
aplicatii, calculul explicit al acestora poate fi (si este bine sa fie) evitat. Acest
demers calculatoriu se bazeaza n mare masura pe urmatorul rezultat.
Propozitia 6.2 Fie (A, B) C
I nn C
I nn . Dac
a exist
a un subspatiu de deflatie
n
k-dimensional S C
I al perechii (A, B), atunci exist
a matricele unitare Q, Z
C
I nn astfel nc
at




S11 S12
T11 T12
,
QH BZ =
,
(6.7)
QH AZ =
0 S22
0 T22
cu S11 , T11 C
I kk .
Perechea (S11 , T11 ) se numeste restrictia perechii (A, B) la subspatiul S.
def

Demonstratie.
Fie Z1 = [z1 z2 zk ] o matrice n k ale carei coloane formeaza
o baza ortogonala a subspatiului de deflatie S, Z2 C
I n(nk) o completare unitara
a lui Z1 si Z = [ Z1 Z2 ]. Fie acum subspatiul V = AS + BS, a carui dimensiune
r satisface, prin definitie, conditia r k , Q1 o matrice n r ale carei coloane
formeaza o baza ortogonala a acestui subspatiu, Q2 o completare unitara a lui Q1
si Q = [ Q1 Q2 ]. Intrucat AS V si BS V avem AS ImQ2 si BS ImQ2 , i.e.
QH
si Q H
mpreuna cu inegalitatea r k , conduc imediat
2 AZ1 = 0
2 BZ1 = 0 care,
la (6.7), q.e.d.
3
Observatia 6.2 Calculul matricelor unitare de transformare Q si Z este conditionat esential de cunoasterea unei baze a subspatiului de deflatie S. In cazul n
care se dispune de o baza a lui S, constructia unei baze ortogonale Z1 si a unei
completari ortogonale Z2 (si, similar, a matricei Q) se face dupa recomandarile din
capitolul 3 (vezi si obs. 4.3).
3

6.1.3

Fascicole echivalente

Ca si n cazul valorilor proprii ordinare, suntem interesati sa evidentiem transformarile matriceale care conserv
a spectrul unui fascicol dat.
Definitia 6.3 Dou
a fascicole definite de perechile de matrice (A1 , B1 ), (A2 , B2 )
C
I nn C
I nn se numesc echivalente 5 dac
a exist
a matricele nesingulare P, R
C
I nn astfel nc
at
A1 = P A2 R,
B1 = P B2 R.
(6.8)
Dac
a matricele de transformare P si R sunt unitare, atunci perechile (A1 , B1 ) si
(A2 , B2 ) se numesc unitar echivalente.
In cazul real, dac
a matricele de transformare
P , R sunt ortogonale, cele dou
a perechi se numesc ortogonal echivalente.
5 Un fascicol A B poate fi privit ca o matrice polinomial
a. Din acest punct de vedere
echivalenta definit
a aici coincide cu echivalenta strict
a a matricelor polinomiale (vezi [ I ]).

6.1. FORMULAREA PROBLEMEI

449

Proprietatea principala a relatiei de echivalenta a doua fascicole este data de


propozitia ce urmeaza.
Propozitia 6.3 Dac
a perechile (A1 , B1 ) si (A2 , B2 ) sunt echivalente n sensul definitiei 6.2, i.e. satisfac (6.8), atunci
(A1 , B1 ) = (A2 , B2 ).

(6.9)

In plus, dac
a x este un vector propriu generalizat al perechii (A1 , B1 ) asociat valorii
proprii generalizate , atunci
y = Rx
(6.10)
este un vector propriu generalizat al perechii (A2 , B2 ) asociat aceleiasi valori proprii.
Demonstratie.
Daca A1 = P A2 R si B1 = P B2 R, cu P si R nesingulare, atunci
(A1 B1 )x = 0 cu x =
6 0 implica, evident, (A2 B2 )Rx = (A2 B2 )y = 0 si
y 6= 0, q.e.d.
3

6.1.4

Fascicole hermitice (simetrice).


Fascicole hermitice congruente

Fie perechea de matrice patrate (A, B) C


I nn C
I nn care defineste fascicolul
matriceal
F = {F = A B | IR}.
(6.11)
Vom spune ca fascicolul F este hermitic (n cazul matricelor A si B reale, simetric)
si, echivalent, ca perechea (A, B) este hermitica (simetrica), daca ambele matrice
A si B sunt hermitice (simetrice) 6 . Este usor de vazut ca un fascicol hermitic are
spectrul generalizat o multime simetrica (dar nu, n mod necesar, real), iar n cazul
real, un fascicol simetric are spectrul generalizat real.
Daca F este un fascicol hermitic, vom spune ca F este de semn (semi)definit
daca una dintre matricele A sau B este de semn (semi)definit (i.e. pozitiv sau
negativ (semi)definita). Pentru precizare, n continuare, vom spune ca un fascicol
hermitic este pozitiv (negativ) (semi)definit daca matricea B este pozitiv (negativ)
(semi)definita.
Un fapt important pe care dorim sa-l remarcam este acela ca, n general, transformarile de echivalenta, definite n pararagraful anterior, nu conserva nici proprietatea de a fi hermitic (n cazul real, simetria) nici definirea semnului unui fascicol.
De aceea, tehnicile de calcul ale valorilor proprii generalizate si ale vectorilor proprii
generalizati nu beneficiaza de facilitatile si de dezvoltarile elegante din cazul ordinar
(v. cap. 4). In acest context, vom fi interesati sa definim clasa transformarilor de
echivalenta care conserva proprietatile mentionate.
Vom spune ca doua fascicole F1 si F2 definite de perechile (A1 , B1 ) si (A2 , B2 )
sunt congruente daca exista o matrice nesingulara T astfel ncat
(A2 , B2 ) = (T H A1 T, T H B1 T ),

(6.12)

6 Datorit
a faptului c
a n (6.11) este real, toate matricele dintr-un fascicol hermitic sunt
hermitice.

450

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

(n cazul real, T se considera real


a). Este usor de constatat ca doua fascicole congruente sunt simultan hermitice (n cazul real, simetrice) sau nu, iar doua fascicole
hermitice (simetrice) congruente sunt simultan pozitiv definite sau nu. In sectiunea
urmatoare vom vedea n ce conditii un fascicol hermitic poate fi adus printr-o transformare de congruenta la forma diagonala.

In cazul general, structura fina a unei perechi de matrice, care poate fi dezvaluit
a prin transformari de echivalenta corespunzatoare, este data de asa numita
form
a canonic
a Kronecker [ I ]. La fel ca si n cazul formei canonice Jordan, rolul
formei canonice Kronecker n calculul numeric este mult diminuat de sensibilitatea
ei la perturbatii n elementele matricelor initiale, perturbatii inerente n aritmetica
n virgula mobila. Acesta este motivul pentru care n toate dezvoltarile numerice
se prefera o structura mult mai robusta si anume forma Schur (complexa sau reala)
generalizata a perechii (A, B) prezentata n continuare.

6.2

Forma Schur generalizat


a

Transformarile de echivalenta unitare, respectiv ortogonale n cazul real, prezinta


proprietati numerice remarcabile si, de aceea, sunt utilizate n exclusivitate pentru
calculul performant al valorilor proprii generalizate. Pe de alta parte, structurile
canonice, cum este forma Kronecker, nu se pot obtine, n general, prin astfel de
transformari. De aceea, ca si n cazul determinarii valorilor proprii ordinare, se
utilizeaza, practic n exclusivitate, structurile triunghiulare sau cvasi-triunghiulare.
Rezultatul principal al acestui paragraf arata ca orice pereche de matrice (A, B)
este unitar echivalent
a cu o pereche de matrice triunghiulare numita forma Schur
generalizata. Vom trata distinct cazul perechilor de matrice reale.

6.2.1

Forma Schur generalizat


a (complex
a)

Calculul valorilor proprii generalizate este intim legat de calculul vectorilor proprii
generalizati asociati. Daca (A, B) este cunoscuta, atunci vectorul propriu
asociat este o solutie nenula a unui sistem liniar omogen. Daca se cunoaste un
vector propriu generalizat x al perechii (A, B), cu B nesingulara, atunci valoarea
proprie generalizata asociata poate fi calculata cu relatia 7
=

xH B 1 Ax
.
xH x

(6.13)

Dac
a gradul polinomului caracteristic al fascicolului este superior lui patru, calculul
valorilor proprii generalizate, n absenta cunoasterii vectorilor proprii asociati, este,
7

O alt
a relatie ce poate fi utilizat
a pentru calculul unei valori proprii generalizate finite a unui
xH B H Ax
fascicol regulat este = H H
, care exprim
a faptul c
a este solutia n sensul celor mai mici
x B Bx
patrate a sistemului Bx = Ax (vezi si exercitiul 6.7).


6.2. FORMA SCHUR GENERALIZATA

451

n mod necesar, un proces (iterativ) infinit, aceeasi situatie aparand si la calculul


vectorilor proprii generalizati fara a se cunoaste valorile proprii asociate. Exista
si aici metode corespondente pentru metodele puterii si puterii inverse de calcul
iterativ al unui vector propriu generalizat pe care le propunem spre elaborare cititorului (v. exercitiul 6.6). Pentru asigurarea eficientei acestor procese iterative este
esentiala exploatarea rezultatelor structurale partiale care se face prin reducerea
corespunzatoare a dimensiunii problemei. Baza teoretica a acestor reduceri este
data de propozitia 6.2.
Pentru k = 1 propozitia 6.2 se particularizeaza ntr-un corespondent generalizat al lemei de deflatie unitara 4.2. Aplicarea consecventa a acesteia ne conduce la
urmatorul rezultat important a carui demonstratie, fiind similara cu demonstratia
teoremei 4.12, este lasata n sarcina cititorului.
Teorema 6.1 (Forma Schur generalizata) Oricare ar fi perechea (A, B) C
I nn
nn
nn
I
C
exist
a matricele unitare Q, Z C
I
astfel nc
at
QH AZ = S,

QH BZ = T,

(6.14)

unde matricele S, T sunt superior triunghiulare. Perechile de elemente diagonale


(sii , tii ) cu tii 6= 0 ale matricelor S si T determin
a valorile proprii generalizate
(finite)
sii
i =
(6.15)
tii
ale perechii (A, B). Cele n perechi de elemente diagonale pot fi dispuse n orice
ordine predeterminat
a.
Perechea (S, T ) se numeste forma Schur generalizata (FSG) a perechii (A, B),
iar coloanele qi , respectiv zi , ale matricelor de transformare Q si Z se numesc
vectori Schur generalizati ai perechii (A, B) la st
anga, respectiv la dreapta, asociati
FSG (S, T ).
Daca matricea B este nesingulara, atunci si T este nesingulara, i.e. tii 6= 0
pentru toti i 1 : n. Daca B este singulara, perechilor (sii , tii ) cu sii 6= 0 si tii = 0
le corespund valorile proprii generalizate pe care am convenit sa le consideram
infinite. Justificarea acestei conventii este, acum, evidenta daca avem n vedere
(6.15). Pentru fascicolele regulate, considerate aici, nu este posibil sa avem simultan
sii = 0 si tii = 0 pentru nici un i.
In practica, pentru a se evita introducerea valorilor infinite, se recomanda definirea valorilor proprii generalizate prin intermediul perechilor (sii , tii ). In multe
aplicatii acestea pot fi utilizate fara a efectua explicit mpartirea din (6.15).
Fie, acum, S11 = S(1 : k , 1 : k), T11 = T (1 : k , 1 : k) submatricele lider principale
de ordinul k 1 : n ale matricelor superior triunghiulare S si T din (6.14) care
definesc FSG a perechii (A, B). Daca notam Q1 = Q( : , 1 : k) si Z1 = Z( : , 1 : k),
atunci din (6.14) avem
AZ1 = Q1 S11 ,

BZ1 = Q1 T11 .

Fie subspatiul S = ImZ1 C


I n . Intrucat din relatiile de mai sus rezulta AS ImQ1 ,
BS ImQ1 avem
V = AS + BS ImQ1 .

452

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Deci, dimV k, adica S este un subspatiu de deflatie k-dimensional al perechii


(A, B). Cu alte cuvinte, primele k coloane ale matricei de transformare Z, i.e.
primii k vectori Schur la dreapta ai perechii (A, B), formeaza o baza ortogonala a
subspatiului de deflatie k-dimensional asociat valorilor proprii generalizate definite
de perechile (sii , tii ), i = 1 : k. In acest mod, prin ordonarea corespunzatoare a
elementelor diagonale ale matricelor S si T , se pot construi baze ortogonale pentru
subspatii de deflatie asociate unor grupuri impuse de valori proprii generalizate (vezi
sectiunea 6.4).

6.2.2

Forma Schur real


a generalizat
a

In cazul n care matricele A, B sunt reale se obtine un spor important de eficienta


daca se utilizeaza n exclusivitate o aritmetica reala. Corespondentul generalizat al
formei Schur reale este introdus prin urmatoarea teorema pe care o prezentam fara
demonstratie.
Teorema 6.2 (Forma Schur reala generalizata) Oricare ar fi perechea (A, B)
IRnn IRnn exist
a matricele ortogonale Q, Z IRnn astfel nc
at
QT AZ = S,

QT BZ = T,

(6.16)

unde matricea S este n form


a Schur real
a iar matricea T este superior triunghiular
a. Perechile de blocuri diagonale (Sii , Tii ), i = 1 : p, de dimensiuni 1 1 sau 2 2
ale matricelor S si T determin
a valorile proprii generalizate ale
P perechii (A, B), mai
precis dac
a blocul diagonal i al lui S are ordinul ni , atunci pi=1 ni = n si
(A, B) = pi=1 (Sii , Tii ).

(6.17)

Perechile de blocuri diagonale pot fi dispuse n orice ordine predeterminat


a.
Perechea (S, T ) se numeste forma Schur reala generalizata (FSRG) a perechii
(A, B), iar coloanele qi , respectiv zi , ale matricelor ortogonale de transformare Q
si Z se numesc vectori Schur generalizati ai perechii (A, B) la st
anga, respectiv la
dreapta, asociati FSRG.
Conform (6.17), daca dispunem de FSRG a unei perechi (A, B), calculul valorilor
proprii generalizate se reduce la rezolvarea ecuatiilor algebrice
det(Sii Tii ) = 0,

i = 1 : p,

(6.18)

de grad cel mult doi.


Toate consideratiile facute n legatura cu FSG au un corespondent transparent
pentru FSRG. De exemplu, daca dimensiunea cumulata a primelor l blocuri diagonale ale matricei S este k, atunci primele k coloane ale matricei ortogonale de transformare Z formeaza o baza ortogonala a unui subspatiu de deflatie k-dimensional
(din IRn ) al perechii (A, B) asociat primelor k valori proprii generalizate.
Din cele de mai sus rezulta ca problema de calcul a valorilor proprii generalizate
se reduce, n esenta, la obtinerea formei Schur (reale) generalizate. Cum acest lucru
nu este posibil, n cazul general, printr-o secventa finita de operatii elementare,
calculul va fi bazat, n mod necesar, pe trunchierea unui proces infinit, similar
algoritmului QR. In forma sa cea mai performanta aceasta procedura este cunoscuta
sub numele de algoritm QZ si este prezentata n sectiunea ce urmeaza.


6.2. FORMA SCHUR GENERALIZATA

6.2.3

453

Forma diagonal
a a fascicolelor hermitice
pozitiv definite

In cazul fascicolelor hermitice (n cazul real, simetrice) vom fi interesati de conditiile


n care transformarile de congruenta pot fi utilizate pentru reducerea la forma Schur
generalizata. Daca o astfel de posibilitate exista, atunci, avand n vedere ca rezultatul este o forma Schur generalizata hermitica, rezulta ca ambele matrice sunt diagonale. Vom numi aceasta structura form
a diagonal
a generalizat
a. Aceste conditii
sunt prezentate n teorema urmatoare. T
inand seama de faptul ca rezultatul nu
este o generalizare directa a unui rezultat similar din cazul ordinar, prezentam si
demonstratia.
Teorema 6.3 (Forma diagonal
a generalizata) Fie un fascicol hermitic definit de
perechea (A, B) C
I nn C
I nn si matricea (hermitic
a)
C() = A + (1 )B,

IR.

(6.19)

Dac
a exist
a un scalar [0, 1], astfel nc
at matricea C() este pozitiv semidefinit
a,
i.e. xH C()x 0, x C,
I si
KerC() = KerA KerB,

(6.20)

atunci exist
a o matrice nesingular
a T C
I nn astfel nc
at perechea congruent
a
(F, G) = (T H AT, T H BT )

(6.21)

are matricele F si G diagonale, i.e. este n form


a diagonal
a generalizat
a.

In cazul real, toate matricele implicate sunt reale.


Demonstratie. Fie [ 0, 1 ] astfel ncat matricea C() este pozitiv semidefinita
si este satisfacuta conditia (6.20). Intrucat matricea C() este hermitica si pozitiv
semidefinita, forma Schur a lui C() este diagonala cu elementele diagonale reale
si nenegative care pot fi ordonate. Altfel spus, exista o matrice unitara U1 C
I nn
astfel ncat


D 0
U1H C()U1 =
, D = diag(d1 , d2 , . . . , dk ), di > 0, i = 1 : k. (6.22)
0 0



0
Fie = D 2 = diag( d1 , d2 , . . . , dk ), 1 =
si matricea nesingu0 Ink
lara T1 = U1 1
am transformarea de congruenta
1 . Consider
(A1 , B1 ) = (T1H AT1 , T1H BT1 )

(6.23)

si matricea
1
H
C1 () = T1H C()T1 = 1
1 U1 C()U1 1 =

Ik
0

0
0

= A1 +(1)B1 . (6.24)

In continuare avem, evident,


KerC() = KerA KerB KerC1 () = KerA1 KerB1 .

(6.25)

454

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Cum x KerC1 () implica n mod necesar x(1 : k) = 0, rezulta ca KerC1 () =


= ImE, unde E = [ ek+1 , ek+2 , . . . , en ]. Dar KerC1 () KerA1 . Deci A1 E = 0, i.e.
A1 (:, k + 1 : n) = 0, si cum A1 este hermitica, rezulta ca are urmatoarea structura
(din exact aceleasi motive aceast
a structura o are si matricea B)




A11 0
B11 0
A1 =
,
B1 =
,
A11 , B11 C
I kk .
(6.26)
0
0
0
0
Din (6.24) rezulta
A11 + (1 )B11 = Ik .

(6.27)

Distingem doua situatii:


a) Daca = 0, atunci B11 = Ik si consideram forma Schur (diagonala)
F11 = QH
11 A11 Q11 = diag(f1 , f2 , . . . , fk )
a blocului A11 . Luand matricea unitara Q = diag(Q11 , Ink ) si definind matricea
de transformare T = T1 Q, avem
F = T H AT = QH A1 Q = diag(F11 , 0),

G = T H BT = QH B1 Q = diag(Ik , 0),
(6.28)
i.e. forma diagonala generalizata a perechii initiale.
b) Daca 6= 0, atunci consideram forma Schur (diagonala)
G11 = QH
11 B11 Q11 = diag(g1 , g2 , . . . , gk )
a blocului B11 . Luand din nou matricea unitara Q = diag(Q11 , Ink ) si definind
matricea de transformare T = T1 Q, avem
F

=
=
G =

1 H
T (C() (1 )B)T =





1
Ik 0
G11 0
(1 )
=
0 0
0
0

T H AT =

(6.29)

diag(f1 , f2 , . . . , fk , 0, . . . , 0),
T H BT = QH B1 Q = diag(g1 , g2 , . . . , gk , 0, . . . , 0),

unde

1
1

gi .

Am obtinut si n acest caz forma diagonala generalizata a perechii initiale.


In cazul real demonstratia este identica, cu mentiunea ca toate matricele care
apar sunt reale. Teorema este demonstrata.
3
In aplicatii, de cele mai multe ori, apar fascicole hermitice (simetrice) de semn
definit. Evident, ntr-un astfel de caz, conditiile teoremei de mai sus sunt ndeplinite:
daca B este pozitiv definita, atunci pentru = 0, iar daca A este pozitiv definita,
atunci pentru = 1. Deci fascicolele hermitice pozitiv definite sunt ntotdeauna
generalizat diagonalizabile.
fi =

455

6.3. ALGORITMUL QZ

6.3

Algoritmul QZ

Algoritmul QZ, elaborat de C.B. Moler si G.W. Stewart n anul 1973 [ 44 ], este, n
esenta, o procedura de deflatie iterativa care construieste (recurent) un sir de perechi
de matrice unitar echivalente cu perechea initiala, sir care, n conditii precizate, este
convergent catre forma Schur generalizata. In cazul real se poate impune exclusiv o
aritmetica reala pe baza unei strategii a pasilor dubli. In aceasta situatie termenii
sirului sunt perechi ortogonal echivalente, iar limita sa este o forma Schur reala
generalizata a perechii initiale.
Algoritmul QZ este organizat, ca si algoritmul QR, n doua faze:
a) Faza a I-a, de reducere, prin calcul direct, a perechii (A, B) initiale la o
pereche unitar echivalenta (H, T ) avand matricea H n forma superior Hessenberg
si matricea T n forma superior triunghiulara, structura cea mai apropiata de FSG ce
poate fi obtinuta printr-un calcul finit. Vom numi perechea (H, T ) form
a Hessenberg
generalizat
a a lui (A, B).
b) Faza a II-a, de deflatie iterativa, prin care elementele subdiagonale ale
matricei superior Hessenberg H sunt anulate asimptotic (simultan cu conservarea
structurii superior triunghiulare a matricei T ), utilizand transformari unitare de
echivalenta.
Intr-o caracterizare sintetica, algoritmul QZ aplicat perechii (A, B) (cu B nesingulara) poate fi considerat drept o varianta mascata a algoritmului QR aplicat
matricei AB 1 si de aici rezulta remarcabilele sale performante numerice si de
convergenta.

6.3.1

Reducerea la forma Hessenberg generalizat


a

Corespondentul generalizat al teoremei 4.8 are urmatoarea formulare.


Teorema 6.4 Oricare ar fi perechea (A, B) C
I nn C
I nn , ce defineste un fascicol
nn
regulat, exist
a matricele unitare Q, Z C
I
, calculabile printr-o secvent
a finit
a de
operatii aritmetice, astfel nc
at perechea
(H, T ) = (QH AZ, QH BZ)

(6.30)

are matricea H superior Hessenberg si matricea T superior triunghiular


a. Dac
a
matricele A, B sunt reale, atunci si matricele H si T sunt reale, iar matricele de
transformare Q si Z sunt ortogonale.
Demonstratie. Vom da o demonstratie constructiva explicita n vederea elaborarii
unui algoritm performant. In primul rand, exista o matrice unitara Q C
I nn astfel
ncat matricea B T = QH B este superior triunghiulara (vezi capitolul 3), i.e.
perechea unitar echivalenta
T ) = (QH AZ, QH BZ),
(A, B) (A,
cu Z = In , are matricea A densa si T superior triunghiulara. In continuare vom
aduce matricea A la forma superior Hessenberg pastrand structura superior triunghiulara a matricei B. Procedura are n 2 pasi.

456

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Pasul 1 . In cadrul pasului initial vom anula elementele A(3 : n, 1) din prima
coloana a matricei A, n ordinea n : 1 : 3, prin transformari unitare de echivalenta
definite de doua secvente de rotatii (complexe) conform schemei de calcul
HT- 1

1. Pentru i = n : 1 : 3

(1)

(1)

1. Se determina rotatia Qi1,i astfel ncat ((Qi1,i ) A)(i, 1) = 0


(1)

(1)

2. A (Qi1,i ) A

3. B (Qi1,i ) B
4.
5.
6.
7.
8.

% Se altereaza zeroul din pozitia (i, i 1) a


matricei superior triunghiulare B

(1)

Q QQi1,i
(1)
(1)
Se determina rotatia Zi1,i astfel ncat (BZi1,i )(i, i 1) = 0
(1)
A AZi1,i
(1)
B BZi1,i
(1)
Z ZZi1,i

Intrucat premultiplicarea unei matrice cu o rotatie din planul (i1, i) afecteaza numai liniile i1 si i, executia instructiunii 1.3 are ca efect o posibila alterare 8 a structurii superior triunghiulare a matricei B prin alterarea zeroului din pozitia (i, i1).
Refacerea structurii superior triunghiulare a lui B se realizeaza la instructiunea 1.6
prin postmultiplicarea matricei B cu o rotatie calculata corespunzator la instructiunea 1.5. Postmultiplicarea cu o rotatie plana din planul (i1, i), afectand numai
coloanele i1 si i, nu are nici un efect (ntrucat i > 2) asupra zerourilor create n
prima coloana a matricei A 9 . In acest fel, pe masura crearii zerourilor din prima
coloana a lui A, elementul alterant al structurii superior triunghiulare a lui B se
deplaseaza pe o traiectorie subdiagonala ascendenta pana la parasirea matricei din
pozitia (3, 2) dupa cum se poate vedea si din urmatoarea exemplificare pentru n = 4.
In diagramele structurale de mai jos zeroul nou creat a fost marcat cu , elementul
alterant cu +, iar ncadrarile indica liniile si coloanele afectate la pasul respectiv.

(A, B) = (
,
0 0 ),

0 0 0

(1) H
(1) H
(A, B) ((Q34 ) A, (Q34 ) B) = (


0
0
0

0
0 +

),

8 Alterarea are efectiv loc dac


a elementul diagonal (i1, i1) al matricei curente B este nenul,
care este cazul obisnuit.
9 De observat c
a ncercarea de anulare a elementului (2, 1) a lui A este sortit
a esecului ntruc
at
(1)
postmultiplicarea cu rotatia Z1,2 poate altera toate zerourile create n prima coloan
a.

457

6.3. ALGORITMUL QZ

(1)
(1)
(A, B) (AZ34 , BZ34 ) = (

(1) H
(1) H
(A, B) ((Q23 ) A, (Q23 ) B) = (

(1)
(1)
(A, B) (AZ23 , BZ23 ) = (

0
0

Cumuland transformarile din acest exemplu se obtine


(1) H

(1) H

(1)

(1)

(1) H

def

0
0
0

(1) H

0
0

0
0

0
0
0

(1)




0 0

(1)

),

),

).

def

(A, B) ((Q23 ) (Q34 ) AZ34 Z23 , (Q23 ) (Q34 ) BZ34 Z23 ) =


H

= ((Q(1) ) AZ (1) , (Q(1) ) BZ (1) ).

Prin urmare, schema de calcul de mai sus produce matricele


(1) H

(1)

(1)

(1)

(1) def

(1)

A A(1) = (Q23 ) (Qn2,n1 ) (Qn1,n ) AZn1,n Zn2,n1 Z23 =


H

def

= (Q(1) ) AZ (1) ,

B B (1) =

(1) H
(Q23 )

(1)

(1)

(1)

(6.31)
(1) def

(1)

(Qn2,n1 ) (Qn1,n ) BZn1,n Zn2,n1 Z23 =


H

def

= (Q(1) ) BZ (1) ,

(1)

(6.32)

(1)

cu A (3 : n, 1) = 0 si B
superior triunghiulara, realizandu-se astfel obiectivul
pasului 1. Evident, matricele unitare de transformare
def

(1)

(1)

(1)

Q(1) = Qn1,n Qn2,n1 Q23 ,

def

(1)

(1)

(1)

Z (1) = Zn1,n Zn2,n1 Z23

(6.33)

cumuleaza cele doua secvente de rotatii utilizate la pasul 1.


Pasul k . Presupunem ca n cadrul primilor k 1 pasi am obtinut o pereche
(A(k1) , B (k1) ) ce suprascrie (A, B) cu A(k1) avand o structura superior
Hessenberg n primele k 1 coloane si B (k1) superior triunghiulara:
def

def

A A(k1) = (Q(k1) ) (Q(2) ) (Q(1) ) AZ (1) Z (2) Z (k1) ,


B B (k1) = (Q(k1) ) (Q(2) ) (Q(1) ) BZ (1) Z (2) Z (k1) .

(6.34)
(6.35)

Este usor de vazut ca adaptand schema de calcul de la pasul 1, i.e. efectuand

458

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I
1. Pentru i = n : 1 : k + 2

HT- k

(k)

(k)

1. Se determina rotatia Qi1,i astfel ncat ((Qi1,i ) A)(i, k) = 0


(k)

(k)

2. A (Qi1,i ) A

3. B (Qi1,i ) B
4.
5.
6.
7.
8.

% Se altereaza zeroul din pozitia (i, i 1)


a matricei superior triunghiulare B

(k)

Q QQi1,i
(k)
(k)
Se determina rotatia Zi1,i astfel ncat (BZi1,i )(i, i 1) = 0
(k)
A AZi1,i
(k)
B BZi1,i
(k)
Z ZZi1,i

se obtin matricele
H

(k)

(k)

(k)

(k)

(k)

(k)

A A(k) = (Qk+1,k+2 ) (Qn2,n1 ) (Qn1,n ) A(k1)Zn1,n Zn2,n1 Zk+1,k+2


H

def

= (Q(k) ) A(k1) Z (k)

(6.36)

si
H

(k)

(k)

(k)

(k)

(k)

(k)

B B (k) = (Qk+1,k+2 ) (Qn2,n1 ) (Qn1,n ) B (k1)Zn1,n Zn2,n1 Zk+1,k+2


H

def

= (Q(k) ) B (k1) Z (k)

(6.37)

cu A(k) (k + 2 : n, k) = 0, cu structura primelor k 1 coloane ale matricei A(k1)


ramasa nealterata si cu B (k) superior triunghiulara, realizandu-se astfel obiectivul
pasului k. Evident, matricele unitare de transformare
def

(k)

(k)

def

(k)

Q(k) = Qn1,n Qn2,n1 Qk+1,k+2 ,

(k)

(k)

(k)

Z (k) = Zn1,n Zn2,n1 Zk+1,k+2


(6.38)
cumuleaza cele doua secvente de rotatii utilizate la pasul k.
In concluzie, pasul 1 de mai sus permite initierea procedurii de reducere a
perechii (A, B) la forma Hessenberg generalizata, iar pasul k arata ca aceasta reducere poate fi continuata. Dupa n2 pasi se obtine rezultatul dorit, i.e.
H

def

(6.39)

def

(6.40)

A H = (Q(n2) ) (Q(2) ) (Q(1) ) AZ (1) Z (2) Z (n2) = QH AZ,


B T = (Q(n2) ) (Q(2) ) (Q(1) ) BZ (1) Z (2) Z (n2) = QH BZ

cu H superior Hessenberg si T superior triunghiulara, i.e. cu perechea (H, T ) n


forma Hessenberrg generalizata. Evident, matricele unitare de transformare
def

Q = Q(1) Q(2) Q(n2) ,


cumuleaza toate transformarile efectuate.

def

Z = Z (1) Z (2) Z (n2)

(6.41)

459

6.3. ALGORITMUL QZ

In cazul real toate rotatiile sunt reale si, aplicate unor matrice initiale reale, conduc la o pereche rezultat reala. De asemenea, matricele de transformare cumulate
sunt reale ca produse de matrice reale.
Caracterul finit al calculului este evident. Demonstratia este completa.
3
Demonstratia teoremei de mai sus conduce imediat la urmatoarea structura a
algoritmului de reducere a unei perechi (A, B) la forma Hessenberg generalizata.
HT

1. Se calculeaza triangularizarea unitara a matricei B, i.e. matricea unitara


Q si B QH B astfel nc
at noul B este superior triunghiular
2. A QH A
3. Pentru k = 1 : n2
1. Se executa procedura HT- k

Pentru scrierea formala a algoritmului vom utiliza o procedura de triangularizare


unitara a unei matrice complexe utilizand reflectori hermitici, prezentata n capitolul
3. Pentru scopurile noastre, sintaxa de apel a acestei proceduri va fi 10
[ B, U, b ] = TUN(B),
i.e. procedura suprascrie matricea argument B cu rezultatul triangularizarii si
livreaza, n matricea U C
I n(n1) si vectorul b IRn1 , elementele definitorii
1
ale reflectorilor complecsi hermitici Uk = In
U (:, k)(U (:, k))H utilizati. (Preb(k)
cizam ca U (1 : k1, k) = 0, k = 2 : n1.) De asemenea, vom folosi procedurile din
tabelul 4.3 (vezi capitolul 4), la care vom adauga o procedura suplimentara necesara
pentru procesarile legate de anularea elementelor alterante ale structurii superior
triunghiulare a matricei B si anume
procedura
Gcm pentru calculul unei rotatii


c s
complexe bidimensionale Z12 =
modificate care aplicata pe dreapta

s c
unui vector linie a C
I 12 anuleaza primul element al lui a. Vom numi aceasta
transformare rotatie (complexa) modificat
a. Este simplu de vazut ca elementele
definitorii ale acestei rotatii sunt

daca a1 = 0,
daca a1 = 0,

1,
0,

1,
daca a1 6= 0, a2 = 0,
0,
daca a1 6= 0, a2 = 0,
c=
s=

a
a

|a2 | , daca a1 6= 0, a2 6= 0,
1 2 , daca a1 6= 0, a2 6= 0.
|a
2 |r
r
(6.42)
q
2
2
unde r = |a1 | + |a2 | . Calculul elementelor definitorii pentru rotatia de mai sus
va fi nsotit de calculul a d = aZ12 , astfel ncat sintaxa propusa pentru aceasta
procedura este
[ d, c, s ] = Gcm(a)
10 Corespondentul real este procedura de triangularizare ortogonal
a pe care, n consens, o vom
numi TOR. Atragem atentia c
a, din dorinta de a asigura o claritate maxim
a, aici s-au f
acut
unele rabaturi la eficient
a, cum ar fi memorarea vectorilor Householder ntr-o matrice distinct
a.
De aceea, sintaxa si denumirile generice folosite difer
a de cele din capitolul 3. Implement
arile de
performant
a maxim
a vor trebui s
a respecte ns
a toate recomand
arile explicit formulate n capitolul
3.

460

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

suprascrierea (interna a) lui a realizandu-se cu apelul [ a, c, s ] = Gcm(a). Cu aceste


precizari obtinem urmatorul algoritm.
Algoritmul 6.1 (HTQZc Reducerea la forma Hessenberg generalizat
a) (Data o pereche (A, B) C
I nn C
I nn , precum si matricele
nn
unitare Q, Z C
I
, algoritmul calculeaza perechea unitar echivalenta
H AZ,
Q
H B Z)
avand forma superior Hessenberg
(A, B) (H, T ) = (Q
generalizata. Optional se acumuleaza matricele unitare de transformare
Z Z Z.
Optiunea se exprima prin intermediul unei variabile
Q QQ,
logice opt de tipul sir de caractere ce poate lua valorile da sau nu . Daca
opt = nu , algoritmul returneaza matricele Q si Z nemodificate.)
1. [ B, U, b ] = TUN(B)
2. Pentru k = 1 : n1
1. A(k : n, :) = Hcs(U (k : n, k), b(k), A(k : n, :))
3. Dac
a opt = da atunci
1. Pentru k = n1 : 1 : 1
1. Q(:, k : n) = Hcd(Q(:, k : n), U (k : n, k), b(k))
4. Pentru k = 1 : n2
1. Pentru i = n : 1 : k+2
1. [ A(i1 : i, k), c, s ] = Gc(A(i1 : i, k))
2. A(i1 : i, k+1 : n) = Gcs(c, s, A(i1 : i, k+1 : n))
3. B(i1 : i, i1 : n) = Gcs(c, s, B(i1 : i, i1 : n))
4. Dac
a opt = da atunci
Q( : , i1 : i) = Gcd(Q( : , i1 : i), c, s)
5. [ B(i, i1 : i), c, s ] = Gcm(B(i, i1 : i))
6. A( : , i1 : i) = Gcd(A( : , i1 : i), c, s)
7. B(1 : i1, i1 : i) = Gcd(B(1 : i1, i1 : i), c, s)
8. Dac
a opt = da atunci
Z( : , i1 : i) = Gcd(Z( : , i1 : i), c, s)
Comentarii.
sintaxa

In acest capitol, pentru apelul algoritmului HTQZc va fi utilizata


[ H, T, Q, Z ] = HTQZc(A, B, Q, Z, opt).

Similar cu cele prezentate la calculul valorilor proprii ordinare din capitolul 4, acumularea transformarilor se face ntotdeauna prin nmultirea la dreapta cu matricea
de transformare curenta, i.e. utilizand procedurile Hcd sau Gcd. Totusi, daca
initial Q este matricea unitate (e.g. n situatiile n care perechea (A, B) nu provine
din prelucrari anterioare), atunci se obtine un spor important de eficienta daca
instructiunea 3 se nlocuieste cu instrutiunea
3. Dac
a opt = da atunci
1. Pentru k = n1 : 1 : 1

1. Q(k : n, k : n) = Hcs(U (k : n, k), b(k), Q(k : n, k : n))

6.3. ALGORITMUL QZ

461

i.e. acumularea relectorilor se face n ordine inversa, realizand o umplere progresiva a matricei Q (vezi si comentariile la algoritmul HQc din capitolul 4).
In cazul real, atat matricele rezultat (A, B) (H, T ) = (QT AZ, QT BZ) cat si
matricele de transformare Q, Z vor fi reale. Aceasta particularizare este imediata
prin nlocuirea procedurilor de transformare complexe utilizate cu corespondentele
lor reale. Ca sa marcam diferenta, sintaxa de apel va fi
[ H, T, Q, Z ] = HTQZr(A, B, Q, Z, opt).
Complexitatea algoritmului este O(n3 ), executia sa implicand, n cazul real,
Nop 8n3 operatii n format virgula mobila. Acumularea matricelor de transfor

mare necesita Nop 4n3 operatii suplimentare pentru Q si Nop 3n3 operatii
suplimentare pentru Z.
Algoritmul HTQZ este numeric stabil, i.e. forma Hessenberg generalizata calculata ntr-o aritmetica n virgul
a mobila este o pereche exact unitar (ortogonal)
echivalenta cu o pereche usor perturbata (A + E, B + F ), unde matricele de perturbare E si F satisfac conditiile kEk p(n)M kAk si kF k p(n)M kBk cu p(n) o
functie cu o crestere modesta de dimensunea n a problemei (v. si 6.5, 6.6). 3

6.3.2

Evidentierea valorilor proprii generalizate infinite

Fie perechea (H, T ) C


I nn C
I nn n forma Hessenberg generalizata, obtinuta e.g.
cu algoritmul HTQZc, care defineste un fascicol regulat. Daca T este singulara,
i.e. T are (cel putin) un element diagonal nul, atunci perechea (H, T ) are (cel
putin) o valoare proprie generalizata infinita. Intr-un astfel de caz, valorile proprii
generalizate infinite pot fi evidentiate folosind o secventa finit
a de transformari de
echivalenta unitare (n cazul real, ortogonale), simultan cu conservarea formei Hes si Z astfel ncat matricele
senberg generalizate. Concret, exista matricele unitare Q
T) = (Q
H H Z,
Q
H T Z)
au structura
perechii (H, T ) (H,




H11 H12
T11 T12
H=
,
T =
,
(6.43)
0
H22
0 T22
cu perechea (H11 , T11 ) n forma superior Hessenberg generalizata avand T11 nesingular
a, H22 superior triunghiular
a nesingular
a si T22 strict superior triunghiulara,
i.e. cu toate elementele diagonale nule (toate submatricele de aceiasi indici au
aceleasi dimensiuni). Evident, valorile proprii generalizate ale perechii (H11 , T11 )
sunt valorile proprii generalizate finite ale perechii initiale, n timp ce valorile proprii generalizate ale perechii (H22 , T22 ) sunt valorile proprii generalizate infinite ale
acesteia.
Detaliile de constructie a structurii (6.43) sunt urmatoarele.
Presupunem mai ntai ca matricea T are un singur element diagonal nul. Acesta
poate fi deplasat n pozitia (n, n), simultan cu conservarea formei Hessenberg
generalizate a perechii (H, T ) si cu anularea elementului (n, n 1) al matricei H,
prin aplicarea unei transformari unitare de echivalenta sub forma unei secvente de
rotatii. Concret, daca tkk = 0, k 2 : n 1 11 , este zeroul urmarit, atunci scopul
este atins executand schema de calcul
11

Dac
a zeroul se afl
a deja n ultima pozitie diagonal
a se execut
a numai instructiunea 2 din

462

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

DZ - k, n
% Deplasarea zeroului diagonal al matricei T din pozitia (k, k) n pozitia (n, n)
1. Dac
ak<n
1. Pentru i = k+1 : n
(kn) H

(kn)

1. Se determina rotatia Qi1,i astfel ncat ((Qi1,i ) T )(i, i) = 0


(kn)

(kn)

2. H (Qi1,i ) H % Se altereaza zeroul din pozitia (i, i2) a lui H

3. T (Qi1,i ) T
(kn)
(kn)
4. Se determina rotatia Zi2,i1 astfel ncat (HZi2,i1 )(i, i2) = 0
(kn)
5. H HZi2,i1
(k)
6. T T Zi2,i1
2. % Ultima rotatie:
(kn)
(kn)
1. Se determina rotatia Zn1,n astfel ncat (HZn1,n )(n1, n) = 0
(kn)
2. H HZn1,n
(kn)
3. T T Zn1,n

Aceasta schema se completeaza corespunzator cu eventuala actualizare a matricelor de transformare. Pentru a dezvalui mai clar mecanismul schemei de calcul
de mai sus consideram un exemplu cu n = 4 si k = 2. In diagramele structurale de
mai jos am marcat cu anularile curente de elemente si cu + alterarile temporare
de zerouri. Incadrarile marcheaza liniile si coloanele afectate n etapa respectiva.



(H, T ) = (
0
0 0

(24) H
(24) H
(H, T ) ((Q23 ) H, (Q23 ) T ) = (

(24)
(24)
(H, T ) (HZ12 , T Z12 ) = (

0

,
0

0
0

0
0
0


0
0

0 0


0 0
0 0
0 0


),

0
0

),

),

schema de calcul DZ - k, n pentru anularea elementului H(n 1, n). Dac


a zeroul se afl
a n
pozitia (1, 1) deplasarea sa n pozitia (n, n) are un nceput atipic a c
arui prezentare ar fi complicat
schema de calcul. Cititorul interesat poate desprinde acest caz din algoritmul 6.2, prezentat mai
departe.

463

6.3. ALGORITMUL QZ

(24) H
(24) H
(H, T ) ((Q34 ) H, (Q34 ) T ) = (

(24)
(24)
(H, T ) (HZ23 , T Z23 ) = (

(24)
(24)
(H, T ) (HZ34 , T Z34 ) = (



0
0

0
0

0
0


0 0

,
0 0 0
0 0 0

0
0
0

0
0
0

+
0
0

0
0

0
0

+
0

),

).

Prin urmare, n exemplul considerat, deplasarea zeroului din pozitia (2, 2) n pozitia
(4, 4) a matricei T se realizeaza cu secventa
(24) H

(24) H

(24)

(24)

(24)

(24) H

(24) H

(24)

(24)

(24)

(H, T ) ((Q34 ) (Q23 ) HZ12 Z23 Z34 , (Q34 ) (Q23 ) T Z12 Z23 Z34 )
H

def

= ((Q(24) ) HZ (24) , (Q(24) ) T Z (24) ).

In cazul general, deplasarea unui zero din pozitia (k, k), k 2 : n1, n pozitia
(n, n) se face cu secventa
(kn)

(kn)

(kn)

(kn)

(kn)

(kn)

(kn)

H (Qn1,n ) (Qk+1,k+2 ) (Qk,k+1 ) HZk1,k Zk,k+1 Zn2,n1 Zn1,n


H

def

= (Q(kn) ) HZ (kn) ,

(kn)

(kn)

(kn)

(kn)

(kn)

(6.44)
(kn)

(kn)

T (Qn1,n ) (Qk+1,k+2 ) (Qk,k+1 ) T Zk1,k Zk,k+1 Zn2,n1 Zn1,n


def

= (Q(kn) ) T Z (kn) .

(6.45)

Daca matricea superior triunghiulara T are un singur zero diagonal, atunci dupa
deplasarea sa pe ultima pozitie diagonala 12 perechea (H, T ) transformata va avea
structura





H
h
T t
H=
,
T =
,
(6.46)
0 0
0 hnn
T) n forma Hessenberg generalizata si cu T nesingulara. Fascicolul
cu perechea (H,
initial este regulat daca si numai daca n (6.46) hnn 6= 0. In acest caz procedura a
pus n evidenta o valoare proprie generalizata infinita.
12

Vezi nota de picior precedent


a.

464

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Daca matricea T are mai multe zerouri diagonale, acestea pot fi deplasate succesiv n coltul din dreapta jos al lui T prin aplicarea repetata a schemei de calcul DZ - k, n adaptate la necesit
atile curente n forma DZ - i, j . Procedura este
urmatoarea 13 .
DZ

% Deplasarea zerourilor diagonale ale matricei T n coltul din dreapta jos


1. i = n, j = n
2. C^
at timp i > 0
1. Dac
a T (i, i) = 0 atunci
1. Executa DZ - i, j
2. j j 1
3. i j 1
altfel
1. i i 1

Dupa executia procedurii de mai sus perechea (H, T ) transformata va avea structura (6.43). Fascicolul initial este regulat daca si numai daca H22 este nesingulara.
Intr-un astfel de caz, numarul valorilor proprii generalizate infinite este dat de ordinul blocurilor H22 si T22 .
Prezentam algoritmul care implementeaza schema de calcul DZ .
Algoritmul 6.2 (DZc Deplasarea zerourilor diagonale.)
(Date o pereche (H, T ) C
I nn C
I nn n forma Hessenberg generalizata si matricele unitare Q, Z C
I nn , algoritmul suprascrie perechea
(H, T ) cu o pereche echivalenta, tot n forma Hessenberg generalizata,
dar avand toate zerourile diagonale ale matricei T situate n coltul din
dreapta jos. Optional, se actualizeaza matricele unitare de transformare
Q, Z C
I nn . Optiunea se exprima prin intermediul unei variabile logice opt de tipul sir de caractere ce poate lua valorile da sau nu . Daca
opt = nu , algoritmul returneaza matricele Q si Z nemodificate.)
1. i = n,

j=n

2. C^
at timp i > 0
1. Dac
a T (i, i) = 0 atunci
1. Dac
a i < j atunci
1. Pentru l = i+1 : j
1. [ T (l1 : l, l), c, s ] = Gc(T (l1 : l, l))
2. k = max(l2, 1)
3. H(l1 : l, k : n) = Gcs(c, s, H(l1 : l, k : n))
4. Dac
a l < n atunci
T (l1 : l, l+1 : n) = Gcs(c, s, T (l1 : l, l+1 : n))
13 Dup
a deplasarea unui zero diagonal n ultima pozitie diagonal
a curent
a este posibil ca structura zerourilor diagonale nc
a nedeplasate s
a se modifice, e.g. num
arul lor s
a scad
a. De aceeea
dup
a deplasarea tuturor zerourilor diagonale n coltul din dreapta jos este posibil ca num
arul lor
s
a fie diferit de num
arul initial al zerourilor diagonale ale matricei T . De asemenea, asa cum s-a
precizat, pentru aspectele specifice ale trat
arii zerourilor din pozitiile diagonale terminale, cititorul
este invitat s
a consulte algoritmul formal.

6.3. ALGORITMUL QZ

465

5. Dac
a opt = da atunci
Q( : , l1 : l) = Gcd(Q( : , l1 : l), c, s)
6. [ H(l, k : k+1), c, s ] = Gcm(H(l, k : k+1))
7. H(1 : l1, k : k+1) = Gcd(H(1 : l1, k : k+1), c, s)
8. Dac
a l = 2 atunci
H(3, k : k+1) = Gcd(H(3, k : k+1), c, s)
9. T (1 : l1, k : k+1) = Gcd(T (1 : l1, k : k+1), c, s)
10. Dac
a opt = da atunci
Z( : , k : k+1) = Gcd(Z( : , k : k+1), c, s)
2. Dac
a j > 1 atunci
1. % Ultima rotatie din secventa curenta:
1. (H(j, j 1 : j), c, s) = Gcm(H(j, j 1 : j))
2. H(1 : j 1, j 1 : j) = Gcd(H(1 : j 1, j 1 : j), c, s)
3. T (1 : j 1, j 1 : j) = Gcd(T (1 : j 1, j 1 : j), c, s)
4. Dac
a opt = da atunci
Z( : , j 1 : j) = Gcd(Z( : , j 1 : j), c, s)
3. j j 1
4. i j
altfel
1. i i 1
Comentarii.

Sintaxa cu care algoritmul de mai sus va fi apelat este


[ H, T, Q, Z ] = DZc( H, T, Q, Z, opt ).

Complexitatea algoritmului este cel mult O(n3 ), numarul efectiv de operatii fiind
decisiv influentat de numarul si dispunerea zerourilor diagonale ale matricei T .
Utilizand exclusiv transformari unitare (ortogonale), algoritmul DZc este numeric
stabil.
In cazul real se utilizeaza exact aceleasi secvente de rotatii, de data aceasta
reale, ceea ce are ca efect obtinerea ca rezultat a unei perechi transformate reale,
iar efortul de calcul este sensibil diminuat. Pentru a distinge cazul real vom utiliza
sintaxa
[ H, T, Q, Z ] = DZr( H, T, Q, Z, opt ).
Formal, varianta reala a algoritmului se obtine nlocuind n numele procedurilor
utilizate sigla c cu sigla r.
3

6.3.3

Faza iterativ
a a algoritmului QZ

Etapa iterativa a algoritmului QZ construieste un sir de perechi de matrice unitar


(ortogonal) echivalente convergent catre forma Schur (reala) generalizata. In esenta,
n cazul n care matricea B este nesingulara, iteratiile QZ reprezinta o implementare
specifica a iteratiilor QR pentru matricea C = AB 1 . Concret, perechea curenta
(Ak , Bk ) a sirului QZ este astfel calculata ncat matricea Ck = Ak Bk1 sa fie matricea curenta a sirului QR pentru matricea C. Asa cum s-a mai precizat, eficienta

466

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

fazei iterative a algoritmului QZ este determinant asigurata de reducerea preliminara a perechii (A, B) la forma Hessenberg generalizata folosind algoritmii HTQZc
sau HTQZr si de conservarea acestei structuri de iteratiile QZ. Pentru a sublinia n
mod imperativ acest lucru, n continuare vom presupune aceasta reducere efectuata
si vom folosi notatia generica (H, T ) pentru perechea curenta, desi, natural, orice implementare ngrijita utilizeaza suprascrierea perechii (A, B) initiale. De asemenea,
pentru situatiile n care matricea B (i.e. T ) este singulara vom presupune efectuata
si evidentierea valorilor proprii generalizate infinite cu ajutorul algoritmului DZc
sau DZr.
Nu vom mai dezvolta aici variantele cu deplasare explicita ci ne vom limita la
variantele profesionale cu deplasare implicita cu pas simplu pentru cazul datelor
complexe, respectiv cu pas dublu pentru cazul datelor reale.
Fie data perechea (H, T ) C
I nn C
I nn n forma Hessenberg generalizata si
presupunem ca matricea T este nesingulara. Avand n vedere observatia de mai sus,
privitoare la substratul conceptual al iteratiilor QZ, pentru implementarea unui pas
QR cu deplasare implicita pentru matricea G = HT 1 avem nevoie, pentru a utiliza
teorema 4.15, ca matricea superior Hessenberg G sa fie ireductibila (i.e. cu toate
elementele subdiagonale nenule). Este usor de vazut (v. exercitiul 6.8) ca aceasta
conditie este ndeplinita daca si numai daca H este ireductibila. In acest context,
vom spune ca perechea (H, T ) se afla n forma Hessenberg generalizata ireductibil
a
daca H este ireductibila si T este nesingulara.
Pentru a evidentia partile ireductibile 14 ale perechii (H, T ) vom partitiona
matricele H si T n acord cu zerourile subdiagonale ale matricei superior Hessenberg
H. Astfel, daca H are un singur zero subdiagonal n pozitia (k + 1, k), atunci
considerand partitia




H11 H12
T11 T12
H=
,
T =
,
(6.47)
0
H22
0 T22
avem perechile (H11 , T11 ) C
I kkC
I kk si (H22 , T22 ) C
I (nk)(nk)C
I (nk)(nk)
n forma Hessenberg generalizata ireductibila carora li se pot aplica iteratiile QZ n
varianta cu deplasare implicita. Cum, evident,
(H, T ) = (H11 , T11 ) (H22 , T22 )

(6.48)

rezulta ca problema initiala a calculului valorilor proprii generalizate se reduce la


rezolvarea a doua probleme de aceeasi natura, dar de dimensiuni mai mici. Analog
se procedeaza cand matricea H are mai multe zerouri subdiagonale. Gestionarea
acestor zerouri si aplicarea tehnicii iterative cu deplasare implicita numai partilor
ireductibile va fi prezentata n cadrul formei finale a algoritmului QZ.
In cadrul acestui paragraf vom considera data perechea (H, T ), cu T nesingulara,
n forma Hessenberg generalizata ireductibil
a si vom stabili algoritmul de calcul al
perechii succesor al perechii curente din sirul QZ. Vom trata distinct situatia datelor
complexe si a celor reale.
Reamintim ca ideea de baza a iteratiei QZ consta ntr-o implementare specifica
a iteratiei QR cu deplasare implicita pentru matricea G = HT 1 si anume n
14

Cazul real se trateaz


a identic.

467

6.3. ALGORITMUL QZ

constructia sirului de perechi (Hk , Tk ) astfel ncat matricea Gk = Hk Tk1 sa fie


matricea corespunzatoare a sirului QR pentru matricea G. Principalul avantaj
de natura numerica al acestei abordari consta n evitarea inversarii matricei Tk si
eliminarea, datorita acestui fapt, a unei posibile instabilitati numerice cauzate de o
conditionare necorespunzatoare a lui Tk .
Precizam de la nceput doua consecinte ale faptului ca iteratiile QZ reprezinta o
forma mascata a iteratiilor QR (pentru a caror motivare recomandam consultarea
capitolului 4):
a) conservarea formei Hessenberg generalizate pe parcursul procesului iterativ;
b) excelente proprietati de convergenta catre forma Schur (reala) generalizata.
A. Un pas QZ pentru perechi complexe
Conform celor prezentate n capitolul 4, un pas simplu QR cu deplasare implicita
pentru matricea Gk = Hk Tk1 realizeaza urmatoarea secventa de calcule.
(k)

1. Se calculeaza prima coloana q1 a matricei Qk ce defineste transformarea unitara aferenta unui pas simplu QR cu deplasare explicita.
2. Se determina o matrice unitara P astfel ncat prima coloana a lui
(k)
(k)
P sa fie q1 , i.e. P e1 = q1 .
3. Se calculeaza matricea F = P H Gk P (a carei structura nu mai este
superior Hessenberg).
4. Se aplica algoritmul HQ de reducere a matricei F la forma superior
1
Hessenberg rezultand matricea succesor Gk+1 = Hk+1 Tk+1
.
not

Fie, pentru simplificarea notatiilor, (Hk , Tk ) = (H, T ) perechea curenta a sirului


not
QZ, presupusa ireductibila, (Hk+1 , Tk+1 ) = (H , T ) perechea succesor precum si
1
G = HT 1, G = H (T ) . Urm
and etapele din schema de calcul de mai sus vom
transfera transformarile matricei G perechii (H, T ). Avem urmatoarele particularitati.
1. Expresia deplasarii curente = gnn n raport cu elementele matricelor H si
T este
hn,n
hn,n1 tn1,n
=

.
(6.49)
tn,n
tn1,n1 tn,n
Daca 6 (G), i.e. G In este nesingulara, atunci prima coloana a matricei
not
de transformare Qk = Q este

h11
t11

h21

,
t
11
q1 = Qe1 =
(6.50)

..

.
0

468

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

unde este un factor real de normare. Vom numi vectorul

h11

t11

,
w=

h21
t11

(6.51)

al elementelor nenule ale vectorului q1 / vector de deplasare implicit


a asociat pasului
simplu QZ.
2. Matricea unitara P de la instructiunea 2 a schemei de calcul de mai sus este,
cel mai simplu, o rotatie (complexa), avand structura


P
0
P =
(6.52)
0 In2
cu P C
I 22 astfel calculata ncat
P H w = e1 .

(6.53)

3. Este usor de vazut ca aplicarea transformarii de asemanare de la punctul 2


al schemei de calcul de mai sus este echivalenta cu aplicarea rotatiei P H ambelor
T) = (P H H, P H T ), atunci
matrice din perechea (H, T ). Intr-adevar, daca (H,
1
H
1
H
T = P HT P = P GP . Alterarea structurii superior Hessenberg a matricei
H
G n pozitia (3, 1) se transfera n alterarea structurala a perechii (H, T ). Concret,
ramane superior Hessenberg, pe cand
datorita structurii (6.52) a lui P , matricea H
T are un element nenul suplimentar n pozitia (2, 1).
T) printr-o trans4. Refacerea structurii Hessenberg generalizate a perechii (H,
formare unitara de echivalenta poate fi asimilata cu refacerea formei Hessenberg a
Q
H TZ) este n forma Hessenberg
Intr-adevar, daca (H , T ) = (Q
H HZ,
matricei G.
H 1

1
H
Q
este
=Q
H G
T 1 Q
H H

generalizata, atunci G = H T
= Q HZZ T Q = Q
o matrice superior Hessenberg (ca produs dintre o matrice superior Hessenberg si
o matrice superior triunghiulara). Concret, readucerea perechii alterate la forma
Hessenberg generalizata se face utilizand algoritmul HTQZ adaptat, pentru asigurarea eficientei necesare, la situatia structurala prezenta. Detaliile sunt precizate
prin urmatoarea schema de calcul.
HTQZ 1
1. Pentru k = 2 : n
1. Se calculeaza rotatia modificata Zk1,k astfel ncat
(T Zk1,k )(k, k1) = 0
2. H HZk1,k % Apare un element nenul n pozitia (k+1, k1)
a lui H (pentru k < n)
3. T T Zk1,k
% Se anuleaza elementul T (k, k1)
4. Dac
a k < n atunci
1. Se calculeaza rotatia Qk,k+1 astfel ncat (QH
k,k+1 H)(k+1, k1) = 0
2. H QH
H
%
Se
anuleaz
a
elementul
H(k+1,
k1)
k,k+1
3. T QH
T
%
Apare
un
element
nenul

n
pozit
ia (k+1, k) a lui T
k,k+1

469

6.3. ALGORITMUL QZ

Aceasta schema realizeaza deplasarea elementelor alterante ale structurilor matricelor H si T de-a lungul unor trasee paralele cu diagonala principala pana la
eliminarea lor din matricele respective utilizand n acest scop doua secvente de
rotatii.
Pentru exemplificare prezentam evolutia structurala a perechii (H, T ) n cazul
n = 4. Ca si n exemplele anterioare, ncadrarile marcheaza liniile si coloanele
afectate de operatia curenta.

(H, T ) (P H H, P H T ) = (
0 ,
0 0 ),
0 0
0 0 0

(H, T ) (HZ12 , T Z12 ) = (

H
(H, T ) (QH
23 H, Q23 T ) = (

(H, T ) (HZ23 , HZ23 ) = (

H
(H, T ) (QH
34 H, Q34 T ) = (

(H, T ) (HZ34 , T Z34 ) = (



+
0 0

0 0

0
0

0
0



0
0 0




,




,




,




,




,

0
0

0
0

0
0 +

0
0
0




0 0

),

),

0 0
0 0


0
0 0
0 0

),

),

).

Aplicarea rotatiei P H care asigura prima coloana impusa a matricei de transformare corespunzatoare pasului QR curent pentru matricea HT 1 si apoi refacerea structurii Hessenberg generalizate cu ajutorul variantei adaptate a algoritmului

470

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

HTQZ, data de schema de calcul de mai sus, conduc la obtinerea perechii succesor
(
H H
H H = QH
n1,n Q23 P HZ12 Z23 Zn1,n ,
(6.54)
H H
T T = QH
T Z12 Z23 Zn1,n ,
n1,n Q23 P
din sirul QZ. Perechea (H , T ) suprascrie perechea (H, T ), i.e. toate calculele aferente unui pas simplu QZ cu deplasare implicita se desfasoara pe loc, n tablourile
H si T .
Din motive de organizare judicioasa a algoritmului QZ si, mai ales, a algoritmului de ordonare a formei Schur generalizate (vezi sectiunea 6.4) vom scrie o
procedura distincta pentru calculul vectorului de deplasare implicita.
Algoritmul 6.3 (VD1 Calculul vectorului de deplasare implicit
a
pentru un pas simplu QZ) (Date o pereche (H, T ) C
I nn C
I nn n
forma Hessenberg generalizata cu T nesingulara, algoritmul calculeaza
vectorul w C
I 2 de deplasare implicita pentru un pas simplu QZ.)
hn,n
hn,n1 tn1,n
1. =

tn,n
tn1,n1 tn,n

h11
t11

2. w =

h21
t11

Comentarii.

Sintaxa de apel a acestui algoritm va fi


w = VD1(H, T ),

iar complexitatea sa este, evident, O(1).


3
Cu aceste precizari putem prezenta algoritmul de implementare al unui pas
simplu QZ cu deplasare implicita. Sunt utilizate proceduri cuprinse n tabelul 4.3
si procedura Gcm, de calcul al unei rotatii modificate, introdusa n acest capitol.
Algoritmul 6.4 (IT QZ1 - Un pas simplu QZ cu deplasare implicit
a) (Date o pereche (H, T ) C
I nn C
I nn n forma Hessenberg
generalizata ireductibila, matricele unitare Q, Z C
I nn si vectorul de
2
deplasare implicita w C
I , algoritmul suprascrie perechea (H, T ) cu
H
perechea succesor (H , T ) = (QH
sirul QZ. Optional,
k HZk , Qk T Zk ) din
se actualizeaza matricele unitare de transformare Q si Z. Optiunea se
exprima cu ajutorul variabilei logice opt de tipul sir de caractere care
poate lua valorile da sau nu . Daca opt = nu , algoritmul returneaza
matricele Q si Z nemodificate.)
1. [ w, c, s ] = Gc(w)
2. H(1 : 2, :) = Gcs(c, s, H(1 : 2, :))
3. T (1 : 2, :) = Gcs(c, s, T (1 : 2, :))
4. Dac
a opt = da atunci
1. Q( : , 1 : 2) = Gcd(Q( : , 1 : 2), c, s)

6.3. ALGORITMUL QZ

471

5. Pentru k = 2 : n
1. [ T (k, k1 : k), c, s ] = Gcm(T (k, k1 : k))
2. l = min(k+1, n)
3. H(1 : l, k1 : k) = Gcd(H(1 : l, k1 : k), c, s)
4. T (1 : k1, k1 : k) = Gcd(T (1 : k1, k1 : k), c, s)
5. Dac
a opt = da atunci
1. Z( : , k1 : k) = Gcd(Z( : , k1 : k), c, s)
6. Dac
a k < n atunci
1. [ H(k : k+1, k1), c, s ] = Gc(H(k : k+1, k1))
2. H(k : k+1, k : n) = Gcs(c, s, H(k : k+1, k : n))
3. T (k : k+1, k : n) = Gcs(c, s, T (k : k+1, k : n))
4. Dac
a opt = da atunci
1. Q( : , k : k+1) = Gcd(Q( : , k : k+1), c, s)
Comentarii.

Vom utiliza urmatoarea sintaxa de apel a algoritmului de mai sus


[ H, T, Q, Z ] = IT QZc(H, T, Q, Z, w, opt).

Complexitatea unui pas simplu QZ este O(n2 ). Concret, pentru executia algoritmu
12n2
lui 6.3 sunt necesari Nop 12n2 flopi fara acumularea transformarilor, Nop
flopi suplimentari pentru acumularea transformarilor, la care se adauga cele 2(n1)
extrageri de radical.
3
B. Algoritmul QZ pentru matrice complexe
Provenind din adaptarea algoritmului QR algoritmul QZ utilizeaza toate ideile
acestuia pentru exploatarea evolutiei structurale a elementelor sirului QZ. Concret,
algoritmul QZ pentru matrice complexe se obtine prin iterarea pasului simplu QZ,
anularea efectiva a elementelor subdiagonale ale matricei H devenite neglijabile si,
pe aceasta baza, reducerea succesiva a dimensiunii problemei pana la obtinerea
rezultatului dorit.
Pentru deciziile de anulare a elementelor subdiagonale ale matricei H se utilizeaza criteriul cunoscut de la algoritmul QR
|hk+1,k | < tol(|hkk | + |hk+1,k+1 |),

(6.55)

unde scalarul pozitiv tol defineste nivelul de toleranta si are, uzual, un ordin de
marime comparabil cu eroarea de reprezentare din formatul virgula mobila al masinii
tinta.
De asemenea, pentru monitorizarea evolutiei structurale a matricelor din sirul
QZ, la fiecare iteratie, dupa anularea elementelor subdiagonale care satisfac conditia
(6.55), se va determina cel mai mic ntreg p si cel mai mare ntreg q astfel ncat
perechea curenta (H, T ) sa aiba structura

H11 H12 H13


}p
T11 T12 T13
}p
H22 H23 } n p q , T = 0 T22 T23 } n p q ,
H = 0
0
0
H33
}q
0
0 T33
}q
(6.56)

472

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

cu perechea (H22 , T22 ) C


I (npq)(npq) C
I (npq)(npq) n forma Hessenberg
qq
generalizata ireductibil
a si H33 , T33 IR
superior triunghiulare. Astfel, iteratia
QZ (complexa) se va aplica, de fapt, numai perechii (H22 , T22 )

H
(H22 , T22 ) (H22
, T22
) = (QH
22 H22 Z22 , Q22 T22 Z22 ),

(6.57)

echivalenta cu aplicarea asupra perechii de matrice (H, T ) a transformarii de echivalenta unitare


Q = diag(Ip , Q22 , Iq ),

Z = diag(Ip , Z22 , Iq ).

(6.58)

Aceasta transformare afecteaza celelalte blocuri ale matricelor H, T din (6.56) n


felul urmator:

H11
H12 Z22
H13
T11
T12 Z22
T13

H
H
QH
H = 0
T = 0 QH
22 H22 Z22 Q22 H23 ,
22 T22 Z22 Q22 T23 .
0

H33

T33
(6.59)
Algoritmul QZ se termina n momentul n care se anuleaza toate elementele
subdiagonale ale matricei H, i.e. q devine n 1. Utilizand, pentru claritate, sintaxele de apel mentionate ale algoritmilor 6.16.4, algoritmul QZ cu pas simplu, cu
deplasare implicita, se scrie astfel.
Algoritmul 6.5 (QZ1 Algoritmul QZ cu pasi simpli si deplas
ari
implicite) (Date un fascicol matriceal definit de perechea (A,B) C
I nn
I
Cnn , matricele unitare Q, Z C
I nn si un nivel de toleranta tol
pentru anularea elementelor subdiagonale, algoritmul calculeaza forma
Schur generalizata (A, B) (S, T ) = (QH AZ, QH BZ) a perechii (A, B).
Toate calculele se efectueaz
a pe loc, n locatiile de memorie ale tablourilor A si B. Optional, se acumuleaza transformarile prin actualizarea
matricelor Q si Z. Optiunea se exprima cu ajutorul variabilei logice opt
de tipul sir de caractere care poate lua valorile da sau nu . Daca nu
se doreste acumularea, matricele Q si Z se returneaza nemodificate.)
1. % Reducerea la forma Hessenberg generalizata
1. [ A, B, Q, Z ] =HTQZc(A, B, Q, Z, opt)
2. % Deplasarea zerourilor diagonale ale matricei B si evidentierea
valorilor proprii infinite.
1. [ A, B, Q, Z ] =DZc(A, B, Q, Z, opt)
3. % Faza iterativa
1. p = 0, q = 0, cont it = 0
2. C^
at timp q < n
1. % Anularea elementelor subdiagonale neglijabile
Pentru i = p + 1 : n q 1
1. Dac
a |ai+1,i | tol(|aii | + |ai+1,i+1 |) atunci ai+1,i = 0

6.3. ALGORITMUL QZ

473

2. % Determinarea lui q
C^
at timp anq,nq1 = 0
1. q q + 1
2. cont it = 0
3. % Terminarea algoritmului
Dac
a q = n 1 atunci return.
3. % Determinarea lui p
1. p = n q 1
2. C^
at timp ap+1,p 6= 0
1. p p 1
2. Dac
a p = 0 atunci break
4. % Iteratia curenta
1. k = p+1, l = nq
2. w = VD1(A(k : l, k : l), B(k : l, k : l))
3. [ A(k : l, k : l), B(k : l, k : l), Qc , Zc ] =
IT QZc(A(k : l, k : l), B(k : l, k : l), Ilp , Ilp , w, opt)
4. Dac
a q > 0 atunci
1. A(k : l, l+1 : n) = Qc A(k : l, l+1 : n)
2. B(k : l, l+1 : n) = Qc B(k : l, l+1 : n)
5. Dac
a p > 0 atunci
1. A(1 : p, k : l) = A(1 : p, k : l, )Zc
2. B(1 : p, k : l) = B(1 : p, k : l)Zc
5. % Acumularea transformarilor
1. Dac
a opt=da atunci
1. Q( : , k : l) = Q( : , k : l)Qc
2. Z( : , k : l) = Z( : , k : l)Zc
6. cont it cont it + 1
7. Dac
a cont it > 30 atunci
1. Tip
are
ste S-au atins 30 de iteratii fara sa se
poata anula un element subdiagonal.
Este posibil ca pentru aceste date
algoritmul QZ sa nu fie convergent.
2. Return
Comentarii. In aspectele sale esentiale, algoritmul de mai sus sta la baza tuturor
programelor profesionale de calcul al valorilor proprii generalizate ale unui fascicol
matriceal complex. Utilizarea lui pentru calculul formei Schur generalizate a unui
fascicol real este posibila 15 , dar este mai putin eficienta n raport cu varianta special
elaborata pentru acest caz si prezentata mai jos.
15 Pentru probleme de mic
a dimensiune diferenta de eficienta
nu este decisiv
a astfel c
a acest
algoritm poate fi folosit cu succes. Atragem ns
a atentia c
a procedura Gc de calcul a unei rotatii
complexe cu relatiile (6.42), aplicat
a unui vector real, calculeaz
a de fapt o rotatie real
a astfel nc
at,
pentru date reale, acest algoritm va lucra exclusiv cu numere reale privite ca numere complexe
si nu va fi capabil s
a reduc
a perechile de blocuri diagonale 2 2. Pentru a dep
asi acest impas
se poate proceda, de exemplu, la identificarea situatiei si monitorizarea blocurilor diagonale ca n
algoritmul special destinat cazului real (vezi mai departe).

474

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Sintaxa de apel este


[S, T, Q, Z] = QZ1(A, B, Q, Z, tol, opt),
perechea (S, T ) n FSG putand suprascrie (intern) perechea (A, B).
La fel ca n cazul algoritmului QR, exista date de intrare pentru care algoritmul
nu este convergent, desi acest lucru se ntampla extrem de rar n practica. Aici,
dupa 30 de iteratii fara progresul parametrului structural q se declara esecul desi mai
exista sanse de convergenta printr-o modificare empirica a vectorului de deplasare
(v. cap. 4).
Printre rafinarile posibile care nu au fost incluse este optiunea de a fi calculata numai una din matricele de transformare (de obicei Z, ale carei prime coloane
reprezinta o baza pentru spatiul de deflatie asociat primelor valori proprii generalizate, vezi sectiunea urmatoare). De asemenea, din ratiuni de claritate a prezentarii,
s-a preferat acumularea transform
arilor n cadrul unei iteratii n matricele de transformare curente Qc si Zc si apoi aplicarea lor celorlalte blocuri afectate si matricelor de transformare Q si Z sub forma unor nmultiri cu matrice dense fapt care
poate conduce la o anumita reducere (totusi putin semnificativa) a eficientei.
Datorita procesului iterativ, complexitatea algoritmului depinde de datele de
intrare. Viteza de convergenta a procesului iterativ este similara cu cea a algoritmului QR. Evaluarile experimentale converg catre aprecierea ca, n medie, doua
iteratii sunt suficiente pentru a pune n evidenta o valoare proprie generalizata. In
aceasta situatie, pentru fascicole de ordin superior (e.g. n > 100) se poate aprecia
ca algoritmul QZ are o complexitate O(n3 ). Evaluari mai fine sunt date la varianta
reala.
Utilizarea exclusiva a transformarilor unitare confera algoritmului QZ1 o foarte
buna stabilitate numerica. Se arata ca forma Schur generalizata (S, T ) calculat
a
este forma Schur generalizata exact
a a unei perechi foarte apropiate de perechea
(A, B) data. Concret, avem
H (A + E)Z,

S=Q

H (B + F )Z,

T =Q

Z sunt matrice riguros unitare, iar matricele de perturbatie E si F satisfac


unde Q,
conditiile
kEk2 M kAk2 ,
kF k2 M kBk2 ,
cu precizia masinii tinta. Pentru consideratii suplimentare vezi sectiunea 6.5. 3
C. Un pas QZ pentru matrice reale
In cazul perechilor (H, T ) reale un spor important de eficienta se obtine utilizand o
aritmetica reala care impune utilizarea une strategii a pasilor dubli. In conformitate
cu cele aratate n capitolul 4, un pas dublu QR cu deplasare implicita pentru
matricea Gk = Hk Tk1 consta n efectuarea urmatoarelor operatii:
(k)

1. Se calculeaza prima coloana q1 a matricei Qk ce defineste transformarea ortogonala aferenta unui pas dublu QR cu deplasare explicita.

475

6.3. ALGORITMUL QZ
2. Se determina o matrice ortogonala U astfel ncat prima coloana a
(k)
(k)
lui U T sa fie q1 , i.e. U T e1 = q1 .
3. Se calculeaza matricea F = U T Gk U (a carei structura nu mai este
superior Hessenberg).

4. Se aplica algoritmul HQ de reducere a matricei F la forma superior


1
Hessenberg rezultand matricea succesor Gk+2 = Hk+2 Tk+2
.
Daca matricea superior Hessenberg Gk este ireductibila, atunci, conform teoremei 4.9, rezultatul Gk+2 al aplicarii schemei de calcul de mai sus va fi esential
acelasi cu cel dat de un pas dublu QR cu deplasare explicita. Notam si aici,
not
pentru simplificare, (Hk , Tk ) = (H, T ) perechea curenta a sirului QZ, presupusa
not
ireductibila, (Hk+2 , Tk+2 ) = (H , T ) perechea succesor n cazul utilizarii pasului
1
dublu precum si G = HT 1 , G = H (T ) . Urmand etapele din schema de calcul de mai sus vom transfera transformarile matricei G perechii (H, T ). Mai mult,
exploatand corespunzator avantajele structurale date de forma Hessenberg generalizata a perechilor initiala si finala, complexitatea pasului dublu va fi O(n2 ), ceea ce
n economia ntregului algoritm este esential, reducand complexitatea algoritmului
QZ cu deplasare implicita la cea a variantei cu deplasare explicita si asigurand,
n acelasi timp, posibilitatea utilizarii exclusive a aritmeticii reale. Detaliile sunt
prezentate n continuare.
1. Daca notam cu 1 si 2 valorile proprii (posibil complexe) ale matricei
G(n1 : n, n1 : n), atunci n expresia primei coloane a matricei de transformare
not
Qk = Q acestea apar sub forma sumei si produsului (ntotdeauna reale). T
inanduse seama de structura Hessenberg a matricelor G si H, vom calcula elementele
blocului matriceal X = G(n 1 : n, n 2 : n) IR23 ca solutie a sistemului
triunghiular
XT (n2 : n, n2 : n) = H(n1 : n, n2 : n),
care se rezolva recurent, pe linii (exercitiu pentru cititor)

hn1,n2

x11 =

tn2,n2

h
n1,n1 tn2,n1 x11

x12 =

tn1,n1

x13 = n1,n tn2,n x11 tn1,n x12


tn,n

x21 = 0

x = hn,n1

22

tn1,n1

hnn tn1,n x22

,
x23 =
tn,n

dupa care valorile cautate ale sumei si produsului se obtin imediat


(
def
= 1 + 2 = x12 + x23 ,
def

= 1 2 = x12 x23 x13 x22 .

(6.60)

(6.61)

476

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Dac
a 1 , 2 6 (G), i.e. matricea M = (G 1 In )(G 2 In ) = G2 G + In
not
este nesingulara, atunci prima coloana a matricei de transformare Qk = Q (nca
un exercitiu pentru cititor) este

h11 h11
h21 t12
h21 h12
(

) +
+
t11 t11

t11 t22
t11 t22

h
h
h
h
t
21
11
22
21 12

(
+

t11 t11
t22
t11 t22

,
h
h
21 32
q1 = Qe1 =
(6.62)

t
t
11
22

..

.
0

unde este un factor real de normare. Elementele nenule w = q1 (1 : 3)/ ale lui
q1 /, i.e.

h11 h11
h21 t12
h21 h12
(

)
+
+

t11 t11
t11 t22
t11 t22

h21 h11
h22
h21 t12

(6.63)
w=
(
+

)
,

t11 t11
t22
t11 t22

h21 h32
t11 t22
definesc vectorul de deplasare implicit
a asociat pasului dublu QZ.
2. Matricea ortogonala U de la instructiunea 2 a schemei de calcul de mai sus
este, cel mai recomandat, un reflector (real) avand structura



U
0
U=
,
(6.64)
0 In3
IR33 reflectorul care asigura
cu U
w = e1 ,
U

IR.

(6.65)

3. Se constata si aici imediat ca aplicarea transformarii de asemanare de la


punctul 3 al schemei de calcul de mai sus este echivalenta cu aplicarea trans T) =
formarii U = U T ambelor matrice din perechea (H, T ). Intr-adevar, daca (H,
T
T
1
T
1
T

= (U H, U T ), atunci H T
= U HT U = U GU = G. Alterarea structurii
superior Hessenberg a matricei G n pozitiile (3, 1), (4, 1), (4, 2) se transfera n alterarea structurala a perechii (H, T ). Concret, datorita structurii (6.64) a lui U ,
va diferi de o structura superior Hessenberg prin elementul
structura matricei H
nenul din pozitia (3, 1) iar structura matricei T va diferi de o structura superior
triunghiulara prin elementele nenule din pozitiile (2, 1), (3, 1) si (3, 2).
T) printr-o
4. Restaurarea structurii Hessenberg generalizate a perechii (H,
transformare ortogonala de echivalenta poate fi asimilata cu refacerea formei Hessen Motivatia este aceeasi cu cea de la iteratia QZ complexa. Conberg a matricei G.
cret, readucerea perechii alterate la forma Hessenberg generalizata se face cu algoritmul HTQZ adaptat, pentru asigurarea eficientei necesare, la situatia structurala

477

6.3. ALGORITMUL QZ

actuala. Pentru adaptarea algoritmului HTQZ vom utiliza reflectori modificati


pe care i definim prin expresia cunoscuta
V = In

vv T
,

1
2
kvk ,
2

unde vectorul v se calculeaza astfel ncat sa se asigure anularea primelor n 1


elemente ale unui vector a IRn dat 16 , i.e. (V a)(1 : n 1) = 0 (si, ntrucat
reflectorul este o matrice simetric
a, (aT V )(1 : n1) = 0). Conform celor prezentate
n capitolul 3, nu este greu de vazut ca elementele definitorii ale acestui reflector si
suprascrierea vectorului a cu V a se calculeaza economic cu schema:
HM

1.
2.
3.
4.
5.
6.

= sgn(an )kak
vi = ai , i = 1 : n1
vn = an +
= an
ai = 0, i = 1 : n1
an =

Vom introduce o procedura cu sintaxa


[ d, v, ] = Hrm(a)
pentru calculul reflectorilor modificati de ordin dat de dimensiunea vectorului a
si calculul vectorului d = V a sau d = aV dupa cum vectorul argument este un
vector coloana sau un vector linie. Suprascrierea (interna) a lui a cu d se face cu
apelul [a, v, ] = Hrm(a). Procedurile de premultiplicare si postmultiplicare a unei
matrice cu un reflector modificat sunt identice cu cele care opereaza cu reflectorii
nemodificati, i.e. vom folosi procedurile Hrs si Hrd din tabelul 4.3. De asemenea,
daca U IRpp este un reflector (modificat) vom nota

Ik1 0
0
(p)

U
0
Uk = 0
0
0 Inpk+1
care este, la randul sau, un reflector de ordinul n pe care l vom numi reflector
(modificat) de ordin n si indici (k, p).
Cu aceste precizari putem prezenta detaliile adaptarii algoritmului HTQZ prin
urmatoarea schema de calcul.
HTQZ 2
1. Pentru k = 1 : n3
(3)
1. Se calculeaza reflectorul modificat Zk astfel ncat
(3)
(T Zk )(k+2, k : k+1) = 0
(3)
2. H HZk
% Apar doua elemente nenule n pozitiile (k+3, k : k+1)
16 Prin reflectori nemodificat
i vom ntelege pe parcursul acestui capitol reflectorii care aplicati
unui vector n-dimensional anuleaz
a ultimele n1 componente ale acestuia.

478

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I
3.
4.
5.
6.
7.
8.
9.

(3)

T T Zk
Se calculeaza
(2)
H HZk
(2)
T T Zk
Se calculeaza
(3)
H Qk+1 H
(3)
T Qk+1 T

% Se anuleaza elementele T (k+2, k : k+1)


(2)
(2)
reflectorul modificat Zk astfel ncat (T Zk )(k+1, k) = 0

% Se anuleaza elementul T (k+1, k)


(3)
(3)
reflectorul Qk+1 astfel ncat (Qk+1 H)(k+2 : k+3, k) = 0
% Se anuleaza elementele H(k+2 : k+3, k)
% Apar elemente nenule n pozitiile (k+3, k+1)
si (k+3, k+1 : k+2)
2. % Ultimele transformari
(3)
1. Se calculeaza reflectorul modificat Zn2 astfel ncat
(3)
(T Zn2 )(n, n2 : n1) = 0
(3)
2. H HZn2
(3)
3. T T Zn2
% Se anuleaza elementele T (n, n2 : n1)
(2)
(2)
4. Se calculeaza reflectorul modificat Zn2 astfel ncat (T Zn2)(n1, n2) = 0
(2)
5. H HZn2
(2)
6. T T Zn2
% Se anuleaza elementul T (n1, n2)
(2)
(2)
7. Se calculeaza reflectorul Qn1 astfel ncat (Qn1 H)(n, n2) = 0
(2)
8. H Qn1 H % Se anuleaza elementul H(n, n2)
(2)
9. T Qn1 T
% Apare un element nenul n pozitia (n, n1) a lui T
(2)
(2)
10. Se calculeaza reflectorul modificat Zn1 astfel ncat (T Zn2 )(n, n1) = 0
(2)
11. H HZn1
(2)
12. T T Zn1
% Se anuleaza elementul T (n, n1)
Aceasta schema realizeaza deplasarea elementelor alterante ale structurilor matricelor H si T de-a lungul unor trasee paralele cu diagonala principala pana la
eliminarea lor din matricele respective, utilizand n acest scop secvente de reflectori.
Pentru exemplificare prezentam prima parte a evolutiei structurale a perechii
(H, T ) n cazul n = 5.



+
0 0
0 0

+
+
0

+
0

(H, T ) (U H, U T ) = (

(3)
(3)
(H, T ) (HZ1 , T Z1 ) = (

+
+
0
0

0
0



+
0 0
0 0

0
0

0
0

),

),

479

6.3. ALGORITMUL QZ

(2)
(2)
(H, T ) (HZ1 , T Z1 ) = (

+
+
0

(3)
(3)
(H, T ) (Q2 H, Q2 T ) = (

+
0



+
0

0
0
0

0
0
0

0
0

0
0
0


+
+ +

0 0

),

),

etc. Se observa ca s-a obtinut deplasarea cu o pozitie spre dreapta jos a celor doua
grupuri de elemente alterante, proces care poate fi continuat pana la eliminarea lor.
Aplicarea reflectorului U = U T care asigura prima coloana impusa a matricei
de transformare corespunzatoare pasului QR curent pentru matricea HT 1 si apoi
refacerea structurii Hessenberg generalizate cu ajutorul variantei adaptate a algoritmului HTQZ, data de schema de calcul de mai sus, conduc la obtinerea perechii
succesor
(2)

(3)

(3)

(3)

(2)

(3)

(2)

(2)

H H = Qn1 Qn2 Q1 U HZ1 Z1 Zn2 Zn2 Zn1


(2)

(3)

(3)

(3)

(2)

(3)

(2)

(2)

T T = Qn1 Qn2 Q1 U T Z1 Z1 Zn2 Zn2 Zn1

(6.66)

din sirul QZ. Prima coloana a matricei U nu este afectata de multiplicarea la dreapta
(3)
(3)
(2)
cu matricea Q1 Qn2 Qn1 .
T
inand seama de (6.61), (6.63) calculul economic al vectorului de deplasare
implicita se poate face cu urmatorul algoritm.
Algoritmul 6.6 (VD2 Calculul vectorului de deplasare implicit
a
pentru un pas dublu QZ) (Date o pereche (H, T ) IRnn IRnn n
forma Hessenberg generalizata cu T nesingulara algoritmul calculeaza
vectorul w R3 de deplasare implicita pentru un pas dublu QZ.)
1. Se calculeaza si cu relatia (6.61).
h22
h21

h11
, =
, =
, =
,
2. =
t11
t22
t11
t22

+ h12 +

( + )
3. w =
h32

Comentarii.

= t12

Sintaxa de apel a a acestui algoritm va fi


w = VD2(H, T ),

iar complexitatea sa ramane, evident, O(1).

480

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Suntem n masura sa prezentam acum algoritmul formal de implementare a


unui pas dublu QZ cu deplasare implicita. Sunt utilizate procedurile de calcul
al reflectorilor cuprinse n tabelul 4.3, la care se adauga procedurile introduse n
aceasta sectiune.
Algoritmul 6.7 (IT QZ2 Un pas dublu QZ cu deplasare implicit
a) (Date o pereche (H, T ) IRnn IRnn n forma Hessenberg generalizata ireductibila, vectorul de deplasare implicita w IR3
si matricele ortogonale Q, Z IRnn , algoritmul suprascrie perechea
(H, T ) cu perechea succesor (H , T ) = (QTk HZk , QTk T Zk ) din sirul QZ.
Optional, se actualizeaza matricele de transformare Q si Z. Optiunea
se exprima cu ajutorul variabilei logice opt de tipul sir de caractere care
poate lua valorile da sau nu . Daca opt = nu , algoritmul returneaza
matricele Q si Z nemodificate.)
1. [ w, u, ] = Hr(w)
2. H(1 : 3, :) = Hrs(u, , H(1 : 3, :))
3. T (1 : 3, :) = Hrs(u, , T (1 : 3, :))
4. Dac
a opt = da atunci Q( : , 1 : 3) = Hrd(Q( : , 1 : 3), u, )
5. % Refacerea structurii superior Hessenberg generalizate
Pentru k = 1 : n3
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

[ T (k+2, k : k+2), u, ] = Hrm(T (k+2, k : k+2))


H(1 : k+3, k : k+2) = Hrd(H(1 : k+3, k : k+2), u, )
T (1 : k+1, k : k+2) = Hrd(T (1 : k+1, k : k+2), u, )
Dac
a opt = da atunci
Z( : , k : k+2) = Hrd(Z( : , k : k+2), u, )
[ T (k+1, k : k+1), u, ] = Hrm(T (k+1, k : k+1))
H(1 : k+3, k : k+1) = Hrd(H(1 : k+3, k : k+1), u, )
T (1 : k, k : k+1) = Hrd(T (1 : k, k : k+1), u, )
Dac
a opt = da atunci
Z( : , k : k+1) = Hrd(Z( : , k : k+1), u, )
[ H(k+1 : k+3, k), u, ] = Hr(H(k+1 : k+3, k))
H(k+1 : k+3, k+1 : n) = Hrs(u, , H(k+1 : k+3, k+1 : n))
T (k+1 : k+3, k+1 : n) = Hrs(u, , T (k+1 : k+3, k+1 : n))
Dac
a opt = da atunci
Q( : , k+1 : k+3) = Hrd(Q( : , k+1 : k+3), u, )

6. % Ultimele transformari
1.
2.
3.
4.

[ T (n, n2 : n), u, ] = Hrm(T (n, n2 : n))


H( : , n2 : n) = Hrd(H( : , n2 : n), u, )
T (1 : n1, n2 : n) = Hrd(T (1 : n1, n2 : n), u, )
Dac
a opt = da atunci
Z( : , n2 : n) = Hrd(Z( : , n2 : n), u, )
5. [ T (n1, n2 : n1), u, ] = Hrm(T (n1, n2 : n1))

6.3. ALGORITMUL QZ

481

6. H( : , n2 : n1) = Hrd(H( : , n2 : n1), u, )


7. T (1 : n2, n2 : n1) = Hrd(T (1 : n2, n2 : n1), u, )
8. Dac
a opt = da atunci
Z( : , n2 : n1) = Hrd(Z( : , n2 : n1), u, )
9. [ H(n1 : n, n2), u, ] = Hr(H(n1 : n, n2))
10. H(n1 : n, n1 : n) = Hrs(u, , H(n1 : n, n1 : n))
11. T (n1 : n, n1 : n) = Hrs(u, , T (n1 : n, n1 : n))
12. Dac
a opt = da atunci
Q( : , n1 : n) = Hrd(Q( : , n1 : n), u, )
13. [ T (n, n1 : n), u, ] = Hrm(T (n, n1 : n))
14. H( : , n1 : n) = Hrd(H( : , n1 : n), u, )
15. T (1 : n1, n1 : n) = Hrd(T (1 : n1, n1 : n), u, )
16. Dac
a opt = da atunci
Z( : , n1 : n) = Hrd(Z( : , n1 : n), u, )
Comentarii.

Sintaxa de apel a algoritmului de mai sus va fi


[ H, T, Q, Z ] = IT QZ2(H, T, Q, Z, w, opt).

Complexitatea unui pas dublu QZ n implementarea de mai sus este O(n2 ). Concret,
pentru executia algoritmului 6.7 sunt necesari Nop 32n2 flopi fara acumularea

transformarilor, Nop
20n2 pentru calculul matricei Z, Nop
12n2 pentru calculul
matricei Q, la care se adauga cele 2(n 1) extrageri de radical.
3
D. Algoritmul QZ pentru matrice reale
Algoritmul QZ pentru matrice reale reproduce structura algoritmului omonim pentru matrice complexe cu urmatoarele aspecte specifice:
a) n faza iterativa monitorizarea structurii matricei H are loc cu evidentierea
blocurilor diagonale 2 2;
b) faza iterativa a algoritmului QZ se termina n momentul n care ordinul
submatricii H22 scade la cel mult 2, i.e. q devine mai mare decat n 3.
c) dupa terminarea fazei iterative, algoritmul se completeaza cu reducerea la
forma superior triunghiulara a perechilor de blocuri diagonale 2 2 care au valori
proprii generalizate reale.
Rezolvarea problemelor ridicate de primele doua aspecte este imediata. In ceea
ce priveste punctul c), triangularizarea perechilor de blocuri diagonale 22 cu valori
proprii reale se face n felul urmator.
21 6= 0 si valorile proprii generalizate
T) IR22 IR22 cu h
Fie perechea (H,
reale 1 si 2 . Atunci
"
#
22
1 t22 h
v=
(6.67)
21
h
v = 1 T v si S = Im v
este un vector propriu generalizat asociat lui 1 , i.e. H
T). Matricele Q
si Z care definesc
este un subspatiu de deflatie al fascicolului (H,

482

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

T) la forma Schur
transformarea ortogonala de echivalenta ce aduce perechea (H,
generalizata se pot construi procedand ca n demonstratia propozitiei 6.2. Concret,

este
(vezi exercitiul 6.9), Z este reflectorul care asigura (Zv)(2)
= 0, iar apoi Q
T (TZ(:,
1))(2) = 0.
reflectorul care asigura (Q
Daca blocul diagonal ce trebuie triangularizat se afla pe liniile si coloanele k si
k + 1, atunci rezultatul dorit se obtine aplicand perechii (H, T ), de ordinul n, trans Ink1 )
formarea ortogonala de echivalenta definita de matricele Q = diag(Ik1 , Q,
Ink1 ).
si diag(Ik1 , Z,
In vederea unei scrieri mai concise a algoritmului QZ prezentam aici un algoritm
preliminar care proceseaza perechea bloc-diagonala 2 2 aflata n pozitia (k, k + 1).
Algoritmul 6.8 (TRID2g -Triangularizarea unei perechi de blocuri
diagonale 2 2) (Date o pereche (S, T ) IRnn IRnn , cu S n forma
cvasi-superior triunghiulara si T superior triunghiulara nesingulara si
ntregul k 1 : n1, algoritmul testeaza daca perechea de blocuri diagonale (S(k : k+1, k : k+1), T (k : k+1, k : k+1)) are valorile proprii generalizate reale si, n caz afirmativ, calculeaza triangularizarea ortogonala
a perechii bloc-diagonale vizate, rezultatul suprascriind perechea (S, T ).
De asemenea, algoritmul returneaza elementele definitorii (uQ , Q ) si
(uZ , Z ) ale celor doi reflectori calculati. In caz contrar perechea (S, T )
ramane nemodificata si, pentru identificarea acestei situatii, se returneaza Z = 0.)
1. Z = 0
2. = tk,k tk+1,k+1 , = sk,k tk+1,k+1 + sk+1,k+1 tk,k sk+1,k tk,k+1 ,
= sk,k sk+1,k+1 sk,k+1 sk+1,k , = 2 4
3. Dac
a 0 atunci

1. 1 = ( + sgn() )/2
"
#
1 tk+1,k+1 sk+1,k+1
2. v =
sk+1,k
3. [ v, uZ , Z ] = Hr(v)
4. S(1 : k+1, k : k+1) = Hrd(S(1 : k+1, k : k+1), uZ , Z )
5. T (1 : k+1, k : k+1) = Hrd(T (1 : k+1, k : k+1), uZ , Z )
6. [ T (k : k+1, k), uQ, Q ] = Hr(T (k : k+1, k))
7. S(k : k+1, k : n) = Hrs(uQ , Q , S(k : k+1, k : n))
8. S(k+1, k) = 0 % zeroul calculat se seteaza la un zero efectiv
9. T (k : k+1, k+1 : n) = Hrs(uQ , Q , T (k : k+1, k+1 : n))

Comentarii.

Sintaxa de apel a acestui algoritm va fi


[ S, T, uQ , Q , uZ , Z ] = TRID2g(S, T, k),

iar complexitatea sa este O(n).


3
Cu aceste precizari si tinand seama de aspectele comune cu cazul complex putem
scrie algoritmul QZ standard cu pas dublu, cu deplasare implicita, pentru calculul
formei Schur reale generalizate.

6.3. ALGORITMUL QZ
Algoritmul 6.9 (QZ2 Algoritmul QZ cu pasi dubli si deplas
ari
implicite) (Date un fascicol matriceal definit de perechea (A,B) IRnn
IRnn , matricele ortogonale Q, Z IRnn si un nivel de toleranta tol
pentru anularea elementelor subdiagonale, algoritmul calculeaza forma
T AZ,
Q
T B Z)
a perechii
Schur reala generalizata (A, B) (S, T ) = (Q
(A, B). Toate calculele se efectueaza pe loc, n locatiile de memorie
ale tablourilor A si B. Optional, se acumuleza transformarile prin ac si Z Z Z.
Optiunea se exprima cu
tualizarea matricelor Q QQ
ajutorul variabilei logice opt de tipul sir de caractere care poate lua
valorile da sau nu . Daca nu se doreste acumularea transformarilor,
matricele Q si Z se returneaza nemodificate.)
1. % Reducerea la forma Hessenberg generalizata
1. [ A, B, Q, Z ] =HTQZr(A, B, Q, Z, opt)
2. % Deplasarea zerourilor diagonale ale matricei B si evidentierea
valorilor proprii infinite.
1. [ A, B, Q, Z ] =DZr(A, B, Q, Z, opt)
3. % Faza iterativa
1. p = 0, q = 0, cont it = 0.
2. C^
at timp q < n
1. % Anularea elementelor subdiagonale neglijabile
Pentru i = p + 1 : n q 1
1. Dac
a |ai+1,i | tol(|aii | + |ai+1,i+1 |) atunci ai+1,i = 0
2. % Determinarea lui q
1. continu
a = da
2. C^
at timp continu
a = da
1. Dac
a q n 2 atunci break
2. Dac
a anq,nq1 = 0 atunci
1. q q + 1
2. cont it = 0
altfel
1. Dac
a anq1,nq2 = 0
atunci
1. q q + 2
2. cont it = 0
altfel continu
a = nu .
3. % Terminarea normala a fazei iterative
Dac
a q n 2 atunci break
4. % Determinarea lui p
1. p = n q 1
2. C^
at timp ap+1,p 6= 0
1. p p 1
2. Dac
a p = 0 atunci break

483

484

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I
5. %
1.
2.
3.

Iteratia curenta
k = p+1, l = nq
w = VD2(A(k : l, k : l), B(k : l, k : l))
[ A(k : l, k : l), B(k : l, k : l), Qc , Zc ] =
IT QZ2(A(k : l, k : l), B(k : l, k : l), Ilp , Ilp , w, opt)
4. 1. Dac
a q > 0 atunci
1. A(k : l, l+1 : n) = Qc A(k : l, l+1 : n)
2. B(k : l, l+1 : n) = Qc B(k : l, l+1 : n)
5. 1. Dac
a p > 0 atunci
1. A(1 : p, k : l) = A(1 : p, k : l)Zc
2. B(1 : p, k : l) = B(1 : p, k : l)Zc
6. cont it cont it + 1
6. Dac
a opt=da atunci
1. Q( : , k : l) = Q( : , k : l)Qc
2. Z( : , k : l) = Z( : , k : l)Zc
7. % Terminarea prin esec a algoritmului
1. Dac
a cont it > 30
atunci
1. Tip
are
ste S-au consumat 30 iteratii QZ pentru
evidentierea unui bloc diagonal fara a se atinge
acest obiectiv. Este posibil ca, pentru aceste date
de intrare, algoritmul QZ sa nu fie convergent.
2. Return
4. % Triangularizarea blocurilor 2 2 cu valori proprii generalizate
reale
1. k = 1
2. C^
at timp k < n
1. Dac
a ak+1,k = 0 atunci k k + 1
altfel
1. [ A, B, uQ , Q , uZ , Z ] =TRID2g(A, B, k)
2. Dac
a opt=da si Z 6= 0 atunci
1. Q( : , k : k+1) = Hrd(Q( : , k : k+1), uQ , Q )
2. Z( : , k : k+1) = Hrd(Z( : , k : k+1), uZ , Z )
3. k k + 2
Comentarii. In aspectele sale esentiale, algoritmul de mai sus sta la baza tuturor
programelor profesionale de calcul al valorilor proprii generalizate ale unui fascicol matriceal real. Precizarile referitoare la aspectele de organizare a algoritmului
facute la varianta complexa raman valabile. In acest sens s-au pastrat identificatorii
variabilelor cu aceeasi semnificatie.
Sintaxa de apel este
[S, T, Q, Z] = QZ2(A, B, Q, Z, tol, opt),

485

6.3. ALGORITMUL QZ

perechea (S, T ) n FSG putand suprascrie (intern) perechea (A, B).


La fel ca n cazul algoritmului QR, exista date de intrare pentru care algoritmul
nu este convergent, desi acest lucru se ntampla extrem de rar n practica. Aici, dupa
30 de iteratii fara progresul parametrului structural q se declara esecul algoritmului
desi mai exista sanse de convergenta printr-o modificare empirica a vectorului de
deplasare dupa un numar precizat de iteratii, e.g. 10 sau 20 (v. cap. 4).
Acceptand evaluarea conform careia sunt suficiente, n medie, doua iteratii pentru a pune n evidenta o valoare proprie generalizata, algoritmul necesita un numar
A
Q
de Nop
= 30n3 flopi fara acumularea transformarilor, Nop
= 16n3 flopi suplimentari
Z
3
pentru calculul lui Q si Nop = 20n flopi pentru acumularea lui Z. Putem, deci,
considera ca pentru fascicole de ordin superior (e.g. n > 100) algoritmul QZ are o
complexitate O(n3 ).
S
i aici, utilizarea exclusiva a transformarilor ortogonale confera algoritmului QZ
o foarte buna stabilitate numeric
a. Concret, perechea calculata (S, T ) satisface
T (A + E)Z,

S=Q

T (B + F )Z,

T =Q

Z sunt matrice riguros ortogonale, iar matricele de perturbatie E si F


unde Q,
satisfac conditiile
kEk2 M kAk2 ,
kF k2 M kBk2 .
Pentru consideratii suplimentare vezi sectiunea 6.5.

Incheiem acest paragraf cu regretul lipsei de spatiu tipografic pentru prezentarea


algoritmilor de calcul al formei diagonale generalizate a fascicolelor hermitice (n
cazul real, simetrice) pozitiv definite. Pentru introducerea n problema recomandam
rezolvarea exercitiului 6.10, iar pentru detalii si indicatii bibliografice suplimentare
consultarea lucrarii [ VI ].

6.3.4

Calculul vectorilor proprii generalizati

Consideram important sa precizam de la nceput ca n multe aplicatii vectorii proprii


generalizati pot fi nlocuiti cu succes de catre vectorii Schur corespunzatori, i.e. de
catre coloanele matricelor de transformare Z si Q.
Daca se doreste totusi determinarea explicita a vectorilor proprii generalizati
acestia pot fi calculati, dupa executia algoritmului QZ corespunzator, n doua
modalitati:
a) prin rezolvarea sistemelor liniare singulare corespunzatoare;
b) prin cateva iteratii (teoretic, ntr-o singura iteratie) ale metodei puterii inverse generalizate.
Prezentam succint prima varianta pentru cazul complex (pentru cazul real vezi
exercitiul 6.11). Un vector propriu generalizat xk C
I n , asociat valorii proprii generalizate finite k = skk /tkk este un vector nenul care satisface sistemul singular
Axk = k Bxk .

(6.68)

486

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

T
inand seama de faptul ca (A, B) = (QSZ H , QT Z H ), vectorul xk se calculeaza cu
relatia
xk = Zy,
(6.69)
unde y este o solutie nenula a sistemului singular triunghiular
tkk Sy = skk T y.

(6.70)

Dac
a k este o valoare proprie distinct
a, atunci solutiile nenule ale sistemului (6.70)
au structura
T
y = [ yT 0 . . . 0 ] , y C
I k1 ,
(6.71)
unde este un scalar nenul altfel arbitrar, e.g. = 1. Cu aceasta alegere a lui
din (6.70) rezulta ca y este solutia sistemului triunghiular nesingular
(tkk S(1 : k1, 1 : k1)skk T (1 : k1, 1 : k1))
y = skk T (1 : k1, k)tkk S(1 : k1, k).
(6.72)
Cu y astfel obtinut vectorul propriu generalizat xk se obtine din (6.69) cu relatia
xk = Z(:, 1 : k1)
y + Z(:, k).

(6.73)

In situatia n care valoarea proprie nu este distincta, calculul se poate proceda fie
extinzand ideile din situatia corespunzatoare din cazul calculului vectorilor proprii
ordinari, fie apeland la o grupare a valorilor proprii generalizate identice prin
tehnici de ordonare care fac obiectul sectiunii urmatoare.

6.4

Forma Schur generalizat


a ordonat
a.
Calculul subspatiilor de deflatie

Conceptul de subspatiu de deflatie a fost introdus prin definitia 6.2 si folosit pentru a demonstra posibilitatea reducerii unei perechi (A, B) C
I nn C
I nn , prin
transformari de echivalenta, la forma Schur generalizata.
Reciproc, fie un fascicol regulat, definit de o pereche (A, B) C
I nn C
I nn si
forma sa Schur generalizata (S, T ) cu urmatoarele partitii ale matricelor S si T
k

nk

nk

z}|{ z}|{


S11 S12 } k
H
S = Q AZ =
,
0 S22 } n k

z}|{ z}|{


T11 T12 } k
H
T = Q BZ =
.
0 T22 } n k
(6.74)
Fie, de asemenea, partitiile corespondente ale matricelor unitare de transformare
k

nk

z}|{ z}|{


Q1 Q2
,
Q=

Z=
def

nk

z}|{ z}|{


Z1 Z2

(6.75)

Dac
a, acum, consideram S = ImZ1 , atunci V1 = AS = Im(AZ1 ) = Im(QSZ H Z1 )
de unde, tinand seama de relatiile (6.74), (6.75), precum si de faptul ca Z1H Z1 = Ik ,

6.4. CALCULUL SUBSPAT


IILOR DE DEFLAT
IE

487

Z2H Z1 = 0, rezulta
V1 = Im([ Q1 Q2 ]

S11
0

S12
S22



Z1H
Z2H

Z1 ) = Im(Q1 S11 ) ImQ1 ,

cu egalitate n ultima relatie dac


a si numai daca S11 este nesingulara. In acest din
urma caz coloanele lui Q1 formeaza o baza unitara a lui V1 . Absolut analog avem
def
V2 = BS = Im(BZ1 ) = Im(QT Z H Z1 ) de unde rezulta
V2 = Im(Q1 T11 ) ImQ1 ,
cu egalitate n ultima relatie dac
a si numai daca T11 este nesingulara.
In consecinta,
def
V = AS + BS = V1 + V2 ImQ1 .

(6.76)

cu egalitate n ultima relatie dac


a una din matricele S11 sau T11 este nesingulara.
In toate situatiile avem
dimV dimS
(6.77)
ceea ce nseamna, conform definitiei 6.2, ca S = ImZ1 este un un subspatiu de
deflatie al fascicolului matriceal definit de perechea (A, B), subspatiu pe care l asociem, n mod natural, cu setul de valori proprii generalizate (S11 , T11 ) (A, B).
In cazul real, toate consideratiile de mai sus raman valabile cu singurul amendament ca subspatiile de deflatie reale ale unui fascicol real se asociaza ntotdeauna
unor seturi simetrice de valori proprii generalizate 17 fapt indus de posibilitatea
unor partitii de forma (6.74) unde, de data aceasta, S este n forma Schur reala.
T
inand seama de cele de mai sus, un subspatiu de deflatie al unui fascicol (A, B)
este complet definit de un set de valori proprii generalizate, iar calculul sau (i.e.
calculul unei baze ortogonale) se reduce, n definitiv, la obtinerea unei forme Schur
generalizate (S, T ) = (QH AZ, QH BZ) n care setul de valori proprii precizat coincide cu spectrul de valori proprii al subfascicolului lider principal de dimensiune
corespunzatoare. O data obtinut
a aceasta forma Schur, baza cautata este data de
primele coloane ale matricei Z. Prin urmare, dupa aplicarea algoritmului QZ si
obtinerea unei prime forme Schur, n care perechile diagonale nu au o ordine predeterminata, calculul unui subspatiu de deflatie se reduce la ordonarea perechilor
diagonale (i.e. aducerea n primele pozitii diagonale a valorilor proprii vizate), prin
transformari unitare de echivalenta, si actualizarea matricei de transformare Z.
La fel ca n cazul valorilor proprii ordinare, mecanismul de ordonare a formei
Schur generalizate se va baza pe procedurile de permutare a doua perechi (de
blocuri, n cazul real) diagonale adiacente.

6.4.1

Ordonarea formei Schur generalizate (complexe)

Vom considera mai ntai cazul complex. Fie un fascicol matriceal de ordinul doi
(S, T ) C
I 22 C
I 22 n forma Schur generalizata cu valorile proprii distincte, i.e.
17 Reamintim c
a prin set simetric ntelegem o multime numeric
a n care elementele complexe
apar n perechi complex conjugate.

488

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

s11 t22 6= s22 t11 . Continuand analogia cu problema valorilor proprii ordinare, fie
x2 un vector propriu generalizat unitar al fascicolului (S, T ) asociat valorii proprii
2 = (s22 , t22 ), i.e. un vector care satisface conditiile
t22 Sx2 = s22 T x2 ,

x2 6= 0.

(6.78)

De asemenea, fie w C
I 2 un vector ortogonal cu x2 si matricea unitara de transformare Z = [ x2 w ]. Concret, vectorul propriu generalizat din (6.78) are expresia


s22 t12 s12 t22
x2 = y,
cu
y=
,
(6.79)
s11 t22 s22 t11
unde IR este un factor scalar de normare, iar matricea unitara Z poate fi rotatia
(complexa) care realizeaza (Z H y)(2) = 0.
Daca Q C
I 22 este o matrice unitara astfel ncat
(QH SZ)(2, 1) = 0

sau

(QH T Z)(2, 1) = 0,

atunci obtinem (exercitiu pentru cititor)





s22
t22

H
H
S = Q SZ =
,
T = Q TZ =
0 s11
0

t11

(6.80)

(6.81)

unde cu s-au notat elementele lipsite de semnificatie. S-a realizat astfel permutarea celor doua valori proprii generalizate. Alegerea uneia din cele doua alternative de calcul a matricei Q se face din considerente de asigurare a unei stabilitati
numerice maxime a algoritmului de ordonare. In [ VI ] se arata ca decizia trebuie
luat
a n raport cu modulele elementelor s22 si t22 . Daca |s22 | |t22 |, atunci Q va fi
rotatia care anuleaza al doilea element al primei coloane a matricei SZ, iar n caz
contrar rotatia care anuleaza al doilea element al primei coloane a matricei T Z.
Pentru un fascicol de ordinul n, permutarea valorilor proprii adiacente (skk , tkk )
si (sk+1,k+1 , tk+1,k+1 ) ale formei Schur generalizate (S, T ) C
I nn C
I nn se realizeaz
a folosind transformarea unitara de echivalenta (S , T ) = (QH SZ, QH T Z) cu
Ink1 ),
Q = diag(Ik1 , Q,

Ink1 ),
Z = diag(Ik1 , Z,

(6.82)

si Z asigura permutarea
unde transformarea definita de matricele de ordinul doi Q
valorilor proprii ale perechii (S(k : k + 1, k : k + 1), T (k : k + 1, k : k + 1)).
Rezumand cele prezentate mai sus, rezulta urmatoarea schema de calcul:
PG 11 c

1. Dac
a skk tk+1,k+1 6= sk+1,k+1 tkk atunci

sk+1,k+1 tk,k+1 sk,k+1 tk+1,k+1
1. Se calculeaza vectorul y =
skk tk+1,k+1 sk+1,k+1 tkk
H
2. Se calculeaza rotatia Z12 astfel ncat (Z12
y)(2) = 0
3. S S diag(Ik1 , Z12 , Ink1 )
4. T T diag(Ik1 , Z12 , Ink1 )
5. Z Z diag(Ik1 , Z12 , Ink1 )
6. Dac
a |tk+1,k+1 | |sk+1,k+1 | atunci y = S(k : k + 1, k)
altfel y = T (k : k + 1, k)

6.4. CALCULUL SUBSPAT


IILOR DE DEFLAT
IE

489

7. Se calculeaza rotatia Q12 astfel ncat (QH


12 y)(2) = 0
8. S diag(Ik1 , QH
,
I
)
S
nk1
12
9. T diag(Ik1 , QH
12 , Ink1 ) T
10. Q Q diag(Ik1 , Q12 , Ink1 )
iar algoritmul corespunzator, bazat pe utilizarea procedurilor devenite familiare
pentru cititor, este
Algoritmul 6.10 (PG 11c Permutarea a dou
a valori proprii generalizate adiacente) (Date o pereche (S, T ) C
I nn C
I nn n forma
nn
Schur generalizata, matricele unitare Q, Z C
I
si ntregul k 1 : n1,
algoritmul suprascrie perechea de matrice (S, T ) cu perechea (S , T ) =
H S Z,
Q
H T Z)
care realizeaza permutarea valorilor proprii genera= (Q
lizate definite de perechile (skk , tkk ), (sk+1,k+1 , tk+1,k+1 ) si actualizeaza
matricele de transformare Q si Z.)
1. Dac
a skk tk+1,k+1 6= sk+1,k+1 tkk atunci


sk+1,k+1 tk,k+1 sk,k+1 tk+1,k+1
1. y =
skk tk+1,k+1 sk+1,k+1 tkk
2. [ y, c, s ] = Gc(y)
3. S(1 : k + 1, k : k + 1) = Gcd(S(1 : k + 1, k : k + 1), c, s)
4. T (1 : k + 1, k : k + 1) = Gcd(T (1 : k + 1, k : k + 1), c, s)
5. Z(:, k : k + 1) = Gcd(Z(:, k : k + 1), c, s)
6. Dac
a |tk+1,k+1 | |sk+1,k+1 | atunci
1. y = S(k : k + 1)
altfel
1. y = T (k : k + 1, k)
7. [ y, c, s ] = Gc(y)
8. S(k : k + 1, k + 1 : n) = Gcs(c, s, S(k : k + 1, k + 1 : n))
9. sk+1,k = 0 % zeroul calculat este setat efectiv
10. T (k : k + 1, k : n) = Gcs(c, s, T (k : k + 1, k : n))
11. tk+1,k = 0 % zeroul calculat este setat efectiv
12. Q(:, k : k + 1) = Gcd(Q(:, k : k + 1, c, s))
Comentarii.

Sintaxa de apel a algoritmului de mai sus va fi


[ S, T, Q, Z ] = PG11c(S, T, Q, Z, k).

Complexitatea unei permutari a doua valori proprii generalizate vecine este 24n
fiind independenta de k.
3
Din momentul n care dispunem de procedura de permutare a doua valori proprii nvecinate, algoritmul propriu-zis de ordonare a formei Schur generalizate (complexe) se reduce, n esenta, la un algoritm de sortare al unei multimi ordonate bazat
pe interschimbarea elementelor adiacente. Procedand ca n cazul formei Schur ordinare, prezentam o varianta care dispune valorile proprii ale unei forme Schur

490

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

generalizate (S, T ) ale fascicolului (A, B) n ordinea impusa de permutarea data


= {i1 , i2 , . . . , in } n sensul ca perechea diagonala aflata initial n pozitia (k, k) va
fi plasata n final n pozitia (ik , ik ) (vezi si comentariul la algoritmul ce urmeaza).
Prin actualizarea matricei unitare de transformare Z se calculeaza si baze ortogonale pentru subspatiile de deflatie asociate unor grupuri impuse de valori proprii
generalizate. Concret, coloanele matricei actualizate Z(: , 1 : k) formeaza o baza
ortogonala a subspatiului de deflatie Sk asociat setului de valori proprii k =
= {i = (sii , tii ) | i = 1 : k}} (n numerotarea finala). Actualizarea matricei
unitare de transformare Q nu este necesara. Daca se efectueaza totusi, atunci
coloanele matricei actualizate Q(: , 1 : k) formeaza o baza ortogonala a subspatiului
Vk = ASk + BSk n situatia n care dimVk = dimSk = k.
Algoritmul 6.11 (FSG ORD Ordonarea formei Schur generalizate (complexe)) (Date o pereche (S, T ) C
I nn C
I nn n forma
nn
Schur generalizata, matricele unitare Q, Z C
I
si permutarea =
= {i1 , i2 , . . . , in }, algoritmul suprascrie perechea (S, T ) cu perechea uni
H S Z,
Q
H T Z)
care are (s
tar echivalenta (S , T ) = (Q
ik ,ik , tik ,ik ) =
= (skk , tkk ), k = 1 : n si actualizeaza matricele de transformare Q
si Z.)
1. Pentru k = 1 : (n 1)

1. mut
a =nu
2. l = k
3. Pentru j = (k + 1) : n
1. Dac
a ij < il atunci
1. l = j
2. mut
a=da
4. Dac
a mut
a =da atunci
1. Pentru j = (l 1) : 1 : k
1. [ S, T, Q, Z ] = PG11c(S, T, Q, Z, j)
2. ij ij+1

Comentarii.

Sintaxa naturala de apel a algoritmului prezentat este


[ S, T, Q, Z ] = FSG ORD(S, T, Q, Z, ).

Complexitatea unei ordonari este dictata esential de natura permutarii. Cazurile


limita sunt permutarea identica pentru care nu se face nici o operatie aritmetica si
inversiunea pentru care se efectueaza 21 n(n 1) apelari ale procedurii PG11c care
conduc la o complexitate de O(n3 ).
Algoritmul de mai sus realizeaza o ordonare totala a perechilor diagonale. Daca
se urmareste exclusiv constructia unei baze unitare pentru un subspatiu de deflatie
k-dimensional (k < n) este suficienta o ordonare partiala constand n aducerea, pe
caile cele mai scurte, a valorilor proprii generalizate vizate n primele k pozitii diagonale. De asemenea, se renunta la actualizarea matricei Q. Propunem cititorului
o astfel de adaptare a algoritmului.

6.4. CALCULUL SUBSPAT


IILOR DE DEFLAT
IE

491

De multe ori este mai comod ca n locul permutarii sa utilizam permutarea


inversa = 1 = {j1 , j2 , . . . , jn }. In acest caz, algoritmul suprascrie perechea
H S Z,
Q
H T Z)
care are
(S, T ) cu perechea unitar echivalenta (S, T ) (S , T ) = (Q

(skk , tkk ) = (sjk ,jk , tjk ,jk ) si o varianta a sa arata astfel.


1. Pentru k = 1 : n 1
1. Dac
a k 6= jk atunci

1. Pentru i = (jk 1) : 1 : k
1. [ S, T, Q, Z ] = PG11c(S, T, Q, Z, i)
2. Pentru i = (k + 1) : n
1. Dac
a ji < jk atunci ji = ji + 1.

Dupa executia acestui algoritm coloanele matricei actualizate Z(: , 1 : k) formeaza


o baza ortogonala a subspatiului de deflatie Sk asociat setului de valori proprii
k = {i = (sii , tii ) | i {j1 , j2 , . . . , jk }} (n numerotarea initiala).
3

6.4.2

Ordonarea formei Schur reale generalizate

In cazul real forma Schur generalizata (S, T ) IRnn IRnn a fascicolului definit
de (A, B) IRnn IRnn are matricea S n forma Schur reala, iar matricea T
superior triunghiulara. Vom considera partitiile bloc ale matricelor S si T dictate
de dimensiunile lk lk cu lk {1, 2}, k = 1 : p, ale blocurilor diagonale ale lui S:

T11 T12 T1p


S11 S12 S1p
0 T22 T1p
0 S22 S1p

(6.83)
,
T = .
S= .

..
.. .
.
.
..
.
..
..
..
..
..
.
.
.
0
0 Tpp
0
0 Spp

Problema calculului subspatiilor de deflatie reale asociate unor seturi simetrice de


valori proprii generalizate revine la ordonarea corespunzatoare a blocurilor diagonale
ale formei Schur reale generalizate. In acest scop este necesar sa stim sa permutam
dou
a perechi de blocuri adiacente. Permutarea a doua perechi de blocuri vecine
1 1 se face cu algoritmul PG11c cu singura mentiune ca toate transformarile
utilizate sunt reale (cu reducerea corespunzatoare a numarului de operatii). Intrucat
scrierea variantei reale a algoritmului se rezuma la nlocuirea siglei c cu sigla r n
identificatorii procedurilor, ne marginim sa introducem sintaxa de utilizare
[ S, T, Q, Z ] = PG11r(S, T, Q, Z, k).
Ramane sa aratam cum se pot permuta, prin transformari ortogonale de echivalenta,
dou
a perechi de blocuri diagonale vecine din care cel putin una din perechi are
blocurile de ordinul 2.
Consideram acum perechea de matrice de ordin 3 sau 4, partitionate identic,




S11 S12
T11 T12
S=
,
T =
,
(6.84)
0 S22
0 T22

492

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

unde, prin urmare, cel putin unul din blocurile diagonale S11 (T11 ), S22 (T22 ) este
2 2. In principiu, putem aplica ideile utilizate la elaborarea algoritmului PG 11
i.e. calculul unei baze ortogonale a subspatiului de deflatie asociat valorilor proprii
generalizate ale perechii (S22 , T22 ) si aplicarea propozitiei 6.2. Propunem cititorului implementarea acestor idei. Aici vom urma o cale echivalenta care utilizeaza
algoritmul QZ cu deplasare implicita. Avand n vedere faptul ca perechea (S, T )
din (6.84) este deja n forma Schur reala generalizata rezulta ca putem determina
deplasarea (n forma implicita) exact
a care, utilizata n algoritmul QZ2 pune n
evidenta, n pozitia (2, 2) perechea cu valorile proprii dorite, n cazul nostru, n
vederea permutarii, cu valorile proprii ale perechii (S11 , T11 ). Cunoasterea exact
aa
deplasarii face ca, teoretic, sa fie suficienta o singur
a iteratie QZ pentru obtinerea
rezultatului dorit. In practica, daca nivelul de toleranta practicat este de ordinul
de marime al erorilor de rotunjire, este posibil sa fie necesare cateva (doua-trei)
iteratii pentru a putea considera elementele blocului 21 neglijabile. De asemenea,
ntrucat algoritmul QZ2 cu deplasari implicite efectueaza calculele aferente unei
iteratii numai asupra perechilor n forma Hessenberg generalizata ireductibil
a este
necesar mai ntai un pas QZ artificial care sa altereze structura Schur reala generalizata a perechii (S, T ). In consecinta, toate cele trei tipuri de permutare se vor
supune urmatoarei scheme de calcul.
PG kl
1. Se determina elementele definitorii exacte pentru vectorul w de deplasare
implicita (i.e. valoarea proprie generalizata daca prima pereche de blocuri
este 1 1, respectiv suma s si produsul p ale valorilor proprii generalizate
n cazul cand prima pereche de blocuri este 2 2).
2. Se executa un pas QZ cu un vector de deplasare implicita fixat aleator
T
(e.g. alegerea w = [ 1 1 1 ] da bune rezultate).
3. Se aplica algoritmul QZ cu deplasarea implicita exacta (i.e. calculata cu
elementele de la punctul 1).
Pentru fascicolul de ordinul n (6.82), permutarea blocurilor adiacente (Skk , Tkk )
si (Sk+1,k+1 , Tk+1,k+1 ) ale formei Schur reale generalizate (S, T ) IRnn IRnn se
obtine folosind transformarea ortogonala de echivalenta (S , T ) = (QT SZ, QT T Z)
definita de
Is ),
Is ),
Q = diag(Ir , Q,
Z = diag(Ir , Z,
(6.85)
si Z,
de ordinul 2, 3 sau 4, asigura
unde transformarea definita de matricele Q
permutarea blocurilor diagonale ale perechii




Skk
Sk,k+1
Tkk
Tk,k+1
S =
,
T =
,
(6.86)
0
Sk+1,k+1
0 Tk+1,k+1
si unde r este ordinul cumulat al blocurilor diagonale 1 : (k 1), iar s este ordinul
cumulat al blocurilor diagonale (k + 2) : p.
Vom implementa schema de calcul de mai sus ntr-un algoritm care va trata toate
cazurile. Pentru aceasta vom utiliza rezultatele stabilite si procedurile elaborate n
acest capitol. Pentru o ntelegere mai lesnicioasa a algoritmului facem urmatoarele
precizari:

6.4. CALCULUL SUBSPAT


IILOR DE DEFLAT
IE

493

pentru relatiile de calcul al vectorilor de deplasare implicita (exacta) recomandam consultarea algoritmilor Vd1 si Vd2;
pentru o prezentare mai clara a algoritmulor, actualizarea blocurilor nediagonale de pe bloc-liniile si bloc-coloanele afectate n etapa curenta, conform relatiei
si Z n forma nefac(6.85), se va face utilizand matricele de transformare locala Q
torizata.
Obtinem urmatorul algoritm.
Algoritmul 6.12 (PGr Permutarea a dou
a perechi diagonale adiacente) (Date o pereche (S, T ) IRnn IRnn n forma Schur reala
generalizata, ntregul l care reprezintand pozitia diagonala a elementului
si ordinele i s j ale celor doua blocuri diago11 al primului bloc diagonal
nale adiacente precum s toleranta tol pentru neglijarea elementelor subdiagonale, algoritmul suprascrie perechea (S, T ) cu perechea (S , T ) =
T S Z,
Q
T T Z),
realizand permutarea perechii de blocuri diagonale
= (Q
(Skk , Tkk ) cu perechea de blocuri diagonale (Sk+1,k+1 , Tk+1,k+1 ). De
asemenea, se actualizeaza matricele de transformare Q si Z.)
1. % Cazul a doua perechi de blocuri 1 1
Dac
a i = 1 si j = 1 atunci
1. [ S, T, Q, Z ] = PG11r(S, T, Q, Z, l)
2. Return
2. % Cazul perechilor de blocuri 1 1, 2 2
Dac
a i = 1 si j = 2 atunci
1. q = l + 2
sql,l
2. =
tl,l
T

3. w = [ 1 1 1 ]
Z ] =
4. [ S(l : q, l : q), T (l : q, l : q), Q,
= IT QZ2(S(l : q, l : q), T (l : q, l : q), I3 , I3 , w, da )
5. C^
at timp |sl+2,l+1 | tol(|sl+1,l+1 | + |sl+2,l+2 |)
T
sl,l
sl+1,l
1. wexact = [

0]
tl,l
tl,l
Z ] =
2. [ S(l : q, l : q), T (l : q, l : q), Q,
Z,
wexact , da )
= IT QZ2(S(l : q, l : q), T (l : q, l : q), Q,
6. S(l + 2, l + 1) = 0 % anularea efectiva a elementului neglijabil
7. Dac
a l > 1 atunci
1. S(1 : l 1, l : q) = S(1 : l 1, l : q)Z
2. T (1 : l 1, l : q) = T (1 : l 1, l : q)Z

8. Dac
a l < n 2 atunci
T S(l : q, q + 1 : n)
1. S(l : q, q + 1 : n) = Q
T T (l : q, q + 1 : n)
2. T (l : q, q + 1 : n) = Q

9. Q( : , l : q) = Q( : , l : q)Q
10. Z( : , l : q) = Z( : , l : q)Z

494

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I
11. Return
3. % Cazul primei perechi de blocuri 2 2
Dac
a i = 2 si j < 3 atunci
1. q = l + i + j 1
sl+1,l+1 tl,l + sl,l tl+1,l+1 sl+1,l tl,l+1
2. =
tl,l tl+1,l+1
sl,l sl+1,l+1 sl+1,l sl,l+1
3. =
tl,l tl+1,l+1
T

4. w = [ 1 1 1 ]
Z ] =
5. [ S(l : q, l : q), T (l : q, l : q), Q,
= IT QZ2(S(l : q, l : q), T (l : q, l : q), Iql+1 , Iql+1 , w, da )
6. r = l + j
7. C^
at timp |sr,r1 | tol(|sr1,r1 | + |sr,r |)
sll
sl+1,l+1
sl+1,l
1. =
, =
, =
,
tll
tl+1,l+1
tll

, = tl,l+1 .
=
tl+1,l+1

+ sl,l+1 +

( + )
2. wexact =
sl+2,l+1
Z ] =
3. [ S(l : q, l : q), T (l : q, l : q), Q,
Z,
wexact , da )
= IT QZ2(S(l : q, l : q), T (l : q, l : q), Q,
8. S(r, r 1) = 0 % anularea efectiva a elementului neglijabil
9. Dac
a l > 1 atunci
1. S(1 : l 1, l : q) = S(1 : l 1, l : q)Z
2. T (1 : l 1, l : q) = T (1 : l 1, l : q)Z

10. Dac
a q < n atunci
T S(l : q, q + 1 : n)
1. S(l : q, q + 1 : n) = Q
T T (l : q, q + 1 : n)
2. T (l : q, q + 1 : n) = Q

11. Q( : , l : q) = Q( : , l : q)Q
12. Z( : , l : q) = Z( : , l : q)Z
Comentarii.

Sintaxa de apel a acestui algoritm va fi


[ S, T, Q, Z ] = PGr(S, T, Q, Z, l, i, j, tol).

Complexitatea unei permutari a doua perechi de blocuri adiacente este O(n), fiind
practic independenta de pozitia lor, dar dependenta de dimensiunile blocurilor diagonale ale matricii S.
3
Cu aceasta procedura de permutare a doua perechi adiacente algoritmul de ordonare a formei Schur reale generalizate este, n esenta, identic cu cel de ordonare
a formei Schur complexe generalizate si este prezentat n continuare. Facem si aici,
pentru o ntelegere mai comoda a algoritmului, urmatoarele precizari:

6.4. CALCULUL SUBSPAT


IILOR DE DEFLAT
IE

495

structura (i.e. ordinul) blocurilor diagonale ale matricei S a FSRG va fi memorata n vectorul strbl;
pentru localizarea blocurilor diagonale ale matricei S a FSRG vom utiliza
vectorul lcbl care va contine pozitiile elementelor (1, 1) ale acestora;
pentru a simplifica la maxim monitorizarea elementelor nule de pe subdiagonala matricei S, nu vom apela formal la algoritmul QZ2 ci vom adopta ideile
acestuia la situata structurala concreta.
Se obtine urmatorul algoritm.
Algoritmul 6.13 (FSRG ORD Ordonarea formei Schur reale
generalizate) (Date o pereche (S, T ) IRnn IRnn n forma Schur generalizata (6.83), cu T nesingulara, matricele ortogonale Q, Z IRnn ,
permutarea = {i1 , i2 , . . . , ip } si toleranta tol pentru neglijarea elementelor subdiagonale, algoritmul suprascrie perechea (S,T) cu perechea
T S Z,
Q
T T Z)
avand (S , T ) =
ortogonal echivalenta (S , T ) = (Q
ik ik
ik ik
(Skk , Tkk ) si actualizeaza matricele ortogonale de transformare Q si Z.)
1. % Determinarea numarului, a structurii si localizarii blocurilor diagonale ale matricei S.
1. p = 0, j = 1
2. C^
at timp j < n
1. p p + 1
2. Dac
a sj+1,j = 0 atunci
1. strbl(p) = 1
2. j j + 1
3. Dac
a j = n atunci
1. p p + 1
2. strbl(p) = 1
altfel
1. strbl(p) = 2
2. j j + 2

2. Pentru k = 1 : (p 1)

1. mut
a =nu
2. l = k
3. Pentru j = (k + 1) : p
1. Dac
a ij < il atunci
1. l = j
2. mut
a =da
4. Dac
a mut
a =da atunci
1. Pentru j = (l 1) : 1 : k
1. lcbl(1) = 1
2. Pentru i = 2 : p
1. lcbl(i) = lcbl(i 1) + strbl(i 1)

496

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I
3. [S, T, Q, Z] =
= PGr(S, T, Q, Z, lcbl(j), strbl(j), strbl(j + 1), tol)
4. ij ij+1
5. strbl(j) strbl(j + 1)

Comentarii.

Sintaxa de apel a algoritmului de mai sus este


[ S, T, Q, Z ] = FSRG ORD(S, T, Q, Z, , tol).

La fel ca n cazul complex, volumul de calcul necesar pentru ordonare este dictata
esential de natura permutarii. Cazul cel mai defavorabil apare cand permutarea
este o inversiune si toate blocurile sunt 2 2 si are o complexitate de O(n3 ).
S
i aici, daca se urmareste exclusiv constructia unei baze unitare pentru un
subspatiu de deflatie asociat unui set simetric de valori proprii generalizate definite
de k blocuri diagonale (k < p), este suficienta o ordonare partiala. Se recomanda,
de asemenea, renuntarea la actualizarea matricei Q.
In cazul n care se prefera utilizarea permutarii inverse = 1 = {j1 , j2 , . . . , jp }
se poate utiliza o schema de calcul similara cu cea prezentata n comentariile la
algoritmul 6.10. Scrierea explicit
a a acestei variante de algoritm de ordonare este
propusa cititorului.
3

6.5

Conditionarea valorilor proprii generalizate


si a vectorilor proprii generalizati

Sensibilitatea valorilor proprii generalizate la variatii n datele initiale, sau altfel


spus conditionarea lor numerica, se poate aprecia foarte usor n forma Schur generalizata. In ipoteza plauzibila ca forma Schur generalizata (S, T ) este putin sensibila
la perturbatii n elementele matricelor perechii (A, B) rezulta ca o valoare proprie
generalizata i = sii /tii este cu atat mai rau conditionata cu cat tii este mai mic.
Totusi, daca privim valorile proprii generalizate ca perechi (sii , tii ), fara sa consideram necesara efectuarea mpartirii, aceasta afirmatie nu mai poate fi sustinuta.
Din acest motiv, n aprecierea conditionarii numerice a valorilor proprii generalizate
se recomanda o tratare simetrica a perechii (A, B) n sensul ca trebuie considerate
simultan ambele fascicole F = A B si G = B A. Unei valori proprii rau
conditionate a fascicolului F i corespunde o valoare proprie inversa a lui G care
poate fi foarte bine conditionata. De aceeea, n [ VI ], pentru aprecierea conditionarii
valorilor proprii generalizate se propune utilizarea metricii cordale definita pentru
IR prin distanta 18

18

| |
p
chord(, ) =
,
1 + 2 1 + 2

, IR.

Distantei cordale i se pot da urm


atoarele interpret
ari.
1. Fie = arctg si = arctg . Atunci, este usor de ar
atat c
a chord(, ) = | sin( )|.
Prin urmare, printre altele, 0 chord(, ) < 1.
2. In cazul complex, dac
a , sunt proiectiile lui , respectiv pe sfera Riemann, atunci
chord(, ) este jum
atate din distanta euclidian
a (i.e. lungimea coardei) dintre cele dou
a proiectii.

6.6. STABILITATEA ALGORITMULUI QZ

497

Se poate arata ca daca este o valoare proprie generalizata distincta a fascicolului


este valoarea proprie generalizata corespunzatoare a fascicolului perturbat
F si

cu kA Ak kB
Bk , atunci
F = A B
2
2

chord(, )

2
(y H Ax)

2
(y H Bx)

+ O(2 ),

unde x, y C
I sunt vectori proprii generalizati unitari la dreapta, respectiv la stanga
ai fascicolului F , i.e. satisfac Ax = Bx, y H A = y H B si kxk = kyk = 1. Prin
urmare, conditionarea unei valori proprii generalizate individuale poate fi apreciata
cu numarul
1
=
2
2.
H
(y Ax) + (y H Bx)
Din expresia de mai sus rezulta ca se pot considera rau conditionate numeric numai
acele valori proprii generalizate pentru care expresia de la numitor (simetrica n
raport cu A si B) este mica. Situatii de acest fel apar, de exemplu, cand fascicolul
F este apropiat de un fascicol singular, i.e. n forma Schur generalizata exista
(cel putin) o pereche (sii , tii ) cu ambele valori foarte mici. In mod natural, ntr-un
astfel de caz celelalte perechi (sii , tii ) pot varia n limite foarte largi. (Amintim
ca daca fascicolul este singular, i.e. exista (sii , tii ) = (0, 0), atunci orice numar
complex este valoare proprie generalizata a fascicolului initial ceea ce nseamna ca
celelalte perechi diagonale ale formei Schur generalizate pot lua orice valori.)
In ceea ce priveste conditionarea vectorilor proprii generalizati, aceasta este
dependenta n buna masura de separarea valorii proprii generalizate asociate de
celelalte valori proprii. In aplicatii, n general, se evita calculul vectorilor proprii
generalizati, acestia putand fi nlocuiti cu succes de coloanele matricelor de transformare.

6.6

Stabilitatea numeric
a a algoritmului QZ

Asa cum s-a mai mentionat si n comentariile diversilor algoritmi partiali, utilizarea
consecventa a transformarilor unitare (n cazul real, ortogonale) confera procesului
de calcul al formei Schur generalizate o foarte buna stabilitate numerica. In litera T), cu algotura de specialitate se arata ca forma Schur generalizata calculat
a (S,
ritmul QZ, a unei perechi de matrice (A, B) este forma Schur generalizata exact
a
a perechii (A, B) usor perturbate, i.e. satisface relatia
T) = (Q
H (A + E)Z,
Q
H (B + F )Z),

(S,
unde E si F sunt matrice de perturbatie ce satisfac inegalitatile
kEk p(n)kAkM ,

kF k p(n)kBkM ,

si Z sunt doua matrice riguros unitare. In relatiile de mai sus, p(n) este
iar Q
apreciat drept o functie cu o crestere modesta de dimensiunea n a problemei,
termen folosit curent pentru functii polinomiale de gradul 1, cel mult 2.
In concluzie, valorile proprii generalizate bine conditionate se calculeaza cu o
nalta acuratete.

498

6.7

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

Rutine LAPACK si MATLAB

LAPACK. Calculul valorilor si vectorilor proprii generalizati ai unei perechi de


matrice (A, B) este efectuat n LAPACK de doua rutine driver:
1. xGEGS calculeaza forma Schur generalizata a perechii (A, B) si eventual vectorii Schur, folosind algoritmul QZ.
2. xGEGV calculeaza valorile si eventual vectorii proprii generalizati ai perechii
(A, B).
Principalele rutinele de calcul implementeaza cele doua faze ale algoritmului
QZ; sa notam abrevierile utilizate pentru diverse tipuri de matrice interesante n
aceasta problema: GG pereche de matrice generale, HG pereche n forma Hessenberg generalizata, TG pereche n forma Schur generalizata.
xGGHRD realizeaza reducerea unei perechi generale (A, B) la forma Hessenberg
generalizata (H, T ) prin transformari de asemanare ortogonale.
xHGEQZ implementeaza faza iterativa a algoritmului QZ, transformand perechea (H, T ) n forma Schur generalizata, cu acumularea optionala a transformarilor (si deci obtinerea vectorilor Schur).
Vectorii proprii generalizati ai unei perechi n forma Schur (A, B) sunt calculati
de rutina xTGEVC. Aceeasi rutina poate calcula vectorii proprii generalizati ai perechii initiale (A, B), daca primeste ca argumente de intrare vectorii Schur generalizati
calculati de rutinele de mai sus.
Rutina xGGBAL realizeaza scalarea (echilibrarea) perechii (A, B). Alte rutine,
similare cu cele pentru valori proprii, sunt actualmente n curs de elaborare.
MATLAB. Valorile si vectorii proprii generalizati ai unei perechi (A, B) pot
fi calculate cu aceeasi functie ca valorile proprii (diferenta e facuta de numarul
argumentelor de intrare):
[V, D] = eig(A, B)
V fiind matricea vectorilor proprii generalizati, iar D o matrice diagonala continand
valorile proprii generalizate (astfel ncat AV = BV D). Apelul simplu eig(A,B)
returneaza un vector continand valorile proprii generalizate. Functia implementeaza
algoritmul QZ.

6.8

Probleme

P 6.1 Se consider
a fascicolul matriceal F = A B, unde
A=

"

2
2
2

4
5
3

5
8
2

B=

"

1
1
1

1
2

499

6.8. PROBLEME

cu , parametri reali.
a) Discutati n raport cu , num
arul valorilor proprii generalizate finite ale fascicolului F.
b) Dac
a F este un fascicol regulat calculati un vector propriu generalizat x al fascicolului F independent de , ; determinati parametrii , astfel nc
at xT Bx = 0 si B
este nesingular
a.
c) In cazul = 2, = 1, calculati o baz
a ortonormal
a pentru un subspatiu de deflatie
de dimensiune 2 al fascicolului F n IR3 .

1 0
P 6.2 Consider
am perechea (A, B) IR
IR
si fie U BV = cu =
,
0 0
1 = diag(1 , 2 , , r ) si r = rang(B) 1 descompunerea valorilor singulare a matricei
B. Ar
atati c
a dac
a fascicolul A B nu are nici o valoare proprie generalizat
a finit
a,
atunci matricea (U (:, r + 1 : n))T AV (:, r + 1 : n) este singular
a.
nn

nn

P 6.3 Ce propriet
ati au valorile proprii generalizate ale unei perechi (A, B) C
I nn
C
I nn cu matricele A si B unitare (n cazul real, ortogonale)?
P 6.4 Fie perechea (A, B) C
I nn C
I nn cu B nesingular
a. S
a se arate c
a (A, B)
dac
a si numai dac
a (B, B(A B)1 B) pentru 6 (A, B).
P 6.5 Scrieti un algoritm de reducere a unei perechi reale (A, B) IRnn IRnn la
forma Hessenberg generalizat
a prin transform
ari ortogonale de echivalent
a.
P 6.6 Elaborati un algoritm care s
a calculeze iterativ un vector propriu generalizat al
perechii (A, B) C
I nn C
I nn cu B nesingular
a adapt
and metoda puterii pentru matricea
F = B 1 A sau matricea G = AB 1 f
ar
a a calcula explicit matricele F sau G. Aceeasi
cerint
a pentru adaptarea metodei puterii inverse.
P 6.7 Fie dat un vector propriu generalizat x C
I n al unui fascicol regulat definit de
nn
nn
perechea (A, B) C
I
C
I
. S
a se arate c
a Bx 6= 0 si c
a functia f : C
I IR,
1
2
a n valoarea proprie (A, B) asociat
a
f () = kAx Bxk2 si atinge valoare minim
2
xH B H Ax
lui x dat
a de expresia = H H
(A, B).
x B Bx
P 6.8 Fie (H, T ) C
I nn C
I nn n form
a Hessenberg generalizat
a cu T nesingular
a.
Ar
atati c
a matricea superior Hessenberg G = HT 1 este ireductibil
a dac
a si numai dac
a
matricea H este ireductibil
a.
P 6.9 Se d
a un fascicol real de ordinul 2 definit de perechea (H, T ) IR22 IR22 n form
a
Hessenberg ireductibil
a cu valori proprii generalizate reale. S
a se scrie un algoritm de calcul
T) = (QT HZ, QT T Z) s
al matricelor ortogonale Q, Z IR22 astfel nc
at perechea (H,
a
fie n form
a Schur.
P 6.10 Fie perechea (A, B) IRnn IRnn cu A, B simetrice si, n plus, B pozitiv
definit
a. S
a se arate c
a toate valorile proprii generalizate ale perechii (A, B) sunt reale.
Este adev
arat
a aceast
a asertiune si dac
a B nu este pozitiv definit
a?
Elaborati un algoritm de calcul al valorilor proprii generalizate ale fascicolului (A, B)
care s
a exploateze simetria celor dou
a matrice.
P 6.11 Se d
a o pereche (S, T ) IRnn IRnn n form
a Schur real
a generalizat
a. Se cer
algoritmii de calcul pentru

500

CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZAT


I

a) un vector propriu generalizat asociat valorii proprii generalizate reale distincte k =


= skk /tkk ;
b) o pereche de vectori proprii generalizati complex conjugati asociati unei perechi de
valori proprii generalizate complex conjugate date de o pereche diagonal
a 2 2 situat
a pe
liniile si coloanele (k, k + 1).
P 6.12 Se consider
a dat
a o pereche (S, T ) C
I nn C
I nn n form
a Schur generalizat
a av
and n pozitiile diagonale consecutive k, k + 1 o valoare proprie generalizat
a
dubl
a k = skk /tkk = k+1 = sk+1,k+1 /tk+1,k+1 . In ce conditii exist
a doi vectori proprii
generalizati liniar independenti asociati acestei valori proprii duble? Consider
and aceste
conditii ndeplinite, scrieti un algoritm de calcul pentru calculul a doi astfel de vectori
proprii.

Indicatii, r
aspunsuri, solutii

Cap. 0. Concepte fundamentale ale calculului numeric


P0.1 Rezultatul depinde de ordinea de calcul; avem y1 = (x1 + x2 ) + x3 = 0 si
y2 = x1 + (x2 + x3 ) = 0.001. Rezultatul exact este y2 (eroare relativ
a egal
a cu 0). Pentru
y1 , eroarea relativ
a este |0 0.001|/0.001 = 1 (adic
a 100%).
P0.2 Rezultatul calculat este y = f l(f l(x1 + x2 ) + x3 ) = f l((x1 + x2 )(1 + 1 ) + x3 ) =
= [(x1 + x2 )(1 + 1 ) + x3 ](1 + 2 ), cu |1 |, |2 | t , si de ordinul unit
atii. Rezult
a c
a:
|y y|

|y|

|x1 + x2 |
1+
|x1 + x2 + x3 |

t .

P0.3 Presupunem c
a datele de intrare sunt afectate de erori, si deci (a + a, b + b)
este utilizat n loc de (a, b). Rezultatul va fi x + x. Din (x + x)(a + a) = (b + b),
neglij
and ax, rezult
a c
a x/x = a/a b/b. Deci, problema este ntotdeauna bine
conditionat
a (erori relative mici ale intr
arii implic
a erori relative mici ale iesirii).
Deoarece x
= f l(b/a) = (b/a)(1 + ) = b(1 + )/a = b/a, cu || t ,
algoritmul este numeric stabil. (b este aproape de b).
P0.4 Problema mosteneste proasta conditionare a sumei (de exemplu, c
and |a1 + a2 |
e mic si |a1 |, |a2 | sunt mari). Algoritmul x = (b1 + b2 )/(a1 + a2 ) este stabil.
P0.5 Urm
atorul num
ar n virgul
a mobil
a este x = 0.100 . . . 01 1 ; deci, x 1 = t+1
(eroarea de reprezentare maxim
a pentru rotunjirea prin trunchiere).
P0.6 r 0.5 t+1 .
P0.7 Varianta 1: (x x) (y y) = [x2 (1 + 1 ) + y 2 (1 + 2 )](1 + ), cu 1 , 2 , de
ordinul erorii de reprezentare u. Atunci eroarea relativ
a
r1 +

1 x2 2 y 2
x2 y 2

poate fi mare atunci c


and x2 si y 2 au valori apropiate.
Varianta 2: (x y) (x y) = [(x y)(1 + 1 )][(x + y)(1 + 2 )](1 + ), cu 1 , 2 ,
de ordinul de m
arime al lui u. Eroarea relativ
a este acum (u2 u)
r2 1 + 2 + 3u.
Varianta 1 reprezint
a un algoritm cu potentiale instabilit
ati numerice; varianta 2 este
un algoritm stabil.


INDICAT
II, RASPUNSURI,
SOLUT
II

502

Cap. 1. Algoritmi elementari de calcul numeric


P1.4 Pentru norma 1, un exemplu este x = e1 , y = e2 . Pentru norma , putem lua
x = e1 + e2 si y = e2 . In norma 2, egalitatea este imposibil
a pentru vectori necoliniari
(suma lungimii a dou
a laturi ale unui triunghi este mai mare dec
at lungimea celei de-a
treia); la fel n normele p 6= 
1, . 


x1
y1
P1.5 Pentru n = 2, x =
,y=
, = x1 y1 +x2 y2 . f l(xi yi ) = xi yi (1+i ),
x2
y2
cu |i | M . Atunci
= [x1 y1 (1 + 1 ) + x2 y2 (1 + 2 )](1 + ) si eroarea absolut
a este
|
| = |x1 y1 1 + x2 y2 2 + O(M )| 2M |y|T |x| + O(M ).
P1.6 Deoarece dorim aTj ak+1 = 0, j 1 : k, iar vectorii a1 , . . . , ak sunt ortogonali,
Pk
atunci 0 = aTj ak+1 = i=1 ik aTj ai + aTj bk+1 = jk aTj aj + aTj bk+1 si deci scalarii jk sunt
unic determinati prin jk = (aTj bk+1 )/(kaj k22 ).
P1.7 Coloanele (sau liniile) nenule ale matricei A sunt vectori coliniari.
P1.8 Se calculeaz
a (AB)C sau A(BC) dup
a cum n1 n2 n3 + n1 n3 n4 mai mic, respectiv
mai mare dec
at n2 n3 n4 + n1 nP
2 n4 .
m
P1.9 kAk2 kAej k2 = ( l=1 a2lj )1/2 |aij | pentru
orice i, j. Pentru a doua parte,
din (1.29) avem kAk2 kAkF si evident kAkF max mn|aij |.
P1.10 Din definitia normei 2 avem
kAk2 = max kAxk2 = max
kxk=1

kxk=1

m
n
X
X

aij xj )

i=1 j=1

!1/2

(7.1)

Din
Cauchy-Buniakowski-Schwarz, tin
and seama c
a kxk2 = 1, avem
Pn inegalitatea P
n
( j=1 aij xj )2 j=1 a2ij . Inlocuind n (7.1), este imediat
a inegalitatea kAk2 kAkF .

Lu
and acum vectorul x cu componentele egale, xi = 1/ n, din (7.1) se obtine

kAk2 (1/ n)kAkF .

Lu
and n (7.1) x = ej , se obtine kAk2 (1/ m)kAk1 .

Pentru un vector x oarecare sunt ndeplinite relatiile kxk2 kxk1 si kxk2 (1/ n)kxk1 .
Atunci

kAxk2
kAxk1

kAk2 = sup
sup
= nkAk1 .
kxk2
(1/ n)kxk1

O matrice A cu toate elementele egale cu 1 are kAkF = kAk2 = mn. O matrice

B cu b1j= 1 si restulelementelor nule are kBk2 = n, kBk1 = 1 si kBk = n, deci


kBk2 = nkBk1 = (1/ n)kBk .
P1.11 Dac
a B IRpr , f
ar
a a afecta generalitatea putem considera B = A(1 : p, 1 : r).
Fie C = A(1 : m, 1 : r). Este evident c
a dac
a Z este multimea vectorilor din IRn de norm
a
unitate av
and ultimele n r componente nule, atunci
kAk = max kAxk max kAzk = kCk.
kxk=1

zZ

Pentru x IRr , not


and y = Cx IRm si y = y(1 : p) = Bx, este evident c
a kyk ky k,
deci kCk kBk.
P1.12 Produsul scalar a doi vectori y, z de norm
a dat
a este maxim c
and vectorii sunt
coliniari (vezi din nou inegalitatea Cauchy-Buniakowski-Schwarz) si atunci |y T z| = kykkzk.
Cu z = Ax si definitia normei 2 rezult
a prima inegalitate, din care se deduc imediat
celelalte.
1
1 Ayk
P1.13 A este inversabil
a, deci ImA = IRn . kA1 k = supx6=0 kAkxkxk = supy6=0 kAkAyk
.
Deci, 1/kA1 k = inf y6=0

kAyk
kyk

= minkxk=1 kAxk.


INDICAT
II, RASPUNSURI,
SOLUT
II

503

3
P1.14 L2 are prima supradiagonal
a nul
Pa,n L primele doua etc.
P1.15 Not
and C = AB, avem cij =
a b . aik si bkj pot fi simultan nenule
k=1 ik kj
dac
a multimile i p : i + p si j q : j + q au cel putin un element comun, adic
a dac
a
i + p > j q sau i p < j + q, ceea ce e echivalent cu |i j| < p + q, deci C este matrice
band
a de l
atime p + q.
P1.16 Indicatie: rezultatul este o matrice nestructurat
a.
P1.17 Ordinea de calcul va fi: Pentru i = n : 1 : 1, Pentru j = 1 : i. Sau: Pentru
j = 1 : n, Pentru i = n : 1 : j.
P1.18 Pentru matrice ortogonale, n general, nu.
P1.19 Se adapteaz
a algoritmul 1.20 la cazul matricelor superior triunghiulare, iar n
instructiunea 1.4, n loc de UTRIS se apeleaz
a algoritmul de rezolvare de sisteme liniare.
P1.20 O simpl
a substitutie este suficient
a. Pentru deducerea expresiei lui N (n) se
presupune N (n) = nlog 7 + n2 ; coeficientii si se calculeaz
a prin identificare cu
(1.38). Mai multe despre rezolvarea recurentelor n [2].
P1.21 A fiind ortogonal diagonalizabil
a, exist
a U ortogonal
a astfel nc
at U T U = A.
Elementele diagonale
ale lui sunt pozitiv definite (vezi si problema 1.30); fie D matricea
diagonal
a cu dii = i siQ = U T DU , matrice simetric
a (si pozitiv definit
a); din motive
evidente, se noteaz
a Q = A.
Demonstratia inegalit
atii kx + ykA kxkA kykA se reduce la |xT Ay| kxkA kykA , care
este inegalitatea Cauchy-Buniakowski-Schwarz, pentru vectorii Qx si Qy.
P1.22 Dac
a A e singular
a, atunci exist
a x 6= 0 astfel nc
at Ax = 0 si deci xT Ax = 0,
deci A nu e pozitiv definit
a; deci A e inversabil
a. In plus, ImA = IRn , deci orice y IRn ,
exist
a x IRn astfel nc
at y = Ax; atunci xT Ax = y T A1 y > 0, deci A1 > 0.
P1.23 b. Fie A = [a1 a2 . . . an ] ortogonal
a si superior triunghiular
a. Atunci, pentru
prima coloan
a avem a1 = e1 si 0 = aT1 aj = a1j , pentru j > 1, etc. (Altfel: AT este
inferior triunghiular
a, iar A1 este superior triunghiular
a; cum ele sunt egale, AT este
diagonal
a, deci si A.)
c. Fie
superior triunghiular
a. Atunci, din AAT = AT A, pentru elementul (1, 1)
PA
n
2
2
obtinem
a = a11 , deci toate elementele extradiagonale din prima linie sunt nule
j=1 1j
etc.
P1.24 b. Adapt
am algoritmul LTRIS, de exemplu versiunea pe linii. Singura modificare e n instructiunea 2.1.

1. x b
2. Pentru i = 1 : n
1. Pentru j = max(1, i p) : i 1
1. xi xi lij xj
2. xi xi /lii
P1.25 Pentru L inferior bidiagonal
a, inversa X este inferior triunghiular
a.
1. Pentru j = 1 : n
1. xjj 1/ljj
2. Pentru i = j + 1 : n
1. xij li,i1 xi1,j /lii
P1.26 Varianta cu DOT este imediat
a din algoritmul 1.16 LINV.
Pentru varianta cu Saxpy, e necesar
a o nou
a form
a a algoritmului, n care, o dat
a
calculat
a o necunoscut
a xk , se actualizeaz
a toate sumele (1.44) pentru i > k.
1. Pentru k = 1 : n
1. xk bk /lkk


INDICAT
II, RASPUNSURI,
SOLUT
II

504
2. Dac
a k < n atunci
1. Pentru i = k + 1 : n
1. bi bi lik xk

Bucla Pentru i se poate nlocui cu operatia


b(k + 1 : n) Saxpy(xk , L(k + 1 : n, k), b(k + 1, n)).
P1.27 Not
am cu L(k) elementul aflat la adresa k n vectorul L n care se memoreaz
a
compact matricea triunghiular
a. (Consider
am L(1) primul element.)
1. x b
2. k 1
3. Pentru i = 1 : n
1. Pentru j = 1 : i 1
1. xi xi L(k)xj
2. k k + 1
2. xi xi /L(k)
3. k k + 1
P1.28 b. Presupun
and v = u, 6= 0, fie C
I valoarea proprie pentru care
A(u + iv) = (u + iv). Evident, Au = u, deci IR, deci = 0. Asadar v nu este
coliniar cu u.
Not
and = + i, cu , IR, egalitatea evident
a
A[u v] = [u v]

arat
a c
a Au si Av sunt combinatii liniare de u si v.
P1.29 Din det(I A) = 0 si relatiile lui Vi`ete.
P1.30 Din Ax = x rezult
a xT Ax = kxk2 , deci > 0.

Cap. 2. Rezolvarea sistemelor de ecuatii liniare


P2.1 Se folosesc matrice inferior triunghiulare elementare modificate, tot de forma
Mk = I mk eTk , dar cu mk = [1k . . . k1,k 0 . . . 0]T .
P2.2 Pentru GPP, se folosesc functiile xSWAP pentru interschimbarea a dou
a linii
(bucla 1.3), xSCAL pentru calculul multiplicatorilor (bucla 1.4) si xAXPY pentru actualiz
arile
din bucla 1.5.1.
P2.3 Este evident c
a, la primul pas al elimin
arii gaussiene, pivotul este a11 si
|i1 | = |ai1 |/|a11 | < 1. Not
and B = M1 A matricea transformat
a dup
a primul pas al
elimin
arii, s
a demonstr
am c
a submatricea B(2 : n, 2 : n) este diagonal dominant
a pe
coloane (apoi, prin inductie, problema este rezolvat
a). T
in
and seama c
a bij = aij i1 a1j
(pentru i, j 2), avem

|bij |

i=2,i6=j

|aij |+|i1 ||a1j | < |ajj ||a1j |+

i=2,i6=j

|a11 ||aj1 |
|a1j | < |ajj ||j1 ||a1j | < |bjj |.
|a11 |

P2.4 a. Evident, ik = xi /xk , pentru i 6= k.


b. Algoritmul este similar cu cel de eliminare gaussian
a, numai c
a operatiile se
desf
asoar
a permanent pe toate liniile.


INDICAT
II, RASPUNSURI,
SOLUT
II

505

1. Pentru k = 1 : n 1
1. Pentru i = 1 : n, i 6= k
1. aik ik = aik /akk
2. Pentru j = k + 1 : n
1. Pentru i = 1 : n, i 6= k
1. aij aij aik akj
Nop n3 , cu 50% mai mult dec
at n eliminarea gaussian
a, motiv pentru care algoritmul
Gauss-Jordan nu este utilizat n practic
a.
c. Pivotul se caut
a la fel ca n eliminarea gaussian
a, adic
a numai pe liniile k : n.
P2.5 Prezent
am o demonstratie doar pentru cazul A nesingular
a. Demonstratia pentru
A singular
a r
am
ane ca exercitiu (netrivial).
Presupunem c
a A are dou
a factoriz
ari LDU diferite:
A = LDU = L D U .

(7.2)
1

L, L , U , U sunt matrice triunghiulare unitate, deci nesingulare; mai mult, L , (L )1 ,


U 1 , (U )1 au aceeasi structur
a. A este nesingular
a, deci astfel sunt si D si D , iar
1
1
matricele D si (D ) sunt diagonale. Atunci, din (7.2) rezult
a
(L )1 L = D U U 1 D1 ,
n care termenul din st
anga este o matrice inferior triunghiular
a unitate, iar cel din dreapta
o matrice superior triunghiular
a. Atunci (L )1 L = In , adic
a L = L . Rezult
a acum c
a
U U 1 = (D )1 D.
Termenul st
ang este o matrice superior triunghiular
a unitate, iar cel drept o matrice diagonal
a. Aceasta este posibil doar dac
a ambii termeni sunt egali cu matricea unitate In .
In concluzie U = U , D = D .
P2.6 Presupunem c
a exist
a k < n, cel mai mic astfel nc
at A[k] este singular
a. Deoarece
[k]
[k] [k] [k]
[k]
[k]
A = L D U , iar L si U sunt nesingulare ca submatrice lider principale ale unor
matrice triunghiulare unitate, rezult
a c
a D[k] este singular
a si anume c
a dkk = 0 (deoarece
[k1]

D
este nesingular
a). In acest caz, coloana k a matricei LD este nul
a, deci elementele
lik , i > k, pot fi arbitrare. Analog, linia k a matricei DU este nul
a, deci elementele ukj ,
j > k, pot fi arbitrare. Cum k < n, rezult
a c
a factorizarea LDU nu este unic
a, ceea ce
contrazice ipoteza.
P2.7 In GPP multiplicatorii sunt subunitari. Permut
arile de linii las
a multiplicatorii
n triunghiul inferior.
P2.8 GPC se modific
a la fel ca GPP. |ukk | |ukj |, j > k, deoarece, la pasul k, pivotul
este mai mare (n modul) dec
at elementele aflate la dreapta sa, iar eliminarea gaussian
a
propriu-zis
a nu modific
a linia k.
P2.9 Se modific
a doar valoarea maxim
a a indicilor de coloan
a.
1. Pentru k = 1 : r
1. Se determin
a ik k : n a.. |aik k | = maxi=k:n |aik |.
2. p(k) ik
3. A(ik , 1 : r) A(k, 1 : r)
4. Pentru i = k + 1 : n
1. aik aik /akk
5. Pentru i = k + 1 : n
1. Pentru j = k + 1 : r
1. aij aij aik akj


INDICAT
II, RASPUNSURI,
SOLUT
II

506

P2.10 In algoritmul CROUTbl se execut


a o factorizare Crout cu pivotare a blocului
curent A(s : n, s : f ), la nivel de element. Algoritmul va avea structura urm
atoare:
1. Pentru k = 1 : m
1. s (k 1)r + 1
2. f kr
3. A(s : n, s : f ) A(s : n, s : f ) L(s : n, 1 : s1)U (1 : s1, s : f )
4. Se calculeaz
a factorizarea LU Crout cu pivotare
P A(s : n, s : f ) = L(s : n, s : f ) U (s : f, s : f )
5. Se aplic
a permutarea P blocului A(s : n, f + 1 : n)
6. Se rezolv
a sistemul superior triunghiular Z U (s : f, s : f ) = A(f +1 : n, s : f )
7. A(s : f, f +1 : n) A(s : f, f +1 : n) L(s : f, 1 : s1) U (1 : s1, f +1 : n)
8. Se rezolv
a sistemul inferior triunghiular L(s : f, s : f ) Z = A(s : f, f +1 : n)
9. U (s : f, f + 1 : n) Z (o bloc linie din U )
P2.11 De exemplu, n algoritmul 2.7, se ia m = n/r, iar f = min(kr, n).
P2.12 Transform
arile se aplic
a simultan n A si b, pe linii. Iat
a algoritmul f
ar
a pivotare:
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : n
1. = aik /akk
2. Pentru j = k + 1 : n
1. aij aij akj
3. bi bi bk
2. x = UTRIS(A, b)
P2.13 a. Este evident c
a multiplicatorii ij vor fi nuli pentru i > j + 1. Eliminarea
gaussian
a va avea forma:
1. Pentru k = 1 : n 1
1. hk+1,k hk+1,k /hkk
2. Pentru j = k + 1 : n
1. hk+1,j hk+1,j hk+1,k hkj
Vectorul b va fi modificat n concordant
a cu aceste valori particulare ale multiplicatorilor:
1. Pentru k = 1 : n 1
1. bk+1 bk+1 hk+1,k bk
Apoi trebuie rezolvat un sistem superior triunghiular.
b. Indicatie: pivotarea partial
a nu afecteaz
a structura superior Hessenberg. c. Se
observ
a c
a L este inferior bidiagonal
a.
P2.14 a. Se rezolv
a Hy = b ca n problema anterioar
a, apoi Rx = y.
P2.15 a. Dac
a b = c + id, unde c, d Rn , sistemul poate fi scris A[y z] = [c d], cu
y, z Rn si x = y + iz. Acesta constituie un caz particular al punctului b, pentru m = 2.
b. ecuatia matriceal
a AX = B const
a n m sisteme liniare: Axj = bj , pentru j = 1 : m
(xj si bj sunt coloanele j ale matricelor X, respectiv B). Utilizarea algoritmului:
1. Pentru j = 1 : m
1. Se rezolv
a Axj = bj utiliz
and S GPP
nu este o idee bun
a deoarece num
arul de operatii este 2mn3 /3. Este mai eficient a utiliza
GPP o singur
a dat
a, pentru a triangulariza A, precum mai jos:


INDICAT
II, RASPUNSURI,
SOLUT
II

507

1. [M, U, p] = GPP(A)
2. Pentru j = 1 : m
1. Pentru s = 1 : n 1
1. bsj bp(s),j
1. Pentru i = s + 1 : n
1. bij bij is bsj
2. xj = UTRIS(U, bj )
Num
arul de operatii este 2n3 /3 + O(mn2 ).
P2.16 In cazul utiliz
arii GPP, sistemul initial AT y = c este echivalent cu sistemul
T
inferior triunghiular RT z = c, unde z = Mn1
Pn1 . . . M1T P1 y. Dup
a rezolvarea acestuia,
T
T
se calculeaz
a y = P1 M1 . . . Pn1 Mn1 z.
P2.17 Din nou, nu trebuie nici calculat Ak (2kn3 flopi), nici utilizat algoritmul bazat
pe relatia A(Ak1 x) = b, aplicat recursiv:
1. Pentru j = 1 : k
1. rezolv
a Ax = b utiliz
and S GPP
2. b x
care necesit
a 2kn3 /3 flopi. Din nou, GPP poate fi utilizat o singur
a dat
a pentru rezolvarea
tuturor sistemelor din instructiunea 1.1 a schemei de mai sus. Se obtine:
1. [M, U, p] = GPP(A)
2. Pentru j = 1 : k
1. Pentru s = 1 : n 1
1. bs bp(s)
1. Pentru i = s + 1 : n
1. bi bi is bs
2. b = UTRIS(U, b)
3. x b
Num
arul de operatii este de doar 2n3 /3 + O(kn2 ).
P2.18 Varianta 1: se calculeaz
a D = AB, apoi se aplic
a algoritmul precedent; cost
suplimentar fat
a de acesta: 2n3 .
Varianta 2: se aplic
a GPP ambelor matrice A si B, apoi se adapteaz
a algoritmul
precedent, dubl
and instructiunea 2. Cost suplimentar: 4n3 /3 + 2kn2 . Aceast
a variant
a
e recomandabil
a, n general.
P2.19 (a) implic
a 2n3 /3 operatii complexe, adic
a aproximativ 8n3 /3 operatii reale.
3
(b) implic
a 2(2n) /3 operatii.
P2.20 Not
and X = A1 si xj coloana j a lui X, trebuie rezolvat doar sistemul
LU xj = ej . Sistemul Ly = ej se rezolv
a adapt
and LTRIS (ca n LINV) iar sistemul
U xj = y se rezolv
a cu UTRIS, oprind calculele atunci c
and xij a fost obtinut.
P2.22 a. Prin calcul direct, avem A+ A1
+ = I.
= A1 B, C
= CA1 (cu 4n2 r flopi). Se calculeaz
b. Se calculeaz
a B
a D+ cu
2
2
2n r + 2nr flopi. Se rezolv
a D+ X = C ca n problema 2.15, cu 2r 3 /3 + 2nr 2 flopi. In
1
sf
arsit, A1
BX, cu un cost de nc
a 2n2 r flopi. Presupun
and r n, costul total
+ = A
este de O(rn2 ). In cazul 1 , costul se reduce la jum
atate.
P2.23 a. Presupunem nt
ai c
a u1 6= 0. Fie M = I meT1 o matrice inferior triunghiular
a elementar
a astfel nc
at M u = u1 e1 ; evident, mi = ui /u1 , i = 2 : n. Consider
am
matricea B = M AM 1 = I + M uv T M 1 = I + u1 e1 wT ; deoarece M 1 = I + meT1 , avem
wT = v T M 1 = v T + (v T m)eT1 . In concluzie B este superior triunghiular
a, cu bii = 1,
pentru i 2 si deci detA = detB = b11 = 1 + uT v.


INDICAT
II, RASPUNSURI,
SOLUT
II

508

Dac
a u1 = 0 sau, n general, pentru o mai bun
a stabilitate numeric
a, se aplic
a nt
ai
permutarea u P u care aduce pe prima pozitie elementul de modul maxim din u. Deci,
n loc de M se utilizeaz
a transformarea stabilizat
a MP .
b. Sistemul Ax = b se transform
a n B(M x) = M b. Se rezolv
a By = M b, apoi
x = M 1 y. Dac
a se tine seama de forma special
a a lui B, care are doar prima linie si
diagonala nenule, num
arul de operatii este O(n).
P2.24 Multiplicatorii au toti valoarea 1 (elementele diagonale nu se modific
a, cu
(k)
(k1)
exceptia celui din dreapta jos) iar n ultima coloan
a avem ain = 2ain , pentru i k.
(n)
Se obtine evident ann = 2n1 .
P2.25 Avem
cond(A)

k|A1 | |A| |x|k k|A| |x|k


kA1 k kAk .
k|A| |x|k
k|x|k

Am folosit definitia normei si egalitatea evident


a k|A|k = kAk .
P2.26 Elementele diagonale ale matricei D1 sunt di = 1/ maxj=1:n |aij |. Astfel,
liniile matricei B = D1 A au norma infinit egal
a cu 1, iar coloanele norm
a infinit inferioar
a lui 1 (evident, |bij | 1). Elementele diagonale ale matricei D2 se iau acum
dj = 1/ maxi=1:n |bij |. Not
and C = BD2 , avem cij 1 (ca si pentru B), liniile lui C
p
astreaz
a norma infinit unitate, iar coloanele au aceeasi proprietate.
Aleg
and di si dj cele mai mici puteri ale lui superioare valorilor 1/ maxj=1:n |aij |,
respectiv 1/ maxi=1:n |bij |, obtinem evident normele infinit ale liniilor si coloanelor lui C
n intervalul [1/, 1].
P2.27 a. S
a presupunem c
a:
0
L

U
=
B=L

A
XU

=
L

L
X

Atunci

=
U

U
0

LY
XY + A

Y
U

Deci LY = 0 si, deoarece A nesingular


a implic
a L, U nesingulare, Y = 0; XU = R, deci
X = RU 1 , si X este superior triunghiular
a.
b.


 
 
A 0
x1
d1
Ax1 = d1
=

R A
x2
d2
Rx1 + Ax2 = d2

Se rezolv
a nt
ai Ly = d1 , U x1 = y si se obtine x1 (n 2n2 flopi). Se calculeaz
a apoi
f = d2 Rx1 (n2 flops); se rezolv
a Ly = f , U x2 = y si se obtine x2 (n 2n2 flopi). Totalul
este de doar 5n2 flopi. Schema de calcul prezentat
a poate fi aplicat
a pentru rezolvarea
oric
arui sistem bloc inferior triunghiular.
P2.28 a. Se utilizeaz
a eliminarea gaussian
a; aij = 0, pentru i > j + n; multiplicatorii
ij vor respecta aceeasi relatie. b. Se utilizeaz
a eliminarea gaussian
a cu pivotare partial
a,
care nu va afecta structura matricei A.
P2.29 a.
1. Pentru s = 1 : n 1
1. as+1,s as+1,s /ass
2. as+1,s+1 as+1,s+1, as+1,s as,s+1
P2.30 Se aplic
a o eliminare gaussian
a pe dreapta (adic
a pe linii) pentru rezolvarea
sistemului F E = C. Not
am p = n s, deci F, C IRp2 .


INDICAT
II, RASPUNSURI,
SOLUT
II

509

% permutarea coloanelor lui E si C


1. Dac
a |e12 | > |e11 | atunci
1. e11 e12 , e21 e22
2. Pentru i = 1 : p, ci1 ci2
% eliminare gaussian
a la dreapta
2. = e12 /e11
3. e22 e22 e21
4. Pentru i = 1 : p
1. ci2 ci2 ci1
% rezolvare sistem inferior triunghiular, la dreapta
5. Pentru i = 1 : p
1. fi2 c12 /e22
2. fi1 (ci1 fi2 e21 )/e11
P2.31 Not
and tot cu aij elementele matricei P1 AP1T , prima relatie se demonstreaz
a
tin
and seama c
aa
ij = aij (ai1 /a11 )aj1 si, n plus, |ai1 | 0 si |a11 | = 1 0 . Asadar
max |
aij | |aij | +
i,j

1
1
|aj1 | (1 + ) max |aij |.

i,j

A doua relatie se demonstreaz


a n acelasi stil, folosind formulele adecvate pentru a
ij .
P2.32 Detaliem numai cazul s = 2. Pivotul se g
aseste n pozitia (ik , jk ) si trebuie
adus, la pasul curent k, n pozitia (k + 1, k). Pentru aceasta sunt necesare dou
a permut
ari
de linii si de coloane (orice permutare de linii este nsotit
a de una de coloane, si reciproc,
pentru a p
astra simetria). Int
ai se permut
a liniile si coloanele k + 1 si ik , cu operatiile:
A(k + 1, k + 1) A(ik , ik )
A(k + 1, 1 : k) A(ik , 1 : k)
A(k + 2 : ik 1, k + 1) A(ik , k + 2 : ik 1)
A(ik + 1 : n, k + 1) A(ik + 1 : n, ik ).
(S
a not
am c
a pivotul a ajuns n pozitia (jk , k + 1).) Apoi se permut
a liniile si coloanele k
si jk , cu operatiile
A(k, k) A(jk , jk )
A(k, 1 : k 1) A(jk , 1 : k 1)
A(k + 1 : jk 1, k) A(jk , k + 1 : jk 1)
A(jk + 1 : n, k) A(jk + 1 : n, jk ).
P2.33 Algoritmul Cholesky, varianta cu Saxpy, este urm
atorul (L se scrie peste triunghiul inferior al lui A)
1. Pentru k = 1 : n

1. akk akk
2. Pentru i = k + 1 : n
1. aik aik /akk
3. Pentru j = k + 1 : n
1. Pentru i = j : n
1. aij aij aik ajk
Evident, bucla 1.3.1 se poate nlocui cu un apel la Saxpy.
P2.34 Se respect
a structura algoritmului la nivel de element, prelu
and ideile din algoritmul CROUTbl.


INDICAT
II, RASPUNSURI,
SOLUT
II

510

1. Pentru k = 1 : m
1. s (k 1)r + 1
2. f kr
3. A(s : f, s : f ) A(s : f, s : f ) L(s : f, 1 : s 1) LT (1 : s 1, s : f )
4. Utiliz
and CHOL, calculeaz
a factorizarea Cholesky
A(s : f, s : f ) = L(s : f, s : f ) LT (s : f, s : f )
(blocul L(s : f, s : f ) se memoreaz
a n triunghiul inferior al lui A(s : f, s : f ))
5. A(f +1 : n, s : f ) A(f +1 : n, s : f ) L(f +1 : n, 1 : s1) LT (1 : s1, s : f )
6. Rezolv
a sistemul superior triunghiular ZLT (s : f, s : f ) = L(f + 1 : n, s : f )
7. L(f + 1 : n, s : f ) Z
In instructiunea 1.3 se utilizeaz
a SYRK, n 1.5 GEMM iar n 1.6 TRSM. Transpunerea nu se
efectueaz
a explicit, ci se paseaz
a rutinelor BLAS.
P2.35 T = AAT nu este deja factorizarea Cholesky deoarece elementele diagonale ale
lui A nu sunt neap
arat pozitive. Fie T = LLT factorizarea Cholesky. Este natural s
a
ncerc
am s
a demonstr
am c
a L este inferior bidiagonal
a. Pentru orice k 1 : n 1:
2
2
tkk = a2k,k1 + a2kk = lk,k1
+ lkk
tk+1,k = ak+1,k akk = lk+1,k lkk .

De asemenea, este natural s


a ncerc
am s
a demonstr
am c
a |lij | = |aij |; pentru prima relatie
de mai sus, semnele nu conteaz
a; pentru a doua, dac
a akk este negativ, lu
am lkk = akk
si lk+1,k = ak+1,k . Algoritmul va fi:
1. Pentru k = 1 : n
1. lkk |akk |
2. Dac
a k < n atunci
1. Dac
a akk < 0 atunci lk+1,k ak+1,k
altfel lk+1,k ak+1,k
P2.36 Algoritmul CHOL pentru matrice band
a de l
atime r este
1. Pentru k = 1 : n
Pk1
2
1. akk j=max(1,kr) lkj
2. Dac
a 0 atunci
1. Afiseaz
a(A nu este pozitiv definit
a)
2. Stop

3. akk lkk =
4. Pentru i = k + 1: min(k + r, n)
1. aik lik = aik

Pk1

l l
j=max(1,ir) ij kj

/lkk

P2.37 Se procedeaz
a analog cu algoritmul CHOL. Calculele decurg n ordine invers
a,
i.e. cu k = n : 1 : 1.
P2.38 Calcul
and pe loc n A, un algoritm direct inspirat de CHOL este
1. Pentru k = 1 : n
Pk1 2
1. akk dk = akk j=1 lkj
dj
2. Pentru i = k + 1: n
1. aik lik = aik

Pk1

l l d
j=1 ij kj j

/dk


INDICAT
II, RASPUNSURI,
SOLUT
II

511

Num
arul de operatii este ns
a sensibil mai mare dec
at pentru CHOL. Pentru a-l
reduce, se elimin
a nmultirea cu dj din 1.2.1 astfel
1. Pentru k = 1 : n
1. Pentru j = 1 : k 1
1. akj lkj = akj /dj
Pk1 2
2. akk dk = akk j=1 lkj
dj
3. Pentru i = k + 1 : n
Pk1
1. aik aik j=1 lij lkj

Cap. 3. Problema celor mai mici p


atrate
P3.3 Scriem ca de obicei U x = x u, unde = uT x/. Prin urmare trebuie s
a
avem x u = y, deci putem lua u = x y, unde modulul lui e fixat prin conditia
kU xk = kxk, iar semnul se alege n mod adecvat.
P3.4 a. Amintim c
a U este o transformare involutiv
a, i.e. U 2 = I, prin urmare
conditia impus
a este echivalent
a cu U x = e1 , unde = kxk =
6 0.
b. U este o transformare ortogonal
a, deci coloanele matricei U sunt vectori normati si
ortogonali doi c
ate doi n IRm .
P3.5 a. Cu notatiile din sectiunea 2.1, considerati transformarea elementar
a stabilizat
a T = M1 P1 astfel nc
at (T x)i = 0, i = 2 : m. Ar
atati c
a vectorii yj = T T ej ,
j = 2 : m, satisfac conditia cerut
a. Ce se obtine dac
a n locul lui T se consider
a un
reflector ?
P3.6 Evident, functia 2 () = ky xk2 este un polinom de gradul 2 n ,
2 () = 2 kxk2 2y T x + kyk2 ,
deci problema este elementar
a. Interpretarea geometric
a devine transparent
a dac
a presupunem c
a kxk = 1.
P3.7 a. detU = 1.
b. Scriem U x = x si obtinem ( 1)x = 2u(uT x), unde x 6= 0. Prin urmare
avem fie (i) = 1 si uT x = 0, fie (ii) x = u si = 1. In primul caz obtinem m 1
vectori proprii ortogonali (vezi problemele 3.4b sau 3.5b), deci = 1 este valoare proprie
de multiplicitate (algebric
a si geometric
a) m 1. Prin urmare = 1 este valoare proprie
simpl
a. Descompunerea spectral
a U = V V T se scrie cu usurint
a.
c. Utiliz
am relatia U 2 = Im .


0 1
P3.8 De exemplu, n cazul =
putem lua u = [1 1]T , = 1/2.
1 0
P3.9 a. Dac
a S = RT R este factorizarea Cholesky a lui S, atunci relatia U T SU = S
este echivalent
a cu V T V = Im , unde V = RU R1 .
atati c
a U este
b. Considerati matricea U = Im 2uuT S, unde kuk2S = 1, si ar
S-ortogonal
a si S-simetric
a. Algoritmii de tip 3.1 si 3.2 se scriu n mod evident.
P3.10 b. Conditia este kxkJ > 0, deci nu orice vector nenul din IRm poate fi adus
la forma (3.200) utiliz
and J-reflectori. (Aceasta este o deosebire esential
a fat
a de cazul
euclidian uzual.) Vectorii cu kxkJ < 0 pot fi adusi la forma U x = ep+1 , iar vectorii
izotropi (care satisfac (3.198)) r
am
an izotropi. In plus, transformarea este r
au conditionat
a
n vecin
atatea conului (3.198).
c. Partition
and matricele S si R conform cu J, putem scrie

S11
T
S12

S12
S22

T
R11
T
R12

0
T
R22



Ip
0

0
Iq



R11
0

R12
R22

(7.3)


INDICAT
II, RASPUNSURI,
SOLUT
II

512
de unde pe blocuri rezult
a

T
S11 = R11
R11 ,
T
S12 = R11
R12 ,
T
T
S22 = R12
R12 R22
R22 .

Din prima relatie, R11 poate fi determinat aplic


and algoritmul de factorizare Cholesky
dac
a si numai dac
a
S11 > 0.
(7.4)
T
In acest caz, din a doua relatie rezult
a R12 = R11
S12 , iar a treia devine
T
T
T
S22 S12
(R11
R11 )1 S12 = R22
R22 .

Prin urmare R22 poate fi determinat (aplic


and din nou algoritmul de factorizare Cholesky)
dac
a si numai dac
a
not
T
1
S22 = S22 S12
S11
S12 < 0.
(7.5)
(Prin definitie, matricea S22 constituie complementul Schur al lui S11 n S.)
In al doilea caz trebuie s
a avem

S11
T
S12

S12
S22

LT11
0

LT21
LT22



Ip
0

0
Iq



L11
L21

0
L22

(7.6)

de unde, proced
and analog obtinem conditiile
S22 < 0,

(7.7)

not
1 T
S12 > 0.
S11 = S11 S12 S22

(7.8)

In particular, dac
a au loc conditiile de punct sa (7.4) si (7.7), atunci si celelalte dou
a
conditii, (7.5) si (7.8) sunt satisf
acute, deci ambele factoriz
ari (7.3) si (7.6) exist
a si pot
fi calculate aplic
and algoritmul de factorizare Cholesky blocurilor S11 , S22 si respectiv
S22 , S11 .
d. Ar
atati nt
ai c
a A si B trebuie s
a fie inversabile.
P3.12 Rotatia Pki modific
a numai elementele de indici k si i ale lui x.
P3.14 a. Tin
and seama de observatia 3.2, putem utiliza secventele P = P1m . . . P13 P12
sau P = P12 P23 . . . Pm1,m .
b. Int
ai anul
am componentele 2, 4, 6, . . . , utiliz
and secventa S (1) = P12 P34 P56 . . .; apoi
anul
am componentele 3, 7, 11, . . . , utiliz
and secventa S (2) = P13 P57 P9,11 . . .; mai departe
se aplic
a S (3) = P15 P9,13 . . . etc. Transformarea c
autat
a contine m 1 rotatii, grupate
n secvente de rotatii disjuncte, i.e. P = S (p) . . . S (2) S (1) , unde p log 2 m. Observati c
a
rotatiile ce compun o secvent
a pot fi aplicate n orice ordine (i.e. comut
a), dar c
a ordinea
secventelor este predeterminat
a.
P3.16 a. J = diag(1, 1). Prin urmare kP xk2J = kxk2J = x21 x22 .
b. Ambele probleme sunt r
au conditionate n vecin
atatea conului
x1 = x2 .
P3.17 Pentru orice transformare unitar
a U avem kU xk = kxk = 7.
a. Exist
a dou
a posibilit
ati. Dac
a Q = QH este un reflector hermitic atunci obtinem

x1
1 + i

7,
= |x | kxk =
1 r
2
r
2
2
+
i
2

u1 = 1 +
, u2 =
, = u1 .
7

1+i


INDICAT
II, RASPUNSURI,
SOLUT
II

513

Dac
a Q este un reflector complex, atunci

= Re(x1 )kxk = 7,
u1 = 1, u2 =

2+i
1+ 7+i

, =
.
1+ 7+i
7

P3.19 Fie Q IRnn , ortogonal


a. Triangulariz
and ortogonal matricea Q, obtinem
Un1 . . . U2 U1 Q = R, unde R este superior triunghiular
a si ortogonal
a, ca produs de
matrice ortogonale. Asadar R este diagonal
a; mai mult, normele coloanelor matricei Q se
conserv
a prin nmultirea cu reflectorii elementari, deci (aleg
and potrivit semnul) rii = 1,
adic
a R = I. Rezult
a Q = U1 U2 . . . Un1 .
P3.20 a. Se utilizeaz
a secventa de rotatii QT = Pn,n+1 . . . P2n P1n .
b. uk = [0 . . . 0 ukk uk+1,k 0 . . . 0 un+1,k . . . umk ]T (pentru A superior Hessenberg).
c. uk = [0 . . . 0 ukk 0 . . . 0 un+1,k . . . un+k,k 0 . . . 0]T .
P3.21 Pentru a nu altera structura de zerouri, se anuleaz
a elementele aik , i = n+1 : m,
din blocul C, ncep
and cu ultima coloan
a. Matricea R+ rezult
a inferior triunghiular
a.
P3.22 In cazul m > n, rotatiile necesare pentru anularea elementelor subdiagonale
pot fi grupate n cel mult m + n 2 secvente de rotatii disjuncte; de exemplu, n cazul
m = 6, n = 5 avem m + n 2 = 9, iar gruparea se face astfel

1
2
3
4
5

3
4
5
6

5
6
7

7
8

(Elementele marcate cu aceeasi cifr


a sunt anulate de rotatii disjuncte aprtin
and aceleaisi
secvente.)
P3.23 a. QT = P12 P23 . . . Pn1,n .
b. Rotatiile pot fi memorate printr-un singur num
ar z, vezi procedura ROTG. Totusi,
pozitiile (i, i + 2), i = 1 : n 2, nu r
am
an nule, la fel ca n cazul elimin
arii gaussiene cu
pivotare partial
a.
P3.24 Dac
a b = e1 , atunci problema e banal
a, R+ = R +e1 cT . De aici provine ideea
de a anula ultimele n 1 componente ale lui b f
ar
a a altera prea mult structura lui R. Se
vede usor c
a secventa de rotatii (numai n aceast
a ordine !) P = P12 P23 . . . Pn1,n poate realiza acest obiectiv.
Matricea P R este evident superior Hessenberg, deci
not
H = P (R + bcT ) = P R + e1 cT are aceeasi structur
a. Mai departe se procedeaz
a ca
n problema 3.23, i.e. R+ = QT H.
Pp
P3.25 Cel mai simplu, partition
am B, C pe coloane si scriem BC T =
b cT .
j=1 j j
Problema se reduce astfel la cea anterioar
a.
P3.26 Scriem


RA not T
P+ = [AT RT C T ]
= A+ A+ ,
C
deci QT A+ = R+ .
P3.27 A+ rezult
a superior Hessenberg, vezi problema 3.23.
P3.28 In cazul p < n, reflectorii Qj , j = p + 1 : n, nu sunt activi. In cazul p > n, nt
ai
se acumuleaz
a coloanele j = n + 1 : p, apoi se aplic
a procedura GQR.
P3.30 A doua, n care Q se umple treptat.
P3.31 a. Constructia lui Y ncepe cu ultima coloan
a.


INDICAT
II, RASPUNSURI,
SOLUT
II

514


S si
b. S+ =
, unde si = W T ui , i = 1/i . Forma din text este preferabil
a,
0 i
deoarece aplicarea transform
arii necesit
a numai nmultiri de matrice.
P3.38 Se partitioneaz
a B n blocuri si se utilizeaz
a informatia din triunghiul strict
inferior al lui A pentru a se forma bloc-reflectorii necesari.
P3.40 A = Q R .
P3.41 G = RT R , deci = y T y, cu y = (R )T c.
P3.44 Procesul de ortogonalizare ncepe cu ultima coloan
a an = qn lnn .
P3.46 a. Not
and c = RT d, putem scrie
not

not

d+ = RT d + C T y = [RT

R
= AT+ A+ ,
C
 
d
CT ]
= A + b+ ,
y

G+ = G + C T C = [RT C T ]

deci problema se reduce la rezolvarea n sensul CMMP a sistemului A+ x = b+ , unde A+


este matricea din problema 3.20.
b. Se aduce A+ la forma superior triunghiular
a QT P A+ = R+ si se aplic
a transform
arile membrului drept.
P3.47 Se procedeaz
a ca n sectiunea 3.5.1.
P3.48 Matricea B = AT+ are structura din problema 3.20. Prin urmare, dac
a V B = R,
unde V = Vm . . . V2 V1 , atunci evident A+ Z = L, unde Z = V T si L = RT . Reflectorii
reali Vk = In k kT /k sunt matrice simetrice. In cazul complex, considerat n text, am
notat Vk = ZkH , unde Zk = I k k kH si k = 1/k
P3.49 a. O matrice epic
a A este inversabil
a la dreapta, i.e. exist
a Ad astfel nc
at
d
+
+
T
T 1
AA = Im (de exemplu se poate lua A = A , unde A = A (AA ) ). Dac
a (si numai
dac
a) m = n, atunci Ad = A1 este unic
a. Dac
a m < n, atunci multimea inverselor la
dreapta este Ad = A+ +Z B, unde Z este o baz
a (nu neap
arat ortogonal
a) a subspatiului
N = KerA, iar B este o matrice oarecare.
b. P2 = Im AA+ este proiectorul ortogonal pe S = KerAT , deci are structura
d

P2 = Q

0
0

0
Imn

QT ,

Q = [Q Q ],

unde QT A = R. De asemenea, norma Frobenius este ortogonal invariant


a.
P3.50 a. Dac
a A este monic
a si QT A = R, atunci AT este epic
a si AT Q = RT . Prin
urmare, not
and y = Qv, sistemul AT y = c devine RT v = c. Mai departe se procedeaz
a ca
n sectiunea 3.6.3.
P3.51 In primul caz, dac
a A este monic
a cu m > n, algoritmul are n etape. Pentru a
anula elementele subdiagonale, acum se utilizeaz
a transform
arile elementare (stabilizate)
Mk , respectiv Tk = Mk Pk (vezi sectiunea 2.1). Not
and
MA = R =

R
0

M 1 = S = [S S ],

putem scrie A = S R , unde R este inversabil


a, deci S este o baz
a (neortogonal
a) a
subspatiului S = ImA, iar S este o completare (oarecare) a lui S p
an
a la o baza a lui
d
, conditia
IRm . Consider
and sistemul supradeterminat Ax = b si not
and M b = d =
d

de compatibilitate este d = 0.


INDICAT
II, RASPUNSURI,
SOLUT
II

515

In al doilea caz, dac


a A este epic
a cu m < n obtinem
AN = L = [L 0],

N = [N N ],

unde N este o baz


a (neortogonal
a) a subspatiului
 N = KerA. Considerand sistemul
u
subdeterminat Ax = b si not
and x = N u = N
, obtinem sistemul echivalent
u

19
L u = b. Prin urmare, o solutie a sistemului Ax = b este
xB = N

(L )1 b
0

iar multimea tuturor solutiilor este x = xB + N u , unde u IRnm este un vector


arbitrar.
Pe scurt, analiza elementar
a a sistemelor liniare Ax = b cu m 6= n poate fi f
acut
a
utiliz
and metoda elimin
a
rii gaussiene.

QH
0
P3.52 a. Fie S =
. Calculati SHS H si g
asiti apoi permutarea
0
(R )H
potrivit
a.


P2 (A+ )H
b. Procedati direct, ar
at
and c
a H
= Im+n , sau tineti seama de
A+ G1
semnificatia lui H n problema CMMP din sectiunea 3.5.
P3.54 a. (AT SA + T )x = AT Sb. T
ineti seama de problema 3.46.
and
b. A trebuie s
a fie monic
a. Utiliz
and factorizarea Cholesky S = D1T D1 si not
A D1 A, b D1 b, se obtine problema CMMP din sectiunea 3.5.
P3.55 a. Not
and cu IRm vectorul multiplicatorilor, functia lui Lagrange este
1 T
x Gx xT c + T (Ax b).
2

L(x, ) =

Anul
and derivatele partiale ale lui L, se obtin conditiile
Gx c + AT = 0, Ax = b.

(7.9)

In cazul G > 0, se utilizeaz


a factorizarea Cholesky G = RT R pentru a reduce problema la
cea standard din sectiunea 3.6.
b. Pentru a rezolva sistemul (7.9) se utilizeaz
a procedura de triangularizare ortogonal
a
la dreapta AZ = [L1 0], unde L1 este inferior triunghiular
a inversabil
a. Not
and

x = Zu,
precum si
T

Z GZ =
se obtine

19
In

H11
T
H12

u=

H12
H22

u1
u2

Z c=

H11 u1 + H12 u2 + LT1


H T u1 + H22 u2
L 12u
1 1

=
=
=

d1
d2

d1
d2
b.

terminologia specific
a program
arii liniare, xB se numeste solutie de baz
a.


INDICAT
II, RASPUNSURI,
SOLUT
II

516

In cazul general, x este un punct de minim unic dac


a si numai dac
a H22 > 0. (Cum
justificati aceast
a afirmatie ?) In consecint
a se poate utiliza factorizarea Cholesky
H22 = R2T R2 .
P3.56 Se aplic
a algoritmul de triangularizare ortogonal
a QT A = R. Not
and
T
T
Q B = D, Q b = d si utiliz
and partitii adecvate, sistemul de restrictii se scrie

R1
0

x+

D1
D2

y=

d1
d2

unde R1 este superior triunghiular


a inversabil
a, iar D2 este epic
a. Prin urmare, exist
a
matricea Z ortogonal
a astfel nc
at D2 Z = [0 R2 ], unde R2 este superior triunghiular
a
inversabil
a. Not
and


v1
D1 Z = [S1 S2 ], y = Z
,
v2

se obtine

R1
0

x+

S1
0

S12
R2



v1
v2

d1
d2

iar din conditia de minim (n care v2 este fixat) rezult


a v1 = 0. Solutia problemei este:

v1 = 0, v2 = R21 d2 ,
x = R11 (d1 S12 v2 ).

y = Z

0
v2

P3.57 Se utilizeaz
a factorizarea ortogonal
a CZ = [L1 0]. Se noteaz
a x = Zu etc.
P3.58 Urm
atoarea procedur
a (LINPACK [XIII, pag. 8.7]) realizeaz
a permutarea
1. Pentru k = 1 : n
1. k k
2. Pentru k = 1 : n
1. j = k
1. C^
at timp j < 0
1. j j
2. Dac
a j 6= k atunci
1. xj xj
2. j j

Cap. 4. Calculul valorilor si vectorilor proprii


P4.1 Spectrele celor dou
a matrice sunt aceleasi (A) = (B) = {2, 2, 4}. Matricea A
este diagonalizabil
a dar B nu.
P4.2 Nu. Dac
a x IRn , x 6= 0, si = + i, , IR, 6= 0, atunci x 6 IRn .
P4.3 Implicatia A, B diagonalizabile C diagonalizabil
a este evident
a. Reciproc,
dac
a C este diagonalizabil
a, fie XC C
I (m+n)(m+n) o matrice nesingular
a de vectori
proprii
 ai matricei C. Avem CXC = XC , cu diagonala. Considerand partitia XC =
XA
=
, (cu dimensiunile blocurilor, evidente) avem AXA = XA . In continuare,
XB
rangXA = m (n caz contrar, XC nu ar fi nesingular
a) si, prin urmare, XA are m coloane
liniar independente, care sunt vectori proprii ai matricei A. Deci, A este diagonalizabil
a.
Similar se arat
a c
a si matricea B este diagonalizabil
a.
P4.4 In cazul general, r
aspunsul la ntrebare este negativ. Intr-adev
ar, e.g. dac
a
A1 = A2 = C
I si A12 6= 0 matricea A nu este diagonalizabil
a. Exist
a si situatii n


INDICAT
II, RASPUNSURI,
SOLUT
II

517

care r
aspunsul este afirmativ, cum este cazul n care (A1 ) (A2 ) = . In aceast
a din
urm
a situatie, fie X1 si X2 matrice nesingulare
de
vectori
proprii
pentru
submatricele
A1 si


X1 X12
A2 . Atunci matricea (nesingular
a)
, unde X12 = Y X2 cu Y solutia ecuatiei
0
X2
matriceale Sylvester A1 Y Y A2 = A12 (v. 4.7), este o matrice de vectori proprii pentru
matricea A, i.e. A este diagonalizabil
a.



AB 0
0
0
P4.5 Ar
atati c
a matricele C =
si D =
sunt asemenea (o
B
0
B BA

Im A
matrice de transformare posibil
a este T =
). Dac
a m > n, din (C) = (D)
0 In
rezult
a c
a multimea (AB) \ (BA) are toate elementele nule.
P4.6 b) Dac
a (A, B) = (XA X 1 , XB X 1 ) atunci, tin
and seama de faptul c
a
matricele diagonale comut
a, AB = BA rezult
a prin calcul direct. c) Presupunem c
a
B)
def
AB = BA. Fie X 1 AX = A si consider
am perechea (A,
= (A , X 1 BX). F
ar
a
a reduce generalitatea, putem presupune c
a A are valorile proprii multiple grupate, i.e.
B
= B
A,

A = diag(1 In1 , 2 In2 , . . . , p Inp ), cu i 6= j pentru i 6= j. Intruc


at A

rezult
a B = diag(B1 , B2 , . . . , Bp ). Dar, B fiind diagonalizabil
a, rezult
a c
a blocurile Bk
k ) este diagonalizabil
sunt diagonalizabile si, conform punctului a), perechea (k Ink , B
a.
B)
este diagonalizabil
Prin urmare, (A,
a, de unde si (A, B) este
diagonalizabil
a
.
Pentru




1 1
0 1
reciproc
a, vezi punctul b). d) De exemplu, matricele A =
si B =
0 1
0 0
comut
a, dar nu sunt (simultan) diagonalizabile.
P4.7 Fie x un vector propriu al matricei A, asociat valorii proprii , si p cel mai
mare ntreg pentru care vectorii x, Bx, . . ., B p1 x sunt liniar independenti, i.e. pentru
care matricea Xp = [ x Bx B p1 x ] este monic
a. Atunci, subspatiul X = ImXp este
B-invariant si, prin urmare, contine un vector propriu y = Xp z al matricei B. Dar
AB = BA implic
a AB k = B k A. Rezult
a Ay = AXp z = Xp z = y, i.e. y este vector
propriu al matricei A.
P4.8 Ar
atati c
a 1 y2H x1 = 2 y2H x1 .
P4.9 F
ar
a a reduce generalitatea, putem considera c
a kxk2 = 1. Conform
 lemeiH 4.2

b
H

(deflatie unitar
a), dac
a matricea [ x X ] este unitar
a, atunci B = X AX =
.
0 C
H
Acum, dac
a y este un vector propriu la st
anga al matricei A, atunci z = X y este un vector
propriu la st
anga al lui B, i.e. z H B = z H . Cum este o valoare proprie simpl
a, matricea
n1 C H )1 bz1 , cu z1 = xH y 6= 0
In1 C este nesingular
a. Rezult
a z(2 : n) = (I

0 1
ntruc
at, n caz contrar, z = 0. Matricea A =
nu este simpl
a, iar vectorii proprii
0 0
sunt de forma x =

si y =

, , C,
I 6= 0, 6= 0, ceea ce implic
a y H x = 0.

P4.10 Conform problemelor 4.8 si 4.9, yiH xj = 0 dac


a i 6= j si putem scala vectorii
proprii astfel nc
at yiH xi = 1. Deci, dac
a X si Y sunt cele
dou
Pn a matrice de vectori proprii,
atunci Y H X = In . Rezult
a A = XX 1 = XY H = i=1 i xi yiH .
P4.11 Din Ax = x, x 6= 0, rezult
a imediat Ak x = k x (inductie), (A In )x =
= ( )x si, dac
a A este nesingular
a (caz n care avem 6= 0), 1 x = A1 x.
k
k
P4.12 Avem A x = x pentru toti (A) si x vector propriu asociat lui . Rezult
a
P x = p(A)x = p()x.
P4.13 Fie (A) si x un vector propriu asociat. Atunci, conform problemei 4.12,
P x = p()x si Qx = q()x. Intruc
at Q este nesingular
a avem q() 6= 0 si, prin urmare,

518

INDICAT
II, RASPUNSURI,
SOLUT
II

1
x. Rezult
a Rx = r()x.
q()
P4.14 Dac
a valorile proprii ale matricei A sunt numerotate n ordinea descresc
atoare
a modulelor, atunci avem (A) = |1 |, (A1 ) = 1/|n |. Apoi se aplic
a teorema 4.10.
P4.15 a) Pentru matricele nilpotente, (A) k (0), i.e. k = 0, i.e. = 0.
b) Pentru matricele idempotente, fie x cu kxk = 1, un vector propriu al matricei A asociat
valorii proprii . Din xH A2 x = xH Ax rezult
a 2 = , i.e. {0, 1}.
P4.16 a) C
ate unul singur n ambele cazuri. b) Dac
a o celul
a Jordan de ordin n ar fi
diagonalizabil
a, atunci ar avea n vectori proprii liniar independenti ceea ce ar contrazice
a). c) Avem J = In + J0 . Cum matricea unitate comut
a cu orice alt
a matrice, pentru
calculul matricei Jk se poate utiliza formula binomului lui Newton, n care se tine seama
de faptul c
a J0i este o matrice care are elementele de pe supradiagonala i egale cu unitatea,
iar toate celelalte elemente sunt nule. Dac
a 6= 0, Jk nu este diagonalizabil
a pentru nici

k
un k IN . J0 = 0, deci diagonal
a, pentru orice k n. d) Se rezolv
a ecuatia XJ = In
care, scris
a pe coloane, se reduce la rezolvarea sistemelor liniare x1 = e1 , xj1 +xj = ej ,
j = 2 : n (n aceast
a ordine!). Nu.

21 () def
(2:n,1:n1) () este nesingular
P4.17 Fie H() = H In . Matricea H
= H
a

C,
I deci rangH() n 1, C.
I In particular, H = H(0)
si, prin urmare,
rangul lui H nu poate fi dec
at n sau n 1. Vectorii proprii x asociati unei valori proprii

(H) trebuie s
a satisfac
a H()x
= 0, de unde rezult
a x(1 : n 1) = v()xn cu v() =
1 ()H
(2:n,n) (), i.e. toti vectorii proprii asociati lui sunt de forma x = [v T () 1]T
=H
21
cu C
I \ {0} arbitrar, indiferent de ordinul de multiplicitate algebric
a a lui . Deci,
multiplicitatea geometric
a a unei valori proprii a unei matrice Hessenberg ireductibile nu
poate fi dec
at 1 si, prin urmare, o astfel de matrice cu valori proprii multiple nu este
diagonalizabil
a.
P4.18 a) Se calculeaz
a det(In C), e.g. prin dezvoltare dup
a elementele primei
linii. b) C este nesingular
a dac
a si numai dac
a 0 6 (C), i.e. p(0) = pn 6= 0. Pentru
calculul inversei recomand
am rezolvarea ecuatiei matriceale CX = In pe blocuri definite
convenabil sau considerarea unei permut
ari F = P C a liniilor astfel nc
at matricea F este
inferior triunghiular
a, apoi C 1 = F 1 P . c) Fie x un vector propriu al matricei C asociat
valorii proprii . Consider
and xn 6= 0, e.g. xn = 1 rezult
a xk = nk . Obtinem o matrice
a vectorilor proprii de tip Vendermonde care este nesingular
a dac
a si numai dac
a valorile
proprii sunt distincte, singura situatie n care C este diagonalizabil
a. La acest ultim rezultat se ajunge si observ
and c
a matricea C are o structur
a superior Hessenberg ireductibil
a
si aplic
and rezultatul problemei precedente. Pentru calculul unui vector propriu al matricei C T asociat aceleeasi valori proprii, presupuneti x1 6= 0 si rezolvati sistemul. Se obtine
xk = k1 + p1 k2 + + pk1 . d) Mai sunt dou
a structuri cu coeficienti polinomului
pe ultima linie, respectiv, pe ultima coloan
a, n ordine invers
a.
P4.19 a) O matrice real
a de rotatie plan
a Pjk (i.e. n planul (j, k)), de ordinul n,
definit
a de scalarii c si s are, evident, n 2 valori proprii egale cu 1, celelalte dou
a fiind
j,k = c is. Putem lua el drept vectori proprii asociati valorilor proprii l = 1. Dac
a
s 6= 0, xj,k = ej iek sunt vectori proprii asociati valorilor proprii complexe. b) Un
reflector elementar real U = In 2uuT cu u IRn , kuk = 1, fiind simetric are toate
valorile proprii reale si fiind ortogonal are toate valorile proprii de modul 1. Deci valorile
proprii sunt 1 sau 1. Fie acum un reflector elementar V astfel nc
at V T u = e1 . Avem
T
T
V U V = In 2e1 e1 = diag(1, 1, . . . , 1), i.e. exist
a o singur
a valoare proprie egal
a cu
1. Un set complet de vectori proprii este dat de coloanele lui V .
P4.20 Presupunem c
a matricea normal
a A este triunghiular
a. Avem A = U U H
H . Rezult
(j, :))T si
cu U unitar
a si diagonal
a. Atunci AH = U U
a aij = i U (i, :)(U
i U (i, :)(U
(j, :))T , unde i = (i, i). Deci, dac
a
ji =
a aij = 0, atunci si aji = 0. Pentru
Q1 x =


INDICAT
II, RASPUNSURI,
SOLUT
II

519

cazuri particulare de matrice normale, demonstratia poate fi mai direct


a. De exemplu,
dac
a matricea unitar
a Q este, e.g. superior triunghiular
a, atunci inversa ei Q1 = QH
este simultan superior
 si inferior
 triunghiulara, i.e. diagonala.

P4.21 Fie A =
. Din AT A = AAT rezult
a 2 = 2 . Dac
a = matricea

este simetric
a, iar dac
a = rezult
a = .
P4.22 Fie A normal
a si S = QH AQ o form
a Schur real
a a lui A, n care, f
ar
a a reduce
generalitatea, putem presupune c
a valorile proprii reale (n num
ar de q) sunt situate n
primele q pozitii diagonale. Deci S este normal
a si are structura

S=

A1,q+1
Aq+1,q+1

..
.

A1p
Aq+1,p
,
..

.
App

cuP
R IRqq superior triunghiular
a. Din (S T S = SS T )11 rezult
a RT R = RRT +
p
T
+ j=q+1 Bj , unde Bj = A1j A1j , j = q + 1 : p, sunt matrice simetrice, pozitiv semiPp
definite. Cum ns
a tr(RT R) = tr(RRT ), rezult
a
trBj = 0. In continuare, din

Pj=q+1

faptul c
a i (Bj ) 0 pentru toti i, rezult
a trBj = i i (Bj ) 0. Deci, trBj = 0 pentru
toti j si, prin urmare, i (Bj ) = 0 pentru toti i si j. Cum ns
a o matrice simetric
a av
and
toate valorile proprii nule este nul
a (demonstrati!) Bj = 0 si, de aici, A1j = 0 pentru toti
j. Acum RT R = RRT , i.e. R este normal
a, si cum este triunghiular
a, este diagonal
a (v.
problema 4.20). In continuare se procedeaz
a similar. Din (S T S = SS T )q+1,q+1 rezult
a
Aq+1,j = 0, j = q + 2 : p si c
a blocul 2 2 Aq+1,q+1 este normal. Av
and valori proprii
complexe, conform problemei 4.21, are structura din teorem
a etc. Reciproca este imediat
a.
P4.23 c) Fie B = 21 (A + AH ) si C = 12 (A AH ). Atunci A = B + C si, conform
punctelor a), b), B este hermitic
a iar C este antihermitic
a. Presupunem c
a avem si A =
C
cu B
hermitic
antihermitic
C+
B
H +C
H = 2B.

= B+
a si C
a. Atunci 2B = A+AH = B+
H
Analog, 2C = A A = 2C,
i.e. C = C.
Deci descompunerea este unic
Deci B = B.
a.
d) Se utilizeaz
a c) cu S = B si T = iC.
P4.24 Se utilizeaz
a relatiile din definitii.
P4.25 Se utilizeaz
a relatiile din definitii si expresiile p
artilor hermitic
a si antihermitic
a
(v. solutia problemei 4.23).
P4.26 Se consider
a un set de n vectori liniar independenti, e.g. ortogonali.
P4.27 Fie P o matrice de permutare. Intruc
at P este unitar
a, A este normal
a (hermitic
a, antihermitic
a, simetric
a, antisimetric
a) dac
a si numai dac
a la fel este si matricea
C = P T AP . Putem alege P astfel nc
at B = C(1 : k, 1 : k). a) Evident. b) Nu. De
"
#
6
3 1
exemplu, matricea A = 1
3 3
este normal
a, dar B = A(1 : 2, 1 : 2) nu este.
3 1 3
P4.28 Conform teoremei 4.3, min (A) max (A).
P4.29 Dac
a B = QH AQ C
I pp , unde QH Q = Ip , atunci aplic
and matricei B teorema Courant-Fisher avem k = maxdimV=k minxVS xH QH AQx, unde VS este multimea
vectorilor de norm
a euclidian
a unitar
a din subspatiul V C
I p . Acum, este usor de con = {y C
statat c
a V
I n | y = Qx, x V} este un subspatiu liniar al lui C
I n , de aceeasi
dimensiune cu dimensiunea lui V (i.e. k) si c
a multimea tuturor subspatiilor V este
numai o parte a multimii tuturor subspatiilor de dimensiune k din C
I n . Prin urmare,
H
k = maxdimV=k
min
x
Ax

.
Pentru
cel
de
al
doilea
set
de
inegalit
ati se uti
S
k
xV
lizeaz
a cealalt
a caracterizare minimax a valorilor proprii din teorema Courant-Fisher.


INDICAT
II, RASPUNSURI,
SOLUT
II

520
P4.30 Fie matricea hermitic
a B =

eT1

U1H AU1

a11
1
e

eT1
C

= F + G, unde F =

a11 0
0
, G =
= F + G, obtinut
a dup
a aplicarea primului pas al
1
0
C
e
0
algoritmului de tridiagonalizare TQ. Evident = kA(1, 2 : nk2 = ||, iar matricele F si G
sunt hermitice. Cum a11 (F ), iar min (G) = si max (G) = , conform teoremei 4.6
rezult
a existenta unei valori proprii a lui B, i.e. a lui A, astfel nc
at a11 a11 +,
q.e.d.
=

P4.31 De exemplu, matricele complexe A =


A este normal
a, dar B nu.

1
i

i
1

si B =

1
i

i
i

sunt simetrice.

P4.32 Fie S = QH AQ forma Schur a lui A si M = max i=1:n1 (|sij |). Consider
am maj=i+1:n

tricea diagonal
a DP
IRnn de forma D = diag(1, , 2 , . . .P
, n1 ). Atunci kD1 SDk =
n
n
= maxi=1:n (|i | + j=i+1 |sij | ji ) maxi=1:n (|i | + M j=i+1 ji ) maxi=1:n (|i |+
Pn1
Pn1 j
M
+M j=1 j ). Aleg
and astfel nc
at

(ar
atati c
a se poate!) atunci se
j=1

obtine inegalitatea kD1 QH AQDk () + . Este usor de v


azut c
a kk :C
I nn IR+
1 H
definit
a de kXk = kD Q XQDk este o norm
a matriceal
a consistent
a.

P4.33 Pentru orice matrice T C


I nn nesingular
a si B = T 1 AT avem B k = T 1 Ak T .
Prin urmare, A este convergent
a dac
a si numai dac
a este convergent
a orice matrice asemenea cu A. Pentru matricele diagonalizabile rezultatul este imediat. In cazul general, se
utilizeaz
a forma canonic
a Jordan ar
at
and c
a un bloc Jordan J (vezi notatia din problema
4.16) este convergent dac
a si numai dac
a || < 1.

P4.34 Pentru fiecare matrice si transpusa ei se aplic


a teorema Gershgorin si se intersecteaz
a domeniile astfel obtinute.
P4.35 Punctul cel mai dep
artat de originea planului complex alPreuniunii discurilor
n
Gergshgorin se afl
a la distanta = maxi=1:n (|aii | + ri ) = maxi=1:n ( j=1 |aij |) = kAk .
Prin urmare (A) kAk . Aplic
and acelasi rationament si pentru matricea AT se obtine
evaluarea (A) min(kAk1 , kAk ), rezultat n deplin
a concordant
a cu teorema 4.10.

P4.36 a) Se utilizeaz
a bij = aij ji . In principiu, da (v. punctul b)). b) Dac
a A
are toate elementele pozitive avem r = minD kD1 ADk = min >0 (max(a11 + a12 , a22 +

1
+ a21 )) (am notat = 21 ). Se obtine r = (A). c) r = 3 + 7 > 14 = (A).

P4.37 Din teorema discurilor Gershgorin se obtine (A) D = [21, 31]. Da, de
exemplu scal
and cu D = diag(1, 2, 2) se obtine (A) D = [13, 27]. (Spectrul lui A
este (A) = {9, 9, 27}).

P4.38 a) 0 nu apartine nici unui disc Gersgorin, deci 0 6 (A). b) Toate discurile
Gershgorin sunt situate n C
I + = { C
I | Re > 0}. c) Caz particular al lui b).
P4.39 a) Dac
a
A
are
(cel
put

in)
o linie nul
a, atunci rezultatul este evident. In caz
Pn
contrar, fie i = j=1 |aij | > 0, i = 1 : n, si D = diag(1 , 2 , . . . , n ). Matricea B = D1 A
Qn
are (B) kBk 1. Deci, |detB| = i=1 |i (B)| 1. Inegalitatea cerut
a se obtine din
|detA| = |detD| |detB| |detD|. b) Se aplic
a a) pentru matricea AT .
P4.40 Rezultatul generalizeaz
a teorema discurilor lui Gershgorin, care se obtine lu
and
= 1 (pentru A) sau = 0 (pentru AT ). De aceea consider
am numai cazul (0, 1).
Presupunem ri > 0, ci > 0, i = 1 : n (altfel exist
a o linie sau o coloan
a cu toate elementele
extradiagonale nule, care poate fi deplasat
a n prima pozitie printr-o transformare de


INDICAT
II, RASPUNSURI,
SOLUT
II

521

asem
anare tip permutare). Vom utiliza inegalitatea H
older, i.e.
n
X
i=1

|i | |i |

n
X
i=1

|i |

! p1

n
X
i=1

|i |

! q1

unde

p > 1,

1
1
+ = 1.
p
q

Fie (A), x 6= 0 un vector propriu asociat si xi = x(i). De asemenea, fie p =


1
q = 1
. Avem

si



n

n
n
X
X
X


| aii | |xi | =
aij xj
|aij | |xj | =
|aij | (|aij |1 |xj |)


j=1
j=1
j=1
j6=i

j6=i

1
n
n
n
1
1
X
X
X
(|aij |1 |xj |) 1

|aij |
= ri
(|aij |1 |xj |) 1
,
j=1
j6=i

j=1
j6=i

i.e.

j6=i

j=1
j6=i

1
n
X
1
| aii |

|xi |
|aij | |xj | 1
,
r
i

sau

j=1
j6=i

1
 1

| aii |
|xi |
ri

n
X
j=1
j6=i

|aij | |xj | 1 .

Insum
and ultimele inegalit
ati n raport cu i obtinem

 1
n 
X
| aii | 1
i=1

i.e.

ri

n
X
k=1

|xi | 1

ck

n
n
X
X
i=1 j=1
j6=i

| akk |
rk

|aij | |xj | 1 =

!
1
 1

n
X
j=1

cj |xj | 1 ,

|xk | 1 0.
1

Evident, n ultima inegalitate, coeficientii pentru |xk | 1 nu pot fi toti negativi. Prin
urmare, exist
a k astfel nc
at | akk | rk c1
, q.e.d.
k
P4.41 Fie (A), x 6= 0 un vector propriu asociat si xi = x(i). De asemenea, fie
|xp | = maxi=1:n |xi |. Dac
a xp este singura component
a nenul
a a lui x, atunci = app si,
ntruc
at aii D pentru toti i 1 : n, rezult
a D. Presupunem, n continuare, c
a x
are cel putin dou
a componente nenule si fie xq 6= 0 cea de a dou
a component
a, n ordinea
descresc
atoare a modulelor, i.e. |xp | |xq | |xi |, i = 1 : n. i 6= p, q. Avem





n
n
X
X


| app | |xp | =
apj xj
|apj | |xq | = rp |xq |,


j=1
j=1
j6=p

j6=p


INDICAT
II, RASPUNSURI,
SOLUT
II

522

unde rp este raza discului Gershgorin asociat liniei p. Rezult


a | app | rp

|xq |
. Similar
|xp |

|xp |
. Obtinem | app | | aqq | rp rq , i.e. D, q.e.d.
|xq |
P4.42 Ambele valori proprii
 ale lui A sunt egale cu 1. Un vector propriu unitar

1
. Pentru obtinerea unei forme Schur se aplic
a deflatia orasociat este x = (1/ 2)
1
togonal
a n cazul real, respectiv deflatia unitar
a n cazul complex sau pentru obtinerea
formelor Schur complexe ale unormatrice
reale.
De exemplu, lu
and Q = [x y], unde


1
T
x y = 0, obtinem y = (1/ 2)
(de asemenea cu kyk = 1), de unde rezult
a
1
se arat
a | aqq | rq

1 4
Q AQ =
. S
a remarc
am faptul c
a desi matricea A este defectiv
a (i.e. nu
0
1
este simpl
a) forma Schur exist
a si se poate construi. Valorile proprii ale lui B nu sunt
reale, deci o FSR a lui B este chiar B etc.
P4.43 Fie V C
I n(nk) o completare a lui U p
an
a la o matrice unitar
 Ha, i.e. astfel
 ncat
U AU X
H
Q = [ U V ] este unitar
a. Atunci f (X) = kQ (AU U X)kF = k
kF =
V H AU
T

kU H AU Xk2F + kV H AU k2F . Evident, minimul lui f este kV H AU kF si se atinge


=
pentru X = U H AU .
P4.44 Prezent
am dou
a solutii: Solutia 1. Fie S = U H AU o form
a Schur a lui A.
H
Not
and T = U BU , din AB = BA rezult
a ST = T S, cu S superior triunghiular
a cu
elementele diagonale distincte. Din egalitatea primelor coloane a acestei relatii rezult
a
sistemul liniar nesingular omogen (S(2 : n, 2 : n) s11 In1 )T (2 : n, 1) = 0, de unde obtinem
T (2 : n, 1) = 0, i.e. T este superior triunghiular
a n prima coloan
a, etc. Solutia 2. Dac
a
(A) si Ax = x, atunci BAx = Bx, A(Bx) = (Bx) si, ntruc
at valorile proprii ale
lui A sunt distincte, A are un set complet de vectori proprii liniar independenti si Bx = x
(Bx este un vector propriu at
at pentru A c
at si pentru B). Intruc
at procedura de deflatie
pentru reducerea la forma Schur utilizeaz
a vectori proprii, forma Schur a matricelor A si
B se obtine cu aceeasi transformare de asem
anare (argumente similare se pot aduce si n
cazul real).
P4.45 a) Fie U1 un reflector complex (hermitic, v. cap.3) astfel nc
at U1H x = e1 ,
1
6= 0. Atunci v = U1 e1 este vectorul c
autat. Pentru calculul s
au (i.e. al elementelor

definitorii ale reflectorului) se poate utiliza procedura Hc si relatia de mai sus. b) Se


B
verific
a imediat c
a Bx1 = 0 si BxB
i o matrice unitar
a
i = i xi , i = 2 : n. Altfel, considerat
U astfel nc
at U e1 este coliniar cu x1 si calculati U H BU .
P4.46 a) Prezent
am dou
a solutii. Solutia 1 (geometric
a). Fie X complementul
complementul ortogonal al subspatiului Imy. Fie
ortogonal
al
subspat

iului
Imx

s
i
Y
T
Intruc
U = X Y si V = X + Y.
at dimX = dimY = n 1 si dim(V) n, rezult
a

n 1 dimU = dimX + dimY dimV n 2, cazul generic fiind dimU = n 2.


C
Fie, n cazul generic, U
I n(n2) o matrice ale c
arei coloane formeaz
a o baz
a orto = [x2 U
] C
gonal
a pentru U , X
I n(n1) o matrice ale c
arei coloane formeaz
a o baz
a
] C
ortogonal
a pentru X si Y = [y2 U
I n(n1) o matrice ale c
arei coloane formeaz
a

]. Avem
o baz
a ortogonal
[ x Y ] si Y = [ y X
H a pentru Y. Definim
matricele X =
y
1
0
0



Y H X = y2H x x2 U
= 0 y2H x2
0 . Ar
atati c
a x2 si/sau y2 pot
H
U
fi scalati astfel nc
at y2H x2 = 1.

0
0
In2
Solutia 2 (procedural
a). Fie U1 reflectorul pentru care


INDICAT
II, RASPUNSURI,
SOLUT
II
U1H y

= e1 . Not
am

U1H X

= Z =

z11
Z21

523
Z12
Z22

U1H Y

= W =

W12
W22

. Din

z11
H
= U1 x, W22
Z22 =
Z21
H
H
= In1 , W12 z11 + W22 Z21 = 0, care sunt satisf
acute, de exemplu, pentru Z22 = In1 ,
H
W22 = In1 , W12 = z111 Z21
. b) Dac
a este o valoare proprie simpl
a a matricei A, conform problemei 4.9, vectorii proprii asociati x (la dreapta) si y (la st
anga) satisfac conditia
H
1
H
y H x 6= 0 si se pot scala astfel nc
at yH x = 1. Fie matricea
 X si X = Y calculate ca la



0
y
=
punctul a). Atunci X 1 AX =
A x X
. Algoritmul este

0 Y H AX
Y H
urm
atorul.
conditiile Xe1 = x si Y H X = W H Z = In , rezult
a ecuatiile

1. Pentru k = 1 : n 1
1. x = vp(A(k : n, k : n))
2. y = vp((A(k : n, k : n))T ), y = y
x
3. x = H
y x
si Y (v. punctul a))
4. Se calculeaz
a matricele X
5. A(k, k) = y H A(k : n, k : n)x
6. A(k, k + 1 : n) = 0, A(k + 1 : n, k) = 0,

7. A(k + 1 : n, k + 1 : n) Y H A(k + 1 : n, k + 1 : n)X.


P4.47 Pentru A, dac
a vectorul initial are prima component
a nenul
a, rezultatul
este
e1 ,ntruc
at A(e1 ) = 5(e1 ) si (A) = {5, 2, 1}. Pentru B avem (B) = {, 1 ,
1 + }. Deci, B va avea o valoare proprie
a n urm
atoarele situatii: a) 0
dominant
si || > 1 si b) > 0 si || 6= 1 + .
 
2 1
1
(0)
P4.48 Fie matricea A =
si un vector initial y =
. Atunci vectorul
0 1
0
Ak y (0)
= (1)k y (0) si, prin urmare,
kAk y (0) k
ek = ky (k) y (k1) k = k(1)k y (0) (1)k1 y (0) k = 2 pentru toti k desi y (0) este un vector
propriu asociat valorii proprii dominante 1 = 2 a matricei A (de retinut c
a criteriul
utilizat n algoritmii 4.1 si 4.2 functioneaz
a ntruc
at 1 |(y (k) )T y (k1) | = 0). Evident,
situatia de mai sus se datoreaz
a faptului c
a valoarea proprie dominant
a este negativ
a si,
desi vectorii din sir sunt orientati corespunz
ator ca directie, si schimb
a sensul la fiecare
pas. In cazul complex, vectorii proprii unitari sunt determinati p
an
a la o multiplicare
cu un num
ar complex de modul unitar, i.e. ei cu IR si, prin urmare, este posibil
ca vectorii din sirul generat de metoda puterii s
a tind
a c
atre multimea vectorilor proprii
unitari asociati valorii proprii dominante desi diferenta dintre doi vectori consecutivi s
a
nu tind
a c
atre zero. Pentru metoda puterii inverse motivatiile sunt aceleasi.
P4.49 Se aplic
a sistematic lema de deflatie unitar
a. Rezult
a urm
atoarea schem
a de
calcul.

curent generat de metoda puterii va fi y (k) =

1. Pentru k = 1 : n 1
1. x
k = vp(A(k : n, k : n))
x
k
2. x
k =
k
xk k
k astfel nc
k e1 = x
3. Se determin
a o matrice unitar
aQ
at Q
k
H

4. A(k : n, k : n) = Qk A(k : n, k : n)
k.
5. A( : , k : n) = A( : , k : n)Q

524

INDICAT
II, RASPUNSURI,
SOLUT
II

Dac
a matricea A are valorile proprii distincte, k = A(k, k), zk este solutia sistemului liniar
(A(1 : k1, 1 : k1) k Ik1 )zk = A(1 : k1, k : n)
xk (unde A este matricea dat
a aflat
a
k ),
n starea de dup
a executia pasului
curent
k
din
schema
de
mai
sus)

s
i
Q
=
diag(I
,
Q
k
k1


zk
atunci xk = Q1 Q2 . . . Qk1
este vector propriu al matricei initiale asociat valorii
x
k
proprii k .
P4.50 Schema de calcul este similar
a celei care st
a la baza algoritmului HQ:
1. Pentru k = 1 : n 2
1. Se determin
a ik astfel nc
at |aik k | = maxi=k+1:n (|aik |)
2. A(ik , k : n) A(k + 1, k : n)
3. Se determin
a matricea inferior triunghiular
a elementar
a Mk+1
astfel nc
at (Mk+1 A)(k + 2 : n, k) = 0
4. A = Mk+1 A
5. A( : , k + 1) A( : , ik )
1
6. A = AMk+1
.
Schema este de dou
a ori mai eficient
a dec
at algoritmul HQ.
P4.51 Ideea este urm
atoarea: g
asiti un reflector elementar (hermitic) U1 , astfel nc
at
U1H z = e1 . Calculati A1 = U1H AU1 . Apoi, reduceti A1 la forma superior Hessenberg
H A1 Q
folosind algoritmul HQ. Matricea Q = U1 Q
defineste transformarea unitar
H=Q
a
H
H
dorit
a, ntruc
at QH z = Un1
Un2
. . . U2H U1H z = e1 .
P4.52 Testati, parcurg
and prima subdiagonal
a, c
a nu exist
a blocuri diagonale de ordin
mai mare dec
at 2 si, apoi, c
a blocurile de ordinul 2 au valorile proprii complexe.
P4.53 Dac
a Q = QH este reflectorul (hermitic) pentru care QH u = e1 , atunci S =
H
= Q AQ = In + e1 v H Q este superior triunghiular
a si 1 = s11 = 1 + v H q1 , unde q1 =
1
a a lui Q. Deci 1 = 1 + v H u. Celelalte n 1 valori proprii
= Qe1 = u este prima coloan
sunt i = sii = 1, i = 2 : n. u este vector propriu asociat lui 1 . Fie acum, Y reflectorul
(hermitic) astfel nc
at Y H v = e1 . Atunci SY ( : , 2 : n) = Y ( : , 2 : n), i.e. yj = Y ( : , j),
j = 2 : n, sunt vectori proprii ai matricei S, iar xj = Qyj sunt vectori proprii ai matricei
A, asociati valorilor proprii egale cu 1.
P4.54 Aplic
de
and lema
 deflatie ortogonala, se calculeaza matricea ortogonala U astfel
cT
T
nc
at U HU =
. Fie acum matricea ortogonal
a V , de ordinul n1, astfel nc
at
0 B
G = V T BV este superior Hessenberg (utilizati algoritmul HQr). Matricea c
autat
a este
Q = U diag(1, V ).
P4.55 a) Secventa de pustmultiplicare a matricii superior triunghiulare R cu matricile
Pk si Mk1 afecteaz
a la pasul curent k numai coloanele k si k + 1, de unde rezult
a imediat
conservarea structurii superior Hessenberg.
P4.56 F
ar
a a reduce generalitatea, admitem ca restrictie a matricei A la subspatiul
def
A-invariant c
autat chiar submatricea A22 . Fie, n aceast
a ipotez
a, X = [ x1 x2 ] IRn2
"
#
X1
si consider
am partitia X =
X2 , conform
a cu dimensiunile blocurilor diagonale. Din
X3
ecuatia matricial
a AX = XA22 rezult
a X3 = 0 ca unic
a solutie a ecuatiei Sylvester
omogene A33 X3 = X3 A22 . In continuare, X2 este orice matrice real
a nesingular
a 22
care comut
a cu A22 (e.g. X2 = I2 ), iar X1 se obtine rezolv
and ecuatia matriceal
a Sylvester
A11 X1 X1 A22 = A12 X2 .

P4.57
 Avem 1 (A) = 2 5, 2(A) = 2 + 5, iar doi vectori proprii asociati sunt
2
2
x1 =
, x2 =
. Cei doi vectori proprii sunt ortogonali ntruc
at
1 5
1+ 5


INDICAT
II, RASPUNSURI,
SOLUT
II

525

xT1 x2 = 0. Pentru celelalte matrice puteti utiliza calculatorul.


P4.58 Se utilizeaz
a reflectori complecsi care aplicati unui vector complex asigur
a
obtinerea unui vector real cu zerouri n pozitiile necesare (v. cap. 3). (In pachetul de
programe LAPACK astfel de reflectori sunt folositi curent).
P4.59 Matricea QH AQ r
am
ane antihermitic
a (n cazul real, antisimetric
a) oricare ar
fi matricea unitar
a (ortogonal
a) Q. Prin urmare, n aplicarea procedurii de reducere la
forma superior Hessenberg, matricele obtinute dup
a fiecare pas al reducerii si matricea
final
a sunt antihermitice (antisimetrice). O matrice superior Hessenberg antihermitic
a
(antisimetric
a) este tridiagonal
a. Exploatati aceste observatii structurale.
2
, ceea ce indic
a o convergent
a p
atratic
a
P4.60 a) Se obtine Hk+1 (2, 1) =
( )2 + 2
3

la forma Schur. b) In cazul simetric se obtine Tk+1 (2, 1) = Tk+1 (1, 2) =


,
( )2 + 2
ceea ce indic
a o convergent
a cubic
a la forma diagonal
a.
P4.61 b) Ar
at
am mai nt
ai c
a exist
a o matrice de permutare P (produs de
de
 matrice 
0 di
T
permutare elementare) astfel nc
at P BP = diag(D1 , . . . , Dn ), unde Di =
.
di 0
Pentru claritate, vom considera numai cazul c
and n este par. Mai nt
ai, calcul
am o matrice
asemenea cu B, aplic
and matricele de permutare elementare Pn+1,2n , Pn+2,2n1 , . . . ,
P3n/2,3n/2+1 . Obtinem matricea C = QT AQ care are elemente nenule numai pe diagonala
secundar
a; mai precis, aceste elemente sunt situate din coltul din dreapta sus spre coltul
din st
anga jos n ordinea d1 , d2 , . . . , dn , dn , . . . , d2 , d1 . Atunci, aplic
and permut
arile
elementare P2,2n , P4,2n2 , . . . , Pn,n+2 , C este adus
a la o form
a cu blocuri diagonale 2 2,
i.e. diag(D1 , D3 , . . . , D4 , D2 ). Permutarea acestor blocuri diagonale pentru a obtine forma
diag(D1 , D2 , . . . , Dn ) poate fi realizat
a cu usurint
a utiliz
and un algoritm de sortare.
P4.62 a) Avem T = L1 T L, deci matricele sirului sunt asemenea si, n anumite
conditii (vezi b)),
pune asimptotic n evident
a valori proprii ale matricei T .
 sirul poate

p
2

2 ,
b) Dac
a T =
, atunci T are elementele = + , =

2

= . Tin
and seama de faptul c
a 1 , 2 sunt invarianti ai sirului, convergenta sirului
matriceal este echivalent
a cu convergenta sirului numeric (k )kIN definit de recurenta

=
, unde = 1 + 2 si = 1 2 sunt constante. Ar
atati c
a acest din urm
a sir
este monoton si m
arginit si c
a limita sa este 1 .
P4.63 a) Presupunem c
a matricea tridiagonal
a simetric
a real
a T are o valoare proprie
multipl
a . Pentru precizarea ideilor, consider
am c
a ordinul de multiplicitate este 2.
Atunci exist
a doi vectori proprii ortogonali x si y asociati valorii proprii , i.e. T x = x
si T y = y, cu y T x = 0. Presupunem c
a T este ireductibil
a, i.e. toate elementele subsi supradiagonale
sunt

 nenule. Consideram matricea S = T In cu urmatoarea partitie
S11 S12
S =
cu blocul S12 IR(n1)(n1) nesingular. Atunci rezult
a x(2 : n) =
S21 S22
1
1
= S12
S11 x(1). Intruc
at x 6= 0, rezult
a x(1) 6= 0. Absolut similar y(2 : n) = S12
S11 y(1) cu
y(1) 6= 0. Rezult
a c
a x si y sunt coliniari ceea ce contrazice faptul c
a sunt ortogonali. Deci
T nu poate fi ireductibil
a. Dac
a ordinul de multiplicitate este mai mare dec
at 2 atunci,
conform celor de mai sus, exist
a dou
a elemente extradiagonale simetrice nule care sparg
matricea T n dou
a matrice tridiagonale simetrice din care cel putin una are o valoare
proprie multipl
a etc. b) Generic, se constat
a o grupare a elementelor extradiagonale nule
nt-un bloc diagonal situat n coltul din dreapta jos. Explicatia este urm
atoarea: aplicarea
bilateral
a a reflectorilor care realizeaz
a tridiagonalizarea aduce pe pozitiile (k+1, k) valori
egale n modul cu norma de vector kA(k+1 : n, k)k, valori care, pentru o matrice initial
a f
ar
a


INDICAT
II, RASPUNSURI,
SOLUT
II

526

o structur
a particular
a (n afara simetriei) sunt, n general, nenule. De aceea, elementele
nule, obligatorii conform punctului a), apar la sf
arsitul procesului de tridiagonalizare.
In consecint
P4.64
Transform
a
rile
ortogonale
conserv
a
norma
Frobenius.
a, matricele

 
 



app apq
app apq
c s
app apq
c
s
si
=
au aceeasi norm
a
aqp aqq
s
c
aqp aqq
s c
aqp aqq
2
2
2

2
Frobenius, i.e. app + aqq + 2apq = (app ) + (aqq ) + 2(apq ) . De asemenea, matricele
A si A = J T AJ au aceeasi norm
a Frobenius. Not
and cu B, B matricele elementelor

extradiagonale ale matricelor A, respectiv A , si tin


and seama de faptul c
a A si A difer
a
numai n liniile si coloanele p si q, avem
kB k2F = kA k2F

n
X
i=1

(aii )2 = kAk2F

n
X
i=1

a2ii + a2pp + a2qq (app )2 (aqq )2 =

= kBk2 2a2pq + 2(apq )2 .


Prin urmare kB kF este minim
a dac
a apq = aqp = 0.
P4.65 a) Dac
a = 0 rezultatul este imediat. Dac
a 6= 0 ecuatia (J T AJ)11 =
2
2
= c 2cs + s = este echivalent
a cu cos(2 + ) = 2
,
sin = 2
2
2
2
() +4

unde = arccosc este unghiul ce defineste rotatia, iar = arcctg


. Rezult
a c
a exist
a
2

dac
a si numai dac
a

2
()2 +4 2



1, i.e. [ 1 , 2 ]. b) Se reduce mai ntai A la

forma tridiagonal
a, dup
a care se utilizeaz
a rezultatul de la punctul a).
P4.66 Utilizati faptul c
a matricele antihermitice (antisimetrice) r
am
an astfel la transform
ari unitare (ortogonale) de asem
anare.

1+42
1
P4.67 1 = 2 =
2
etc.
2
P4.68 Consider
and o matrice de perturbatie E = G, cu G = ei eTj si observ
and c
a, n
k
dk ()
acest caz, a
=
,
rezult
a
expresia
dorit
a
.
d
ij
P4.69 Acesta este un exemplu celebru [ IV ] de matrice cu valori proprii bine separate
si, totusi, foarte r
au conditionate. Vectorii proprii la dreapta, respectiv la st
anga, asociati
(n)nk (n)nk1
(nk)!
(nk1)!
T
nk2
nk1
]

unde
(k2)! (k1)!

valorii proprii k = k, au expresiile xk = [


respectiv, yk = [ 0 0 0 1 n

n2
2!

(n)2
2!

(n) 1 0 0 ] ,

si sunt scalari nenuli arbi-

trari. Folosind, pentru simplitate, norma k k rezult


a k =

kxk k kyk k
|y T xk |
k

nn1
(nk)!(k1)!

num
ar care, pentru un n semnificativ, este foarte mare. Pentru n = 20 avem 1 = 20 =

19
. Folosind formula lui Stirling m! 2mmm em pentru evaluarea factorialului,
= 20
19!
19 19
se obtine 1 = 20 192019 e38 4.329 107 .
P4.70 Acesta este un alt exemplu celebru [ IV ] de matrice cu o conditionare foarte
diferentiat
a a valorilor proprii: pentru un n semnificativ, valoarea proprie maxim
a este
foarte bine conditionat
a pe c
and valoarea proprie minim
a este foarte r
au conditionat
a.
a) Se aplic
a varianta simbolic
a a elimin
arii gaussiene. b) Se repet
a procedura de la
punctul a). Pentru n = 20 si = 1010 avem detF = 1 19! 1010 1.216 107 fat
a de
1 pentru = 0.
P4.71 a) Calculati valorile proprii i , apoi p() = ( i ).
b) Aceast
a problem
a preocup
a de c
ateva secole pe matematicieni care au propus zeci de
metode pentru rezolvarea ei. Ultima si cea mai bun
a metod
a const
a n formarea explicit
a
a unei matrice companion (v. problema 4.18) si calculul valorilor sale proprii utiliz
and
algoritmul QR.


INDICAT
II, RASPUNSURI,
SOLUT
II

527

Cap. 5 Descompunerea valorilor singulare

P5.1 (A) =
{ 4 + 5, 4 5 }, (B) = { 8 + 10, 8 10 },
(C) = { 12 + 10,
 12 10
 }.

P5.2 Fie A =
. Atunci

1 =

1 2
( + 2 + 2 + 2 +
2

(2 2 )2 + ( 2 2 )2 + 2( + )2 + 2( + )2 ) ,

si asa mai departe.


QT
P5.3 a) Utilizati faptul c
a dac
a matricea Q este unitar
a, atunci si matricele Q,
H
si Q sunt unitare. b) Produsul a dou
a matrice unitare este o matrice unitar
a. c) Fie
|| V H , cu U
= U
A = U V H DVS a matricei A. Dac
a 6= 0, atunci A = U
||
unitar
a.
H
P5.4 Fie A = U V DVS a matricei A. Presupunem m n, caz n care avem
A = U1 1 V H , unde U1 = U ( : , 1 : n), 1 = (1 : n, : ). Conform unei versiuni evidente a propozit
iei 5.1 avem B = QQH , unde = diag(1 , 1 , 0(mn)(mn) ) si

V
V
0
Q = 12
cu U2 = U ( : , n + 1 : m). Coloanele matricei Q sunt
U1 U1
2U2
vectori proprii ai matricei B.
def
def
P5.5 Fie C = A + iB = U V H DVS a matricei C si Ur = ReU , Ui = ImU ,
def
def
Vr = ReV , Vi = ImV . Atunci
D=

A
B

B
A

Ur
Ui

Ui
Ur





Vr
Vi

Vi
Vr

la care se adaug
a permut
arile impuse de ordonarea valorilor singulare ale matricei D.
P5.6 a) O matrice normal
a fiind unitar (ortogonal) diagonalizabil
a, avem QH AQ =
= = diag(1 , 2 , . . . , n ), cu Q unitar
a (ortogonal
a). Rezult
a QHAHAQ = H =
= diag(|1 |2 , |2 |2 , . . . , |n |2 ). b)
Matricea A este normal
a. Avem 1 = 8, 2,3 = 2 i 6.
Rezult
a 1 = 8, 2,3 = |2,3 | = 10. Verificati, calcul
and valorile proprii ale matricei
B = AT A.
P5.7 Orice matrice ortogonal
a sau unitar
a are toate valorile singulare egale cu 1.
P5.8 b) Utilizati DVS a matricei V pentru a obtine DVS a matricei P = V V H . Sunt
k valori singulare egale
Pr cu 1, iar celelalte sunt nule.
P5.9 kAk2F = i=1 i2 r12 , unde r = rang A si kAk2 = 1 .
P5.10 O matrice de permutare este ortogonal
a (unitar
a), iar transform
arile unitare
conserv
a norma spectral
a. Astfel, f
ar
a a reduce generalitatea, putem presupune c
a cele k
T
n1 linii eliminate sunt ultimele k linii ale matricei Q, i.e. putem scrie Q = [ P T RT ] .
H
Fie P = U CV dezvoltarea DVS a matricei P , unde C = diag(c1 , c2 , . . . cn ), cu c1
c2 . . . cn 0 valorile singulare ale matricei P . Dar QH Q = P H P + RH R = In .
Rezult
ap
RH R = In V C 2 V H = V (In C 2 )V H = V S 2 V H , unde S = diag(s1 , s2 , . . . sn ),
ator. Cum R are cel mult
cu si = 1 c2i valorile singulare ale matricei R ordonate cresc
n 1 linii, rezult
a s1 = 0, i.e. c1 = kP k2 = 1.
P5.11 Se utilizeaz
a DVS a matricei A.
P5.12 Dac
a A = U V T este DVS a lui A, atunci (U , V sunt matrice nesingulare):
y T Ax
z T U T AV w
z T w
max
=
max
=
max
.
y IRm \ {0} kyk2 kxk2
z IRm \ {0} kU zk2 kV wk2
z IRm \ {0} kzk2 kwk2
x IRn \ {0}
w IRn \ {0}
w IRn \ {0}


INDICAT
II, RASPUNSURI,
SOLUT
II

528

P5.13 a) Dac
a U1 IRmm , V1 IRnn sunt reflectori elementari astfel nc
at U1 u =
m
= kuke1 IR , si V1 v = kvke1 IRn , atunci:
U1T AV1

kukkvk
0

0
0

IRmn .

Evident, rang A = 1 dac


a u 6= 0, v 6= 0, si zero altfel.
dezvoltarea valorilor singulare se reduce la A = 1 u1 v1H .

b) Dac
a rang A = 1, atunci

def

P5.14 Fie w
= Q
v
u, unde Q este o matrice ortogonal
a (cum calculati matricea Q?)
def

def

si w = w/k
wk,
u = u
/k
uk. Calculati o matrice ortogonal
a C IRn(n2) astfel nc
at
U = [u w C] si V = [w u C] sunt ortogonale (folositi factorizarea QR a matricei [u w]).
Atunci

uT (I + u
vT )w

uT (I + u
vT )u

U T (I + u
vT )V = wT (I + u
vT )w

wT (I + u
vT )u

In2

"

uT u
vT w
1
0

1 + uT u
vT u
0
0

0
0
In2

si problema a fost redus


a la cazul 2 2 (oricum, celelalte n 2 valori singulare ale lui A
sunt egale cu 1).
P5.15 Se aplic
a algoritmul JQ cu precizarea c
a reflectorii complecsi utilizati sunt de
tipul celor care dau un rezultat real, e.g. pentru x C
I n se obtine U1H x = kxke1 IRn .
P5.16 Matricea T = J H J este tridiagonal
a, hermitic
a si are dou
a valori proprii egale.
Conform problemei 4.63 (v. cap.4) T este reductibil
a, i.e. exist
a i astfel nc
at T (i + 1, i) =
= gi fi = 0. Deci, gi = 0 sau/si fi = 0.
P5.17 Pentru a exploata structura superior triunghiular
a, se utilizeaz
a o secvent
a de
rotatii modificate, conform urm
atoarei scheme de calcul:
1. Pentru k = n : 1 : 3
1. Pentru i = 1 : k 2
H
1. Se calculeaz
a rotatia modificat
a Pi,i+1 astfel nc
at (Pi,i+1
A)(i, k) = 0.
H
2. A Pi,i+1
A % Apare un element nenul n pozitia (i + 1, i).
3. Se calculeaz
a rotatia modificat
a Qi,i+1 astfel nc
at (AQi,i+1 )(i + 1, i) = 0.
2. A AQi,i+1 .
Pentru n = 4, primul pas al ciclului exterior se desf
asoar
a astfel:

0

,

H
A P12
A=

H
A P23
A=

0

,

0
0
.

A AQ12 =

A AQ23 =


INDICAT
II, RASPUNSURI,
SOLUT
II

529

P5.18 Utiliz
and transform
ari Householder sau Givens, se pot introduce zerouri conform modelului urm
ator, dat pentru m = 7, n = 6, p = 3 (pentru precizare am folosit
rotatii):

A=

H H
, A P12
P13 A =

A AQ45 Q46


0
0


0
0

H H H
A P45
P46 P47 A =

A AQ23 Q24


0
0

0
0
0

0
0
0

Dup
a aceste transform
ari A este bidiagonal
a n prima linie si prima colan
a. Se obtine o
problem
a similar
a, dar de dimensiunea (m 1) (n 1); blocul patrat p p este deplasat
cu o pozitie diagonal
a.
P5.19 Se aplic
a mai nt
ai o secvent
a de rotatii pe st
anga care aduce matricea la o
form
a superior triunghiular
a (cu numai dou
a supradiagonale de elemente nenule) dup
a
care se adapteaz
a schema de calcul de la problema 5.17.
P5.20 Mai nt
ai se reduce matricea A la forma superior bidiagonal
a cu algoritmul
JQ. Apoi se anuleaz
a elementul din pozitia (m, n + 1) cu o secvent
a de rotatii aplicate pe
dreapta A APm,m+1 Pm1,m+1 . . . P1,m+1 care deplaseaz
a elementul alterant pe verticala
coloanei m + 1 p
an
a la eliminare. Exemplific
am procesul pentru m = 3, n = 5,
A=

A AP24 =

"

"

A AP34 =

"

A AP34 =

"

#
#


INDICAT
II, RASPUNSURI,
SOLUT
II

530

P5.21 Fie A = U V H , = diag(1 , 2 , . . . , p ), cu p = min(m, n), DVS a matricei


(k)
(k)
A . Evident, exist
a sirurile de numere reale (i )kIN astfel nc
at limk i = i si
def

(k)

(k)

(k)

def

(k)

i 6= 0 pentru toti i si k. Dac


a k = diag(1 , 2 , . . . , p ), si Ak = U k V H , atunci
toate matricele Ak sunt de rang maximal si limk Ak = A. Aceasta nseamn
a c
a oric
at
de aproape de orice matrice (inclusiv de matricea nul
a) se afl
a matrice de rang maximal.
De aici necesitatea conceptului de rang numeric n orice problem
a de calcul al rangului,
afectat
a de erori.
P5.22 Urmati demonstratia teoremei 5.4.
P5.23 Dac
a (C, S) = (U H AW, V H BW ) este DVSG a perechii de matrice (A, B) atunci
rA = rang(A) = rang(C) si rB = rang(B) = rang(S), i.e. rA este num
arul elementelor
diagonale nenule ale matricii C, iar rB este num
arul elementelor diagonale nenule ale
matricii S. Pentru determinarea rangului numeric se poate utiliza o toleranta pentru
neglijarea elementelor diagonale mici ale matricilor C si S (v. alg. Rang DVS).
P5.24 Utilizati DVS si definitia 5.3.
P5.25 Urmati demonstratia teoremei 5.3.
P5.26 a) Utiliz
and DVS A = UA A VAH si B = UB B VBH sistemul matriceal dat
devine echivalent cu sistemul

Y B = C
A X

TB TA Y = D

H
H
= VAH XVB , Y = UA
= VAH XUB , care la r
unde X
Y UB , C = UA
XVB , D
andul s
au, se
poate scrie explicit sub forma a mn sisteme de dou
a ecuatii cu dou
a necunoscute

"

(A)

(B)

(B)

(A)

#

x
ij
yij

cij
dij

P5.27 a) Utiliz
and DVS A = U V T si tin
and seama de conservarea normei euclidiene,
problema devine echivalent
a cu problema de minimizare minyIRn {kd yk2 + kyk2 }
(evident, mult mai simpl
a), unde d = U T b si y = V T x.
P5.28 0 (A) detA = 0 detAH A = 0 0 (A).




0 1
0 0
P5.29 Nu, e.g. pentru A =
,B=
.
0 0
0 1
P5.30 a) Inegalitatea triunghiului pentru norma spectral
a. In general nu, luati e.g.

1 0
0 0
A=
,B=
. b) Consultati [ II ].
0 0
0 1
P5.31 Propriet
atile sunt corespondentele multiplicative ale propriet
atilor aditive din
In general nu, luati
problemaprecedent
a
.
a)
Condit

ia
de
consistent

a
normei
spectrale.



1 1
1 0
e.g. A =
,B=
. b) Consultati [ II ].
0 1
1 1
P5.32 Consultati [ II ].

P5.33 a) det(In A) = n , i.e. |i | = n , i 1 : n. Valorile singulare sunt


i = 1, i 1 : (n 1), n = .
P5.34 Consultati [ II ], unde veti g
asi multe alte propriet
ati interesante ale descompunerii polare.


INDICAT
II, RASPUNSURI,
SOLUT
II

531

Cap. 6. Calculul valorilor proprii generalizate


a) Se observ
a c
a sc
az
and prima linie din celelalte dou
a si apoi adun
and linia
"
#
2 4 5
= P AR =
= P BR =
a doua la a treia obtinem perechea echivalent
aA
0 1 3 , B
0 0 0
"
#
"
#
1
1
1
1 0 0
= 0 1 2 , unde matricele de transformare sunt P = 1 1 0
si R = I3 .
0
0

2 1 1
Ecuatia caracteristic
a a fascicolului este (2 )(1 ( 1)) = 0. Prin urmare, dac
a
= 0, atunci fascicolul este singular, dac
a 6= 0 si = 1, atunci (A, B) = {0, 2}, iar
1
dac
a 6= 0 si 6= 1 avem (A, B) = {0, 2,
}. b) De exemplu, x = [ 1 0 0 ]T este un
1
vector propriu generalizat asociat valorii proprii = 2, iar xT Bx = 1 6= 0 oricare ar fi si
. Pe de alt
a parte x = [ 7 6 2 ]T este un vector propriu generalizat asociat valorii proprii
T
= 0 si x Bx = 0 dac
a 48 + 4 55 = 0; cum det(B) = ( 1) exist
a o infinitate
de valori pentru si astfel nc
at xT Bx = 0 si det(B) 6= 0, e.g. pentru = 1/48,
= 14. c) Primele dou
a coloane ale matricei R, i.e. e1 , e2 , formeaz
a o baz
a ortogonal
aa
subspatiului de deflatie bidimensional S al perechii (A, B) asociat valorilor proprii gene1
ralizate 1 = 2 si 2 =
= 1 ntruc
at subspatiul V = AS + BS = Im(P 1 )( : , 1 : 2)
1
are dimensiunea 2.
P6.2
Fie U1 = U ( : , 1 : r), U2 = U ( : , r + 1 : n) si, similar, V1 = V ( : , 1 : r),
V2 = V ( : , r+1 : n). Not
am P = U1TAV1 , Q = U1TAV2 , R = U2TAV1 si S = U2TAV2 . Perechea
(A, B) este echivalent
a cu perechea (U T AV, ) i.e. ecuatia caracteristic
a a fascicolului
definit de perechea (A, B) este det(U T AV ) = 0. Dac
a S este nesingular
a, atunci
ecuatia caracteristic
a devine det(P QS 1 R 1 ) = 0 i.e. fascicolul are r 1 valori
proprii generalizate finite. Deci S este singular
a.
P6.3 Matricele A, B fiind unitare, matricea AB 1 = AB H este si ea unitar
a. Deci,
toate valorile proprii generalizate sunt de modul unitar (n cazul real 1).
P6.4 Intruc
at B si A B sunt nesingulare avem succesiv (B, B(A B)1 B) =
1
= ((A B)B )) = (AB 1 In ) = (AB 1 ) = (A, B) .
P6.5 Se procedeaz
a exact ca la algoritmul HTQZc dar se utilizeaz
a n exclusivitate
transform
ari reale.
P6.6 Vectorii proprii generalizati ai perechii (A, B) coincid cu vectorii proprii ai
matricei F = B 1 A. Metoda puterii pentru calculul iterativ al unui vector propriu al
matricei F = B 1 A cu deplasarea curent
a k utilizeaz
a iteratia (vezi cap. 4) xk+1 =
(F k In )xk , k = 1, 2, . . . echivalent
a cu rezolvarea sistemului liniar Bxk+1 = (Ak B)xk ,
k = 1, 2, . . .. Dac
a y este un vector propriu al matricei G = AB 1 , atunci x = B 1 y
este vector propriu al perechii (A, B). Iteratia metodei puterii pentru matricea G este
echivalent
a cu rezolvarea aceluiasi sistem liniar. Convergenta metodei este conditionat
a
(pentru k = 0) de existenta unei valori proprii generalizate dominante.
Metoda puterii inverse pentru calculul iterativ al unui vector propriu al matricei F =
= B 1 A cu deplasarea curent
a k presupune rezolvarea la fiecare iteratie a sistemului
(vezi cap.4) (F k In )xk+1 = xk , k = 1, 2, . . . echivalent
a cu rezolvarea sistemului liniar
(Ak B)xk+1 = Bxk , k = 1, 2, . . .. In acest caz deplasarea recomandat
a este cea a c
atului
xH
k F xk
Rayleigh i.e. k = H
. Schema de calcul este urm
atoarea.
xk xk
n
MPIG
1. Se alege aleator un vector x C
I de norm
a unitar
a.
2. k = 1, eps = 1
P6.1


INDICAT
II, RASPUNSURI,
SOLUT
II

532
3. C^
at
1.
2.
3.
4.
5.
6.
7.

timp eps > tol


Se calculeaz
a = xH B 1 Ax (i.e. se rezolv
a Bz = Ax, apoi = xH z)
Se rezolv
a sistemul liniar (A B)y = Bx
y = y/kyk
eps = |1 |xH y| |
x=y
k =k+1
Dac
a k > nr max iter
1. Tip
are
ste S-a atins num
arul maxim de iteratii f
ar
a a se
realiza toleranta impus
a.
2. Return
unde eps, tol si nr max iter au semnificatii transparente.
P6.7 Dac
a Bx = 0, atunci si Ax = 0, i.e. egalitatea Ax = Bx ar fi satif
acut
a pentru
orice C,
I i.e. fascicolul nu ar fi regulat.
P6.8 Avem gi+1,i = hi+1,i /tii , i = 1 : n1.

1 t22 h22

h21
P6.9 Fie 1 (H, T ) IR. Atunci v =
este un vector propriu

1
generalizat asociat lui 1 , i.e. Hv = 1 T v si S = Imv este un subspatiu de deflatie al
fascicolului (H, T ). Atunci construim matricele Q si Z proced
and n felul urm
ator. Fie
z1 = v/kvk, z2 un vector de norm
a unitar
a ortogonal cu z1 (construiti-l!) si matricea
Z = [ z1 z2 ]. Avem (HZ, T Z) = ([ Hz1 Hz2 ], [ T z1 T z2 ]) = ([ 1 T z1 Hz2 ], [ T z1 T z2 ]).
Acum dac
a Q este o matrice ortogonal
a de ordinul 2 (reflector sau rotatie) astfel nc
at
T)(2, 1) = (QT HZ, QT T Z)(2, 1) = 0, i.e. (H,
T) este n
(QT T z1 )(2) = 0 vom avea (H,
form
a Schur. Evident,
h11 /t11 = 1 .
P6.10 Dac
a L este factorul Cholesky al lui B, atunci (A, B) = (L1 ALT ) si
matricea L1 ALT fiind simetric
a are spectrul real. Dac
a B nu este pozitiv definit
a
valorile proprii generalizate
pot
fi

s
i
complexe
dup
a
cum
se
poate
constata
din
exemplul




1 5
1 2
urm
ator 20 A =
,B=
. Dac
a factorul Cholesky L este bine conditionat
5 9
2 1
numeric, atunci se calculeaz
a matricea C = L1 ALT exploat
and corespunz
ator simetria
rezultatului si i se calculeaz
a valorile proprii folosind algoritmul QR simetric. Dac
a L este
r
au conditionat
a se aplic
a algoritmul QZ. Din p
acate, n acest din urm
a caz, transform
arile
ortogonale de echivalent
a nu conserv
a simetria.
P6.11 a) Se procedeaz
a ca n cazul complex, cu precizarea ca problema se reduce
la rezolvarea unui sistem liniar omogen cvasi-superior triunghiular. b) Rezolvati mai nt
ai
problema pentru perechea 2 2 (S(k : k + 1, k : k + 1), T (k : k + 1, k : k + 1).
P6.12 Fie M = S(k : k + 1, k : k + 1) si N = T (k : k + 1, k : k + 1) blocurile
diagonale 2 2 de interes ale matricelor S si T . Cei doi vectori proprii liniar independenti
exist
a dac
a si numai dac
a perechea (M, N ) n FSG admite doi vectori proprii generalizati
liniar independenti. Dar m11 n22 = m22 n11 , deci r
aspunsul este afirmativ numai dac
a
m11 n12 = m12 n11 .

20 Se poate ar
ata c
a oricare ar fi matricea C IRnn diagonalizabil
a exist
a matricele simetrice
A, B IRnn cu B nesingular
a astfel nc
at C = AB 1 [ VI ]. In consecinta
, oricare ar fi multimea
simetric
a (i.e. av
and elementele complexe n perechi complex conjugate) de n numere exist
ao
pereche real
a (A, B) cu matricele A, B simetrice astfel nc
at (A, B) = .

Bibliografie
[1] J.O. Aasen. On the Reduction of a Symmetric Matrix to Tridiagonal Form.
BIT, 11:233242, 1971.
[2] A.V. Aho, J.E. Hopcroft, J.D. Ullman. The design and analysis of computer
algorithms. Addison-Wesley, 1974.
[3] S. Bannour, M.R. Azimi-Sadjadi. Principal Component Extraction Using Recursive Least Squares. IEEE Trans.Neur.Nets, 6:457469, 1995.
[4] R.H. Bartels, G.W. Stewart. A Solution of the Equation AX + XB = C.
Commun. ACM, 15:820826, 1972.
[5] W. Barth, R.S. Martin, J.H. Wilkinson. Calculation of the Eigenvalues of
a Symmetric Tridiagonal Matrix by the Method of Bisection. Numerische
Mathematik, 9:249256, 1967.
[6] R. Bellman. Introducere n analiza matriceal
a. Ed. Tehnica, 1969.
[7] C. Bischof, C. Van Loan. The WY Representation for Products of Householder
Matrices. SIAM J. Sci. Stat. Comput., 8:s2s13, 1987.
[8] A. Bjorck. Solving Linear Least Squares Problems by Gram-Schmidt Orthogonalization. BIT, 7:121, 1967.
[9] A. Bjorck. Numerical Methods for Least Squares Problems. SIAM, 1996.
[10] H. Bowdler, R.S. Martin, C. Reinsch, J.H. Wilkinson. The QR and QL Algorithms for Symmetric Matrices. Numerische Mathematik, 11:293306, 1968.
[11] J.R. Bunch, L. Kaufmann. Some Stable Methods for Calculating Inertia and
Solving Symmetric Systems. Mathematics of Computation, 31(137):163179,
January 1977.
[12] J.R. Bunch, B. Parlett. Direct Methods for Solving Symmetric Indefinite Systems of Linear Equations. SIAM J. Numer. Anal., 8:639655, 1971.
[13] P.A. Businger, G.H. Golub. Linear Least Squares Solutions by Householder
Transformations. Numerische Mathematik, 7:269276, 1965.

534

BIBLIOGRAFIE

[14] S.P. Chan, B.N. Parlett. Algorithm 517: a Program for Computing the Condition Numbers of Matrix Eigenvalues without Computing Eigenvectors. ACM
Trans. Math. Soft., 3:186203, 1977.
[15] T.F. Chan. Rank-Revealing QR Factorizations. Lin. Alg. and its Applic.,
88/89:6782, 1987.
[16] A.K. Cline, C.B. Moler, G.W. Stewart, J.H. Wilkinson. An Estimate for the
Condition Number of a Matrix. SIAM J.Numer.Anal., 16(2):368375, April
1979.
[17] A.K. Cline, R.J. Plemmons. L2 Solutions to Underdetermined Linear Systems.
SIAM Review, 18:92106, 1976.
[18] J.J.M. Cuppen. A Divide and Conquer Method for the Symmetric Eigenproblem. Numerische Mathematik, 36:177195, 1981.
[19] J. Demmel, W. Kahan. Accurate Singular Values of Bidiagonal Matrices. SIAM
J.Sci.Stat.Comput., 11(5):873912, September 1990.
[20] J.J. Dongarra, J. Du Croz, S. Hammarling, I. Duff. A Set of Level-3 Basic
Linear Algebra Subprograms. ACM Trans.Math.Software, 16:117,1828, 1990.
[21] J.J. Dongarra, D.W. Walker. Software Libraries for Linear Algebra Computations on High Performance Computers. SIAM Review, 37:151180, 1995.
[22] B. Dumitrescu. Improving and Estimating the Accuracy of Strassens Algorithm. Numerische Mathematik, 79(4):485-499, 1998.
[23] L. Elsner, J.G. Sun. Perturbation Theorems for the Generalized Eigenvalue
Problem. Lin. Alg. and its Applic., 48:341357, 1982.
[24] G.E. Forsythe. Pitfalls in Computations or Why a Math Book is not Enough.
Amer.Math.Monthly, 77:931970, 1970.
[25] G.E. Forsythe. Computer Methods for Mathematical Computations. PrenticeHall, 1977.
[26] J.G.F. Francis. The QR Transformation: a Unitary Analogue to the LR Transformation, Parts I and II. Comp. J., 4:265272, 332345, 1962.
[27] W. Givens. Computation of Plane Unitary Rotations Transforming a General
Matrix to Triangular form. SIAM J.App.Math., 6:2650, 1958.
[28] I.M. Glazman, I. Liubici. Analiz
a liniar
a pe spatii finit-dimensionale. Ed.
S
tiintifica si Enciclopedica, 1980.
[29] D. Goldberg. What Every Computer Scientist Should Know About FloatingPoint Arithmetic. ACM Comp.Surveys, 23(1):548, March 1991.
[30] G.H. Golub, W. Kahan. Calculating the Singular Values and Pseudo-Inverse
of a Matrix. SIAM J. Num. Anal. Ser. B 2, 205224, 1965.

BIBLIOGRAFIE

535

[31] S. Haykin. Adaptive Filter Theory. Prentice Hall, 1991.


[32] N.J. Higham. The Accuracy of Floating Point Summation. SIAM J.Sci. Comput., 14(4):783799, July 1993.
[33] N.J. Higham. Stability of the Diagonal Pivoting Method with Partial Pivoting.
SIAM J.Matrix Anal.Appl., 18(1):5265, January 1997.
[34] A.S. Householder. Unitary Triangularization of a Nonsymmetric Matrix. J.
ACM, 5:339342, 1958.
[35] D. Jacobs, editor. The State of the Art in Numerical Analysis. Academic Press,
1977.
[36] B. Kagstr

om, P. Ling, C. Van Loan. High Performance GEMM-Based Level3 BLAS: Sample Routines for Double Precision Real Data. In M. Durand,
F. El Dabaghi, editori, High Performance Computing II, pp. 269281. Elsevier
Science Publishers B.V., 1991.
[37] T. Kato. Perturbation Theory for Linear Operators. Springer-Verlag, 1966.
[38] V.C. Klema, A.J. Laub. The Singular Value Decomposition: Its Computation
and Some Applications. IEEE Trans.Auto.Control, AC-25(2):164180, April
1980.
[39] V.N. Kublanovskaya. On Some Algorithms for the Solution of the Complete
Eigenvalue Problem. USSR Comp. Math. Phys., 3:637657, 1961.
[40] C.L. Lawson, R.J. Hanson, F.T Krogh, D.R. Kincaid. Basic Linear Algebra
Subprograms for FORTRAN Usage. ACM Trans.Math.Software, 5:308323,
1979.
[41] R.S. Martin, C. Reinsch, J.H. Wilkinson. Householder Tridiagonalization of a
Symmetric Matrix. Numerische Mathematik, 11:181195, 1968.
[42] R.S. Martin, J.H. Wilkinson. Solution of Symmetric and Unsymmetric Band
Equations and the Calculation of Eigenvalues of Band Matrices. Numerische
Mathematik, 9:279301, 1967.
[43] R.S. Martin, J.H. Wilkinson. Reduction of the Symmetric Eigenproblem
Ax = Bx and Related Problems to Standard Form. Numerische Mathematik,
11:99110, 1968.
[44] C.B. Moler, G.W. Stewart. An Algorithm for Generalized Matrix Eigenvalue
Problems. SIAM J. Numer. Anal., 10:241256, 1973.
[45] C.C. Paige. Computing the Generalized Singular Value Decomposition. SIAM
J.Sci.Stat.Comput, 7(4):11261146, October 1986.
[46] B.N. Parlett, C. Reinsch. Balancing a Matrix for Calculation of Eigenvalues
and Eigenvectors. Numerische Mathematik, 13:292304, 1969.

536

BIBLIOGRAFIE

[47] C. Puglisi. Modification of the Householder Method Based on the Compact


WY Representation. SIAM J. Sci. Stat. Comput., 13(3):723726, May 1992.
[48] H. Rutishauser. The Jacobi Method for Real Symmetric Matrices. Numerische
Mathematik, 9:110, 1966.
[49] R. Schreiber, B. Parlett. Block Reflectors: Theory and Computation. SIAM
J. Numer.Anal., 25:189205, 1989.
[50] R. Schreiber, C. Van Loan. A Storage-efficient WY Representation for Products
of Householder Transformations. SIAM J. Sci. Stat. Comput., 10(1):5357,
January 1989.
[51] R.D. Skeel. Scaling for Numerical Stability in Gaussian Elimination. J. ACM,
26:494526, 1979.
[52] R.D. Skeel. Iterative Refinement Implies Numerical Stability for Gaussian
Elimination. Math. Comp., 35:817832, 1980.
[53] G.W. Stewart. On the Sensitivity of the Eigenvalue Problem Ax = Bx. SIAM
J. Numer. Anal., 9:669686, 1972.
[54] G.W. Stewart. Error and Perturbation Bounds for Subspaces Associated with
Certain Eigenvalues Problems. SIAM Review, 15:727764, 1973.
[55] G.W. Stewart. Algorithm 406: HQR3 and EXCGNG: FORTRAN Subroutines
for Calculating and Ordering the Eigenvalues of a Real Upper Hessenberg Matrix. ACM Trans. Math. Soft., 2:275280, 1976.
[56] G.W. Stewart. On the Asymptotic Behaviour of Scaled Singular Value and QR
Decompositions. Math.Comp., 43:483490, 1984.
[57] G.W. Stewart. On the Early History of the Singular Value Decomposition.
SIAM Review, 35(4):551566, December 1993.
[58] G.W. Stewart. Afternotes on Numerical Analysis. SIAM, 1996.
[59] G.W. Stewart, R. Chapman. Fast Stable Kalman Filter Algorithms Utilizing
the Square Root Procedure. SIAM J. Sci. Stat. Comput., 8:18151818, 1990.
[60] V. Strassen. Gaussian elimination is not optimal. Numerische Mathematik,
13:354356, 1969.
[61] M. Tertisco, P. Stoica. Identificarea si estimarea parametrilor sistemelor. Ed.
Academiei, 1980.
[62] M.H. Verhaegen, P. Van Dooren. Numerical Aspects of Different Kalman Filter
Implementations. IEEE Trans.Auto.Control, AC-31:907917, 1986.
[63] S.J. Wright. A Collection of Problems for Which Gaussian Elimination with
Partial Pivoting is Unstable. SIAM J.Sci.Comput., 14(1):231238, January
1993.

Index
acuratete, 13
algoritmi la nivel de bloc
eliminare gaussiana, 87
factorizarea Crout, 90
produs matriceal, 44
rutine BLAS, 62
sisteme triunghiulare, 56
triangularizare ortogonala, 156
algoritmul
Bartels-Stewart, 301
DVS, 393, 403
QR, 239
QR simetric, 314
QZ, 455, 472
Strassen, 45
alternativa lui Fredholm, 297
anulare catastrofala, 9
baza, 22
baza ortogonala, 152, 172, 386
bloc, 42
cat Rayleigh, 236, 330
calculatoare
cu memorie ierarhica, 17
vectoriale, 17
cifre semnificative, 7
combinatie liniara, 21
componente principale, 373
conditionare, 11
conditionarea
problemelor CMMP, 177
sistemelor liniare, 97
subspatiilor invariante, 350
valorilor proprii, 343
valorilor singulare, 413
vectorilor proprii, 350
vectorilor singulari, 414

congruenta, 47
convergenta patratica, 236
deflatie
de permutare, 272
iterativa, 455
ortogonala, 230
unitara, 228
depasire
inferioara, 8
superioara, 8
deplasare, 244
Rayleigh, 236
Wilkinson, 320, 399
descompunerea
bloc-diagonala, 303
CS, 377
ortogonala completa, 197
polara, 376
spectrala, 296
valorilor singulare, 369, 371
valorilor singulare generalizate, 379,
431
determinant, 53
diferenta unghiulara, 352, 414
distanta dintre spectre
absoluta, 354
relativa, 354
echilibrare, 104, 274
ecuatie caracteristica, 210
a unui fascicol, 446
ecuatie matriceala Sylvester, 297
eliminare gaussiana, 74
la nivel de bloc, 87
pentru matrice banda, 106
stabilitate numerica, 103
epsilon masina, 7

538
eroare
nainte, 13
napoi, 13
absoluta, 2
de reprezentare, 6
de rotunjire, 7
relativa, 2
factor de crestere
n eliminarea gaussiana, 102
n factorizarea cvasi-diagonala, 113
n metoda puterii inverse, 285
factorizare Cholesky, 114
cu pivotare, 195
cu semn, 202
factorizare cvasi-diagonala, 110, 206
factorizare LDU, 81
factorizare LQ, 172
factorizare LU, 81
Crout, 82, 85
Crout cu pivotare, 86
Crout la nivel de bloc, 90
Doolitle, 82
factorizare QL, 162
factorizare QR, 150
factorizare RQ, 173
fascicol matriceal, 445
hermitic, 447, 449
nesingular, 447
pozitiv definit, 447, 449
regulat, 447
simetric, 447, 449
singular, 447
fascicole
congruente, 450
echivalente, 449
ortogonal echivalente, 449
unitar echivalente, 449
flop, 15
forma bidiagonala, 394
forma bloc-diagonala, 296
forma canonica Jordan, 215, 308
forma canonica Kronecker, 450
forma diagonala generalizata, 453
forma Hessenberg, 239
generalizata, 455
generalizata ireductibila, 466

INDEX
ireductibila, 252
forma Schur, 227, 229
complexa, 230
generalizata, 451
generalizata ordonata, 486
ordonata, 287
reala, 230, 232
reala generalizata, 452
reala ordonata, 290
format virgula mobila, 4
functie de rotunjire, 6
gramian, 150, 172
grup Poincare, 202
hiperelipsoid, 372, 431
hipersfera, 372
imagine, 29
inertia unei matrice, 223
LAPACK
rutine de calcul, 118
rutine driver, 118
lema proiectiei ortogonale, 163
liniar independenta, 21
mantisa, 4
matrice
antihermitica, 224
antisimetrica, 47, 224
asemenea, 60, 214
banda, 40
bloc diagonala, 44
bloc triunghiulara, 44
complexa simetrica, 217
congruente, 223
cu spectru simplu, 214
de permutare, 272
de permutare elementara, 72
de proiectie ortogonala, 388
diagonal dominanta, 119
diagonala, 39
diagonalizabila, 214
echilibrata, 274
echivalente, 34, 35, 370
epica, 31

INDEX
hermitica, 49, 215
Hessenberg, 40
Hessenberg ireductibila, 252, 291
Hilbert, 99
inferior triunghiulara elementara,
70
inversabila, 34
ireductibila, 274
monica, 30
normala, 46, 215
ortogonal asemenea, 214
ortogonal echivalente, 370
ortogonala, 47, 215
pozitiv definita, 47
S-ortogonala, 201
S-simetrica, 201
simetrica, 46, 215, 314
simpla, 60, 214
spectru, 60
strict triunghiulara, 39
tridiagonala, 315
triunghiulara, 39
triunghiulara unitate, 39
unitar asemenea, 214
unitar echivalente, 370
unitara, 49, 215
Matrice companion, 362
Matrice convergenta, 363
Matrice diagonal dominanta, 364
Matrice idempotenta, 361
Matrice nilpotenta, 361
Matrice simultan diagonalizabile, 360
memorare compacta (mpachetata), 41
metoda
bisectiei, 330
catului Rayleigh, 330
Jacobi ciclica, 341
Jacobi clasica, 340
puterii, 233, 499
puterii cu deplasare, 235, 246
puterii inverse, 235, 245, 499
metode de radacina patrata, 151
Moore-Penrose
conditii, 207
pseudoinversa, 198
multime simetrica, 210

539
multiplicatori (gaussieni), 70, 74
multiplicitate
algebrica, 210
algebrica a unei valori proprii generalizate, 446
geometrica, 211
geometrica a unei valori proprii
generalizate, 447
norma
consistenta, 37
euclidiana, 24
Frobenius, 38
indusa, 38
urma, 384
nucleu, 29
numar de conditionare, 98, 384
al unui subspatiu invariant, 354
al valorii proprii, 344
estimare, 100
pentru matrice nepatrate, 178
rutine de calcul, 119
ortogonalitate numerica, 28
ortogonalizare Gram-Schmidt, 161, 169
Ovaluri Cassini, 364
p-norme Schatten, 384
p-sectiune a unei matrice hermitice,
363
Partea antihermitica a unei matrice,
362
Partea hermitica a unei matrice, 362
partitionare conforma, 43
pas DVS, 401
pas QR, 244
dublu cu deplasare explicita, 251
dublu cu deplasare implicita, 262
simplu cu deplasare explicita, 250
simplu cu deplasare implicita, 254
pas QZ
dublu, 480
simplu, 470
pivot, 74
pivotare
n triangularizarea ortogonala, 192

540
completa (n eliminarea gaussiana),
79
completa (n factorizarea cvasi-diagonala), 112
partiala (n eliminarea gaussiana
la nivel de bloc), 88
partiala (n eliminarea gaussiana
pentru matrice banda), 108
partiala (n eliminarea gaussiana),
76, 77
partiala (n factorizarea Crout),
86
partiala (n factorizarea cvasi-diagonala), 113
partiala (n factorizarea LU), 83
plan Lobacevski, 202
polinom caracteristic, 210
al unui fascicol, 446
ponderea operatiilor de nivel 3, 66
precizie, 4
dubla, 7
simpla, 5, 7
preconditionare, 275
problema CMMP
cu restrictii liniare, 207
cu restrictii patratice, 431
cu restrictii liniare, 429
generalizata, 207
ponderata, 187, 207
totala, 422
problema generala CMMP, 197, 421
produs
exterior, 32, 35
matrice-vector, 31
matriceal, 32
scalar, 24
scalar matriceal, 37
program principal (driver), 279
proiectie
ortogonala, 167, 388
spectrala, 346
proiector, 48
ortogonal, 152, 172, 388
spectral, 346
pseudoinversa, 163, 168, 385
normala, 174, 198

INDEX
pseudosolutie, 124, 163
normala, 198, 421
R-bidiagonalizare, 397
rafinare iterativa, 105, 187
rang, 30, 193, 369, 383
numeric, 417
raza spectrala, 210
reflector, 126
bloc, 158
complex, 139
hermitic, 139, 147
J-reflector, 202
modificat, 130, 162
reprezentare W2 T, 159
reprezentare WY, 158
restrictia
unei matrice la un subspatiu, 287
unei matrice la un subspatiu invariant, 212
unei perechi de matrice la un subspatiu de deflatie, 448
reziduu de norma minima, 124
rotatie, 134
complexa, 142
hiperbolica, 203
modificata, 404
rotatii disjuncte, 136
secventa de rotatii, 136
rotatie complexa, 460
Saxpy, 23
scalare, 104, 186
schimbare de baza, 34
secventa de rotatii, 149
separarea
spectrelor a doua matrice, 353
valorilor singulare, 414
sistem
extins, 164
normal, 164
solutie normala, 124, 174
spatiu Minkovski, 202
spectru generalizat, 446
spectrul unei matrice, 210
stabilitate numerica, 13
a algoritmului DVS, 415

INDEX
a algoritmului QR, 356
a eliminarii gaussiene, 103
a triangularizarii ortogonale, 184
submatrice
bloc, 42
lider principala, 42
subspatii liniare, 386
(operatii cu), 390
subspatiu, 22
complement ortogonal, 26
complementar, 22
de deflatie, 447, 486
dimensiune, 22
invariant, 61, 211, 286
propriu, 211
substitutie
nainte, 54
napoi, 55
sir QR, 244
sir Sturm, 332
teorema
Bauer-Fike, 348
Courant-Fisher, 219
de separare a valorilor proprii, 221
de separare a valorilor singulare,
412
Gershgorin, 226
Wielandt-Hoffmann, 223
Teorema lui Brauer, 364
Teorema lui Ostrovski, 364
transformare
de asemanare, 60, 214
de asemanare de permutare, 272
de coordonate, 35
elementara, 70
involutiva, 126
Jacobi, 337
QR, 244
triangularizare ortogonala, 147
completa, 196
cu pivotare, 192
la dreapta, 171
urma, 28
valoare proprie, 59, 210

541
generalizata, 445
valoare proprie dominanta, 233
valori singulare, 371
generalizate, 380, 433
variatie unghiulara, 414
varianta Hessenberg-Schur (de rezolvare a ecuatiei Sylvester), 300
varianta Schur-Schur (de rezolvare a
ecuatiei Sylvester), 300
vector
de deplasare implicita, 399, 468,
476, 479
Gauss, 70
Householder, 126
propriu, 59, 210, 281
propriu al formei Schur, 282
propriu al unei matrice Hessenberg, 284
propriu generalizat, 485
unitate, 20
vector propriu
generalizat, 445
vectori Schur, 229, 232
generalizati, 451, 452
vectori singulari, 371
generalizati, 380

S-ar putea să vă placă și