Metode Numerice
Curs I
Introducere
Ion Necoara
2014
Personal
Curs: Prof. dr.. Ion Necoara ([Link]@[Link])
Laborator: drd. Andrei Patrascu
([Link]@[Link])
Examinare
25 puncte laborator, seminar si curs
25 puncte colocviu ( saptamana 8)
50 puncte examen final
Bibliografie
Note de curs/lab: [Link]
Carte: B. Dumitrescu, C. Popeea, B. Jora, Metode de calcul
numeric matricial. Algoritmi fundamentali, Editura All.
Culegere: G. Stamatescu, I. Dumitru, V. Buta, Metode
numerice: Culegere de probleme, MatrixRom.
Alte carti:
R.A. Horn, C.R. Johnson, Matrix analysis, Cambridge
University Press.
Obiectivele cursului si subiectele atinse
Obiective
recunoasterea/formularea de probleme de algebra liniara
adaptarea algoritmilor numerici la probleme particulare
implementarea algoritmilor in cod Matlab
caracterizarea limitelor de performanta a algoritmilor numerici
Subiecte atinse
rezolvare de sisteme liniare (patratice, supradeterminate or
subdeterminate)
gasirea valorilor proprii ale unei matrici patratice
gasirea valorilor singulare ale unei matrici generale
algorimi numerici si complexitatea lor
exemple si aplicatii
Notatii
In cadrul cursului vom utiliza urmatoarele notatii pentru vectori:
R multimea numerelor reale, C multimea numerelor complexe
Vectori (considerati
vector coloana) cu litere mici,
intotdeauna
x1
i.e. x Rn , x = ...
xn
P
Produs scalar in spatiul Euclidian: hx, y i = x T y = ni=1 xi yi
q
p
Norma Euclidiana standard: kxk = hx, xi = x12 + + xn2
Norma p: kxkp = (|x1 |p + + |xn |p )1/p , cu p 1,
kxk = max |xi |. Pentru p [0, 1) norma kxkp nu defineste
i =1:n
o norma (e.g. inegalitatea triunghiului nu mai este
satisfacuta). Pentru p = 0 seminorma kxk0 = nr. de elemente
nenule din x se utilizeaza foarte mult in multe aplicatii
(procesare de semnal, control) pentru a obtine un vector rar.
ek (cu k = 1 : n) baza standard a spatiului liniar Rn
Notatii
In cadrul cursului vom utiliza urmatoarele notatii pentru matrici:
Matrice cu litere mari: A, B, C , H Rnm
AH conjugata hermitica a matricei (complexe) A, i.e AH = AT
A(i1 : i2 , j1 : j2 ) blocul matrice A format din liniile de la i1 la i2
si coloanele de la j1 la j2 .
A+ pseudo-inversa (Moore-Penrose) a matricei A (e.g.
A+ = (AT A)1 AT daca are rangul intreg pe coloane)
produsul scalar a doua matrici: hA, Bi = tr(B T A)
Norma Frobenius
a unei
p matrici: qP
p
2
kAkF = hA, Ai = tr(AT A) =
i ,j aij
p
Norma spectrala a unei matrici: kAk = max (AT A)
Norma p 1 indusa:
kAxk
kAkp = maxkxkp =1 kAxkp = maxx6=0 kxkpp
(A) multimea valorilor proprii ale matricei A
(A) multimea valorilor singulare ale matricei A
Notatii
In cadrul cursului vom utiliza urmatoarele notatii pentru matrici:
Matrice simetrica: A = AT (spatiul liniar al matricilor
simetrice S n Rnn )
Matrice pozitiv definita A S n : A 0, si pozitiv semidefinita
A 0 (i.e. x T Ax 0 x Rn i 0 i minorii
principali sunt ne-negativi)
Matrice ortogonala: Q T Q = In (coloanele formeaza perechi
de vectori ortonormali, i.e. vectori de norma 1 si ortogonali
doi cate doi)
Matrice inferior/superior triunghiulara: O matrice L Rmn
s.n. inferior triunghiulara daca L(i , j) = 0 i < j
x 0 0 0
x x 0 0
L = .. .. ..
..
..
. . .
.
.
x
Notatii
In cadrul cursului vom utiliza urmatoarele notatii pentru matrici:
Matrice diagonala: O matrice D Rmxn s.n. diagonala daca
D(i , j) = 0 i 6= j
x 0 0 0
0 x 0 0
D= . . .
..
..
.. .. ..
.
.
0 0 0
Matrice tridiagonala: O matrice patratica G
tridiagonala daca T (i , j) = 0 |i j| > 1
x x 0 0 0 0
x x x 0 0 0
T = 0 x x x 0 0
.. .. .. .. ..
..
..
. . . . .
.
.
0 0 0 0 0 x
Rnxn s.n.
0
0
0
..
.
x
Notatii
In cadrul cursului vom utiliza urmatoarele notatii pentru matrici:
Matrice inferior/superior Hessenberg: O matrice patratica
H Rnxn s.n. inferior Hessenberg daca H(i , j) = 0
j > i + 1
x x 0 0 0 0 0
x x x 0 0 0 0
x x x x 0 0 0
H = .. .. .. .. ..
..
.. ..
. . . . .
.
. .
x x x x x x x
x x x x x x x
Matrice banda: O matrice B Rmxn s.n. matrice banda de
latime (p, q) daca B(i , j) = 0 i < j + p si j < i + p
Reprezentarea numerelor
Fie
N , 2 o baza de enumeratie
C = {0, 1, 2, .... 1} multimea cifrelor in baza , adica
primele numere naturale
Def.: Orice numar x R poate fi scris unic sub forma unei
secvente infinite:
x = s an1 an2 ...a0 . a1 a2
care nu se termina printr-o secventa infinita de cifre egale cu 1
si in care ai C, iar s este semnul
{+, }).
Pn1 (i.e.i s P
i
Valoarea lui x este x = s( i =0 ai +
i =1 ai )
E.g.: baza 2 ( = 2) sau baza 10 ( = 10)
3.25 = 3 100 + 2 101 + 5 102
Reprezentarea in virgula mobila
Reprezentarea numerelor in calculator se face cu un numar finit
de cifre si deci este aproximativa
Calitatea aproximarii se defineste prin:
domeniu de reprezentare suficient de mare
eroare de reprezentare suficient de mica, e.g. eroarea relativa
|x
x|
|
|x| sau absoluta |x x
o distributie uniforma a erorii relative de reprezentare
Def.: Un format virgula mobila (FVM) este definit de 3 intregi
(, t, p), cu urmatoarea semnificatie:
-baza de numeratie ( 2 )
t nr. de cifre semnificative (lungimea mantisei)
p nr. de cifre al exponentului
Un numar in VM este o pereche (f , e), cu valoarea reala asociata
x = f e , unde
mantisa: f = 0.f1 f2 ft este numar fractionar, cu semn,
normalizat f1 6= 0, cu t cifre fi C
exponent: e = e1 e2 ep un intreg cu semn, cu p cifre ei C
Reprezentarea numerelor pe 32 de biti (2, 24, 8)
numarul real este x = (f1 + f2 1 + + ft (t1) ) e cu
fi C si e Z, e [Emin , Emax ]
1 bit pentru semnul mantisei, 23 de biti pentru mantisa
(f1 = 1 se omite) si 8 biti pentru exponent
mantisa f are lungimea t = 24 biti, cu fi {0, 1} si f1 = 1
exponentul e are lungimea data de p = 8 si poate lua valori
intre e [126, 127] unde ei {0, 1}. e1 este bitul de semn,
astfel pentru e1 = 0 semnul exponentului este pozitiv iar
pentru e1 = 1 semnul este negativ.
exponentul are 8 biti, iar unul din ei se foloseste pentru
determinarea semnului, restul de 7 biti codifica reprezentarea
exponentului. (e.g.: pentru e = 10000001 deducem ca
exponentul reprezinta numarul 1 deoarece e1 = 1 codifica
semnul iar restul de numar 0000001 codifica numarul 1)
valoarea cea mai mica reprezentata in VM pt. 32 biti este
Emin = 2126 1038 , iar valoarea cea mai mare este
2127 1038
Reprezentarea numerelor
aproximarea lui x prin fl (x) (numita rotunjire) se face astfel:
trunchiere: x = (f1 + f2 1 + + ft (t1) + ) e la
fl (x) = (f1 + f2 1 + + ft (t1) ) e
rotunjire: fl (x) cel mai apropiat numar in virgula mobila de x
precizia masinii: cel mai mic cu proprietatea fl (1 + ) > 1.
Precizia masinii este de ordinul (t1) . Pentru t = 24 avem
= 223 107 (7 cifre zecimale semnificative)
|s | e1 e2 e8 | f1 f2 f23 |
Exemplu: fie e = e1 27 + e2 26 + + e7 2 + e8 si
f = 1 + f1 21 + f2 22 + + f23 223 , atunci valoarea x este:
daca 0 < e < 255 atunci x = (1)s f 2e127
daca e = 0, fi = 0 i = 1 : 23 si s = 0 atunci x = 0
daca e = 0, fi = 0 i = 1 : 23 si s = 1 atunci x = 0
daca e = 0 si exista fi 6= 0 atunci x = (1)s (f 1)2126
daca e = 255, fi = 0 i = 1 : 23 si s = 0 atunci x =
daca e = 255, fi = 0 i = 1 : 23 si s = 1 atunci x =
daca e = 255 si exista fi 6= 0 atunci x = NaN
Aplicatii - rezolvarea de sisteme liniare (CMMP)
CMMP-fitting de date: prin rezolvarea unui sistem liniar A x= b
Se dau urmatoarele:
functii f1 , , fn numiti regresori sau functii de baza
date sau masuratori (ui , bi ) i = 1, . . . , m (de obicei m n)
Problema: gasiti coeficientii reali x1 , xn s.t.
bi = x1 f1 (ui ) + + xn fn (ui ) i = 1, , m
Obtinem sistemul linear:
Ax = b unde A Rmn , Aij = fj (ui )
Solutie:
A patratica si inversabila, atunci solutie unica
A cu n m (subdeterminata) - o infinitate de solutii, atunci
se cauta solutia de norma minima (CMMP)
A cu m n (supradeterminata) - nici o solutie, atunci se
cauta solutia care minimizeaza expresia patratica (CMMP)
m
X
i =1
(x1 f1 (ui ) + + xn fn (ui ) bi )2 = kAx bk2
Aplicatia CMMP 1 - fitting un polinom
Problema: fitting un polinom de grad < n
p(t) = x0 + x1 t + + xn1 t n1
la datele (ti , bi ), i = 1, , m
functii de baza pj (t) = t j1 pentru j = 1, , n
matricea A cu intrarile Aij = tij1 (matrice Vandermonde)
A=
..
.
t1n1
t2n1
..
.
1 tm tm
n1
tm
1
1
..
.
t1
t2
..
.
t12
t22
..
.
4t
Exemplu: aproximam functia f (t) = 1+10t
2 cu un polinom pe
intervalul [0, 1] avand la dispozitie 100 de date
Aplicatia CMMP 1 - fitting un polinom
CMMP fit (A R100d ) cu polinoame de grad d = 1, 2, 3, 4
avand eroarea kAx bk = 0.135, 0.076, 0.025, 0.005
Linie continua f (t), linie punctate pd (t) pe [0, 1]
In acest curs vom invata algoritmi numerici pentru rezolvarea
acestei probleme!
Aplicatia CMMP 2 - identificarea sistemlor
Consideram un sistem intrare-iesire:
Pentru sistemul considerat dispunem de 40 de masuratori
intrare-iesire {u(t), y (t)}:
7.5
1.6
6.5
1.4
1.2
5.5
y(t)
u(t)
1.8
0.8
4.5
0.6
0.4
3.5
0.2
10
15
20
25
30
35
40
2.5
10
15
20
25
30
35
40
Aplicatia CMMP 2 - identificarea sistemlor
Dorim sa aproximam sistemul printr-un model intrare-iesire de
forma ARMA:
ymodel (t) = x1 u(t)+x2 u(t 1)+x3 u(t 2)+x4 u(t 3)+x5 u(t 4).
Gasirea setului de parametrii x = [x1 x5 ]T ai modelului poate fi
realizata prin rezolvarea unui sistem liniar (problema CMMP):
Ax = b
cu
A R365
b = [y (5) y (6) y (40)]T
A=
u(5)
u(6)
u(7)
..
.
u(4)
u(5)
u(6)
..
.
u(3)
u(4)
u(5)
..
.
u(2)
u(3)
u(4)
..
.
u(1)
u(2)
u(3)
..
.
u(40) u(39) u(38) u(37) u(36)
Aplicatia CMMP 2 - Identificarea sistemelor
Raspunsul modelului estimat:
Raspunsul estimat si raspunsul real
8
7.5
6.5
5.5
4.5
ymodel (t)
y(t)
3.5
10
15
20
25
30
35
40
Aplicatia CMMP 3 - problema Netflix
sistem de recomandare pentru filme: predictie cu acuratete
cat mai mare a cat de mult iti va placea un film bazat pe
preferintele tale
concursul privind imbunatatirea algoritmului de recomandare
Netflix a pornit in 2006.
In 2008 un premiu de 50K pentru 9.44% imbunatatire, iar in
2009 premiul cel mare de 1 milion pentru 10.06% imbunatatire
Aplicatia CMMP 3 - problema Netflix
datele de antrenare pentru algoritmul de recomandare: 100
milioane ratings; 480.000 utilizatori; 17.700 filme; date stranse
in 6 ani (20002005)
Aplicatia CMMP 3 - problema Netflix
Principalele obstacole:
dimensiunea datelor foarte mare: este nevoie de algoritmi
eficienti din punct de vedere al calculelor si al memoriei
datele de test si cele de antrenare sunt diferite: e.g. datele de
test ratings sunt mai recente
99% date lipsesc, deci metodele standard nu se aplica
multi factori afecteaza rating-ul unui film: actorii, regizorul,
stilul actiunii, muzica, genul
Matematica aplicata ajuta: Metodele Numerice si Optimizarea!
utilizator Y caracterizeaza
filmele prin atribute: violenta
(x1 = 1.5); umor (x2 = 3.5);
acest actor sau regizor
(x3 = 0.5), etc ...
factorizarea de matrici este
principala abordare
combinata cu metoda
gradient din optimizare
Aplicatia CMMP 3 - problema Netflix
Estimarea ratingurilor necunoscute folosind factorizarea matricilor!
Aproximarea cu produs de matrici de rang 3: dar algebra standard
se aplica numai matricilor cu toate intrarile cunoscute netezirea
datelor este necesara via optimizare pentru a evita overfitting
Aplicatie CMMP 4 - reconstructie tomografica
Tomografie computerizata = tehnica noninvaziva ce foloseste
raze X (sau alte tipuri de radiatii) pentru a produce imagini 2D/3D
ale interiorului obiectului scanat.
Procedura de functionare consta in:
1. Se achizitioneaza o serie de
proiectii, din diferite unghiuri,
ale obiectului scanat;
[Link]
2. Prin intermediul proiectiilor obtinute, se reconstruieste
interiorul obiectului cu ajutorul
unui algoritm iterativ;
[Link]
In majoritatea cazurilor, radiatiile folosite sunt daunatoare; de
aceea se urmareste achizitionarea unui numar minim de proiectii.
Aplicatie CMMP 4 - reconstructie tomografica
Formularea problemei:
Fie x Rn imaginea interiorului de reconstruit.
Pentru reconstructie, dispunem de diferite masuratori liniare
(proiectii) ale imaginii x: bi = Ai x, i = 1, , m.
mn
T T
Notam vectorul proiectiilor b Rm si A = [AT
1 Am ] R
matricea de achizitie.
Imaginea interiorului reprezinta solutia sistemului liniar
(subdeterminat deoarece sunt mai putine masuratori m decat
dimensiunea imaginii n): Ax = b.
Reformulare in termeni de problema CMMP:
min
xRn : Ax=b
kxk
unde de obicei se alege = 2 sau = 0 sau = 1. Alegem
= 0 1 pentru a induce o reprezentare rara a imaginii (vectorul
solutie). Se doreste o reprezentare rara a imaginii deoarece aceasta
permite: compresie usoara; algoritmi rapizi pt. procesare; memorie
de stocare mica; eliminarea usoara a zgomotului;...
Aplicatii - valorile proprii ale unei matrici
Av = v R, v Rn , v 6= 0
Rezolvarea ecuatiei diferentiale cu ajutorul valorilor proprii:
n
X
i =0
ai
di y
=0
dt
facem schimbare de variabila
di y
dt
= yi , i.e.
y = y0
dy0
dt = y1
dy1
dt = y2
dyn2
dt = yn1
n1
= an1 yn1 an2 yn2 a0 y0
an dydt
din ecuatiile de mai sus formam
0
1
0
0
0
1
A = ..
..
..
.
.
.
aan0 aan1 aan2
sistemul y = Ay unde
0
0
0
..
..
..
.
.
.
an2
an
an1
an
Aplicatii - valorile proprii ale unei matrici
rezolvarea ecuatiei diferentiale cu ajutorul valorilor proprii:
n
X
i =0
ai
di y
=0
dt
echivalent cu sistemul = Ay, A matrice particulara
vom invata ca o matrice se descompune dupa valorile proprii:
A = V V 1, unde matrice diagonala data de valorile
proprii i si V matrice avand coloanele vectorii proprii
facem schimbarea de variabila: y = Vu.
Vu = AVu u = V 1 AVu u = u
ui = i ui ui (t) = expi t ui (0) u(t) = expt u(0)
V 1 y(t) = expt V 1 y(0)
m
y(t) = V expt V 1 y(0)
Aplicatia 1 - valorile proprii ale unei matrici
Pendule cuplate:
2
dynamica data de ecuatia diferentiala: d y = Ay
dt
2 1
matricea de elasticitate: A =
si y = [1 2 ]T
1 2
cautam solutii de forma: y (t) = c expt , cu c R2
dupa substituire in ecuatia diferentiala obtinem:
(A 2 I2 )c = 0
solutia gasirea valorilor si vectorilor proprii matricei A
Aplicatia 2 - valorile proprii ale unei matrici
Vehicule cuplate:
2
dynamica data de ecuatia diferentiala: d y = Ay
dt
4
4
0
matricea de elasticitate: A = 6
12 6 si
0
4
4
y = [y1 y2 y3 ]T
cautam solutii de forma: y (t) = c expt , cu c R3
dupa substituire in ecuatia diferentiala obtinem:
(A 2 I2 )c = 0
solutia gasirea valorilor si vectorilor proprii matricei A
Aplicatia 3 - valorile proprii ale unei matrici
Stabilitatea sistemelor dinamice:
dinamica continua in spatiul starilor: x = Ax
sistemul este stabil daca toate valorile proprii i ale lui A sunt
in partea stanga a planului complex
dinamica discreta in spatiul starilor: xt+1 = Axt
sistemul este stabil daca toate valorile proprii i ale lui A sunt
in discul unitate
Aplicatii - descompunerea valorilor singulare
Descompunerea valorilor singulare ale unei matrici - (DVS):
A = UV T diagonala, intrari valorile singulare i ; U, V ortogonale
Pseudo-inversa unei matrici oarecare:
pseudo-inversa: A = V 1 U T
e.g. rang intreg pe linii: A = (AT A)1 AT
solutia CMMP via A : xcmmp = A b
Imaginea discului unitate prin transformarea liniara
{Ax : kxk 1} este elipsoidul cu axele principale i ui :
rotatie (prin V T )
alungire dea lungul axelor
(prin i )
rotatie (prin U)
Aplicatia DVS 1 - descompunerea valorilor singulare
Aproximarea unei matrici cu matrice de rang mai mic:
Pr
T
fie A Rmn cu rang(A) = r si A = UV T =
i =1 i ui vi
avand rangul p < r a.i. A A, i.e.
cautam matricea A
kA Ak minim
P
P
T
= p i ui v T , deci kA Ak
=k r
solutie: A
i =p+1 i ui vi k
i
i =1
interpretare: componentele principale de rang 1, ui v T , sunt
i
ordonate in functie de importanta lor data de i
multe aplicatii: procesarea de imagine, simplificare model,...
Dem: fie rang(B) p, deci dim Null(B) n p. Apoi:
dim Span {v1 , , vp+1 } = p + 1. Cele 2 spatii se intersecteaza:
z : kzk = 1, Bz = 0, z Span{v1 , , vp+1 }
p+1
X
i ui viT z
(z vp+2 ...)
(A B)z = Az =
Deci
i =1
p+1
X
2
i2 (viT z)2 p+1
kzk2
k(A B)zk2 =
i =1
k(AB)zk
p+1
kA Bk = maxkxk1 k(AB)xk
kxk
kzk
= kA Ak
Aplicatia DVS 2 - descompunerea valorilor singulare
Simplificare model:
fie modelul y = Ax +
A R10030 are VS i : 10, 7, 2, 0.5, 0.01, , 0.0001
kxk 1 si zgomotul are norma mai mica decat 0.1
atunci termenii i ui viT x sunt
P mai mici decat pentru i 5
modelul simplificat: y = 4i =1 i ui viT x + v (i.e. descris de o
matrice de rang 4, nu rang 30!)
Alta interpretare pentru i :
i =
min
B:rang(B)i 1
kA Bk
i.e. i reprezinta distanta (in norma matriceala) la cea mai
apropriata matrice de rang i 1
Exemplu: pentru A Rnn , n reprezinta distanta la cea mai
apropiata matrice singulara (deci n mica inseamna ca A este
foarte apropiata de o matrice singulara).
Aplicatia DVS 3: matrix completion
se da o matrice X cu elemente lipsa (e.g. o imagine)
se presupune ca matricea X este de rang scazut
scopul este sa se gaseasca elementele lipsa din X
pentru a impune rang mic asupra unei matrici se foloseste
nuclear
DVS
P norm k k : daca A are descompunerea
P
A = ri=1 i ui viT , atunci kAk = ri=1 i
problema se pune astfel:
min rang(X )
=
min kX k
|{z}
X Rmn
relaxare convexa
X Rmn
s.l.: Xij = Aij i , j S
s.l.: Xij = Aij i , j S
unde se dau valorile Aij cu (i , j) S o submultime a
elementelor matricei cautate
relaxarea convexa se poate scrie ca un SDP:
min
X ,W1 ,W2
tr(W1 ) + tr(W2 )
s.l.: Xij = Aij i , j S,
W1
XT
X
0
W2
Aplicatia DVS 3: matrix completion cu aplicare in
recuperarea de imagine
imaginea data (40% elemente lipsa) si imaginea recuperata
Complexitatea algoritmilor
Pentru a rezolva o problema de calcul numeric, un calculator
executa o secventa (finita) de operatii, denumita algoritm
Complexitatea algoritmului caracterizata de:
numarul de operatii (flops) de executat
memoria ocupata de datele problemei
Numarul de operatii este o functie de dimens. probl. Nop (n)
algorithm de tip P (complexitate polinomiala, e.g.
Nop (n) = O(nk ))
E.g.: cautarea ordonata (binara) (cautarea unui numar de
telefon in cartea de telefoane cand se cunoaste numele
persoanei) O(log n), inmultirea a doua matrici O(n3 )
algorithm de tip NP (complexitate non-polinomiala, e.g.
Nop (n) = O(expn ))
E.g. cautarea neordonata (cautarea unui numar de telefon in
cartea de telefoane cand se cunoaste numarul de telefon)
E.g.: factorizarea unui numar intreg in produs de numere
1/3
prime (aplicatie in codificare) - complexitate O(exp(n log 2) ),
quantum algoritm (Shor) are complexitate polinomiala
Metode Numerice
Curs II
Algoritmi elementari
Ion Necoara
2014
Spatiul vectorial Rn
R multimea numerelor reale, C multimea numerelor complexe
Vectori (considerati intotdeauana
vector coloana) cu litere
x1
mici, i.e. x Rn , x = ...
xn
P
Produs scalar in spatiul Euclidian: hx, y i = x T y = ni=1 xi yi
norma este o functie ce satisface urmatoarele conditii:
kxk 0; kxk = ||kxk R, x Rn ; kx + y k kxk + ky k
q
p
Norma Euclidiana standard: kxk = hx, xi = x12 + + xn2
Norma p: kxkp = (|x1 |p + + |xn |p )1/p p 1,
kxk = maxi =1:n |xi | (Observatie: p [0, 1) nu defineste o
norma, e.g. kxk0 = nr. de elemente nenule din x)
orice doua norme p sunt echivalente: e.g.
kxk kxk1 nkxk sau kxk kxk1 nkxk
Spatiul vectorial Rn
hx,y i
unghiul a doi vectori nenuli se defineste prin = arc cos kxkky
k
doi vectori sunt ortogonali daca unghiul corerspunzator este
/2 (i.e. produsul lor scalar este 0)
teorema lui Pitagora: doi vectori sunt ortogonali iff
kx + y k2 = kxk2 + ky k2
combinatia liniara a vectorilor {u1 , , up } cu coeficientii
1 , , p este vectorul: 1 u1 + + p up
vectorii {u1 , , up } sunt ortonormali iff hui , uj i = ij (i.e.
vectorii sunt de norma 1 si ortogonali doi cate doi)
vectorii {u1 , , up } sunt linear independenti daca nu exista o
combinatie liniara netriviala a elementelor lui X care sa fie
nula. Vectorii sunt liniar dependenti daca cel putin unul dintre
ei se poate exprima printr-o combinatie liniara a celorlalti
multimea de vectori B este baza a subspatiului S daca:
(i) vectorii lui B sunt liniar independenti; (ii) S generat de B
ek (cu k = 1 : n) baza standard a spatiului liniar Rn
Spatiul vectorial Rn
dimensiunea subspatiului S este numarul vectorilor din baza
doua subspatii S, T sunt complementare daca: (i) S T = 0;
(ii) Rn = Span(S T ) dimS + dimT = n
e.g. in R3 , un plan (S) si o dreapta (T ) ce se intersecteaza in
origine formeaza doua subspatii complementare
un subspatiu S este complementul ortogonal al subspatiului T
daca: (i) sunt complementare; (ii) sunt ortogonale ST
Algoritm pentru calculul normei p = :
1. norm = 0
2. pentru i = 1 : n daca |xi | > norm atunci norm = |xi |
Algoritm pentru calculul normei p = 2:
1. norm = 0
2. pentru i = 1 : n avem norm = norm + xi2
3. norm = norm
Matrice in Rmn
Matrice cu litere mari: A, B, C , H Rmn
(AT )T = A, (A + B)T = AT + B T , (AB)T = B T AT
AH conjugata hermitica a matricei (complexe) A, i.e AH = AT
A(i1 : i2 , j1 : j2 ) blocul matrice A format din liniile de la i1 la i2
si coloanele de la j1 la j2 .
A+ pseudo-inversa (Moore-Penrose) a matricei A (e.g.
A+ = (AT A)1 AT daca are rangul intreg pe coloane)
produsul scalar a doua matrici: hA, Bi = tr(B T A)
Norma Frobenius
a unei
p matrici: qP
p
2
kAkF = hA, Ai = tr(AT A) =
i ,j aij
p
Norma spectrala a unei matrici: kAk = max (AT A)
Norma p 1 indusa:
kAxk
kAkp = maxkxkp =1 kAxkp = maxx6=0 kxkpp
(A) multimea valorilor proprii ale matricei A
(A) multimea valorilor singulare ale matricei A
Matrice in Rmn
imaginea unei matrici A (subspatiul generat de coloane):
Im A = {y Rm : x Rn a.i . y = Ax}
nucleul unei matrici: Ker A = {x Rx : Ax = 0}
Proprietati: Im A si Ker AT sunt subspatii ortogonale si
complementare:
(i) Im A Ker AT ; (ii) Rm = Span(Im A Ker AT )
rangul matricei A = dimensiunea subspatiului Im A (i.e. nr.
maxim de coloane liniar independente din A)
Avem rang A = rang AT (i.e. nr maxim de linii liniar
independente din A)
Concluzionam: (i) dimIm A = dimIm AT = rang A = r ; (ii)
dimKer A = n r ; (iii) dimKer AT = m r
matrice monica: coloanele liniar independente (i.e. Ker A = 0)
matrice epica: liniile liniar independente (i.e. Im A = Rm )
Matrice in Rmn
1 0
Exemplu: fie matricea A = 0 1
1 1
Atunci imaginea lui A este data de subspatiul:
Im A = {y R3 : y = [x1 x2 x1 + x2 ]T , x1 , x2 R}
i.e. planul ecuatiei y3 = y1 + y2 dim = 2
Kernel lui AT este subspatiul:
Ker AT = {y R3 : y2 + y3 = 0, y1 + y3 = 0}
i.e. generat de vectorul [1 1 1]T dim = 1
Matrice in Rmn
Matrice simetrica: A = AT (spatiul liniar al matricilor
simetrice S n Rnn )
Matrice pozitiv definita A S n : A 0, si pozitiv semidefinita
A 0 (i.e. x T Ax 0 x Rn i 0 i minorii
principali sunt ne-negativi)
Matrice ortogonala: Q T Q = In (coloanele formeaza perechi
de vectori ortonormali, i.e. vectori de norma 1 si ortogonali
doi cate doi)
Matrice inferior/superior triunghiulara: O matrice L Rmn
s.n. inferior triunghiulara daca L(i , j) = 0 i < j
x 0 0 0
x x 0 0
L= . . .
..
..
.. .. ..
.
.
x
Matrice in Rmn
Daca D matrice diagonala si A matrice cu structura, atunci
DA si AD au aceeasi structura cu A
Produsul a doua matrici inferior triunghiulare este matrice
inferior triunghiulara
Daca L matrice inferior triunghiulara si H inferior Hessenberg
atunci produsul LH si HL este matrice inferior Hessenberg
Orice submatrice principala a unei matrice pozitiv definite este
pozitiv definita
Daca U si V sunt ortogonale atunci produsul lor UV este tot
o matrice ortogonala si in plus: kUk2 = 1, kUxk2 = kxk2 ,
kUAV k2 = kAk2 si kUAV kF = kAkF A
Memorarea matricelor structurate:
(i) O matrice triunghiulara sau simetrica se memoreaza
intr-un vector de lungime n(n + 1)/2
(ii) o matrice tridiagonala se memoreaza in 3 vectori
Matrice in Rmn
Alte tipuri de matrici:
A Rnn matrice normala daca: AT A = AAT (e.g. matrice
simetrice A = AT , antisimetrica A = AT sau ortogonala
AT A = In )
Fie P Rnn si S un subspatiu, atunci P este proiector pe S
daca: (i) P 2 = P; (ii) S = Im P
Interpretare: orice x Rn satisface Px Im P = S. Mai mult
P(Px) = Px deci aplicarea proiectorului nu modifica proiectia.
Analog, Q = In P este proiector pentru T = Im Q
Daca in plus P = P T (simetrica), atunci P este proiector
ortogonal deoarece Px (x Px), i.e. x se descompune ca
suma a doi vectori ortogonali
Demonstratie: P(x Px) = 0, deci
x Px Ker P = KerP T ImP, i.e. Px (x Px).
Exemplu: daca B Rnr are coloane ortonormale
(B T B = Ir ), atunci P = BB T este proiectie ortogonala pe
subspatiul Im B avand ca baza ortonormala coloanele lui B.
Inmultirea matricilor
Algoritm pt produsul C = AB, unde A Rml si B Rln
C =0
pentru j = 1 : n
pentru i = 1 : m
pentru k = 1 : l
Cij = Cij + Aik Bkj
Inmultirea de matrici necesita 2mnl flopi, deci 2n3 complexitate
aritmetica pentru matrici patratice!
Observatie: Algoritmul Strassen (1969) are complexitate mai mica
O(nlog2 7 ) O(n2.8 ) si se bazeaza pe inmultirea recursiva la nivel
de blocuri
Inmultirea matricilor
Consideram impartirea pe blocuri:
A11 A12
,
A=
A21 A22
B11 B12
,
B=
B21 B22
C
C12
A = 11
C21 C22
Algoritmul Strassen este definit de urmatoarele formule:
M1 + M2 + M3 M4
M4 + M6
C = AB =
M3 + M5
M1 M5 + M6 + M7
unde am definit blocurile:
M1 = (A11 + A22 )(B11 + B22 )
M5 = (A21 + A22 )B11
M2 = (A12 A22 )(B21 + B22 )
M6 = A11 (B12 B22 )
M3 = A22 (B21 B11 )
M4 = (A11 + A12 )B22
M7 = (A21 A11 )(B11 + B12 )
Inmultirea matricilor
Se observa ca pentru calculul matricei C sunt necesare 7
inmultiri si 18 adunari de matrice de dimensiuni n/2 n/2, in timp
ce algoritmul standard la nivel de bloc pentru aceeasi partitie, 8
inmultiri si 4 adunari de blocuri. Astfel, nr. de operatii pt. alg.
3
18n2
Strassen este N1 (n) = 14n
8 + 4 . Evident, pentru n suficient de
mare (n > 18), N1 (n) < 2n3 , deci alg. Strassen este mai rapid
decat cel standard.
Numar de operatii mai bun se obtine daca, pt. calculul celor 7
produse de matrice n/2 n/2 se utilizeaza, recursiv, aceleasi
formule ale lui Strassen. Obtinem complexitate O(n2.8 )
Sisteme liniare de ecuatii
Un sistem de ecuatii liniare:
a11 x1 + a12 x2 + + a1n xn = b1
a x + a x + + a x = b
21 1
22 2
2n n
2
a x + a x + + a x = b
m1 1
m2 2
mn n
m
poate fi reprezentat compact in forma matriceala
Ax = b,
unde A Rmn si b Rm .
daca m = n sistem determinat
daca m < n sistem subdeterminat
daca m > n sistem supradeterminat
Sisteme liniare de ecuatii - retea electrica
Sistemele de ecuatii liniare apar in foarte multe aplicatii din
inginerie, fizica, biologie, etc...
Exemplu 1 - retea electrica: determinarea cantitatii de curent de
pe fiecare ramura a retelei.
Legea I a lui Kirchof: in fiecare nod curentii care intra sunt egali cu
cei care ies din nodul respectiv: i1 = i2 + i3 si i2 + i3 = i1 .
Sisteme liniare de ecuatii - retea electrica
Legea II a lui Kirchof: suma tensiunilor intr-o bucla este zero
loop de sus : 9 i2 4i1 = 0
loop de jos : 4 2i3 + i2 3i3 = 0
loop mare : 4 2i3 4i1 + 9 3i3 = 0
Observam ca a 3-a ecuatie este suma primelor doua!
Sisteme liniare de ecuatii - retea electrica
Obtinem sistemul:
i 1 i 2 i 3 = 0
4i1 + i2 = 9
i2 + 5i3 = 4
Sisteme de ecuatii - analiza fortelor in sistem de grinzi
Exemplu 2 - sistem de grinzi (stress analysis of a truss, e.g un
pod rutier): presupunem capetele sunt fixe si se doreste
determinarea fortelor ce actioneaza pe fiecare grinda din sistem
Fie |fk | magnitudinea fortei pe grinda k. Consideram fk > 0 daca
grinda este sub tensiune si fk < 0 daca grinda este sub comprimare.
Sisteme de ecuatii - analiza fortelor in sistem de grinzi
echilibru static in punctul A
1
1
proiectie orizontala : f1 + f4 + f5 = 0
2
2
1
1
proiectie verticala : f1 f3 f5 = 0
2
2
echilibru static in punctul B
proiectie orizontala :
proiectie verticala :
f4 + f8 = 0
f7 = 0
echilibru static in punctul C
proiectie orizontala :
proiectie verticala :
1
1
f8 f9 + f12 = 0
2
2
1
1
f9 f11 f12 = 0
2
2
Sisteme de ecuatii - analiza fortelor in sistem de grinzi
echilibru static in punctul D
proiectie orizontala :
proiectie verticala :
f2 + f6 = 0
f3 10 = 0
echilibru static in punctul E
1
1
proiectie orizontala : f5 f6 + f9 + f10 = 0
2
2
1
1
proiectie verticala : f5 + f7 + f9 15 = 0
2
2
echilibru static in punctul F
proiectie orizontala :
proiectie verticala :
f10 + f13 = 0
f11 20 = 0
Sisteme de ecuatii - analiza fortelor in sistem de grinzi
Obtinem sistemul subdeterminat Ax = b, unde A R1213 :
12 f1 + f4 + 12 f5 = 0
12 f1 f3 12 f5 = 0
f4 + f8 = 0
f7 = 0
f8 1 f9 + 1 f12 = 0
2
2
1 f f 1 f = 0
2 9
11
2 12
f2 + f6 = 0
f3 = 10
12 f5 f6 + 12 f9 + f10 = 0
1 f5 + f7 + 1 f9 = 15
2
2
f10 + f13 = 0
f = 20
11
Sisteme liniare de ecuatii
Solutiile unui sistem de ecuatii liniare:
(i) sistemul Ax = b are solutie iff b Im A or echivalent daca
rang A = rang[A b]
(ii) daca x0 este o solutie particulara atunci multimea tuturor
solutiilor este x0 + Ker A
(iii) solutia este unica iff Ker A = 0 (i.e. A are coloanele
independente)
(iv) daca m = n atunci sistemul are solutia x = A1 b iff
A inversabila Im A = Rm Ker A = 0
Sisteme liniare de ecuatii
Exemplu 1: daca Im A = Rm (i.e. liniile independente), atunci
sistemul are solutie pentru orice b.
1
1 1 0
2
Exemplu 2: A =
si b =
. Atunci x0 = 1
0 1 1
1
0
este solutie particulara. Pe de alta parte
1
Ker A = {x R3 : x1 + x2 = 0, x2 + x3 = 0} = Span 1 .
1
1+
Deci o solutie generala este de forma 1 .
Rezolvarea sistemelor triunghiulare
Consideram sistemul inferior triunghiular:
Lx = b unde Lij = 0 i < j
prima ecuatie: x1 = b1 /L11
se cunosc x1 , x2 , , xi 1 si se rezolva a i -a ecuatie:
i 1
i 1
X
X
Lij xj /Lii
Lij xj + Lii xi = bi xi = bi
j=1
j=1
Algoritm (LTRIS):
x =b
pentru i = 1 : n
pentru j = 1 : i 1
xi = xi Lij xj
xi = xi /Lii
Rezolvarea sistemelor triunghiulare
Consideram sistemul inferior triunghiular: Lx = b
Algoritm (LTRIS): apelare x = LTRIS(L, b)
x =b
pentru i = 1 : n
pentru j = 1 : i 1
xi = xi Lij xj
xi = xi /Lii
Complexitate:
- fiecare executia
a buclei i necesita 2(i 1) + 1 flopi
Pn
- in total i =1 (2i 1) = n2 flopi!
Rezolvarea sistemelor triunghiulare
Consideram sistemul superior triunghiular:
Ux = b unde Uij = 0 i > j
prima ecuatie: xn = bn /Unn
se cunosc xn , , xi +1 si se rezolva a i -a ecuatie:
n
n
X
X
Uij xj /Uii
Uij xj + Uii xi = bi xi = bi
j=i +1
j=i +1
Algoritm (UTRIS): apelare x = UTRIS(U, b)
x =b
pentru i = n : 1 : 1
pentru j = i + 1 : n
xi = xi Uij xj
xi = xi /Uii
Inversarea matricelor triunghiulare
Fie o matrice inferior triunghiulara L inversabila: atunci
L1 = X LX = In
Partitionam inversa X pe coloane, i.e. X = [x1 xn ], cu xj = Xej .
rezolvam n sisteme inferior triunghiulare: Lxj = ej
luam in calcul structura acestui sistem Lxj = ej :
!
!
xj
0
Lj11 0
ej
xj
Lj21 Lj22
unde Lj11 R(j1)(j1) , etc...
Obtinem:
Lj11 xj = 0 xj = 0
Lj21 xj + Lj22 xj = ej Lj22 xj = ej (LTRIS dimensiune n j + 1)
Inversarea matricelor triunghiulare
Lj11 xj = 0 xj = 0
Lj21 xj + Lj22 xj = ej Lj22 xj = ej (LTRIS dimensiune n j + 1)
Concluzionam: inversa unei matrici inferior triunghiulare este tot
inferior triunghiulara!
Algoritm (LINV) pentru calcularea inversei:
pentru j = 1 : n
xjj = 1/Ljj
pentru i = j + 1 : n
i 1
X
xij =
Lik xkj /Lii
k=j
Numarul total de operatii este O(n3 /3)!
In mod similar putem calcula inversa unei matrici superior
triunghiulare: algoritm (UINV)!
Inversarea matricelor triunghiulare
In concluzie pentru a rezolva sistemul inferior triunghiular Lx = b
avem doua posibilitati:
utilizam LTRIS pentru gasirea solutiei x cu complexitate n2
inversam matricea L cu complexitate n3 /3 si aploi aflam
solutia x = L1 b
Deci pentru a gasi solutia unui sistem Lx = b este intodeauna mai
ieftin sa utilizam LTRIS decat sa inversam matricea! In Matlab
utilizam comanda x = b/L in loc de x =inv(L) b.
Valori si vectori proprii
Definitie: C valoare proprie a matricei A Rnn daca exista
v Rn , v 6= 0 a.i. Av = v .
Observatie 1: A are exact n valori proprii care coincid cu
zerourile polinomului caracteristic p() = det(A In ).
Observatie 2: daca A are valori proprii distincte, atunci exista un
set de vectori proprii V = [v1 vn ] liniar independenti si avem
V 1 AV = diag(i )
Demonstratie:
AV = [Av1 Avn ] = [1 v1 n vn ] = [v1 vn ]diag(i ) si V este
inversabila (vectori proprii liniar independenti)
daca U matrice superior triunghiulara atunci valorile proprii ale
lui U se calculeaza usor:
i = Uii
Vectori proprii pentru matrici triunghiulare
Cazul I: valorile proprii sunt distincte doua cate doua:
T = j In U a.i. Tvj = 0 ce se partitioneaza astfel
vj
T11 y T13
0 0 w T vjj = 0
0 0 T33
vj
Din ultima ecuatie T33 vj = 0 obtinem vj = 0.
Ecuatia 2 este mereu satisfacuta: w T vj = 0, si deci putem alege
vjj = 1.
Din prima ecuatie avem T11 vj = y care se rezolva cu UTRIS si
obtinem unic vj deoarece T11 este inversabila (U avand valori
proprii distincte)
Observatie: Vectorii proprii astfel calculati sunt linear
independenti deoarece V = [v1 vn ] este matrice superior
triunghiulara cu elemente 1 pe diagonala (vezi alegerea vjj = 1)
Vectori proprii pentru matrici triunghiulare
Cazul II: valorile proprii nu sunt distincte doua cate doua.
In acest caz T11 poate fi singulara. Se pune problema daca
sistemul T11 vj = y are solutie. Presupunem vjj = 1 si ca am
calculat valorile vj (j 1), , vj (i + 1) si scriem ecuatia i a
acestui sistem:
T11 (ii )vj (i ) = ij = T11 (ij)
j1
X
T11 (ik)vj (k)
k=i +1
(i) Daca T11 (ii ) 6= 0 atunci vj (i ) = ij /T11 (ii )
(ii) Daca T11 (ii ) = 0 atunci fie ij = 0 si putem alege vj (i ) = 1;
fie ij 6= 0 si atunci sistemul nu are solutie (i.e. nu se pot calcula n
vectori proprii liniar independenti)
Numarul total de operatii este O(n3 /3)!
Vectori proprii pentru matrici triunghiulare
Algoritm TRV - calculul vectorilor proprii unei matrice sup. tr.
(Se da U Rnn sup. tr. si calculeaza vectorii proprii lui U in
matr. V ; coloanele nule din V sunt cazuri de defectivitate):
1. Pentru j = 1 : n
1. vjj = 1
2. Pentru i = j 1 : 1 : 1
1. uij +
j1
X
uik vkj
k=i +1
2. Daca uii 6= ujj atunci vij /(ujj uii )
altfel daca = 0 atuncivij = 1
altfel vkj = 0 k = i + 1 : j
treci la urmatorul j
Numarul total de operatii este O(n3 /3)!
Metode Numerice
Curs III
Rezolvarea sistemelor de ecuatii liniare
Ion Necoara
2014
Sisteme liniare de ecuatii
Un sistem determinat de ecuatii liniare:
a11 x1 + a12 x2 + + a1n xn = b1
a x + a x + + a x = b
21 1
22 2
2n n
2
a x + a x + + a x = b
n1 1
n2 2
nn n
n
poate fi reprezentat compact in forma matriceala
Ax = b,
unde A Rnn este matrice inversabila si b Rn un vector dat.
Prezentam principalele metode de rezolvare a sistemelor liniare;
Analizam implementari eficiente ale metodelor prezentate pentru
diferite cazuri particulare;
Aplicatie -soarecele si labirintul
O aplicatie din probabilitate: consideram un labirint si un soarece
intr-un experiment de laborator:
experimentul consta in plasarea unui soarece la una din cele
10 intersectii ale labirintului
daca soarecele ajunge intr-un coridor exterior atunci el nu se
poate intoarce inapoi in labirint
cand soarecele este intr-o intersectie, alege aleator un drum
Care este probabilitatea castigatoare pi ca soarecele sa ajunga la
coridorul cu hrana pornind din intersectie i ?
Aplicatie -soarecele si labirintul
De exemplu, in prima intersectie, soarecele are probabilitatea:
1 de a alege sus-dreapta si a pierde
4
1 de a alege sus-stanga si a pierde
4
1 de a alege jos-dreapta si astfel a ajunge la un punct cu
4
probabilitate de castigare p3
1 de a alege jos-stanga si astfel a ajunge la un punct cu
4
probabilitate de castigare p2 .
1
1
1
1
p1 = (0) + (0) + (p2 ) + (p3 )
4
4
4
4
In mod similar obtinem:
1
1
1
1
1
p2 = (0) + (p1 ) + (p3 ) + (p4 ) + (p5 )
5
5
5
5
5
1
1
1
1
p10 = (0) + (1) + (p6 ) + (p9 )
4
4
4
4
Obtinem sistemul patratic Ap = b, cu matricea A R1010 foarte
rara, p = [p1 p10 ]T si b = [06 1 1 1 1].
Metode de rezolvare a sistemelor liniare
Clasificare a metodelor de rezolvare a sistemelor liniare
Metode directe - bazate pe reducerea sistemului liniar
(printr-o secventa finita de transformari elementare) la unul
sau doua sisteme triunghiulare, care se rezolva utilizand
proceduri de substitutie (alg. LTRIS si UTRIS).
Exemple:
metodele de eliminare gaussiana;
factorizare compacta LU;
Sunt recomandate pentru sisteme de dim. medii n < 500.
Metode iterative - bazate pe construirea recursiva a unui sir
de vectori care converge catre solutia sistemului liniar.
Exemple:
algoritmul Jacobi;
algoritmul Gauss-Seidel;
Sunt recomandate pentru sisteme de dimensiuni foarte mari.
Transformari elementare
Definitie. O matrice inferior triunghiulara elementara (ITE) de
ordin n si indice k este o matrice de forma
Mk = In mk ekT ,
unde mk = [0 0 0 k+1,k nk ]T este un vector cu primele
componente nule, iar ek este vectorul unitate de indice k.
1 0
0
0
0 1
0
0
.
..
Mk =
1
0
0 0
0 0 k+1,k 0
..
.
0
0 0
nk
Matricea Mk nu se memoreaza integral, ci doar prin vectorul mk !
Transformari elementare - proprietati
a) O matrice ITE este inversabila si Mk1 = In + mk ekT ;
b) Fie x Rn un vector dat, iar Mk o matrice ITE. Atunci
vectorul transformat y = Mk x are elementele
(
xi ,
pentru i = 1 : k,
(Mk x)i =
xi ik xk , pentru i = k + 1 : n.
(1)
c) Fie x Rn . Daca xk 6= 0, atunci exista o matrice ITE Mk
astfel incat vectorul transformat y = Mk x are ultimele n k
componente nule, mai precis
(
xi , pentru i = 1 : k,
(Mk x)i =
0, pentru i = k + 1 : n.
Daca xk = 0, atunci pentru orice Mk avem Mk x = x.
Observatie: alegeti in (1) multiplicatorii ik = xxki .
Transformari elementare - exemplu
2
2
Fie vectorul x =
1. O matrice ITE de indice 1 are forma
1
1
0 0 0
0
1
0
0
21
21
M1 = I4 m1 e1T =
31 0 1 0, unde m1 = 31 .
41 0 0 1
41
Alegand i 1 = xi /x1
, pt. i = 2, 3, 4 atunci
avem
1
0 0 0
1 1 0 0
M1 = I4 m1 e1T =
1/2 0 1 0. Vectorul transformat (vezi
1/2 0 0 1
2
0
proprietatea c) din slide-ul precedent) y = M1 x este
0.
0
Matrice de permutare
Definitie. O matrice Pij Rnn obtinuta din matrice unitate In
prin interschimbarea a doua coloane (sau linii) i si j, adica o
matrice de forma (aici i < j):
Pij = [e1 ei 1 ej ei +1 ej1 ei ej+1 . . . en ]
Ii 1
0
1
I
=
ji 1
1
0
Inj
in care toate elementele nefigurate sunt nule, se numeste (matrice
de) permutare elementara (PE).
Matrice de permutare - Proprietati
a) O PE este ortogonala si simetrica, deci Pij1 = Pij , iar
det Pij = 1.
b) Premultiplicarea unei matrice A cu PE Pij interschimba linia i
cu linia j din A, adica:
ek A, pentru k 6= i , j,
T
ek (Pij A) = ejT A, pentru k = i ,
T
ei A, pentru k = j.
c) Postmultiplicarea unei matrice A cu PE Pij interschimba
coloana i cu coloana j din A, adica:
Aek , pentru k 6= i , j,
(APij )ek = Aej , pentru k = i ,
Aei , pentru k = j.
Matrice de permutare - exemplu
1 0 0
1
Fie matricea P23 = 0 0 1 si A = 2
0 1 0
3
1
Premultiplicand pe A obtinem P23 A = 3
2
1
Postmultiplicand pe A obtinem AP23 = 2
3
2 3
2 3.
3 3
2 3
3 3.
2 3
3 2
3 2.
3 3
Triangularizare prin eliminare gaussiana
Fie A Rnn o matrice nu neaparat inversabila.
Eliminarea gaussiana = metoda de reducere a matricei A la forma
superior triunghiulara prin aplicarea la stanga lui A a unei secvente
de matrice ITE, fiecare aleasa astfel incat sa anuleze elementele
subdiagonale in coloana corespunzatoare ak a matricei A.
Propozitie. Fie A Rnn .
a) Daca L Rnn este inferior triunghiulara, atunci
(LA)[k] = L[k] A[k] .
b) Daca Li Rnn , i = 1 : p, sunt matrice inferior triunghiulare,
atunci
[k] [k]
[k]
(L1 L2 Lp A)[k] = L1 L2 Lp A[k] .
Rezolvarea sistemelor
liniare - exemplu
x1 + x2 + x3 = 1
Rezolvati sistemul 2x1 + 3x2 + 4x3 = 2 utilizand eliminare
4x1 + 2x2 + 3x3 = 3
gaussiana.
Substituind pe x1 din prima ecuatie in celelalte doua, avem
x1 + x2 + x3 = 1
x2 + 2x3 = 0
2x2 x3 = 1.
Din nou, substituind pe x2 din a doua ecuatie in a treia, avem
x1 + x2 + x3 = 1
x2 + 2x3 = 0
3x3 = 1.
Solutia: x1 = 2/3, x2 = 2/3, x3 = 1/3.
Triangularizare prin eliminare gaussiana
Teorema. Daca matricea A Rnn satisface conditia:
submatricele lider principale A[k] , k = 1 : n 1, sunt nesingulare,
atunci exista o matrice inferior triunghiulara unitate M a.i.
matricea
MA = U
este superior triunghiulara. Daca A este nesingulara, atunci U este
nesingulara.
Demonstratia descrie o procedura de reducere efectiva a matricei A
la forma superior triunghiulara U. Procedura consta in n 1 pasi:
Initializare : A1 = A
Pas 1 : A2 = M1 A1 = M1 A
Pas 2 : A3 = M2 A2 = M2 M1 A
...
Pas n 1 : An = Mn1 An1 = Mn1 Mn2 M1 A = U.
{z
}
|
M
Triangularizare prin eliminare gaussiana
Demonstratie:
Pasul 1. Fie A1 = A si a1 = Ae1 . Prin ipoteza,
[1]
A1 = A[1] = a11 6= 0. Atunci exista o matrice ITE M1 a.i.
(
a11 , pentru i = 1,
(M1 a1 )i =
0,
pentru i = 2 : n,
adica matricea A2 = M1 A are toate elementele subdiagonale ale
primei coloane egale cu 0:
(2)
a11
A2 = 0
. . .
0
(2)
a12
(2)
a22
(2)
a32
...
(2)
an2
...
...
...
...
...
(2)
a1n
(2)
a2n
(2)
a3n
...
(2)
ann
Matricea A2 reprezinta rezultatul Pasului 1.
Triangularizare prin eliminare gaussiana
Demonstratie (continuare):
Pasul k. Presupunem ca matricea curenta
Ak = Mk1 M2 M1 A
a11
a12
(k)
...
(k)
a1k
...
...
Ak =
0
...
0
(k)
a1,k1
a22
...
a2,k1
a2k
(k)
...
0
...
0
...
...
...
a3,k1
...
a3k
...
(k)
(k)
(k)
...
...
...
0
...
0
...
...
...
(k)
(k)
(k)
(k)
ak1,k1 ak1,k
0
...
0
(k)
ak,k
...
(k)
an,k
...
...
...
(k)
a1,n
(k)
a2,n
(k)
a3,n
...
(k)
ak1,n
(k)
ak,n
...
(k)
an,n
este superior triunghiulara in primele k 1 coloane, i.e. matricea
[k]
Ak este superior triunghiulara.
Triangularizare prin eliminare gaussiana
Din propozitia precendenta avem
[k]
[k]
[k]
[k]
Ak = Mk1 M2 M1 A[k] ,
[k]
[k]
unde matricile Mi sunt inf. tr. unitate (i.e. det (Mi ) = 1). Din
conditia teoremei (i.e. A[k] nesingulara) avem
[k]
[k]
[k]
det (Ak ) = det (Mk1 ) det (M1 ) det (A[k] ) = det (A[k] ) 6= 0,
(k)
ce conduce la concluzia ca pivotul akk este nenul. Deci, din
proprietatea c) a matricilor ITE, exista o matrice ITE Mk ce
induce zerouri subdiagonale pe coloana k matricii Ak .
Mai mult, premultiplicarea cu Mk a matricei Ak nu altereaza
primele k 1 coloane (in care s-au indus
zero-uri
la pasii anteriori)
I
0
deoarece matricea elementara Mk = k1 .
0
M1
Prin urmare, matricea Ak+1 = Mk Ak este sup. tr. in primele k
coloane; continuand procedura pana la pasul n 1 (inclusiv),
def
obtinem U = An = Mn1 Mn2 M1 A, unde M inf. tr. unitate.
{z
}
|
M
Triangularizare prin eliminare gaussiana
Schema EG
1. Pentru k = 1 : n 1
1. Se calculeaza matricea ITE Mk (adica multiplicatorii ik ,
i = k + 1 : n), astfel incat (Mk A)ik = 0, pentru i = k + 1 : n
2. Se calculeaza A Mk A
(k)
La pasul 1.1, multiplicatorii ik sunt calculati conform ik =
si memorati pe pozitiile elementelor anulate.
u11
21
...
k1
u12
u22
...
k2
k+1,1 k+1,2
...
...
n1
n2
...
...
...
...
...
...
...
u1,k
u2,k
...
uk,k
k+1,k
...
nk
u1,k+1
u2,k+1
...
uk,k+1
(k+1)
ak+1,k+1
...
(k+1)
an,k+1
...
...
...
...
...
...
...
u1,n
u2,n
...
uk,n
(k+1)
ak+1,n
...
(k+1)
an,n
aik
(k)
akk
Triangularizare prin eliminare gaussiana - exemplu
1 2 1
Aplicam procedura de eliminare gaussiana matricii A = 2 1 2
1 1 2
Conditiile de nesingularitate sunt indeplinite: det(A[1] ) = 1 si
det(A[2] ) = 3.
Pasul 1. Se urmareste anularea elementelor a21 si a31 . Consideram
21
= 2 si
pivot elementul a11 . Calculam multiplicatorii 21 = aa11
1 0 0
= 1, ce definesc matricea M1 = 2 1 0. Din
31 = aa31
11
1 0 1
premultiplicarea matricii A avem
1 2 1
A2 = M1 A = 0 3 0 .
0 1 1
Triangularizare prin eliminare gaussiana - exemplu
(2)
Pasul 2. Se urmareste anularea elementului a32 . Consideram pivot
(2)
(2)
elementul a22 . Calculam multiplicatorul 32 = 32
(2) = 1/3, ce
a22
1
0
0
definesc matricea M2 = 0
1
0. In final avem
0 1/3 1
1 2 1
U = A3 = M2 A2 = 0 3 0 .
0 0 1
Schema EG memoreaza multiplicatorii gaussieni in triunghiul
inferior al matricii U:
1 2 1
2 3 0 .
1 1/3 1
Triangularizare prin eliminare gaussiana
Algoritmul G. (Se da A Rnn , cu submatricele lider principale
A[k] , k = 1 : n 1 nesingulare. Se calculeaza matricea sup. tr. U
si matricele ITE M1 , , Mn1 , astfel incat U = Mn1 M1 A.
Matricea U se memoreaza in triunghiul superior al lui A, inclusiv
diagonala, iar multiplicatorii ik in triunghiul inferior al lui A, pe
pozitiile elementelor anulate.)
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : n
aik
1. aik ik =
akk
2. Pentru j = k + 1 : n
1. Pentru i = k + 1 : n
1. aij aij ik akj
Algoritmul necesita
2n3
3
operatii.
Rezolvarea sistemelor liniare - exemplu 2
Rezolvati sistemul
(
104 x1 + x2 = 1
x1 + x2 = 2.
Solutia exacta a sistemului este x1 = 1.00010... si
x2 = 0.999990.... Presupunem precizia masinii de calcul = 103 .
Utilizam procedura de eliminare gaussiana
pt. sistemul:
(
4
10 x1 + x2 = 1
fara pivotare, avem sistemul
, in care
x1 + x2 = 2
prima ecuatie conduce la x1 = 104 (1 x2 ). In urma
substitutiei in a doua ecuatie avem x2 = 9998
9999 1. Deci,
obtinem x1 = 0 (solutie falsa!).
cu pivotare (i.e. schimband pivotul), avem sistemul
(
x1 + x2 = 2
care in urma substitutiei
104 x1 + x2 = 1,
104 (2 x2 ) + x2 = 1 conduce la x2 = 0.9998
0.9999 1. Obtinem
x1 = 1 (solutie corecta!).
Strategii de pivotare
In cazul in care o submatrice lider principala A[k] este singulara,
(k)
atunci la pasul k al schemei de eliminare gaussiana, pivotul akk
este nul. Deci nu exista o matrice ITE Mk care sa anuleze
elementele subdiagonale din coloana k a matricii A.
Remediu: strategii de pivotare = interschimbarea de linii (sau/si
coloane), care aduce in pozitia pivotului un element nenul.
Pivotare partiala - la pasul k se alege ca pivot elementul
maxim in modul din coloana k;
Pivotare completa - la pasul k se alege ca pivot elementul
maxim in modul din coltul dreapta-jos al matricei Ak , i.e.
(k)
elementele aij , i = k : n, j = k : n;
Pivotare partiala
La pasul k al procedurii de triangularizare, se alege ca pivot
elementul maxim in modul din coloana k. Presupunand ca se afla
pe linia ik si este nenul, se interschimba liniile ik si k prin
inmultirea la stanga a matricii A cu o PE Pkik .
Observatie: alegem ik k pentru a nu altera structura matricii
obtinute pana la pasul k.
u11 . . . u1k . . . u1n
u11 . . . u1k . . . u1n
..
..
.
.
0
0
...
...
(k)
(k)
(k)
(k)
akk . . . akn
a ik k . . . a ik n
; Pki Ak =
Ak =
0
...
0
...
k
(k)
(k)
(k)
(k)
a ik k . . . a ik n
akk . . . akn
0
...
0
...
(k)
ank
...
(k)
ann
(k)
ank
...
(k)
ann
Pivotare partiala
Notam Pk = Pik k .
Schema Eliminarea Gaussiana cu Pivotare Partiala.
1. Se determina cel mai mic ik k a.i. |aik k | = max |aik |.
i =k:n
2. Se interschimba liniile ik si k, i.e. A Pk A.
3. Se determina matricea ITE Mk a.i. (Mk A)ik = 0, i = k + 1 : n.
4. Se aplica transformarea A Mk A.
Procesul global conduce la matricea superior triunghiulara:
U = An = Mn1 Pn1 Mn2 Pn2 M1 P1 A.
Eliminarea Gaussiana cu Pivotare Partiala
- exemplu
0.01 1 1
1
2 0.
Aplicam procedura de GPP matricii A =
2
0 1
Conditiile de nesingularitate sunt indeplinite: A[1] = 0.01 si
det(A[2] ) = 0.98.
Initializare: A1 = A;
Pasul 1. Se determina elementul cu modul maxim din coloana 1,
(1)
i.e. a13 = 2. Aplicam o PE pentru a-l muta in pozitia pivotului:
2
0 1
0 0 1
0.01 1 1
2 0 .
2 0 = 1
A1 = 0 1 0 1
0.01 1 1
2
0 1
1 0 0
{z
}
| {z } |
P1
(1)
Consideram pivot elementul a11 = 2. Se urmareste anularea
(1)
(1)
elementelor a21 si a31 .
Eliminarea Gaussiana cu Pivotare Partiala - exemplu
a
(1)
(1)
31
Calculam multiplicatorii 21 = 21
(1) = 0.5 si 31 = (1) = 0.005, ce
a11
a11
1
0 0
definesc matricea M1 = 0.5 1 0. Din premultiplicarea
0.005 0 1
matricii A avem
2 0
1
A2 = M1 A1 = 0 2 0.5 .
0 1 0.995
Pasul 2. Observam ca nu este necesara pivotare (elementul cu
modul maxim de pe coloana 2 este deja in pozitia pivotului).
(2)
Consideram pivot elementul a22 = 2. Se urmareste anularea
(2)
elementului a32 .
Eliminarea Gaussiana cu Pivotare Partiala - exemplu
a
(2)
Calculam multiplicatorul 32 = 32
(2) = 0.5, ce defineste matricea
a22
1
0
0
M2 = 0
1
0. Din premultiplicarea matricii A2 avem
0 0.5 1
2 0
1
U = M2 A2 = 0 2 0.5 .
0 0 1.245
Schema GPP memoreaza multiplicatorii gaussieni in triunghiul
inferior al matricii U:
2
0
1
0.5
2 0.5 .
0.005 0.5 1.245
Algoritmul GPP - Eliminare gaussiana cu pivotare partiala
(Se da A Rnn , nesingulara. Se calculeaza matricea sup. tr. U,
matricele ITE M1 , . . . , Mn1 si PE P1 , . . . , Pn1 a.i.
U = Mn1 Pn1 M1 P1 A. Matricea U se memoreaza in triunghiul
superior al lui A, inclusiv diagonala, iar multiplicatorii ik ce
definesc Mk se memoreaza in triunghiul inferior al lui A. Intregii ik
care definesc PE Pk , sunt memorati in vectorul p Nn1 .)
1. Pentru k = 1 : n 1
1. Se determina cel mai mic ik k : n a.i. |aik k | = max |aik |.
i =k:n
2. p(k) ik
3. Pentru j = k : n
% interschimba liniile k si ik
1. akj aik j
4. Pentru i = k + 1 : n
1. aik ik = aik /akk
5. Pentru j = k + 1 : n
1. Pentru i = k + 1 : n
1. aij aij ik akj
Eliminare gaussiana cu pivotare partiala
Remarca: Operatiile suplimentare necesare in algoritmul GPP,
fata de algoritmul G, apar numai in cautarea pivotului si constau in
comparatiile necesare gasirii elementului maxim in modul din
coloana respectiva.
Numarul de comparatii necesare:
n2
2
<<
2n3
3 .
Teorema. Daca A Rnn este nesingulara, atunci algoritmul
GPP se va executa complet iar matricea superior triunghiulara U
rezultata in final, este nesingulara.
Pivotare completa
La pasul k al procedurii de triangularizare, se alege ca pivot
(k)
elementul maxim in modul din blocul aij , i = k : n, j = k : n.
Presupunand ca primul element nenul cu modul maxim este aik jk ,
se muta in pozitia de pivot (k, k) prin doua interschimbari: una de
linii, cealalta de coloane. Exprimate prin inmultirea lui A la stanga,
respectiv la dreapta, cu PE Pkik , respectiv Qkjk .
Pkik Ak Qkjk
Ak
u11 . . . u1k
0 ...
(k)
akk
(k)
a ik k
(k)
ank
}|
. . . u1jk . . .
...
(k)
. . . akjk
...
(k)
. . . a ik j k
...
(k)
. . . anjk
...
...
...
...
{ z
u11 . . .
0 ...
(k)
akn
(k)
a ik n
(k)
ann
u1n
}|
{
u1jk . . . u1k . . . u1n
...
...
(k)
(k)
(k)
a ik j k . . . a ik k . . . a ik n
...
(k)
(k)
(k)
akjk . . . akk . . . akn
...
(k)
(k)
(k)
anjk . . . ank . . . ann
Pivotare completa
Notam Pk = Pik k si Qk = Qkjk .
Schema Eliminarea Gaussiana cu Pivotare Completa.
1. Se determina cei mai mici (ik , jk ) a.i. |aik jk | = max |aij |.
i ,j=k:n
2.
3.
4.
5.
Se interschimba liniile ik si k, i.e. A Pk A.
Se interschimba coloanele jk si k, i.e. A AQk .
Se determina matricea ITE Mk a.i. (Mk A)ik = 0, i = k + 1 : n.
Se aplica transformarea A Mk A.
Procesul global conduce la matricea superior triunghiulara:
U = An = Mn1 Pn1 Mn2 Pn2 M1 P1 AQ1 Qn1 .
Algoritmul GPC - Eliminare gaussiana cu pivotare completa
(Se da A Rnn , nesingulara. Se calculeaza matricea sup. tr. U,
matricele ITE M1 , . . . , Mn1 si PE P1 , Q1 , . . . , Pn1 , Qn1 a.i.
U = Mn1 Pn1 M1 P1 A. Matricea U se memoreaza in triunghiul
superior al lui A, iar multiplicatorii ik se memoreaza in triunghiul
inferior. Intregii ik si jk care definesc PE Pk si Qk sunt memorati in
vectorii p, q Nn1 .)
Eliminare gaussiana cu pivotare completa
1. Pentru k = 1 : n 1
1. Se determina ik , jk k : n a.i. |aik jk | = max |aij |.
i ,j=k:n
2. p(k) ik
3. q(k) jk
4. Pentru j = k : n
1. akj aik j
5. Pentru i = 1 : n
% interschimba liniile k si ik
% interschimba coloanele k si jk
1. aik aijk
6. Pentru i = k + 1 : n
1. aik ik = aik /akk
7. Pentru j = k + 1 : n
1. Pentru i = k + 1 : n
1. aij aij ik akj
Eliminare gaussiana cu pivotare completa
Remarca: Operatiile suplimentare necesare in algoritmul GPC,
fata de algoritmul G, apar numai in cautarea pivotului (ca si in
cazul pivotarii partiale).
3
Numarul de comparatii necesare: n3 2n3 .
Observam ca pivotarea completa introduce un nr. de comparatii de
acelasi ordin cu numarul operatiilor aritmetice, ce poate conduce la
o crestere semnificativa a timpului de executie. De aceea alg. GPC
se utilizeaza numai cand se doreste o mare siguranta in calculul
rezultatului. Matlab are implementat o versiune a alg. GPP!
Teorema. Daca A Rnn este nesingulara, atunci algoritmul
GPC se va executa complet, iar matricea superior triunghiulara U
rezultata in final, este nesingulara.
Eliminarea Gaussiana cu Pivotare Completa - exemplu
3 1 1
Aplicam procedura de GPC matricii A = 2 2 0.
1 0 2
Initializare: A1 = A;
Pasul 1. Observam ca nu este necesara pivotare (elementul cu
modul maxim din matricea A este deja in pozitia pivotului).
(1)
Consideram pivot elementul a11 = 3. Calculam multiplicatorii
(1)
21 =
a21
(1)
= 2/3 si 31 = 31
(1) = 1/3, ce definesc matricea
a11
1
0 0
M1 = 2/3 1 0. Din premultiplicarea matricii A avem
1/3 0 1
(1)
a11
2
0
1
A2 = M1 A1 = 0 4/3 2/3 .
0 1/3 5/3
Eliminarea Gaussiana cu Pivotare Completa - exemplu
Pasul 2. Se determina elementul maxim in modul din blocul
(2)
A2 (2 : 3, 2 : 3), i.e. a33 = 5/3. Aplicam PE la stanga si la dreapta
pentru a-l muta in pozitia pivotului:
1 0 0
2
1
0
2
0
1
1 0 0
A2 = 0 0 1 0 4/3 2/3 0 0 1 = 0 5/3 1/3 .
0 2/3 4/3
0 1/3 5/3
0 1 0
0 1 0
{z
} | {z }
| {z } |
P1
A2
Q1
(2)
Consideram pivot elementul a22 = 5/3. Calculam
multiplicatorul
1 0 0
(2)
a
0 1 0. Din
32 = 32
(2) = 2/5, ce defineste matricea M2 =
a22
0 2/5 1
premultiplicarea matricii A2 avem
2 1
0
U = M2 A2 = 0 5/3 1/3 .
0 0 22/15
Eliminarea Gaussiana cu Pivotare Completa - exemplu
a
(2)
Calculam multiplicatorul 32 = 32
(2) = 2/5, ce defineste matricea
a22
1 0 0
M2 = 0 1 0. Din premultiplicarea matricii A2 avem
0 2/5 1
2 1
0
U = M2 A2 = 0 5/3 1/3 .
0 0 22/15
Schema GPC memoreaza multiplicatorii gaussieni in triunghiul
inferior al matricii U:
2
1
0
2/3 5/3 1/3 .
1/3 2/5 22/15
Factorizari LU
In multe situatii (e.g. rezolvarea de sisteme liniare) este convenabil
a exprima o matrice data ca produs a doua matrice triunghiulare.
Aceasta forma poate fi utilizata pentru a simplifica anumite calcule
implicand matricea respectiva.
Definitie. Fie A Rnn . Daca exista L Rnn inferior
triunghiulara si U Rnn superior triunghiulara astfel incat
A = LU
atunci se spune ca A admite o factorizare (descompunere) LU.
Definitie. Fie A Rnn . Daca exista L Rnn inferior
triunghiulara, U Rnn superior triunghiulara si D Rnn
diagonala astfel incat
A = LDU
atunci matricea A admite o factorizare LDU.
Factorizari LU
Teorema. O matrice A Rnn are o unica factorizare LU si LDU
daca si numai daca submatricele lider principale A[k] k = 1 : n 1
sunt nesingulare.
Demonstratie: am aratat anterior ca sub conditiile teoremei M
inf. triung. unitate (deci inversabila) si U sup. triung. a.i.
MA = U. Deci, L = M 1 este inf. triung. unitate si A = LU.
De asemenea, daca definim D = diag(u11 unn ) si U = D 1 U,
atunci avem descompunerea A = LDU .
Factorizari LU:
factorizarea Doolittle A = LU, cu L inferior triunghiulara
unitate si U superior triunghiulara,
factorizarea Crout A = LU, cu L inferior triunghiulara si U
superior triunghiulara unitate.
Din teorema rezulta ca ambele factorizari (Crout si Doolittle)
exista si sunt unice daca si numai daca submatricele lider principale
A[k] , k = 1 : n 1 sunt nesingulare.
Factorizari LU rezultate din eliminarea gaussiana
Factorizarea Doolittle este calculata chiar de algoritmul G de
triangularizare gaussiana!!
Teorema. Algoritmul G, aplicat matricei A Rnn , cu
det(A[k] ) 6= 0, k = 1 : n 1, calculeaza factorizarea Doolittle
A = LU, cu L inferior triunghiulara unitate si U superior
triunghiulara. Factorii L (mai putin elementele diagonale) si U sunt
memorati peste A.
Observatie. Matricea inferior triunghiulara L este definita de
1
L = (Mn1 M2 M1 )1 = M11 M21 Mn1
T
= (In + m1 e1T )(In + m2 e2T ) (In + mn1 en1
)
= In +
n1
X
i =1
mk ekT
deoarece eiT mj = 0 i < j
Factorizari LU rezultate din eliminarea gaussiana
Teorema. Triangularizarea obtinuta prin algoritmul GPP, i.e.
Mn1 Pn1 M1 P1 A = U, a matricei A Rnn este echivalenta
cu factorizarea Doolittle a matricei A cu liniile permutate, adica
PA = LU,
unde P = Pn1 P1 . In partea subdiagonala, coloana L(:, k) este
o permutare a vectorului Gauss corespunzator mk ; mai precis, daca
hk = Pn1 Pk+1 mk , atunci L(k + 1 : n, k) = hk (k + 1 : n).
Factorizari LU compacte
Factorizarea Crout poate fi dedusa din factorizarea Doolittle prin
modificarea factorilor triunghiulari.
Fie factorizarea Doolittle a matricii A = LDo UDo si matricea
diagonala D = diag [(UDo )11 , . . . , (UDo )nn ]. Atunci o varianta de
calcul (necompacta) a factorizarii Crout A = LCr UCr este:
A = LDo UDo = LDo D D 1 UDo = LCr UCr .
| {z } | {z }
LCr
UCr
Factorizarea Crout compacta se deduce direct din relatia A = LU,
calculand succesiv cate o coloana din L si cate o linie din U.
Factorizari LU compacte
Schema factorizare Crout compacta.
Initializare. Calculam prima coloana din L si prima linie din U:
Ae1 = LUe1 = Le1 ce implica li 1 = ai 1 , i = 1 : n.
e1T A = e1T LU = l11 e1T U ce implica u1j = a1j /l11 , j = 2 : n.
(din conditia teoremei avem l11 = a11 = A[1] 6= 0)
Presupunem primele k 1 col. din L si k 1 lin. din U calculate
(vezi fig.). Din identitatea A = LU obtinem
k1
k1
P
P
lis usk , i = k : n.
aik = lik +
lis usk ce implica lik = aik
s=1
s=1
Factorizari LU compacte
De asemenea avem:
akj = lkk ukj +
k1
X
lks usj .
s=1
Din conditia teoremei avem ca A[k] = L[k] U [k] este nesingulara,
deci si L[k] este nesingulara (i.e. lkk 6= 0). In concluzie,
!
k1
X
lks usj /lkk .
ukj = akj
s=1
Observatie. Factorizarea Crout se obtine prin simpla identificare a
fiecarui element al matricii A cu produsul scalar dintre linia lui L si
coloana lui U corespunzatoare elementului respectiv.
Factorizari LU compacte
Algoritmul Crout. (Se da A Rnn , cu submatricele lider
principale A[k] , k = 1 : n 1 nesingulare. Se calculeaza factorizarea
Crout A = LU, cu L inf. tr. si U sup. tr. unitate. Matricele L si U
sunt memorate peste elementele corespunzatoare din A, mai putin
elementele diagonale ale lui U, egale cu 1.)
1. Pentru k = 1 : n
1. Pentru i = k : n
1. aik lik = aik
2. Pentru j = k + 1 : n
1. akj ukj =
3
k1
X
lis usk
s=1
akj
k1
X
s=1
lks usj
/lkk .
Algoritmul necesita 2n3 operatii (la fel ca alg. G, GPP, GPC).
Rezolvarea sistemelor liniare utilizand G
Consideram sistemul liniar Ax = b cu submatricile principale de la
k = 1 la k = n 1 ale lui A nesingulara (observatie: A poate sa fie
singulara!).
Utilizand alg. G si tinand cont ca matricele Mk sunt nesingulare,
inf. tr. obtinem sistemul echivalent:
Mn1 M1 A x = Mn1 M1 b .
|
{z
}
{z
}
|
U
In final, am obtinut un sistem superior triunghiular Ux = d.
Deci, odata ce avem implementat alg. G, trebuie doar sa calculam
d = Mb si sa chemam alg. UTRIS pentru perechea (U, d).
Rezolvarea sistemelor liniare utilizand GPP
Consideram urmatoarea sintaxa pentru utilizarea algoritmilor GPP
si GPC:
[M, U, p] = GPP(A)
[M, U, p, q] = GPC(A)
unde M denota multiplicatorii gaussieni ik , k = 1 : n 1,
i = k + 1 : n, U matricea sup. tr. produsa de algoritm, iar p si q
vectori de intregi definind permutarile de linii si, respectiv, coloane.
Consideram sistemul liniar Ax = b cu A nesingulara. Utilizand
GPP si tinand cont ca matricele Mk si Pk sunt nesingulare,
obtinem sistemul echivalent
M P
M1 P1 A x = Mn1 Pn1 M1 P1 b .
|
}
{z
}
| n1 n1{z
U
In final, am obtinut un sistem superior triunghiular Ux = d.
Rezolvarea sistemelor liniare utilizand GPP
Algoritmul S GPP. (Se dau A Rnn nesingulara si b Rn . Se
calculeaza solutia sistemului liniar Ax = b, utilizand procedura de
eliminare gaussiana cu pivotare partiala.)
1.[M, U, p] = GPP(A)
2. Pentru k = 1 : n 1
1. bk bp(k)
2. Pentru i = k + 1 : n
1. bi bi ik bk
3. x = UTRIS(U, b).
3
Algoritmul necesita 2n3 operatii (principalul efort consta in
triangularizarea matricei A).
Rezolvarea sistemelor liniare utilizand GPC
Alternativ, dar mai costisitor, putem utiliza algoritmul GPC. In
acest caz, sistemul Ax = b este echivalent cu
Mn1 Pn1 M1 P1 AQ1 Qn1 Qn1 Q1 x = Mn1 Pn1 M1 P1 b .
{z
}|
{z
} |
{z
}
|
y
Se rezolva sistemul superior triunghiular
Uy = d
cu algoritmul UTRIS, iar stiind ca Qk1 = Qk obtinem solutia
finala
x = Q1 Q2 Qn1 y .
Rezolvarea sistemelor liniare utilizand GPC
Algoritmul S GPC. (Se dau A Rnn nesingulara si b Rn . Se
calculeaza solutia sistemului liniar Ax = b, utilizand procedura de
eliminare gaussiana cu pivotare completa.)
1. [M, U, p, q] = GPC(A)
2. Pentru k = 1 : n 1
1. bk bp(k)
2. Pentru i = k + 1 : n
1. bi bi ik bk
3. x = UTRIS(U, b)
4. Pentru k = n 1 : 1 : 1
1. xk xq(k) .
3
Algoritmul necesita 2n3 operatii (principalul efort consta in
triangularizarea matricei A).
Rezolvarea sistemelor liniare utilizand factorizarea LU
Utilizand factorizarea LU obtinem o forma echivalenta a sistemului
Ax = b:
LUx = b.
Ce se poate rescrie sub forma Ly = b, unde am notat Ux = y .
Prin urmare putem folosi urmatoarea schema:
1. A = LU (calculeaza factorizarea LU)
2. Se rezolva sistemul inferior triunghiular Ly = b
3. Se rezolva sistemul superior triunghiular Ux = y
Rezolvarea sistemelor liniare multiple utilizand LU
Sistemele cu parte dreapta multipla, i.e. de forma AX = B, cu
B Rnp , p > 1, pot fi reduse la p sisteme cu parte dreapta
simpla, Axj = bj , j = 1 : p, unde vectorii xj si bj sunt coloanele j
din X , respectiv B.
Utilizarea naiva de p ori a algoritmului S GPP ar conduce la un
efort de calcul de pn3 /3 flopi, inacceptabil de mare.
Se utilizeaza factorizarea LU o singura data, ramanand de rezolvat
doar sisteme triunghiulare:
1. A = LU (calculeaza factorizarea LU)
2. Pentru j = 1 : p
1. Se rezolva sistemul inferior triunghiular Ly = bj
2. Se rezolva sistemul superior triunghiular Uxj = y
Calculul inversei unei matrice
Fie A Rnn nesingulara. Algoritmul GPP aplicat matricii A
produce matricea superior triunghiulara U definita de:
Mn1 Pn1 M1 P1 A = U,
unde Mk sunt matrice ITE si Pk sunt PE. Se observa usor ca
A1 = U 1 Mn1 Pn1 M1 P1 .
Deci, inversa matricei A poate fi calculata dupa schema:
1. [M, U, p] = GPP(A)
2. X = UINV(U)
3. Pentru k = n 1 : 1 : 1
1. X XMk
2. X XPk .
Calculul inversei unei matrice
In bucla din instructiunea 3, prima atribuire X XMk poate fi
detaliata partitionand pe X pe linii:
xiT Mk = xiT (In mk ekT ) = xiT (xiT mk )ekT
= [xi 1 . . . xi ,k1 xik xiT mk xi ,k+1 . . . xin ], i = 1 : n.
Se observa ca sunt modificate doar elementele de pe coloana k a
lui X .
A doua atribuire, i.e. X XPk , interschimba coloanele k si ik .
Prezentam varianta eficienta de calculare a inversei unei matrice,
ce ia in considerare observatiile de mai sus.
Algoritmul INV GPP (Se da A Rnn nesingulara. Se
calculeaza matricea A1 peste A. Algoritmul utilizeaza algoritmii
GPP pentru triangularizarea gaussiana si UINV pentru inversarea
unei matrice superior triunghiulare).
1. [M, U, p] = GPP(A)
%M si U sunt memorate in A
2. A X = UINV(U)
% doar triunghiul sup. e modificat
3. Pentru k = n 1 : 1 : 1
1. Pentru i = k + 1 : n
1. gi ik
% salveaza multiplicatorii
2. Pentru i = 1 : k
1. aik aik nt=k+1 ait gt
3. Pentru i = k + 1 : n
1. aik nt=k+1 ait gt
4. Daca p(k) 6= k atunci
2. Pentru i = 1 : n
1. aik ai ,p(k) .
% interschimba coloanele k si p(k)
Calculul inversei unei matrice
Observatie 1. Numarul de operatii in virgula mobila efectuate de
algoritmul INV GPP este 2n3 .
Observatie 2. Este remarcabil faptul ca inversarea matriceala nu
este mai complexa (ca numar de operatii) decat inmultirea de
matrice.
Observatie 3. Efortul de calcul necesar inversarii unei matrice este
de aproximativ trei ori mai mare decat cel pentru rezolvarea unui
sistem liniar de aceeasi dimensiune. De aceea, in cazurile posibile,
inversarea matriceala trebuie evitata si inlocuita cu rezolvarea de
sisteme liniare.
Exemplu inversare eficienta
Sa se calculeze eficient scalarul = c T A1 b, unde
A Rnn , b, c Rn .
Schema recomandata:
1. Se rezolva sistemul Ax = b
% rezulta x = A1 b
2. c T x
Schema este sensibil mai eficienta decat aplicarea algoritmului
INV GPP.
Calculul determinantului
Algoritmii GPP si GPC sunt utili si in calculul determinantului
unei matrice. Amintim ca o PE P are det(P) = 1, iar o matrice
ITE Mk are elementele diagonale egale cu 1, deci det(Mk ) = 1.
Asadar
s
det(A) = (1) det(U) = (1)
n
Y
uii ,
i =1
unde s n 1 este numarul de PE proprii (adica Pk 6= In ) din
relatia Mn1 Pn1 M1 P1 A = U.
Calculul determinantului
Algoritmul DET GPP. (Se da A Rnn . Se calculeaza det(A),
utilizand algoritmul GPP.)
1. [M, U, p] = GPP(A)
2. det 1
3. Pentru k = 1 : n
1. det det ukk
4. Pentru k = 1 : n 1
1. Daca p(k) 6= k atunci
1. det det .
Principalul efort de calcul este efectuat de algoritmul GPP.
Daca e disponibila o factorizare
matricii A, atunci
Qn LU Q
det(A) = det(L) det(U) = ( i =1 lii ) ( ni=1 uii ).
Conditionarea sistemelor liniare
Avand in vedere ca determinarea solutiei unui sistem liniar Ax = b
cu precizie absoluta este (in cazul general) imposibila, analiza
acuratetii rezultatului obtinut este importanta.
Considerand o perturbatie a datelor de intrare
b),
se obtine o perturbatie a
(A, b) (A + A, b + b) (A,
solutiei x x + x x, a.i.
(A + A)(x + x) = b + b.
Teorema. Presupunem ca x 6= 0. Eroarea relativa a solutiei
sistemului perturbat este marginita conform relatiei
kxk
kAk kbk
(A)
+
,
kxk
kAk
kbk
unde
(A) = kA1 kkAk
se numeste numar de conditionare al matricei A.
Conditionarea sistemelor liniare
Observatie 1. Numarul de conditionare (A) furnizeaza o masura
a conditionarii problemei rezolvarii sistemului Ax = b, i.e. un (A)
mic corespunde unei bune conditionari (sensibilitate redusa a
solutiei in raport cu perturbatiile datelor).
Observatie 2. Doar matricea A determina conditionarea unui
sistem, vectorul b neavand niciun rol.
Observatie 3. In cazul normei Euclidiene, avem (A) = 1 daca si
numai daca matricea A este ortogonala.
Sisteme simetrice
Consideram sistemul Ax = b cu A inversabila si simetrica.
Observatie. Daca dispunem de factorizarea LU a matricii A = LU,
atunci din simetria A = AT se observa ca U = LT . Deci, este
necesar calculul unui singur factor triunghiular! (intuitiv, dorim un
algoritm cu o complexitate de doua ori mai mica)
Aplicarea naiva a procedurii de eliminare gaussiana distruge
simetria matricii A! Deci, este necesara o modificare a algoritmului
G pentru a profita de simetrie.
Utilizam transformari de congruenta pentru a pastra simetria,
adica se aplica transformarii ITE de ambele parti ale matricei A.
Sisteme simetrice
Schema eliminare gaussiana pentru sisteme simetrice
Initializare:
D1 = A.
La pasul 1:
D2 = M1 AM1T
Stim ca M1 = In e1 m1T , deci rezulta D2 = M1 A (M1 A)e1 m1T ;
deoarece (M1 A)e1 = a11 e1 , se observa ca inmultirea la dreapta cu
M1T , adica (M1 A)M1T nu afecteaza decat prima linie a matricii
M1 A, introducand zero-uri in pozitiile din dreapta diagonalei.
Continuand analog pentru restul coloanelor, obtinem:
La pasul n 1:
T ,
D = Mn1 M2 M1 AM1T M2T Mn1
unde D este matrice diagonala.
La iesire, obtinem factorizarea A = LDLT , cu
1
L = M11 M21 Mn1
inf. tr. unitate si D matrice diagonala.
Sisteme simetrice
Algoritm G pentru sisteme simetrice
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : n
1. ti aik
2. aik aik /akk
2. Pentru j = k + 1 : n
1. Pentru i = j : n
1. aij aij aik tj .
Vectorul t se utilizeaza la salvarea elementelor coloanei curente k,
pe pozitiile carora se memoreaza multiplicatorii
La iesire, obtinem factorizarea A = LDLT , cu
1
L = M11 M21 Mn1
inf. tr. unitate si D matrice diagonala
memorata peste A.
Sisteme simetrice pozitiv definite
Consideram sistemul Ax = b, cu matricea A Rnn este simetrica
si pozitiv definita.
Teorema. Pentru orice matrice simetrica si pozitiv definita
A Rnn , exista o unica matrice inferior triunghiulara L Rnn ,
cu elemente diagonale pozitive, astfel incat
A = LLT ,
expresie numita factorizare Cholesky (iar L este numit factor
Cholesky ). Reciproc, daca factorizarea exista, atunci A este
pozitiv definita.
Evident, putem considera descompunerea A = R T R, unde R = LT
este superior triunghiulara.
Sisteme simetrice pozitiv definite
Din identitatea A = LLT , obtinem pt. prima coloana:
2 l = a
a11 = l11
11
11
ai 1 = li 1 l11 li 1 = ai 1 /l11 , i = 2 : n.
Presupunand primele k 1 coloane din L calculate, identificarea
k1
P 2
2 .
elementului din pozitia (k, k) conduce la akk =
lkj + lkk
j=1
l11
l11 . . . lk1 . . . ln1
a11
.. . .
.. . .
..
. . ..
.
.
.
.
. .
.
0
= lk1 . . . lkk
ak1 . . . akk
l
.
.
.
l
kk
nk
..
..
.. . .
.. . .
.
.. .
.
.
.
.
. .
.
.
0
an1 . . . ank . . . ann
ln1 . . . lnk . . . lnn
lnn
Sisteme simetrice pozitiv definite
k1
P 2
Din conditia ca A sa fie pozitiv definita, avem akk
lkj > 0, si
j=1
s
k1
P 2
putem determina lkk : lkk = akk
lkj . Din identificarea
j=1
elementelor de pe coloana k avem
k1
P
aik =
lij lkj + lik lkk , i = k + 1 : n. Asadar,
j=1
a11
..
.
ak1
..
.
an1
lik = aik
..
.
. . . akk
..
.
. . . ank
k1
X
j=1
l11
..
.
= lk1
..
..
.
.
ln1
. . . ann
lij lkj /lkk , i = k + 1 : n.
..
.
0
. . . lkk
.. . .
.
.
. . . lnk . . . lnn
l11 . . .
..
ln1
..
.
. . . lnk
. . ..
. .
lnn
lk1 . . .
..
.
lkk
Algoritm factorizare Cholesky
Algoritmul CHOL (Se da A Rnn simetrica. Se stabileste daca
A este pozitiv definita si, in acest caz, se scrie peste triunghiul
inferior al lui A matricea L din factorizarea Cholesky A = LLT .)
1. Pentru k = 1 : n
1. akk
k1
X
lkj2
j=1
2. Daca 0 atunci
1. Tipareste A nu este pozitiv definita
2. Stop
3. akk lkk =
4. Pentru i = k + 1 : n
1. aik lik = aik
k1
X
j=1
lij lkj /lkk .
Factorizare Cholesky - exemplu
3 1
.
Determinati factorul Cholesky al matricii A =
1 3
Folosim identitatea A = LLT , i.e.
3 1
l11 0
l11 l21
=
.
1 3
0 l22
l21 l22
2 = 3, ceea ce implica l
Observam ca a11 = l11
11 =
3.
Din inmultirea liniei 2 din L cu coloana
1 din LT , avem
l21 l11 = 1, ceea ce implica l21 = 1/ 3.
Din inmultirea liniei 2 din L cu coloana 2pdin LT , avem
2 = 3 l 2 = 8/3, ceea ce implica l
l22
8/3.
22 =
21
3
0
p
Am determinat factorul Cholesky L =
, si putem
1/ 3
8/3
concluziona ca matricea este pozitiv definita.
Sisteme simetrice pozitiv definite
Algoritmul CHOL necesita
n3
3
operatii.
Sistemul liniar Ax = b, cu A pozitiv definita se calculeaza dupa
schema:
1. Se factorizeaza A = LLT cu algoritmul CHOL
2. Se rezolva sistemul inferior triunghiular Ly = b
3. Se rezolva sistemul superior triunghiular LT x = y .
Se efectueaza de doua ori mai putine operatii decat daca s-ar
aplica algoritmul de eliminare gaussiana.
Metode iterative pentru rezolvarea sistemelor liniare
Metode iterative - construiesc recursiv un sir de vectori
convergenti catre solutia sistemului Ax = b. Iteratia este de forma:
x k+1 = Bx k + c,
unde matricea B si vectorul c sunt determinate de (A, b).
Convergenta acestor metode este asigurata daca raza spectrala
(B) < 1.
Metodele iterative se bazeaza pe descompunerea:
A=M N
unde M se alege a.i. inversa ei se calculeaza usor (e.g. matrice
diagonala, triunghiulara). Atunci sistemul Ax = b se rescrie
Mx = Nx + b ce conduce la iteratia Mx k+1 = Nx k + b. Deci,
B = M 1 N si c = M 1 b.
Exemple:
algoritmul Jacobi;
algoritmul Gauss-Seidel
Metoda Jacobi
In metoda Jocabi se considera urmatoarea descompunere a lui A:
A = D N,
i.e. M = D este matricea diagonala data de D = diag(a11 ann ).
Obtinem iteratia: Dx k+1 = Nx k + b sau echivalent
P
k
b
i
j6=i aij xj
x k+1 = D 1 Nx k + D 1 b
xik+1 =
aii
metoda este bine-definita daca toate elementele diagonale ale
lui A sunt ne-nule!
metoda converge daca (D 1 N) < 1 sau daca matricea A
este strict diagonal dominanta:
X
|aii | >
|aij | i
j6=i
Metoda Jacobi - exemplu
Consideram sistemul cu 2 necunoscute:
11
1
2 1
0
x=
si x =
13
1
5 7
| {z }
| {z }
A
D 1 N
In acest caz B =
11/2
1
c=D b=
.
13/7
0
1/2
=
5/7
0
si
Iteratiile x k+1 = (D 1 N)x k + D 1 b devin:
5
69/14
1
2
x =
, x =
,
8/7
12/7
si continua pana la convergenta (A matrice diagonal dominanta)
i.e. norma kAx k bk mica.
Metoda Gauss-Seidel
In metoda Gauss-Seidel se considera descompunere lui A:
A = L U,
i.e. M = L este matricea inferior triunghiulara din A si U strict
superior triunghiulara.
Obtinem iteratia Lx k+1 = Ux k + b sau:
x
k+1
=L
Ux +L
xik+1 =
bi
k+1 Pn
j=i +1 aij xjk
j=1 aij xj
Pi 1
aii
metoda este bine-definita daca toate elementele diagonale ale
lui A sunt ne-nule!
metoda converge daca (L1 U) < 1 sau A este pozitiv
definita sau daca matricea A este strict diagonal dominanta:
X
|aii | >
|aij | i
j6=i
Metoda Gauss-Seidel - exemplu
Consideram sistemul cu 2 necunoscute:
11
1
16
3
0
x=
si x =
13
1
7 11
| {z }
| {z }
A
In acest caz
L1 U
0 0.18
0.68
1
=
si L b =
.
0 0.11
0.74
Iteratiile x k+1 = (L1 U)x k + L1 b devin:
0.5
0.84
1
2
x =
, x =
,
0.86
0.64
si continua pana la convergenta (A matrice diagonal dominanta),
i.e. norma kAx k bk mica.
Aplicatie -soarecele si labirintul
O aplicatie din probabilitate: consideram un labirint si un soarece
intr-un experiment de laborator:
experimentul consta in plasarea unui soarece la una din cele
10 intersectii ale labirintului
daca soarecele ajunge intr-un coridor exterior, atunci el nu se
poate intoarce (reveni)in labirint
cand soarecele este intr-o intersectie, alege aleator un drum
Care este probabilitatea castigatoare pi ca soarecele sa ajunga la
coridorul cu hrana pornind din intersectie i ?
Aplicatie -soarecele si labirintul
De exemplu, in prima intersectie, soarecele are probabilitatea:
1
4
1
4
1
4
de a alege sus-dreapta si a pierde
de a alege sus-stanga si a pierde
de a alege jos-dreapta si astfel a ajunge la un punct cu
probabilitate de castigare p3
1
4
de a alege jos-stanga si astfel a ajunge la un punct cu
probabilitate de castigare p2 .
1
1
1
1
p1 = (0) + (0) + (p2 ) + (p3 )
4
4
4
4
In mod similar obtinem:
1
1
1
1
1
p2 = (0) + (p1 ) + (p3 ) + (p4 ) + (p5 )
5
5
5
5
5
1
1
1
1
p10 = (0) + (1) + (p6 ) + (p9 )
4
4
4
4
Aplicatie -soarecele si labirintul
Obtinem sistemul patratic Ap = b, cu matricea A R1010 foarte
rara, p = [p1 p10 ]T si b = [06 1 1 1 1]:
4
1
0
A=
0
0
0
1
5
1
1
1
0
0
0
0
0
1
1
5
0
1
1
0
0
0
0
0
1
0
5
1
0
1
1
0
0
0
1
1
1
6
1
0
1
1
0
0
0
0
0
0
1 0
0
0
0
1 0
0
0
0
0 1 1 0
0
1 0 1 1 0
5
0
0 1 1
0
4 1 0
0
0 1 5 1 0
1 0 1 5 1
1 0
0 1 4
Folosind Gauss-Seidel pornind cu p = 0, produce dupa 18 iteratii
solutia (datorita raritatii A, G-S este mai avantajoasa decat GPP):
p1 = 0.09, p2 = 0.18, p3 = 0.18, p4 = 0.29, p5 = 0.33
p6 = 0.29, p7 = 0.45, p8 = 0.52, p4 = 0.52, p10 = 0.45
Metode Numerice
Curs IV
Problema celor mai mici patrate
Ion Necoara
2014
Rezolvarea de sisteme liniare: m 6= n
In acest curs prezentam metode numerice pentru rezolvarea
sistemelor de ecuatii liniare:
Ax = b, unde A Rmn , m 6= n
daca m > n (sistem supradeterminat), atunci de regula nu
avem solutie cautam o solutie aproximativa a.i. reziduul
r = b Ax sa fie cat mai mic, i.e. solutia aproximativa sa
minimizeze norma reziduului:
min kb Axk
xRn
daca m < n (sistem subdeterminat), atunci de regula avem o
infinitate de solutii cautam o solutie de lungime cat mai
mica, i.e. solutia se obtine din minimizarea:
min
kxk
n
xR :Ax=b
Ambele probleme se numesc: problema celor mai mici
patrate (CMMP). Probleme de tip (CMMP) apar in multe
aplicatii: aproximarea functiilor, modelarea si identificarea
sistemelor, prelucrarea semnalelor!
Problema CMMP - interpretarea geometrica
Se observa ca cea mai buna aproximare a lui b pe S = Im A
coincide cu proiectia ortogonala a lui b pe S, i.e. Ax .
Distanta minima de la un punct b la un subspatiu S este
lungimea perpendicularei duse din b pe S, i.e. kb Ax k.
Avem b = Ax + (b Ax ) si Ax b Ax .
Applicatie CMMP - 1
Fitting de date: se dau urmatoarele
functii f1 , , fn numiti regresori sau functii de baza
date sau masuratori (ui , bi ) i = 1, . . . , m (de obicei m n)
Problema: gasiti coeficientii reali x1 , xn s.t.
bi = x1 f1 (u1 ) + + xn fn (u1 ) i = 1, , m
Obtinem sistemul linear:
Ax = b unde A Rmn , Aij = fj (ui )
Solutie:
A patratica si inversabila, atunci solutie unica
A cu n m (subdeterminata) - o infinitate de solutii, atunci
se cauta solutia de norma minima (CMMP)
A cu m n (supradeterminata) - nici o solutie, atunci se
cauta solutia care minimizeaza expresia patratica (CMMP)
m
X
i =1
(x1 f1 (ui ) + + xn fn (ui ) bi )2 = kAx bk2
Aplicatie CMMP - 2
Fitting un polinom de grad < n
p(t) = x0 + x1 t + + xn1 t n1
la datele (ti , bi ), i = 1, , m
functii de baza pj (t) = t j1 pentru j = 1, , n
matricea A cu intrarile Aij = tij1 (matrice Vandermonde)
A=
..
.
t1n1
t2n1
..
.
1 tm tm
n1
tm
1
1
..
.
t1
t2
..
.
t12
t22
..
.
4t
Exemplu: aproximam functia f (t) = 1+10t
2 cu un polinom pe
intervalul [0, 1] avand la dispozitie 100 de date
Aplicatie CMMP - 2
Fitting un polinom la date
CMMP fit (A R100d ) cu polinoame de grad d = 1, 2, 3, 4
avand eroarea kAx bk = 0.135, 0.076, 0.025, 0.005
Linie continua f (t), linie punctate pd (t) pe [0, 1]
In acest curs vom invata algoritmi numerici pentru rezolvarea
acestei probleme!
Aplicatie CMMP - 2
Regresie liniara: fitting un polinom de grad 2 pentru estimarea
populatiei planetei.
Se cunoaste populatia (in miliarde) intre anii 1950 si 1985:
anul
populatie
1950
2.53
1955
2.77
1960
3.05
1965
3.36
1970
3.72
1975
4.1
1980
4.47
Exemplu: se porneste de la t = 4 pana la t = 3 si polinomul:
p(t) = a2 t 2 + a1 t + a0
solutia CMMP este a2 = 0.013, a1 = 0.351, a0 = 3.7126
estimati populatia planetei din anul 1990?
1985
4.87
Aplicatie CMMP - 3
Identificarea sistemlor: consideram un sistem intrare-iesire
Pentru sistemul considerat dispunem de 40 de masuratori
intrare-iesire {u(t), y (t)}:
7.5
1.6
6.5
1.4
1.2
5.5
y(t)
u(t)
1.8
0.8
4.5
0.6
0.4
3.5
0.2
10
15
20
25
30
35
40
2.5
10
15
20
25
30
35
40
Aplicatie CMMP - 3
Identificarea sistemelor: dorim sa aproximam sistemul printr-un
model intrare-iesire de forma ARMA
ymodel (t) = x1 u(t)+x2 u(t 1)+x3 u(t 2)+x4 u(t 3)+x5 u(t 4).
Gasirea setului de parametrii x = [x1 x5 ]T ai modelului poate fi
realizata prin rezolvarea unui sistem liniar (problema CMMP):
Ax = b
cu
A R365
b = [y (5) y (6) y (40)]T
A=
u(5)
u(6)
u(7)
..
.
u(4)
u(5)
u(6)
..
.
u(3)
u(4)
u(5)
..
.
u(2)
u(3)
u(4)
..
.
u(1)
u(2)
u(3)
..
.
u(40) u(39) u(38) u(37) u(36)
Aplicatie CMMP - 3
Identificarea sistemelor: raspunsul modelului estimat
Raspunsul estimat si raspunsul real
8
7.5
6.5
5.5
4.5
ymodel (t)
y(t)
3.5
10
15
20
25
30
35
40
Aplicatie CMMP - 4
Problema Netflix:
sistem de recomandare pentru filme: predictie cu acuratete
cat mai mare,a cat de mult iti va placea un film bazat pe
preferintele tale
concursul privind imbunatatirea algoritmului de recomandare
Netflix a pornit in 2006.
In 2008 un premiu de 50K pentru 9.44% imbunatatire, iar in
2009 premiul cel mare de 1 milion pentru 10.06% imbunatatire
Aplicatie CMMP - 4
Problema Netflix: datele de antrenare pentru algoritmul de
recomandare: 100 milioane ratings; 480.000 utilizatori; 17.700
filme; date stranse in 6 ani (20002005)
Aplicatie CMMP - 4
Problema Netflix: principalele obstacole
dimensiunea datelor foarte mare: este nevoie de algoritmi
eficienti din punct de vedere al calculelor si al memoriei
datele de test si cele de antrenare sunt diferite: e.g. datele de
test ratings sunt mai recente
99% date lipsesc, deci metodele standard nu se aplica
multi factori afecteaza rating-ul unui film: actorii, regizorul,
stilul actiunii, muzica, genul
Matematica aplicata ajuta: Metodele Numerice si Optimizarea!
utilizator Y caracterizeaza
filmele prin atribute: violenta
(x1 = 1.5); umor (x2 = 3.5);
acest actor (x3 = 0.5), etc ...
factorizarea de matrici este
principala abordare
combinata cu metoda
gradient din optimizare
Aplicatie CMMP - 5
Tomografie computerizata = tehnica noninvaziva ce foloseste
raze X (sau alte tipuri de radiatii) pentru a produce imagini 2D/3D
ale interiorului obiectului scanat.
Reconstructie tomografica: procedura de functionare consta in
1. Se achizitioneaza o serie de
proiectii, din diferite unghiuri,
ale obiectului scanat;
[Link]
2. Prin intermediul proiectiilor obtinute, se reconstruieste
interiorul obiectului cu ajutorul
unui algoritm iterativ;
[Link]
In majoritatea cazurilor, radiatiile folosite sunt daunatoare; de
aceea se urmareste achizitionarea unui numar minim de proiectii.
Aplicatie CMMP - 5
Reconstructie tomografica - formularea problemei:
Fie x Rn imaginea interiorului de reconstruit.
Pentru reconstructie, dispunem de diferite masuratori liniare
(proiectii) ale imaginii x: bi = Ai x, i = 1, , m.
mn
T T
Notam vectorul proiectiilor b Rm si A = [AT
1 Am ] R
matricea de achizitie.
Imaginea interiorului reprezinta solutia sistemului liniar
(subdeterminat deoarece sunt mai putine masuratori m decat
dimensiunea imaginii n): Ax = b.
reformulare in termeni de problema CMMP:
min
xRn : Ax=b
kxk
unde de obicei se alege = 2 sau = 0 sau = 1. Alegem
= 0 1 pentru a induce o reprezentare rara a imaginii (vectorul
solutie). Se doreste o reprezentare rara a imaginii deoarece aceasta
permite: compresie usoara; algoritmi rapizi pt. procesare; memorie
de stocare mica; eliminarea usoara a zgomotului;...
Transformari ortogonale
Definim 2 transformari ortogonale utilizate in calculul numeric:
reflectori (transformari Householder) si rotatii (transformari
Givens).
Reflector, corespunzator unui vector u Rm normat (i.e.
kuk = 1), se defineste astfel:
U = Im 2uu T
Rotatie, corespunzatoare unei perechi de intregi (k, i ), se
defineste astfel:
Ik1
c
s
, unde c 2 + s 2 = 1
Ii k1
Pki =
s
c
Imi
Transformari ortogonale - reflectori
Principalele proprietati ale reflectorilor (transformari Householder):
U = Im 2uu T , unde kuk = 1
Un reflector este matrice simetrica (U = U T ) si ortogonala
(U T U = Im )
Definim un reflector de ordin m si indice k asociat unui
vector u Rm cu primele k 1 componente nule, i.e.
u = [0 0 uk um ]T , astfel:
Uk = Im 2
uu T
uu T
,
=
I
m
kuk2
kuk2
2
Numim u vector Hauseholder si factor de normare
Aplicarea transformarii Uk unui vector x:
uT x
uT x
u = x u, unde =
Observatie: deoarece u are primele k 1 componente nule,
atunci transformarea Uk x nu modifica primele k 1
componente din x
Uk x = x
unde =
Transformari ortogonale - reflectori
Reflector de ordin m si indice k asociat vectorului Hauseholder
2
u = [0 0 uk um ]T si factorului de normare = kuk
2 :
uu T
Ik1 0
=
Uk = Im
0
U1
aplicarea transformarii Uk unui vector x lasa neschimbate
primele k 1 componente ale lui x
aplicarea transformarii Uk matricei
A lasa neschimbate
primele
B
B
k 1 linii din A: i.e. daca A =
, atunci Uk A =
C
U1 C
matricea transformata Uk A este modificare de rang 1 a lui A:
Uk A = (Im
uu T
)A = A uv T ,
unde v =
AT u
Transformari ortogonale - reflectori
Generarea reflectorilor se face in scopul introducerii de zerouri
intr-un vector x. E.g. pentru a face zerouri in x(2 : m), putem
defini vectorul:
u1 = x + kxke1 U1 = Im 2
u1 u1T
ku1 k2
U1 x = kxke1
E.g. pentru a face zerouri in x(k + 1 : m), putem defini vectorul
x = [0(1 : k 1) x(k : m)]T si apoi
uk = x + k
x kek Uk = Im 2
uk ukT
kuk k2
(Uk x)(k : m) = kxke1
si (Uk x)(1 : k 1) = x(1 : k 1)
Transformari ortogonale - reflectori
Generarea reflectorilor se face in scopul introducerii de zerouri
intr-un vector. Pentru x Rm , putem determina un reflector Uk
a.i. ultimele m k componente ale vectorului transformat sa fie
nule, i.e. (Uk x)i = 0, pentru i = k + 1 : m
Propozitie: q
Pentru k = 1 : m 1 si vectorul x Rm a.i.
Pm 2
m
= sgn(xk )
i =k xi 6= 0, definim vectorul Householder u R :
pentru i = 1 : k 1,
0,
kuk2
si scalarul =
ui = xk + , pentru i = k
= uk .
xi ,
pentru i = k + 1 : m
T
Atunci reflectorul Uk = Im uu de ordin m si indice k satisface:
pentru i = 1 : k 1,
xi ,
(Uk x)i = , pentru i = k
0,
pentru i = k + 1 : m
Demonstratie: observam imediat ca =
uT x
= 1 si Uk x = x u!
Transformari ortogonale - reflectori
Pentru a asigura stabilitate numerica si pentru ca vectorul u este
esential determinat numai ca directie, realizam scalarea acestuia:
xi
xk
si ui =
i = k + 1 : m = uk
uk = 1 +
Algorithm RFG: Se genereaza un reflector Uk si se aplica
transformarea. Partea esentiala ui , i = k + 1 : m, a vectorului
Householder u se memoreaza pe pozitiile corespunzatoare din x.
daca k < m
v
u m
uX
=t
x2
i
i =k
daca 6= 0
= sgn(xk )
xi ui = xi / i = k : m
uk = 1 + xk
si xk =
Pentru k = 1 obtinem un reflector U1 a.i. U1 x = e1 !
Transformari ortogonale - reflectori
Fie acum U1 un reflector dat, generat de alg. RFG, iar y Rm un
vector arbitrar. Consideram aplicarea transformarii y U1 y .
Algorithm RF: Transformarea y U1 y data de U1 y = y u:
daca 6= 0
t = u1
u1 =
m
X
ui yi )/
=(
i =1
xi yi ui i = 1 : m
u1 = t
Transformari elementare
- exemplu reflector
2
2
Fie vectorul x =
0. Un reflector de ordin 4 si indice 1 care
1
anuleaza
ultimile
3
componente din x se defineste astfel:
2
2
2
= 2 + 2 + 1 = 3 (semnul lui x1 este +) si vectorul
Householder u = [5/3 2/3 0 1/3]T . In plus = 5/3.
Reflectorul are forma:
U1 = I4
uu T
0.66 0.66 0 0.33
0.66 0.73 0 0.13
=
0
0
1
0
0.33 0.13 0 0.93
3
0
Vectorul transformat x = U1 x este
0 .
0
Transformari ortogonale - rotatii
Pentru m = 2 o rotatie de unghi este data de matricea:
cos sin
P=
sin cos
Rotatia (transformarea Givens) de ordin m > 2 in planul (k, i ):
Ik1
c
s
, unde c 2 + s 2 = 1
Pki =
Ii k1
s
c
Imi
Observatie: o rotatie nu este matrice simetrica, dar este matrice
ortogonala: PkiT Pki = Pki PkiT = Im . Rotatia Pki aplicata unui
vector x modifica doar componentele (k, i ) din x:
pentru l 6= k, i
xl ,
(Pki x)l = cxk + sxi , pentru l = k
cxi sxk , pentru l = i
Pki aplicata matricei A, i.e. Pki A, modifica doar liniile (k, i ) din A.
Transformari ortogonale - rotatii
Rotatiile pot introduce un zerou intr-un vector. Fiind dat un vector
x Rm , putem determina o rotatie Pki a.i. componenta i din
vectorul transformat este nula, i.e. (Pki x)i = 0.
Propozitie:
Pentru k 6= i 1 : m si x Rm a.i.
q
r = xk2 + xi2 6= 0, definim numerele reale:
xi
xk
si s = .
r
r
Atunci rotatia Pki de ordin m in planul (k, i ) satisface:
xl , pentru l 6= k, i
(Pki x)l = r , pentru l = k
0, pentru l = i
c=
Observatie: rotatiile permit anularea unei singure componente din
vector se utilizeaza in matrici structurate. Pentru a anula mai
multe componente dintr-un vector,utilizam o secventa de rotatii:
Pk = Pkm Pk,k+1 a.i. (Pk x)i = 0 i = k + 1 : m
Transformari ortogonale - rotatii
Pentru a asigura stabilitate numerica, semnul lui r se alege a.i. r si
cel mai mare (in modul) dintre xk si xi sa aiba acelasi semn!
Algorithm ROTG: Se genereaza o rotatie P si se aplica
transformarea pe x R2 . Pe pozitia elementului anulat x2 se
returneaza scalarul z care permite reconstructia parametrilor c, s.
r = kxk
daca |x2 | > |x1 |
r = sgn(x2 )r
altfel
r = sgn(x1 )r
c = x1 /r , s = x2 /r , x1 = r
daca c = 0 atunci
%calculul lui z
z =1
altfel daca|x2 | |x1 | atunci
z = 1/c
altfel z = s
x2 = z
Transformari ortogonale - rotatii
Fie acum P o rotatie data, generata de alg. ROTG, iar y R2 un
vector arbitrar. Consideram aplicarea transformarii y Py .
Algorithm ROT: Transformarea y Py :
%reconstructia perechii (c, s)
daca z = 1
c = 0, s = 1
altfel daca|z| > 1
p
c = 1/z, s = 1 c 2
altfel
s = z, c =
1 s2
%se aplica transformarea
t = x1
x1 = ct + sx2
x2 = cx2 st
Transformari elementare - exemplu rotatie
3
Fie vectorul x = 2. O rotatie in planul (1, 3) care anuleaza
4
componenta 3 din x se defineste astfel: r = 32 + 42 = 5 (semnul
este dat de x3 deoarece |x3 | > |x1 |) si c = 3/5, s = 4/5.
Rotatia are forma:
P13
3/5 0 4/5
1 0
= 0
4/5 0 3/5
5
Vectorul transformat x = P13 x este 2.
0
Triangularizare ortogonala
In cele ce urmeaza, descriem proceduri de triangularizare folosind
transformari ortogonale. Reamintim ca reflectorii si rotatiile sunt
transformari ortogonale: U T U = P T P = Im !
Teorema. Pentru oricare matrice A Rmn , exista o matrice de
transformare ortogonala U = Q T a.i. matricea
UA = Q T A = R
este superior triunghiulara (sau echivalent A poate fi scrisa sub
forma unui produs A = QR, unde Q ortogonala si R superior
triunghiulara, numita factorizarea QR).
Demonstratia descrie o procedura de reducere efectiva a matricei A
la forma superior triunghiulara R:
(i) In cazul m > n procedura consta in n pasi, construind
U = Un U2 U1 : initializam A1 = A si apoi iteram
Pas 1 : A2 = U1 A1 = U1 A,
Pas 2 : A3 = U2 A2 = U2 U1 A,
Pas n : An+1 = Un An = Un Un1 U1 A = R
{z
}
|
U
Triangularizare ortogonala
Demonstratie:
Pasul 1. Fie A1 = A si a1 = Ae1 . Daca a1 6= const. e1 , atunci
exista un reflector U1 de ordin m si indice 1 a.i.
(U1 a1 )i = 0, pentru i = 2 : n
adica matricea A2 = U1 A are toate elementele subdiagonale ale
primei coloane egale cu 0:
r11 r12 . . . r1n
0 a(2) . . . a(2)
22
2n
(2)
(2)
A2 = 0 a32
. . . a3n
. . . . . . . . . . . .
(2)
(2)
0 am2 . . . amn
Matricea A2 reprezinta rezultatul Pasului 1.
Triangularizare ortogonala
Demonstratie (continuare):
Pasul k = 2 : n. Presupunem ca matricea curenta
r11
0
. . .
Ak = 0
. . .
0
Ak = Uk1 U2 U1 A
r12
r22
0
...
0
0
...
0
...
...
...
...
...
...
...
...
r1,k1
r2,k1
r3,k1
...
r1k
r2k
r3k
...
rk1,k1 rk1,k
(k)
0
ak,k
...
...
(k)
0
am,k
...
...
...
...
...
...
...
...
r1,n
r2,n
r3,n
...
rk1,n
(k)
ak,n
...
(k)
am,n
este superior triunghiulara in primele k 1 coloane. Daca
(k)
ai ,k , i = k + 1 : m nu sunt toate nule, atunci exista un reflector
Uk de ordin m si indice k a.i.
(k)
(Uk ak )i = 0 i = k + 1 : m.
Triangularizare ortogonala
Deci Ak este superior triunghiulara in primele k 1 coloane. Exista
un reflector Uk de ordin m si indice k a.i.
(k)
(Uk ak )i = 0 i = k + 1 : m.
Tinand cont coloana j = 1 : k 1 din Ak are ultimele
m k + 1 elemente 0 si vectorul Hauseholder uk are primele
k 1 componente 0, atunci produsul scalar intre coloana rj
din Ak cu vectorul Hauseholder uk este zero si deci
= rjT uk / = 0.
In concluzie, din Uk x = x u, obtinem ca Ak+1 = Uk Ak are
primele k 1 coloane nemodificate, iar in coloana k
elementele subdiagonale sunt nule.
Mai mult, deoarece este reflector de indice k, primele k 1
linii din Ak raman nemodificate
In concluzie, avem:
Rk1 Rk1
Ik1 0
Rk1 Rk1
Ak+1 = Uk Ak =
=
0
Akk
0
U1 Akk
0
U1
Triangularizare ortogonala
Daca Ak este superior triunghiulara in primele k 1 coloane.
Exista un reflector Uk de ordin m si indice k a.i.
(k)
(Uk ak )i = 0 i = k + 1 : m.
Deci folosind aceasta transformare, obtinem:
Ak+1
I
0
= Uk Ak = k1
0
U1
Rk1 Rk1
Rk1
Rk1
=
0
Akk
0
U1 Akk
Prin urmare, matricea Ak+1 = Uk Ak este sup. tr. in primele k
coloane; continuand procedura pana
la pasul n (inclusiv), obtinem
R
def
R = An+1 = Un Un1 U1 A =
, cu R Rnn sup. tr. si
0
|
{z
}
U
U ortogonala.
Triangularizare ortogonala
(ii) In cazul m n procedura consta in m 1 pasi, construind
U = Um1 U2 U1 : initializam A1 = A si apoi iteram
Pas 1 : A2 = U1 A1 = U1 A,
Pas 2 : A3 = U2 A2 = U2 U1 A,
Pas m 1 : R = Am = Um1 Am1 = Um1 Um2 U1 A = [R S],
{z
}
|
U
unde R Rmm este sup. tr., iar S o matrice fara structura.
Observatie: Aceasta triangularizare ortogonala se poate folosi si
pentru m = n, i.e. in locul eliminarii gaussiene! Aceasta procedura
necesita aproximativ 2(mn2 n3 /3) operatii, care in cazul m = n
se reduce la 43 n3 (i.e. complexitate dubla fata de algoritmul de
eliminare gaussiana). De aceea, in cazul patratic se prefera
algoritmul de eliminare gaussiana.
Triangularizare ortogonala
Algoritmul QR. (Se da A Rmn si efectuam triang. ortog.
Q T A = R, unde Q T = Us U1 , iar Uk = UkT reflectori. Partea
esentiala uk (k + 1 : m) a vectorilor Householder uk se memoreaza
in A(k + 1 : m, k) si se tine seama ca ukk = k . Elementele nenule
din R suprascriu triunghiul superior din A)
1. Pentru k = 1 : s = min(m 1, n)
1. Calculam = kA(k : m, k)k
2. Daca 6= 0 atunci = sgn(akk )
%determinam Uk
1. aik uik = aik / pentru i = k : m
2. k ukk = 1 + akk
3. Pentru j = k + 1 : n
m
X
1. =
uik aij /k
%aplicam Uk
i =k
2. aij aij uik pentru i = k : m
4. akk =
Triangularizare ortogonala - exemplu 1
Aplicam
procedura
de triangularizare ortogonala matricii
2
3
A = 1 1
2 1
Pasul 1. Se urmareste anularea
p elementelor a21 si a31 cu un
reflector U1 . Calculam = 22 + (1)2 + 22 = 3 (semnul lui a11
este +) si atunci vectorul Hauseholder u1 = [5/3 1/3 2/3]T si
1 = 5/3. Definim apoi reflectorul:
0.66 0.33 0.66
u1 u1T
= 0.33
0.93
0.13
U1 = I3
1
0.66 0.133 0.73
Din premultiplicarea matricii A avem:
3 1
A2 = U1 A = 0
1.8
0 2.6
Triangularizare ortogonala - exemplu 1
Pasul 2. Se urmareste
anularea elementului
a32 cu un reflector U2 .
p
(2)
Calculam = (1.8)2 + (2.6)2 = 10 (semnul lui a22 este +)
si atunci vectorul Hauseholder u2 = [0 1 + 1.8
2.6
]T si
10
10
2 = 1 +
1.8
.
10
Definim apoi reflectorul:
1
0
0
T
u2 u2
= 0 0.56 0.82
U2 = I3
2
0 0.82 0.56
Din premultiplicarea matricii A2 avem:
3
1
R = A3 = U2 A2 = 0 3.16
0
0
In final, matricea ortogonala Q:
0.66 0.33 0.66
Q T = U2 U1 = 0.73 0.42 0.52
0.10 0.84
0.52
Triangularizare ortogonala - exemplu 2
R
Consideram matricea cu structura: A =
Rmn , unde
C
R Rnn este deja sup. tr., iar C R(mn)n este matrice
oarecare. Schema de triangularizare ortogonala este:
R
Q T A = Un U1 A =
0
in care reflectorii Uk sunt determinati de vectorii Householder:
uk = [0 0 ukk 0 0 un+1,k umk ]T
pentru a anula complet coloana k din C . Mai mult, datorita
structurii de zerouri intre pozitiile k + 1 si n din uk , liniile
i = k + 1 : n din A raman nemodificate. In acest caz, numarul de
operatii se reduc de la 2(mn2 n3 /3) la 2(m n)n2 !
Factorizarea QR: m n
Pentru cazul m n avem:
R
, cu
A = QR = R =
0
R Rnn
si Q = U1 Un
Partitionand si Q conform cu R:
Q = [Q
Q ],
cu
Q Rmn
si Q Rm (m n)
observam ca (Q )T Q = In , i.e. Q are coloanele ortogonale, si:
A = Q R
Teorema:
Orice matrice A Rmn , cu m n, poate fi scrisa sub forma
A = Q R , unde Q Rmn are coloanele ortogonale si
R Rnn sup. triunghiulara (numita fctorizarea QR).
Daca A monica (coloanele independente), atunci R
inversabila.
Factorizarea QR este unica daca impunem R sa aiba
elemente diagonale pozitive.
Triangularizare ortogonala
Algoritmul GQR. (Utilizand iesirea Alg. QR cu m n, se
efectueaza direct acumularea in A a primelor n coloane Q din
Q = Q1 Qs , unde Qi = Ui )
1. Pentru j = 2 : n
1. aij = 0 pentru i = 1 : j 1
2. Pentru k = n : 1 : 1 daca k 6= 0 atunci
1. akk ukk = k
2. Pentru j = k + 1 : n
m
X
1. =
uik aij /k
i =k
2. aij aij uik pentru i = k : m
3. aik aik i = k : m; akk = 1 + akk
altfel
4. aik = 0 i = k + 1 : m; akk = 1
Legatura intre factorizarea QR si Cholesky
Matricea monica A Rmn , atunci AT A gramian al (coloanelor)
lui A (mat. poz. definita). Atunci mat. sup tr. R din factorizarea
QR a lui A coincide cu factorul Cholesky al gramianului.
(i) daca se cunoaste factorizarea Cholesky a lui AT A atunci se
poate determina economic factorizarea QR a lui A: e.g.
AT A = R T R, atunci calculam Q = AR 1 din rezolvarea
sistemului sup tr. QR = A.
Observatie: nu se recomanda aceasta procedura deoarece
necesita calcularea lui AT A care este rau conditionata
(necesita ridicarea la patrat a elementelor din A).
Regula de aur: evitarea formarii gramianului AT A in favoarea
operarii directe asupra lui A.
(ii) anumite probleme de factorizare LU sau Cholesky pot fi
reformulate in termeni de factorizare QR (procedura care este
mult mai stabila).
Legatura intre factorizarea QR si Cholesky
Anumite probleme de factorizare LU sau Cholesky pot fi
reformulate in termeni de factorizare QR, procedura numita de
radacina patrata.
Exemplu: fie G = R T R mat. poz. definita cu factorul Cholesky R
cunoscut si se cere factorizarea Cholesky R+ a matricei modificate
G+ = G + C T C ,
C Rln
e.g. C = c T (actualizare rang 1). Problema factorizarii Cholesky a
lui G+ se poate face fara a forma explicit G+ :
R
T
T
G+ = [R C ]
= AT
+ A+
C
Factorul Cholesky R+ poate fi determinat din triangularizarea
TR .
matricei A+ = Q+ R+ ce depinde de (R, C ), i.e. G+ = R+
+
Interpretarea geometrica a factorizarii QR
Matricea monica A Rmn avand factorizarea A = Q R satisface:
Ax = Q (R x),
si cum R inversabila rezulta ca S = Im A = Im Q , i.e. coloanele
lui A si Q genereaza acelasi subspatiu S. De fapt coloanele lui A
(Q ) formeaza o baza (ortogonala) a lui S.
In acest caz proiectorul ortogonal pe S este:
P1 = A(AT A)1 AT = Q Q
,T
Aratati ca P12 = P1 , P1T = P1 si S = Im P1 !
Similar coloanele lui Q Rm(mn) formeaza o baza ortogonala
a subspatiului complementar S = Ker AT , iar proiectorul
ortogonal pe S este
P2 = Q Q
,T
si
P1 + P2 = Im
Concluzie: partitia Q = [Q Q ] corespunde descompunerii
ortogonale Rm = Im A Ker AT
Rezolvarea problemei CMMP: m > n
Daca m > n (sistem supradeterminat), cautam o solutie
aproximativa a.i. reziduul r = b Ax sa fie cat mai mic, i.e.
x = arg minn kb Axk
xR
(CMMP)
Teorema: Problema (CMMP) are solutie unica A este monica,
i.e. m n si rang A = n. In acest caz, pseudosolutia in sens
CMMP a sistemului Ax = b are forma:
x = (AT A)1 AT b = A+ b
{z
}
|
A+
Rezolvarea problemei CMMP: m > n
Demonstratie:
Existenta solutiei: fie S = Im A si S = Ker AT . Atunci
descompunem b = b1 + b2 cu b1 S si b2 S si avem:
r = b Ax = b2 + (b1 Ax)
|{z} | {z }
S
Din teorema lui Pitagora:
kb Axk2 = kb1 Axk2 + kb2 k2 kb2 k2
x Rn
Cum b1 S = Im A, atunci exista un x a.i. Ax = b1 si deci
solutie a problemei (CMMP).
Expresia solutiei: fie r = b Ax , atunci r = b2 Ker AT .
Deci avem:
AT r = 0
r =bAx
0 = AT b AT Ax
Cum A este monica, AT A este pozitiv definita si deci inversabila,
i.e. x = (AT A)1 AT b.
Rezolvarea problemei CMMP - interpretarea geometrica
Se observa ca cea mai buna aproximare b = Ax a lui b pe
S = Im A coincide cu proiectia ortogonala b1 , i.e. b = b1 .
Distanta minima de la un punct b la un subspatiu S este
lungimea perpendicularei duse din b pe S, i.e. kb2 k.
Calculul solutiei CMMP: m > n
Solutia CMMP pt. Ax = b se calculeaza din factorizarea QR:
R
Q A=
0
T
si
d
Q b = d =
d
T
d
R
x =
d
0
In general d 6= 0 si deci sistemul Ax = b este incompatibil. Pentru
a determina pseudosolutia x , consideram reziduul r = b Ax:
d R x
T
Q r=
d
Cum Q este ortogonala, avem kr k = kQ T r k. Prin urmare:
kr k2 = kQ T r k2 = kd R xk2 + kd k2 kd k2
x Rn
Minimizand in raport cu x obtinem conditia: R x = d .
In concluzie, pseudosolutia CMMP se obtine din rezolvarea
sistemului superior triunghiular nesingular, i.e.
x = (R )1 d = [(R )1 0]Q T b = (R )1 (Q )T b
Calculul solutiei CMMP: m > n
Algoritmul SQR. (Utilizand iesirea Alg. QR cu m n, se
calculeaza in x solutia CMMP a sistemului Ax = b)
%calculam d = Q T b
1. Pentru k = 1 : n
1. t = akk = 0
2. akk ukk = k
m
X
uik bi /k
3. =
i =k
4. bi bi uik pentru i = k : m
5. akk = t
2. Pentru k = n : 1 : 1
%calculam pseudosolutia CMMP
n
X
1. xk = (bk
akj xj )/akk
j=k+1
Problema CMMP - exemplu
Consideram problema CMMP asociata sistemului:
2
3
1
1 1 x = 2
2 1
3
Din calcule anterioare am gasit:
3
1
0.66 0.33 0.66
R = Q T A = 0 3.16 si Q T = 0.73 0.42 0.52
0
0
0.10 0.84
0.52
1.98
T
Trebuie sa calculam: Q b = 0.01 de unde obtinem:
3.14
3
1
1.98
R =
si d =
= R x = d
0 3.16
0.01
0.65
x =
0.003
Problema CMMP cu membru drept multiplu
Fie A Rmn si B Rmp . Problema rezolvarii sistemului cu
membru drept multiplu in sens CMMP este:
AX = B
a.i. norma reziduului R = B AX in norma Frobenius sa fie
minima:
X = arg min kB AX kF
X Rnp
Partitionand B, X si R pe coloane rj = bj Axj , trebuie sa
rezolvam p probleme CMMP clasice minxj kbj Axj k. Deci
obtinem pseudosolutia CMMP:
X = A+ B
Se efectueaza o singura data triangularea ortogonala a lui A si apoi
se aplica de p ori Alg. SQR.
Calculul pseudoinversei A+
Pseudoinversa are cateva proprietati importante
1. A+ A = In
2. AA+ = (AA+ )T
Prima relatie ne spune ca A+ Rnm este inversa la stanga a
lui A, deci rang A+ = n, i.e. A+ este epica (liniile linear
independente)
matricea simetrica P1 = AA+ este proiectorul ortogonal pe
S = Im A
Daca consideram sistemul cu partea dreapta multipla B = Im ,
gasim X = A+ B = A+ , deci A+ este solutia unica a problemei
A+ = arg min kIm AX kF
A+
X Rnm
Calcularea
in acest fel nu este eficienta, deoarece nu se ia in
calcul structura lui B = Im . Dar din solutia CMMP se stie ca:
A+ = [(R )1 0]Q T = (R )1 (Q )T
Sisteme liniare subdeterminate: m n
Teorema: Oricare ar fi A Rmn cu m n, exista o matrice
ortogonala V T = Z a.i.
AZ = AV T = L
unde L este matrice inferior triunghiulara.
Factorizarea LQ: din teorema precedenta obtinem:
A = LV
cu
L = [L 0] si
L Rmm inf. tr.
Partitionand V = Z T conform cu L, i.e.
V
V =
si Z = [Z Z ]
V
Deci A = L V cu V Rmn a.i. V (V )T = Im (liniile ortog.)
Teorema: Orice A Rmn cu m n, admite o factorizare LQ,
i.e. A = LV , unde L Rmm inferior triunghiulara si V Rmn
are liniile ortogonale VV T = Im .
Rezolvarea problemei CMMP: m n
Daca m n (sistem subdeterminat), cautam o solutie normala a
sistemului b = Ax, i.e.
x = arg
min
xRn :Ax=b
kxk
(CMMP)
Teorema: Problema (CMMP) are solutie unica A este epica,
i.e. m n si rang A = m. In acest caz, pseudosolutia in sens
CMMP a sistemului Ax = b are forma:
x = AT (AAT )1 b = A+ b
{z
}
|
A+
Calculul solutiei CMMP: m n
Solutia CMMP pt. Ax = b se calculeaza din factorizarea LQ:
AZ = [L 0]
unde L inferior triunghiulara inversabila si Z ortogonala. Notam:
u
x = Zu cu u = , u Rm
u
u
Deci sistemul Ax = b se rescrie: [L 0] = b sau echivalent
u
L u = b
si u liber
Cum Z este ortogonala, avem kuk = kZuk. Prin urmare:
kxk2 = kZuk2 = kuk2 = ku k2 + ku k2 ku k2
Obtinem conditia: (u ) = 0. Solutia normala CMMP este:
1
(L ) b
x =Z
= Z (L )1 b
0
| {z }
A+
Conditionarea problemelor CMMP
Considerand sistemul Ax = b, solutia in sens CMMP este data de:
x = A+ b
Definim numarul de conditionare bazat pe norma spectrala k k2 :
(A) = kAk kA+ k
Consideram sistemul perturbat:
(A + E )x = b + f
unde kE k kAk,
kf k kbk
Atunci sensibilitatea relativa a solutiei CMMP este data de:
In cazul A monica (coloanele liniar independente)
sensibilitatea este proportionala in cel mai rau caz cu patratul
numarului de conditionare:
k
x x k
2 (A)O()
kx k
In cazul A epica (liniile liniar independente), sensibilitatea
solutiei este proportionala cu numarul de conditionare:
k
x x k
(A)O()
kx k
Triangularizarea ortogonala completa
Teorema: Fie A Rmn cu rang A = r . Atunci exista doua
matrici ortogonale Q Rmm si Z Rnn precum si o matrice de
permutare a.i.
S 0
T
Q AZ = S =
, unde S Rr r sup. tr. inversabila.
0 0
Problema generala CMMP: fie sistemul Ax = b atunci problema
CMMP consta in determinarea solutiei normale a problemei:
x = arg
min
xX =arg minx kAxbk
kxk
Solutia normala a problemei CMMP generale este:
1
(S )
0
x = Z
QT b
0
0
|
{z
}
A+
vezi si capitolul DVS (curs XI)!
Metode Numerice
Curs V
Valori si vectori proprii
Ion Necoara
2014
Calculul valorilor si vectorilor proprii
Valorile si vectorii proprii joaca un rol fundamental in descrierea
matematica a unor categorii foarte largi de procese tehnice,
economice, biologice, etc.
Proprietati esentiale (e.g. stabilitatea) ale modelelor matematice
cunoscute sub denumirea de sisteme dinamice se exprima in 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.
C. Popeea et al.
Istoric I
Initial, notiunile de valoare/vector propriu apar in studiul formelor
patratice si al ecuatiilor diferentiale.
Euler (sec. XVIII) a studiat miscarea de rotatie a unui corp rigid
si a evidentiat importanta axelor
principale de rotatie.
Lagrange a descoperit ca axele
principale sunt vectorii proprii ai
matricii de inertie.
Cauchy (sec. XIX) a introdus termenul
racine caracteristique (radacina caracteristica) echivalentul valorii proprii; pe baza
ideilor lui Fourier si Sturm, Cauchy stabileste
rezultatul fundamental ca orice matrice reala simetrica are valori proprii reale (extins
de Hermite in 1855 la matrici Hermitiene).
Istoric II
Hilbert (sec.
XX) studiaza valorile proprii ale operatorilor integrali
considerand operatorii matrici infinite.
Este primul care foloseste termenul
german eigen insemnand propriu,
pentru a nota valorile/vectorii proprii
(in 1904). Termenul corespunzator in
engleza: proper value, dar eigenvalue este standard.
Primul algoritm numeric pentru calcularea valorilor/vectorilor
proprii apare in 1929, cand Von Mises publica metoda puterii. Una
din cele mai populare metode, algoritmul QR, a fost propus
independent de John G.F. Francis and Vera Kublanovskaya in 1961.
Definitie: Fie o matrice A Cnn . Un numar C se numeste
valoarea proprie a matricei A, daca exista un vector propriu nenul
x Cn astfel incat:
Ax = x.
Aplicatia I - stabilitatea sistemelor
Stabilitatea sistemelor dinamice:
dinamica continua in spatiul starilor: x = Ax
sistemul este stabil daca toate valorile proprii i ale lui A sunt
in partea stanga a planului complex
dinamica discreta in spatiul starilor: xt+1 = Axt
sistemul este stabil daca toate valorile proprii i ale lui A sunt
in discul unitate
Stabilitatea sistemelor - cazul continuu
dinamica continua in spatiul starilor: x = Ax
sistemul este stabil daca toate valorile proprii i ale lui A sunt
in partea stanga a planului complex
Demonstratie: observam ca xt = e At x0 . Deci sistemul este stabil
daca oricare ar fi x0 avem ca
lim xt = 0.
Aceasta este echivalent cu limt e At = 0. Dar daca A are valori
proprii distincte i cu vectorii proprii corespunzatori xi atunci vom
arata ca ea este diagonalozabila si deci matricea X = [x1 xn ]
este inversabila, satisfacand:
A = X diag(1 n )X 1 .
In concluzie, e At = X diag(e 1 t e n t )X 1 converge la 0 daca
toate valorile proprii i au partea reala negativa. Cand valorile
proprii nu sunt toate distincte, se foloseste forma Jordan.
Stabilitatea sistemelor - cazul discret
dinamica discreta in spatiul starilor: xt+1 = Axt
sistemul este stabil daca toate valorile proprii i ale lui A sunt
in discul unitate
Demonstratie: observam ca xt = At x0 . Deci sistemul este stabil
daca oricare ar fi x0 avem ca
lim xt = 0.
Aceasta este echivalent cu limt At = 0. Dar daca A are valori
proprii distincte i cu vectorii proprii corespunzatori xi atunci vom
arata ca matricea X = [x1 xn ] este inversabila si
A = X diag(1 n )X 1 .
In concluzie, At = X diag(t1 tn )X 1 converge la 0 daca toate
valorile proprii |i | < 1. Cand valorile proprii nu sunt toate
distincte se foloseste forma Jordan.
Aplicatia II: model al cresterii populatiei
Grupam populatia in n clase de varsta de durata egala (notam cu L
varsta maxima):
L
L 2L
(n 1)L
0,
,
, L
,
n
n n
n
numarul populatiei in fiecare clasa de varsta este reprezentat
de vectorul de distributie a varstei: x = [x1 xn ]T .
peste o perioada de L/n ani, probabilitatea ca un membru din
clasa de varsta i sa supravietuiasca si sa devina un membru in
clasa de varsta i + 1 este data de pi .
numarul mediu de nou-nascuti ai unui membru din clasa de
varsta i este data de bi .
Definim matricea de tranzitie a varstei :
b1 b2 bn1 bn
p1 0
0
0
A = 0 p2
0
0
0 0 pn1 0
Aplicatia II: model al cresterii populatiei
Folosind matricea de tranzitie
b1 b2
p1 0
A=
0 p2
0 0
a varstei
bn1 bn
0
0
0
0
pn1 0
putem estima vectorul de distributie a varstei la o anumita
perioada de timp pe baza vectorului de tranzitie de la perioada de
timp anterioara:
xi +1 = Axi
Populatia este stabila daca acelasi procentaj din populatia totala
se regaseste in fiecare clasa de varsta:
xi +1 = Axi = xi
Aplicatia III: analiza componentelor principale
Analiza componentelor principale (PCA) reprezinta o procedura
statistica ce realizeaza, prin transformari ortogonale, conversia unui
set de esantioane date (ale unor variabile posibil corelate) intr-un
set de valori liniar necorelate, numite componente principale.
Transformarea este realizata astfel incat prima componenta
principala are cea mai mare varianta posibila (explica variatia
cea mai mare a datelor).
Componentele principale sunt ortogonale, deoarece reprezinta
vectorii proprii ai matricii (simetrice) de covarianta.
Aplicatia III: analiza componentelor principale
PCA este definita de o transformare
liniara ortogonala ce aduce datele intrun nou sistem de coordonate, astfel
incat varianta maxima obtinuta prin
proiectii ale datelor se afla pe prima
coordonata (numita prima componenta principala), a doua cea mai
mare varianta pe a doua coordonata
s.a.m.d.
Consideram X Rnp , unde fiecare din cele n linii denota o
repetitie separata a experimentului, si fiecare din cele p coloane
denota un tip particular de date (e.g. rezultatele de un anumit
senzor).
Aplicatia III: calculul primei componente
Transformarea este definita de vectorii de ponderi w(k) Rp ce
mapeaza fiecare linie x(i ) a lui X intr-un nou vector de componente
principale t(i ) Rp ,
tk (i ) = xT
(i ) w(k)
astfel incat componentele lui t (in raport cu setul de date)
mostenesc succesiv varianta maxima posibila de la x, cu vectorii de
ponderi w pe sfera unitate. Primul vector de ponderi w(1) satisface
w(1)
(
)
X
X
2
(t1 )2(i ) = arg max
= arg max
(xT
(i ) w )
kw k=1
kw k=1
= arg max kXw k2 .
kw k=1
Conexiune cu catul Rayleigh!
Interpretare: w(1) vectorul propriu al matricii XT X coresp.
valorii proprii maxime!
Aplicatia IV: eigenfaces
Eigenfaces reprezinta numele colectiei de vectori proprii pentru
aplicatiile din domeniile vederii artificiale si recunoasterii portretelor
umane. Strategia ce foloseste Eigenfaces pentru recunoastere a
fost dezvoltata de Sirovich si Kirby (1987).
Vectorii proprii sunt derivati din matricea de covarianta a
distributiei de probabilitate peste spatiul vectorial al imaginilor
de portrete.
Eigenfaces formeaza o baza a imaginilor ce construiesc
matricea de covarianta.
Clasificarea se realizeaza prin compararea reprezentarilor in
baza Eigenfaces.
Aplicatia IV: eigenfaces + PCA
Recunoastere de imagini: Combinatie Eigenfaces + PCA.
Consideram 300 de imagini 100 100, in scara de gri; fiecare
imagine reprezinta un vector de dimensiune 10, 000 si matricea
de covarianta S contine 10, 000 10, 000 = 108 elemente.
rangul matricii de covarianta este limitat de numarul de
imagini de antrenare: avem N exemple de antrenare, atunci
avem cel mult N 1 vectori proprii cu valorilor proprii nenule.
Fie T matricea exemplelor de antrenare, unde fiecare coloana
reprezinta o imagine. Matricea de covarianta poate fi calculata
S = TT T si descompunerea vectorilor proprii a lui S
Svi = TT T vi = i vi .
Aplicatia IV: eigenfaces + PCA
4
Luand in calcul ca S = TT T R10 10 are dimensiuni mari,
realizam descompunerea pentru T T T si pre-multiplicam cu T :
TT T Tui = i Tui .
Daca ui R300 este vector propriu al matricii
4
T T T R300300 , atunci vi = Tui R10 este vector propriu
al matricii S.
Se determina componenta principala (vectorul propriu
maximal al matricii S) prin operatii cu matricea de dimensiuni
mult mai reduse T T T R300300 .
Clasificarea imaginilor de portrete se realizeaza prin proiectia
imaginii de test (sau antrenare) pe vectorul propriu obtinut
din pasii anteriori, si masurarea diferentelor dintre proiectie si
un portret mediu.
Valori si vectori proprii - generalitati
Definitie. Fie o matrice A Cnn . Un numar C se numeste
valoarea proprie a matricei A, daca exista un vector nenul x Cn
astfel incat
Ax = x.
Un vector x 6= 0 ce satisface relatia de mai sus se numeste vector
propriu al matricei A asociat valorii proprii .
Valorile proprii ale matricei A Cnn sunt zerourile polinomului
caracteristic
p() = det(In A),
care este un polinom de gradul n cu coeficienti complecsi.
Daca matricea este reala (i.e. A Rnn ), atunci polinomul p()
are coeficienti reali si valorile proprii complexe apar in perechi
complex-conjugate.
Valori si vectori proprii - generalitati
Ordinul de multiplicitate ni a valorii proprii i , se numeste
multiplicitate algebrica a valorii proprii respective. Daca
ni = 1 atunci i se numeste simpla.
Multimea (A) = {1 , . . . , n } = { C|det(I A) = 0} se
numeste spectrul matricei A.
Numarul real nenegativ (A) = max{|1 |, . . . , |n |} se
numeste raza spectrala a matricii A. Deci, valorile proprii se
afla in discul cu centrul in origine si raza (A) (i.e.
|i | (A)).
Valorile proprii satisfac:
n
X
i =1
i =
n
X
i =1
ai = tr(A),
n
Y
i =1
i = det(A).
Valori si vectori proprii - generalitati
Vectorii proprii din definitia precendenta sunt denumiti vectori
proprii la dreapta ai matricii A si satisfac sistemul liniar omogen
(In A) x = 0.
Vectorii proprii asociati valorilor proprii distincte sunt liniar
independenti.
Vectorii proprii la stanga sunt vectori nenuli y Cn ce satisfac
y H A = y H
,
AH y = y
unde H reprezinta operatorul cumulat de transpunere si
conjugare. De aici rezulta (AH ) = (A).
Pe de alta parte, din det(In A) = det(In AT ) avem ca A
si AT au acelasi spectru, i.e. in cazul real (AT ) = (A), dar
vectorii proprii, in general, difera. Vectorii proprii reali ai
matricei AT sunt vectori proprii la stanga ai matricei A.
Valori si vectori proprii - generalitati
Observam ca daca xi este un vector propriu al matricii A
asociat valorii proprii i , atunci yi = xi este, de asemenea,
vector propriu al matricii A asociat aceleiasi valori proprii,
pentru orice C, 6= 0.
Multimea vectorilor proprii asociati valorii proprii i , impreuna
cu vectorul nul din Cn formeaza subspatiul
Vi = Ker(i In A) Cn 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 geometrica a valorii proprii i . Este
evident i ni .
Subspatii invariante
Definitie. Fie o matrice A Rnn . Un subspatiu liniar V Rn se
numeste subspatiu invariant al matricei A (sau Ainvariant) daca
AV V,
i .e. Ax V,
x V.
Proprietati ale subspatiilor invariante:
Fie matricea A Rnn .
1. Daca x1 , . . . , xp sunt vectorii proprii ai matricei A, atunci
subspatiul S = Im[x1 x2 . . . xp ] Rn este Ainvariant.
2. Daca S este un subspatiu Ainvariant cu dimS = p si
coloanele matricei (monice) V = [v1 v2 . . . vp ] Rnp
formeaza o baza a lui S, atunci exista B Rpp astfel incat
AV = VB.
Mai mult, avem (B) (A).
Subspatii invariante
3. Complementul ortogonal T = S in Cn al subspatiului
Ainvariant S este un subspatiu AH invariant.
Observatii:
Orice subspatiu Ainvariant nenul (i.e. p 1) contine un
vector propriu al matricei A. Reciproc, daca are loc relatia
AV = VB, atunci ImV este un subspatiu Ainvariant.
Subspatiul Ainvariant generat de vect. proprii reali este real.
Daca x1,2 = v1 iv2 , v1 , v2 Rn , sunt vectori proprii reali
asociati unei perechi de valori proprii complex conjugate
1,2 = i , , R, 6= 0, atunci vectorii v1 , v2 sunt liniar
independenti si S = Im[v1 v2 ] este un subspatiu Ainvariant.
Subspatii invariante - Exemplu
Se considera matricea
5 25 9
1
1 5 9
A=
6
0 24 24
care are polinomul caracteristic
p() = det(I3 A) = 3 42 + 6 4
si valorile proprii 1 = 2 si 2,3 = 1 i . Vectorii
2
5
1
x1 = v1 = 1 , x2,3 = v2 iv3 = 1 i 2
2
2
2
sunt vectori proprii ai matricei A asociati valorilor proprii 1 si,
respectiv, 2,3 .
Subspatii invariante - Exemplu
Fie V1 = v1 si V23 = [v2 v3 ]. Avem urmatoarele relatii (verificati!):
1 1
AV1 = V1 B1 cu B1 = 2,
AV23 = V23 B23 cu B23 =
1 1
si prin urmare, S1 = ImV1 si S23 = ImV23 sunt subspatii
Ainvariante.
Exercitiu. Calculati complementele ortogonale in R3 ale celor
doua subspatii si verificati ca aceste subspatii sunt AT invariante.
Matrice asemenea
Definitie. Doua matrice A, B Rnn se numesc asemenea daca
exista o matrice nesingulara T Rnn astfel incat
B = T 1 AT .
Daca matricea de transformare T este unitara, atunci matricele A
si B se numesc unitar asemenea. In cazul real, daca matricea de
transformare T este ortogonala, matricele A si B se numesc
ortogonal asemenea.
Observatii:
Daca matricele A, B satisfac B = T 1 AT , i.e. sunt
asemenea, atunci ele au acelasi spectru
(A) = (B).
Daca x este un vector propriu al matricei A asociat valorii
proprii (A), atunci vectorul y = T 1 x este un vectorul
propriu al matricei B, asociat aceleiasi valori proprii.
Matrice asemenea - Caz particular
Consideram matrici de ordin n ce admit un set (complet) de n
vectori proprii liniar independenti.
S-a demonstrat ca, utilizand ca matrice de transformare T = X ,
unde X este o matrice avand drept coloane n vectori proprii liniar
independenti ai matricei A, obtinem o matrice diagonala:
X 1 AX = = diag(1 , 2 , . . . , n ).
In acest caz, A se numeste diagonalizabila (peste C).
Observatie. Daca o matrice n n are n valori proprii distincte,
atunci este diagonalizabila dar reciproca nu este, in general,
adevarata.
Matrici normale - caz real/complex
Definitie. Fie A Cnn . Matricea A se numeste normala daca
AH A = AAH .
In cazul real, matricea A Rnn este normala daca
AT A = AAT .
Reamintim:
A se numeste hermitica daca AH = A, si simetrica daca
AT = A;
A se numeste unitara daca AH A = In , si ortogonala daca
AT A = In .
Matrici normale - proprietati
Matricile hermitice si cele unitare sunt matrice normale.
Matricile hermitice au proprietatea ca elementele simetrice
fata de diagonala principala sunt complex conjugate
aij = aij , i , j 1 : n. Deci elementele diagonale ale matricilor
hermitice sunt reale.
1
2i
1+i
1
1 3i .
Exemplu: A = 2 + i
1 i 1 + 3i
1
O matrice hermitica/unitara reala este simetrica/ortogonala.
Matricele reale simetrice sau ortogonale sunt normale.
Exista matrice normale care nu sunt nici simetrice nici
1 1
.
ortogonale. Exemplu: A =
1 1
Matrici reale diagonalizabile
Teorema. O matrice n n reala A este normala daca si numai
daca admite un set complet de n vectori proprii ortogonali, adica
exista o matrice unitara Q Rnn ale carei coloane sunt vectori
proprii ai matricei A astfel incat
Q T AQ = = diag(1 , 2 , . . . , n ) Rnn .
Altfel spus, matricele normale sunt matricele unitar diagonalizabile
(peste R).
Matrici simetrice
Teorema. O matrice A Rnn este simetrica daca si numai daca
admite un set complet de n vectori proprii ortogonali si toate
valorile proprii sunt reale, adica exista o matrice ortogonala
Q Rnn ale carei coloane sunt vectori proprii ai matricei A a. i.
Q T AQ = = diag(1 , 2 , . . . , n ) Rnn .
Valori proprii - matrici simetrice
Fie matricea A Rnn si functia reala : Rn \{0} definita de
(x) =
x H Ax
.
xHx
Vom considera ca spectrul (A) = {1 , . . . , n } este ordonat
descrescator, i.e. 1 2 n .
Teorema. Valorile extreme ale functiei sunt date de
M = max x H Ax = 1 ,
xS
min x H Ax = n ,
xS
unde S = {x Rn |kxk2 = x H x = 1.}
Mai mult, daca Wk este subspatiul Ainvariant asociat valorilor
proprii j , cu j = k + 1 : n, atunci
max x H Ax = k+1 .
xSWk
Teorema Courant-Fischer
Caracterizarea minimax a valorilor proprii ale unei matrice simetrice
este oferita de Teorema Courant-Fisher.
V = subspatiile liniare din Rn ;
W = V reprezinta complementele ortogonale;
VS = multimea vectorilor de norma euclidiana unitara din V;
WS = multimea vectorilor de norma euclidiana unitara din W;
Teorema. (Courant - Fisher ) Daca matricea A Rnn are valorile
proprii ordonate atunci pentru k 1 : n avem
k = max min x T Ax = min
dimV=k xVS
max x T Ax.
dimV=k xWS
Teorema Courant-Fischer
- exemplu
Consideram A =
2 1
. Spectrul matricii A este (A) = {3, 1}.
1 2
Observam ca orice subspatiu de dimensiune 1 determinat de
baza b R2 are forma {y R2 : x R, bx = y .} Din
Teorema Courant-Fischer avem
min
1 = max
bR2 xR2 ,|x|= 1
kbk
= max
bR2
x 2 b T Ab
b T Ab
= 3.
kbk2
Observam ca orice subspatiu de dimensiune 2 determinat de
baza B R22 are forma {y R2 : x R2 , Bx = y .} Din
Teorema Courant-Fischer avem:
2 = max
min
b1 ,b2 R2 xR2 ,kBxk=1
z=Bx
x T B T ABx
max min z T Az = min z T Az = 1.
BR22 kzk=1
kzk=1
Consecinta Courant-Fischer
Teorema Courant-Fisher are consecinte importante prin separarea
spectrului submatricelor lider principale
Teorema. (Separare) Valorile proprii ale submatricelor lider
principale de ordinul k ale unei matrice simetrice separa 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
pentru toti k 1 : n 1.
[k]
[k+1]
k k+1 ,
Valorile proprii ale matricelor simetrice si hermitice
Un rezultat util in aprecierea influentei perturbatiilor numerice
simetrice este dat de teorema urmatoare.
Teorema. Daca matricile simetrice A, E Rnn au spectrele
ordonate descrescator, atunci, avem
k (A) + 1 (E ) k (A + E ) k (A) + n (E )
pentru toti k 1 : n.
Evidentiem o consecinta utila in evaluarea influentelor perturbatiilor
numerice asupra valorilor proprii ale matricelor simetrice.
Teorema. (W. - H.) Fie A, E Rnn simetrice, atunci
n
X
(j (A + E ) j (A))2 kE k2F ,
j=1
unde kE kF =
matricei E .
qP
2
i ,j eij =
qP
n
2
i =1 i (E )
este norma Frobenius a
Valorile proprii ale matricelor antisimetrice
Definitie. Matricea A Rnn se numeste antisimetrica daca
AT = A.
Proprietati:
Orice matrice antisimetrica este unitar diagonalizabila si are
toate valorile proprii pur imaginare;
Valori proprii complex conjugate daca n impar atunci exista
o valoare proprie nula;
Orice matrice antisimetrica este normala;
Matrici ortogonale
Teorema. O matrice A Rnn este ortogonala daca si numai
daca admite un set complet de n vectori proprii ortogonali si toate
valorile proprii sunt de modul unitar, adica este unitar
diagonalizabila cu spectru unitar, respectiv exista o matrice
Q Cnn astfel incat
Q H AQ = = diag{1 , 2 , . . . , n } cu
|i | = 1,
i .
Forma Schur
Issai Schur (1875 - 1941) matematician, a
profesat in Germania o mare parte a vietii sale. A studiat la Berlin, a obtinut
doctoratul in 1901, si a devenit lector in
1903. Apoi, dupa o perioada de sedere in
Bonn, a devenit profesor in 1919. Student
al lui Frobenius, s-a ocupat de reprezentari
de grupuri (subiect cu care este asociat cel
mai des), dar si de combinatorica, teoria
numerelor si chiar fizica teoretica. Renumele de astazi i se datoreaza rezultatului in
legatura cu existenta descompunerii Schur si
lucrarile din reprezentarile grupurilor (lema
Schur).
Forma Schur
Ideea centrala: Transformarile de asemanare ortogonale (unitare)
prezinta marele avantaj de a conserva conditionarea spectrului de
valori proprii ale unei matrice date: (A) = (Q T AQ) pentru orice
Q ortogonala.
Vom vedea ca orice matrice este unitar asemenea cu o matrice
(bloc) triunghiulara, numita forma Schur.
Daca se cunoaste (A) atunci vectorul propriu asociat
este o solutie nenula a unui sistem liniar omogen:
(A In )x = 0.
Daca se cunoaste un vector propriu x al matricei A, atunci
valoarea proprie asociata poate fi calculata cu relatia
x T x
x T Ax
=
= .
xT x
xT x
Deci este dificil de calculat un vector propriu x cand se cunoaste ,
dar este usor de calculat cand se cunoaste x.
Forma Schur complexa
Valorile proprii = radacinile unui polinom
In absenta cunoasterii vectorilor proprii, este necesar un proces
iterativ (infinit) pentru calculul valorilor proprii (reamintim ca
pentru un polinom de grad > 4 nu exista formule analitice de
calculare a a radacinilor lui!).
Intuitie: Exploatarea rezultatelor partiale prin reducerea
dimensiunii problemei.
Propozitie. Fie A Cnn si X Cn un subspatiu Ainvariant
pdimensional dat printr-o baza ortogonala x1 , x2 , . . . , xp . Atunci
exista o matrice unitara (in cazul A reala, ortogonala) Q Cnn
cu coloanele Q(:, j) = xj , j = 1 : p, astfel incat
S11 S12
H
Q AQ =
,
0 S22
cu S11 Cpp = (A) = (S11 ) (S22 ) .
Forma Schur complexa
Pentru p = 1, baza V a subspatiului Ainvariant se reduce la un
vector propriu x de norma unitara asociat valorii proprii .
Lema.(Deflatie unitara) Fie A Cnn si (A). Atunci exista o
matrice unitara Q Cnn astfel incat
S12
H
Q AQ =
.
0 S22
Se poate considera matricea de transformare Q = U H , unde U
este reflectorul (complex) care anuleaza elementele 2 : n ale
vectorului propriu x asociat valorii proprii : i.e. Ux = e1 . Deci
x = U H e1 . Daca consideram coloanele U H = [u1H unH ], atunci
x = u1H . Deci consideram Q = [u1H Y ] si atunci:
u1
u1 Au1H
u1 AY
S12
H
H
S = Q AQ =
A[u1 Y ] =
=
,
YH
Y H Au1H Y H AY
0 S22
unde u1 Au1H = u1 Ax = u1 u1H = ku1 k2 = si
Y H Au1H = Y H Ax = Y H x = 0.
Forma Schur complexa
Teorema. (Forma Schur) Oricare ar fi matricea A Cnn exista o
matrice unitara Q Cnn astfel incat matricea
Q H AQ = S,
este superior triunghiulara. Elementele diagonalei matricei S sunt
valorile proprii ale matricei A si pot fi dispuse in orice ordine
predeterminata.
Matricea S se numeste forma Schur (FS) a matricei A, iar
coloanele matricei de transformare Q se numesc vectori Schur al
matricei A asociati formei Schur.
Forma Schur complexa
Demonstratie: Pasul 1. Conform lemei precedente, daca
1 (A), atunci exista o matrice unitara Q1 astfel incat
"
#
(1)
S
11
S1 = Q H AQ = 1
(2) ,
0 S22
realizandu-se o deflatie in prima coloana.
......
Pasul k. Presupunem ca in primii k 1 pasi am realizat
triangularizarea in primele k 1 coloane prin transformari unitare
de asemanare
"
#
(k1)
(k1)
S11
S12
H H
H
Sk1 = Qk1 . . . Q2 Q1 AQ1 Q2 . . . Qk1 =
(k1) ,
0
S22
(k1)
unde S11
C(k1)(k1) este superior triunghiulara.
Forma Schur complexa
Demonstratie (continuare): Aplicam aceeasi lemma pentru a
(k1)
realiza deflatia in coloana k. Daca k (S22 ) atunci exista
Qk astfel incat
#
"
(k)
S
(k1)
k
H
12
Qk S22 Qk =
(k) .
0 S22
Matricea
este unitara si
Ik1 0
Cnn
Qk =
0
Qk
Sk =
QkH Sk1 Qk
"
(k)
S
= 11
0
(k)
S12
(k)
S22
este superior triunghiulara in primele k coloane. Acest proces de
triangularizare prin transformari unitare de asemanare, produce
dupa n pasi matricea superior triunghiulara S = Q H AQ, unde
Q = Q1 Q2 . . . Qn1 este unitara.
Forma Schur reala
In majoritatea aplicatiilor in care este necesar calculul valorilor
proprii, matricea are elemente reale utilizarea aritmeticii
reale este mult mai eficienta.
Perechile de valori proprii complexe si perechile de vectori
proprii asociati pot fi tratate unitar prin intermediul unor
blocuri matriceale 2 2.
Corespondentul formei Schur complexe devine o matrice
cvasi-superior triunghiulara in care perechile de valori proprii
complex conjugate sunt evidentiate prin blocuri 2 2.
X
0
0
0
X
X
X
0
X
X
X
0
X
X
X
X
Forma Schur reala
Lema.(Deflatie ortogonala) Fie A Rnn .
a) Daca (A) R, atunci exista o matrice ortogonala
Q Rnn astfel incat
S12
.
Q T AQ =
0 S22
b) Daca 1,2 = i (A), 6= 0, atunci exista o matrice
ortogonala Q Rnn astfel incat
S11 S12
T
Q AQ =
,
0 S22
unde S11 R22 , cu (S11 ) = {1 , 2 }.
Forma Schur reala
Demonstratie: Prima parte a) se demonstreaza asemanator cu
primul pas al formei Schur complexe, considerand o matrice
ortogonala Q a carei prima coloana este un vector propriu de
norma euclidiana unitara asociat valorii proprii .
Pentru a doua parte b), consideram:
vectorii proprii x1,2 = v1 iv2 asociati valorilor proprii complex
conjugate 1 , 2 ;
Y = [y1 y2 ] Rn2 baza ortogonala a subspatiului liniar
Ainvariant S = ImV , unde V = [v1 v2 ] Rn2 ;
Z Rn(n2) o baza ortogonala a complementului ortogonal
T = S a lui S in Rnn .
Observam ca matricea Q = [Y Z ] este ortogonala.
Vectorii v1 , v2 sunt liniar independenti exista o matrice
nesingulara P R22 astfel incat V = YP.
Forma Schur reala
Demonstratie
(continuare): In consecinta, avem ca AV = VB cu
B=
. Rezulta
AY = AVP 1 = VBP 1 = VP 1 PBP 1 = YS11 ,
1
P . Deci, in final avem:
unde S11 = P
T
Y
A1 = Q AQ =
A[Y
ZT
T
Y T AY
Z] =
0
Y T AZ
S11 S12
=
,
Z T AZ
0 S22
unde blocul S11 R22 are valorile proprii 1,2 si
Z T AY = Z T YS11 = 0.
Observatie: Calculul matricei ortogonale Q din lema precedenta
este conditionat esential de cunoasterea unui vector propriu (real)
x asociat valorii proprii reale (sau cunoasterea Re(x) si Im(x) in
cazul complex conjugat, i.e. = i ).
Forma Schur reala
Dupa intregul proces de deflatie a matricei A, obtinem rezultatul:
Teorema. (Forma Schur reala) Oricare ar fi matricea reala
A Rnn , exista o matrice ortogonala Q Rnn astfel incat
S11 S12 . . . S1p
0 S22 . . . S2p
Q T AQ = S =
. . . . . . . . . . . . ,
0
0 . . . Spp
unde Sii R11 sau Sii R22 si toate blocurile diagonale 2 2
au valorile proprii complexe. Evident,
(A) = (S) = pi=1 (Sii ).
Matricea cvasi-superior triunghiulara S se numeste forma Schur
reala (FSR) a matricei A, iar coloanele matricei de transformare Q
se numesc vectori Schur ai matricei A asociati formei Schur reale S.
Exemplu - forma Schur reala
1 1 0
Consideram matricea A = 1 1 1 cu spectrul
0 1 1
(A) = {1 + 2, 1, 1 2}.
Pasul 1. Se determina un vector propriu normat oarecare, e.g.
alegem 2 = 1.
1/ 2
Deci, avem x2 = 0 vectorul propriu asociat lui 2 = 1.
1/ 2
Determinam o baza ortonormata ce include vectorul x2 :
1/ 2 1/ 2 0
0 1
Q1 = 0
1/ 2 1/ 2 0
Exemplu - forma Schur reala
Pre- si post-multiplicarea matricii A cu aceasta matrice returneaza
1 0 0
1
0
T
2 =
A1 = Q1 AQ1 = 0 1
,
0 Q
0
2 1
= {1 + 2, 2 1}.
unde Q R22 cu spectrul (Q)
1 = 1 + 2 si calculam vectorul propriu normat
Pasul2. Alegem
1/ 2
.
x1 =
1/ 2
Calculam baza ortonormata din spatiul R2 ce il include pe x2 , i.e.
1/2 1/ 2
.
Q2 =
1/ 2 1/ 2
Exemplu - forma Schur reala
1 0
Formam Q2 =
. Pre- si post-multiplicarea matricii A1 cu
0 Q2
Q2 returneaza forma Schur:
1
0
0
S = Q2T A1 Q2 = Q2T Q1T AQ1 Q2 = 0 1 + 2
0 .
0
0
1 2
Observam ca am obtinut o matrice inferior triunghiulara particulara
(diagonala) ce contine valorile proprii ale matricii A.
Metoda puterii si metoda puterii inverse
Procedura de deflatie sugereaza o tehnica de calcul a valorilor
proprii ale unei matrice prin reducerea acesteia la forma Schur
(reala);
Din pacate, calculul unei valori proprii necesita cunoasterea
unui vector propriu asociat;
Deci, este necesara completarea procedurii de deflatie cu o
metoda de calcul a unui vector propriu fara cunoasterea valorii
proprii asociate;
Cele mai folosite metode de calcul iterativ al unui vector
propriu sunt cunoscute sub denumirile de metoda puterii si
metoda puterii inverse.
Metoda puterii si metoda puterii inverse
Lemma. Fie o matrice A Rnn cu spectrul
(A) = {1 , 2 , . . . , n }.
Atunci matricele Ak , k N , A In , R si, in cazul in care A
este nesingulara, A1 au aceiasi vectori proprii cu matricea A si
spectrele
(Ak ) = {k1 , k2 , . . . , kn },
(A In ) = {1 , 2 , . . . , n },
(A1 ) = {
1
1 1
, , . . . , },
1 2
n
Metoda puterii
Ipoteze:
Consideram A Rnn cu o valoare proprie dominanta, i.e. o
valoare proprie de modul strict superior modulelor tuturor
celorlalte.
Numerotam valorile proprii in ordinea descrescatoare a
modulelor
|1 | > |2 | |n |.
Fie y 0 Rn un vector de norma euclidiana unitara care
satisface x1T y0 6= 0. (Generic, un vector aleator normat
satisface o astfel de conditie).
Presupunem ca vectorii proprii x1 , x2 , . . . , xn ai matricii A
formeaza o baza in Rn .
n
P
Atunci y0 poate fi descompus y0 =
i xi , unde 1 6= 0.
i =1
Metoda puterii
Definim sirul vectorial (y (k) )kN prin
y (k) = k Ay (k1) ,
k = 1, 2, . . .
cu initializarea y (0) si k un factor de normare k =
Este usor de aratat ca
1
.
kAy (k1) k
y (k) = k Ak y (0) ,
unde k =
y (k) = k
1
.
kAk y (0) k
n
X
i =1
Considerand descompunerea lui y (0) rezulta
Ak xi = k
i ki xi = k k1
1 x 1 +
n
X
i =2
i
1
k
xi
Metoda puterii
Pe de alta parte avem | 1i | < 1, i = 2 : n ce implica
k
i
lim
= 0, i = 2 : n,
k 1
si
lim y (k) = x1 ,
unde este un scalar nenul astfel incat kx1 k = 1.
Prin urmare, sirul generat de schema (MP)
1. Pentru k = 1, 2, . . .
1. Se calculeaza vectorul y (k) = Ay (k1)
2.y k y (k) /ky (k) k
converge catre vectorul propriu asociat valorii proprii dominante a
matricei A.
Obs: Daca valoarea proprie dominanta este multipla, atunci MP
converge la un vector din subspatiul generat de vectorii proprii
asociati valorii proprii dominante (multipla)!
Metoda puterii
Viteza de convergenta este determinata de raportul | 21 |.
Pentru un raport mic avem viteza mare de convergenta
rata de convergenta liniara: | 21 |k .
Metoda este eficienta in cazul matricelor cu o valoare proprie
net dominanta si o structura rara (trebuie sa facem inmultirea
matrice-vector la fiecare iteratie O(n2 )).
Un criteriu de oprire posibil este dat de asigurarea unei
colinearitati impuse intre vectorii calculati la doi pasi
consecutivi;
Stiind ca unghiul dintre x, y este dat (in cazul real) de
xT y
(x, y ) = arccos kxkky
k , atunci putem considera criteriul de
oprire:
ek = |1 |(y (k) )T y (k1) || < tol.
Metoda puterii
Algoritm MP. (Metoda Puterii) (Fie A Rnn , tol> 1, si un
numar maxim maxiter de iteratii, algoritmul calculeaza un vector
propriu unitar y asociat valorii proprii dominante a matricei date
sau tipareste un mesaj daca obiectivul nu a fost atins.)
1. Se alege aleator un vector y Cn .
2. y y /ky k, i = 0,
e=1
3. Cat timp e > tol
1. Daca i > maxiter atunci
1. Tipareste S-a atins numarul maxim de iteratii
fara obtinerea nivelului prescris al tolerantei!
2. STOP.
2. z = Ay
3. z z/kzk
4. e = |1 |z T y ||
5. y z, i i + 1.
Metoda puterii
Observatii:
Metoda puterii este atractiva in cazul in care se cunoaste a
priori existenta unei valori proprii net dominante.
In caz contrar, viteza de convergenta poate fi nesatisfacatoare;
In cazul absentei unei valori proprii dominante, sirul poate
deveni divergent;
Daca valoarea proprie dominanta este multipla, atunci MP
converge la un vector din subspatiul generat de vectorii proprii
asociati valorii proprii dominante (multipla).
Optiune: se poate utiliza o deplasare a spectrului matricei
A astfel incat A In sa aiba o valoare proprie (net)
dominanta.
Metoda puterii inverse
Sub aceleasi ipoteze, fie
/ (A) o aproximatie 1 . Atunci se
observa ca matricea (In A)1 are spectrul
((In A)1 ) = {
1
1
,...,
}
1
n
si aceiasi vectori proprii cu cei ai matricei A.
initializam y (0) nedefectiv in raport cu x1 (vezi MP);
aplicam Metoda Puterii matricii (In A)1 generand sirul
y (k) = k (I A)1 y (k1) ,
k = 1, 2, . . .
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, iar sirul y (k) converge foarte rapid la
x1 .
Metoda puterii inverse
Metoda Puterii pentru matricea (In A)1 este cunoscuta sub
numele de Metoda Puterii Inverse cu deplasare pentru matricea A.
Schema MPI.
1. Pentru k = 1, 2, . . .
1. Se rezolva sistemul (In A)y (k) = y (k1) in raport cu y (k)
2. y (k) y (k) /ky (k) k.
Complexitate per iteratie Rezolvare sistem liniar n3 ;
Deplasarea constanta asigura o convergenta rezonabila la orice
valoare proprie;
(k1) T
(k1)
) Ay
Deplasarea variabila data de k = (y ky (k1)
produce
k2
cea mai buna rata de convergenta (patratica) la un vector
propriu, i.e.
ky (k+1) x1 k ky (k) x1 k2 .
Metoda puterii inverse
Algoritm MPI. (Metoda Puterii Inverse cu deplasare Rayleigh)
(Fie A Rnn , tol> 1, si un numar maxim maxiter de iteratii,
algoritmul calculeaza un vector propriu unitar y al matricei date
sau tipareste un mesaj daca obiectivul nu a fost atins.)
1. Se alege aleator un vector y Cn .
2. y y /ky k, i = 0,
e = 1.
3. Cat timp e > tol
1. Daca i > maxiter atunci
1. Tipareste S-a atins numarul maxim de iteratii ...
2. STOP.
2. = y T Ay
3. Se rezolva sistemul (In A)z = y
4. z z/kzk
5. e = |1 |z T y ||
6. y z, i i + 1.
Metoda puterii inverse
Observatii:
convergenta (patratica) la vectorul propriu asociat unei valori
proprii oarecare, i.e.
ky (k+1) x1 k ky (k) x1 k2 .
cea mai buna metoda de calcul al unui vector propriu asociat
unei valorii proprii oarecare, i.e. daca ky (0) x1 k si
k
= 1, atunci ky (k) x1 k 2 .
algoritmul MPI calculeaza simultan si valoarea proprie
dominanta asociata, data de valoarea finala a deplasarii .
pentru eficienta sporita, se transforma in prealabil matricea A
intr-o forma ce reduce efortul de calcul necesar al solutiei
sistemului (e.g. forma Hessenberg).
Exemple numerice MP/MPI
Consideram matricea companion
2 3
1 0
A=
0 1
0 0
2 6
0 0
0 0
1 0
cu valorile proprii 1 = 3, 2,3 = 1 i , 4 = 1. Fixam
y (0) = [1 0 0 0]T si acuratetea = 1015 .
0
10
Metoda Puterii
Metoda Puterii Inverse
10
10
Eroare (ek)
10
10
10
10
12
10
14
10
16
10
10
Iteratii (k)
15
20
25
Exemple numerice MP/MPI
(k)
Definim pentru MP (MPI) sirul 1 = (y (k) )T Ay (k) ce converge la
valoarea proprie dominanta (valoare proprie oarecare).
(k)
Tabelul: Convergenta sirului 1
k
1
2
3
4
5
6
7
8
9
..
.
MP
3.148148148148148
2.892193308550186
3.057256990679095
2.992263515116997
2.994514085813479
3.006069862826657
2.997420775567442
3.000454508228525
3.000297669270774
..
.
22
3.000000035181492
calculat de MP si MPI
MPI
2.941176470588236
3.004515975556559
3.000016980868802
3.000000000171710
3.000000000000000
Exemplu MP
Fie matricea ce depinde de parametrii
A= 0 1
0 1
si reali:
Care este rezultatul MP in functie de , R?
Dem: calculam mai intai spectrul lui A:
p
p
(A) = {, 1 , 1 + }.
Asadar A are o valoare proprie dominanta daca:
Daca 0 atunci |1 | = |1 + | =
1
. Deci
obtinem o valoare proprie dominanta daca > 1 .
Daca > 0 atunci obtinem o valoare proprie dominanta cand
6= 1 + .
In ambele cazuri, MP va produce un vector propriu de norma 1
corespunzator valorii proprii dominante.
Aplicatie a MP: model al cresterii populatiei
Grupam populatia in n clase de varsta de durata egala (notam cu L
varsta maxima):
L
L 2L
(n 1)L
0,
,
, L
,
n
n n
n
numarul populatiei in fiecare clasa de varsta este reprezentat
de vectorul de distributie a varstei: x = [x1 xn ]T .
peste o perioada de L/n ani, probabilitatea ca un membru din
clasa de varsta i sa supravietuiasca si sa devina un membru in
clasa de varsta i + 1 este data de pi .
numarul mediu de nou-nascuti ai unui membru din clasa de
varsta i este data de bi .
Definim matricea de tranzitie a varstei :
b1 b2 bn1 bn
p1 0
0
0
A = 0 p2
0
0
0 0 pn1 0
Aplicatie a MP: model al cresterii populatiei
Folosind matricea de tranzitie
b1 b2
p1 0
A=
0 p2
0 0
a varstei
bn1 bn
0
0
0
0
pn1 0
putem estima vectorul de distributie a varstei la o anumita
perioada de timp pe baza vectorului de tranzitie de la perioada de
timp anterioara:
xi +1 = Axi
Populatia este stabila daca acelasi procentaj din populatia totala
se regaseste in fiecare clasa de varsta:
xi +1 = Axi = xi
Aplicatie a MP: model al cresterii populatiei
Presupunem ca populatia femeilor are urmatoarele caracteristici:
clasa varsta
[0, 10)
[10, 20)
[20, 30)
[30, 40)
[40, 50)
[50, 60)
[60, 70)
[70, 80)
[80, 90)
[90, 100)
nr. nou-nascuti (bi )
0
0.174
0.782
0.263
0.022
0
0
0
0
0
probabilitatea supravietuire (pi )
0.985
0.996
0.994
0.990
0.975
0.940
0.866
0.68
0.361
0
Aplicam MP pornind din punctul initial x0 = [1 1]T , obtinem
vectorul propriu corespunzator valorii proprii dominante = 1.065:
x = [1 0.925 0.864 0.806 0.749 0.686 0.605 0.492 0.314 0.106]T .
Aceasta inseamna ca populatia creste cu 6.5% la fiecare 10 ani!
Istoric - algoritmul QR
Eduard Stiefel
Heinz Rutishauser
Apare algoritmul LR (anii 50), care foloseste factorizarea LU
(in locul factorizarii QR). Datorita stabilitatii sporite a
algoritmului QR, se renunta pe parcurs la algoritmul LR.
Algoritmul LR a fost dezvoltat la inceputul anilor 50 de Heinz
Rutishauser, care lucra ca asistent de cercetare in echipa lui
Eduard Stiefel la Universitatea ETH Zurich.
Primele variante ale algoritmului QR au fost dezvoltate spre
sfarsitul anilor 50 de catre John G.F. Francis (Anglia) si Vera
N. Kublanovskaya (URSS), in lucrari independente.
Algoritmul QR
Algoritmul QR reprezinta o procedura de deflatie iterativa care
construieste (recurent) un sir de matrice unitar (ortogonal)
asemenea cu matricea initiala, ce converge catre forma Schur
(reala).
In vederea minimizarii efortului de calcul, algoritmul este structurat
in doua faze:
1. Reducerea la forma superior Hessenberg;
2. Faza iterativa.
Mai departe, analizam cele doua etape separat. De observat ca in
prima faza dorim sa aducem matricea la o forma cat mai apropiata
de forma Schur reala (quasi-Hessenberg). De asemenea, forma
Hessenberg are beneficii in MP (MPI), deoarece inmultirea
matrice-vector (rezolvarea unui sistem) este mai ieftina in cazul
cand matricea A este Hessenberg.
Proceduri utilizate in alg. QR
1. [b, u, ] = Hr(a) - Calculul unui reflector real
U1 = In uu T / astfel incat (b = U1 a)(2 : n) = 0;
2. B = Hrs(u, , A) - Inmultirea la stanga a matricei A cu
reflectorul real U1 = In uu T /, i.e. B = U1 A;
3. B = Hrd(A, u, ) - Inmultirea la dreapta a matricei A cu
reflectorul real U1 = In uu T /, i.e. B = AU1 ;
4. [b, c, s] = Gr(a) - Calculul unei rotatii reale P de ordin 2,
astfel incat (b = P T a)(2) = 0;
5. B = Grs(c, s, A) - Inmultirea la stanga a matricei A cu P T ,
i.e. B = P T A, unde P este o rotatie reala de ordin 2;
6. B = Grd(A, c, s) - Inmultirea la dreapta a matricei A cu
rotatia reala de ordin 2 P, i.e. B = AP;
Reducerea la forma superior Hessenberg
Este binecunoscuta teorema (lui Abel), conforma careia rezolvarea
ecuatiilor algebrice generale de grad superior lui patru nu este
posibila printr-o secventa finita de operatii aritmetice. Deducem ca
nu exista algoritm direct care sa reduca o matrice data (de ordin
superior lui patru) la o forma mai apropiata de forma Schur
decat forma Hessenberg, si care, in acelasi timp, sa conserve
valorile proprii.
Teorema. Oricare ar fi matricea A Rnn , exista o matrice
ortogonala Q Rnn , calculabila printr-o secventa finita de
operatii aritmetice, astfel incat matricea
H = Q T AQ
este superioara Hessenberg.
Reducerea la forma superior Hessenberg
Demonstratie: Vom da o demonstratie constructiva pe
urmatoarea schema de calcul
HQ.
1. Pentru k = 1 : n 2
1. Se calculeaza un reflector elementar
T
A)(k + 2 : n, k) = 0.
Uk+1 a.i. (Uk+1
T
2. A Uk+1
A
3. A AUk+1 .
care suprascrie matricea A cu
T
A H = Un1
U3T U2T AU2 U3 Un1 .
Notand Q = U2 U3 Un1 avem rezultatul precizat.
Ramane de aratat ca schema de calcul de mai sus creeaza o
structura superior Hessenberg.
Reducerea la forma superior Hessenberg
Demonstratie (continuare):
Pasul 1. Exista un reflector elementar U2 de ordin n a.i.
(U2T A)(3 : n, 1) = 0 care realizeaza structura sup. Hess. in prima
coloana. Matricea U2 are structura
1 0
U2 =
.
0 U2
Postmultiplicarea matricei U2T A cu U2 nu modifica prima coloana
a lui U2T A, i.e. zerourile din prima coloana a lui U2T A sunt
conservate in U2T AU2 .
Pasul k. Presupunem ca din primii k 1(k < n 1) pasi am
obtinut o matrice cu structura sup. Hess. in primele k 1 coloane:
A Ak = UkT U2T AU2 Uk .
Acum, exista un reflector elementar Uk+1 astfel incat
T A)(k + 2 : n, k) = 0, i.e. premultiplicarea cu U T
(Uk+1
k+1 creeaza
structura superior Hessenberg in coloana k, fara sa afecteze
structura de zerouri din primele k 1 coloane.
Reducerea la forma superior Hessenberg
Demonstratie (continuare):
Mai mult, structura
Uk+1
I
= k
0
0
Uk+1
asigura ca postmultiplicarea cu Uk+1 nu afecteaza nici una din
T A .
primele k coloane ale matricei Uk+1
k
Prin urmare, schema de calcul prezentata la inceputul
demonstratiei realizeaza reducerea matricei la forma superior
Hessenberg, prin transformari ortogonale de asemanare.
Algoritm HQc
Algoritm HQc. (Reducerea la forma superior Hessenberg) (Fie
A Rnn si Q Rnn ortogonala, algoritmul calculeaza o
secventa de reflectori U2 , . . . , Un1 astfel incat matricea
T U T U T AU U U
A H = Un1
2 3
n1 este sup. Hess. Optional
3 2
(prin variabila opt = da sau nu) se calculeaza actualizarea
matricei de transformare, i.e. Q QU2 U3 Un1 .)
1. Pentru k = 1 : n 2
1. [A(k + 1 : n, k), u, ] = Hr(A(k + 1 : n, k))
2. A(k + 1 : n, k + 1 : n) = Hrs(u, , A(k + 1 : n, k + 1 : n))
3. A(1 : n, k + 1 : n) = Hrd(A(1 : n, k + 1 : n), u, )
4. Daca opt = da atunci
1. Q(1 : n, k + 1 : n) = Hrd(Q(1 : n, k + 1 : n), u, )
Observam ca se considera k + 1 : n, deoarece dorim sa obtinem
matrice Hessenberg. Restul este ca si in algoritmul QR de la
problema CMMP care transforma matricea in una superior
triunghiulara!
Algoritm QR - Faza iterativa
Algoritm QR:
1. Aducerea la forma Hessenberg;
2. Faza iterativa;
Etapa iterativa a algoritmului QR utilizeaza, intr-o maniera
implicita, metodele puterii si puterii inverse pentru reducerea
unei matrice la forma Schur (reala).
Implementarile profesionale ale algoritmului QR utilizeaza, in
exclusivitate, din motive de eficienta calculatorie (in cazul
matricelor reale), varianta cu deplasare implicita cu pas dublu.
Algoritm QR cu deplasare explicita
Presupunem ca matricea H Cnn are o structura superior
Hessenberg. Algoritmul QR cu deplasare explicita construieste sirul
de matrice (sir QR):
H = H1 , H2 , . . . , Hk , Hk+1 , . . .
pe baza relatiei de recurenta (transformare QR)
(
Hk k In = Qk Rk
, k = 1, 2, . . . ,
Hk+1 = Rk Qk + k In
(1)
H1 = H.
(2)
Scalarul k , denumit deplasare, asigura convergenta sirului;
In prima relatie din (2) se efectueaza factorizarea QR a
matricii Hk k In ;
In a doua relatie din (2), matricea succesor Hk+1 se obtine
inmultind in ordine inversa matricele Qk si Rk si anuland
deplasarea prin adunarea matricei k In .
Algoritm QR cu deplasare explicita
Propozitie.
a) Daca matricea initiala H1 = H a sirului matriceal QR este
superior Hessenberg, atunci toate matricele sirului au aceeasi
structura. Altfel spus, structura Hessenberg este invarianta la
transformarile QR.
b) Toate matricele sirului QR sunt unitar asemenea si, prin
urmare, au acelasi spectru de valori proprii.
In cazul real, afirmatiile de mai sus raman valabile daca in
locul operatorului hermitic, de transpunere si conjugare, se
utilizeaza operatorul de transpunere.
Algoritm QR cu deplasare explicita
Demonstratie: a) Daca Hk din (2) este o matrice superior
Hessenberg, aceeasi structura o are si Hk k In . Algoritmul de
factorizare QR (vezi cap.3) aplicat matricei sup. Hess. Hk k In
produce o matrice unitara Qk sup. Hess. si una sup. tr.
verificati !
Rk produsul Rk Qk este sup. Hess., deci Hk+1 este sup.
Hess. Prin inductie, daca H1 = H este sup. Hess., atunci toate
matricele Hk , k = 2, 3, . . . sunt matrice sup. Hess.
b) Din prima relatie (2) avem
Rk = QkH (Hk k In ),
care, introdusa in a doua relatie (2), conduce la
Hk+1 = QkH (Hk k In )Qk + k In = QkH Hk Qk ,
i.e. Hk+1 si Hk sunt unitar asemenea si au acelasi spectru.
(3)
Algoritm QR cu deplasare explicita
Aplicand (3) in mod repetat obtinem
H
H
Q1H H1 Q1 Qk2 Qk1 = QkH H1 Qk ,
Qk2
Hk = Qk1
unde
Qk = Q1 Qk2 Qk1
(4)
este o matrice unitara (produs de matrice unitare). Prin urmare,
toate matricele din sirul QR sunt unitar asemenea si, in consecinta,
au acelasi spectru.
Algoritm QR cu deplasare explicita
Transformarea unitara cumulata poate fi construita cu relatia
Qk+1 = Qk Qk ,
k = 1, 2, . . . ,
Q1 = In .
Alegand adecvat deplasarile k , k = 1, 2, . . . , (cu exceptia
situatiilor patologice) sirul QR este convergent catre forma
Schur complexa.
Aratam ca elementul extradiagonal al ultimei linii a matricei
Hk se anuleaza asimptotic pentru k . Mai mult, toate
elementele subdiagonale, cu viteze diferite, au tendinta de
anulare.
Algoritm QR cu deplasare explicita
(i ) Cu o alegere adecvata a deplasarilor k , sirul QR
implementeaza, intr-o forma implicita, o versiune a metodei
puterii inverse cu deplasare Rayleigh convergenta patratica a
ultimei coloane a matricei Qk catre un vector propriu al matricei
H H (anularea asimptotica a elementului Hk (n, n 1)).
Pentru a justifica aceasta afirmatie, observam mai intai
de unde
Rk = QkH (QkH H Qk k In ) = QkH QkH (H k In )Qk
H
(H k In )Qk ,
= Qk+1
(5)
H
Rk QkH = Qk+1
(H k In ).
(6)
Algoritm QR cu deplasare explicita
Prin transpunerea si conjugarea relatiei (6) avem
Qk RkH = (H H
k In )Qk+1 ,
unde
k este conjugata deplasarii k . Intrucat RkH este inferior
triunghiulara, din egalitatea ultimelor coloane rezulta
(k) (k)
rnn qn
(k+1)
= (H H
k In )
qn
sau, daca k
/ (H)
(k+1)
qn
(k)
(k)
(k)
k In )
qn ,
= rnn (H H
(k)
unde rnn este conjugatul lui rnn .
(7)
Algoritm QR cu deplasare explicita
Relatia (7) defineste iteratia puterii inverse pentru determinarea
unui vector propriu al matricei H H .
In continuare, aratam 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 de deflatie.
Reamintim: valorile proprii ale matricii H H sunt conjugatele
valorilor proprii ale matricei H.
Consideram transformarea unitara definita de:
h
i
Q = Q vn ,
n vn , cu
cu vn vector propriu al matricei H H , i.e. H H vn =
n (H).
Algoritm QR cu deplasare explicita
Se poate vedea usor ca
(
vnH H Q = n vnH Q = 0,
vnH Hvn = n vnH vn = n ,
de unde rezulta
H
H
Q H Q Q H Hvn
Q
H hH
H
Q H Q = T H Q vn = H
=
.
vn
0 n
vn H Q vnH Hvn
(k)
Viteza patratica de convergenta a vectorului coloana qn din (7)
catre un vector propriu al matricei H H poate fi obtinuta alegand
deplasarea
k egala cu catul Rayleigh
(k)
k =
=
(k)
(
qn )H H H qn
(k)
(k)
= (
qn )H H H qn
(k)
(k)
(
qn )H qn
(k)
enT HkH en = hnn .
= enT QkH H H Qk en
Algoritm QR cu deplasare explicita
(k)
Alegerea k = hnn a deplasarii originii garanteaza o rata
excelenta de convergenta sirului QR catre forma Schur in
(k)
ultima linie, i.e. de anulare asimptotica a elementului hn,n1 .
Cand elementul hn,n1 satisface o conditie de forma
(k)
(k)
(k)
(k)
|hn,n1 | < tol |hn1,n1 | + |hn,n |
unde tol este un nivel prescris de toleranta, putem considera
(k)
ca hn,n1 este numeric neglijabil si il putem anula efectiv.
(k)
Astfel hnn devine o valoare proprie calculata a lui H;
Dupa aceasta operatie, dimensiunea problemei s-a redus cu o
unitate;
Algoritm QR cu deplasare explicita
(ii ) Sirul QR implementeaza simultan o versiune a metodei
puterii cu deplasare. Astfel, in acelasi timp, sirul QR pune
asimptotic in evidenta (cu o viteza mai redusa) si alte valori proprii
pe diagonala matricei curente a sirului.
Din (5) avem
Qk+1 Rk = (H k In ) Qk .
(8)
Egalitatea primelor coloane din (8) conduce la
(k)
(k)
Qk+1 r1 = (H k In ) q1 ,
(k)
(k)
(9)
unde q1 = Qk e1 si r1 = Rk e1 . Intrucat Rk este superior tr.
(k)
(k)
avem r1 = r11 e1 si deci, (9) poate fi scrisa in forma echivalenta
(k+1)
q1
1
(k)
r11
(k)
(H k In ) q1 .
Algoritm QR cu deplasare explicita
Relatia precedenta defineste metoda puterii pentru calculul
unui vector propriu al matricei H, utilizand un parametru
scalar de deplasare k ;
Daca k evolueaza astfel incat matricea H k In are o
valoare proprie dominanta, atunci prima coloana a matricei
unitare de transformare Qk converge catre un vector propriu
asociat acestei valori proprii;
Conform procedurii de deflatie, prima coloana a matricei
QkH H Qk = Hk 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 ale matricei H k In .
Algoritm QR cu deplasare explicita
Cele doua procese de deflatie au loc simultan, neglijand
elementele subdiagonale suficient de mici;
Dimensiunea problemei scade cu fiecare iteratie. Din
experienta numerica s-a dedus ca, pentru calculul unei valori
proprii a unei matrice Hessenberg, sunt suficiente 1.5 2
iteratii QR;
Aceasta viteza de convergenta exceptionala se datoreaza
faptului ca o data cu elementele subdiagonale din ultima linie
si prima coloana, toate celelalte elemente subdiagonale au
tendinta de anulare asimptotica.
Sirul QR nu converge intotdeauna, existand situatii
patologice in care elementele subdiagonale nu se anuleaza
asimptotic.
Exemplu de neconvergenta Alg. QR
Se considera matricea H R44
0
1
H=
0
0
in forma superior Hessenberg
0 0 1
0 0 0
,
1 0 0
0 1 0
avand valorile proprii (exacte), 1 = 1, 2,3 = i , 4 = 1.
H este o matrice ortogonala (de permutare);
Sirul QR lasa matricea H nemodificata, Hk = H.
Fie H1 = H. Avem 1 = h44 = 0, deci H1 1 I4 = H1 . Cum
H1 este ortogonala, o factorizare QR a lui H se obtine pentru
Q1 = H1 si R1 = I4 . Rezulta H2 = H1 si, prin inductie, se
obtine relatia pentru toti k.
Evolutia elementelor subdiagonale ale matricelor Hk cu
initializarea 1 = 0.001
(k)
(k)
(k)
k
1
2
3
..
.
h21
1.00000000000000
0.99999900000088
0.99999800000800
..
.
h32
1.00000000000000
0.99999999999950
0.99999999999800
..
.
h43
1.00000000000000
0.99999949999887
0.99999799999200
..
.
12
13
14
15
16
..
.
0.74524339988451
0.58630453030022
0.44579447911603
0.32803260297652
0.23685107105612
..
.
0.99080233083311
0.99453900211462
0.99846792286246
0.99959510209257
0.99989584829055
..
.
0.48323652626445
0.04719725489411
0.00003625307539
0.00000000000002
0.00000000000000
..
.
50
..
.
0.00000184648291
..
.
1.00000000000000
..
.
0
..
.
100
0.00000000000006
1.00000000000000
Evolutia elementelor subdiagonale ale matricelor Hk cu
initializarea 1 = 2 (recomandata)
(k)
(k)
(k)
k
1
2
3
4
5
6
..
.
h21
1.00000000000000
0.91651513899117
0.78445125612917
0.63665525316291
0.49164479289711
0.36518170914743
..
.
h32
1.00000000000000
0.98169181562325
0.97895246315181
0.99162466881300
0.99761224919910
0.99936015720678
..
.
h43
1.00000000000000
0.80868982852162
0.34595766230725
0.01531773203215
0.00000122920448
0.00000000000000
..
.
25
..
.
0.00053197970928
..
.
1.00000000000000
..
.
0
..
.
50
..
.
0.00000009183752
..
.
1.00000000000000
..
.
0
..
.
100
0.00000000000000
1.00000000000000
Exemplu de neconvergenta Alg. QR
Pentru initializarea = 2, limita sirului QR construit este
1 0 0 0
0 0 1 0
Hk H =
0 1 0 0 .
0 0 0 1
Faptul ca elementul h32 nu se anuleaza asimptotic, se
(k)
datoreaza utilizarii aritmeticii reale si alegerii k = h44 .
Cazurile de neconvergenta se pot sesiza prin supravegherea
elementului hn,n1 si daca, dupa un numar convenit de iteratii
(uzual, 10), modulul sau nu scade sub o toleranta impusa, se
intervine, de obicei, prin renuntarea, pentru un singur pas, la
deplasarea data.
(k)
Un pas simplu QR cu deplasare explicita
1. = hnn
2. H H In
3. Pentru j = 1 : n 1
1. Se determina rotatia plana (complexa) Pj,j+1 astfel incat
H
(Pj,j+1
H)j+1,j = 0.
H
H
2.H Pj,j+1
4. Pentru j = 1 : n 1
H HPj,j+1
5. H H + In
Matricea de transformare curenta: Qk = P12 P23 Pn1,n .
Complexitatea pasului QR cu deplasare explicita aplicat unei
matrici superior Hessenberg este O(n2 ), algoritmul de mai sus
necesitand N 6n2 flopi (complecsi).
Strategia pasilor dubli - cazul real
In cazul matricelor reale se poate impune utilizarea exclusiva a
unei aritmetici reale.
Daca matricea are valori proprii complex conjugate, alegerea
recomandata mai sus pentru deplasarea k nu mai poate
asigura convergenta procesului de calcul al valorilor proprii.
Din concluziile precedente, pentru evidentierea unui bloc 2 2
al formei Schur reale pentru valori proprii conjugate 1 i 2 ,
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 (v1 iv2 ).
Aceasta a condus la ideea comasarii a doi pasi consecutivi QR
intr-unul singur si a utilizarii unei perechi de deplasari complex
conjugate care, in pasul dublu, apar in combinatii reale.
Strategia pasilor dubli
Fie H Rnn o matrice superior Hessenberg si doi pasi consecutivi
QR cu deplasare explicita:
(
(
Hk+1 k+1 In = Qk+1 Rk+1
Hk k In = Qk Rk
,
Hk+2 = Rk+1 Qk+1 + k+1 In
Hk+1 = Rk Qk + k In
ce definesc transformarea Hk Hk+2 , numita pas dublu QR.
Pasul k produce matricea Hk+1 = QkH Hk Qk astfel incat
factorizarea QR din cadrul pasului k + 1 poate fi scrisa sub
forma QkH Hk Qk k+1 In = Qk+1 Rk+1 .
Inmultind la stanga cu Qk , la dreapta cu Rk si utilizand
factorizarea QR, rezulta ca un pas dublu QR este descris de
(
(Hk k In )(Hk k+1 In ) = Qk Qk+1 Rk+1 Rk
Hk+2 = (Qk Qk+1 )T Hk Qk Qk+1 .
Strategia pasilor dubli - schema de calcul
def
1. Se calculeaza matricea M = Hk2 sk Hk + pk In , unde
sk = k + k+1 si pk = k k+1 .
2. Se calculeaza factorizarea QR a matricei M, i.e M = Q R,
unde Q = Qk Qk+1 si R = Rk Rk+1 .
3. Hk+2 = Q T Hk Q.
Deplasarile k si k+1 se aleg egale cu valorile proprii ale
blocului 2 2 din coltul dreapta jos al matricei Hk :
#
" (k)
(k)
hn1,n1 hn1,n
.
Hk (n 1 : n, n 1 : n) =
(k)
(k)
hn,n1
hn,n
Cele doua valori proprii apar sub forma de suma si produs:
(
(k)
(k)
sk = k + k+1 = hn1,n1 + hn,n
,
(k)
(k)
(k)
(k)
pk = k k+1 = hn1,n1 hn,n hn1,n hn,n1
care sunt reale chiar daca deplasarile sunt complexe.
Algoritmul QR cu deplasare implicita
Scopul fundamental al dezvoltarii variantei cu deplasare
implicita a algoritmului QR este reducerea complexitatii unui
pas dublu QR aplicat unei matrice reale in forma superior
Hessenberg la nivelul complexitatii a doi pasi simpli QR.
Algoritmul QR cu deplasare implicita dateaza din anul 1961 si
a fost propus de J.G.F. Francis si V.N. Kublanovskaia.
V.N. Kublanovskaya. On Some Algorithms for the Solution of the Complete Eigenvalue Problem. USSR Comp.
Math. Phys., 3:637-657, 1961.
J.G.F. Francis. The QR Transformation: a Unitary Analogue to the LR Transformation, Parts I and II. Comp. J.,
4:265-272, 332-345, 1962.
Ideea algoritmului QR cu deplasare implicita
Conform celor prezentate mai sus referitor la pasul dublu QR,
matricele Hk si Hk+2 = QkT Hk Qk au structura superior
Hessenberg si sunt ortogonal asemenea.
In 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 Cnn o
matrice unitara arbitrara, aplicarea algoritmului HQc matricei
V H Hk V returneaza o matrice superior Hessenberg unitar
asemenea cu Hk si care depinde de alegerea lui V .
Exista alternative mai eficiente de calcul a matricei succesor
Hk+2 si, eventual, a matricei de transformare asociate?
Ideea algoritmului QR cu deplasare implicita
Definitie. O matrice n n complexa sau reala H superior
Hessenberg se numeste ireductibila daca are toate elementele
subdiagonale nenule, i.e.
hj+1,j 6= 0,
j 1 : n 1.
Teorema. Fie matricea A Cnn si matricele unitare U Cnn si
V Cnn astfel incat matricele
H = U H AU,
G = V H AV
sunt ambele superior Hessenberg ireductibile. Daca matricele U si
V au aceeasi prima coloana, i.e. Ue1 = Ve1 , exista o matrice
diagonala unitara D = diag (1, 2 , . . . , n ) cu j = e i j , j = 2 : n,
astfel incat
H = D H GD.
In cazul real, U, V Rnn ortogonale si j {1, 1}, j = 2 : n.
Pas dublu QR cu deplasare implicita pentru matrici reale
In cazul matricelor reale, un spor important de eficienta se
obtine utilizand o aritmetica reala si strategia pasilor dubli QR.
Un pas dublu QR cu deplasare implicita are ca baza teoretica
teorema de mai sus. Ideea centrala consta in 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.
Pas dublu QR cu deplasare implicita pentru matrici reale
Concret, un pas dublu QR cu deplasare implicita consta din
urmatoarele transformari:
(k)
1. Se calculeaza prima coloana q1 a matricei Q = Qk Qk+1 ce
defineste transformarea ortogonala aferenta unui pas dublu
QR cu deplasare explicita.
2. Se determina o matrice ortogonala U1 astfel incat prima sa
(k)
(k)
coloana sa fie q1 , i.e. U1 e1 = q1 .
3. Se calculeaza matricea B = U1T Hk U1 (a carei structura nu
mai este superior Hessenberg).
4. Se reface structura superior Hessenberg aplicand algoritmul
= HQ(B). Transformarile
HQ matricei B: [Hk+2 , U]
implicate de aceasta reducere nu afecteaza prima coloana a
matricei de transformare cumulate.
Pas dublu QR cu deplasare implicita pentru matrici reale
Daca matricea Hk este ireductibila, atunci rezultatul Hk+2 al
aplicarii schemei de calcul de mai sus va fi esential acelasi cu
cel dat de un pas dublu QR cu deplasare explicita.
Mai mult, schema de mai sus este determinant mai eficienta
decat varianta cu deplasare explicita: exploatand
corespunzator avantajele structurale date de forma
Hessenberg a matricelor initiala si finala se poate reduce
complexitatea pasului dublu de la O(n3 ) la O(n2 ), ceea ce in
economia intregului algoritm este esential.
Detaliile sunt prezentate in continuare.
Pas dublu QR cu deplasare implicita pentru matrici reale
not
Pentru simplitate, consideram Hk = H matricea curenta
not
(presupusa ireductibila), iar Hk+2 = H matricea succesor in
varianta cu utilizarea pasilor dubli.
1. Fara a reduce generalitatea, pp. ca matricea superior
triunghiulara Rk Rk+1 = R este nesingulara. Atunci prima
coloana a matricei Qk Qk+1 = Q este
2
h11 + h12 h21 sh11 + p
h21 (h11 + h22 s)
h21 h32
1
1=
q1 = Qe
,
0
r11
..
.
0
not
(k)
(k)
unde sk = s = k + k+1 = hn1,n1 + hn,n ,
not
(k)
(k)
(k)
(k)
pk = p = k k+1 = hn1,n1 hn,n hn1,n hn,n1 .
Pas dublu QR cu deplasare implicita pentru matrici reale
Similar cu cazul pasului simplu, notam
2
h11 + h12 h21 sh11 + p
w = h21 (h11 + h22 s)
h21 h32
vectorul de deplasare implicita aferent pasului dublu QR.
2. Matricea ortogonala U1 , de la punctul 2. al schemei de calcul,
poate fi un reflector (real) astfel calculat incat
U1T q1 = U1 q1 = k
q1 ke1 .
Datorita structurii lui q1 , structura matricii U1 este
U1
0
U1 =
0 In3
cu U1 R33 reflector elementar (real) de ordinul 3.
(10)
Pas dublu QR cu deplasare implicita pentru matrici reale
3. Datorita structurii (10), alterarea formei Hess. prin calculul
matricei B are loc numai in pozitiile (3, 1), (4, 1) si (4, 2).
4. Matricea B avand numai trei elemente nenule ce altereaza
forma superior Hessenberg, sporul de eficienta se obtine prin
adaptarea algoritmului HQr la aceasta structura. Concret, se
evita operatiile de adunare si inmultire cu zero-uri, tinand cont
de structura
Ii 1 0
0
In2
0
Ui = 0 Ui
, i = 2 : n2, Un1 =
0
0
Un1
0
0 Ini 2
reflectorilor Ui , i = 2 : n 1, utilizati in cadrul algoritmului
HQr, unde Ui R33 si Un1 R22 sunt reflectori
elementari de indice 1.
Pas dublu QR cu deplasare implicita - schema de calcul
1. Pentru i = 2 : n 2
1. Se calculeaza reflectorul elementar Ui astfel incat
1. (UiT B)(i + 1 : i + 2, i 1) = 0.
2. B UiT B. % Se anuleaza elementele (i + 1 : i + 2, i 1).
3. B BUi . % Pentru i < n 2 sunt alterate zerourile
2. % Ultima transformare
1. Se calculeaza reflectorul elementar Un1 astfel incat
T
1. (Un1
B)(n, n 2) = 0.
T
2. B Un1
B. % Se anuleaza elementul (n, n 2).
3. B BUn1 .
Eliminarea elementelor nenule care altereaza structura Hessenberg
se realizeaza prin deplasarea lor de-a lungul unor trasee paralele
cu diagonala principala.
Exemplu
Pentru exemplificare, prezentam evolutia structurala a matricei B
in cazul n = 5. Si aici zerourile nou create au fost marcate cu ,
alterarile de zerouri au fost evidentiate cu +, iar incadrarile indica
liniile si/sau coloanele afectate de transformarea curenta.
H B = U1 HU1 =
+
+ +
0 0 0
H B = U2 H =
+
0 0 0
Exemplu
0
0
0
0
0
0 +
H HU2 =
U3T H
H HU3 =
+
+
0
0 0
0 0 +
Exemplu
U4T H
0
0 0
0 0
0
0 0
0 0 0
H HU4 =
Calcul vector de deplasare implicita
Vom introduce un algoritm distinct de calcul al vectorului de
deplasare implicita asociat unui pas dublu QR.
Algoritm VD2 - Calculul vectorului de deplasare implicita pentru
un pas dublu QR (Fie matricea sup. Hess. H Rnn , algoritmul
calculeaza vectorul w R3 , de deplasare implicita pentru un pas
dublu QR.)
1. s = hn1,n1 + hnn
2. p = hn1,n1 hnn hn1,n hn,n1
2
h11 + h12 h21 sh11 + p
3. w = h21 (h11 + h22 s)
h21 h32
Sintaxa de apel: w = VD2(H).
Complexitate: O(1).
Pas dublu QR cu deplasare implicita pentru matrici reale
Algoritmul IT QR2 - Pas dublu QR cu deplasare implicita.
(Date o matrice superior Hessenberg ireductibila H Rnn si
vectorul de deplasare implicita w R3 , algoritmul suprascrie matricea
H cu matricea succesor H H = Q T H Q din sirul QR. Se produc
si elementele definitorii ale reflectorilor utilizati.
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 , 1 : 3), V (:, 1), b1 )
2. % Refacerea formei superior Hessenberg
1. Pentru i = 2 : n 2
1. [H(i : i + 2, i 1), V (:, i ), bi ] = Hr(H(i : i + 2, i 1))
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 )
Pas dublu QR cu deplasare implicita pentru matrici reale
Algoritmul IT QR2 (continuare)...
3. % Ultimul pas
1. [H(n 1 : n, n 2), V (1 : 2, n 1), bn1 ] =
= Hr(H(n 1 : n, n 2))
2. H(n 1 : n, n 1 : n) =
= Hrs(V (1 : 2, n 1), bn1 , H(n 1 : n, n 1 : n))
3. H(:, n 1 : n) = Hrd(H(:, n 1 : n), V (1 : 2, n 1), bn1 ).
Sintaxa de apel: [H, V , b] = IT QR2(H, w ).
Complexitatea unui pas dublu QR realizat de algoritmul
IT QR2 este O(n2 ) (mai exact, Nop 24n2 flopi).
Subliniem ca aceasta solutie este cea mai eficienta
implementare cunoscuta a iteratiilor QR pentru matricele
reale, fiind utilizata in toate programele profesionale de calcul
al valorilor proprii.
Algoritm QR pentru matrici reale
Algoritmul QR pentru matrice reale se obtine prin iterarea
algoritmului IT QR2, anularea efectiva a elementelor
subdiagonale devenite neglijabile si exploatarea structurala a
acestor anulari in vederea obtinerii unei eficiente maxime.
Dupa epuizarea procedurii de iterare, se obtine o matrice
cvasisuperior triunghiulara, ortogonal asemenea cu matricea
initiala, cu blocurile diagonale de dimensiune cel mult 2 2.
Pentru obtinerea unei forme Schur reale a matricei initiale,
algoritmul se completeaza cu reducerea la forma sup. tr. a
blocurilor diagonale 2 2 care au valori proprii reale.
Algoritm QR pentru matrici reale
Pentru o economie sporita a algoritmului, la fiecare iteratie se
anuleaza elementele subdiagonale neglijabile, ce satisfac
|hi +1,i | < tol (|hii | + |hi +1,i +1 |) ,
unde tol defineste nivelul de toleranta. Putem considera ca
are loc o evaluare a valorii proprii, cu o eroare de ordinul
tolerantei tol .
Pentru monitorizarea evolutiei structurale a sirului QR, se va
determina cel mai mic intreg p si cel mai mare intreg q, astfel
incat matricea Hessenberg curenta sa aiba structura
H11 H12 H13
}p
H = 0 H22 H23 }n p q .
0
0 H33
}q
cu H11 Cpp , H22 C(npq)(npq) superior Hessenberg
ireductibila si H33 Rqq cvasisuperior triunghiulara (i.e. cu
blocurile diagonale de dimensiune cel mult 2 2).
Algoritm QR pentru matrici reale
Blocurile diagonale ale submatricei H33 au valori proprii deja
evidentiate, (alte valori proprii evidentiate se pot gasi printre
valorile proprii ale blocurilor diagonale de dimensiune cel mult
2 2 ale submatricei H11 ), iar iteratia QR se va aplica, de
fapt, numai submatricei H22 .
Aceasta transformare afecteaza celelalte blocuri ale matricei H
dupa cum urmeaza:
H11
H12 Q12
H13
HH Q
H
H H = 0 Q22
22 22 Q22 H23 .
0
0
H33
Faza iterativa a algoritmului QR se termina in momentul in
care ordinul submatricei H22 scade la cel mult 2, i.e.
q n 2.
Algoritm QR pentru matrici reale
Supravegherea convergentei procesului iterativ se efectueaza cu
urmatoarele aspecte specifice:
aprecierea convergentei se face la nivelul evidentierii unui bloc
diagonal in coltul din dreapta jos al submatricei H22 (10 20
de iteratii pentru modificarea modului de calcul al vectorului
de deplasare implicita, respectiv 30 de iteratii pentru
renuntarea la continuarea calculului);
pentru calculul vectorului de deplasare implicita w se vor
utiliza urmatoarele relatii empirice:
(
s = 1.5 (|hnq,nq1 | + |hnq1,nq2 |)
p = (|hnq,nq1 | + |hnq1,nq2 |)2 .
Triangularizarea blocurilor diagonale 2 2
La terminarea cu succes a fazei iterative, triangularizarea blocurilor
diagonale 2 2 cu valori proprii reale se poate face aplicand
procedura standard de deflatie. Daca G R22 are valorile proprii
reale, i.e.
= (g11 g22 )2 + 4g12 g21 0,
atunci
g22
x= 1
g21
este un vector propriu asociat valorii proprii (G ) data de
g11 + g22 + sgn (g11 + g22 )
.
(11)
1 =
2
Triangularizarea blocurilor diagonale 2 2
Atunci rotatia P R22 , care asigura satisfacerea conditiei
(P T x1 )(2) = 0, are prima coloana coliniara cu x1 si realizeaza
triangularizarea urmarita
1 g12
T
.
G = P GP =
0 2
Daca blocul diagonal ce trebuie triangularizat, pe care il notam
generic cu G , se afla in 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 ).
Triangularizarea blocurilor diagonale 2 2
Algoritmul TRID2 - Triangularizarea unui bloc diagonal 2 2.
(Fie S Rnn in forma cvasisuperior triunghiulara si k 1 : n 1,
algoritmul testeaza daca submatricea S(k : k + 1, k : k + 1) are
valorile proprii reale si, in caz afirmativ, calculeaza triangularizarea
ortogonala a blocului diagonal vizat. De asemenea, algoritmul
returneaza elementele definitorii c si s ale rotatiei reale calculate.)
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. Daca 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)
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.
Triangularizarea blocurilor diagonale 2 2
Sintaxa de apel a acestui algoritm va fi
[S, c, s] = TRID2(S, k).
Complexitatea algoritmului TRID2 este O(n).
In continuare, prezentam algoritmul QR standard cu pasi dubli
cu deplasari implicite pentru calculul formei Schur reale.
Algoritm QR cu pasi dubli, cu deplasari implicite
Algoritmul QR2. (Fie A Rnn , o matrice ortogonala Q Rnn
si un nivel de toleranta tol pentru anularea elementelor
subdiagonale, algoritmul calculeaza forma Schur reala a matricei
Toate calculele se efectueaza pe loc, in locatiile
A S = Q T AQ.
de memorie ale tabloului A. Optional, se acumuleaza transformarile
Optiunea
prin actualizarea matricei ortogonale Q, i.e. Q Q Q.
se exprima prin intermediul variabilei logice opt.)
1. Daca n = 1 atunci return
2. % Reducerea la forma Hessenberg
1. [A, Q] = HQr(A, Q, opt)
3. % Faza iterativa
1. p = 0, q = 0, cont it = 0
2. Cat timp q < n
1. % Anularea elementelor subdiagonale neglijabile
1. Pentru i = p + 1 : n q 1
Algoritm QR cu pasi dubli, cu deplasari implicite
1. Daca |ai +1,i | tol (|aii | + |ai +1,i +1 |) atunci
1. ai +1,i +1 = 0
2. % Determinarea lui q
1. continua = da
2. Cat timp continua = da
1. Daca q n2 atunci break
2. Daca anq,nq1 = 0 atunci
1. q q + 1
2. cont it = 0
altfel
1. Daca anq1,nq2 = 0 atunci
1. q q + 2
2. cont it = 0
altfel continua = nu
Algoritm QR cu pasi dubli, cu deplasari implicite
3. % Terminarea normala a fazei iterative
1. Daca q n2 atunci break
4. % Terminarea prin esec a algoritmului
1. Daca cont it > 30 atunci
1. Tipareste: S-au consumat 30 iteratii QR pentru
evidentierea unui bloc diagonal fara a se atinge acest obiectiv.
Este posibil ca, pentru aceste date
de intrare, algoritmul QR sa nu fie convergent.
2. Return
1. p = n q 1
2. Cat timp ap+1,p 6= 0
1. p = p 1
2. Daca p = 0 atunci break
Algoritm QR cu pasi dubli, cu deplasari implicite
6. % Iteratia curenta
1. k = p + 1, l = n q
2. w = VD2(A(k : l , k : l ))
3. % Calculul deplasarii implicite modificate
1. Daca cont it = 10 sau cont it = 20 atunci
1. s = 1.5(|al,l1 | + |al1,l2 |)
2. p = (|al,l1 | + |al1,l2 |)2
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 : l k
1. Daca i = l k atunci t = 2
2. r = min (p + i + 2, l )
Algoritm QR cu pasi dubli, cu deplasari implicite
3. Daca k > 1 atunci
1. A(1 : p, p + i : r ) =
= Hrd(A(1 : p, p + i : r ), V (1 : t, i ), bi )
4. Daca 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. Daca opt = da atunci
1. t = 3
2. Pentru i = 1 : l k
1. Daca 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 ))
Algoritm QR cu pasi dubli, cu deplasari implicite
3. % Triangularizarea blocurilor diagonale 2 2 cu valori proprii reale
1. k = 1
2. Cat timp k < n
1. Daca ak+1,k = 0 atunci k = k + 1,
altfel
1. [A, c, s] = TRID2(A, k)
2. Daca opt = da si c 6= 1 atunci
1. Q(:, k : k + 1) = Grd(Q(:, k : k + 1), c, s)
3. k = k + 2
Algoritm QR cu pasi dubli, cu deplasari implicite
In aspectele sale esentiale, algoritmul de mai sus sta la baza
tuturor programelor profesionale de calcul al valorilor proprii
ale unei matrice reale.
Sintaxa de utilizare a algoritmului de mai sus va fi
[A, Q] = QR2(A, Q, tol , opt).
Acceptand evaluarea conform careia sunt suficiente, in medie,
doua iteratii pentru a pune in evidenta o valoare proprie,
A = 30n 3 flopi fara
algoritmul necesita un numar de Nop
Q = 16n 3 flopi suplimentari
acumularea transformarilor, Nop
pentru calculul vectorilor Schur, i.e. ai matricei ortogonale Q.
Putem, deci, considera ca pentru matrice de ordin superior
(e.g. n > 100) algoritmul QR2 are o complexitate O(n3 ).
Algoritm QR simetric
Matricele reale simetrice A = AT Rnn apar in numeroase
aplicatii specifice. In particular, problema generala a celor mai
mici patrate presupune rezolvarea (mai mult sau mai putin
explicita) sistemului normal de ecuatii a carui matrice este
simetrica. Mai mult, cazul simetric este important pentru
calculul valorilor singulare ale unei matrice, problema ce apare
in toate aplicatiile ce fac apel la conceptul de rang matriceal.
Din punct de vedere procedural, exploatarea simetriei in
determinarea valorilor si vectorilor proprii conduce la dezvoltari
elegante si la importante simplificari ale calculelor.
Algoritmul QR simetric ramane un instrument fundamental
pentru calculul intregului spectru al unei matrice simetrice.
Totusi, spre deosebire de cazul general in care algoritmul QR
nu are rival, in situatii specifice ale cazului simetric, exist
solutii alternative viabile.
Algoritm QR simetric
Sursa importantelor facilitati de calcul care apar in cazul
simetric se afla in rezultatul fundamental conform caruia orice
matrice simetrica A Rnn este ortogonal diagonalizabila, i.e.
exista o matrice ortogonala Q Rnn astfel incat
Q T AQ = = diag (1 , 2 , . . . , n ),
adica toate matricele simetrice reale sunt simple, au spectru
real, iar directiile proprii (coloanele matricii Q) sunt
ortogonale doua cate doua.
Algoritm QR simetric
Algoritmul QR simetric detine un spor esential de eficienta prin
parcurgerea prealabila 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.
Etapele algoritmului QR simetric:
1. Reducerea la forma tridiagonala;
2. Faza iterativa.
Reducerea la forma tridiagonala
Baza teoretica a posibilitatii de reducere la forma tridiagonala unei
matrice simetrice este data de urmatorul rezultat.
Teorema. Oricare ar fi matricea simetrica A Rnn , exista o
matrice ortogonala Q Rnn astfel incat matricea
T = Q T AQ
este tridiagonala, i.e. tij = 0, pentru toti i , j, cu |i j| > 1.
Demonstratie: Demonstratia se reduce la observatia ca exista o
not
matrice ortogonala Q astfel incat matricea T = H = Q T AQ este
superior Hessenberg si la faptul ca aceasta matrice este simetrica
T T = Q T AT Q = Q T AQ = T . Prin urmare T este, simultan,
inferior Hessenberg, i.e. este o matrice tridiagonala.
Reducerea la forma tridiagonala
Reamintim schema de calcul care sta la baza reducerii la forma
Hessenberg (aceeasi cu schema reducerii la forma tridiagonala).
TQ 1. Pentru k = 1 : n 2
1. Se calculeaza un reflector elementar Uk+1 astfel incat
(Uk+1 A)(k + 2 : n, k) = 0.
2. A (Uk+1 A)Uk+1
% Se anuleaza A(k + 2 : n, k) si,
simultan, datorita conservarii simetriei,
se anuleaza A(k, k + 2 : n).
In urma efectuarii calculelor de mai sus, matricea A este
suprascrisa cu matricea
A T = Q T AQ = Un1 U3 U2 AU2 U3 Un1 ,
unde, Q = U2 U3 Un1 .
Reducerea la forma tridiagonala
Consideram acum pasul curent k al procesului de tridiagonalizare
descris mai sus si fie
1
k1
A T (k)
nk
z}|{ z}|{ z}|{
(k)
(k)
}k 1
T
T
0
12
= Uk U3 U2 AU2 U3 Uk = 11
(k)
(k)
(k) }1
T21 T22 T23
}n k
(k)
(k)
0
T32 T33
matricea obtinuta dupa primii k 1 pasi, partitionata convenabil,
(k)
in care T11 este tridiagonala, simetrica, iar
(k)
(k)
T21 = (T12 )T = [0
(k)
tk,k1 ].
Reducerea la forma tridiagonala
Avand in vedere faptul ca reflectorul elementar Uk+1 are structura
Ik
0
Uk+1 =
,
0 Uk+1
u
uT
k+1
unde Uk+1 = Ink k+1
uk+1 Rnk , este un reflector
k+1 ,
elementar de ordin n k si indice 1, transformarile efectuate la
pasul k au ca efect
(k)
(k)
T11
T12
0
(k)
(k)
(k)
A T (k+1) = Uk+1 T (k) Uk+1 = T21
T22
T23 Uk+1
(k)
(k)
0
Uk+1 T
Uk+1 T Uk+1
32
33
(k)
(k)
Cum T23 Uk+1 = (Uk+1 T32 )T = [ 0 0], cu
(k)
(k)
=sgn(T32 (1, 1))kT32 k, ramane sa efectuam eficient calculul
(k+1)
A(k + 1 : n, k + 1 : n) T33
(k)
= Uk+1 T33 Uk+1 .
(12)
Reducerea la forma tridiagonala
Performantele deosebite privind memoria utilizata si eficienta
calculatorie se datoreaza exploatarii proprietatilor de simetrie.
Memorarea economica a matricelor simetrice se face retinand
numai elementele din triunghiul inferior sau superior.
De asemenea, cand se cunoaste faptul ca rezultatul unei
procesari este o matrice simetrica, se calculeaza numai
elementele sale din triunghiul inferior sau superior.
In consecinta, in (12), vom calcula numai elementele din triunghiul
inferior al matricei T33 . De asemenea, tinand seama de structura
lui Uk+1 si notand, pentru simplificarea scrierii,
not
not
uk+1 = u,
= k+1 , relatia (12) devine
uuT
uuT
(k)
(k+1)
T33 Ink
T33
= Ink
(k)
= T33
(k)
uuT T33 uuT
uT
uuT (k)
(k) u
T33 T33
+
.
Reducerea la forma tridiagonala
(k)
Notand v =
k+1
T33
T33 u
(k)
T33
(k)
T33
Rnk obtinem
u v
|
uw
uT v T
uT v
u
u uT
v
2
2
{z
} |
{z
}
wT
(13)
w u .
Aceasta relatie, va fi folosita pentru calculul triunghiului inferior la
(k)
k+1
matricei A(k + 1 : n, k + 1 : n) T33
= Uk+1 T33 Uk+1 .
Reducerea la forma tridiagonala
Forma tridiagonala simetrica obtinuta constituie punctul de
plecare pentru diverse tehnici iterative de calcul a valorilor
proprii.
In cele ce urmeaza, vom considera ca matricea tridiagonala
A T = T T Rnn este memorata numai prin elementele
sale semnificative, date de componentele vectorilor f Rn si
g Rn1 conform
f1 g1 0
0
0
g f
0
0
1 2 g2
0 g2 f3 . . .
0
0
AT =.
.. . . . .
..
..
..
.
.
.
.
.
..
0 0 0
. fn1 gn1
0 0 0
0 gn1
fn
Algoritmul TQ
Aplicarea ideilor mentionate mai sus conduce la Algoritmul
TQ de reducere la forma tridiagonala (vezi C. Popeea et. al.,
pag. 317)
Sintaxa de apel: [f , g , Q] = TQ(A, Q, opt).
Utilizarea relatiei (13) reduce efortul de calcul la mai putin de
jumatate fata de cazul nesimetric: Nop 32 n3 , fata de
numarul de flopi 53 n3 necesar pentru reducerea la forma
Hessenberg in cazul nesimetric.
Volumul de memorie este M 3n2 /2 locatii, necesar pentru
memorarea elementelor triunghiului inferior al matricei A.
Faza iterativa
Etapa iterativa a algoritmului QR simetric beneficiaza de
importante simplificari calculatorii care se datoreaza, in principal,
conservarii simetriei matricei initiale la transformari ortogonale de
asemanare si constau in:
conservarea structurii tridiagonale la transformarile implicate
de iteratiile QR; in consecinta, toate transformarile aferente
sirului QR se pot desfasura in locatiile de memorie ale
vectorilor f si g ;
valorile proprii ale unei matrice simetrice reale fiind reale,nu
sunt necesare deplasari complexe si, prin urmare, nu este
necesara strategia pasilor dubli.
Vom folosi aceste observatii in vederea elaborarii unui algoritm QR
simetric cat mai performant.
Algoritmul QR cu deplasare explicita
Presupunem matricea simetrica tridiagonala T rset nn data prin
vectorii f si g . Algoritmul QR simetric cu deplasare explicita
construieste un sir de matrice tridiagonale, ortogonal asemenea
T = T1 , T2 , , Tk , Tk+1 ,
pe baza relatiei de recurenta
(
T In = QR
T T = RQ + In
(14)
unde T este matricea curenta din sirul definit, iar indicele
marcheaza matricea succesor. Deplasare se poate alegere
= tnn = fn
sau, si mai eficient, egala cu valoarea proprie, intotdeauna reala,
cea mai apropiata de tnn , a blocului 2 2 din coltul dreapta jos al
matricii curente T
f
gn1
.
T (n 1 : n, n 1 : n) = n1
gn1
fn
Algoritmul QR cu deplasare explicita
Deplasarea din cea de-a doua varianta, numita deplasare
Wilkinson, are expresia
q
1
2
2
=
fn1 + fn sgn (fn1 fn ) (fn1 fn ) + 4gn1
2
si se calculeaza economic cu relatiile
=
fn1 fn
,
2
2
= gn1
,
= fn
p
.
sgn() 2 +
Se poate arata ca pentru deplasarile analizate, in partea
finala a sirului se obtine o convergenta cubica a sirului QR
simetric catre o structura diagonala;
Structura tridiagonala recomanda utilizarea rotatiilor;
Algoritmul QR cu deplasare explicita
Un pas simplu QR simetric cu deplasare explicita (fara acumularea
transformarilor) este expus in C. Popeea et. al. (pag. 320), in
forma Algoritmului IT Qrsim;
Sintaxa de apel: [f,g,c,s] = IT QRsim(f,g)
Executia unui pas QR simetric cu deplasare explicita necesita
Nop 20n flopi.
Exemplu
Consideram matricea tridiagonala
T = 1
0
definita de vectorii f = [1 2
proprii (T ) = {0, 1, 3}.
simetrica
1 0
2 1
1 1
1]T si g = [1
1]T , cu valorile
Iterarea bruta (i.e. fara supravegherea si anularea elementelor
neglijabile) a algoritmului IT QRsim conduce la urmatoarea
evolutie a vectorilor g si f .
Date numerice privind evolutia elementelor vectorului g
(k)
(k)
k
1
2
3
4
5
6
7
..
.
g1
1.00000000000000
0.85065080835204
0.08564664424607
0.02859558021545
0.00953359280112
0.00317792845516
0.00105931186244
..
.
g2
1.00000000000000
- 0.52573111211913
- 0.00000629541717
0.00000000000000
- 0.00000000000000
0.00000000000000
0
..
.
10
..
.
0.00003923378367
..
.
0
..
.
15
..
.
0.00000016145590
..
.
0
..
.
25
0.00000000000273
Date numerice privind evolutia elementelor vectorului f
(k)
(k)
(k)
k
0
1
2
3
4
5
..
.
f1
1.00000000000000
2.61803398874990
2.96739091997935
2.99632557546692
2.99959106278125
2.99995455427149
..
.
f2
2.00000000000000
1.00000000000000
1.02821618974253
1.00367442449350
1.00004544572851
1.00004544572851
..
.
f3
1.00000000000000
0.38196601125011
0.00447471825954
0.00000000003958
0.00000000000000
0.00000000000000
..
.
10
..
.
2.99999999923036
..
.
1.00000000076964
..
.
0.00000000000000
..
.
15
16
..
.
2.99999999999999
3.00000000000000
..
.
1.00000000000000
1.00000000000000
..
.
0.00000000000000
0.00000000000000
..
.
25
3.00000000000000
1.00000000000000
0.00000000000000
Un pas QR simetric cu deplasare implicita
Consideram important sa subliniem faptul ca, spre deosebire
de cazul real nesimetric, aici utilizarea variantei cu deplasare
implicita nu aduce un spor de eficienta fata de varianta cu
deplasare explicita. Preferinta pentru deplasarea implicita este
justificata prin dorinta asigurarii unei tratari omogene a
problemelor de calcul ale valorilor proprii.
Varianta cu deplasare implicita a algoritmului QR simetric are
la baza teorema conform careia transformarea ortogonala de
asemanare definita de un pas QR simetric cu deplasare
explicita pentru o matrice tridiagonala ireductibil (i.e. cu
toate elementele subdiagonale nenule)
T T = Q T TQ
este determinata de prima coloana a matricei Q.
Un pas QR simetric cu deplasare implicita
La fel ca in cazul nesimetric, un pas QR simetric cu deplasare
implicita va consta din urmatoarele transformari:
1. Se calculeaza prima coloana q1 a matricei de transformare Q
din pasul QR simetric cu deplasare explicita.
2. Se determina o rotatia P12 astfel incat P12 e1 = q1 .
T TP
3. Se calculeaza matricea T P12
12 in care este alterata
structura tridiagonala in pozitiile (3, 1), (1, 3) dar se conserva
simetria.
4. Se reface structura tridiagonala prin transformari ortogonale
de asemanare, utilizand o secventa de rotatii plane (o
adaptare a algoritmului TQ).
In acest fel, se obtine o matrice succesor ortogonal asemenea cu
matricea initiala, tridiagonala, simetrica si cu prima coloana a
matricei de transformare identica cu prima coloana a matricei de
transformare din pasul QR simetric cu deplasare explicita.
Un pas QR simetric cu deplasare implicita
Vom aduce urmatoarele precizari referitoare la schema de mai sus.
1. Daca vectorul g are toate elementele nenule, atunci
deplasarea nu este valoare proprie a lui T (demonstrati!) si,
prin urmare, matricea T In si matricea triunghiulara R
sunt nesingulare. Din egalarea primelor coloane ale primei
relatii din (14) obtinem
t11
f1
t21
g1
1
1
0
0
q1 =
r11 .. r11 ..
.
.
0
0
f1
R2 vector de deplasare
g1
implicita aferent unui pas QR simetric.
Denumim vectorul w =
Un pas QR simetric cu deplasare implicita
2. Elementele rotatie P12 pot fi furnizate de function Gr aplicata
vectorului w .
3. Se vede imediat ca
T TP )(3, 1) = (P T TP )(1, 3) = s g 6= 0 i.e. aplicare
(P12
12
12
1 2
12
transformarii ortogonale definite de P12 altereaza structura
tridiagonala a matricei T in pozitiile mentionate.
4. Pentru refacerea structurii tridiagonale - un invariant al sirului
QR simetric - se aplica algoritmul TQ. Concret, se utilizeaza o
secventa de rotatii care elimina elementele nenule din afara
structurii tridiagonale, prin deplasarea lor de-a lungul unor
trasee paralele cu diagonala principala, conform urmatoarei
scheme:
Un pas QR simetric cu deplasare implicita
1. Pentru k = 2 : n 1
1. Se calculeaza rotatia Pk,k+1 astfel incat
T
T )(k + 1, k 1) = 0
(Pk,k+1
T
T
2. T Pk,k+1
%Se anuleaza elementul (k + 1, k 1) si
se altereaza (pentru k < n 1) zeroul
din pozitia (k, k + 2)
3. T TPk,k+1
%Se anuleaza automat (dorita simetriei) elementul
(k 1, k + 1) si se altereaza (pentru k < n 1)
zeroul din pozitia (k + 2, k)
Un pas QR simetric cu deplasare implicita
Pentru exemplificare, prezentam evolutia structurala a matricei T
in cazul n = 5.
+ 0 0
0 0
T P12 T =
0 0 ,
0 0
0 0 0
0 0
0 0
T TP12 =
+ 0
0 0
0 0 0
Un pas QR simetric cu deplasare implicita
T
P23
T
T TP23
0 0
+ 0
0
0 0
0 0 0
0
0
0
0 0
0
0
+
0 0
Un pas QR simetric cu deplasare implicita
Pentru exemplificare, prezentam evolutia structurala a matricei T
in cazul n = 5.
0 0 0
0
T P34 T =
0 + ,
0
0 0 0
0 0 0
0
T TP34 =
0
0 0
0 0 +
Un pas QR simetric cu deplasare implicita
Pentru exemplificare, prezentam evolutia structurala a matricei T
in cazul n = 5.
0 0 0
0 0
T P45 T =
0 ,
0 0
0 0
0 0 0
0 0
T TP45 =
0
0 0
0 0 0
Un pas QR simetric cu deplasare implicita
Un pas QR simetric cu deplasare Wilkinson implicita este
implementat sub forma Algoritmului IT QRsim in C. Popeea
et. al. (pag. 325);
Sintaxa de apel: [f , g , c, s] = IT QRsim(f , g ).
Complexitatea unei iteratii QR simetrice cu deplasare implicita
este O(n), pentru executia algoritmului IT QRsim fiind
necesari Nop 20n flopi.
Algoritmul QR simetric pentru matrice reale simetrice
Algoritmul QR simetric se obtine prin iterarea algoritmului
IT QRsim, anularea efectiva a elementelor nediagonale
devenite neglijabile si exploatarea structurala.
Conditia de anulare a elementelor extradiagonale, este
|gk | tol (|fk | + |fk+1 |),
unde scalarul real tol defineste nivelul de toleranta.
Pentru gestionarea evolutiei structurale, se va determina cel
mai mic intreg p si cel mai mare intreg q , astfel incat
matricea tridiagonala curenta din sirul QR simetric sa aiba
structura
T11 0
0
T = 0 T22 0 ,
0
0 T33
cu T11 Rpp , T22 R(npq)(npq) tridiagonala
ireductibila si T33 Rqq diagonala, i.e.
g (p + 1 : n, n q) 6= 0, g (n q + 1 : n 1) = 0.
Algoritmul QR simetric pentru matrice reale simetrice
Algoritmul QR simetric cu deplasari Wilkinson implicite este
dat sub denumirea algoritmului QRsim in C. Popeea et. al.
(pag. 327);
Sintaxa de apel: [f , Q] = QRsim(A, Q, tol , opt).
Algoritmul QR simetric reprezinta cel mai bun instrument
numeric de calcul al intregului spectru al unei matrice
simetrice reale.
3
Complexitatea algoritmului QR simetric: Nop = 4n3 ,fara
acumularea transformarilor, si respectiv, Nop = 9n3 , cu
acumularea transformarilor.
Spre deosebire de cazul nesimetric, se poate afirma ca
eroarea absoluta pentru fiecare valoare proprie calculata
este mica, i.e. |i fi | tol kAk2 .
Metode Numerice
Curs VI
Descompunerea valorilor singulare
Ion Necoara
2014
Descompunerea valorilor singulare
Descompunerea valorilor singulare (DVS) joaca un rol fundamental
in evidentierea unor proprietati legate de rang matriceal!
Calculul DVS este bazat pe ortogonalitate proprietati numerice
remarcabile pentru toate aplicatiile ce apeleaza DVS!
O multitudine de aplicatii pot fi rezolvate cu DVS: de la tendintele
de vot ale parlamentarilor, la procesarea de imagine! DVS reduce
eficient sisteme cu date masive la probleme mai mici, prin
eliminarea informatiei redundante si retinerea datelor importante(
critice).
Istoric - DVS
Descoperirea DVS-ului este atribuita multor matematicieni:
Beltrami, Jordan, Sylvester, Schmidt si Weyl:
Beltrami: a derivat prima data DVS-ul (1873). Dar nu
acoperea cazuri degenerate.
Jordan a descoperit independent, un an mai tarziu, DVS-ul.
Demonstratia lui era mai eleganta (se baza pe deflatie) si
acoperea cazuri degenerate.
Sylvester descoperea independent de Beltrami DVS-ul (dupa
15 ani), propunand o abordare iterativa pentru reducerea unei
forme patratice la o forma diagonala.
Schmidt a derivat teorema de aproximare: utila, cand se
doreste aproximarea unei matrici cu alta matrice de rang
specificat. Aceasta teorema este atribuita incorect lui
Eckhart-Young, deoarece acestia au demonstrat-o 30 de ani
mai tarziu decat Schmidt.
Totusi,DVS-ul a fost utilizat cu success in aplicatii odata cu
algoritmul numeric a lui Golub din anii 1960!
Descompunerea valorilor singulare - formulare
Teorema: Pentru A Rmn exista matricele ortogonale
U Rmm si V Rnn si r = rang(A) a.i.:
1 0
T
U AV = =
,
0 0
unde Rmn , a.i. 1 = diag(1 , , r ) Rr r si consideram
ordonarea valorilor singulare 1 2 r > 0.
Expresia A = UV T s.n. descompunerea valorilor singulare,
iar numerele nenegative i s.n. valori singulare.
Coloanele matricei ortogonale U s.n. vectori singulari la
stanga, iar coloanele lui V s.n. vectori singulari la dreapta.
Conexiune: in cazuri patratice (A Rnn ) speciale avem
diagonalizarea: A = V diag(i )V T , cu V ortogonala!
Consecinta: Orice matrice poate fi scrisa ca suma de produse
externe de vectori singulari ponderate cu valorile singulare:
r
X
i ui viT (cu ui viT componente principale)
A=
i =1
Aplicatia I - compresia semnalelor
Video, sunet sau imagine, depind de marime si rezolutie, si deci
pot ocupa mult spatiu pentru a le stoca sau transmite. E.g.,
compresia de imagine se imparte in 2 clase: lossless si lossy.
compresia lossless: toata informatia fisierului original poate fi
recuperata dupa decompresie (formatul GIF este un exemplu),
important in documente text unde pierderea de informatie
duce la imposibilitarea citirii textului.
compresia lossy: informatia redundanta este permanent
stearsa (formatul JPEG este un exemplu), important in
fisiere,unde o pierdere de informatie mica este imposibil de
detectat de om.
Exista multe posibilitati de compresie a semnalelor, dar avantajul
oferit de DVS consta in flexibilitatea sa, deoarece poate actiona pe
orice matrice de dimensiune m n.
Aplicatia I - compresia imaginilor
Fie imaginea originala 359371 pixeli (Melancolia de Durer, 1514):
pe care o putem scrie ca o matrice A de dimensiune 359 371
(fiecare intrare (i , j) reprezinta intensitatea de gri a pixelului (i , j)
cu valori intre 0 (negru) si 255 (alb)), care poate fi descompusa via
DVS ca:
A = UV T ,
unde U este 359 359, este 359 371 si V este 371 371.
Aplicatia I - compresia imaginilor
Imaginea originala are 359371 = 133.189 pixeli. Dar matricea A
poate fi scrisa ca suma de componente principale:
A = 1 u1 v1T + 2 u2 v2T + + n un vnT ,
unde fiecare matrice ui viT (componenta principala) de rang 1 este
de marimea matricei originale A. Dar pentru ca valorile singulare
i sunt ordonate 1 2 n 0, este posibila o
compresie semnificativa a imaginii,atat timp cat spectrul valorilor
singulare are doar cateva intrari mari si restul sunt mici!
Spectrul lui A contine doar 100 200 componente principale max.!
Aplicatia I - compresia imaginilor
Putem deci reconstrui,fidel,imaginea, folosind doar o submultime
de componente principale. De exemplu, putem recupera o imagine
asemenatoare cu doar 20 de componente principale folosind
comenzile din Matlab:
[U, S, V ] = svd(A) si B = U(:, 1 : 20) S(1 : 20, 1 : 20) V (:, 1 : 20)
Imaginea B foloseste doar 10% din memoria imaginii A:
20 359 + 20 371 + 20 = 14.620 vs. 359 371 = 133.189 pixeli
Aplicatia I - compresia imaginilor
Putem recupera o imagine fidela cu doar 200 de componente
principale, in loc de 359, cat are imaginea originala (i.e. 50%
informatie din imaginea originala):
[U, S, V ] = svd(A) si B = U(:, 1 : 200) S(1 : 200, 1 : 200) V (:, 1 : 200)
Aplicatia I - compresie tigru
Consideram o imagine originala 500 800 pixeli de rang 500.
dispunerea valorilor singulare - prima figura (scala log).
putem observa (figura din dreapta) cata informatie este
detinuta in primele p valori singulare, facand raportul:
Pp
i =1 i
informatie % = P500
.
i =1 i
In primele 50 valori singulare avem deja 70% din informatia aflata
in imagine!
Aplicatia I - compresie tigru
Desi imaginea originala are 500 800 pixeli, putem recupera o
imagine fidela cu doar 50 de componente principale (10%)
Aplicatia I - codul Matlab pt. compresie tigru
% citeste imaginea si transform-o in negru si alb:
tiger = rgb2gray(imread([Link]));
% resample imaginea:
tiger = im2double(imresize(tiger, 0.5));
% calculeaza DVS-ul imaginii:
[U, S, V ] = svd(tiger);
% reprezinta valorile singulare (scala log) si informatie %:
sigmas = diag(S); plot(log(sigmas));
plot(cumsum(sigmas)/sum(sigmas));
% arata imaginea originala:
imshow(tiger);
% calculeaza aproximarile de rang mai mic:
ranks = [200, 100, 50, 30, 20, 10, 3]; ns = length(sigmas);
for i = 1:length(ranks)
approxsigmas = sigmas; approxsigmas (ranks(i ) : end ) = 0;
approxS = S; approxS (1 : ns, 1 : ns) = diag (approxsigmas );
% calculeaza matricele de rang mai mic si ploteaza:
approxtiger = U approxS V ; imshow(approxtiger )
Aplicatia I - compresie Lena
Desi imaginea originala (faimoasa si frumoasa Lena :)) are
600 600 pixeli, putem recupera o imagine fidela cu doar 30 de
componente principale (20% din datele imaginii originale):
Aplicatia II: matrix completion
se da o matrice X cu elemente lipsa (e.g. o imagine)
se presupune ca matricea X este de rang scazut
scopul este sa se gaseasca elementele lipsa din X
pentru a impune rang mic asupra unei matrici se foloseste
nuclear
DVS
P norm k k : daca A are descompunerea
P
A = ri=1 i ui viT , atunci kAk = ri=1 i
problema se pune astfel:
min rang(X )
X Rmn
z}|{
=
relaxare convexa
min kX k
X Rmn
s.l.: Xij = Aij i , j S
s.l.: Xij = Aij i , j S
unde se dau valorile Aij cu (i , j) S o submultime a
elementelor matricei cautate
relaxarea convexa se poate scrie ca un SDP:
min
X ,W1 ,W2
tr(W1 ) + tr(W2 )
s.l.: Xij = Aij i , j S,
W1
XT
X
0
W2
Aplicatia II: matrix completion cu aplicare in recuperarea
de imagine
imaginea data (40% elemente lipsa) si imaginea recuperata
Aplicatia III - votul parlamentarilor
DVS poate fi folosit ca instrument de data-mining cu privire la
felul cum voteaza reprezentantii in Congress pe anumite legi (vezi
The Extraordinary SVD, Martin & Porter):
definim o matrice a votului, A, in care fiecare linie reprezinta
un congressman, si fiecare coloana o lege votata de Congress.
o intrare in aceasta matrice Aij ia valoarea +1 daca
congressman-ul i a votat legea j, si 1 daca nu a votat-o.
T si o aproximare a sa de ordin
consideram DVS-ul:
Pk A = UV
T
k data de: Ak = i =1 i ui vi .
gruparea care are cea mai mare suprapunere, in termeni de
varianta, cu grupurile care sustin sau nu fiecare lege este dat
de primul vector singular la stanga (u1 ), urmatoarea cea mai
mare data de u2 , etc.
Modul de votare a unui congressman poate fi caracterizat de doua
coordonate, deci A2 este o buna aproximare a lui A. A2 da doua
cordonate: partisan coordinate si bipartisan coordinate.
Aplicatia III - votul parlamentarilor
Al 107-lea Senat (2001-2002): partisan coordinate reprezinta
afilierea de partid si bipartisan coordinate reprezinta cat de des un
congressman voteaza cu majoritatea:
Aproape toti parlamentarii asociati unui partid sunt impreuna si
complet separati de celalalt partid (cu exceptia catorva moderati).
Aplicatia IV - simplificare model
Simplificare model:
fie modelul y = Ax + , unde:
A R10030 are valorile singulare i :
10, 7, 2, 0.5, 0.01, , 0.0001
presupunem kxk 1 si zgomotul are norma mai mica decat
0.1
atunci termenii i ui viT x sunt mai mici decat pentru i 5
modelul simplificat:
y=
4
X
i =1
i ui viT
x +
i.e. descris de o matrice de rang 4, nu rang 30!
Aplicatia V - radicalul unei matrice
Fie A o matrice simetrica, pozitiv semidefinita (i.e. x T Ax 0 x).
Atunci definim radicalul acestei matrici, A1/2 , ca matricea
simetrica ce satisface:
A1/2 A1/2 = A.
Putem calcula A1/2 folosind DVS-ul lui A:
cum A este pozitiv semidefinita, avem DVS-ul: A = V V T ,
i.e. U = V , cu = diag(1 , , n ) si i 0 i .
definim radicalul A1/2 , matricea simetrica:
A1/2 = V 1/2 V T ,
1/2
1/2
unde 1/2 = diag(1 , , n ).
este clar ca A1/2 = V 1/2 V T este simetrica si pozitiv
semidefinita (si deci este generalizarea radicalului unui numar
real ne-negativ)!
Aplicatia VI - sampling din distributie normala
Distributia normala de medie Rn si covarianta K 0 (i.e.
N (, K )) are functia de probabilitate definita astfel:
x N (, K ) =
1
1
T 1
e 2 (x) K (x) .
n/2
(2det(K ))
Cum facem sampling din N (, K ) in Matlab?
generam un vector u Rn , cu uj i.i.d. N (0, 1).
calculam radicalul matricei K , i.e. K 1/2 si definim apoi
vectorul d = K 1/2 u.
atunci x = + d, este un sampling din N (, K ).
Dem. Observam ca E [d] = 0 si apoi covarianta lui d este:
E [dd T ] = E [K 1/2 uu T K 1/2 ] = K 1/2 E [uu T ]K 1/2 = K 1/2 In K 1/2 = K .
Descompunerea valorilor singulare (DVS) si rang
Def.: Rangul r al matricei A Rmn este numarul maxim de
coloane liniar independente din A, sau echivalent:
r = rangA = dim(ImA).
rangAT ,
Cum rangA =
numarul de coloane sau linii liniar
independente intr-o matrice este acelasi. Deci rangul lui A este
dimensiunea maxima a unei submatrice inversabile A(I , J) a lui A.
Teorema: Daca A Rmn , atunci exista matricele ortogonale
U Rmm si V Rnn a.i.
A = UV T ,
unde Rmn este o matrice diagonala
= diag(1 , , min(m,n) )
cu 1 2 min(m,n) 0 valorile singulare. Coloanele lui
U si V s.n. vectori singulari la stanga si respectiv dreapta.
Observatie: avem r > 0 si i = 0 i = r + 1, , min(m, n).
DVS
Demonstratie: Reamintim definitia normei spectrale (norma 2):
kAk2 = max kAxk2 .
kxk2 =1
Pasul 1 : Deci exista v1 , cu kv1 k2 = 1, a.i. kAk2 = kAv1 k2 .
Av1
Definim si vectorul u1 = kAv
, deci ku1 k2 = 1. Construim
1 k2
matricele ortogonale:
U1 = [u1 U1 ] si
V1 = [v1 V1 ].
Obtinem:
1 =
U1T AV1
u1T Av1 u1T AV1
1 w T
=
=
0 B1
U1 Av1 U1 AV1
unde am utilizat 1 = u1T Av1 = kAk2 , w T = u1T AV1 si
U1T Av1 = U1T u1 kAv1 k2 = 0, deoarece U1 matrice ortogonala si
deci avem u1 U1 . Vom aratam si ca w = 0.
DVS
Demonstratie cont.: Aratam si ca w = 0. Mai intai, reamintim
ca transformarile ortogonale conserva norma 2 pentru vectori si
matrici si deci 1 = kAk2 = k1 k2 . Apoi:
k1
2
1 2
+ wTw 2
k2 = k 1
k2 = (12 +w T w )2 +kB1 w k22 (12 +w T w )2 .
w
B1 w
Pe de alta parte, datorita consecintei normei spectrale, avem:
1 2
2
k1
k k1 k k 1 k22 12 (12 + w T w ).
w 2
w
Combinand ultimele doua relatii, obtinem:
12 + w T w 12
Deci
1 = U1T AV1 =
w = 0.
1 0
.
0 B1
DVS
Demonstratie cont.: la Pasul k presupunem ca am obtinut
k1
1
0
T
k1 = Uk1
U1T AV1 Vk1 =
,
0
Bk1
unde 1k1 = diag(1 , , k1 ) cu ordinea 1 k1 > 0.
Daca Bk1 = 0 atunci r = k 1 si am terminat. Daca Bk1 6= 0
atunci utilizand aceleasi argumente de la Pasul 1 avem ca exista
matricile ortogonale Uk si Vk a.i.
0
k
Uk Bk1 Vk =
si k = kBk1 k2 > 0.
0 Bk
Extindem la matricile ortogonale Uk = diag(Ik1 , Uk ) si
Vk = diag(Ik1 , Vk ) a.i.
k
1 0
k = UkT k1 Vk =
,
0 Bk
unde k1 = diag(1 , , k ). Mai trebuie sa aratam ca k k1 .
DVS
Demonstratie cont.: Mai trebuie sa aratam ca k k1 .
Aceasta este adevarat, deoarece:
k1
0
k1 = kBk2 k2 = k
k kBk1 k2 = k .
0
Bk1 2
qed.
1.6 0.36 0.48
are valorile singulare
1.2 0.48 0.64
1 = 2 si 2 = 1. Observam de asemenea ca:
Exemplu: matricea A =
1.6 0.36 0.48
0.8 0.6
=
1.2 0.48 0.64
0.6 0.8
1 0
0
2 0 0
0 0.6 0.8 .
0 1 0
0 0.8 0.6
Matricea AT are aceleasi valori singulare.
DVS - interpretare geometrica
Imaginea discului unitate prin transformarea liniara
{Ax : kxk 1} este elipsoidul cu axele principale i ui :
rotatie (prin V T )
alungire dea lungul axelor
(prin i )
rotatie (prin U)
Corolar: orice matrice A Rmn poate fi scrisa ca suma de
matrici de rang 1 ponderate cu valorile singulare:
A = UV
r
X
i (ui viT ).
i =1
Matricele ui viT de rang 1 s.n. componente principale.
DVS
Din DVS avem: AV = U si AT U = V T si deci
Avj = j uj
si
A T uj = j vj .
Deci coloanele vj (uj ) s.n. vectori singulari la dreapta (stanga).
O modalitate de calcul al DVS este data de urmatoarea teorema:
Teorema: Valorile singulare nenule i sunt radacinile patrate ale
valorilor proprii nenule ale matricelor pozitiv semidefinite AT A sau
AAT , i.e.
i =
i = 1 : r .
Mai mult, vectorii singulari la stanga ui sunt vectorii proprii ai
matricei AAT , iar vectorii singulari la dreapta vi sunt vectorii
proprii ai matricei AT A.
Dem.: AT A = V T U T UV T = V T V T = V diag(i )V T .
Rezultat neutilizabil, deoarece necesita construirea lui AT A!
Utilizari ale DVS - 1
Rangul matriceal: rangul unei matrice este egal cu numarul de
valori singulare nenule.
p-normele Schatten: pentru matricea A Rmn definim
kAkp =
r
X
i =1
ip
!1/p
Normele Schatten sunt invariante la tranformari ortogonale.
Cazuri particulare de norme Schatten:
norma nucleara: kAk1 = 1 + + r = kAk
q
norma Frobenius: kAk2 = 12 + + r2 = kAkF
norma spectrala: kAk = 1 = kAk2
Utilizari ale DVS - 2
Pseudoinversa: Pentru matricea A Rmn , matricea X Rnm
s.n. pseudoinversa lui A daca satisface urmatoarele:
(i ) : AXA = A; (ii ) : XAX = X ; (iii ) : (AX )T = AX ; (iv ) : (XA)T = XA.
Pseudoinversa lui A, cu DVS-ul UV T , este data de:
A+ = V + U T ,
unde + = diag(11 , , r1 , 0).
Pseudoinversa este unica solutie, de norma Frobenius minima, a
problemei de optimizare:
A+ = arg min kAX Im kF .
X Rnm
Drept consecinta DVS-ul pentru A+ este:
A+ =
r
X
i =1
i1 vi uiT .
Utilizari ale DVS - 3
Subspatii liniare: pentru A Rmn , cu DVS-ul UV T , avem:
ImA = ImU(:, 1 : r ) si KerAT = ImU(:, r + 1 : m)
ImAT = ImV (:, 1 : r )
si KerA = ImV (:, r + 1 : n)
Demonstratie: avem A = U(:, 1 : r )(1 : r , 1 : r )V (:, 1 : r )T si e.g.
(1 : r , 1 : r )V (:, 1 : r ) este epica. Deci ImA = ImU(:, 1 : r ).
Proiectia ortogonala: fie S Rn un subspatiu liniar si S
complementul sau ortogonal. O matrice P Rnn care satisface:
(i ) : Px S; (ii ) : x Px S
x Rn
s.n. matrice de proiectie ortogonala pe S. Daca coloanele lui
V = [v1 vk ] formeaza o baza ortogonala a lui S, atunci
P = VV T P T = P, P 2 = P, ImP = S.
Exemplu: P1 = U(:, 1 : r )U(:, 1 : r )T = AA+ proiector ortogonal
pe ImA, iar P2 = U(:, r + 1 : m)U(:, r + 1 : m)T = Im AA+
proiector ortogonal pe KerAT .
Algoritmul DVS
Reamintim ca valorile singulare nenule ale unei matrici A Rmn
sunt radacinile patrate ale valorilor proprii nenule corespunzatoare
unei matrici pozitiv semidefinite AT A sau AAT :
p
i = 1 : r
i = i
Totusi, calculul explicit al matricelor AAT sau ATA poate conduce
1
1
la probleme numerice: e.g. pentru matricea A = 0.001
0
0
0.001
avem valorile singulare (A)
= { 2.000001, 0.001}. Pe de alta
1.000001
1
parte, avem ca AT A =
. In virgula mobila
1
1.000001
cu mantisa cu mai putinde 7 cifre zecimale, matricea AT A este
1 1
reprezentata ca AT A =
, avand spectrul (A) = {2, 0}, si
1 1
deci mult diferit de (A) = { 2.000001, 0.001}.
Algoritmul DVS
O metoda mai performanta pentru calculul DVS a fost propusa de
Golub in 1965. Acest algoritm evita formarea explicita a lui AT A.
Algoritmul construieste un sir de matrici ortogonal echivalente
cu A (i.e. TAW , cu T si W ortogonale), convergent catre o
matrice diagonala.
Ideea de baza consta in constructia sirului Ak a.i. Bk = AT Ak
k
formeaza sirul QR simetric corespunzator matricei B = AT A.
Deci algoritmul este o varianta mascata a algoritmului QR
simetric. El are doua etape:
1. in prima reducem matricea A prin transformari ortogonale de
echivalenta la o forma superior bidiagonala J a.i. matricea
T = J T J coincide cu cea produsa de prima etapa a
algoritmului QR simetric aplicat lui B.
2. a doua consta in reducerea iterativa a matricei J la forma
diagonala, prin anularea asimptotica a elementelor
supradiagonale, folosind transformari ortogonale ce corespund
pasilor alg. QR simetric cu deplasare implicita, aplicati lui B.
Algoritmul DVS - reducerea la forma bidiagonala
Teorema: Fie matricea A Rmn . Exista matricele ortogonale
U Rmm si V Rnn a.i. matricea
J = U T AV
este superior bidiagonala.
Demonstratie: Presupunem m n.
Pasul 1 - exista reflectorul U1 a.i. U1T A(2 : m, 1) = 0. Exista
reflectorul V2 (de ordin n si indice 2) a.i. (U1T A)V2 (1, 3 : n) = 0.
Deoarece V2 = diag(1, V2 ), postmultiplicarea cu V2 a lui U1T A nu
altereaza zerourile create in prima coloana. Deci matricea
A1 = U1T AV2 este superior bidiagonala in prima coloana si linie.
Pasul k - presupunem ca dupa k 1 pasi matricea
T U T AV V este superior bidiagonala in primele
Ak1 = Uk1
2
k
1
k 1 coloane si linii. Construim reflectorul Uk = diag(Ik1 , Uk )
a.i. UkT A(k + 1 : m, k) = 0. De asemenea, exista reflectorul
Vk+1 = diag(Ik , Vk+1 ) a.i. (UkT Ak1 )Vk+1 (k, k + 2 : n) = 0. Deci
matricea Ak = UkT Ak1 Vk+1 este superior bidiagonala in primele k
coloane si primele k linii. Deci J = Ap = UpT U1T AV2 Vn1 .
Algoritmul DVS - reducerea la forma bidiagonala
Matricea superior bidiagonala J se poate memora prin vectorii
f Rn si g Rn1 :
f1 g1
f2 g2
.. ..
T
J = U AV =
. .
..
. gn1
fn
Apelam [f , g , U, V ] = JQr(A) (vezi algoritmul JQc din carte,
in care inlocuim c (complex) cu r (real)).
Complexitatea algoritmului este 4mn2 43 n3 .
Algoritmul DVS - etapa iterativa
In faza iterativa se construieste un sir de matrici superior
bidiagonale
J = J1 , J2 , , Jk ,
convergent catre = diag(1 , , min(m,n) ) a.i. sirul matriceal
T1 = J1T J1 , T2 = J2T J2 , , Tk = JkT Jk ,
este sirul QR simetric cu deplasare implicita convergent catre
forma Schur T a matricei tridiagonale simetrice T = T1 .
Un pas QR simetric cu deplasare implicita presupune transformarile
prezentate mai jos. Prezentam efectele acestor transformari la
nivelul vectorilor f si g , care definesc matricea superior bidiagonala
J, evidentiind astfel ideile unui pas DVS Golub.
Algoritmul DVS - un pas DVS in faza iterativa
2
1. Calculul deplasarii: = tnn = gn1
+ fn2 . Folosim deplasarea
Wilkinson data de valoarea proprie cea mai apropiata de
tnn = (J T J)nn a urmatoarei matrice:
2
2
gn2 + fn1
fn1 gn1
T (n 1 : n, n 1 : n) =
=
.
2
fn1 gn1
gn1
+ fn2
Daca folosim notatiile:
=
2
2 g2
2
gn2
+ fn1
n1 fn
,
2
2
2
= fn1
gn1
,
atunci deplasarea Wilkinson are urmatoarea expresie:
2
= gn1
+ fn2 +
p
.
+ sgn() 2 +
Algoritmul DVS - un pas DVS in faza iterativa
2. Calculul matricei ortogonale U1 a.i. prima sa coloana
coincide cu prima coloana a matricei de transformare T = J T J,
care defineste un pas QR simetric cu deplasare explicita:
t11
f1
t21
f1 g1
U1 e1 =
= 0 ,
..
..
.
.
0
0
unde factor de normare. Introducand vectorul de deplasare
implicita aferent unui pas DVS:
2
t11
f1
=
,
w=
t21
f1 g1
matricea U1 poate fi o rotatie P12 = diag(P12 , Im2 ) a.i.
P12 w =
.
0
Algoritmul DVS - un pas DVS in faza iterativa
T TP , care altera structura
3. Calculul matricei T P12
12
tridiagonala a lui T in pozitiile (3, 1) si (1, 3), se transfera in
calculul matricei
K = JP12
care evidentiaza o alterare a matricei superior bidiagonale in
pozitia (2, 1).
Algoritmul DVS - un pas DVS in faza iterativa
4. Aplicarea algoritmului TQ de reducere la forma tridiagonala a
T TP
matricei P12
12 se transfera in cadrul unui pas DVS in aplicarea
unui algorithm (JQ) pentru refacerea structurii superior
bidiagonale a matricei J prin transformari ortogonale bilaterale:
T
J J = Un1
U1T KV2 Vn1 ,
unde Uk , Vk pot fi rotatii sau reflectori.
Algoritmul JQ adaptat:
1. Pentru k = 1 : n 1
1. calculam rotatia Uk = Pk,k+1 a.i. (UkT K )(k + 1 : k) = 0
2. K UkT K % anuleaza (k +1, k) si altera zeroul din (k, k +2)
3. Daca k < n 1
1. Calculam rotatia Vk+1 = Pk+1,k+2 a.i. (KVk+1 )(k, k + 2) = 0
2. K KVk+1 % anuleaza (k, k +2) si altera zeroul din (k +2, k +1)
Algoritmul DVS - un pas DVS in faza iterativa
4. Continuare: exemplificare pe cazul J R53 si K = JP12
Prin aplicarea algoritmului JQ, matricea K = J este bidiagonala si
matricea T = (J )T J este aceeasi cu cea corespunzatoare pasului
QR simetric implicit pentru matricea tridiagonala simetrica T .
Concluzie: Jk = J care defineste sirul DVS este calculata a.i.
matricea Tk = JkT Jk defineste sirul QR pentru matricea AT A si
deci converge la forma diagonala!
Algoritmul DVS
O iteratie DVS este implementata in alg. IT-DVSr din carte:
[f , g , U, V ] = IT-DVSr(f , g , U, V ).
Complexitatea unui pas DVS este .....
Pt. anularea elementelor supradiagonale se utilizeaza criteriul:
|gi | < tol(|fi | + |fi +1 |
gi = 0.
La fiecare iteratie DVS, dupa deciziile de anulare a
elementelor supradiagonale, se determina parametrii p si q a.i.
matricea J curenta sa poate fi scrisa ca:
J11 0
0
0 J22 0
J=
0
0 J33
0
0
0
pp
unde J11 R
, J22 este ireductibila (i.e. are toate
elementele supradiagonale nenule, si cele diagonale, mai putin
eventual ultimul, de asemenea, nenule), iar J33 Rqq este
diagonala. Iteratia DVS curenta se aplica numai lui J22 !
Algoritmul DVS
Procesul se termina cand componentele vectorului g au fost
anulate, i.e. cand q = n 1.
Dupa incheierea procesului de diagonalizare se utilizeaza o
serie de permutari pentru a realiza ordonarea elementelor
diagonale (valorilor singulare).
Algorithmul DVS in integralitatea lui se gaseste in carte sub
denumirea Algoritmul DVSr:
[U, , V ] = DVSr (A).
Complexitatea estimata a algoritmului DVS este:
4m2 n + 8mn2 + 8n3 .
Conditionarea valorilor singulare
Teorema 1: max = maxkxk=1 kAxk si min = minkxk=1 kAxk.
Teorema 2: generalizare a teoremei Courant-Fisher
k = max
dim=k
kAxk
kAxk
= min
max
.
dim=nk x kxk
x kxk
min
Teorema 3: fie Ak = A(:, 1 : k) atunci valorile singulare ale lui Ak
separa pe cele ale lui Ak+1 , i.e.:
1 (Ak+1 ) 1 (Ak ) 2 (Ak+1 ) k (Ak+1 ) k (Ak ) k+1 (Ak+1 ).
Teorema 4: k (A) 1 (E ) k (A + E ) k (A) + 1 E
P
2
2
Teorema 5:
j (j (A + E ) j (E )) kE kF .
Concluzie: din teorema 4 rezulta ca valorile singulare sunt
bine-conditionate, i.e. daca E este matrice de perturbatii in datele
initiale ale lui A, atunci din |k (A + E ) k (A)| 1 (E ) = kE k,
concluzionam ca erorile absolute in valorile singulare nu depasesc
norma spectrala a matricei de perturbare.
Stabilitatea numerica a alg. DVS
,
V )
Algoritmul DVS este unul numeric stabil: i.e. tripletul (U,
efectiv calculat de DVS pentru matricea A este o DVS exacta
pentru o matrice apropiata de matricea A data. Mai exact, exista
matricele ortogonale U si V a.i.:
Uk,
kV V k pol (m, n)M
kU
si
V Ak pol (m, n)kAkM ,
kU
unde pol (m, n) este un polinom de grad modest, e.g. grad 1 sau 2,
iar M este precizia masinii.
Valorile singulare efectiv calculate satisfac de asemenea:
k
i i k pol (m, n)kAkM ,
Cea mai mare acumulare a erorilor are loc in faza de reducere la
forma bidiagonala, faza iterativa a algoritmului DVS are o
contributie modesta.
Aplicatiile DVS - rangul numeric
Fie A = UV T si o toleranta fixata, atunci
r = rang(A, ) =
min
rang(X ),
X : kAX k
i.e. este cel mai mic dintre rangurile tuturor matricelor aflate la o
distanta de matricea AP
mai mica decat toleranta admisa.
Teorema: daca Ak = kj=1 j uj vjT atunci
k+1 = kA Ak k =
min
X : rang(X )=k
kA X k.
Dem: fie rang(X ) = k, deci dim Null(X ) n k. Apoi:
dim Span {v1 , , vk+1 } = k + 1. Cele 2 spatii se intersecteaza:
z : kzk = 1, Xz = 0, z Span{v1 , , vk+1 }
k+1
X
i ui viT z
(z vk+2 ...)
(A X )z = Az =
Deci kA
i =1
k+1
X
2
i2 (viT z)2 k+1
kzk2
k(A X )zk2 =
i =1
)zk
k(AX )xk
k(AX
k+1
X k = max
kxk
kzk
kxk1
= kA Ak k
Aplicatiile DVS - rangul numeric
Prin urmare, k+1 este cea mai mica distanta dintre matricea
A si toate matricele m n de rang k. In particular, cea mai
mica distanta dintre o matrice A Rnn nesingulara si toate
matricele singulare este data de valoarea singulara minima n
a lui A.
Daca rangul numeric este r = rang(A, ), atunci
1 2 r > r+1 min(m,n) .
Teorema: daca Ak =
Pk
T
j=1 j uj vj
atunci
k+1 = kA Ak k =
min
kA X k
X : rang(X )=k
v
u X
u r
t
j2 = kA Ak kF =
min
kA X kF
j=k+1
X : rang(X )=k
Aplicatiile DVS - problema generala CMMP
Fie A o matrice ce nu are rang maximal, i.e.
r = rang(A) < min(m, n), si sistemul liniar asociat:
Ax = b.
Formulam problema generala a celor mai mici patrate:
kx k =
min
kxk
x: min kAxbk
Teorema: Daca A =
UV T
atunci solutia CMMP este data de
r
X
ujT b
x = A+ b =
vj .
j
j=1
Dem: fie d = U T b = [d d]T si y = V T x = [y y ]T . Avem:
q
kbAxk = kbUV T xk = kd y k = kd 1 y k2 + kdk2 ,
unde 1 = diag(1 , , r ). Evident, minimul este atins pentru
y = 1
1 d si y arbitrar. Deci vectorul de norma minima este
atins pentru y = 0 si observam ca kxk = ky k. Obtinem:
1
1
1
0
1 d
=V
x =V
d = V + U T b = A+ b.
0
0
0
Aplicatiile DVS - alte probleme CMMP
Observam ca problema CMMP clasica se poate reformula astfel:
reziduul r este o perturbatie in sistemul Ax = b + r . Deci
problema CMMP consta in minimizarea reziduului:
min
r : b+r ImA
kr k.
1. Problema CMMP totala: se considera perturbatii atat in A
cat si in b, si dorim minimizarea reziduului cumulat [E r ] in
sistemul liniar (A + E )x = b + r
min
E ,r : b+r Im(A+E )
k[E r ]k
2. Problema CMMP cu restrictii:
minxS kAx bk,
unde S = {x : Cx = d} (restrictii de tip egalitate) sau
S = {x : kCx dk } (restrictii de tip elipsoid).
Se poate utiliza DVS pentru calcularea numerica a unei solutii in
aceste doua probleme CMMP (vezi de asemenea cursul de TO!).
Comenzi Matlab ce utilizeaza DVS
DVS se obtine din [U, S, V ] = svd(A)
rank pentru calculul rangului
pinv pentru calculul pseudoinversei
norm pentru calculul normei spectrale: kAk2 = 1
cond pentru calcularea numarului de conditionare:
2 (A) = 1 /n
Bafta la examen!
ORICE STUDENT INTERESAT in ASTFEL de SUBIECTE si
APLICATII sa MA CONTACTEZE PENTRU o COLABORARE
VIITOARE!