Documente Academic
Documente Profesional
Documente Cultură
CalculNumericMatriceal PDF
CalculNumericMatriceal PDF
NUMERIC MATRICEAL.
ALGORITMI
FUNDAMENTALI
Bogdan Dumitrescu Corneliu Popeea Boris Jora
Partea I
Tuturor studentilor, fosti, actuali sau viitori,
precum si copiilor nostri
Cuvant introductiv
Autorii
iv
Bibliografie generala
Pentru chestiuni teoretice de calcul matriceal:
[ XV ] Anderson E., Bai Z., Bischof C., Demmel J., Dongarra J.,
Du Croz J., Greenbaum A., Hammarling S., McKenney A.,
Ostrouchov S., Sorensen D. LAPACK Users Guide, Second Edition,
SIAM, Philadelphia PA, 1995. (http://www.netlib.org/lapack/lug)
Lista de notatii
N multimea numerelor naturale
Z multimea numerelor ntregi
R multimea numerelor reale
C multimea numerelor complexe
Vectori
ni : p : nf vectorul cu elementele ntregi ni , ni + p, ni + 2p, . . . , nf ; daca p = 1,
vectorul se scrie simplu ni : nf
Rn spatiul liniar n-dimensional al vectorilor (coloana) x cu n componente reale
xi R, i = 1 : n
Cn spatiul liniar n-dimensional al vectorilor (coloana) x cu n componente com-
plexe xi C, i = 1 : n
ek , k = 1 : n baza standard a spatiului liniar Rn , respectiv Cn
xi , x(i) elementul vectorului x aflat n pozitia i
x(i1 : i2 ) vectorul format din elementele din pozitiile de la i1 la i2 ale vectorului x
P
(x, y) = y T x = ni=1 xi yi produsul scalar standard a P doi vectori x, y Rn ; n
H n
cazul complex produsul scalar este (x, y) = y x = i=1 xi yi
Pn 2
kxk = (x, x)1/2 = ( i=1 |xi | )1/2 norma euclidiana a vectorului x Rn
vi
P 1/p
kxkp = ( ni=1 |xi |p ) p-normele vectorului n-dimensional x, p 1; n calcule se
utilizeaza n special kxk1 ,kxk2 = kxk si kxk = maxi=1:n |xi |
Matrice
Rmn spatiul liniar al matricelor cu m linii si n coloane cu elemente reale aij R,
i = 1 : m, j = 1 : n
(A, B) = tr(B T A) (tr(B H A)) produsul scalar a doua matrice reale (complexe)
Transformari
SAT transformare de echivalenta (bilaterala) a matricei A Rmn (S si T sunt
matrice patrate nesingulare; transformarea de echivalenta conserva rangul, iar
daca S, T sunt ortogonale, atunci conserva si valorile singulare)
Prescurtari
i.e. (id est) adica
LU factorizarea LU
PE matrice de permutare elementara
QR factorizarea QR
Alfabetul grec
0 Concepte fundamentale 1
0.1 Reprezentarea n virgula mobila . . . . . . . . . . . . . . . . . . . . . 2
0.2 Aritmetica n virgula mobila . . . . . . . . . . . . . . . . . . . . . . . 7
0.3 Conditionarea problemelor de calcul . . . . . . . . . . . . . . . . . . 10
0.4 Stabilitatea numerica a algoritmilor . . . . . . . . . . . . . . . . . . 12
0.5 Calitatile unui algoritm numeric . . . . . . . . . . . . . . . . . . . . 15
0.6 Implicatiile arhitecturii calculatoarelor . . . . . . . . . . . . . . . . . 16
0.7 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1 Algoritmi elementari 19
1.1 Vectori. Spatiul vectorial Rn . . . . . . . . . . . . . . . . . . . . . . 19
1.2 Produs scalar. Norme. Ortogonalitate . . . . . . . . . . . . . . . . . 24
1.3 Matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4 Inmultirea matricelor . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.5 Norme matriceale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.6 Matrice structurate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.7 Matrice bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.8 Matrice normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.9 Sisteme de ecuatii liniare . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.10 Valori si vectori proprii . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.11 Rutinele BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1.12 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
= |x x|.
N, 2, baza de numeratie;
Se stie ca orice numar x R poate fi scris unic sub forma unei secvente infinite
Convenim sa eliminam din scriere secventa infinita de zerouri finale, atunci cand
este cazul. Sa exemplificam relatiile (0.1) si (0.2).
Exemplul 0.2 Numarul n baza 10
11.01 = 1 21 + 1 20 + 0 21 + 1 22 .
0.99999 . . .
1.00000 . . .
0.11111 . . .
1.00000 . . .
Un bun compromis n satisfacerea acestor cerinte este dat de asa numitul Format
Virgula Mobila (FVM).
Definitia 0.1 Un Format Virgula Mobila (FVM) este definit de trei ntregi (, t, p),
cu urmatoarea semnificatie:
baza de numeratie ( 2);
t precizia, adica numarul de cifre semnificative (lungimea mantisei);
p numarul de cifre ale exponentului.
Un numar n virgula mobila este o pereche (f, e), unde
f = 0.f1 f2 . . . ft , f1 6= 0, fi C
este un numar fractionar cu semn (plus sau minus), normalizat (i.e. f1 6= 0), cu
t cifre, denumit mantisa, iar
e = e1 e2 . . . ep
este un ntreg cu semn, cu p cifre, numit exponent. Valoarea reala asociata numaru-
lui n virgula mobila (f, e) este
x = f e.
L1 = m |x| M = U (1 t )
Exemplul 0.4 Un FVM pe 32 biti poate fi urmatorul: (, t, p) = (2, 24, 7). Doi
biti sunt atribuiti reprezentarii semnelor mantisei si exponentului; deoarece primul
0.1. REPREZENTAREA IN VIRGULA MOBILA 5
-1.5 -1 -0.5 0.5 1 1.5
0 -
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12
0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1
6 -
exponent (7 biti)
6 mantisa (23+1 biti) -
Fig. 0.2: Structura unui numar n virgula mobila, pentru (, t, p) = (2, 24, 7)
0.110011001100110011001100
x = f l(x)
|x f l(x)|
|x|
x = f e = 0.f1 f2 . . . ft ft+1 . . . e =
= 0.f1 f2 . . . ft e 0.ft+1 ft+2 . . . et =
= f e + g et ,
f l1 : [M, M ] F
|x f l1 (x)| |f e f e | |g| et t
= = e
= e
< 1 = t+1 .
|x| |f | |f |
Exemplul 0.7 Daca polinomul de gradul II are radacini reale, acestea se calculeaza
de obicei utilizand formulele
b b2 4ac b + b2 4ac (0.8)
x1 = , x2 = .
2a 2a
Luand b = 10.1, a = 0.0123, c = 32.4, valoarea exacta rotunjita la 3 cifre
semnificative a lui x2 este 3.22. Efectuand calculele n formatul ales, obtinem
= b b 4 a c = 100 (n loc de 100.41, dar eroarea relativa e nca de ordinul
0.2. ARITMETICA IN VIRGULA MOBILA 9
103 ); dar b SQRT () = 0.1, n timp ce b + b2 4ac = 0.0792, eroarea
relativa fiind acum 0.26. Valoarea calculata a radacinii x2 este 4.06, n timp ce
valoarea exacta este 3.22; din nou toate cifrele semnificative ale rezultatului sunt
eronate.
Se observa ca, n ambele exemple, erorile mari apar dupa scaderea a doua numere
de valori apropiate. Se produce o anulare catastrofala, adica o pierdere completa a
cifrelor semnificative ale rezultatului. In primul caz anularea trebuie pusa integral
pe seama operatiei matematice de scadere; problema calculului b2 4ac este cauza
erorilor, si nu algoritmul de calcul. In schimb, n al doilea caz, algoritmul de calcul
al radacinilor este de vina, deoarece nu evita scaderea a doua numere apropiate,
desi aceasta este posibil, dupa cum vom vedea putin mai tarziu. Sa studiem ntai
mai amanuntit ce se ntampla la scaderea a doua numere apropiate.
Exemplul 0.8 Consideram doua numere reale, x si y, de acelasi ordin de marime
(cu x > y, pentru simplitate), ale caror prime k cifre coincid, cu urmatoarele
reprezentari (exacte) n baza (d1 6= 0):
x = 0.d1 d2 . . . dk dk+1 . . . dt 1 e ,
y = 0.d1 d2 . . . dk ck+1 . . . ct 0 e .
unde a, b R sunt date (a 6= b), este de asemenea o problema numerica bine definita.
a
Intr-adevar, pentru datele de intrare x = D = R2 , exista si este unica
b
R 2
valoarea integralei y R, desi integrala nedefinita et dt nu este exprimabila
prin functii elementare.
Abaterea solutiei calculate fata de solutia exacta a unei probleme numerice poate
avea doua surse esential diferite, legate de problema n sine si, respectiv, de algorit-
mul de calcul utilizat. De prima sursa de erori numita conditionarea problemei
ne ocupam n continuare, de cea de-a doua stabilitatea algoritmului n
paragraful urmator.
Conditionarea problemei caracterizeaza sensibilitatea solutiei n raport cu pertur-
batiile datelor de intrare. In practica este cunoscuta doar o aproximatie x a datelor
de intrare x si, n cel mai bun caz, presupunand ca toate calculele se efectueaza
exact, putem calcula f (x) n loc de f (x). Daca functia f definind problema noastra
este prea sensibila la variatii ale argumentului, f (x) si f (x) pot diferi semnificativ
chiar n cazul unei erori relative mici kx xk / kxk a datelor de intrare (k k este o
norma adecvata). O astfel de problema este numita rau conditionata.
Daca ncercam rezolvarea unei probleme rau conditionate pornind de la date
inexacte, atunci solutia obtinuta va fi nsotita de erori mari indiferent de felul n
care este calculata !
Observatia 0.2 Daca f este Lipschitz continua, i.e. exista L astfel ncat
atunci
kxk
(x) L ,
kf (x)k
iar daca f este de clasa C 1 iar x este apropiat de y, atunci L se poate lua kf (x)k,
unde f este derivata lui f n punctul x.
Subliniem faptul ca conditionarea este o proprietate locala. De obicei, totusi, o
problema este numita bine conditionata daca este bine conditionata n orice punct
x D; de asemenea, este numita rau conditionata, daca exista puncte x D n
care este rau conditionata.
Exemplul 0.11 Problema calculului sumei a doua numere x, y R poate fi
bine sau rau conditionata functie de valorile lui x si y (datele de intrare). (Aici
12 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
2 x
f (x, y) = x + y, f : R R; convenim sa scriem si f (x, y) n loc de f ( ),
y
cum ar cere (0.10).)
Presupunem ca x, y sunt aproximari ale lui x, respectiv y, afectate de erori
relative de acelasi ordin de marime, ; mai precis,
x = x + x x, cu |x | 1,
y = y + y y, cu |y | .
|x + x x + y + y y (x + y)| |x x + y y|
= = . (0.12)
|x + y| |x + y|
f : D F Rn Rm .
Deoarece executia unui algoritm se face folosind numere n FVM si calculele sunt
nsotite de erori, este clar ca f(x) este de regula diferit de f (x). De asemenea, nu ne
putem astepta ca algoritmul f sa calculeze solutia unei probleme rau conditionate
mai precis decat o garanteaza datele de intrare. Totusi, e de dorit ca f sa nu in-
troduca erori exagerat de mari. Notiunea de stabilitate numerica exprima marimea
erorilor numerice introduse de un algoritm, n ipoteza ca datele initiale sunt exacte.
0.4. STABILITATEA NUMERICA A ALGORITMILOR 13
x r r
f f (x)
6 I
@@
x r
Eroare napoi f @
? @
@@Eroare nainte
f @
@
Rr
@
@
f (x) = f (x)
Cele doua conditii sunt similare, doar ca prima se formuleaza n spatiul datelor
de iesire, iar a doua n spatiul datelor de intrare, dupa cum se poate remarca
n figura 0.3; n mod plastic, eroarea (absoluta) f(x) f (x) este numita eroare
nainte, deoarece corespunde sensului de calcul al algoritmului, iar x x eroare
napoi, deoarece gasirea unui x care sa satisfaca ii) nseamna ntoarcerea n
spatiul datelor de intrare, ulterior aplicarii algoritmului. Analiza stabilitatii nu-
merice a unui algoritm nseamna cuantificarea erorilor din definitia 0.4; evaluarea
kf(x)f (x)k este caracteristica analizei nainte (directe); evaluarea kxxk defineste
analiza napoi (inversa).
Notiunea vaga aproape se poate reexprima prin cea de eroare relativa mica
(notiune destul de vaga si ea); n calculul numeric se folosesc deseori astfel de
exprimari. In mod sigur, o eroare relativa de ordinul erorii de rotunjire (introduse
de (0.7)) caracterizeaza un algoritm numeric stabil 1 : solutia este calculata cu
precizia intrinseca a FVM utilizat.
Este usor de aratat ca utilizarea unui algoritm stabil la rezolvarea unei probleme
bine conditionate conduce la un rezultat de nalta acuratete 2 .
Intr-adevar, din definitia 0.4 varianta ii), pentru intrarea exacta x exista x astfel
ncat eroarea relativa este (sa zicem) de ordinul erorii de rotunjire
kx xk
t
kxk
1 In
continuare, vom spune algoritm stabil n loc de algoritm numeric stabil.
2 Atragem atentia asupra sensurilor diferite pe care le au n calculul numeric termenii precizie si
acuratete, aproape sinonimi n limbajul uzual. Precizia se refera la numarul de cifre semnificative
din FVM, iar acuratetea la marimea erorii dintre rezultatul calculat numeric si cel exact.
14 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
si
f (x) = f(x). (0.13)
Problema fiind bine conditionata, din (0.11) rezulta ca
kf (x) f (x)k kx xk
= t , (0.14)
kf (x)k kxk
kf (x) f(x)k
t ,
kf (x)k
unde f l este o functie de rotunjire care respecta relatia (0.7), iar x si y sunt numere
n FVM; deci, n conformitate cu (0.7),
Definind
p
a = a(1 + 2 ), b = b (1 + 1 )(1 + 3 ), c = c(1 + 3 ),
constatam ca
f(a, b, c) = b2 4ac,
si a, b, c sunt aproape de a, b, respectiv c (n sensul |a a|/|a| de ordinul t etc.).
Conditia ii) a definitiei 0.4 este ndeplinita, deci algoritmul este stabil.
Exemplul de mai sus este o ilustrare foarte simpla a analizei inverse a erorilor
de rotunjire ale unui algoritm. In aceasta tehnica se utilizeaza limitele (0.7) ale
erorilor introduse de operatiile n virgula mobila pentru a demonstra ca solutia
calculata a unei probleme este solutia exacta a problemei cu date de intrare usor
perturbate. O astfel de demonstratie garanteaza ca algoritmul este numeric stabil si,
pentru probleme bine conditionate, sunt asigurate erori relative mici ale rezultatelor
calculate.
Pentru probleme nebanale, a arata ca un anume algoritm este stabil poate fi
o sarcina dificila. Exista foarte putini algoritmi pentru care exista o demonstratie
completa a stabilitatii numerice. Totusi, multi algoritmi importanti au fost validati
n practica printr-o experienta de zeci de ani. Cum spunea Wilkinson: scopul
principal al analizei erorilor nu este de a stabili margini precise, ci de a evidentia
instabilitatile potentiale ale unui algoritm, daca ele exista, si, prin aceasta, de a gasi
o cale de mbunatatire a algoritmului [IV].
In aceasta lucrare vom fi interesati mai mult de prezentarea celor mai buni algo-
ritmi care rezolva o problema, si mai putin de demonstrarea aproape ntotdeauna
extrem de tehnica a stabilitatii lor numerice.
UC
6
?
UC UCS UCV
MR
6 6
6
? ? ?
M M MP
Fig. 0.4: Arhitecturi de calculatoare: (a) von Neumann; (b) vectoriala; (c) cu
memorie ierarhica
0.7 Probleme
P 0.1 Urmatorul exemplu arata ca adunarea n virgula mobila nu este asociativa. Sa
consideram numerele x1 = 0.001, x2 = 1, x3 = 1, reprezentate ntr-un FVM cu = 10,
t = 3. Cat de mare este eroarea relativa atunci cand se calculeaza y = x1 + x2 + x3 ?
P 0.2 Gasiti o limita a erorii relative pentru calculul n virgula mobila al sumei
y = x1 + x2 + x3 ; presupuneti ca x1 , x2 , x3 sunt numere n virgula mobila.
P 0.3 Sa consideram problema calculului solutiei ecuatiei liniare ax + b = 0, cu a, b R,
a 6= 0. Pentru ce valori ale datelor de intrare a, b este aceasta problema rau conditionata ?
Algoritmul pentru calculul solutiei este x = b/a; este acest algoritm numeric stabil ?
P 0.4 Aceeasi ntrebare pentru ecuatia (a1 + a2 )x + (b1 + b2 ) = 0, n care datele de intrare
sunt a1 , a2 , b1 , b2 R.
P 0.5 Se considera un FVM definit de (, t, p). Care este distanta ntre 1 si cel mai
apropiat numar reprezentabil n virgula mobila, mai mare ca 1 ?
P 0.6 Gasiti limita (superioara) a erorii relative a functiei de rotunjire care asociaza
fiecarui x [M, M ] cel mai apropiat numar n virgula mobila.
P 0.7 Ce formula recomandati pentru calculul n virgula mobila: x2 y 2 sau (xy)(x+y) ?
(Se presupune ca x si y sunt numere n FVM.)
Capitolul 1
Algoritmi elementari de
calcul numeric
Acest capitol este dedicat prezentarii notiunilor matematice aflate la baza dez-
voltarilor ulterioare, formularii problemelor de calcul pe care le vom rezolva, n
diverse variante, pe ntreg parcursul lucrarii, precum si descrierii unor primi algo-
ritmi numiti ad-hoc elementari, unii folositi ca unelte mai tarziu, altii deja rezolvand
probleme sau cazuri particulare ale unor probleme semnificative.
Notiunile matematice apartin n mare majoritate algebrei liniare. Am ncercat
o prezentare de sine statatoare, dar, desigur, cunostintele anterioare ale cititorului
sunt binevenite.
Fiecare sectiune a capitolului are doua parti: prima, cu nuanta teoretica, de
parcurgere a unor definitii si proprietati fundamentale; a doua, de aspecte algo-
ritmice, n care sunt prezentati si analizati algoritmi simpli, moduri de memorare
a datelor, artificii numerice etc. Subtitlurile acestor din urma parti vor ncepe cu
sigla AA.
Principalii algoritmi prezentati rezolva urmatoarele probleme: produsul ma-
triceal (cu diversele lui cazuri particulare: produsul scalar, produsul exterior, pro-
dusul matrice-vector), calculul normelor vectoriale si matriceale, rezolvarea sis-
temelor liniare triunghiulare si calculul valorilor si vectorilor proprii ai matricelor
triunghiulare. Sunt prezentate modalitatile prin care se maresc performantele algo-
ritmilor pe diverse arhitecturi de calculatoare. Capitolul se ncheie cu prezentarea
rutinelor BLAS, extrem de utilizate n calculul numeric.
6 6
1
6
x3 x
1
x2 e3
-
e1 - -
e2
x1 1 1
+
+
+
(a) (b)
indicele aratand pozitia valorii 1. Spre exemplu, vectorii unitate din R3 sunt
prezentati n figura 1.1b.
Doi vectori sunt egali cand toate componentele lor de acelasi indice sunt egale;
deci, daca x, y Rn , atunci x = y cand xi = yi , i 1 : n.
1.1. VECTORI. SPATIUL VECTORIAL RN 21
:
y
- -
x + y
-
x x
x
(a) (b)
x1 , x2 , . . . , xp . Vectorul
p
X
def
y = 1 x1 + 2 x2 + . . . + p xp = i xi (1.2)
i=1
Daca vectorii sunt liniar dependenti, atunci cel putin unul Pp dintre ei se poate
exprima printr-o combinatie P liniara a celorlalti; i.e., daca i=1 i xi = 0, atunci
exista j 6= 0, si deci xj = pi=1,i6=j (i /j )xi .
Evident, ntr-o multime de vectori independenti, nici unul dintre ei nu se poate
exprima printr-o combinatie liniara a celorlalti. De exemplu, vectorii unitate
e1 , . . . , en sunt liniar independenti.
Pp Daca X Rn este o multime de vectori
n
liniar independenti si y = i=1 i xi R este o combinatie liniara a acestora,
atunci coeficientii combinatiei liniare sunt unici (demonstrati).
Subspatiu liniar. O multime S de vectori din Rn este numita subspatiu liniar
al spatiului Rn daca sunt ndeplinite urmatoarele doua conditii:
1. x + y S, x, y S;
2. x S, R, x S.
Asadar, orice combinatie liniara a unor vectori din S apartine tot lui S; altfel spus,
S e invariant la combinatii liniare. Evident, orice subspatiu liniar contine vectorul
nul (originea).
Fie X Rn o multime de vectori si S multimea tuturor combinatiilor liniare ale
vectorilor din X . Atunci S e un subspatiu liniar, numit subspatiul generat de X . De
exemplu, n R3 doi vectori genereaza de regula un plan; daca vectorii sunt coliniari
(adica exista scalarul a.. y = x), atunci subspatiul generat este o dreapta.
Fie S Rn un subspatiu; o multime de vectori B S este baza a subspatiului
S daca:
1. elementele lui B sunt liniar independente;
2. S e generat de B.
Asadar o baza contine numarul minim de vectori cu ajutorul carora se poate genera
subspatiul.
Daca B = {b1 , . . . , bm }, atunci x S se Pscrie n mod unic n forma unei
m
combinatii liniare a vectorilor din baza, x = i=1 i bi . Numerele i se numesc
componentele sau coordonatele, vectorului x n raport cu baza B.
De exemplu, e1 , . . . , en formeaza o baza pentru Rn , numita si baza canonica;
componentele vectorului x, n sensul definitiei
Pn (1.1), sunt componentele n raport
cu aceasta baza, deoarece evident x = i=1 xi ei .
Un subspatiu are o infinitate de baze, dar toate au acelasi numar de elemente.
Evident, un vector x 6= 0 are coordonate diferite n raport cu aceste baze.
Dimensiunea unui subspatiu, notata dim S, este numarul vectorilor din baza,
adica numarul maxim de vectori din S liniari independenti sau, cum am mentionat
deja, numarul minim de vectori care genereaza S.
De exemplu, Rn are dimensiunea n, numarul de vectori din baza canonica; un
plan n R3 are dimensiunea 2.
Doua subspatii S, T Rn se numesc complementare daca
1. S T = {0}.
2. Rn este generat de S T .
1.1. VECTORI. SPATIUL VECTORIAL RN 23
6
C
C
C
C
C T
SC
C C
C C
C C -
C CC
C
+ C
C
CC
In acest caz vom utiliza notatia Rn = S T . Fiecare dintre cele doua subspatii este
numit complementul celuilalt. Orice vector x Rn se poate exprima n mod unic
prin x = s + t, cu s S, t T . De asemenea, dim S + dim T = n. De exemplu,
n figura 1.3 sunt reprezentate un plan si o dreapta n R3 , care constituie imaginile
geometrice a doua subspatii complementare.
Sa observam ca subspatiul complementar al unui subspatiu nu este, n general,
unic. In exemplul din figura 1.3, orice dreapta care nu apartine planului este com-
plementara acestuia.
Spatiul vectorial complex Cn se defineste analog cu spatiul Rn si are aceleasi
proprietati, deoarece proprietatile corpului numerelor reale folosite mai sus sunt
identice cu cele ale corpului numerelor complexe.
Desigur, orice vector x Cn se poate scrie n forma x = u + iv, cu u, v Rn si
i unitatea imaginara.
AA. Saxpy. Vom descrie acum n termeni algoritmici o operatie fundamentala
cu vectori, anume y x + y, cu x, y Rn , R, operatie numita Saxpy2 .
Notatia , citita ia valoarea, are semnificatia de atribuire. Cu alte cuvinte,
ntr-un program ce realizeaza operatia si n care vectorii x si y reprezinta variabile,
vectorul calculat x + y este depus n variabila y, suprascriind valoarea initiala a
acesteia. Vom introduce direct si alte conventii de scriere a algoritmilor, cu premiza
ca cititorul are notiuni elementare despre limbajele de programare de nivel nalt.
faptul ca calculele se efectueaza n Simpla precizie; ea este atasata n mod traditional numelui
operatiei.
24 CAPITOLUL 1. ALGORITMI ELEMENTARI
3 Numerotarea nivelelor se face dupa exponentul lui n din expresia numarului de flopi necesari
la executie; operatiile de nivel 1 necesita O(n) flopi, cele de nivel 2 necesita O(n2 ) flopi etc.
1.2. PRODUS SCALAR. NORME. ORTOGONALITATE 25
'$
6
@ 1
@ -
@
&%
@ bb 2
Pentru a ilustra geometric cele trei norme de mai sus, figura 1.4 prezinta cer-
curile de raza 1 n R2 , adica locul geometric al punctelor x R2 pentru care
kxkp = 1, pentru p = 1, 2, .
Doua norme pe Rn , sa zicem k kq si k kr , se numesc echivalente daca exista
1 , 2 > 0 astfel ncat pentru orice x Rn avem
Comentarii. Algoritmul are 2n operatii si face deci parte din grupul operatiilor
de nivel 1. Il vom apela prin = DOT(x, y).
4 In general vom spune baze ortogonale n loc de ortonormale, presupunand implicit ca normele
unde |x| este vectorul modulelor elementelor vectorului x. Eroarea nu este neaparat
mica; daca |y T x| |y|T |x|, atunci eroarea relativa din (1.6) poate fi mare.
AA. Calculul normelor. Normele 1 si se calculeaza usor. De exemplu,
kxk se calculeaza astfel:
1.3 Matrice
Matrice. O matrice reala A este un tablou bidimensional (rectangular) de
numere reale dispuse pe m linii si n coloane; notand cu aij elementul matricei de
pe linia i si coloana j, matricea arata astfel
a11 a12 ... a1n
a21 a22 ... a2n
A= .. .. .. (1.7)
. . .
am1 am2 . . . amn
1. (AT )T = A, A Rmn ;
2. (A + B)T = AT + B T , A, B Rmn ;
3. (A)T = AT , A Rmn , R.
Teorema 1.1 Daca A Rmn , atunci ImA si KerAT sunt subspatii ortogonale si
complementare n Rm , i.e.
1. ImA KerAT .
2. Rm = ImA KerAT .
y3
6
(1,0,1)
(0,1,1) k
Q
Q ImA
Q
Q y1
Q -
y2
KerAT
(1,1,-1)
Fig. 1.5: KerAT este complementul ortogonal al lui ImA. Datele sunt cele din
exemplul 1.1
1 0
Exemplul 1.1 Fie A = 0 1 .
1 1
x1
Atunci, S = ImA = {y R3 | y = x2 , x1 , x2 R}, adica S este
x1 + x2
planul de ecuatie y3 = y1 + y2 .
T = KerAT = {y R 3
| AT y = 0} = {y
3
R | y2+ y3 = 0, y1 + y3 = 0}, deci
1 1
avem T = {y R3 | y = 1 } = Im 1 .
1 1
Vezi figura 1.5.
Privind n continuare matricea A n forma (1.8), rangul matricei A este dimen-
siunea subspatiului ImA generat de coloanele lui A. Asadar rangA = dim(ImA),
sau, altfel spus, rangul este numarul maxim de coloane liniar independente din A.
Se poate demonstra ca rangA = rangAT si deci rangul este totodata si numarul
maxim de linii liniar independente din A. Recapituland:
not
dim ImA = dim ImAT = r,
dim KerA = n r, (1.12)
dim KerAT = m r.
O matrice A Rmn avand coloanele liniar independente se numeste monica;
n acest caz, m n, rangA = n si KerA = {0}. Se mai spune ca A are rang maxim
pe coloane.
O matrice A Rmn avand liniile liniar independente se numeste epica; atunci
m n, rangA = m si ImA = Rm ; se spune ca A are rang maxim pe linii.
1.3. MATRICE 31
O matrice A Rmn avand una din dimensiuni egala cu 1 este un vector; daca
n = 1, vectorul este coloana (acceptiunea implicita), iar daca m = 1 vectorul este
linie. Este clar ca transpusa unui vector linie este un vector coloana si reciproc. In
mod analog cu (1.8), o matrice poate fi scrisa evidentiind liniile:
T
a1
aT2
A = . . (1.13)
..
aTm
AA. Gaxpy. Vom prezenta acum mai multe implementari ale produsului
5
matrice-vector, sub forma operatiei y Ax + y, numita GaxpyPn .
Din (1.9), la nivel de element, operatia se scrie yi yi + j=1 aij xj , si deci
1. Pentru j = 1 : n
1. Pentru i = 1 : m
1. yi yi + aij xj
Bucla interioara reprezinta acum o operatie Saxpy, corespunzand exprimarii
produsului matrice-vector n forma (1.9), care este o suma de vectori. Algoritmul
1.7 se rescrie deci n forma vectoriala:
Definitia 1.1 Fie A Rml si B Rln , doua matrice; produsul lor este matricea
C = AB Rmn , definita prin
l
X
cij = aik bkj , i = 1 : m, j = 1 : n.
k=1
Forme ale produsului matriceal. Vom evidentia acum mai multe forme
de prezentare a nmultirii a doua matrice, folosind ca operatii elementare cazurile
particulare prezentate mai sus.
1. Sa privim A ca alaturare de vectori linie, ca n (1.13), si B ca alaturare de
vectori coloana, ca n (1.8). Se observa imediat din definitie ca cij = aTi bj , adica
fiecare element al rezultatului poate fi exprimat printr-un produs scalar (DOT).
2. Privim acum A partitionata pe coloane si B pe linii. Produsul lor se poate
exprima ca o suma de produse exterioare:
T
b1 l
.. X
C = AB = [a1 . . . al ] . = ak bTk . (1.15)
bTl k=1
Pl Pl Pl
Demonstratie: cij = k=1 (ak bTk )ij = k=1 (ak )i (bTk )j = k=1 aik bkj .
3. Punem acum n evidenta numai coloanele matricei B. Atunci
deci fiecare coloana a produsului este obtinuta prin nmultirea matrice-vector dintre
matricea A si coloana respectiva a lui B.
4. Fie acum A partitionata pe linii. Atunci
T T
a1 a1 B
C = AB = ... B = ... ,
(1.17)
aTm aTm B
deci fiecare linie a produsului este obtinuta prin nmultirea vector linie - matrice
dintre linia respectiva a lui A si matricea B.
5. Sa exprimam acum coloanele produsului C n functie de coloanele matricei
A. Cu ajutorul relatiei (1.16) se obtine
l
X
cj = Abj = bkj ak , (1.18)
k=1
3. (AB)T = B T AT .
Trebuie subliniat faptul ca nmultirea de matrice nu este comutativa. Sa detaliem
putin; consideram A Rml si B Rln , cazul cel mai general pentru care este
definit produsul AB; daca m 6= n, atunci produsul BA nici macar nu este definit.
Daca m = n, atunci AB Rml , iar BA Rlm ; prin urmare, daca m 6= l, atunci
AB si BA au dimensiuni diferite, deci nu se pune problema egalitatii. In fine, daca
si m = l, deci ambele matrice sunt patrate,
atunci
egalitatea
AB = BA nu are loc,
1 1 1 2
n general; un exemplu simplu: A = ,B= .
1 1 3 4
Matrice patrate. Ne vom ocupa n continuare de unele aspecte specifice ma-
tricelor patrate din Rnn , a caror multime are structura de inel necomutativ. Ma-
tricea unitate de ordinul n are elementele de pe diagonala principala egale cu 1 si
toate celelalte elemente nule; ea este notata prin In , sau numai I daca dimensiunea
rezulta din context; scrisa pe coloane, matricea unitate are forma In = [e1 . . . en ].
Fie o matrice A Rnn ; daca exista o matrice X Rnn astfel ncat
AX = XA = I, atunci X se numeste inversa matricei A si se noteaza cu A1 .
O matrice care are inversa se numeste inversabila; matricea inversa este unica. Se
poate demonstra ca multimea matricelor inversabile din Rnn are o structura de
grup (necomutativ) n raport cu nmultirea, notat GL(n).
Se pune ntrebarea cand este o matrice inversabila ? Vom mentiona deocamdata,
fara a demonstra, ca inversabilitatea este echivalenta cu conditia rangA = n, adica
cu independenta coloanelor (si liniilor) matricei A. (O alta conditie echivalenta este
KerA = {0}, i.e. KerA are dimensiune nula.) Testarea numerica a inversabilitatii
va fi o problema tratata mai mult sau mai putin explicit n capitolele urmatoare,
metodele prezentate fiind din ce n ce mai sigure, dar si mai sofisticate.
O ultima proprietate: inversarea si transpunerea unei matrice sunt operatii care
not
comuta ntre ele, adica (AT )1 = (A1 )T = AT .
Echivalenta. Doua matrice A, B Rmn se numesc echivalente la dreapta
daca exista o matrice T Rnn inversabila astfel ncat B = AT . Avem:
Propozitia 1.1 Daca A, B Rmn sunt echivalente la dreapta, atunci avem ImA =
ImB.
C = A1 B1 A2 B2 + i(A1 B2 + A2 B1 ). (1.21)
Inmultirea matricelor complexe se poate efectua deci prin patru produse (si doua
adunari) de matrice reale.
Numarul de operatii se poate reduce printr-un mic artificiu de calcul; o forma
echivalenta cu (1.20) este
G = A1 B1 ,
H = A2 B2 , (1.23)
C = G H + i((A1 + A2 )(B1 + B2 ) G H).
Asadar C se calculeaza acum cu doar trei nmultiri de matrice, adica 6mnl flopi, si
cinci adunari a caror contributie la numarul de operatii este neglijabila.
Acest algoritm rapid pentru nmultirea matricelor complexe are totusi si un
dezavantaj: stabilitatea sa numerica este mai slaba decat cea a algoritmului clasic
(1.21); cu toate acestea, el poate fi folosit cu succes n majoritatea aplicatiilor.
Se observa ca (1.24) este identica cu produsul scalar al celor doi vectori din Rmn
obtinuti prin vectorizarea matricelor A si B, i.e. prin concatenarea coloanelor lui
A, respectiv B.
Normele matriceale se definesc la fel ca normele vectoriale. O norma ma-
triceala este o functie k k : Rmn R+ care satisface conditiile
1. kAk > 0, A Rmn , A 6= 0 (pozitivitate);
2. kAk = || kAk, A Rmn , R (omogenitate);
3. kA + Bk kAk + kBk, A, B Rmn (inegalitatea triunghiului).
Pentru a utiliza normele matriceale independent de dimensiunile matricelor, in-
troducemS notiunea de familie de norme matriceale, care este o functie
k k : m=1,n=1 Rmn R+ astfel ncat, pentru fiecare m, n > 0, restrictia lui
k k la Rmn este o norma matriceala. Daca n = 1, atunci k k este o familie de
norme vectoriale.
O familie k k de norme matriceale este consistenta daca
1 (1.29)
kAk1 kAk2 nkAk1 ,
m
kAk2 kAkF nkAk2 .
Cazul complex. O norma matriceala peste spatiul complex Cmn este o functie
cu valori reale pozitive satisfacand cele trei conditii de la nceputul sectiunii. Toate
definitiile si relatiile de mai
P susPraman valabile, cu singura observatie ca acum norma
Frobenius este kAk2F = m i=1
n 2
j=1 |aij | .
0
0
L U
1. 0
2. Pentru j = 1 : n
1. 0
2. Pentru i = 1 : m
1. + |aij |
3. Daca > atunci
Algoritmul necesita mn flopi. Calculul normei este asemanator si are aceeasi
complexitate. Calculul normei Frobenius necesita 2mn flopi; desigur, pentru evitarea
depasirilor superioare, n implementarea formulei directe (1.26) se utilizeaza scalarea.
In schimb, dupa cum vom vedea, calculul normei 2 face apel la notiuni mai evolu-
ate si implica O(n3 ) operatii (pentru matrice patrate). De aceea, normele 1, si
Frobenius sunt cele mai folosite n calculul numeric elementar. Toate aceste norme
fiind echivalente, criteriul de alegere primordial este efortul de calcul.
Daca m = p, i = i , i 1 : m, si n = l, cu j = j , j 1 : n, atunci
C11 . . . C1n
.. .. ..
A+B =C = . . . , cu Cij = Aij + Bij . (1.32)
Cm1 . . . Cmn
Daca n = p, i = i , i 1 : n, atunci
D11 . . . D1l n
AB = D = ...
.. .. , cu D = X A B . (1.33)
. . ij ik kj
Dm1 . . . Dml k=1
adica Aij Rrr , r fiind numita dimensiunea blocurilor, iar m = q/r numarul de
blocuri; presupunem ca r divide dimensiunea matricelor q doar pentru a simplifica
expunerea.
Exprimam produsul matriceal ca n (1.33), deci
m
X
Cij = Aik Bkj . (1.35)
k=1
Algoritmul lui Strassen este definit de formulele urmatoare, usor de verificat prin
simpla substitutie:
M1 + M2 + M3 M4 M4 + M6
C = AB =
M3 + M5 M1 M5 + M6 + M7
In practica, dimensiunea n0 este mai mare decat 18 (dar de obicei n0 < 100),
datorita operatiilor nearitmetice suplimentare necesare n algoritmul Strassen, n
special alocarilor de memorie si apelurilor recursive. Asadar, acest algoritm este
eficient pentru nmultirea matricelor mari, cu dimensiuni de ordinul sutelor sau
miilor.
In privinta stabilitatii numerice algoritmul Strassen este inferior celui standard,
de aceea trebuie utilizat cu anume precautii. Recomandam referintele [IX], [?]
cititorului interesat.
Propozitia 1.3 O submatrice principala a unei matrice pozitiv definite A este po-
zitiv definita. In particular, submatricele lider principale A[k] , k 1 : n, sunt
pozitiv definite si toate elementele diagonale sunt pozitive.
*
6
x
x Px
"
" "
"
" S
" -
"
" Px "
"
" "
Fig. 1.8: Actiunea unui proiector ortogonal pe S asupra unui vector oarecare x
scalar complex, mai utile sunt notiunile analoage obtinute (formal) prin nlocuirea
transpunerii prin transpunere si complex conjugare. Daca A Cnn , se noteaza
cu AH = AT conjugata transpusei matricei A. Matricea A Cnn se numeste
normala daca AAH = AH A.
Matricea A Cnn se numeste hermitica daca AH = A. In acest caz scalarul
x Ax este real pentru orice x Cn . O matrice hermitica A Cnn este pozitiv
H
nlocuim elementele matricei A din linia i aflate n triunghiul inferior, prin cele egale
aflate pe coloana i, n triunghiul superior, dupa cum este sugerat n figura 1.9.
Acelasi mod de memorare, printr-un singur triunghi, se utilizeaza si n cazul
matricelor antisimetrice sau hermitice. Propunem cititorului adaptarea algoritmului
Gaxpy n aceste doua cazuri.
A x
Fig. 1.9: Utilizarea elementelor din triunghiul superior n produsul dintre o matrice
simetrica si un vector
Ax = b, (1.41)
A fiind numita matricea coeficientilor, b termenul liber (sau partea dreapta a sis-
temului), iar x vectorul necunoscutelor.
Daca termenul liber al sistemului este vectorul nul (b = 0), sistemul este numit
omogen.
Prima caracteristica importanta a unui sistem liniar este relatia ntre m si n:
cand numarul de ecuatii este mai mare decat numarul de necunoscute (m > n),
sistemul (1.41) se numeste supradeterminat;
cand, dimpotriva, numarul de necunoscute este mai mare (n > m), sistemul
este numit subdeterminat;
Teorema 1.2 Sistemul liniar (1.41) are solutie daca si numai daca b ImA.
Daca ImA = Rm , adica A este epica (are liniile independente), atunci sistemul
(1.41) are solutie pentru orice termen liber b Rm si reciproc.
y3
6
b 6 ImA
HbH ImA
Y 1
HH
HH y1
-
y2
ImA
1 0
Exemplul 1.2 Daca A = 1 1 , atunci ImA este planul y2 = y1 + y3 . Daca
0 1
b = [b1 b2 b3 ]T este astfel ncat b2 = b1 + b3 , atunci sistemul Ax = b are solutie
deoarece conditia din teorema 1.2 este ndeplinita. Altfel, sistemul nu are solutie
(vezi figura 1.10).
Cand solutia exista, unicitatea ei rezulta din
x0 + KerA = {x = x0 + z | z KerA}.
2) Solutia x este unica daca si numai daca KerA = {0}, adica matricea A este
monica (are coloanele independente).
care trece prin punctele O(0, 0, 0) si P (1, 1, 1). Astfel, vectorii din KerA au forma
1
Ker A z = 1 , R,
1
52 CAPITOLUL 1. ALGORITMI ELEMENTARI
x3
6
x
:
x1
O -
x@
9
x2
0
R
@
KerA
x + KerA
Fig. 1.11: Solutiile (x0 solutie particulara, x solutie generala) sistemului din
exemplul 1.3
Corolar 1.1 Cand matricea A este patrata (A Rnn ), atunci urmatoarele afir-
matii sunt echivalente:
i) ImA = Rn , i.e. sistemul (1.41) admite solutie unica pentru orice b Rn ;
ii) KerA = {0};
iii) A este inversabila.
Daca sistemul are solutie, aceasta se poate scrie
x = A1 b. (1.42)
unde A1j R(n1)(n1) este matricea obtinuta din A prin eliminarea liniei 1 si
coloanei j.
Cateva proprietati importante ale determinantului sunt:
1. det(I) = 1;
2. det(A) = n det(A), R;
3. det(AT ) = det(A);
4. det(AB) = det(A) det(B).
O matrice A Rnn pentru care det(A) 6= 0 se numeste nesingulara. Se poate
demonstra ca notiunea de nesingularitate este echivalenta cu cea de inversabili-
tate. Sa notam de acum ca n rezolvarea numerica a sistemului determinat Ax = b
nesingularitatea matricei A nu se verifica prin calculul determinantului, ci prin alte
mijloace, mult mai eficiente si sigure, dupa cum se va vedea n capitolul 2. De aceea
mai departe vom spune de cele mai multe ori inversabila n loc de nesingulara.
AA. Rezolvarea sistemelor triunghiulare. Sistemul Ax = b este numit in-
ferior (superior) triunghiular daca matricea A este inferior (superior) triunghiulara.
O matrice triunghiulara este inversabila daca si numai daca toate elementele
sale diagonale sunt nenule.
Algoritmii pentru rezolvarea sistemelor triunghiulare sunt foarte simpli, deoarece
necunoscutele pot fi calculate, ntr-o ordine precizata, prin substitutie numerica.
Sa consideram ntai un sistem inferior triunghiular, Lx = b, unde L Rnn , cu
lij = 0 pentru i < j, lii 6= 0, i 1 : n, si b Rn . Prima ecuatie este l11 x1 = b1 , din
care
x1 = b1 / l11 . (1.43)
In general, daca se cunosc x1 , x2 , . . . , xi1 , se poate rezolva a i-a ecuatie,
i1
X
lij xj + lii xi = bi ,
j=1
pentru a obtine
i1
X
xi = bi lij xj / lii . (1.44)
j=1
1. x b
2. Pentru i = 1 : n
1. Pentru j = 1 : i 1
1. xi xi lij xj
2. xi xi / lii
adica x este solutia unui sistem cu matricea coeficientilor usor perturbata fata
de L. Asadar algoritmul LTRIS este numeric stabil. (Acesta este un rezultat tipic
de analiza inversa a erorilor.) Practica numerica arata o acuratete a algoritmului
LTRIS mult superioara celei indicate de (1.45).
Pentru a rezolva sistemul superior triunghiular (nesingular) U x = b, unde
U Rnn este o matrice superior triunghiulara, cu uii 6= 0, i 1 : n, si b Rn , sa
observam ca ultima ecuatie are forma unn xn = bn , iar de aici
xn = bn /unn . (1.46)
1.9. SISTEME DE ECUATII LINIARE 55
Mai mult, daca xn , xn1 , . . . , xi+1 , sunt deja calculate, atunci, din a i-a ecuatie,
n
X
uii xi + uij xj = bi ,
j=i+1
se obtine
n
X
xi = bi uij xj /uii . (1.47)
j=i+1
Din formulele (1.46) si (1.47), care definesc asa numita substitutie napoi, obtinem
direct algoritmul urmator.
A11 0 ... 0 X1 B1
A21 A22 ... 0
X2
B2
.. .. .. .. = .. , (1.48)
. . . 0 . .
Am1 Am2 . . . Amm Xm Bm
n care Aij Rrr , iar Bi , Xi Rrp . Evident, blocurile diagonale Aii sunt inferior
triunghiulare. Se presupune ca r divide n si fie m = n/r.
Sistemul (1.48) se rezolva n mod analog cu sistemul inferior triunghiular cu o
singura parte dreapta, tratat mai sus. Bloc linia i a sistemului (1.48) conduce la o
relatie asemanatoare cu (1.44):
i
X i1
X
Aij Xj = Bi = Aii Xi = Bi Aij Xj , (1.49)
j=1 j=1
din care se poate deduce un algoritm similar cu LTRIS (prin substitutie nainte).
Pe un calculator cu memorie ierarhica (figura 0.4c), A, B si X sunt stocate n
memoria principala MP. Alegem r astfel ncat blocurile Aij , Xj si Bi sa poata fi
stocate simultan n memoria rapida MR (deci r2 + 2rp < dim(MR)). Algoritmul
urmator se bazeaza pe ideea aducerii acestor blocuri n MR si apoi a efectuarii
calculelor din (1.49).
Comentarii. Toate operatiile aritmetice, n numar de pn2 (de p ori mai multe
decat pentru algoritmul LTRIS aplicat unui sistem Axj = bj ), se efectueaza cu
operanzi din MR. Instructiunile 1.1, 1.2.1, 1.3, 1.5 reprezinta transferuri ntre MP
si MR; numarul acestor transferuri este de
m i1 2 2
(r2 + rp) + r2 + rp pn + n ,
X X
i=1 j=1
2r 2
sensibil mai mic decat n cazul n care operanzii s-ar fi aflat n MP (atunci ar fi fost
aproximativ 2pn2 accesuri la MP).
1.9. SISTEME DE ECUATII LINIARE 57
LX = In ,
Lxj = ej , j 1 : n, (1.50)
xj = Xej fiind cea de-a j-a coloana a matricei X. Sistemul inferior triunghiular
(1.50) poate fi rezolvat n mod eficient prin adaptarea algoritmului LTRIS la forma
particulara a termenului drept. Intr-adevar, sistemul (1.50) poate fi partitionat
astfel: " #
(j)
L11 0 xj 0
= , (1.51)
(j)
L21 L22
(j) xj ej
(j)
unde L11 este submatricea de dimensiune (j 1) (j 1) din coltul stanga sus al
matricei L si
ej = [1 0 . . . 0]T Rnj+1 .
Din (1.51) rezulta (
(j)
L11 xj = 0,
(j) (j) (1.52)
L21 xj + L22 xj = ej .
(j) (j)
Deoarece L este inversabila si, prin urmare, la fel sunt L11 si L22 , relatia (1.52)
devine (
xj = 0,
(j) (1.53)
L22 xj = ej .
Aceasta relatie stabileste un fapt important, dat de
Propozitia 1.5 Inversa unei matrice inferior triunghiulare nesingulare este infe-
rior triunghiulara.
L1 1. Pentru j = 1 : n
1. Daca j > 1 atunci xj = 0
(j)
2. xj = LTRIS(L22 , ej )
(j)
unde U11 este submatricea de dimensiune j j din coltul stanga sus a lui U si
ej = [0 0 . . . 0 1]T Rj , si urmand o cale asemanatoare celei parcurse pentru inver-
sarea matricelor inferior triunghiulare, se obtin analoagele relatiei (1.53), propozitiei
1.5 si algoritmului LINV. Avem:
(
(j)
U11 xj = ej ,
(1.56)
xj = 0.
Propozitia 1.6 Inversa unei matrice superior triunghiulare nesingulare este supe-
rior triunghiulara.
Av = v. (1.57)
Daca A Rnn , valorile proprii apar n perechi complex conjugate (iar vectorii
proprii asociati acestor perechi pot fi alesi complex conjugati).
Notam prin
multimea valorilor proprii ale matricei A Cnn (cu repetarea valorilor proprii
multiple). Multimea (A) se numeste spectrul matricei A.
Transformari de asemanare. Suntem interesati de transformarile care con-
serva spectrul unei matrice date; se observa ca valorile proprii nu sunt conservate
n urma premultiplicarii sau postmultiplicarii cu o alta matrice.
Doua matrice A, B Cnn sunt numite asemenea daca exista o matrice nesin-
gulara T Cnn astfel ncat
B = T AT 1. (1.60)
T se numeste transformare de asemanare. Daca T este unitara (ortogonala, n cazul
real), atunci A si B sunt ortogonal asemenea.
Teorema 1.6 Fie A Cnn o matrice simpla si V Cnn matricea ale carei
coloane sunt vectorii proprii ai lui A. Atunci
V 1 AV = Cnn (1.62)
= [v1 v2 . . . vn ] diag(1 , 2 , . . . , n ) = V .
Deoarece vectorii vj , j 1 : n, sunt liniar independenti, matricea V este nesingulara
si (1.62) este adevarata.
Asadar o matrice simpla poate fi diagonalizata peste C printr-o transformare de
asemanare. Nu aceasta este si abordarea numerica a problemei, care va fi discutata
pe larg n capitolul 4.
Subspatii invariante. Fie A Cnn si un subspatiu S Cn ; spunem ca S
este A-invariant daca Av S, v S. (Definitia este identica pentru A Rnn ,
S Rn .)
Se observa usor ca daca S are o baza formata din vectori proprii ai matricei A,
atunci S este A-invariant. Reciproca acestei afirmatii nu este, n general, adevarata.
AA. Calculul vectorilor proprii ai matricelor triunghiulare. Fie
U Rnn o matrice superior triunghiulara. Asa cum am observat mai sus, valorile
sale proprii sunt i = uii , i 1 : n. Dorim acum sa calculam vectorii proprii.
1. Consideram ntai cazul n care valorile proprii sunt distincte doua cate doua.
Fie T = j I U ; vectorul propriu vj va fi calculat rezolvand sistemul liniar T vj = 0,
care poate fi partitionat
T11 y T13 vj T11 vj + vjj y + T13 vj = 0
0 w T
vjj =0 wT vj = 0 , (1.63)
T33 vj T33 vj = 0
unde vj Rj1 , vj Rnj . Valorile proprii fiind distincte, T11 si T33 sunt nesin-
gulare. Din (1.63), T33 vj = 0, si deci vj = 0. Ecuatia wT vj = 0 este ntotdeauna
satisfacuta iar vjj poate avea o valoare nenula oarecare, sa zicem vjj = 1. In fine,
sistemul superior triunghiular T11 vj = y are solutie unica, care se poate calcula
cu algoritmul UTRIS.
Vectorii proprii astfel calculati sunt liniar independenti, deoarece matricea
V = [v1 v2 . . . vn ] este superior triunghiulara unitate; rezultatul e natural, deoarece
U este simpla. Directiile vectorilor proprii sunt unic definite, marimile lor fiind alese
arbitrar prin constrangerea vjj = 1.
2. Daca exista valori proprii multiple, atunci T va avea mai multe valori di-
agonale nule. Putem alege n continuare, n (1.63), vj = 0, vjj = 1. Acum nsa,
T11 poate fi singulara, deci se pune problema daca sistemul superior triunghiular
T11 vj = y are solutie. Procedand prin substitutie napoi, presupunem ca vjj = 1,
vj1,j , . . . , vi+1,j au fost calculate si scriem ecuatia i a acestui sistem
j1
X
tii vij = ij , cu ij = tij tik vkj . (1.64)
k=i+1
Daca tii 6= 0, evident ca n (1.64) vij = ij / tii si substitutia poate continua. Daca
tii = 0, sunt doua variante: fie ij = 0, si atunci vij din (1.64) poate avea o valoare
arbitrara, de exemplu vij = 1, si substitutia continua; fie ij 6= 0, si atunci (1.64)
nu este satisfacuta, deci sistemul (1.63) nu are solutie vj ; n acest caz, matricea U
este defectiva, adica nu are n vectori proprii liniar independenti.
62 CAPITOLUL 1. ALGORITMI ELEMENTARI
nivel 1: dedicat operatiilor vectoriale, de genul Saxpy sau DOT, care necesita
O(n) flopi. BLAS-1 este adecvat calculatoarelor vectoriale.
K -
6 6
M
LDA
?
respecta regulile din tabelul 1.1; pentru a nu ncarca expunerea, nu vom prezenta
modul efectiv de apel decat pentru prima rutina prezentata.
In cele ce urmeaza, A, B, C snt matrice oarecare, cu dimensiuni oarecare,
dar adecvate operatiilor, sau simetrice si patrate, T este o matrice triunghiulara,
superior sau inferior, iar si snt scalari.
1. xGEMM (GEneral Matrix Multiplication) nmultirea matrice-matrice, n cazul
general. Modul complet de apel este:
xGEMM(TRANSA, TRANSB, M, N, K, ALFA, A, LDA, B, LDB, BETA, C, LDC)
Operatiile efectuate de rutina snt prezentate n tabelul urmator; C este ntot-
deuna de dimensiune m n.
TRANSA = N TRANSA = T
TRANSB = N C AB + C C AT B + C
A este m k, B este k n A este k m, B este k n
TRANSB = T C AB T + C C AT B T + C
A este m k, B este n k A este k m, B este n k
Argumentele rutinei devin acum mai clare: TRANSA si TRANSB arata daca ma-
tricele A, B se transpun sau nu; M, N, K sunt dimensiunile efective ale matricelor;
LDA, LDB, LDC contin dimensiunea principala a variabilelor n care sunt stocate
matricele, presupuse memorate pe coloane. Semnificatia acestor variabile dimen-
sionale este mai clara n figura 1.12. Elementele de pe aceeasi linie se afla la distanta
LDA n memorie. Se mai poate observa ca patru variabile (analog cu A, M, K, LDA)
sunt suficiente pentru utilizarea oricarei submatrice a matricei din figura.
Rutina acopera toate variantele de nmultire a doua matrice, operatia de baza
fiind C AB + C; transpunerea nu este lasata utilizatorului, deoarece poate
fi mare consumatoare de timp daca se executa explicit (n xGEMM nu se ntampla
asa); la fel, nmultirea matrice-scalar. Cum toate celelalte rutine BLAS nivel 3 au
argumente de apelare asemanatoare, vom prezenta n continuare doar operatia de
baza implementata.
2. xSYMM (SYmetric Matrix Multiplication) nmultire matrice-matrice, cu una
din matrice simetrica:
66 CAPITOLUL 1. ALGORITMI ELEMENTARI
C AB + C. (1.65)
C AAT + C. (1.66)
C AB T + BAT + C. (1.67)
B T B. (1.68)
X T 1 B. (1.69)
Si pentru aceasta rutina exista versiuni n care necunoscuta este n stanga (de genul
XT = B); T este fie superior, fie inferior triunghiulara.
Ca pentru orice standard, alegerea setului de mai sus poate parea mai mult sau
mai putin arbitrara; principala justificare a alegerii este numarul mare de algoritmi
din algebra liniara care folosesc rutine din setul propus.
Vom prezenta n cursul acestei lucrari si algoritmi scrisi astfel ncat marea ma-
joritate a operatiilor sa apara n executia unor rutine BLAS de nivel 3. Pentru a
cuantifica eficienta lor, introducem ponderea operatiilor de nivel 3 prin raportul
N3 (n)
P3 (n) = . (1.70)
Ntotal (n)
Ntotal (n) reprezinta numarul total de flopi necesari executiei algoritmului, iar N3 (n)
numarul de flopi executati n rutinele din BLAS-3; ele depind (cel putin) de dimen-
siunea problemei n.
Pe un calculator cu memorie ierarhica, un algoritm este cu atat mai bun cu cat
P3 (n) este mai apropiata de 1; evident, P3 (n) 1. Motivul este clar: pe un astfel
de calculator, operatiile din rutinele BLAS-3 se executa mai rapid decat celelalte
deoarece memoria rapida este utilizata optim.
1.12. PROBLEME 67
1.12 Probleme
P 1.1 Demonstrati ca un subspatiu liniar n Rn este un spatiu vectorial.
P 1.2 Scrieti algoritmi pentru calculul normelor 1 si ale unui vector x Rn .
P 1.3 (Cauchy-Buniakowski-Schwarz) Demonstrati ca |xT y| kxk2 kyk2 , x, y Rn .
P 1.4 Gasiti vectori liniar independenti x, y Rn care sa satisfaca kx+ykp = kxkp +kykp ,
pentru p = 1, 2, .
P 1.5 Demonstrati (1.6) pentru n = 2, apoi n cazul general.
P 1.6 (Ortogonalizare Gram-Schmidt) Fie b1 , . . . , bp o baza a unui subspatiu S Rn .
Sa se gaseasca o baza ortogonala a1 , . . . , ap a lui S procedand prin inductie: a1 = b1 si
ak+1 = ki=1 ik ai + bk+1 . (Evident, baza devine ortonormala prin normalizare.)
P
P 1.21 Daca A Rnn este simetrica pozitiv definita, demonstrati ca kxkA = xT Ax
este o norma vectoriala. (Indicatie: matricele simetrice sunt ortogonal diagonalizabile.)
P 1.22 Fie A Rnn , simetrica pozitiv definita. Demonstrati ca A este inversabila si ca
A1 este pozitiv definita.
P 1.23 a. Este clar ca o matrice triunghulara si simetrica este diagonala. Cum este o
matrice triunghiulara si antisimetrica ?
b. Demonstrati ca o matrice triunghiulara si ortogonala este diagonala.
c. Puteti extinde rezultatul n cazul matricelor triunghiulare si normale ?
P 1.24 Scrieti algoritmi eficienti pentru rezolvarea sistemului Ax = b, cu A Rnn si
b Rn , n cazurile:
a. A inferior bidiagonala, adica aij = 0 pentru i < j sau i > j + 1.
b. A inferior triunghiulara si banda de latime p (aij = 0 pentru i < j sau i > j + p).
c. A superior bidiagonala.
d. A superior triunghiulara si banda de latime p.
P 1.25 Adaptati algoritmii LINV si UINV pentru inversarea matricelor inferior, respec-
tiv superior bidiagonale.
P 1.26 Propuneti algoritmi de rezolvare a sistemelor inferior (superior) triunghiulare,
folosind operatiile vectoriale DOT sau Saxpy.
P 1.27 Prezentati un algoritm de rezolvare a sistemului inferior triunghiular Lx = b,
stiind ca matricea L este memorata compact, pe linii (i.e. sunt memorate doar elementele
din triunghiul inferior, n ordinea l11 , l21 , l22 , l31 etc. Dar daca L este memorata pe
coloane ?
P 1.28 Fie A Rnn si x = u + iv Cn un vector propriu al sau, cu u, v Rn , v = 6 0.
Demonstrati ca:
a. u iv este vector propriu al matricei A.
b. Vectorii u si v sunt liniar independenti iar subspatiul generat de ei n Rn este
A-invariant.
Daca matricea A Q Rnn are spectrul (A)
P 1.29 P = {1 , . . . , n }, atunci
tr(A) = n
i=1 i , iar detA =
n
i=1 i . Puteti generaliza ?
P 1.30 Fie A Rnn , simetrica pozitiv definita. Demonstrati ca toate valorile proprii
ale matricei A sunt (reale si) pozitive.
Capitolul 2
Rezolvarea sistemelor de
ecuatii liniare
Acest capitol este dedicat prezentarii celor mai importante metode directe de
rezolvare a sistemelor liniare.
Deoarece n reducerea sistemului (2.1) la forma triunghiulara transformarile
matricei A sunt primordiale, n primele patru sectiuni ale capitolului vom trata
aceste transformari ca subiect de sine statator. Algoritmii descrisi vor fi utilizati
n sectiunea 2.5 pentru rezolvarea efectiva a unui sistem (2.1), de forma generala.
Ca probleme conexe, n sectiunea 2.6 vor fi prezentati algoritmi de calcul al in-
versei si determinantului unei matrice. Urmatoarele doua sectiuni sunt dedicate
70 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
Mk = In mk eTk , (2.2)
unde
mk = [0 0 . . . 0 k+1,k . . . nk ]T (2.3)
este un vector avand primele k componente nule, iar ek este vectorul unitate de
indice k.
Definitia 2.2 O matrice Pij Rnn obtinuta din matricea unitate In prin inter-
schimbarea a doua coloane (sau linii) i si j, adica o matrice de forma (aici i < j):
Ii1
0 1
Pij = [e1 e2 . . . ei1 ej ei+1 . . . ej1 ei ej+1 . . . en ] =
Iji1
1 0
Inj
72 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
n care toate elementele nefigurate sunt nule, se numeste (matrice de) permutare
elementara (PE).
1 Reamintim def
ca A[k] = A(1 : k, 1 : k) este submatricea lider principala de ordin k a matricei A.
2.2. TRIANGULARIZARE PRIN ELIMINARE GAUSSIANA 73
MA = U
Ak = Mk1 . . . M2 M1 A
este superior triunghiulara n primele k 1 coloane, i.e. are toate elementele sub-
diagonale ale acestor coloane egale cu zero. Aplicand propozitia 2.3, obtinem
[k] [k] [k]
Ak = Mk1 . . . M1 A[k] ,
[k] [k]
unde matricele Mi sunt toate inferior triunghiulare unitate, deci det(Mi ) = 1,
[k]
i = 1 : k 1. Deoarece Ak este superior triunghiulara, n virtutea conditiei (i) din
enuntul teoremei avem
k
Y
[k] (k)
det(Ak ) = aii = det(A[k] ) 6= 0,
i=1
(k)
adica elementul akk , numit pivot, este nenul. Consideram partitionarea pe coloane
a matricei Ak :
(k) (k) (k)
Ak = [ a1 a2 . . . ak . . . a(k)
n ].
Putem utiliza acum propozitia 2.1 pentru a conchide ca exista o matrice ITE Mk
(k)
astfel ncat (Mk ak )i = 0, pentru i = k + 1 : n. Mai mult, premultiplicarea cu
Mk a matricei Ak nu altereaza primele k 1 coloane si n particular zerourile deja
74 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
(k)
introduse la pasii anteriori, deoarece akj = 0, pentru j = 1 : k 1 (vezi propozitia
2.1, punctul c). Prin urmare matricea
Ak+1 = Mk Ak (2.9)
M = Mn1 Mn2 . . . M1
este inferior triunghiulara unitate iar, daca A este nesingulara, atunci si U rezulta
nesingulara, ca produs a doua matrice nesingulare.
Demonstratia de mai sus furnizeaza o procedura de triangularizare a unei ma-
trice, cunoscuta sub numele de eliminare gaussiana. Procedura este bazata pe
urmatoarea schema, n care calculele se desfasoara pe loc n tabloul A
ElG 1. Pentru k = 1 : n 1
1. Se calculeaza matricea ITE Mk (adica multiplicatorii ik ,
i = k + 1 : n), astfel ncat (Mk A)i = 0, pentru i = k + 1 : n
2. Se calculeaza A Mk A
u11 u12 . . . u1k u1,k+1 . . . u1n u11 u12 . . . u1k . . . u1n
21 u22 . . . u2k u2,k+1 . . . u2n 21
u22 . . . u2k . . . u2n
... ...
... ...
k1
k2 . . . ukk uk,k+1 . . . ukn k1 k2 . . . ukk . . . ukn
(k+1) (k+1)
k+1,1 k+1,2 . . . k+1,k ak+1,k+1 . . . ak+1,n
... ...
... ... ... ...
(k+1) (k+1) n1 n2 . . . nk . . . unn
n1 n2 . . . nk an,k+1 . . . ann
Comentarii. In oricare dintre cele doua forme de mai sus, algoritmul necesita
n1
X n(n 1) n(n 1)(2n 1) 2n3
NG = (n k + 2(n k)2 ) = +2 ,
2 6 3
k=1
76 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
U x = Mn1 Mn2 . . . M1 b,
u11 . . . u1k . . . u1n u11 . . . u1k . . . u1n
0 ... 0 ...
...
...
(k) (k) (k) (k)
akk . . . akn aik k . . . aik n
Ak =
0 ...
Pkik Ak =
0 ...
(k) (k) (k) (k)
aik k . . . aik n akk . . . akn
0 ... 0 ...
(k) (k) (k) (k)
ank . . . ann ank . . . ann
(k)
Fig. 2.2: Pasul k al eliminarii gaussiene cu interschimbare de linii; akk este nul
(k)
sau prea aproape de zero; n Pkik Ak , noul pivot este aik k si are o valoare buna
(suficient de mare, n modul)
A Ak+1 = Mk Pk Ak , (2.13)
1. Pentru k = 1 : n 1
1. Se determina cel mai mic ik k : n astfel ncat
|aik k | = maxi=k:n |aik |.
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
Ak = Mk1 Pk1 . . . M1 P1 A
u11 . . . u1k . . . u1jk . . . u1n u11 . . . u1jk . . . u1k . . . u1n
. .
0 .. 0 ..
... ...
... ...
(k) (k) (k) (k) (k) (k)
akk . . . akjk . . . akn
aik jk . . . aik k . . . aik n
Ak =
0 ... Pki Ak Qkj
k k
=
0 ...
(k) (k) (k) (k) (k) (k)
aik k . . . aik jk . . . aik n akjk . . . akk . . . akn
0 ... 0 ...
(k) (k) (k) (k) (k) (k)
ank . . . anjk . . . ann anjk . . . ank . . . ann
(e.g. n ordinea explorarii pe coloane), sa zicem aik jk , este mutat n pozitia pivot
(k, k), prin intermediul a doua interschimbari, una de linii, cealalta de coloane,
exprimate matriceal prin nmultirea lui Ak la stanga, respectiv la dreapta, cu PE
Pkik , respectiv Qkjk ; vezi figura 2.3.
Notand Pkik cu Pk si Qkjk cu Qk , pasul k al algoritmului G devine:
1. Se determina cei mai mici ik si jk astfel ncat |aik jk | = maxi=k:n,j=k:n |aij |.
2. Se interschimba liniile ik si k, adica A Pk A.
3. Se interschimba coloanele jk si k, adica A AQk .
4. Se determina matricea ITE Mk astfel ncat (Mk A)ik = 0, i = k + 1 : n.
5. Se aplica transformarea A Mk A.
Astfel, la pasul k are loc transformarea
A Ak+1 = Mk Pk Ak Qk , (2.15)
iar procesul global de calcul, cunoscut sub numele de eliminare gaussiena cu pivotare
completa, conduce la matricea superior triunghiulara
def
A U = Mn1 Pn1 . . . M1 P1 AQ1 . . . Qn1 . (2.16)
1. Pentru k = 1 : n 1
1. Se determina ik k : n si jk k : n astfel ncat
|aik jk | = maxi=k:n,j=k:n |aij |.
2. p(k) ik
3. q(k) jk
4. Pentru j = k : n % interschimba liniile k si ik
1. akj aik j
5. Pentru i = 1 : n % 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
Teorema 2.3 Daca A Rnn este nesingulara, atunci algoritmul GPC se executa
complet, iar matricea superior triunghiulara rezultata U din (2.16) este nesingulara.
2.4 Factorizari LU
In multe situatii, 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.
A = LU (2.17)
Daca A Rnn este o matrice care are o factorizare LU, iar D este o matrice
diagonala nesingulara, atunci, D1 fiind de asemenea diagonala, (2.17) poate fi
scrisa n forma
A = LU = LDD1 U = L U , (2.18)
unde L = LD este inferior triunghiulara si U = D1 U este superior triunghiulara.
Daca D 6= I, atunci factorizarile (2.17) si (2.18) difera si deci factorizarea LU, daca
exista, nu este unica. De aceea este util a se introduce definitia urmatoare.
Definitia 2.4 Fie A Rnn . Daca exista matricele L Rnn inferior triunghiu-
lara unitate, U Rnn superior triunghiulara unitate si D Rnn diagonala astfel
ncat
A = LDU,
atunci expresia de mai sus este numita factorizare LDU a matricei A.
Teorema 2.4 O matrice A Rnn are o unica factorizare LDU daca si numai
daca submatricele lider principale A[k] , k = 1 : n 1, sunt nesingulare.
elemente calculate
1 ?
0
akk . . . akj . . . = lkk 1 . . . ukj . . .
.. ..
. .
aik i lik 0
.. .. 1
. .
k
elemente calculate
De asemenea,
k1
X
akj = lks usj + lkk ukj , j = k + 1 : n,
s=1
n care acum singura necunoscuta este scalarul ukj . Din propozitia 2.3 rezulta
A[k] = L[k] U [k] , unde A[k] , deci si L[k] sunt nesingulare, adica lkk 6= 0. Asadar,
k1
!
X
ukj = akj lks usj / lkk , j = k + 1 : n. (2.25)
s=1
Astfel, procedura initiata prin (2.22) si (2.23) poate fi continuata prin (2.24) si
(2.25); daca submatricele A[k] , k = 1 : n 1, sunt nesingulare, ceea ce garanteaza
ca mpartirea din (2.25) poate fi executata, procedura va calcula complet factorii
L si U . Observand ca (2.22) si (2.23) sunt cazuri particulare ale (2.24), respectiv
(2.25), putem include primul pas n bucla generala, rezultand algoritmul urmator.
Din aceasta egalitate, privita pe rand pentru cele patru blocuri componente, se pot
deduce usor blocurile dorite din L si U :
1. A11 = L11 U11 , deci L11 si U11 provin din factorizarea LU la nivel de element
a matricei A11 .
1
2. A21 = L21 U11 L21 = A21 U11 . Deci, U11 fiind cunoscut de la pasul
anterior, L21 poate fi calculat prin rezolvarea unui sistem superior triunghiular
cu parte dreapta multipla.
2.4. FACTORIZARI LU 87
3. A12 = L11 U12 U12 = L1 11 A12 . Deci, U12 este solutia unui sistem inferior
triunghiular cu parte dreapta multipla.
4. A22 = L21 U12 + B B = A22 L21 U12 ; blocul restant B depinde doar
de matrice cunoscute sau deja calculate.
Deci, n ordinea de mai sus, se pot calcula toate necunoscutele din (2.27).
Procedand mai departe n mod similar cu matricea B, se poate calcula o facto-
rizare LU a acesteia, adica
B = L22 U22 . (2.28)
In acest caz, egalitatea (2.27) devine o factorizare LU a matricei A, cu
L11 0 U11 U12
L= ; U= . (2.29)
L21 L22 0 U22
Pe scurt, aplicand n mod repetat pasii 1-4 de mai sus, dimensiunea problemei
se reduce de la n la n r, n 2r etc. La etapa m (unde n = mr), problema consta
n factorizarea LU a unui bloc r r, factorizarea ntregii matrice A fiind terminata.
Algoritmul de factorizare LU va consta deci dintr-o bucla continand pasii 1-4. In
figura 2.5 sunt reprezentate blocurile de interes pe parcursul unei iteratii.
HH
Y
H de factorizat
H
n
curent
Fig. 2.5: Structura blocurilor ntr-un pas al factorizarii Doolittle la nivel de bloc
k k1
!
X X
1
i > j = k Aik = Lit Utk Lik = Aik Lit Utk Ukk ; (2.35)
t=1 t=1
k k1
!
X X
k = i < j Akj = Lkt Utj Ukj = L1
kk Akj Lkt Utj . (2.36)
t=1 t=1
Ordinea n care se aplica formulele de mai sus este aceeasi ca n algoritmul la
nivel de element: se calculeaza ntai prima bloc coloana din L si prima bloc linie din
U ; diferenta este ca acum trebuie calculate doua blocuri diagonale, L11 si U11 (n
algoritmul la nivel de element, u11 = 1); aceasta se face printr-o factorizare Crout
LU; se continua apoi cu a doua bloc coloana din L si a doua bloc linie din U etc.
Procesul de calcul va decurge conform urmatoarei scheme:
1. Pentru k = 1 : m
1. Se calculeaza Lkk si Ukk factorizand LU termenul drept din (2.34)
2. Pentru i = k + 1 : m
1. Se calculeaza Lik ca n (2.35)
3. Pentru j = k + 1 : m
1. Se calculeaza Ukj ca n (2.36)
90 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
Pentru a detalia algoritmul si a-l scrie n mod cat mai eficient prin apeluri la
rutine BLAS-3, sa observam ca sumele din relatiile (2.342.36) se pot scrie compact;
exemplificam doar pentru una dintre sume, cea din (2.35), notand s = (k 1)r + 1,
f = kr, si = (i 1)r + 1, fi = ir:
k1
X
Lit Utk L(si : fi , 1 : s 1) U (1 : s 1, s : f ).
t=1
Mai mult, putem scrie compact toate relatiile de tip (2.35), pentru un k fixat, dar
cu i = k + 1 : m. Mai exact, bucla 1.2 din schema de mai sus se transforma ntr-o
1
singura atribuire (profitand de faptul ca Ukk nu depinde de i), anume:
In fine, combinand forma de mai sus cu termenul drept din (2.34), obtinem instruc-
tiunea 1.3 din algoritmul detaliat n continuare (calculele se pot efectua pe loc n
matricea A, dar, pentru claritate, nu procedam astfel).
U x = d,
b 1. Pentru k = 1 : n 1
1. b Pk b
2. b Mk b
Pentru detalierea schemei facem apel la propozitiile 2.1 si 2.2. Se obtine algo-
ritmul de mai jos.
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)
Notand
Qn1 . . . Q1 x = y, (2.40)
din (2.16) rezulta ca vectorul y poate fi calculat prin rezolvarea sistemului superior
triunghiular
U y = d, (2.41)
unde d este vectorul dat de (2.38). In final, din (2.40), si stiind ca Q1
k = Qk ,
obtinem
x = Q1 Q2 . . . Qn1 y. (2.42)
Din relatiile (2.38)(2.42), rezulta algoritmul urmator.
U U 1
A A
M M
ca, de exemplu, inversa nu se calculeaza atunci cand se rezolva sisteme liniare, dupa
cum nu se calculeaza determinantul pentru a testa nesingularitatea unei matrice.
unde Mk sunt matrice ITE si Pk sunt matrice elementare de permutare. Din (2.43)
rezulta
X A1 = U 1 Mn1 Pn1 . . . M1 P1 ,
deci inversa matricei A poate fi calculata astfel
A1 1. [M, U, p] = GPP(A)
2. X = UINV(U )
3. Pentru k = n 1 : 1 : 1
1. X XMk
2. X XPk
(1)
u1k ... ...
U 1 .. ... U 1 . ...
. ..
(1)
ukk ... X XMk Pk ...
-
k+1,k
M ... M ...
.. ..
. .
nk ... ...
k k
si deci
X A1 = Q1 Q2 . . . Qn1 U 1 Mn1 Pn1 . . . M1 P1 .
Scrierea algoritmului corespunzator este lasata n sarcina cititorului.
In practica, acuratetea obtinuta cu INV GPP este suficient de buna pentru
majoritatea aplicatiilor.
Observatia 2.3 Efortul de calcul necesar inversarii unei matrice este de aproxi-
mativ trei ori mai mare decat cel pentru rezolvarea unui sistem liniar de aceeasi
dimensiune. De aceea, de cate ori e posibil, inversarea matriceala trebuie evitata
si nlocuita de rezolvarea de sisteme liniare. De exemplu, pentru calculul scalarului
real
= cT A1 b,
unde A Rnn , b, c Rn , schema recomandata este
A1 = U 1 L1 ,
Numarul de operatii este tot 2n3 . Desigur, n practica este indicat a se folosi o
factorizare LU cu pivotare.
2.7. CONDITIONAREA SISTEMELOR LINIARE 97
x x + x x, (2.45)
astfel ncat
(A + A)(x + x) = b + b. (2.46)
98 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
Consideram doar perturbatii mici, respectand kAk kAk, kbk kbk (unde
k k este o norma consistenta oarecare), i.e. efectuam o analiza a sensibilitatii locale
a solutiei n raport cu variatia datelor.
Cu alte cuvinte, erorile relative kAk / kAk si kbk / kbk ale datelor de intrare
pot fi amplificate de (A) ori n solutie, presupunand ca toate calculele se efectueaza
exact (deci indiferent de algoritmul folosit).
Demonstratie. Deoarece Ax = b, din (2.46) rezulta
A x + A x + A x = b.
x A1 A x + A1 b.
ceea ce demonstreaza (2.47). (Am tinut seama ca kbk = kAxk kAk kxk.)
Asadar numarul de conditionare (A) definit n (2.48) furnizeaza o masura a
conditionarii problemei rezolvarii unui sistem liniar Ax = b. Un (A) mic cores-
punde unei bune conditionari, adica unei sensibilitati reduse a solutiei n raport cu
perturbatiile datelor. Vom prezenta n sectiunea urmatoare un rezultat care permite
aprecierea mai precisa a conditionarii n functie de valoarea (A). Se observa ca
doar matricea A determina conditionarea unui sistem, termenul liber b neavand
nici un rol; de aceea vorbim de conditionarea matricei A n loc de conditionarea
sistemului. Vom atasa un indice notatiei (A) atunci cand vom preciza norma
folosita n (2.48); de exemplu, (A) = kA1 k kAk . Intre norme echivalente,
alegerea uneia anume pentru evaluarea lui (A) nu este relevanta, ordinul de marime
al rezultatului fiind acelasi; de obicei, dintre normele p se alege (A) pentru
2.7. CONDITIONAREA SISTEMELOR LINIARE 99
Deci, desi reziduul kb H3 xk este relativ mic fata de b, eroarea relativa a solutiei
aproximative x este mult mai mare, de aproximativ 510 ori, i.e. cu un factor de
marime de ordinul lui (H3 ).
kA1 f k kyk
Ay = d kA1 k = sup .
f 6=0 kf k kdk
acea valoare di care produce cel mai mare |yi |. Schema de calcul poate fi rezumata
astfel:
kA1 k 1. Pentru i = 1 : n
Pi1
1. j=1 aij yj
2. Daca 0 atunci di 1
altfel di 1
3. yi (di )/aii
2. kyk
6. Daca s+ s atunci
1. yi yi+
2. Pentru k = i + 1 : n
1. k k+
altfel
3. yi yi
4. Pentru k = i + 1 : n
1. k k
3. kyk kAk
Executia algoritmului necesita aproximativ 3n2 flopi.
Consideram acum cazul general al unei matrice A Rnn a carei factorizare
P A = LU este cunoscuta. Numarul de conditionare (A) se poate estima uti-
lizand urmatoarea schema de calcul, a carei justificare depaseste cadrul acestei
lucrari.
(A) 1. Se aplica algoritmul 2.13 pentru a obtine o solutie de
norma cat mai mare a sistemului U T y = d
2. Se rezolva sistemele triunghiulare LT r = y, Lv = P r,
Uw = v
3. kAk kwk / krk
102 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
maxk=1:n k
= .
1
Numarul real este numit factor de crestere, deoarece arata cat de mult cresc
valorile elementelor matricei A n cursul transformarilor efectuate de algoritmul G.
De obicei, solutia calculata a sistemului (2.53) astfel scalat este mai precisa decat
solutia calculata a sistemului initial, dar n general nu exista nici o garantie n acest
sens, de aceea scalarea nu trebuie privita ca panaceu universal ci aplicata n functie
de problema.
Ae = Ax Ax = b (b r) = r. (2.54)
(A)M 1, atunci schema de rafinare iterativa sugerata mai sus conduce (de
obicei ntr-un numar foarte mic de iteratii) la solutia aproximativa x satisfacand
kx xk
2n cond(A, x) M , (2.56)
kxk
unde
def k |A1 | |A| |x| k
cond(A, x) = , (2.57)
kxk
iar |A| este matricea cu elementele |aij |.
Comparand acum (2.52) si (2.56) constatam ca n general rafinarea iterativa
conduce ntr-adevar la mbunatatirea acuratetii solutiei calculate deoarece
0
k=1 k=2 k=3
0
0 . . .
0
Fig. 2.8: Eliminarea gaussiana aplicata unei matrice banda de latime inferioara 2
si superioara 1. S-au notat cu elementele modificate la pasul respectiv, cu 0 cele
anulate, iar cu cele ramase nemodificate
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : min(k + r, n)
1. aik ik = aik /akk
2. Pentru i = k + 1 : min(k + r, n)
2.9. SISTEME BANDA 107
1. Pentru j = k + 1 : min(k + q, n)
1. aij aij ik akj
0
P1
M1 0
P2 M2 0 P3
. . .
0
Fig. 2.9: Eliminarea gaussiana cu pivotare partiala aplicata unei matrice banda
de latime inferioara 2 si superioara 1. S-a presupus ca la pasul k se efectueaza
permutarea liniilor k (curenta) si k + 2 (cea mai departata posibil de cea curenta)
Comentarii. Numarul de operatii este mai mare decat pentru algoritmul 2.14,
dar, daca r n sau q n, acesta este totusi 2n3 /3.
Lasam cititorului problema scrierii unui algoritm eficient de rezolvare a sistemu-
lui Ax = b, atunci cand A are structura banda, utilizand algoritmul 2.15.
In final, precizam ca pivotarea completa distruge structura banda si deci nu este
recomandata n acest caz.
2.10. SISTEME SIMETRICE 109
Asadar nu este necesara modificarea tuturor elementelor matricei, ci doar a celor din
(sa zicem) triunghiul inferior; numarul de operatii se reduce astfel la aproximativ
jumatate.
Pentru a pastra simetria sunt necesare transformari de congruenta, adica se
aplica transformarile ITE de ambele parti ale matricei A. Primul pas al eliminarii
gaussiene (modificate) va fi acum A M1 AM1T = M1 A (M1 A)e1 mT1 ; deoarece
(M1 A)e1 = a11 e1 , se observa ca nmultirea la dreapta cu M1T , adica (M1 A)M1T ,
nu afecteaza decat prima linie a matricei M1 A (identica cu prima linie a matricei
A), anume introducand zerouri n toate pozitiile din dreapta diagonalei. Asadar,
din punctul de vedere al implementarii, nmultirea la dreapta cu M1T nu necesita
calcule.
Continuand analog pentru celelalte coloane, se obtine echivalentul relatiei (2.10)
n cazul simetric
def
D = Mn1 . . . M2 M1 AM1T M2T . . . Mn1
T
, (2.59)
110 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
LDLT 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
P AP T = LDLT . (2.60)
Desigur, matricea D este inversabila. Expresia de mai sus este numita factorizare
cvasi-diagonala a matricei A.
2
Constanta se determina impunand conditia 1 + 1 = 1 + 1 2
, ceea ce
va conduce la factori de crestere (vezi sectiunea 2.8) asemanatori indiferent de di-
mensiunile pivotilor. Se obtine = (1 + 17)/8 0.64.
Aceasta strategie de pivotare face ca algoritmul FCD sa fie numeric stabil.
O analiza inversa a erorilor conduce la o margine similara cu cea din (2.50), cu
3n [21 31/2 41/3 . . . n1/(n1) ]1/2 ; aceasta margine pentru factorul de crestere
este putin mai mare decat cea pentru eliminarea gaussiana cu pivotare completa
(algoritmul GPC).
Costul pivotarii complete este de O(n3 ) comparatii, la fel ca pentru algoritmul
GPC, ceea ce constituie un efort de calcul important. De aceea este interesanta
gasirea unei strategii de pivotare partiala.
Pivotare partiala. Se poate demonstra ca alegerea pivotului cautand pe o sin-
gura coloana (si eventual pe diagonala) nu poate avea succes. Surprinzator, cautand
pe doua coloane se poate descrie o strategie de pivotare partiala eficienta (vezi [?]),
detaliata de schema (ne ocupam din nou doar de primul pas al factorizarii):
P AP T = LDLH ,
Teorema 2.12 Pentru orice matrice simetrica si pozitiv definita A Rnn , exista
o unica matrice inferior triunghiulara L Rnn , cu elemente diagonale pozitive,
astfel ncat
A = LLT , (2.67)
expresie care este numita factorizare Cholesky (iar L este numit factorul Cholesky
al matricei A). Reciproc, daca factorizarea Cholesky exista, atunci A este pozitiv
definita.
2.11. SISTEME SIMETRICE POZITIV DEFINITE 115
n care singura necunoscuta este lkk . Conform teoremei 2.12, daca A este pozitiv
definita, atunci exista un unic lkk pozitiv astfel ncat (2.69) sa aiba loc. Atunci,
k1
X
2
akk lkj >0 (2.70)
j=1
si v
u k1
u X
lkk = takk 2 .
lkj (2.71)
j=1
116 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
De asemenea,
k1
X
aik = lij lkj + lik lkk , i = k + 1 : n,
j=1
Formulele (2.68), (2.71) si (2.72) definesc algoritmul de mai jos; pentru concizie,
am inclus si primul pas n bucla de parcurgere a coloanelor. Totodata, acest algoritm
este cel mai bun mijloc de testare a pozitivitatii unei matrice; testul se bazeaza pe
faptul ca factorizarea Cholesky a unei matrice poate fi calculata daca si numai
daca matricea este pozitiv definita (teorema 2.12); asadar, daca termenul stang al
inegalitatii (2.70) nu este pozitiv, atunci matricea A nu este pozitiv definita.
efectuandu-se de doua ori mai putine operatii decat daca s-ar aplica algoritmul de
eliminare gaussiana.
In privinta conditionarii, problema rezolvarii sistemului pozitiv definit Ax = b
satisface inegalitatea (2.47).
Inversa (care este tot simetrica si pozitiv definita) si determinantul unei matrice
simetrice pozitiv definite se calculeaza adaptand ideile din sectiunea 2.6 la contextul
factorizarii Cholesky A = LLT .
Matrice banda. Daca A Rnn este o matrice simetrica, pozitiv definita
si banda de latime r, atunci factorul Cholesky este inferior triunghiular banda de
latime r. Aceasta se poate observa cu usurinta din relatia (2.72), n care un element
lik depinde de valorile lij aflate la stanga sa pe linia i (i.e. j < k); asadar, li1 = ai1 ,
deci n prima coloana se mosteneste structura matricei A; daca, pentru un indice
de coloana s, avem lij = 0 pentru j = 1 : s 1, atunci este evident ca lis = ais /lss ,
deci structura se mosteneste si n coloana s. In concluzie, linia i are, n portiunea
subdiagonala, aceeasi structura n A si L.
Adaptarea algoritmului CHOL la cazul matricelor banda este un exercitiu re-
lativ simplu pe care l lasam cititorului (vezi problema 2.36).
Cazul complex. Daca matricea A Cnn este hermitica si pozitiv definita,
atunci factorizarea sa Cholesky este unica si are forma
A = LLH ,
respectiv
k1
X
lik = aik lij lkj / lkk , i = k + 1 : n. (2.74)
j=1
rutine auxiliare.
MATLAB (MATrix LABoratory) [XIV] are o interfata mai simpla, dar rutinele
sale implementeaza de asemenea algoritmi de mare performanta.
Rezolvarea sistemului liniar (eventual cu parte dreapta multipla) AX = B se
face apeland la operatorul de mpartire la stanga; daca A si B sunt variabilele
memorand matricea coeficientilor sistemului si, respectiv, termenul sau drept, atunci
solutia se calculeaza cu A\B. Sistemul (cu necunoscuta la stanga) XA = B se rezolva
utilizand operatorul de mpartire la dreapta, solutia fiind B/A. In ambele cazuri,
algoritmul implementat este eliminarea gaussiana cu pivotare partiala, indiferent
de tipul matricei.
Factorizarea P A = LU este calculata de functia lu, iar factorizarea Cholesky
de functia chol. Nu exista o functie dedicata factorizarii cvasi-diagonale.
Inversa unei matrice se calculeaza cu functia inv, iar determinantul cu det.
Reamintim ca n nici un caz solutia unui sistem AX = B nu se calculeaza cu
inv(A)*B.
Pentru calculul numarului de conditionare exista mai multe functii; cond cal-
culeaza exact 2 (A), ceea ce necesita mai multe operatii decat rezolvarea sistemului
liniar Ax = b (algoritmul va fi prezentat n capitolul 5); rcond estimeaza 1/ (A),
utilizand algoritmul din finalul sectiunii 2.7; n fine, condest estimeaza 1/1 (A) cu
un algoritm neprezentat n aceasta lucrare.
2.13 Probleme
P 2.1 Descrieti o varianta a eliminarii gaussiene n care se introduc zerouri n coloanele
lui A, deasupra diagonalei, n ordinea n : 1 : 2, si care produce factorizarea A = U L,
unde U este superior triunghiulara unitate si L este inferior triunghiulara.
P 2.2 Scrieti variantele vectoriale ale algoritmilor GPP si GPC, utilizand apeluri la
functii din biblioteca BLAS 1.
nn
PnA R
P 2.3 Fie o matrice strict diagonal dominanta pe coloane, i.e. cu proprietatea
|ajj | > i=1,i6=j |aij |. Demonstrati ca pivotarea partiala nu este necesara n procesul de
eliminare gaussiana si ca toti multiplicatorii gaussieni sunt subunitari (n modul).
P 2.4 Fie matricea de transformare elementara Gauss-Jordan Mk = In mk eTk , definita
de vectorul mk = [1k . . . k1,k 0 k+1,k . . . nk ]T .
a. Fie x Rn , cu xk 6= 0. Determinati mk astfel ncat Mk x = xk ek .
b. Fie A Rnn , avand submatricele lider principale A[k] nesingulare, k = 1 : n 1.
Scrieti un algoritm care, utilizand transformari Gauss-Jordan, diagonalizeaza matricea A,
i.e. genereaza M1 , M2 , . . . , Mn1 astfel ncat Mn1 . . . M2 M1 A = D, cu D diagonala.
Care este numarul de operatii ?
c. Introduceti pivotarea n algoritmul anterior.
P 2.5 Demonstrati unicitatea factorizarii LDU n conditiile teoremei 2.4.
P 2.6 Demonstrati ca daca A Rnn admite o factorizare LDU unica, atunci subma-
tricele lider principale A[k] , k = 1 : n 1, sunt nesingulare. (Indicatie: utilizati reducerea
la absurd.)
120 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE
P 2.7 Demonstrati ca algoritmul GPP modificat conform descrierii din sectiunea 2.4.1
produce o factorizare LU pentru care |lik | 1, pentru i > k.
P 2.8 Cum trebuie modificat algoritmul GPC aplicat matricei A Rnn pentru a furniza
factorizarea LU cu permutari pe linii si pe coloane de forma P AQ = LU ? Demonstrati
ca |ukk | |ukj |, pentru j > k (n plus, |lik | 1, pentru i > k).
P 2.11 Cum trebuie modificati algoritmii 2.7 si 2.8 astfel ncat sa functioneze corect si
atunci cand dimensiunea n a matricei nu este multiplu al dimensiunii r a blocurilor ?
Ce este preferabil: (a) rezolvarea sistemului Cz = w cu operatii complexe sau (b) rezolvarea
sistemului decomplexificat cu operatii reale ?
A1
+ = A
1
A1 BD+
1
CA1 , unde D+ = D + CA1 B.
A1 A1 BD+1
H 1 = 1
+
1 .
D+ CA1 D+
P 2.24 Matricea A Rnn de mai jos este un exemplu (construit special n acest scop)
n care factorul de crestere atinge valoarea maxima n algoritmul GPP.
1 0 ... 0 1
2 3
6 1 1 ... 0 1 7
.. .. .. ..
6 7
A=6
6 .. 7.
7
6 . . . . . 7
4 1 1 ... 1 1 5
1 1 ... 1 1
(3.1). Desigur, pentru ca problema minimizarii functiei sa aiba sens, este necesar sa presupunem
ca sistemul liniar (3.1) are cel putin o solutie, i.e. b ImA.
124 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
Subliniem din start ca alegerea normelor din (3.2) si (3.3) depinde de natura
problemei considerate si, n acelasi timp, determina specificul metodelor de calcul
utilizate pentru rezolvarea ei. (De exemplu, n cazul normelor k k1 sau k k
se obtin probleme de programare liniara, care se rezolva prin metodele expuse n
capitolul 2, vezi [X]).
In acest capitol vom considera ca normele si coincid cu norma euclidiana
k k = k k2 , iar terminologia utilizata va fi urmatoarea.
1. In cazul m n problema de minimizare
kb Ax k = minn kb Axk (3.4)
xR
este, prin definitie, solutia normala n sensul CMMP (i.e. solutia de norma
euclidiana minima) a sistemului (3.1).
Problemele de tip CMMP enuntate mai sus apar sub diverse forme (inclusiv cu
date complexe) n multe aplicatii care, de exemplu, vizeaza aproximarea functiilor,
prelucrarea statistica a datelor experimentale, modelarea si identificarea sistemelor
dinamice, prelucrarea semnalelor etc.
Exemplul 3.1 Consideram un proces descris printr-o dependenta functionala
y = f0 (u), cunoscuta doar partial din date experimentale constand ntr-o multime
de perechi intrare-iesire (ui , yi ), unde yi = f0 (ui ), i = 1 : m.
Se pune problema gasirii unei expresii analitice aproximative f pentru functia
f0 , sub forma unei combinatii liniare cu coeficientii c1 , c2 , . . . , cn a n functii date
g1 , g2 , . . . , gn , i.e.
Xn
f (u) = cj gj (u),
j=1
sa fie minima.
Introducand matricea A Rmn cu elementele aij = gj (ui ), i = 1 : m,
j = 1 : n, precum si vectorii b = [ y1 y2 . . . ym ]T Rm si x = [ c1 c2 . . . cn ]T Rn ,
problema minimizarii lui (3.6) se scrie evident sub forma sintetica (3.4).
n care acum reziduurile ri reprezinta erori (sau zgomote) de masura si, n consecinta,
au o descriere statistica. Se poate arata ca, n anumite conditii standard, estimarile
optimale ale parametrilor x = [c1 . . . cn ]T sunt solutii ale problemei CMMP (3.6)
cu exact aceleasi date A, b ca mai sus. In general, probleme de modelare sistemica
extrem de complicate admit o dubla interpretare, ca probleme de aproximare sau de
estimare, si n consecinta se trateaza n spiritul principiului CMMP. Pentru detalii
si aplicatii specifice, cititorul poate consulta [?, ?].
Teoria problemelor CMMP este intim legata de geometria spatiului euclidian
Rm , n special de notiunea de ortogonalitate, care dupa cum vom vedea mai de-
parte da un sens (geometric) clar si extrem de intuitiv problemelor de minimizare
formulate mai sus. In mod corespunzator, practica numerica actuala recomanda
rezolvarea acestor probleme prin metode directe de triangularizare a matricei A,
bazate pe utilizarea transformarilor ortogonale 2 .
De aceea, n primele sectiuni ale acestui capitol, vom introduce transformarile
ortogonale utilizate n calcule si vom descrie procedurile corespunzatoare de trian-
gularizare ortogonala. Pe aceasta baza, n continuare vom prezenta procedurile de
rezolvare a problemelor CMMP de tip (3.4) si (3.5), insistand totodata asupra unor
aspecte practice importante privind conditionarea problemelor considerate precum
si stabilitatea numerica a algoritmilor de calcul propusi.
3.1.1 Reflectori
Consideram spatiul Rm cu produsul scalar (x, y) = y T x si notam cu kxk = (xT x)1/2
norma euclidiana indusa. Amintim ca o matrice U Rmm se numeste ortogonala
daca U T U = Im .
2 Aicieste esential faptul ca norma euclidiana considerata n (3.4) si (3.5) este invarianta n
raport cu grupul transformarilor ortogonale. In legatura cu aceste notiuni, cititorul este invitat sa
consulte capitolul 1.
126 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
Uk x Y
H
H * x
H
HH
HH
HH
HH
H - -
u 0 u (uT x)u
uuT AT u
Uk A = (Im )A = A uv T , unde v= .
Altfel spus, matricea transformata B = Uk A este o modificare de rang 1 a lui A.
Aplicarea transformarii C = AUk , unde acum A Rlm are m coloane,
iar Uk actioneaza la dreapta, se face partitionand A pe linii si observand ca, n
T
virtutea simetriei lui Uk , avem AUk = (Uk AT ) . Prin urmare, asupra coloanelor
lui AT , adica a liniilor lui A, are loc aceeasi transformare ca mai sus. In particular,
postmultiplicarea cu Uk nu modifica primele k 1 coloane ale matricei A.
AA. In calculul numeric generarea reflectorilor se face n scopul introducerii
de zerouri ntr-un vector. Pe scurt, fiind dat un vector x Rm , putem determina
un reflector Uk de forma (3.8) astfel ncat ultimele m k componente ale vectorului
transformat sa fie nule, i.e. (Uk x)i = 0, pentru i = k + 1 : m. Formularea precisa a
acestui fapt esential trebuie retinuta.
x1 x1
.. ..
x1
.
.
xk1 xk1
x2
U1
u2
Uk
.. .. xk
. . xk+1 uk+1
xm um . .
.. ..
xm um
x U1 x (3.20)
132 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
U1 x = em ,
Desigur, reflectorul U1 obtinut la pasul 1 poate fi aplicat mai departe unei alte
matrice, atata timp cat partea esentiala A(2 : m, 1) a vectorului Householder u
precum si scalarul sunt disponibili. De exemplu, daca C Rlm , atunci trans-
formarea la dreapta C CU1 se efectueaza partitionand C pe linii, i.e.
1. Pentru i = 1 : l
1. RF(A(:, 1), , C(i, :)).
3.1.2 Rotatii
Dupa cum se stie, n cazul m = 2 o rotatie (plana) de unghi se reprezinta prin
matricea
cos sin
P = . (3.21)
sin cos
numeric de W. Givens n 1954. Structura (3.22) corespunde cazului i > k, iar n (3.21) avem
P = P12 cu c = cos , s = sin . Subliniem ca, n acceptiunea noastra, o rotatie este definita de
doua numere reale c, s, satisfacand conditia c2 + s2 = 1. Evident, n acest fel se evita utilizarea
n calcule a functiilor trigonometrice.
3.1. TRANSFORMARI ORTOGONALE 135
Numerele reale
xk xi
c= , s= (3.24)
r r
definesc o rotatie Pki de ordin m n planul (k, i) astfel ncat
(
xl , pentru l 6= k, i
(Pki x)l = r, pentru l = k (3.25)
0, pentru l = i.
precum si c2 + s2 = 1.
Precizand (deocamdata arbitrar) semnul lui r, relatiile (3.23) si (3.24) conduc
la urmatorul algoritm de calcul al rotatiei Pki cu proprietatea ceruta.
2
x2 6 x
>
r
- -
x1 P12 x 1
Fig. 3.3: Efectul aplicarii unei rotatii P12 asupra unui vector x R2
1. c = 1, s = 0
altfel
2. Daca |x2 | |x1 | atunci
1. r sgn(x2 )r
altfel
2. r sgn(x1 )r
3. c = x1 /r, s = x2 /r
4. x1 = r
% calculul lui z
5. Daca c = 0 atunci
1. z = 1
altfel daca |x2 | |x1 | atunci
2. z = 1/c
altfel
3. z = s
6. x2 = z
x Px (3.30)
se face direct numai daca parametrii c, s sunt disponibili ca atare; n caz contrar, n
prealabil are loc reconstructia lor pe baza scalarului z, utilizand secventa urmatoare.
138 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
Tabelul 3.2: Proceduri de calcul cu rotatii. (N.B. Semnificatia lui z este precizata
n text)
Xm
kxk = (xH x)1/2 = ( |xi |2 )1/2 .
i=1
3.2. TRANSFORMARI UNITARE 139
Im 6
'$
9
0rr r Re-
&%
= 1 = 2
kuk2
sau
= sgn(Rex1 )kxk. (3.37)
(Retinem ca n primul caz C, iar n al doilea R.)
In continuare scriem ca de obicei
uuH
QH
1 x = (Im )x = x u, (3.38)
unde
uH x
= . (3.39)
Prin urmare, relatia (3.35) are loc daca si numai daca u = (x + e1 )/, sau pe
componente
x1 + xi
u1 = ; ui = , i = 2 : m. (3.40)
De asemenea, trebuie sa avem
si respectiv
xi
u1 = 1;
ui = , i=2:m
x1 + (3.43)
x 1
= 1 + 1 , ( = ).
In practica numerica actuala se ntalnesc doua versiuni de implementare a rela-
tiilor de calcul stabilite mai sus.
In LINPACK [XIII] se asociaza relatiile (3.36) si (3.42). In consecinta, para-
metrul = u1 rezulta real, deci reflectorul obtinut este hermitic, QH 1 = Q1 . In
schimb, prima componenta a vectorului transformat
x1
3.2. TRANSFORMARI UNITARE 141
Comentarii. Calculul normei euclidiene la pasul 2.1 se poate face utilizand functia
complexa CNRM2 din BLAS 1.
AA. Fie acum x Cm un vector arbitrar, iar Q1 un reflector dat. Aplicarea
transformarilor
x QH1 x, x Q1 x (3.44)
se face tinand seama de relatiile (3.38), (3.39) precum si de tipul reflectorului con-
siderat.
Daca Q1 este un reflector hermitic, atunci cele doua transformari (3.44) co-
incid, iar procedura corespunzatoare difera de procedura reala RF numai prin uti-
lizarea produsului scalar complex la pasul 1.1, vezi (3.39).
Daca Q1 este un reflector complex, generat de procedura CRFG, atunci se
tine seama ca prima componenta u1 = 1 a vectorului Householder nu este memorata
ca atare. Scrierea procedurii de transformare corespunzatoare primei relatii (3.44),
de exemplu notata CRF, este propusa ca exercitiu.
Procedurile de calcul cu reflectori complecsi sunt prezentate n tabelul 3.3 10 .
La fel ca n cazul real, tipic procedura CRFG se utilizeaza pentru a introduce
zerouri ntr-o anumita coloana a unei matrice A, iar procedura CRF se utilizeaza
pentru a transforma n mod corespunzator celelalte coloane.
Presupunand ca tabloul A e dimensionat adecvat, n general exista patru tipuri
de transformari posibile, doua la stanga (QA si QH A) si doua la dreapta (AQ si
AQH ). In primul caz A se partitioneaza pe coloane si fiecarei coloane i se aplica
transformarea corespunzatoare. In al doilea caz A se partitioneaza pe linii. 11
10 Procedurile de calcul cu reflectori complecsi modificati, e.g. CmRFG etc. se scriu similar cu
2. x1 r = x2 , x2 = 0
altfel
3. = x1 / |x1 |
4. = kxk
5. c = |x1 | / , s = x2 /
6. x1 r = , x2 = 0
x P x, (3.52)
Pe scurt, orice matrice este unitar echivalenta (la stanga) cu o matrice superior
triunghiulara. A doua relatie arata ca A poate fi scrisa sub forma unui produs
A = QR, unde Q este unitara, iar R este superior triunghiulara. In calculul numeric,
aceasta relatie se numeste factorizare QR, de aceea procedurile de calcul stabilite
pe baza relatiei fundamentale (3.53) vor fi notate cu sigla QR. (Asupra factorizarii
QR vom reveni pe larg n sectiunea urmatoare.)
Demonstratia va fi constructiva, conducand la o procedura de triangularizare
ortogonala a matricei A utilizand reflectori sau rotatii. Pentru precizare, n cele ce
urmeaza alegem prima posibilitate.
In cazul real, ne referim la faptele stabilite n sectiunea 3.1.1 si pentru claritate
consideram succesiv doua situatii cu semnificatii structurale distincte.
In cazul m > n matricea de transformare va fi un produs de reflectori, i.e.
U = Q T = Un . . . U2 U1 ,
(U1 a1 )i = 0, i = 2 : m.
are toate elementele subdiagonale ale primei coloane egale cu zero, i.e. este superior
triunghiulara n prima coloana. Daca ai1 = 0 pentru i = 2 : m, atunci luam
pur si simplu U1 = Im si trecem la etapa urmatoare. (Matricea unitate Im este
ortogonala !)
Etapa k, k = 2 : n. Presupunem ca dupa desfasurarea primelor k 1 etape ale
procedurii am obtinut matricea
Ak = Uk1 . . . U2 U1 A
3.3. TRIANGULARIZAREA ORTOGONALA 145
(k)
Acum, daca elementele aik , i = k + 1 : m, nu sunt toate nule, atunci exista un
reflector Uk Rmm de ordinul m si indice k, astfel ncat
(k)
(Uk ak )i = 0, i = k + 1 : m.
Daca matricea A este monica, i.e. are coloane independente, atunci la fiecare
etapa elementele aik , i = k : m, ale matricei curente A nu sunt toate nule. In
consecinta, pentru a determina reflectorul Uk (adica vectorul Householder uk si
scalarul k ), la pasul 1.1 se utilizeaza algoritmul 3.2, aplicat vectorului x = A(:, k).
(Componentele nenule ale vectorilor Householder uk vor fi notate uik , i = k : m.)
Pentru calculul transformarii de la pasul 1.2 se utilizeaza algoritmul 3.1 aplicat
vectorilor x = A(:, j), j = k + 1 : n. Combinand ideile de mai sus, rezulta imediat
In cazul real sau n cazul utilizarii reflectorilor hermitici de forma (3.31) avem
QH k = Qk , iar implementarea schemei QR are la baza procedurile RFG si RF din
tabelul 3.1. Componentele uik , i = k + 1 : m, ale vectorilor Householder uk se
memoreaza natural pe pozitiile elementelor anulate, iar scalarii k se memoreaza
ntr-un vector suplimentar, ca n urmatoarea diagrama corespunzatoare situatiei de
dupa pasul k
r11 r12 . . . r1k r1,k+1 . . . r1n
u21 r22 . . . r2k r2,k+1 . . . r2n
.. . . .
. .. ..
. . . . .
uk1 uk2 . . . rkk rk,k+1 . . . rkn
u (k+1) (k+1)
k+1,1 uk+1,2 . . . uk+1,k ak+1,k+1 . . . ak+1,n
.. .. .. .. ..
. . . . .
(k+1) (k+1)
um1 um2 . . . umk am,k+1 . . . amn
1 2 ... k
Algoritmul rezultat se redacteaza astfel.
2. Daca 6= 0 atunci
akk
1. Daca akk 6= 0 atunci
|akk |
2. aik uik = aik /, pentru i = k : m
3. k ukk = 1 + akk
4. Pentru j = P k+1:n
1. = ( m i=k uik aij ) /k
2. aij aij + uik , pentru i = k : m
% elementul diagonal
5. akk =
Comentarii. In cazul real, algoritmul 3.5 necesita NQR operatii 12 si este numeric
stabil, dupa cum vom arata n sectiunea 3.8. Modul de apel este [A, ] = QR(A),
unde este vectorul real cu componentele k , k = 1 : s, iar A apare ca tablou
de intrare-iesire. Subliniem ca algoritmul 3.5 nu calculeaza explicit reflectorii Qk
din (3.56), si cu atat mai putin matricea de transformare QH , ci doar memoreaza
(extrem de economic) toate elementele necesare pentru definirea acestora.
nmultiri complexe. Deoarece o adunare complexa este echivalenta cu 2 adunari (reale), iar o
nmultire complexa este echivalenta cu doua adunari si patru nmultiri, algoritmul 3.5 cere 4N
adunari si 4N nmultiri, adica 8N (sau 4NQR ) operatii reale (flopi).
3.4. FACTORIZAREA QR 149
3.4 Factorizarea QR
In aceasta sectiune vom utiliza procedurile de triangularizare ortogonala stabilite
n sectiunea anterioara pentru a construi factorizarea QR a unei matrice A Cmn
de forma generala. Notam ca de obicei s = min(m, n).
In cazul m n din (3.53) si (3.56) rezulta
R }n
A = QR, R = (3.57)
0 }m n
unde matricea
Q = Q1 Q2 . . . Qn (3.58)
150 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
este unitara iar R este superior triunghiulara ca n (3.54). (In particular, daca
m = n atunci R = R .) Partitionand Q conform cu R, i.e.
Q = [ Q Q ], (3.59)
|{z} |{z}
n mn
Teorema 3.2 Orice matrice A Cmn cu m n poate fi scrisa sub forma (3.60),
unde Q Cmn are coloane ortogonale, iar R Cnn este superior triunghiulara.
Prin definitie, relatia (3.60) constituie factorizarea QR a matricei A. Daca A
este monica, atunci R rezulta inversabila si reciproc. In acest caz, factorizarea
QR este unica daca n plus impunem conditia ca factorul triunghiular R sa aiba
elemente diagonale (reale si) pozitive.
QR Ch 1. Se formeaza G = AH A
2. Se calculeaza R1 efectuand factorizarea Cholesky G = R1H R1
3. Se calculeaza Q1 = AR11 rezolvand sistemul supe-
rior triunghiular Q1 R1 = A
3.4. FACTORIZAREA QR 151
G+ = G + C H C,
i.e. G+ este gramianul matricei A din exemplul 3.5. In consecinta, factorul Cholesky
cautat R+ poate fi determinat efectuand triangularizarea ortogonala a matricei A+ ,
construite direct cu elementele date R si C.
O idee asemanatore se aplica pentru a efectua actualizarea factorizarii Cholesky
n cazul unei modificari de rang 2, i.e.
S
q3
6
- q2 S
q1
A = QR , (3.64)
unde, evident, A = A[m] este submatricea lider principala a matricei A.
Daca A este inversabila, atunci R are aceeasi proprietate, iar din (3.64) si
B = QS rezulta B = A (R )1 S. Altfel spus, ntre coloanele matricei A exista
relatia B = A X, unde X = (R )1 S este solutia sistemului triunghiular R X = S,
prin urmare matricea
X
N=
Imn
not
constituie o baza (neortogonala) a subspatiului N = KerA Cn . (Se constata
imediat ca A este epica si AN = 0.)
Trebuie nsa sa observam ca, n absenta unei strategii adecvate de pivotare a
coloanelor, conditia de inversabilitate mentionata mai sus nu este ndeplinita, astfel
3.4. FACTORIZAREA QR 153
Acest mod de lucru se justifica avand n vedere ca, n general, un anumit algoritm de calcul trebuie
sa manevreze un numar cat mai mic de tablouri de lucru.
154 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
% coloana k
3. aik aik , i = k : m
4. akk = 1 + akk
altfel
5. aik = 0, pentru i = k + 1 : m
6. akk = 1
Comentarii. In cazul real, algoritmul 3.6 necesita NQR operatii, care (la fel ca
n algoritmul 3.5) se consuma pentru actualizarea coloanelor la pasul 2.1.2. Modul
de apel este A = GQR(A, ). Retinem ca determinarea explicita a factorizarii
QR a matricei A prin apelarea succesiva a procedurilor QR si GQR necesita n
total 2NQR operatii, deci este relativ costisitoare. Pentru utilizare n capitolele
urmatoare, sintaxa unei astfel de proceduri de factorizare QR este [Q, R] = FQR(A)
(lasam cititorului micile detalii de implementare).
In contextul procedurii de triangularizare CQR, care utilizeaza reflectori complecsi,
schema de acumulare GQR ramane evident valabila. Implementarea ei directa, bazata
pe aplicarea la pasul 2 a procedurii de transformare CRF pentru actualizarea coloanelor
lui Q , este extrem de simpla.
GCQR % Acumularea primelor n coloane Q ale matricei Q = Q1 Q2 . . . Qn ,
m n, unde Qk sunt reflectori complecsi.
1. Pentru j = 1 : n
1. qij = 0, pentru i = 1 : m
2. qjj = 1
2. Pentru k = n : 1 : 1
1. Pentru j = 1 : n
1. CRF(A(k : m, k), k , Q(k : m, j))
Subliniem nsa ca procedura GCQR n forma scrisa mai sus este neeficienta deoarece
nu exploateaza structura speciala a matricei Q care, pe masura aplicarii transformarilor
la pasul 2, se umple progresiv, ncepand cu ultima coloana. (Un calcul simplu arata
ca, n cazul m = n, algoritmul GCQR necesita Nop = 2n3 operatii complexe, adica cu
50% mai mult decat algoritmul 3.6.) Modificarile necesare pentru a corecta acest defect,
permitand totodata formarea lui Q pe loc n tabloul A, pot fi aduse de catre cititorul
interesat, eventual dupa o analiza comparativa cu algoritmul 3.6.
Matricea Q , care completeaza Q pana la o matrice unitara, poate fi calculata
sub forma
0 0
Q =Q = Q1 Q2 . . . Qn , (3.66)
Imn Imn
utilizand o schema de acumulare similara, dar mai putin eficienta. (Evident, acum
tabloul A trebuie extins cu m n coloane necesare pentru a memora Q .)14
In final, subliniem ca formarea matricelor Q , Q sau Q prin acumularea trans-
formarilor este relativ costisitoare. De aceea, n contextul aplicatiilor considerate
n acest capitol, se recomanda evitarea acestui calcul n favoarea utilizarii formei
factorizate (3.58) a matricei Q, furnizata ca atare de algoritmii de triangularizare
QR.
14 In cazul m < n, cu referire la (3.64), calculul matricei Q se poate face apeland direct procedura
GQR sub forma A(:, 1 : m) = GQR(A(:, 1 : m), ). Dupa executie, rezultatul dorit Q suprascrie
blocul lider A al matricei A.
3.4. FACTORIZAREA QR 155
B QH B = QH H H
s . . . Q2 Q1 B (3.67)
si
B QB = Q1 Q2 . . . Qs B (3.68)
se face partitionand B pe coloane.
In cazul (3.67), schema de calcul este evident urmatoarea.
si se procedeaza astfel:
3.4. FACTORIZAREA QR 157
Qb = Qk Qk+1 . . . Qk+nb 1 ,
Qb = Q1 Q2 . . . Qnb ,
Q = Q1 , Q Q+ = QQi , i = 2 : nb .
Q = I Y W H, (3.71)
W = u1 , Y = 1 u1 .
Q+ = QQi = (I Y W H )(I i ui uH
i )=
= I Y W H i(I Y W H H
)ui ui =
W H
= I Y zi =
uHi
H
= I Y+ W+ ,
deci
W+ = [W ui ], Y+ = [Y zi ],
H
unde zi = i (I Y W )ui . Matricea W , formata prin alaturarea vectorilor House-
holder ui , este produsa si memorata ca atare de catre procedura CQR pe pozitiile
subdiagonale din tabloul Ab . (Intrucat primele i 1 componente ale vectorilor
Householder ui sunt nule, iar uii = 1, W este chiar inferior trapezoidala unitate.)
In consecinta, reprezentarea WY este complet definita de tabloul Y , a carui proce-
dura de formare (vezi pasul 2 al schemei Bl1 ) este urmatoarea.
% Formarea lui Y
1. Y (:, 1) = 1 u1
2. Pentru i = 2 : nb
1. Y (:, i) = (i ui ) Y (W H (i ui ))
B QH B = (I W Y H )B = B W (Y H B), (3.72)
respectiv
1. N = Y H B
2. B B W N
W = u1 , T = 1 .
Mai departe putem scrie
Q+ = QQi = (I W T W H )(I i ui uH
i )=
= I W T W H i ui uH
i + W(i T W H ui )uH
i =
T ti WH
= I W ui =
0 i uHi
= I W+ T+ W+H
deci avem
T ti
W+ = [W ui ], T+ = ,
0 i
unde ti = i T (W H ui ).
Procedura de formare a tabloului triunghiular T , care defineste complet repre-
zentarea W2 T, este urmatoarea.
% Formarea lui T
1. T (1, 1) = 1
2. Pentru i = 2 : nb
1. T (1 : i 1, i) = i T (W H ui )
2. T (i, i) = i
La pasul 3 al procedurii Bl1 , reflectorul bloc n reprezentarea W2 T se aplica
matricei B conform schemei
B QH B = (I W T W H )B = B W T (W H B), (3.74)
respectiv
1. N = W H B
2. N T H N
3. B B W N
O analiza simpla arata ca n acest caz este suficient un singur tablou de lucru de
dimensiune nb n, relativ mica. In primele nb coloane ale acestuia se formeaza T ,
iar n coloanele urmatoare se depune produsul intermediar N = W H B. (Subliniem
ca blocurile T utilizate n etapele succesive ale procedurii de triangularizare nu se
memoreaza, ci se formeaza pe masura ce sunt necesare.) Numarul de operatii este
(4m+nb )nb (nnb ). Cresterea numarului de operatii este compensata de memorarea
mai compacta a reprezentarii triunghiulare.
Combinand ideile de mai sus, procedura de triangularizare ortogonala la nivel
de bloc poate fi rezumata astfel.
160 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
In redactarea de mai sus, Ab este tabloul de lucru din memoria rapida n care
se efectueaza triangularizarea blocului curent, iar B si N sunt blocurile utilizate de
GEMM n procesul de aplicare a transformarii. (In caz de necesitate, blocul B poate
fi tratat sub forma partitionata.) Amintim ca tabloul W este format si memorat
ca atare n triunghiul strict inferior al blocului Ab obtinut la pasul 1.3. Evident, n
cazul nb = 1 procedura de mai sus se reduce la CQR. Instructiunile 1.2, 1.4, 1.5.3
si 1.5.7 efectueaza transferul datelor ntre memoria principala si cea rapida.
In final, subliniem ca procedurile de acumulare si transformare GCQR si
MCQR pot fi de asemenea reformulate la nivel de bloc, procedand n esenta ca la
pasul 1.5 al algoritmului de mai sus.
unde vectorul q1 este normat, i.e. kq1 k = 1, deci r11 = ka1 k si q1 = a1 /r11 . In
general avem
aj = q1 r1j + . . . + qj1 rj1,j + qj rjj ,
j1
X
rjj = kaj qk rkj k.
k=1
Aici este important sa subliniem ca, desi cele doua proceduri sunt echivalente din
punct de vedere matematic, iar numarul de operatii este acelasi n ambele cazuri,
NGS = 2mn2 , totusi performantele lor numerice sunt diferite. Procedura GS este
numeric instabila atat ca mijloc de calcul al factorizarii QR cat si ca metoda de
rezolvare a problemei CMMP. In schimb, procedura MGS furnizeaza o factorizare
QR satisfacatoare (n sensul ca, de regula, vectorii calculati qj rezulta ortogonali
n precizia de lucru) si constituie totodata un algoritm numeric stabil pentru re-
zolvarea problemei CMMP. De aceea, n multe situatii, procedura MGS (imple-
mentata ngrijit) poate constitui o alternativa viabila fata de perechea QR, GQR,
relativ mai costisitoare.
162 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
3.4.5 Factorizarea QL
In unele aplicatii matricea A este adusa la forma inferior triunghiulara n raport cu
diagonala secundara care ncepe din coltul dreapta-jos, i.e.
QH A = L, (3.75)
unde lij = 0, i < m n + j, j = 1 : n, iar Q este unitara. (Pentru simplitate am
presupus m n.)
Procesul de triangularizare parcurge coloanele n ordine inversa, ncepand cu
ultima si anuleaza elementele situate deasupra diagonalei secundare utilizand reflec-
tori modificati. Notand reflectorii cu indicele coloanei n care se pastreaza vectorii
Householder corespunzatori, putem scrie
QH = QH H H
1 Q2 . . . Qn , (3.76)
iar procedura de calcul poate fi rezumata astfel.
QL % Schema de triangularizare QL, cazul m n
1. Pentru k = n : 1 : 1
1. Se genereaza Qk a.. (QH
k A)ik = 0, i = 1 : m n + k 1
2. A QH k A
La pasul 1.1 se utilizeaza o procedura de tip mRFG (vezi tabelul 3.1), iar la
pasul 1.2 se modifica numai primele m n + k elemente din coloanele j = 1 : k 1,
utilizand procedura corespunzatoare mRF.
Aplicatiile procedurii de triangularizare QL sunt perfect similare cu aplicatiile
descrise mai sus ale procedurii QR (vezi problemele 3.42, 3.43).
In primul rand, vom stabili conditiile n care problema (3.77) este bine definita,
i.e. are o solutie unica.
Teorema 3.3 Oricare ar fi vectorul b Cm , problema (3.77) are o solutie unica
daca si numai daca matricea A Cmn este monica, i.e. m n si rangA = n.
In acest caz, pseudosolutia n sensul CMMP a sistemului Ax = b poate fi scrisa
n forma
x = A+ b, (3.78)
n care matricea A+ Cnm este prin definitie pseudoinversa lui A si are expresia
Ax = b1 , (3.82)
iar din (3.81) se vede ca orice astfel de x are proprietatea (3.77) si reciproc.
Existenta pseudosolutiei x este demonstrata.
Relatia (3.82) arata ca cea mai buna aproximare b = Ax a lui b pe S = ImA
coincide cu proiectia ortogonala b1 , deci b = b1 exista ntotdeauna si este unic
determinata oricare ar fi A. Aceasta afirmatie constituie lema proiectiei ortogonale
si reprezinta generalizarea unui fapt binecunoscut din geometria elementara. Pe
scurt (vezi (3.77) si figura 3.6), distanta minima de la un punct b la un subspatiu
S este lungimea (euclidiana) a perpendicularei duse din b pe S.
Consideratiile geometrice de mai sus pot fi exprimate analitic. Notand
r = b Ax , din (3.80) si (3.82) se vede ca r = b2 , unde b2 S = KerAH ,
deci AH r = 0. Prin urmare avem
Im A r b
= , (3.83)
AH 0 x 0
AH Ax = AH b. (3.84)
diagonala descrise n sectiunea 2.10, dar acestea nu sunt eficiente n cazul de fata deoarece nu
exploateaza structura speciala a sistemului considerat (vezi problema 3.52).
164 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
OCC
6 C
b C b Ax
b2 C
C
C
C
b 1 1
C
o
S
X S b1C Ax
XXX
X SC
Ax XX z
XSC
S = ImA
T = S
S Ch 1. Se formeaza c = AH b
2. Se formeaza G = AH A
3. Se efectueaza factorizarea Cholesky G = R1H R1
4. Se calculeaza x rezolvand succesiv sistemele
triunghiulare R1H y = c si R1 x = y.
Trebuie nsa sa subliniem ca, la fel ca n observatia 3.4, aceasta metoda (desi
relativ economica si extrem de compacta) nu este recomandabila din punct de vedere
numeric, deoarece matricea G = AH A este rau conditionata. Cu precautie, ea poate
fi avuta n vedere, n special daca m n, iar economia de memorie realizata prin
formarea lui G constituie un obiectiv esential.
b) Solutiile unor sisteme liniare cu matrice pozitiv definite avand structura de
gramian pot fi determinate aplicand ideea algoritmilor de radacina patrata bazati
pe utilizarea transformarilor unitare (vezi observatia 3.4). Acest mod de lucru,
frecvent utilizat n practica actuala, este ilustrat prin problema 3.46.
unde Q este unitara, iar R este superior triunghiulara inversabila. Aplicand trans-
formarea QH ambilor membri ai sistemului Ax = b si notand
H d }n
Q b = d, d = , (3.86)
d }m n
R x = d , (3.90)
n care d are semnificatia din (3.86). Prin urmare, avand n vedere ca vectorul
transformat b d = QH b a fost deja calculat la pasul 1, r poate fi obtinut (pe loc
n b) completand schema SQR cu secventa
3. b(1 : n) = 0
4. Pentru k = n : 1 : 1
1. b Qk b
3.5. REZOLVAREA PROBLEMEI CMMP 167
calculat fara a determina n prealabil pseudosolutia x . In general, toate calculele se fac utilizand
exclusiv informatiile obtinute la pasii 0 si 1 ai procedurii CMMP, fara nici o referire la datele
initiale A, b care, de altfel, au si fost distruse.
168 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
Prin urmare, daca matricea A este monica, atunci conform teoremei 3.3 fiecare
problema (3.97) are o solutie unica xj = A+ bj , j = 1 : p, iar matricea
X = [x1 . . . xp ], rezultata prin agregarea acestora constituie solutia unica
X = A+ B (3.98)
a problemei (3.95).
Procedural, pseudosolutia X Cnp se calculeaza simplu, efectuand o sin-
gura data triangularizarea ortogonala a matricei A si aplicand apoi repetat algo-
ritmul de rezolvare SQR fiecarei coloane B(:, j), j = 1 : p, a matricei B. Daca
n plus se doreste calculul reziduului de norma Frobenius minima R = B AX ,
atunci se aplica procedura CMMP n care vectorul b se nlocuieste peste tot cu ma-
tricea B. Desigur, n acest nou context pot fi aplicate avantajos (pe calculatoarele
cu memorie ierarhica) procedurile bloc de triangularizare ortogonala si aplicare a
transformarilor, expuse n sectiunea 3.4.4.
1 A+ A = In
2 AA+ = (AA+ )H .
Nici aceasta constatare, desi teoretic extrem de interesanta, nu are nsa utilitate
calculatorie. Determinarea lui A+ prin rezolvarea sistemului AX = Im utilizand
procedura CMMP este evident neeficienta, deoarece aplicarea transformarilor de la
pasul 1 nu tine seama de structura speciala a membrului drept B = Im .
In sfarsit, din (3.78), prin identificare cu (3.91), (3.92) rezulta
AV H = L, respectiv AZ = L, (3.101)
V H = Z = Z1 Z2 . . . Zs (3.102)
In cazul real sau n cazul utilizarii reflectorilor hermitici (Zk = ZkH ), compo-
nentele vkj , j = k + 1 : n, ale vectorilor Householder vk se memoreaza natural pe
pozitiile elementelor anulate. Algoritmul rezultat poate fi redactat astfel.
3.6.2 Factorizarea LQ
In aceasta sectiune construim factorizarea LQ a unei matrice A Cmn de forma
generala.
In cazul m n, relatiile (3.101) si (3.102) pot fi scrise sub forma
L |{z}
A = LV, L = [|{z} 0 ], (3.103)
m nm
unde matricea
H
V = Zm . . . Z2H Z1H (3.104)
este unitara, iar L este inferior triunghiulara de ordin m. Partitionand V = Z H
conform cu L, i.e.
V }m
V = , Z = [|{z} Z ]
Z |{z} (3.105)
V }n m
m nm
Demonstratia ultimei afirmatii este evidenta. Mai mult, daca A este epica,
atunci matricea hermitica G = AAH este pozitiv definita, prin urmare considerand
1
factorizarea Cholesky G = L1 LH 1 si definind V1 = L1 A, putem stabili cu usurinta
unicitatea factorizarii LQ, n care factorul triunghiular L are elementele diagonale
pozitive.
In general, matricea hermitica pozitiv semidefinita G = AAH se numeste gramian
al (liniilor) lui A. Observatia 3.4 se reformuleaza corespunzator n noul context.
Daca matricea A este epica, atunci matricea Z din (3.105) are o semnificatie
geometrica remarcabila. Din (3.101) sau (3.103) rezulta AZ = [L 0], unde Z are
structura (3.105), deci
AZ = 0. (3.107)
Mai mult, Z Cn(nm) are coloanele ortogonale, deci constituie o baza ortogonala
a subspatiului N = KerA. Proiectorul ortogonal pe N este P2 = Z Z H .
In mod similar, matricea Z Cnm (care, n (3.105), completeaza Z pana
la o matrice ortogonala) constituie o baza ortogonala a subspatiului complementar
N = ImAH . Proiectorul ortogonal pe S este P1 = AH (AAH )1 A sau mai simplu
P1 = Z Z H . Pe scurt, partitia (3.105) corespunde descompunerii ortogonale
Acumularea transformarilor
In cazul m n, factorizarea LQ a matricei A poate fi determinata utilizand pro-
cedura de triangularizare ortogonala la dreapta din sectiunea anterioara. Factorul
triunghiular L se obtine ca atare n triunghiul inferior al matricei A, iar factorul
ortogonal V poate fi calculat sub forma
Aplicarea transformarilor
La fel ca n sectiunea 3.4, matricea unitara Z generata de algoritmul de triangu-
larizare LQ aplicat matricei A se utilizeaza pentru a transforma adecvat o alta
matrice data B.
Aplicarea transformarii
B ZB = Z1 Z2 . . . Zs B (3.110)
Procedand n acelasi spirit, toate rezultatele din sectiunea 3.4 pot fi reformulate
n contextul factorizarii LQ. Stabilirea versiunii la nivel de bloc a procedurii de
triangularizare la dreapta precum si a procedurilor de ortogonalizare Gram-Schmidt
sunt propuse cititorului ca exercitii.
Factorizarea RQ
In unele aplicatii matricea A este adusa la forma superior triunghiulara n raport
cu diagonala secundara care ncepe din coltul dreapta-jos, i.e.
AZ = R, (3.111)
Z = Zm . . . Z2 Z1 , (3.112)
La pasul 1.1 se utilizeaza o procedura de tip mRFG (vezi tabelul 3.1), iar la
pasul 1.2 se modifica numai primele n m + k elemente din liniile i = 1 : k 1,
utilizand procedura corespunzatoare mRF.
Aplicatiile procedurii de triangularizare RQ sunt perfect similare cu aplicatiile
descrise mai sus ale procedurii LQ.
x = A+ b, (3.114)
Demonstratia rezulta usor (cel putin n cazul real) utilizand metodele clasice de
minimizare cu restrictii (problema (3.113) este extrem de simpla). Noi vom proceda
direct, stabilind pe rand a) unicitatea si b) existenta globala a solutiei x .
a) Pentru a demonstra unicitatea, nu e necesar sa presupunem ca matricea A
este epica, ci doar ca
b ImA, (3.116)
i.e. multimea X a solutiilor sistemului Ax = b nu e vida. Desigur, n limbaj
geometric, X este planul (sau varietatea liniara) de ecuatie Ax = b. Mai precis,
3.6. SISTEME LINIARE SUBDETERMINATE 175
N = KerA planul
Ax = b
x
x2 :
-
N 0 x = x1
teorema 1.3 din capitolul 1 afirma ca X = x0 + KerA, unde x0 este o solutie par-
ticulara. In consecinta, conform lemei proiectiei ortogonale, solutia x a problemei
(3.113) coincide cu piciorul perpendicularei din origine pe planul X si ca atare este
unic determinata, vezi figura 3.7.
La fel ca n demonstratia teoremei 3.3, aceste consideratii geometrice pot fi
exprimate analitic. Planul X este paralel cu subspatiul N = KerA, deci x KerA
sau x N = ImAH , i.e. exista (cel putin) un y Cm astfel ncat x = AH y .
(In interpretare variationala, y este vectorul multiplicatorilor Lagrange asociati
restrictiilor egalitate Ax = b din (3.113).) In definitiv avem
In AH x 0
= , (3.117)
A 0 y b
de unde, eliminand x rezulta
AAH y = b, x = AH y . (3.118)
b) Existenta globala a lui x este asigurata, i.e. (3.116) are loc oricare ar fi
b Cm , daca si numai daca A este epica. In acest caz, matricea G = AAH este
pozitiv definita deci inversabila, iar (3.114) si (3.115) rezulta din (3.118).
Observatia 3.6 Sistemul extins (3.117) si sistemul normal (3.118) au o semnificatie
similara cu cea a sistemelor (3.83) si respectiv (3.84) din observatia anterioara. Si
aici gramianul G = AAH este o matrice rau conditionata, astfel ncat, n general,
calculul solutiei normale prin rezolvarea sistemului (3.118) nu este recomandabil.
Relatia de mai sus arata ca, n procesul de minimizare din (3.113), vectorul u = u
este fixat prin
Lu = b, (3.122)
iar u este liber.
Pentru a determina solutia normala x , consideram (3.120), unde Z este orto-
gonala, deci kZuk = kuk. Avem
u = 0. (3.124)
3.7.1 Preliminarii
Consideram sistemul liniar
Ax = b, (3.127)
unde A Rmn este o matrice data, iar b Rn este un vector arbitrar. Notam
r = rangA si presupunem ca matricea A este de rang maxim, i.e. r = s, unde
s = min(m, n) 22 . In consecinta, conform teoremelor 3.5 si 3.6, sistemul (3.127) are
o solutie n sens CMMP unica
x = A+ b, (3.128)
unde matricea A+ are expresii diferite dupa cum m n sau m n.
Avand n vedere concizia expunerii, n cele ce urmeaza vom adopta o terminolo-
gie precum si notatii cat mai uniforme. Vom spune ca A+ este inversa (n sens
21 Deoarece aceasta tematica are un caracter pur matematic, i.e. nu vizeaza calitatea algoritmilor
de calcul, pe parcurs vom utiliza formulele cele mai convenabile pentru scopul propus.
22 O proprietate P definita pe Rmn se numeste tipica daca este generica si structural stabila,
adica are loc aproape peste tot (n afara unei varietati algebrice) si se conserva oricare ar fi
micile variatii ale (elementelor) matricei considerate.
De exemplu, n cazul m = n, proprietatea de inversabilitate este generica (are loc peste tot
n afara varietatii definite de ecuatia detA = 0) si structural stabila (daca detA 6= 0, atunci
det(A + E) 6= 0, oricare ar fi perturbatia E suficient de mica). Pe scurt, matricele inversabile sunt
tipice n Rnn . Similar, matricele de rang maxim sunt tipice n Rmn .
178 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
deci (3.132) rezulta direct, utilizand definitia lui (G) precum si relatiile (3.131) si
(3.133). Cazul m n este similar; desigur acum H = (A+ )T A+ .
(A + E)x = b + f, (3.135)
b >
r = b2
b1 = Ax
In sfarsit, avem b1 = Ax , deci kb1 k kAk kx k, iar din figura 3.8 se vede ca
kr k kbk 1
= tg, = .
kb1 k kb1 k cos
3.7. CONDITIONAREA PROBLEMELOR CMMP 181
Observatia 3.7 Putem obtine usor o evaluare mai fina decat (3.137), tinand
seama ca n (3.138) perturbatiile E si f actioneaza diferentiat. In acest scop scriem
E = E1 + E2 , unde E = P E, = 1 : 2, sunt proiectiile (coloanelor) lui
E pe subspatiile S si respectiv S . Avem A+ E = A+ E1 (deoarece A+ P2 =
= A+ (I AA+ ) = 0) precum si E T r = E2T r (deoarece r = P2 b iar P2 este
proiector ortogonal, i.e. P22 = P2 si P2T = P2 ). In mod similar avem f = f1 + f2 ,
unde f = P f , = 1 : 2, iar A+ f = A+ f1 . Prin urmare, relatia (3.138) poate fi
scrisa sub forma echivalenta, dar mai precisa
x = G1 E2T r A+ E1 x + A+ f1 , (3.139)
kP Ek A b
kAk, kP f k kbk, (3.140)
deci (A) poate fi estimat extrem de simplu, utilizand estimatorul de conditie pentru
matrice triunghiulare descris n sectiunea 2.7. Acelasi rezultat poate fi obtinut
aplicand procedura de triangularizare ortogonala cu pivotarea coloanelor, descrisa
n sectiunea 3.9. In acest caz, o (sub)evaluare a lui (A) poate fi obtinuta prin simpla
inspectie, sub forma (A) = r11 /rnn , unde rkk , k = 1 : n, sunt elementele diagonale
ale factorului triunghiular R, dispuse pe diagonala n ordine descrescatoare.
Pe de alta parte, reexaminand formula fundamentala (3.142), este util sa retinem
ca influenta perturbatiilor E si f asupra pseudosolutiei x depinde de localizarea
acestora n raport cu subspatiile S si S . De exemplu, daca ImE ImA, atunci evi-
dent E2 = P2 E = 0, deci sensibilitatea lui x este dictata de (A) (iar nu de 2 (A)),
chiar daca reziduul r este important. In unele aplicatii, aceste circumstante pot fi
realizate printr-o filtrare prealabila adecvata a datelor de intrare, dar discutarea
acestor tehnici depaseste scopurile expunerii de fata. In alta ordine de idei, este
evident ca perturbatiile inerente datorate erorilor de rotunjire actioneaza n gen-
eral aleator si n orice caz nediferentiat n raport cu S si S , astfel ncat de fapt
dependenta de 2 (A) nu poate fi niciodata eliminata complet n situatiile practice,
indiferent de masurile de precautie luate.
In rezumat, sensibilitatea pseudosolutiei este determinata de conditionarea ma-
tricei A precum si de clasa a problemei CMMP considerate. De asemenea, ea
depinde de tipul structural al perturbatiilor considerate.
kx x k
1 (A), unde 1 = 2A + b . (3.144)
kx k
Ax + Ex = f, x = AT y + E T y .
3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 183
Avand nsa n vedere structura extrem de simpla a relatiei (3.145), utilitatea prac-
tica a acestei precizari este aici limitata.
cm = cmM , (3.147)
n acest sens, deci este implicit legata de o anume problema de calcul precizata.
3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 185
secventei [IX].
186 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
unde (
not b
1
1 = A + cos = ncm (1 + cos ),
not A (3.156)
2 = tg = ncm tg.
Relatia (3.155) arata ca n final acuratetea solutiei calculate x depinde atat de
conditionarea (A) si clasa ale problemei CMMP considerate, cat si de nivelul
erorilor , = 1 : 2, introduse de algoritmul folosit pentru rezolvarea ei. Conform
relatiilor (3.155) si (3.136), acest nivel este determinat de dimensiunile m, n ale
problemei precum si de precizia de lucru M continuta implicit de parametrul generic
cm (vezi (3.147)).
In general, evaluarile de tip (3.155), (3.156) sunt extrem de acoperitoare, dar
totodata au marele merit de a sublinia ca n situatiile dificile (care, dupa cum am
vazut, pot fi detectate relativ usor n practica) sunt necesare actiuni suplimentare
(vizand e.g. lucrul n dubla precizie, rafinarea iterativa a solutiei calculate x etc.),
chiar daca aceasta se obtine utilizand un algoritm numeric stabil cum este SQR.
Consideram acum problema, relativ mai simpla, a calculului solutiei normale
x a sistemului (3.127), n care matricea A este epica. Conform relatiilor (3.154) si
(3.144), solutia normala calculata x satisface o relatie de forma
kx x k
1 (A), (3.157)
kx k
unde
not
1 = 2A + b = mcm . (3.158)
Mentionam ca, n practica, acuratetea solutiei calculate n acest mod se dovedeste
de cele mai multe ori satisfacatoare.
D1 AD2 x = D1 b, (3.159)
In cazul m > n, schema de mai sus este, n principiu, aplicabila ca atare sistemu-
lui (3.127), dar ea se dovedeste eficienta numai daca acest sistem este aproape com-
patibil, i.e. 0 (vezi discutia din sectiunea 3.7.2). In caz contrar, influenta rezidu-
ului asupra solutiei este determinanta (n acord cu relatiile (3.137) si (3.138)), deci
rafinarea iterativa trebuie sa se faca corectand simultan evolutia ambelor marimi.
Altfel spus, n problemele specific CMMP, cu reziduu mare, schema de corectie
prezentata mai sus trebuie aplicata nu sistemului dat (3.127), ci sistemului extins
(3.83).
In consecinta, presupunand data o solutie aproximativa (x, r) a sistemului extins,
n primul rand vom calcula reziduul corespunzator
s b Im A r
= , (3.161)
t 0 AT 0 x
iar apoi vom determina corectiile r si x rezolvand sistemul
Im A r s
= . (3.162)
AT 0 x t
s QT s (3.163)
R1 x = s1 z1 , z 2 = s2 . (3.164)
R1T z1 = t. (3.165)
Acum este clar ca dezideratele formulate mai sus relativ la rezolvarea sistemului
extins (3.162) pot fi realizate procedand n ordinea (3.163), (3.165), (3.164), dupa
care r rezulta utilizand relatia
z1
r = Q . (3.166)
z2
QH A = R (3.167)
QH = QH H H
s . . . Q2 Q1 (3.170)
Ak+1 = QH
k (Ak k ), (3.172)
Prin urmare, calculul repetat si costisitor al normelor (3.171) poate fi evitat, uti-
lizand n schimb relatiile de actualizare relativ simple 29
v
u !2
u (k+1)
(k+1) (k) u |akj |
j = j t 1 (k)
. (3.174)
j
(A).
194 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
n care elementele satisfac relatiile (3.168), blocul lider R1 este superior triunghiular
inversabil, dar blocul R2 nu rezulta nul datorita erorilor de calcul inerente. Pentru a
determina rangul r al matricei A, trebuie sa efectuam corect trunchierea factorului
triunghiular R, punand
R2 = 0, (3.177)
n acord cu (3.169), n care evident matricea superior trapezoidala ramasa este
A = Q T. (3.181)
. (Valoarea = 0 nu este interzisa, dar de obicei conduce la decizia r = s.) Pe de alta parte,
gradul de siguranta al deciziei de rang poate fi nesatisfacator, mai ales daca modulele rkk scad
uniform, fara sa nregistreze vreun salt semnificativ. In asemenea situatii dificile se recomanda
determinarea rangului pe baza descompunerii valorilor singulare, vezi capitolul 5.
3.9. DESCOMPUNEREA ORTOGONALA COMPLETA 195
unui set de r coloane liniar independente ale matricei initiale A, iar Q constituie
versiunea lor ortogonalizata. In mod corespunzator, matricea Q = Q(:, r + 1 : n)
constituie o baza ortogonala a subspatiului complementar S = KerAH . (Vom
folosi sintaxa [Q, R, ] = FQRP(A) pentru apelul procedurii de calcul al factorizarii
QR cu pivotarea coloanelor; implementarea este lasata cititorului, cu mentiunea ca
acumularea transformarilor ortogonale este identica cu aceea din algoritmul GQR.)
Pe de alta parte, considerand gramianul G = AH A si tinand seama de (3.181),
n care matricea Q are coloanele ortogonale, deducem
T G = T H T. (3.182)
Z = Zr . . . Z2 Z1 . (3.186)
Desigur, liniile lui A sunt parcurse n ordine inversa, ncepand cu ultima, iar
anularea elementelor are n vedere conservarea structurii preexistente de zerouri.
In consecinta, reflectorii Zk sunt de tipul celor din exemplul 3.5, dar aici vectorii
Householder sunt notati vk , iar partea lor esentiala vkj , j = m+1 : n, este memorata
pe pozitiile elementelor anulate din liniile lui A, la fel ca n algoritmul 3.9. Procedura
rezultata din combinarea acestor idei se redacteaza astfel.
A = Q S X H , (3.188)
x = A+ b, (3.190)
unde, prin definitie, matricea A+ Cnm este pseudoinversa normala (sau Moore-
Penrose) a lui A.
sau
(S )1 0
x = Z QH b, (3.196)
0 0
din care expresia pseudoinversei A+ este evidenta.
Exploatand forma factorizata a transformarilor unitare QH si Z, schema de
calcul al pseudosolutiei normale se stabileste imediat.
3.11 Probleme
P 3.1 In planul R2 se da vectorul x = [3 4]T si se considera reflectorul elementar
U = I 2uuT , unde kuk = 1.
a. Fie u = e1 . Sa se construiasca vectorul transformat y = U x si sa se reprezinte grafic
transformarea. Ce modificari apar daca u = e2 ?
b. Sa se determine vectorul Householder normat u astfel ncat U x = e1 . Cate solutii
exista ? Cat rezulta ?
c. Explicati de ce n calcule este mai bine sa presupunem ca vectorul u nu este neaparat
normat, introducand scalarul ca n (3.8). Rezolvati din nou punctul b aplicand algoritmul
3.2 si observand ca = . Justificati alegerea semnului lui recomandata n text. Ce
se ntampla daca x = [3 105 ] ?
d. Aplicati n acest caz simplu indicatiile de implementare ce nsotesc algoritmul
3.2. Aratati cum se face scalarea vectorului Householder u = [u1 u2 ]T astfel ncat sa
obtinem u1 = , respectiv u1 = 1. Verificati ca n fiecare caz are loc transformarea dorita
U x = e1 .
e. Ilustrati grafic diversele situatii semnificative ntalnite la punctele bd.
P 3.2 Rezolvati problema anterioara n R3 , considerand de exemplu vectorii x = [3 4 0]T
sau x = [3 4 5]T .
P 3.3 Fie x, y Rm doi vectori dati. In ce conditii exista un scalar si un reflector U
astfel ncat U x = y ? Ce restrictii apar daca impunem conditia suplimentara = 1 ?
Scrieti algoritmii de generare a reflectorului U n cele doua situatii.
P 3.4 Fie x Rm un vector dat, x 6= 0.
a. Sa se determine un reflector U astfel ncat prima coloana U e1 a lui U sa fie un
multiplu scalar de x, i.e. U e1 = x. Cat trebuie sa fie ? Cate solutii exista ?
b. Ce semnificatie geometrica au celelalte coloane U ej , j = 2 : m, ale lui U ?
c. Scrieti algoritmul de calcul al unei baze ortogonale B = [b1 b2 . . . bm ] a lui Rm ,
unde b1 = x este un vector dat, kxk = 1.
d. Reformulati n mod avantajos punctele ac de mai sus n cazul n care vectorul
dat x are primele k 1 componente nule, i.e. xi = 0, i = 1 : k 1. Precizati structura
lui U precum si structura bazei ortogonale B astfel obtinute. Ilustrati grafic constructia,
considerand m = 3, k = 2.
e. Reveniti la punctul a si ncercati sa determinati U astfel ncat U em = x. Ce se
schimba la punctele bd ?
3.11. PROBLEME 201
P 3.9 Fie S Rmm o matrice simetrica pozitiv definita, arbitrara dar fixata. Se
considera spatiul vectorial Rm cu produsul scalar (x, y)S = y T Sx si norma euclidiana
kxk2S = (x, x)S . Doi vectori x, y Rm se numesc S-ortogonali daca (x, y)S = 0. Matricea
A se numeste S-simetrica daca (y, Ax)S = (Ay, x)S , x, y Rm , adica SA = AT S sau
A = S 1 AT S. Matricea U Rmm se numeste S-ortogonala daca pastreaza produsul
scalar (, )S , i.e. (U x, U y)S = (x, y)S , x, y Rm , adica U T SU = S.
a. Sa se arate ca orice matrice S-ortogonala este asemenea cu o matrice ortogo-
nala. Sa se deduca de aici ca, n general, dupa o transformare de coordonate convenabila,
proprietatile geometrice ale spatiului Rm dotat cu produsul scalar (, )S se reduc la pro-
prietatile euclidiene uzuale.
b. Sa se defineasca notiunea de S-reflector elementar si sa se studieze principalele
proprietati ale acestui tip de transformari. Cum se implementeaza avantajos algoritmii de
generare si aplicare a reflectorilor S-ortogonali ?
202 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE
P 3.10 Pastram aceeasi terminologie ca n problema anterioara chiar daca matricea si-
metrica (inversabila) S este de semn nedefinit. In particular, fie S = J, unde
Ip 0
J= , p + q = m. (3.197)
0 Iq
uuT J 1
U = Im , = kuk2J . (3.199)
2
Sa se scrie algoritmul de aplicare a transformarii x y = U x si sa se verifice prin calcul
direct ca kU xkJ = kxkJ .
b. Fie x Rm un vector dat. Sa se stabileasca n ce conditii exista un J-reflector de
forma (3.199) astfel ncat
U x = e1 , R {0} (3.200)
si sa se scrie algoritmul de generare a lui U . Discutie.
c. Fie S o matrice simetrica inversabila. Sa se stabileasca n ce conditii S admite
factorizari de forma S = RT JR sau S = LT JL, n care R si L sunt matrice superior,
respectiv inferior triunghiulare. Sa se scrie algoritmii de factorizare Cholesky cu semn,
corespunzatori celor doua relatii de mai sus.
d. Aratati ca daca exista doua matrice patrate A si B (nu neaparat triunghiulare)
astfel ncat S = AT JA = B T JB, atunci exista o matrice J-ortogonala Q astfel ncat
B = QA. Altfel spus, oricare doi factori cu semn ai lui S sunt J-ortogonal echivalenti.
P 3.11 In planul R2 se da vectorul x = [3 4]T si se considera rotatia plana P = P12 cu
parametrii c, s.
a. Fie c = 3/2, s = 1/2. Sa se calculeze vectorul transformat y = P x si sa se
reprezinte grafic transformarea.
b. Sa se determine c, s astfel ncat P x = re1 . Cate solutii exista ? Cat rezulta r ?
P 3.12 Fie x, y Rm doi vectori dati. In ce conditii exista un scalar si o rotatie Pki
astfel ncat Pki x = y ?
P 3.13 Fie P o rotatie plana. Calculati detP si determinati valorile si vectorii proprii ai
matricei P .
P 3.14 Fie x Rm un vector dat.
a. Scrieti algoritmii de generare a unei secvente de rotatii P astfel ncat P x = re1 .
Analizati diversele variante posibile.
b. Acelasi enunt, utilizand o grupare convenabila a rotatiilor n secvente de rotatii
disjuncte (vezi observatia 3.2).
P 3.15 Se da o matrice A Rmm . Sa se scrie algoritmii de aplicare a transformarilor
A P A si A AP T , unde P sunt secventele de rotatii generate n problema 3.14.
34 Cel mai simplu exemplu este planul Lobacevski R2 cu p = 1, q = 1. Spatiul Minkovsky din
teoria relativitatii este R4 cu p = 1, q = 3. In acest caz (3.198) se numeste con de lumina, iar
transformarile J-ortogonale formeaza grupul Poincare al lui R4 .
3.11. PROBLEME 203
P 3.27 Ce simplificari apar n problema precedenta daca A este superior Hessenberg, iar
C = cT este un vector linie avand numai ultima componenta nenula ?
P 3.28 Fie A Rmn monica, cu m > n. Utilizand informatia furnizata de algoritmul de
triangularizare cu reflectori Un . . . U2 U1 A = R, scrieti algoritmul de acumulare a primelor
p coloane ale matricei Q = U1 U2 . . . Un , unde p 1 : m este un ntreg dat. Calculati
numarul de operatii n functie de p. Cum memorati rezultatul ? Discutati cazul n care
matricea A nu este neaparat monica.
P 3.29 Aceeasi problema ca mai sus, utilizand algoritmul de triangularizare ortogonala
cu rotatii.
P 3.30 Fie Q matricea din problema 3.28. Precizati care dintre schemele urmatoare
realizeaza mai eficient acumularea lui Q si de ce.
1. Q = Im 1. Q = Im
2. Pentru k = 1 : n 2. Pentru k = n : 1 : 1
1. Q QUk 1. Q Uk Q
b. rezolvarea sistemului A+ x+ = b+ , unde b+ = , cu b Rm si R dati.
b
c. Stabiliti o relatie ntre pseudosolutiile x+ si x ale sistemelor A+ x+ = b+ , respectiv
Ax = b.
Z
d. Considerati cazul general A+ = , cu Z Rpn .
A
P 3.38 Fie B Rmp o matrice data, iar Q = Q1 Q2 . . . Qn matricea din problema 3.28.
Scrieti algoritmul de aplicare a transformarilor B QT B si B QB la nivel de bloc.
P 3.40 In conditiile problemei 3.28, scrieti un algoritm pentru calculul vectorului y = Ax,
cu x Rn dat. (N.B. Matricea A a fost distrusa n urma executiei algoritmului de
triangularizare.)
P 3.45 Rezolvati problemele 3.24-3.26 nlocuind peste tot matricele superior triunghiulare
R si R+ cu matrice inferior triunghiulare. Reformulati n acelasi spirit problema 3.27.
(G + C T C)x+ = c + C T y,
n care G = RT R este o matrice simetrica pozitiv definita al carei factor Cholesky superior
triunghiular R este cunoscut, iar matricea C Rln precum si vectorii c Rn , y Rl
sunt dati. Stabiliti o relatie ntre x+ si solutia x a sistemului Gx = c.
b. Aceeasi problema ca mai sus, pentru sistemul A+ x+ = d, unde A+ este matricea
din problemele 3.24, 3.25 iar d Rn un vector dat.
unde F este functia patratica din problema 3.53, matricea A Rmn este epica, iar
b Rm .
a. Scrieti conditiile necesare de minim utilizand metoda multiplicatorilor Lagrange.
Puteti arata ca problema considerata are solutie unica ? Analizati cazul general n care
matricea G nu este neaparat pozitiv definita.
b. Scrieti un algoritm care calculeaza x si = F (x ).
P 3.56 Fie A Rmn monica, B Rmp epica si b Rm . Rezolvati problema CMMP
generalizata
ky k2 = min kyk2 .
Ax+By=b
not
Observatie. Daca p = m si B = Im , atunci evident y = r = b Ax, deci se obtine
problema CMMP din sectiunea 3.5.
P 3.57 Fie A Rmn monica, C Rln epica si b Rm , d Rl . Rezolvati problema
CMMP cu restrictii liniare
kb Ax k = min kb Axk.
Cx=d
P 3.61 a. Aratati ca orice matrice A Cmn poate fi scrisa sub oricare din formele
(i) A = Q C, (ii) A = BV , unde Q are coloanele ortogonale, C este epica, respectiv B
este monica, iar V are liniile ortogonale.
b. Scrieti algoritmi pentru determinarea factorizarilor (i) si (ii).
c. Aratati ca A+ = C + (Q )H , respectiv A+ = (V )H B + .
d. Scrieti algoritmi pentru calculul pseudoinversei normale a sistemului Ax = b, cu
b Rm dat, utilizand factorizarile (i) si (ii).
P 3.62 O matrice A Cmn se numeste (ad-hoc) pseudounitara (sau partial izometrica)
daca exista doua matrice cu coloane ortogonale U Cmr si V Cnr astfel ncat
A = UV H.
a. Ce structura au gramienii G1 = AH A si G2 = AAH ? Interpretare geometrica.
b. Aratati ca A+ = V U H .
c. Aratati ca o matrice A Cmn este pseudounitara daca si numai daca A+ = AH .
d. Cum se poate testa faptul ca o anumita matrice data A Cmn este 1) monica,
2) epica, 3) pseudounitara, 4) proiector ortogonal ?
P 3.63 Fie A Cmn .
a. Scrieti un algoritm de triangularizare ortogonala la dreapta cu pivotarea liniilor, i.e.
AZ = L, unde L rezulta inferior triunghiulara. Precizati strategia de pivotare utilizata.
b. Indicati cateva aplicatii posibile ale acestui algoritm si explicati de ce n practica
algoritmul QRP din sectiunea 3.9 este ntotdeauna suficient.
P 3.64 Fie A Rmn , B Rmp monice.
a. Explicati de ce n general matricea M = [A B] nu este monica. Aratati ca
ImM = ImA + ImB.
b. Efectuati
triangularizarea ortogonala completa a matricei M , i.e.
H S 0
Q M Z = , unde S este inversabila de ordin r = rangM . Ce semnificatie
0 0
geometrica au r si Q ?
c. Notam S = ImA, T =TImB. Utilizand rezultatele de la punctul b, precizati cum
poate fi verificata conditia S T = .
d. Idem, indicati o baza ortogonala pentru subspatiul (S + T ) .
e. Cum se schimba concluziile de la punctele bd daca matricele initiale nu sunt
neaparat monice ? 2 3 2 3
1 1 1
Pentru exemplificare, fie A = 4 0 5, B = 4 0 1 5. Cine sunt S, T si S + T ?
0 0 0