Documente Academic
Documente Profesional
Documente Cultură
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
210
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(4.1)
(4.3)
(4.4)
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
211
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
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
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)
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
5 25
9
1
1 5 9
A=
6
0 24 24
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)
(4.18)
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
(4.19)
(4.20)
(4.21)
216
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
Altfel spus, matricele normale sunt matricele unitar diagonalizabile (peste C).
I
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
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
2 x2 ,
AH x2 =
kx2 k = 1,
x2 x1 .
217
k+1 xk+1 ,
AH xk+1 =
kxk+1 k = 1,
xk+1 Sk .
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.
(4.23)
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)
(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
n
X
k=1
k |y (k) |2 ,
(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
(4.32)
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
(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
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)
k1
X
j=1
(j k )|z (j) |2 + k k ,
(4.40)
221
(4.41)
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)
[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)
222
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
Avem, evident,
H
[n1]
x A
x=
x
0
x C
I n1 .
(4.48)
(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.
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
223
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
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
k (A)
k (B)
1 )
max (R
k (A)
k (B)
,
min (R1 )
(4.59)
224
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(4.62)
(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)
225
4.1.5
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
n
X
j=1
|aij |},
i = 1 : n,
(4.67)
j6=i
n
X
aij xj ,
(4.68)
j=1
j6=i
Pn
j=1
j6=i
n
X
|xj | X
| aii |
|aij |
|aij |,
|xi |
j=1
j=1
j6=i
(4.69)
j6=i
i.e. Di .
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
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
4.2.1
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)
(4.71)
228
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
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.75)
(1)
S
1
12
(1) ,
S1 = Q H
1 AQ1 =
0 S22
(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)
(4.76)
4.2.2
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
cu
(S11 ) = {1 , 2 }.
(4.79)
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
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
4.3
(4.84)
(4.85)
(A In ) = { 1 , 2 , ..., n },
1
1 1
1
, , ...,
.
(A ) =
1 2
n
(4.86)
(4.87)
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
(4.92)
y (k) = k Ak y (0) ,
(4.93)
kAy (k1) k
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,
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
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
(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)
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
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
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
(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
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
2,3 = 1 i,
4 = 1.
999
0.94288089928893
333
0.31429363309631
x1
.
x1 =
x1 =
=
111 ,
kx1 k 0.10476454436544
37
0.03492151478848
y (23)
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
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
241
4.4. ALGORITMUL QR
4.4.1
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
(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
242
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(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
Comentarii.
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
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
4.4.2
Faza iterativ
a a algoritmului QR
244
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(4.109)
H1 = H,
(4.110)
(4.111)
(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
(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)
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)
(4.119)
(k)
qn(k+1) = rnn
(H H
k In )1 qn(k) ,
(4.120)
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)
(4.123)
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)
(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)
(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
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
k = 1, 2, . . .
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)
250
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(k)
3. Pentru j = 1 : n 1
4. Pentru j = 1 : n 1
1. H HPj,j+1
5. H H + In
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
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)
253
4.4. ALGORITMUL QR
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
j
X
k=1
j = 1 : n 1.
1
hj+1,j
(Gwj
j
X
wk hkj ),
k=1
254
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
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
255
4.4. ALGORITMUL QR
not
1
q1 = Qe1 =
r11
Numim vectorul
w=
h11
h21
h11
h21
0
..
.
0
C
I2
(4.139)
(4.140)
(4.141)
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
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
(4.143)
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
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).
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
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.
263
4.4. ALGORITMUL QR
not
h
h
21 32
1
1=
q1 = Qe
(4.151)
,
0
r11
..
.
0
not
not
(4.153)
(4.154)
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
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.
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
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
(4.157)
(4.158)
(4.159)
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.
270
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
3. %
1.
4. %
1.
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
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
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
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
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
0 0
,
A=
0 0 0
0 0 0 0
0 0 0 0
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
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)
(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
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 <
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.
(
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.
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
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.
4.4.3
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 )
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
281
4. Pentru i = l + 1 : n
1. re (i) = aii ,
im (i) = 0
4.5
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
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
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
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
283
284
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1.
2.
3.
4.
5.
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.
4.5.2
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
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
(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)
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
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
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)
4.6.1
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
(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
289
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.
290
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
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)
4.6.2
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
S= .
(4.199)
..
.. .
..
..
.
.
.
0
Spp
291
292
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
(4.201)
skk
wexact = sk+1,k
0
si, respectiv,
wexact
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
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
295
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.
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 }
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
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)
SY Y T = C.
(4.207)
(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
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 ,
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
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.
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)
(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
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
(4.218)
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)
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 =
T11
0
0
T22
X12
In2
(4.226)
(4.227)
si, n consecinta,
D = X 1 T X =
T11
0
(4.228)
(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
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
(4.234)
4.7. FORMA BLOC-DIAGONALA
atunci matricea
unde
305
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)
(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
j = k + 1 : q,
(4.239)
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
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.
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
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
(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
(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
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
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
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
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)
r2
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
0
0
0
0
0
K23
..
.
0
0
..
.
..
z}|{
0
0
..
.
. Ks1,s
}1
}2
..
.
(4.259)
}s1
}s
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
4.7. FORMA BLOC-DIAGONALA
rezulta
313
K12 Q23
= T 1 KT23 = 0
M
23
0
0
0
02
.
I3
0
(4.262)
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
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.
4.8
Algoritmul QR simetric
315
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
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).
(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)
u
k+1 u
Tk+1
,
k+1
uk+1 IRnk ,
(4.270)
(4.271)
(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)
48
A(k + 1 : n, k + 1 : n) T33
k+1 T (k) U
k+1 .
=U
33
(4.273)
u
k+1 = u
,
not
= k+1 ,
T33
48
= (Ink
uu
T
u
u
T
(k)
) T33 (Ink
)=
317
(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
u
T v
u
,
2
(4.277)
(4.276) devine
(k+1)
T33
(k)
= T33 uwT w
uT ,
(4.278)
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.
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.
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
319
4.8.2
Faza iterativ
a a algoritmului QR simetric
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
1. Pentru i = 1 : n
1. fi fi +
(4.286)
1 1 0
T = 1 2 1
0 1 1
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.287)
c1
s1
(4.288)
q1 = Qe1 = P12 e1 = 0 .
..
.
0
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).
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)
325
+ 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
326
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1. % Calculul deplasarii Wilkinson
fn1 fn
2
1. =
, = gn1
,
2
= fn
p
+ (sgn) 2 +
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
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
T22 T22
= QT22 T22 Q22 ,
(4.293)
(4.294)
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.
4.8.3
329
u
v
v
u
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)
4.9
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
n
[
i=1
IR
| fi | |gi1 | + |gi |
(4.299)
=
min (fi |gi1 | |gi |),
i1:n
I [ , ], unde
(4.300)
=
max (fi + |gi1 | + |gi |).
i1:n
def
(4.301)
k=2:n
..
T [k1] Ik1
=
pk () = det
gk1
0 gk1
fk
53
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)
[k]
[k]
(4.304)
[k1]
1 < 1
[k]
[k1]
< 2 < 2
[k]
[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
(4.306)
333
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)
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)
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)
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)
(4.313)
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
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)
336
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
1. Pentru i = k1 : k2
1. i
2. k2
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
, k = 1, 2, . . . ,
A1 = A,
(4.316)
A = Ak ,
def
A = Ak+1 ,
def
def
J = Jk
si
def
A B = Bk+1 .
..
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
d11
d21
d12
d22
def
c
s
s
c
T
app
aqp
apq
aqq
c
s
s
c
(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)
s
= tg,
c
aqq app
,
2aqp
(4.321)
(4.322)
sgn
,
| | + 1 + 2
1
c=
,
1 + t2
s = ct.
(4.323)
@
@
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.
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)
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.
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
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
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
(4.326)
(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
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
(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)
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
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
PJ = V Z = In PI
(4.335)
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)
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)
1
1
= p
,
kP k
1 + kXk2
respectiv
I = kP k =
p
1 + kXk2.
(4.341)
(4.342)
p = 1, 2, ,
(4.343)
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.
1
(V )kEk,
mini=1:n | i |
(A) = min p (V ),
V VA
(4.344)
349
4.10. CONDIT
IONARE
|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 )
kk = max (i ) (A).
(4.345)
i=1:n
x2 xn ], av
and
y1H
y2H
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 .
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
351
4.10. CONDIT
IONARE
yiH Gxk
,
(k i )yiH xi
i = 1 : n,
i 6= k.
(4.349)
n
X
i=1
i6=k
yiH Gxk
xi + O(2 ).
(k i )yiH xi
(4.350)
n
X
i=1
i6=k
yiH Gxk
xi k
(k i )yiH xi
(4.351)
0
1
x1 =
, x2 = p
,
y1 = p
, y2 =
.
2
2
2
2
0
1
+
+
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 =
(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
353
4.10. CONDIT
IONARE
sep(A, B) = min
X6=0
kL(X)kF
kAX XBkF
= min
.
X6=0
kXkF
kXkF
(4.354)
k(A In )xkF
= min k(A In )xk =
kxkF
kxk=1
kzk=1
gap(A, B) = min |i j |
i=1:m
j=1:n
(4.355)
354
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
gaprel(A, B) = min
i=1:m
j=1:n
|i j |
.
|i + j |
(4.356)
60
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)
4.10.2
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
356
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
4.11
Stabilitatea numeric
a a algoritmului QR
4.11. STABILITATE NUMERICA
de matricea initiala, i.e.
357
S = QH (A + E)Q,
(4.361)
(4.362)
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:
i i | p(n)kAkM .
|
i
(4.367)
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)
4.12
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.
360
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
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
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.
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
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.
def
p()
. Definim matricele
q()
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.16 a) C
ati vectori proprii (la dreapta) liniar independenti poate avea o celul
a Jordan
1
1
. 1
362
CAPITOLUL 4. VALORI S
I VECTORI PROPRII
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 =
.
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
Pn
i=1
i6=j
|aij |
Pn
j=1
j6=i
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
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 } ,
1
2
2
3
, B =
1
1
1
1
365
4.13. PROBLEME
"
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
,
"
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.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 =
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
370
(5.1)
(5.2)
Dac
a matricele S si T sunt unitare, atunci vom spune c
a A si B sunt unitar echivalente.
(5.4)
1 2 ... r > 0.
(5.5)
A = U V H
(5.6)
i ,
ale
iar
cu
371
(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
(5.8)
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
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
V = V1 V2 ...Vr
(5.12)
def
(r)
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
373
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
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)
r
X
j uj vjH ,
(5.14)
j=1
def
374
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.
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
def
def
U
= U (n+1 : m, :) si V =
def
Q =
este unitara si ca
1 V
2
U
C
I (m+n)(m+n)
(5.21)
V
0
S
G = QH F Q = 0
0
0
S
0
0
0 .
0
(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
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
(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)
Y P1
P2 Z
daca m n
daca m n
(5.28)
377
def
def
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
5.1.3
Descompunerea CS
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 ,
ci = cos i , si = sin i , cu 0 1 2 . . . p .
2
(5.31)
(5.32)
378
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
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
22
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.
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
5.1.4
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
380
ci
IR,
si
si 6= 0,
(5.35)
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
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
382
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
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.
383
5.2
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
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)
Vezi [ II ].
(5.46)
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
(5.48)
385
q
(12 + 22 + + n2 )(12 + 22 + + n2 ), (5.49)
def
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.
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
AXA = A
X = P AH = AH R
386
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
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)
5.2.5
387
ImU2 = KerAH .
(5.56)
ImV2 = KerA.
(5.57)
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
&
&%
%
388
5.2.6
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)
P 2 = P,
ImP = S.
(5.60)
x C
In
389
= 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)
0.9600 1.2800
A = 0.6912 0.9216
0.2016 0.2688
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
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
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
5.2.7
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
S = X + Y = {s C
I n | s = x + y, x X , y Y }
(5.63)
unde
S = [ X Y ].
(5.64)
T = X Y = { t C
In | tX & tY}
(5.65)
T = X Y = (X + Y )
(5.66)
392
(5.68)
393
5.3
Algoritmul DVS
Fie matricea
1
1
0 ,
A = 0.001
0
0.001
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
5.3.1
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)
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
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
(5.71)
V = V2 V3 Vn1 .
(5.72)
3
f1 g1
f2 g2
.
.
.. ..
H
.
..
(5.73)
J = U AV =
.
gn1
fn
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
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
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
398
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
5.3.2
Faza iterativ
a a algoritmului DVS
(5.75)
def
T = Tk = JkH Jk = J H J.
(5.77)
ti+1,i = fi gi ,
i = 1 : n 1,
(5.78)
399
gi 6= 0,
i = 1 : n 1.
(5.79)
(5.80)
,
2
(5.82)
= |fn1 |2 |gn1 |2 ,
p
.
+ sgn() 2 +
(5.83)
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
400
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)
(5.88)
def
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
U2H J
0
0
0
0
0
0
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)
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)
f1 c g1 s
g1 f1 s + g1 c
f1
f2 s
402
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.
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
403
atunci gi = 0.
(5.91)
Datorit
a deciziilor de anulare efectiv
a a elementelor neglijabile.
404
TZD
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
s c
care, pentru un vector z C
I 2 dat asigura
(P H z)(1) = 0.
(5.94)
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 |
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.
406
npq
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)
(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
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)
408
1 0 0
0
2 0
..
.. . .
..
.
.
.
.
def
0
0
.
..
..
..
..
.
.
.
0
0 0
[ A, u, ] = Hc(A)
f = |A(1, 1)|
U = Im , V = 1
Dac
a opt1 = da si 6= 0 atunci
u uH
U = Im
409
410
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 + 22n3
5.4
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
unde k k = k k2 .
(5.103)
412
Demonstratie.
B = AH A.
max
min kAxk =
min
max kAxk,
dimV = k x VS
dimV = n k x VS
(5.104)
def
def
(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)
(5.108)
j=1
5.4.2
(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
5.4.3
415
def
gapI = min |i j |
iI
j6I
(5.111)
relgapi = min
j1:p
j6=i
|i j |
,
i + j
def
relgapI = min
iI
j6I
|i j |
,
i + j
(5.112)
ui =
1
.
gapi
(5.114)
5.5
Stabilitatea numeric
a a algoritmului DVS
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)
kV k p(m, n)M ,
(5.116)
def
416
(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
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
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
2
|zi |2 i2 = k+1
+
k
X
i=1
Pk+1
i=1
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
(5.122)
1. r r + 1
2. Dac
a r = p atunci break
Comentarii.
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
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 |
k
X
k
X
j=1
i2 =
i=1
Ak k2F
|bjj |2
r
X
i2 .
i=k+1
Pr
26
j2 +
k
X
j=1
|bjj
j |2
k
X
j=1
|bjj |2 = 0
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.
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
(5.124)
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
422
2. =
j
3. x = x + V ( : , j)
Comentarii.
5.6.3
423
5.6. APLICAT
IILE DVS
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)
min
kCGDkF ,
(b + r) Im(A + E)
E C
I mn ,
r C
I m,
(5.129)
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
(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)
(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
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.
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,
n
def
H = C[ A B ]D =
z}|{ z}|{
H1
H2
(5.138)
U=
n
z}|{ z}|{
1
= 0
0
mnp
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)
(5.140)
426
kwk=1
(5.141)
matricea G = [ E R ] definit
a de
H
H
G = [ E R ] = C 1 U2 2 [ V12
V22
]D1
(5.142)
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=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 ,
428
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.
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
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
(5.155)
(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)
= 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
y = QH
1 x,
A2 = AQ2 ,
z = QH
2 x,
b = b A1 y.
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)
431
5.6. APLICAT
IILE DVS
Problema CMMP cu restrictii p
atratice
(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)
432
(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)
|di |2 +
p
X
i=n+1
|di |2 2 .
(5.171)
di
,
ci
i = n rB + 1 : n.
(5.172)
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)
r = U ry ,
(5.176)
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 =
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)
(5.180)
434
bi
, i = 1 : rA ,
ci
yi =
di
, i = rA + 1 : n,
si
(5.181)
nr
XB
i=1
|di |2 +
rA
X
i=nrB
|si
p
X
bi
di |2 +
|di |2 .
ci
i=n+1
(5.182)
(5.183)
(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)
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)
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)
nr
XB
i=1
|di |2 +
p
X
i=n+1
|di |2 2 < 0,
(5.192)
ry = Cy b,
(5.193)
436
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.
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)
(y) = ky bk2 =
rA
X
i=1
|i yi bi |2 +
m
X
i=rA +1
|bi |2 ,
(5.196)
m
X
i=rA +1
|bi |2
(5.197)
438
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)
i
i=r +1
A
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)
5. Dac
a 2 atunci
1. Se calculeaza vectorul y C
I n definit n (5.198).
altfel
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.
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
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.
440
5.7
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
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}
442
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
kb Axk2 + kxk2
min
x IRn
443
5.8. PROBLEME
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
P 5.33 Se consider
a matricea
A() =
In1
0
IRnn ,
0.
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
(6.1)
(6.3)
446
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)
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).
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
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)
448
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 ]).
449
(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
(6.12)
6 Datorit
a faptului c
a n (6.11) este real, toate matricele dintr-un fascicol hermitic sunt
hermitice.
450
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
6.2.1
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
QH BZ = T,
(6.14)
BZ1 = Q1 T11 .
452
6.2.2
QT BZ = T,
(6.16)
(6.17)
i = 1 : p,
(6.18)
6.2. FORMA SCHUR GENERALIZATA
6.2.3
453
Forma diagonal
a a fascicolelor hermitice
pozitiv definite
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)
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)
(6.25)
454
(6.27)
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 .
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
(6.30)
456
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)
2. A (Qi1,i ) A
3. B (Qi1,i ) B
4.
5.
6.
7.
8.
(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 +
),
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
(1) H
(1)
(1)
(1) H
def
0
0
0
(1) H
0
0
0
0
0
0
0
(1)
0 0
(1)
),
),
).
def
(1)
(1)
(1)
(1) def
(1)
def
= (Q(1) ) AZ (1) ,
B B (1) =
(1) H
(Q23 )
(1)
(1)
(1)
(6.31)
(1) def
(1)
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)
def
(1)
(1)
(1)
(6.33)
def
(6.34)
(6.35)
458
HT- k
(k)
(k)
(k)
2. A (Qi1,i ) A
3. B (Qi1,i ) B
4.
5.
6.
7.
8.
(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)
def
(6.36)
si
H
(k)
(k)
(k)
(k)
(k)
(k)
def
(6.37)
(k)
(k)
def
(k)
(k)
(k)
(k)
def
(6.39)
def
(6.40)
def
(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
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
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
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
Dac
a zeroul se afl
a deja n ultima pozitie diagonal
a se execut
a numai instructiunea 2 din
462
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)
(kn)
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
),
),
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
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)
def
= (Q(kn) ) HZ (kn) ,
(kn)
(kn)
(kn)
(kn)
(kn)
(6.44)
(kn)
(kn)
= (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
464
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
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.
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
466
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)
467
6.3. ALGORITMUL QZ
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
.
(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
h11
t11
,
w=
h21
t11
(6.51)
(6.53)
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
(H, T ) (QH
23 H, Q23 T ) = (
H
(H, T ) (QH
34 H, Q34 T ) = (
+
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
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.
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.
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
472
H
(H22 , T22 ) (H22
, T22
) = (QH
22 H22 Z22 , Q22 T22 Z22 ),
(6.57)
Z = diag(Ip , Z22 , Iq ).
(6.58)
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
S=Q
H (B + F )Z,
T =Q
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).
hn1,n2
x11 =
tn2,n2
h
n1,n1 tn2,n1 x11
x12 =
tn1,n1
x21 = 0
x = hn,n1
22
tn1,n1
,
x23 =
tn,n
(6.60)
(6.61)
476
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)
= (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
vv T
,
1
2
kvk ,
2
1.
2.
3.
4.
5.
6.
= sgn(an )kak
vi = ai , i = 1 : n1
vn = an +
= an
ai = 0, i = 1 : n1
an =
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
(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
+
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)
(3)
(3)
(3)
(2)
(3)
(2)
(2)
(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
480
6. % Ultimele transformari
1.
2.
3.
4.
6.3. ALGORITMUL QZ
481
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
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.
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
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
S=Q
T (B + F )Z,
T =Q
6.3.4
(6.68)
486
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
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 ,
487
Z2H Z1 = 0, rezulta
V1 = Im([ Q1 Q2 ]
S11
0
S12
S22
Z1H
Z2H
(6.76)
6.4.1
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
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,
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)
489
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
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.
491
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.
6.4.2
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:
(6.83)
,
T = .
S= .
..
.. .
.
.
..
.
..
..
..
..
..
.
.
.
0
0 Tpp
0
0 Spp
492
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:
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
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.
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:
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
Comentarii.
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
18
| |
p
chord(, ) =
,
1 + 2 1 + 2
, IR.
497
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
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
Indicatii, r
aspunsuri, solutii
|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
INDICAT
II, RASPUNSURI,
SOLUT
II
502
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
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
zZ
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
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.
|bij |
i=2,i6=j
i=2,i6=j
|a11 ||aj1 |
|a1j | < |ajj ||j1 ||a1j | < |bjj |.
|a11 |
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
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
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)
U
=
B=L
A
XU
=
L
L
X
Atunci
=
U
U
0
LY
XY + A
Y
U
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
1
1
|aj1 | (1 + ) max |aij |.
i,j
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 .
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
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 .
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
1
2
3
4
5
3
4
5
6
5
6
7
7
8
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 ]
P2 = Q
0
0
0
Imn
QT ,
Q = [Q Q ],
R
0
M 1 = S = [S S ],
de compatibilitate este d = 0.
INDICAT
II, RASPUNSURI,
SOLUT
II
515
N = [N N ],
(L )1 b
0
L(x, ) =
Anul
and derivatele partiale ale lui L, se obtin conditiile
Gx c + AT = 0, Ax = b.
(7.9)
x = Zu,
precum si
T
Z GZ =
se obtine
19
In
H11
T
H12
u=
H12
H22
u1
u2
Z c=
=
=
=
d1
d2
d1
d2
b.
terminologia specific
a program
arii liniare, xB se numeste solutie de baz
a.
INDICAT
II, RASPUNSURI,
SOLUT
II
516
R1
0
x+
D1
D2
y=
d1
d2
se obtine
R1
0
x+
S1
0
S12
R2
v1
v2
d1
d2
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
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,
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.
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
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.
=
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
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
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
|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
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
]. 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,
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
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
n
X
i=1
(aii )2 = kAk2F
n
X
i=1
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)!
n2
2!
(n)2
2!
(n) 1 0 0 ] ,
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
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 ) ,
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 .
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
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
(k)
(k)
(k)
def
(k)
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 ].
INDICAT
II, RASPUNSURI,
SOLUT
II
531
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.
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
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
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