Sunteți pe pagina 1din 20

Seminar 5

Descompunerea valorilor
singulare si aplicatiile sale

Descompunerea valorilor singulare (DVS) este una dintre cele mai puternice metode n al-
gebra liniara. Probleme importante precum calculul rangului unei matrice, determinarea
bazelor ortogonale pentru subspatii liniare, calculul proiectiilor ortogonale pe subspatii
liniare, problema celor mai mici patrate sunt rezolvate cel mai bine folosind DVS. Acest
seminar este dedicat metodelor numerice de descompunere a valorilor singulare si aplicatiilor
lor.

5.1 Preliminarii
Descompunerea valorilor singulare a unei matrice A IRmn este definita astfel: exista
doua matrice ortogonale U IRmm si V IRnn astfel ncat
 
1 0
U T AV = = ,
0 0

unde
1 = diag(1 , 2 , ..., r ) IRrr ,
cu
1 2 ... r > 0.

Numerele reale pozitive i , i = 1 : r si i = 0, i = r + 1 : min(m, n) sunt numite valori


singulare ale lui A si sunt totdeauna ordonate descrescator.
Se poate arata (vezi cursul) ca valorile singulare nenule sunt radacinile patrate ale valo-
T
rilor proprii nenule ale matricelor simetrice si pozitiv semi-definite B
p= A A si C p = AAT , i.e.
daca valorile proprii sunt ordonate descrescator atunci, i (A) = i (A A) = i (AAT ),
T

i = 1 : r.
In concluzie, calculul DVS este un proces infinit care poate fi trunchiat cand aproximarea
este considerata acceptabila. Pentru detalii asupra algoritmului DVS vezi cursul.
Cele mai importante aplicatii ale DVS ale unei matrice date A IRmn sunt:

1
2 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

Rangul lui A este numarul r al valorilor sale singulare nenule. Pentru conceptul de
rang numeric consulta cursul.
Cea mai mare valoare singulara a lui A este norma spectrala a lui A, i.e. 1 = kAk2 =
maxkAxk2 = kxk = 1. Alte norme matriceale, conservate de catre transformarile
ortogonale (cum este norma Frobenius), pot fi exprimate cu ajutorul valorilor singulare.
Daca r =rangA si notam U1 = U (:, 1 : r), U2 = U (:, r + 1 : m), V1 = V (:, 1 : r) si
V2 = V (:, r + 1 : n) atunci
- coloanele lui U1 formeaza o baza ortogonala pentru subspatiul liniar ImA IRm ;
- coloanele lui U2 formeaza o baza ortogonala pentru subspatiul liniar KerAT
IRm ;
- coloanele lui V1 formeaza o baza ortogonala pentru subspatiul liniar ImAT IRn ;
- coloanele lui V2 formeaza o baza ortogonala pentru subspatiul liniar KerA IRn .
Cum este cunoscut, daca coloanele unei matrice W formeaza o baza ortogonala pentru
un subspatiu liniar S, atunci P = W W T este o matrice proiectie ortogonala pe S.
In concluzie, folosind DVS putem construi proiectii ortogonale pe subspatiile liniare
ImA, KerAT IRm , ImAT , KerA IRn .
Rezolvarea problemei generale a celor mai mici patrate, i.e. aflarea pseudosolutiei de
norma eucidiana minima a sistemului Ax = b

kx k = min kxk
min kb Axk

pentru un vector dat b IRm . Calculul solutiei sistemului problemei generale celor
mai mici patrate este
r
X vk uT b
x = A# b = V # U T b = k
,
k
k=1

unde uk , vk sunt coloanele corespunzatoare ale lui U si V .


Rezolvarea altor probleme de optimizare (vezi [3], [6]).
Calculul pseudoinversei Moore-Penrose a lui A:
r
X vk uT
A# = V # U T = k
.
k
k=1

Observatie. Valorile singulare ale unei matrice sunt perfect conditionate numeric. Poate
fi atatat (vezi [3],[5],[6]) ca

|k (A + E) k (A)| 1 (E) = kEk2

unde matricea E este o perturbatie a lui A, i.e. valorile singulare sunt modificate cat norma
spectrala a perturbatiei E. Deci, daca perturbatia este mica, variatia valorilor singulare va
fi mica. Acesta este motivarea afirmatiei ca DVS este cea mai buna metoda de a rezolva
toate probleme numerice mentionate mai sus.
5.2. PROBLEME REZOLVATE 3

5.2 Probleme rezolvate


5.2.1 Proprietatile DVS
Problema 5.1 Fie A IRmn o matrice data si P IRmn , Q IRmm doua matrice
ortogonale.
a. Demonstrati ca matricele B = AT si C = P AQ au aceleasi valori singulare cu
matricea A. Daca A = U V T este DVS al lui A scrieti DVS ale matricelor B si C.
b. Demonstrati ca matricea D = A, unde IR, are valorile singulare i (D) =
||i (A) si scrieti DVS ale lui D.

Solutie. a. Transpusa lui A = U V T este B = AT = V T U T , ntrucat DVS lui B este


B = UB B VBT , unde UB = V , VB = U sunt ortogonale si B = T este diagonala. Dar B
si au acceeasi diagonala, deci (B) = (A). Similar, C = P AQ = P U V T Q = UC VCT ,
unde UC = P U , Vc = QT V , sunt ortogonale, este DVS lui C. Binenteles, (C) = (A).
b. Daca = 0, atunci D = 0 are toate valorile singulare egale cu zero si DVS lui D

este e.g. D (luand UD = Im si VD = In ). Daca 6= 0, atunci D = A = || U || V T =

UD D VDT , unde UD = || U si VD = V sunt ortogonale (verifica!) si D = || este
diagonala cu termeni diagonali pozitivi descrescatori i (D) = ||i (A).

Problema 5.2 a. Demonstrati ca norma matriceala Frobenius k kF , definita pentru toate


matricele A IRmn de
v
um X n
q q uX
kAkF = tr(AT A) = tr(AAT ) = t a2ij
i=1 j=1

si norma matriceala spectrala k k2 , definita de

kAk2 = max kAxk2 ,


kxk2 = 1
sunt invariante la transformari ortogonale, i.e.

kU T AkF = kAV kF = kAkF kU T Ak2 = kAV k2 = kAk2 ,

unde U IRmm si V IRnn sunt ortogonale, si exprimati-le n functie de valorile singulare


ale lui A.
b. Demonstrati ca p
kAk2 kAkF rang(A)kAk2 .
c. Daca matricea A este patratica si nesingulara, exprimati numerele de conditionare
F = kAkF kA1 kF si 2 = kAk2 kA1 k2 n functie de valorile singulare A.

Solutie. a. Incepem prin a demonstra ca norma matriceala Frobenius este invariabila la


transformari ortogonale. Avem kU T Ak2F = tr(AT U U T A) = tr(AT A) = kAk2F si kAV k2F =
tr(AV V T AT ) = tr(AAT ) = kAk2F . Daca A = U V T este DVS a lui A, atunci
q
kAkF = kkF = 12 + 12 + + r2 ,
4 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

unde r este numarul valorilor singulare nenule ale lui A.


Deoarece norma vectrala euclidiana este invarianta la transformarile ortogonale, i.e.
kQxk2 = kxk2 pentru toate matricele ortogonale Q si toti vectorii x, avem pentru norma
spectrala
kU T Ak2 = max kU T Axk2 = max kAxk2 = kAk2
kxk2 = 1 kxk2 = 1
si
kAV k2 = max kAV xk2 = max kAwk2 = kAk2 ,
kxk2 = 1 kwk2 = 1
unde w = V x. Pentru a exprima kAk2 n functie de valorile singulare ale lui A avem:

kAk2 = max kAxk2 = max kU V T xk2 = max kwk2 =


kxk2 = 1 kxk2 = 1 kwk2 = 1
q
= max 12 w12 + 22 w22 + + n2 wn2 =
kwk2 = 1
q
= max 12 (1 w22 wn2 ) + 22 w22 + + n2 wn2 =
kwk2 = 1
q
= max 12 + (22 12 )w22 + + (n2 12 )wn2 .
kwk2 = 1
Dar 1 i pentru toti i = 2 : n, deci i2 12 0 pentru toti i = 2 : n si maximul este
obtinut pentru wi = 0 pentru toti i = 2 : n. In concluzie

kAk2 = 1 ,

i.e. norma spectrala a lui A este cea mai mare valoare singulara a lui A.
b. Rangul r = rang(A) al P matricei A este numarul valorilor singulare nenule ale lui
r
A. Binenteles, kAk22 = 12 2 2
i=1 i = kAkF . Deci kAk2 P kAkF . Deoarece valorile
r
singulare sunttotdeauna ordonate descrescator, avem kAk2F = i=1 i2 r12 = rkAk22 .
Deci kAkF rkAk2 .
Observatie. Doua norme matriceale si sunt numite echivalente daca exista doua
numere pozitive 1 si 2 astfel ncat 1 (A) (A) 2 (A) pentru toate matricele A. In
concluzie k k2 si k kF sunt doua norme matriceale echivalente.
c. Daca matricea A este patratica (m = n) si nesingulara, atunci rangA = n, i.e. toate
valorile sale singulare sunt nenule. Deci, daca A = U V T este DVS lui A, atunci este
nesingulata si A1 = V 1 U T . Astfel, daca (A) = { 1 , 2 , . . . , n }, atunci valorile singu-
lare ale lui A1 sunt (A1 ) = { 1/n , 1/n1 , . . . , 1/1 } (valorile singulare sunt totdeauna
ordonate descrescator!). Asadar avem
s
1 1 1 1 1
kA kF = 2
+ 2 + + 2 si kA1 k2 = .
n n1 1 n

In concluzie
s
1 1 1
q
F = kAkF kA1 kF = 12 + 22 + + n2 + 2 + + 2
n2 n1 1
5.2. PROBLEME REZOLVATE 5

si
1
2 = kAk2 kA1 k2 = .
n

Problema 5.3 Fie A IRnn o matrice simetrica, i.e. satisface conditia AT = A si


fie (A) = { 1 , 2 , . . . , n }, cu |1 | |2 | . . . |n | multimea valorilor sale proprii.
Demonstrati ca valorile singulare ale lui A sunt i = |i |, i = 1 : n.

Solutie. Intai, matricele simetrice au spectre proprii reale si forma lor Schur este diagonala
(vezi problema rezolvata 4.7, seminar 4). Acum, fie S = QT AQ = = diag(1 , 2 , . . . , n )
T T T T T
cu Q ortogonal si |1 | |2 | . . . | pn |. Rezulta Q
p A AQ =pQ A QQ AQ = =
2 2 2 T 2 2
diag(1 , 2 , . . . , n ). In concluzie, i = i (A A) = i (A ) = i = |i |, i = 1 : n.

Problema 5.4 Demonstrati ca o matrice patratica are (cel putin) o valoare singulara zero
doar daca are o valoare proprie zero.

Solutie.pFie A IRnn . In seminarul 4 am demonstrat ca detA = i . Tinand cont ca


Q
i (A) = 2i (AT A) avem 0 (A) detA = 0 detAT A = 0 0 (A).

Problema 5.5 Fie Q IRmn o matrice cu coloanele ortogonale, i.e. QT Q = In .


a. Cat este kQk2 ?
b. Fie R IRpn , p m n + 1 o matrice obtinuta din Q prin eliminarea a cel mult
n 1 linii. Demonstrati ca kRk2 = kQk2 .

Solutie. a. Deoarece QT Q = In , toate valorile singulare ale lui Q sunt egale cu 1. Rezulta
kQk2 = 1 = 1.
b. Pentru a arata ca kRk2 = 1, se observa ntai ca permutarea liniilor matricei este o
transformare ortogonala si ca o transformare ortogonala nu schimba valorile singulare (vezi
problema rezolvata 4.1). Asadar, permutarile liniilor nu schimba norma spectrala. Deci, nu
pierdem din generalitate daca presupunem ca randurile   k = m p n 1 eliminate din
R
matricea Q sunt ultimele, i.e. putem scrie Q = . Fie R = U CV T DVS a matricei
T
R, unde C = diag(c1 , c2 , . . . cn ), si c1 c2 . . . cn 0 sunt valorile singulare ale lui R.
Dar QT Q = RT R + T T T = In . RezultapRT R = In V C 2 V T = V (In C 2 )V T = V S 2 V T ,
unde S = diag(s1 , s2 , . . . sn ), cu si = 1 c2i valorile singulare ale matricei R n ordine
crescatoare. Deoarece matricea T are cel mult n 1 linii, are cel mult n 1 valori singulare
nenule. In concluzie, s1 = 0, i.e. c1 = kRk2 = 1. Aparent, acesta este un rezultat uimitor:
eliminarea unui numar de elementele posibile nenule ai unei matrice nu schimba norma sa
spectrala. Explicatia consta n faptul ca o asemenea eliminare nu modifica cea mai mare
valoare singulara care este norma spectrala.

Problema 5.6 Demonstrati ca orice matrice m n reala este limita unei multimi de rang
maxim m n real matriceal. Interpretati importanta acestui rezultat pentru practica nu-
merica.

Solutie. Fie A = U V T DVS matricei A, unde = diag(1 , 2 , . . . , p ), cu p = min(m, n).


(k) (k) (k)
Binenteles, exista multimea de numere reale (i )kIN ca limk i = i si i 6= 0
6 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

def (k) (k) (k) def


pentru toti i si k. Daca definim matricele k = diag(1 , 2 , . . . , p ), si Ak = U k V T ,
atunci toate matricele Ak au rang maxim si limk Ak = A. Asta nseamna ca la apropierea
de oricare matrice mn (inclusiv matricea mn nula) exista matrice de rang maxim. Astfel,
ntr-un mediu de calcul aproximativ rangul matematic al unei matrice nu are releventa
deoarece erorile de rotunjire pot schimba rangul unei matrice date n rangul maxim. Aceasta
observatie subliniaza importanta conceptului de rang numeric.

5.2.2 Calculul DVS


Problema 5.7 Fie u IRm , v IRn doi vectori dati.
a. Care este DVS lui A = uv T ? Cat este rangul lui A ?
b. Demonstrati ca orice matrice de rang 1 A IRmn poate fi scrisa sub forma A = bcT ,
unde b IRm , c IRn .
c. Daca m = n, propuneti un algoritm care sa calculeze DVS a lui A = In + uv T . Cat
este rangul lui A ?

Solutie. a. Daca U1 IRmm , V1 IRnn sunt reflectori Householder astfel luati ncat
U1 u = kuke1 IRm si V1 v = kvke1 IRn , atunci
 
kukkvk 0
U1T AV1 = IRmn
0 0

este DVS a lui A. Valorile singulare sunt 1 = kukkvk si i = 0 pentru i > 1. Binenteles,
rank(A) = 1 daca u 6= 0, v =
6 0, si zero altfel.
b. Daca matricea A IRmn are rangul 1, atunci valorile sale singulare sunt 1 6= 0
si i = 0 pentru i > 1. In concluzie, din DVS a lui A, i.e U T AV = = diag(1 , 0, . . . , 0),
avem
A = U V T = U (:, 1)1 (V (:, 1))T = bcT ,
unde e.g. b = 1 U (:, 1) IRm , c = V (:, 1) IRn .
c. Daca u = 0 si/sau v = 0, atunci A = In si luand U = V = In matricea A este
propriul sau DVS cu toate valorile proprii egale cu 1. Presupunand acum ca u 6= 0, v 6= 0
u v
si rezulta u = si v = . Acum putem construi o matrice ortogonala W Rnn
kuk kvk
astfel ncat W uv (vezi problema rezolvata 3.4 din seminarul 3). Fie w = W u IRn cu,
binenteles, kwk = 1. Procedand la fel ca n problema rezolvata 3.3 (vezi seminarul 3) putem
acum calcula o matrice Y IRn(n2) cu coloane ortogonale (i.e. Y T Y = In2 ) la fel cum
matricea U = [v w Y ] sa fie ortonolala. Desigur, matricea V = [w v Y ] este de asemenea
ortogonala. Atunci
T
v
U T AV = U T (I + uv T )V = wT (I + uv T )[w v Y ] =
YT

v T (I + uv T )w v T (I + uv T )v v T (I + uv T )Y

= wT (I + uv T )w
wT (I + uv T )v wT (I + uv T )Y .
Y T (I + uv T )w Y T (I + uv T )v Y TY
5.2. PROBLEME REZOLVATE 7

Dar, v T Y = 0, v T Y = 0, v T w = 0, Y T w = 0, Y T Y = In2 si wT w = 1, v T v = 1. In
concluzie, = 1 + v T uv T v = 1 + v T u si = wT uv T v obtinem

0 1 + v T uv T v

0 0 0
U T AV = 1 wT uv T v 0 = 1 0
0 0 In2 0 0 In2
 
0
si problema a fost redusa la cazul 2 2. Intradevar, fie matricea 2 2 B = care
1
are DVS UBT BVB = B . Atunci
 T     
T UB 0 T VB 0 B 0
U AV = U AV =
0 In2 0 In2 0 In2

este diagonala si daca 1 (B) 2 (B) 1 este DVS lui A. In orice caz, valorile singulare
ale matricei A sunt (A) = (B) (In2 ), i.e. n 2 valori singulare sunt egale cu 1 si
celelalte doua sunt cele ale lui B.
Observatie. Cu toate ca n cazul general valorile singulare ale unei matrice A IRmn cu
min(m, n) > 4 nu pot fi calculate ntr-un numar finit de operatii aritmetice, n unele cazuri
speciale, ca cel de mai sus, este posibil.

Problema 5.8 Consideram o matrice superior bidiagonala J IRnn definita de vectorul


f IRn ,al elementelor diagonale si de vectorul g IRn1 format din elementele primei
supradiagonale diagonalei, i.e.

f1 g1
.
f2 . .


J = .
..
. gn1
fn

Aratati ca daca matricea J are doua valori singulare egale i = i+1 , atunci f si/sau g are
un element nul.

Solutie. Matricea T = J T J este tridiagonala, simetrica si pozitiv semidefinita. Deoarece


i (T ) = i2 (J), matricea T are (cel putin) doua valori proprii egale. Vom arata ca n aceste
conditii matricea T este reductibila, i.e exista i astfel ncat T (i+1, i) = gi fi = 0. In concluzie,
gi = 0 si/sau fi = 0. Fie (T ) valoarea proprie dubla a lui T . Atunci exista doi vectori
proprii ortogonali x si y, asociati valorilor proprii , i.e. T x = x si T y = y, cu y T x = 0.
Presupunem ca matricea T este ireductibila, i.e. T (i + 1, i) 6= 0 pentru  toti i = 1 : n 1.
S11 S12
Consideram matricea S = T In si partitionand-o sub forma S = , unde
S21 S22
S11 = S(1 : n 1, 1) IR(n1)1 si S12 = S(1 : n 1, 2 : n) IR(n1)(n1) deoarece T este
1
ireductibila, blocul S12 este nesingular. Atunci x(2 : n) = S12 S11 x(1). Deoarece x 6= 0,
1
avem x(1) 6= 0. Similar y(2 : n) = S12 S11 y(1) cu y(1) 6= 0. Rezulta ca vectorii x si y sunt
coliniari, ceea ce reprezinta o contradictie cu faptul ca sunt ortogonali. In concluzie T nu
poate fi ireductibil. Demonstratia este completa.
8 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

Problema 5.9 Adaptati algoritmul JQ pentru o reducere eficienta a unei matrice superior
triunghiulare A IRnn la forma superior bidiagonala folosind transformari ortogonale de
echivalenta.

Solutie. Sa introducem asa numitele rotatii modificate Pij , i < j, care fac sa se anuleze
elementul xi pentru un vector dat x IRn , i.e. (PijT x)(i) = 0 (n loc sa se anuleze elementul
xj ca pentru rotatiile obisnuite). Este usor de vazut ca scalarii definitori c, s si x PijT x
pot fi calculati n acest caz dupa cum urmeaza:
q
1. = x2i + x2j
xj
2. c =

xi
3. s =

4. xi 0
5. xj .

Pentru a exploata structura superior triunghiulara a lui A, vom folosi o secventa de rotatii
plane modificate ca n urmatoare schema de calcul:

1. pentru k = n : 1 : 3
1. pentru i = 1 : k 2
1. Se calculeaza rotatia plana modificata Pi,i+1 astfel
T
ca (Pi,i+1 A)(i, k) = 0.
T
2. A Pi,i+1 A % structura este modificata n pozitia (i + 1, i).
3. Se calculeaza rotatia plana modificata Qi,i+1 astfel
ca (AQi,i+1 )(i + 1, i) = 0.
4. A AQi,i+1 .

Cand n = 4, primul pas al ciclului extern pentru este exemplificat mai jos:

0
T
+ , A AQ12 =

A P12 A= ,



0 0
T
0
A P23 A = , A AQ23 = .
+

unde + reprezinta zerourile modificate, reprezinta ultimele zerouri introduse si 0 reprezinta
zerourile introduse la pasii anteriori.
Acum este usor sa transformam schema de calcul ntr-un algoritm detaliat.

1. pentru k = n : 1 : 3
=1:k2
1. pentru iq
1. = a2ik + a2i+1,k
5.2. PROBLEME REZOLVATE 9

ai+1,k
2. c =

ai,k
3. s=

4. aik 0
5. ai+1,k
6. ai+1,i = saii
7. pentru j = i + 1 : k 1
1. = aij
2. aij = caij sai+1,j
3. q
ai+1,i = s + cai+1,j
8. = a2ik + a2i+1,k
ai+1,i
9. c =

ai+1,i+1
10. s =

11. ai+1,i 0
12. ai+1,i+1
13. pentru l = 1 : i
1. = al,i
2. ali = ali c + al,i+1 s
3. al,i+1 = s + al,i+1 s.

Numarul de flopi necesari algoritmului (care nu cumuleaza si transformarile) este Nf l 2n3 ,


n comparatie cu Nf l 8n3 /3 flopi necesari algoritmului JQ.

Problema 5.10 Adaptati algoritmul JQ pentru o reducere eficienta a unei matrice tridi-
agonale T IRnn la o forma superior bidiagonala folosind transformari ortogonale de
echivalenta.

Solutie. Sa aplicam ntai o secventa rotatii plane pentru a reduce matricea tridiagonala
la forma superior triunghiulara (cu numai doua supradiagonale nenule), ca n urmatoarea
schema de calcul:

1. pentru k = 1 : n 1
1. calculeaza rotatia plana Pk,k+1
T
ca (Pk,k+1 T )(k + 1, k) = 0.
T
2. T Pk,k+1 T.

Acum, putem adapta solutia bazandu-ne pe solutia problemei rezolvate anterior:

1. p = n
2. pentru k = n : 1 : 3
1. p = max{1, p 2}
2. pentru i = p : k 2
1. Se calculeaza rotatia plana modificata Pi,i+1 astfel
T
ca (Pi,i+1 A)(i, k) = 0.
T
2. A Pi,i+1 A % structura este modificata n pozitia (i + 1, i).
10 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

3. Se calculeaza rotatia plana modificata Qi,i+1 astfel


ca (AQi,i+1 )(i + 1, i) = 0.
4. A AQi,i+1 .
Observam ca pentru k = n trebuie sa eliminam doar un element doua elemente tn3,n1
si tn4,n1 deoarece termenul zero tn4,n1 a fost modificat prin nmultire la dreapta cu
Qn1,n etc. Pentru a ne descurca cu aceasta modificare structurala am introdus variabila
ntreaga p. Algoritmul detaliat este:
1. pentru kq= 1 : n 1
1. = t2kk + t2k+1,k
tk,k
2. c =

tk+1,k
3. s =

4. tkk
5. tk+1,k 0
6. = tk,k+1
7. tk,k+1 = ctk,k+1 stk+1,k+1
8. tk+1,k+1 = s + ctk+1,k+1
9. daca k < n 1
1. tk,k+2 = stk+1,k+2
2. tk+1,k+2 = ctk+1,k+2
2. p = n
3. pentru k = n : 1 : 3
1. p = max{1, p 2}
2. pentru iq =p:k2
1. = t2ik + t2i+1,k
ti+1,k
2. c =

ti,k
3. s=

4. tik 0
5. ti+1,k
6. ti+1,i = stii
7. tii = ctii
8. pentru j = i + 1 : k 1
1. = tij
2. tij = ctij sti+1,j
3. q
ti+1,i = s + cti+1,j
9. = t2i+1,i + t2i+1,i+1
ti+1,i+1
10. c =

ti+1,i
11. s=

12. ti+1,i 0
13. ti+1,i+1
14. q = max{1, p 2}
5.2. PROBLEME REZOLVATE 11

15. pentru l = q : i
1. = tli
2. tli = tli c tl,i+1 s
3. tl,i+1 = s + tl,i+1 c.

Problema 5.11 Fie A IRmn , cu m < n, o matrice data. Scrieti un algoritm  eficient
pentru calculul matricelor ortogonale U IRmm , V IRnn astfel ca U T AV = B 0
cu B IRmm superior bidiagonala.

Solutie. Aplicam algoritmul JQ pentru a reduce matricea A la o forma superior bidiagonala


obtinem:
0 0 0
0 0 0

T
C = ... ... ...
 
A U AV = B C ,


0 0 0
x 0 0
Pentru ca termenii nenuli sa dispara (m, n+1) aplicam n partea dreapta o secventa de rotatii
plane A APm,m+1 Pm1,m+1 . . . P1,m+1 care muta termenii nenuli n sus pe coloana m + 1
pana cand sunt eliminati, ca n exemplul urmator cu m = 3, n = 5:


A= , A AP34 = + ,
+

+
A AP24 = , A AP34 = .

Schema de calcul este:
1. A B = JQ(A)
2. pentru k = m : 1 : 1
1. Se calculeaza rotatia plana Pi,m+1 astfel
ca (APi,m+1 )(i, m + 1) = 0.
2. A APi,m+1
si algoritmul detaliat:
1. A B = JQ(A)
2. pentru kq= m : 1 : 1
1. = ai i2 + a2i,m=1
2. c = aii /
3. s = ai,m+1 /
4. aii =
5. ai,m+1 = 0
6. daca i > 1
1. ai1,m+1 = ai1,i s
2. ai1,i = ai1,i c.
Efortul de calcul cel mai mare este n executarea procedurii JQ.
12 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

5.2.3 Aplicatiile SVD


Problema 5.12 Consideram matricele A IRmm , B IRnn , C, D IRmn si sistemul
matriceal: 
AX Y B = C
XB T AT Y = D

a. Aratati ca sistemul matriceal de mai sus are o solutie unica (X, Y ) IRmn IRmn
daca si numai daca (A) (B) = .
b. Presupunand conditia de mai sus satisfacuta, scrieti un algoritm care sa calculeze
solutia (X, Y ).

Solutie. a. Fie descompunerea valorilor singulare ale lui A si B: unde A = UA A VAT ,


B = UB B VBT . Folosindu-le sistemul matriceal devine:
(
UA A VAT X Y UB B VBT = C
,
XVB TB UBT VA TA UAT Y = D
sau (
A X Y B = C
,
XTB TA Y = D
unde
X = VAT XVB , Y = UAT Y UB , C = UAT XVB , D = VAT XUB .
Binenteles sistemul matriceal initial are o solutie unica daca si numai daca sistemul trans-
format are o solutie unica. Dar sistemul matriceal transformat poate fi scris ca un set de
mn sisteme liniare de doua ecuatii cu doua necunoscute, luand ecuatiile scalare (ij) din cele
doua ecuati matricele:

(A) (B)
i j
   
xij = cij ,
dij

j
(B)
i
(A) yij

(A) (B)
unde i , i = 1 : m sunt valorile singulare ale lui A si j , j = 1 : n sunt valorile singulare
ale lui B. Fiecare dintre aceste sisteme are o solutie unica (xij , yij ) daca si numai daca
(A) (B)
i j
matricea este nesingulara, i.e. i(A) 6= j(B) (deoarece valorile singulare
(B) (A)
j i
sunt numere reale pozitive). Toate i si j aceste conditii sunt echivalente cu (A) (B) = .
b. Pentru a rezolva sistemul matriceal putem proceda ca mai sus. Daca dvs este metoda
pentru a calcula DVS unei matrice date, atunci putem folosi urmatoarea schema de calcul:

1. [ UA , A , VA ] = svd(A)
2. [ UB , B , VB ] = svd(B)
3. C = UAT XVB
4. D = VAT XUB
5. pentru i = 1 : m
1. pentru j = 1 : n
5.2. PROBLEME REZOLVATE 13


(A) (B)
i j
   
xij cij
1. rezolva sistemul liniar = .
dij

j
(B) (A)
i yij
6. X = VA XVBT
7. Y = UA Y UBT .

Detaliile sunt lasate pentru studenti.

Problema 5.13 Consideram matricea A IRmn si vectorul b IRm .


a. Aratati ca pentru > 0 problema de minimizare

minn kb Axk2 + kxk2



xIR

admite o solutie unica x .


b. Acest lucru se ntampla si pentru & 0 ?
c. Scrieti un algoritm eficient pentru a calcula solutia x .
d. Aratati ca sistemul liniar

(AT A + In )(AT A + In )y = ( )AT b


not
este satisfacut de y = x x .

Solutie. a. Folosind DVS A = U V T si tinand cont ca norma euclidiana este invari-


anta la transformarile ortogonale, problema devine echivalenta cu urmatoarea problema de
minimizare:

minn kb Axk2 + kxk2 = minn kb U V T xk2 + kV T xk2 =


 
xIR xIR

= minn {kd yk2 + kyk2 },


yIR

unde d = U T b si y = V T x. Binenteles aceasta problema este simpla si poate fi rezolvata


usor. Pentru aceasta, fie r rangul lui A. Avem
n
X
kd yk2 + kyk2 = (di i yi )2 + yi2 =

i=1

r
X n
X
d2i 2di i yi + (i2 + )yi2 + d2i + yi2 =
 
=
i=1 i=r+1
!2
n 2 n
di di i
X q X
d2i + yi2 .

= i2 + yi +
i2 +
p
i=1 i2 + i=r+1

In concluzie minimul este atins pentru y unic dat de


di i
yi = , i = 1 : r, yi = 0, i = r + 1 : n
i2 +
14 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

si valoarea sa este
r n
X d2i X
minn {kd yk2 + kyk2 } = 2+ + d2i .
yIR i=1
i i=r+1

Pentru problema initiala de minimizare solutia este unica si data de x = V y = V1 y(1 :


r), unde V1 = V (:, 1 : r). Observam ca pentru 0 diagonala matricei 21 + Ir este
nesingulara. Avem y(1 : r) = (21 + Ir )1 1 d(1 : r). Dar d(1 : r) = (U T b)(1 : r) = U1T b,
unde U1 = U (:, 1 : r). In concluzie, solutia problemei initiale de minimizare poate fi scrisa
sub forma
x = V1 (21 + Ir )1 1 U1T b.

b. Cand & 0 obtinem

x0 = V1 (21 )1 1 U1T b = V1 1 T #
1 U1 b = A b,

unde A# este pseudoinversa lui A, i.e. x0 este solutia problemei celor mai mici patrate
pentru sistemul liniar Ax = b.
c. Algoritmul pentru calcularea vectorului x :

1. [ U, , V ] = dvs(A)
2. d = (U (:, 1 : r))T b
3. pentru i = 1 : r
di i
1. di = 2
i +
4. x = V (:, 1 : r)d.

Detaliile sunt lasate pentru studenti.


d. Pentru a arata ca

(AT A + In )(AT A + In )(x x ) = ( )AT b

observam ntai ca, cu notati uzuale, AT A = V1 21 V1T si, n concluzie

(AT A + In )x = (V1 21 V1T + In )V1 (21 + Ir )1 1 U1T b =

= V1 (21 + In )(21 + Ir )1 1 U1T b = V1 1 U1T b = AT b


pentru {, }, deoarece V1T V1 = Ir . Dar matricele AT A + In si AT A + In comuta.
Atunci, avem

(AT A + In )(AT A + In )x = (AT A + In )(AT A + In )x =

= (AT A + In )AT b = AT AAT b + AT b.


Scazand,
(AT A + In )(AT A + In )x = AT AAT b + AT b.

Inlocuind ultimele doua relatii obtinem rezultatul dorit.


5.3. PROBLEME PROPUSE 15

5.3 Probleme propuse


Problema 5.14 Care sunt valorile singulare ale matricelor:

  1 2
1 1 2
A= , B= 2 1 ?
1 0 1
0 1


6 3 1
Problema 5.15 Aratati ca matricea A = 1 3 3 este normala, i.e. AAT = AT A,
3 1 3
si calculati valorile sale proprii si valorile sale singulare. Verificati ca i = |i |, i = 1 : 3.

Problema
 5.16
 a. Dati formule explicite pentru a calcula valorile singulare ale matricei

1 2
A = . Aplicati-le pentru a calcula valorile singulare pentru A = si
  3 4
1 3
B= .
2 4
b. Aceeasi problema pentru cazul
 simetric,
 i.e. dati formule explicite pentru a calcula

valorile singulare ale matricei A = . Aplicati-le pentru a calcula valorile singulare
   
1 2 1 1
pentru A = si B = .
2 1 1 1

Indicatie: a.
s  
1
q
2 2 2 2 2 2 2 2 2 2 2 2
1 = + + + + ( ) + ( ) + 2( + ) + 2( + ) ,
2

etc.

Problema 5.17 Aratati ca daca A IRmn are rangul n, atunci kA(AT A)1 AT k2 = 1.

Problema 5.18 Calculati valorile singulare pentru o matrice ortogonala Q IRnn .

Problema 5.19 Fie V IRmk o matrice cu coloanele ortogonale. Matricea P = V V T


este numita matrice de proiectie ortogonala pe subspatiul liniar ImV .
a. Aratati ca matricea Q = I 2P este ortogonala.
b. Calculati valorile singulare ale unei matrice de proiectie ortogonala.

Problema 5.20 Fie A, B IRnn doua matrice patratice. Am demonstrat ca AB si BA au


aceeleasi valori proprii. Acest lucru este adevarat si pentru valorile singulare ale matricelor
AB si BA ?
16 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

5.4 Bibliografie
1. B. Jora, B. Dumitrescu, C. Oara, Numerical Methods, UPB, Bucharest, 1995.
2. G.W. Stewart, Introduction to Matrix Computations, Academic Press, 1973.
3. G. Golub, Ch. Van Loan, Matrix Computations, 3-rd edition, John Hopkins Uni-
versity Press, 1998.
4. G.W. Stewart, Matrix Algorithms, vol.1: Basic Decompositions, SIAM, 1999.
5. G.W. Stewart, Matrix Algorithms, vol.2: Eigensystems, SIAM, 2001.
6. B. Dumitrescu, C. Popeea, B. Jora, Metode de calcul numeric matriceal. Al-
goritmi fundamentali, ALL, Bucuresti, 1998.
5.5. PROGRAME MATLAB 17

5.5 Programe MATLAB


In aceasta sectiune sunt date programele MATLAB pentru implementarea algoritmilor
prezentati n acest seminar. Programele au fost testate si pot fi obtinute de la autorul
lor mentionat n comentariile atasate.

1: function [ A ]=JQ ortogonal(A)


2: %
3: % Se da o matrice A(nxm). Algoritmul ofera o metoda eficienta pentu
4: % calculul matricelor ortogonale U (mxm) si V (nxn) cu U transpus*A*V=[ B 0 ].
5: % B este o matrice superior bidiagonala.
6: % Apelul: A=JQ ortogonal(A)
7: %
8: % Dumitru Iulia, mai 2006.
9: %
10: [ n,m ]=size(A);
11: B=JQ(A);
12: A=B;
13: for k=m:-1:1
14: rho=sqrt(A(i,i)*A(i,i)+A(i,m=1)*A(i,m=1));
15: c=A(i,i)/rho;
16: s=A(i,m+1)/rho
17: A(i,i)=rho
18: A(i,m+1)=0;
19: if i>1
20: A(i-1,m+1)=A(i-1,i)*s;
21: A(i-1,i)=A(i-1,i)*c;
22: end
23: end
24:

1: function [ T ]=JQ tridiagonal(T);


2: %
3: % Se da o matrice patratica, superior tridiagonala T. Algoritmul ofera o
4: % reducere eficienta a matricei A la forma superior bidiagonala, folosind
5: % algoritmul JQ si transformarile ortogonale.
6: % Apelul: T=JQ tridiagonal(T)
7: %
8: % Dumitru Iulia, mai 2006.
9: %
10:
11: [ n,m ]=size(T);
12:
13: %analizam daca matricea e patratica
18 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

14: if n=m
15: error(Matricea nu e patratica);
16: end
17:
18: for i=1:n-2
19: for j=i+2:n
20: if T(i,j)=0
21: error(Matricea nu e tridiagonala)
22: end
23: end
24: end
25: for i=3:n
26: for j=1:i-2
27: if T(i,j)=0
28: error(Matricea nu e tridiagonala)
29: end
30: end
31: end
32:
33: for k=1:n-1
34: rho=sqrt(T(k,k)*T(k,k)+T(k+1,k)*T(k+1,k));
35: c=T(k,k)/rho;
36: s=-T(k+1,k)/rho;
37: T(k,k) =rho;
38: T(k+1,k)=0;
39: rho=T(k,k+1);
40: T(k,k+1)=c*T(k,k+1)-s*T(k+1,k+1);
41: T(k+1,k+1)=s*rho+c*T(k+1,k+1);
42: if k<n-1
43: T(k,k+2)=-s*T(k+1,k+2);
44: T(k+1,k+2)=c*T(k+1,k+2);
45: end
46: end
47: p=n;
48: for k=n:-1:3
49: max=1;
50: if max<p-2
51: max=p-2;
52: end
53: p=max;
54: for i=p:k-2
55: rho=sqrt(T(i,k)*T(i,k)+T(i+1,k)*T(i+1,k));
56: c=T(i+1,k)/rho;
57: s=T(i,k)/rho;
58: T(i,k) =0;
59: T(i+1,k)=rho;
60: T(i+1,i)=s*T(i,i);
5.5. PROGRAME MATLAB 19

61: T(i,i)=c*T(i,i);
62: for j=i+1:k-1
63: tau=T(i,j);
64: T(i,j)=c*T(i,j)-s*T(i+1,j);
65: T(i+1,i)=s*tau + c*T(i+1,j);
66: end
67: rho=sqrt(T(i+1,i)*T(i+1,i)+T(i+1,i+1)*T(i+1,i+1));
68: c=T(i+1,i+1)/rho;
69: s=T(i+1,i)/rho;
70: T(i+1,i)=0;
71: T(i+1,i+1)=rho;
72: max=1;
73: if max<p-2
74: max=p-2;
75: end
76: q=max;
77: for l=q:i
78: tau=T(l,i);
79: T(l,i)=T(l,i)*c-T(l,i+1)*s;
80: T(l,i+1)=tau*s+T(l,i+1)*c;
81: end
82: end
83: end

1: function [ A ]=JQ triunghiular(A);


2: %
3: % Se da o matrice patratica, superior triunghiulara A. Algoritmul ofera o
4: % reducere eficienta a matricei A la forma superior bidiagonala, folosind
5: % algoritmul JQ si transformarile ortogonale.
6: % Apelul: A=JQ triunghiular(A);
7: %
8: % Dumitru Iulia, mai 2006.
9: %
10:
11: [ n,m ]=size(A);
12:
13: %analizam daca matricea e patratica
14: if n=m
15: error(Matricea nu e patratica);
16: end
17:
18: for i=1:n
19: for j=1:n
20: if i>j
21: if A(i,j)=0
22: error(Matricea nu este superior trunghiulara);
20 SEMINAR 5. DESCOMPUNEREA VALORILOR SINGULARE

23: end
24: end
25: end
26: end
27:
28: for k=n:-1:3
29: for i=1:k-2
30: rho=sqrt(A(i,k)*A(i,k)+A(i+1,k)*A(i+1,k));
31: c=A(i+1,k)/rho;
32: s=A(i,k)/rho;
33: A(i,k) =0;
34: A(i+1,k)=rho;
35: A(i+1,i)=s*A(i,i);
36: for j=i+1:k-1
37: tau=A(i,j);
38: A(i,j)=c*A(i,j)-s*A(i+1,j);
39: A(i+1,i)=s*tau + c*A(i+1,j);
40: end
41: rho=sqrt(A(i,k)*A(i,k)+A(i+1,k)*A(i+1,k));
42: c=A(i+1,i)/rho;
43: s=A(i+1,i+1)/rho;
44: A(i+1,i)=0;
45: A(i+1,i+1)=rho;
46: for l=1:i
47: tau=A(l,i);
48: A(l,i)=A(l,i)*c+A(l,i+1)*s;
49: A(l,i+1)=-tau*s+A(l,i+1)*s;
50: end
51: end
52: end

S-ar putea să vă placă și