You are on page 1of 222

METODE DE CALCUL

NUMERIC MATRICEAL.
ALGORITMI
FUNDAMENTALI
Bogdan Dumitrescu Corneliu Popeea Boris Jora
Partea I
Tuturor student ilor, fosti, actuali sau viitori,
precum si copiilor nostri
Andrei Octavia Monica
Sebastian Corneliu Serban
i
Cuvant introductiv
Lucrarea de fat a, prima de o asemenea amploare n limba romana, este con-
struita pe structura cursului de Calcul numeric, predat de autori la Facultatea
de Automatica si Calculatoare a Universitat ii Politehnica din Bucuresti. Lucrarea
expune, n maniera eminamente algoritmica, metodele de rezolvare a problemelor
fundamentale de calcul din algebra matriceala, care constituie primele si, de cele
mai multe ori, principalele componente ale celor mai diverse aplicat ii din inginerie,
economie si numeroase alte ramuri ale stiint ei.

In afara student ilor din facultat ile cu prol tehnic sau economic, lucrarea poate
utila tuturor celor care, e ei student i, cadre didactice, ingineri sau cercetatori,
doresc sa utilizeze cele mai moderne instrumente de calcul numeric matriceal. Pen-
tru nt elegerea not iunilor prezentate, cititorul trebuie sa posede cunostint e minime
de matematica, la nivelul celor dobandite n liceu sau n primul an de facultate.
Pentru orientare, ecare capitol ncepe cu o trecere n revista a bazelor matematice
ale problemelor de calcul studiate. De asemenea, cititorul ar trebui sa e capabil a
se exprima ntr-un limbaj de programare de nivel nalt; aceasta condit ie nu e strict
necesara, dar constituie un avantaj, pentru ca i permite sa se concentreze asupra
ideilor si nu a detaliilor de implementare ale acestora.
Cartea cont ine 7 capitole, descrise n cateva cuvinte mai jos. La nceput se
aa o bibliograe de baza, cuprinzand lucrari de larga utilizare, referite cu cifre
romane, care ofera o privire de perspectiva asupra ntregului domeniu.

In nal
se gaseste o a doua bibliograe, n general formata din articole (referite cu cifre
arabe) privind aspecte specice ale problemelor tratate si destinata cititorului care
doreste sa adanceasca studiul dincolo de textul de fat a. Pentru facilitarea lecturii,
recomandam consultarea listelor de notat ii si de prescurtari uzuale, aate cateva
pagini mai departe.
Capitolul 0, numerotat astfel pentru a sublinia caracterul sau de init ieren dome-
niu, prezinta specicul calculului numeric si justica necesitatea existent ei cart ii de
fat a. Este vorba aici despre: reprezentarea numerelor reale n virgula mobila, pro-
prietat ile (uneori neasteptate ale) operat iilor cu astfel de numere precum si meca-
nismele de aparit ie inevitabila a erorilor numerice. Este apoi considerata perechea
formata din problema de calcul si algoritmul de rezolvare, relativ la care sunt de-
ii
nite not iunile fundamentale de condit ionare si, respectiv, stabilitate numeric a.

In
ncheiere, este aruncata o privire asupra modului n care arhitectura calculatorului
inuent eaza concept ia algoritmilor.
Capitolul 1 este dedicat expunerii not iunilor primare ale algebrei matriceale
(vectori, subspat ii, matrice de diverse tipuri si proprietat ile acestora), constituind
totodata o introducere n problematica specica a capitolelor urmatoare. Algoritmii
prezentat i rezolva unele probleme simple, dar fundamentale, cum ar nmult irea a
doua matrice, sau unele cazuri particulare, de exemplu cel al matricelor triunghiu-
lare, ale unor probleme mai dicile (rezolvarea sistemelor liniare, calculul valorilor
si vectorilor proprii). Acesti algoritmi sunt larg utilizat i n continuare, ca elemente
constructive primare.
Capitolul 2 trateaza metodele directe de rezolvare a sistemelor liniare Ax = b,
cu matrice A nesingulara, prezentand procedura de eliminare gaussiana, inclusiv
strategiile de pivotare adecvate, precum si versiunile compacte ale acestei metode
bazate pe factorizarea LU a matricei A.

In afara matricelor de forma generala,
sunt studiate si cazurile, des ntalnite n practica, ale matricelor banda, simetrice si
simetric pozitiv denite. De asemenea, sunt abordate probleme conexe, cum ar
calculul inversei si al determinantului.
Capitolul 3 descrie metodele de rezolvaren sensul celor mai mici patrate (CMMP)
a sistemelor liniare Ax = b, n care numarul ecuat iilor difera de cel al necunoscutelor,
deci A este o matrice dreptunghiulara de forma generala.

In acest caz se utilizeaza
metode de eliminare specice, bazate pe aplicarea transformarilor ortogonale (re-
ectori Householder, rotat ii Givens etc.) iar conceptul central este cel de factorizare
QR. Daca matricea A nu este de rang maxim, se recomanda utilizarea factorizarii
ortogonale complete, care are la baza un algoritm de triangularizare cu pivotarea
coloanelor. Sistemele liniare de acest tip apar frecvent n prelucrarea datelor expe-
rimentale, statistica, identicarea sistemelor etc.
Capitolul 4 expune principalele metode de calcul al valorilor si vectorilor proprii
ai unei matrice A. Este prezentat n detaliu algoritmul QR, care aduce matricea A la
forma Schur, reala sau complexa, pornind de la forma de principiu a algoritmului, ale
carei proprietat i matematice sunt usor de analizat, si ajungand la variantele relativ
sosticate sub care acesta este implementat n programele profesionale. Alaturi de
cazul general este tratat si cel al matricelor simetrice. Nu sunt uitat i alt i algoritmi
important i, utili n cazuri particulare, cum ar metodele puterii, puterii inverse,
bisect iei sau Jacobi. Cunoasterea valorilor proprii este utila n analiza stabilitat ii
sistemelor dinamice, n studiul vibrat iilor (pentru cl adiri, poduri, avioane) si n
multe alte probleme aplicative majore.
Capitolul 5 prezinta metodele de calcul al descompunerii valorilor singulare
(DVS), care constituie instrumentul cel mai sigur de rezolvare a numeroase pro-
bleme din algebra matriceala, cum ar determinarea rangului, calculul unor norme
matriceale, construct ia bazelor pentru diverse subspat ii, rezolvarea n sensul celor
mai mici patrate a sistemelor cu matrice de rang nemaxim. Algoritmul DVS este
o adaptare ingenioasa a algoritmului QR simetric, cunoscut din capitolul anterior.
Utilizarea DVS este ilustrata considerand unele variante ale problemei CMMP, de
exemplu CMMP totala sau cu restrict ii, frecvent ntalnite n aplicat ii.
iii
Capitolul 6 considera calculul valorilor si vectorilor proprii generalizat i ai unei
perechi de matrice (A, B). Este prezentat algoritmul QZ, care aduce perechea la
forma Schur generalizata, precum si problema conexa a calculului bazelor ortogo-
nale pentru subspat ii de deat ie. Not iunile si algoritmii studiat i aici sunt de mare
utilitate n probleme care apar, de exemplu, n teoria sistemelor precum si n analiza
circuitelor electrice sau mecanice cu elemente ideale.
Principalele rezultate ale expunerii sunt concretizate sub forma de algoritmi
de calcul descrisi ntr-un pseudocod extrem de apropiat de implementarea directa
ntr-un limbaj de programare de nivel nalt. Algoritmii au fost testat i de autori
n mediul de programare MATLAB; cu toate acestea, orice observat ii si propuneri
din partea cititorilor, care sa conduca la eliminarea unor erori sau la mbunatat irea
performant elor, sunt binevenite si pot transmise la adresa ment ionata mai jos.
Pentru majoritatea algoritmilor sunt precizate propriet at ile de stabilitate numerica,
de obicei ntr-o sect iune speciala dedicata acestei teme, n ecare capitol. Ment ionam
ca o alta sect iune expune ntotdeuna informat ii despre condit ionarea problemelor de
calcul studiate; n acest fel, cititorul va avea o imagine clara a acuratet ii cu care se
pot obt ine solut iile numerice ale diverselor probleme studiate. De asemenea, ecare
capitol cont ine n nal o sect iune ce prezinta rutine (funct ii) din biblioteca LA-
PACK (Linear Algebra PACKage) si din limbajul MATLAB (MATrix LABoratory),
reprezentative pentru problemele de calcul studiate. LAPACK [XV] implementeaza
cei mai ecient i si siguri algoritmi de calcul numeric matriceal si este instrumentul
cel mai utilizat n acest domeniu. MATLAB [XIV] are o componenta didactica
mai pronunt ata, mbinand o interfat a utilizator simpla cu o calitate remarcabila a
algoritmilor.
De asemenea, ecare capitol este nsot it de un set de probleme, n total peste
200, ale caror rezolvari complete sau part iale se gasesc n partea nala a lucrarii.
Recomandam cititorului sa consulte indicat iile sau rezolvarea propusa de autori
numai pentru vericarea solut iei personale sau dupa tentative serioase de gasire a
acesteia.

In plus, un mare castig pentru cititor l poate reprezenta implementarea
algoritmilor (cei de baza, din lucrare, si cei derivat i, n probleme) precum si testarea
funct ionarii lor pe exemple numerice reprezentative.
Aducem la cunostint a cititorilor ca Grupul de Calcul Numeric din cadrul catedrei
de Automatica si Ingineria Sistemelor de la Facultatea de Automatica si Calcula-
toare, din care autorii fac parte, dispune de o biblioteca de calcul numeric matriceal
scrisa n limbajul C, care cont ine implementarea tuturor algoritmilor din lucrare.
Cei interesat i pot contacta autorii la urmatoarele adrese de e-mail
bogdan,popeea,jora@lucky.schur.pub.ro
Autorii mult umesc colegilor lor prof. Paul Flondor si conf.dr.ing. Ioan Tabus
pentru interesul acordat si n special pentru comentariile si observat iile constructive
facute pe marginea lucrarii. De asemenea, autorii aduc mult umiri doamnei redactor
Viorica Fatu, de la Editura ALL Educational, pentru atent ia acordata acestei cart i
n drumul catre tipar.
Autorii
iv
Bibliograe generala
Pentru chestiuni teoretice de calcul matriceal:
[ I ] Gantmaher F.R. Teoriia matrit (edit ia a 2-a), Ed. Nauka, Moscova,
1966. (The Theory of Matrices, vols. 1-2, Chelsea, New York, 1959).
[ II ] Horn R.A., Johnson C.R. Matrix Analysis, Cambridge University
Press, Cambridge UK, 1985.
[ III ] Strang G. Introduction to Linear Algebra, Wellesley-Cambridge
Press, Wellesley, MA, USA, 1993.
Pentru algoritmi de calcul matriceal:
[ IV] Wilkinson J.H. The Algebraic Eigenvalue Problem, Clarendon Press,
Oxford, 1965.
[ V] Stewart G. W. Introduction to Matrix Computations, Academic
Press, New York and London, 1973.
[ VI ] Golub G. H., Van Loan Ch. F. Matrix Computations, Second edition,
The John Hopkins University Press, Baltimore, Maryland, 1989.
[ VII ] Lawson C.L., Hanson R.J. Solving Least Squares Problems, SIAM,
Philadelphia, PA, USA, 1995.
Pentru studiul condit ion arii problemelor de calcul matriceal si al stabilit at ii
numerice a algoritmilor aferent i:
[ VIII ] Stewart G.W., Sun J. Matrix Perturbation Theory, Academic
Press, London, 1990.
[ IX] Higham N.J. Accuracy and Stability of Numerical Algorithms,
SIAM, Philadelphia PA, 1996.
Pentru programe de calcul si indicat ii de utilizare:
[ X] Wilkinson J.H., Reinsch C. Handbook for Automatic Computa-
tion. Linear Algebra, Springer-Verlag Berlin, 1971.
[ XI ] Smith B.T., Boyle J.M., Ikebe Y., Klema V.C., Moler C.B. Matrix
Eigensystem Routines: EISPACK Guide, 2-nd ed., SpringerVerlag,
New York, 1974.
[ XII ] Garbow B.S., Boyle J.M., Dongarra J.J., Moler C.B. Matrix
Eigensystem Routines: EISPACK Guide Extension, SpringerVerlag,
New York, 1977.
[ XIII ] Dongarra J.J., Bunch J.R., Moler C.B., Stewart G.W. LINPACK
Users Guide, SIAM Publications, Philadelphia, PA, 1978.
[ XIV] MATLAB Users Guide, The MathWorks Inc., Natick, MA, USA, 1992.
v
[ 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)
Lucr ari n limba rom an a:
[ XVI ] Branzanescu V., Stanasila O. Matematici speciale teorie,
exemple, aplicatii, Ed. ALL, Bucuresti, 1994.
[ XVII ] Bucur C.M., Popeea C.A., Simion Gh.Gh. Matematici speciale.
Calcul numeric, E.D.P., Bucuresti, 1983.
[ XVIII ] Ionescu V., Varga A. Teoria sistemelor. Sinteza robust a.
Metode numerice de calcul., Ed. ALL, Bucuresti, 1994.
[ XIX] Iorga V., Jora B., Nicolescu C., Lopatan I., Fatu I., Programare
numeric a, Ed. Teora, Bucuresti, 1996.
Lista de notat ii
N mult imea numerelor naturale
Z mult imea numerelor ntregi
R mult imea numerelor reale
C mult imea numerelor complexe
Vectori
n
i
: p : n
f
vectorul cu elementele ntregi n
i
, n
i
+ p, n
i
+ 2p, . . . , n
f
; daca p = 1,
vectorul se scrie simplu n
i
: n
f
R
n
spat iul liniar n-dimensional al vectorilor (coloana) x cu n componente reale
x
i
R, i = 1 : n
C
n
spat iul liniar n-dimensional al vectorilor (coloana) x cu n componente com-
plexe x
i
C, i = 1 : n
e
k
, k = 1 : n baza standard a spat iului liniar R
n
, respectiv C
n
x
i
, x(i) elementul vectorului x aat n pozit ia i
x(i
1
: i
2
) vectorul format din elementele din pozit iile de la i
1
la i
2
ale vectorului x
(x, y) = y
T
x =

n
i=1
x
i
y
i
produsul scalar standard a doi vectori x, y R
n
; n
cazul complex produsul scalar este (x, y) = y
H
x =

n
i=1
x
i
y
i
x = (x, x)
1/2
= (

n
i=1
|x
i
|
2
)
1/2
norma euclidiana a vectorului x R
n
vi
x
p
= (

n
i=1
|x
i
|
p
)
1/p
p-normele vectorului n-dimensional x, p 1; n calcule se
utilizeaza n special x
1
,x
2
=x si x

=max
i=1:n
|x
i
|
Matrice
R
mn
spat iul liniar al matricelor cu m linii si n coloane cu elemente reale a
ij
R,
i = 1 : m, j = 1 : n
C
mn
spat iul liniar al matricelor cu m linii si n coloane cu elemente complexe
a
ij
C, i = 1 : m, j = 1 : n
1
I
n
matricea unitate de ordinul n
a
ij
, A(i, j) elementul matricei A situat n linia i, coloana j
A(i
1
: i
2
, j
1
: j
2
) blocul matricei A format din liniile de la i
1
la i
2
si coloanele de
la j
1
la j
2
. Indicele :, fara alta precizare, semnica luarea tuturor liniilor
sau coloanele
A
T
transpusa matricei (reale sau complexe) A
A
H
conjugata hermitica a matricei (complexe) A, i.e. A
H
=

A
T
, unde

A este
conjugata complexa a lui A
A
1
inversa matricei patrate nesingulare A, i.e. AA
1
= A
1
A = I
n
A
T
= (A
1
)
T
= (A
T
)
1
A
H
= (A
1
)
H
= (A
H
)
1
trA urma matricei patrate A, i.e. suma elementelor diagonale
detA determinantul matricei p atrate A

i
(A), i = 1 : n valorile proprii ale matricei patrate A de ordin n
(A) spectrul (de valori proprii) {
1
(A),
2
(A), . . . ,
n
(A)} al matricei A
(A) = max
i=1:n
|
i
(A)| raza spectrala a matricei A
cond(A) = A A
1
numarul de condit ie la inversare al matricei A ( este o
norma matriceala consistenta)
A
+
pseudoinversa normala (Moore-Penrose) a matricei A; daca A este monica
A
+
=(A
T
A)
1
A
T
, daca A este epica, atunci A
+
=A
T
(AA
T
)
1

i
(A), i = 1 : p, p = min(m, n) valorile singulare ale matricei A ordonate astfel
ncat
1

2
. . .
p
1
In calcule, vectorii se identic a cu matricele cu o singura coloan a, iar scalarii se identic a cu
matricele (sau vectorii) cu un singur element.
vii
(A) mult imea {
1
(A),
2
(A), . . . ,
p
(A)} a valorilor singulare ale matricei A
r = rangA rangul matricei A, i.e. numarul valorilor singulare nenule
(A, B) = tr(B
T
A) (tr(B
H
A)) produsul scalar a doua matrice reale (complexe)
A
F
= (A, A)
1/2
norma Frobenius a matricei A,
A
2
F
=

m
i=1

n
j=1
|a
ij
|
2
sau A
2
F
=

r
i=1

i
2
|A|
p
= (

r
i=1

i
p
)
1/p
p-normele Schatten, p 1; n calcule se utilizeaza n spe-
cial norma-urma |A|
1
=

r
i=1

i
, norma Frobenius |A|
2
= A
F
si norma
spectrala |A|

=
1
(A)
A
p
= max
x
p
=1
Ax
p
p-normele induse; n calcule se utilizeaza n special
norma A
1
= max
j=1:n

m
i=1
|a
ij
|, norma spectrala A
2
=
1
(A) si norma
A

= max
i=1:m

n
j=1
|a
ij
|
Transformari
SAT transformare de echivalent a (bilaterala) a matricei A R
mn
(S si T sunt
matrice patrate nesingulare; transformarea de echivalent a conserva rangul, iar
daca S, T sunt ortogonale, atunci conserva si valorile singulare)
T
1
AT transformare de asem anare a matricei A R
nn
(transformarea de
asemanare conserva valorile proprii)
T
T
AT transformare de congruent a a matricei A R
nn
(T este nesingulara; apli-
cata unei matrice A simetrice, transformarea de congruent a conserva rangul
si inert ia i.e. numerele de valori proprii negative, nule si, respectiv, pozitive)
Daca T este ortogonala, atunci T
1
= T
T
si transformarea T
T
AT se numeste
transformare de asem anare ortogonal a
Prescurtari
i.e. (id est) adica
e.g. (exempli gratia) de exemplu, bunaoara
DVS descompunerea valorilor singulare
FSR(G) forma Schur reala (generalizata)
FSC(G) forma Schur complexa (generalizata)
FSH forma (bloc-)superior Hessenberg
FVM format virgula mobila
ITE matrice inferior triunghiulara elementara
viii
LU factorizarea LU
PE matrice de permutare elementara
QR factorizarea QR
Alfabetul grec
Majuscule Minuscule Denumire Corespondentul
latin
A alfa A, a
B beta B, b
gamma G, g
delta D, d
E epsilon E, e
Z zeta Z, z
H eta E, e
theta -
I iota I, i
K kappa K, k
lambda L, l
M m u M, m
N n u N, n
xi X, x
O o omicron O, o
pi P, p
P rho R, r
sigma S, s
T tau T, t
upsilon U, u
phi F, f
X hi H, h
psi -
omega O, o
Cuprins
0 Concepte fundamentale 1
0.1 Reprezentarea n virgula mobila . . . . . . . . . . . . . . . . . . . . . 2
0.2 Aritmetica n virgula mobila . . . . . . . . . . . . . . . . . . . . . . . 7
0.3 Condit ionarea problemelor de calcul . . . . . . . . . . . . . . . . . . 10
0.4 Stabilitatea numerica a algoritmilor . . . . . . . . . . . . . . . . . . 12
0.5 Calitat ile unui algoritm numeric . . . . . . . . . . . . . . . . . . . . 15
0.6 Implicat iile arhitecturii calculatoarelor . . . . . . . . . . . . . . . . . 16
0.7 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1 Algoritmi elementari 19
1.1 Vectori. Spat iul vectorial R
n
. . . . . . . . . . . . . . . . . . . . . . 19
1.2 Produs scalar. Norme. Ortogonalitate . . . . . . . . . . . . . . . . . 24
1.3 Matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4

Inmult irea 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 ecuat ii liniare . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.10 Valori si vectori proprii . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.11 Rutinele BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1.12 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2 Rezolvarea sistemelor de ecuat ii liniare 69
2.1 Transformari elementare . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.2 Triangularizare prin eliminare gaussiana . . . . . . . . . . . . . . . . 72
2.3 Strategii de pivotare . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.3.1 Pivotare part iala . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.3.2 Pivotare completa . . . . . . . . . . . . . . . . . . . . . . . . 78
2.4 Factorizari LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.4.1 Factorizari LU rezultate din eliminarea gaussiana . . . . . . . 82
2.4.2 Factorizari LU compacte . . . . . . . . . . . . . . . . . . . . . 84
2.4.3 Factorizari LU prin eliminare gaussiana la nivel de bloc . . . 86
2.4.4 Factorizari LU compacte la nivel de bloc . . . . . . . . . . . . 89
2.5 Rezolvarea sistemelor liniare . . . . . . . . . . . . . . . . . . . . . . . 91
ix
x CUPRINS
2.6 Calculul inversei si al determinantului . . . . . . . . . . . . . . . . . 93
2.6.1 Calculul inversei unei matrice . . . . . . . . . . . . . . . . . . 94
2.6.2 Calculul determinantului . . . . . . . . . . . . . . . . . . . . 97
2.7 Condit ionarea sistemelor liniare . . . . . . . . . . . . . . . . . . . . . 97
2.8 Stabilitate numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
2.8.1 Scalarea sistemelor liniare . . . . . . . . . . . . . . . . . . . . 103
2.8.2 Ranarea iterativa a solut iei calculate . . . . . . . . . . . . . 104
2.9 Sisteme banda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.10 Sisteme simetrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.11 Sisteme simetrice pozitiv denite . . . . . . . . . . . . . . . . . . . . 114
2.12 Rutine LAPACK si MATLAB . . . . . . . . . . . . . . . . . . . . . . 117
2.13 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3 Problema celor mai mici patrate 123
3.1 Transformari ortogonale . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.1.1 Reectori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.1.2 Rotat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.2 Transformari unitare . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
3.2.1 Reectori complecsi . . . . . . . . . . . . . . . . . . . . . . . 138
3.2.2 Rotat ii complexe . . . . . . . . . . . . . . . . . . . . . . . . . 142
3.3 Triangularizarea ortogonala . . . . . . . . . . . . . . . . . . . . . . . 143
3.4 Factorizarea QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.4.1 Acumularea transformarilor . . . . . . . . . . . . . . . . . . . 153
3.4.2 Aplicarea transformarilor . . . . . . . . . . . . . . . . . . . . 155
3.4.3 Triangularizarea ortogonala la nivel de bloc . . . . . . . . . . 156
3.4.4 Alte metode de ortogonalizare . . . . . . . . . . . . . . . . . 160
3.4.5 Factorizarea QL . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.5 Rezolvarea problemei CMMP . . . . . . . . . . . . . . . . . . . . . . 162
3.5.1 Calculul pseudosolut iei . . . . . . . . . . . . . . . . . . . . . . 164
3.5.2 Calculul proiect iilor . . . . . . . . . . . . . . . . . . . . . . . 167
3.5.3 Problema CMMP cu membru drept multiplu . . . . . . . . . 168
3.5.4 Calculul pseudoinversei . . . . . . . . . . . . . . . . . . . . . 168
3.5.5 Alte metode de rezolvare a problemei CMMP . . . . . . . . . 169
3.6 Sisteme liniare subdeterminate . . . . . . . . . . . . . . . . . . . . . 170
3.6.1 Triangularizarea ortogonala la dreapta . . . . . . . . . . . . . 170
3.6.2 Factorizarea LQ . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.6.3 Rezolvarea sistemelor subdeterminate . . . . . . . . . . . . . 174
3.7 Condit ionarea problemelor CMMP . . . . . . . . . . . . . . . . . . . 177
3.7.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.7.2 Sensibilitatea pseudosolut iei . . . . . . . . . . . . . . . . . . . 180
3.7.3 Sensibilitatea solut iei normale . . . . . . . . . . . . . . . . . . 182
3.8 Stabilitatea algoritmilor de triangularizare . . . . . . . . . . . . . . . 183
3.8.1 Stabilitatea numerica a algoritmilor fundamentali . . . . . . . 184
3.8.2 Acuratet ea solut iilor calculate . . . . . . . . . . . . . . . . . . 185
3.8.3 Scalarea problemei CMMP . . . . . . . . . . . . . . . . . . . 186
3.8.4 Ranarea iterativa a solut iei CMMP . . . . . . . . . . . . . . 187
CUPRINS xi
3.9 Descompunerea ortogonala completa . . . . . . . . . . . . . . . . . . 189
3.9.1 Triangularizarea ortogonala cu pivotarea coloanelor . . . . . . 190
3.9.2 Determinarea rangului . . . . . . . . . . . . . . . . . . . . . . 193
3.9.3 Triangularizarea ortogonala completa . . . . . . . . . . . . . 195
3.9.4 Descompunerea ortogonala completa . . . . . . . . . . . . . . 197
3.9.5 Problema general a CMMP . . . . . . . . . . . . . . . . . . . 197
3.10 Rutine LAPACK si MATLAB . . . . . . . . . . . . . . . . . . . . . . 199
3.11 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
0 CUPRINS
Capitolul 0
Concepte fundamentale ale
calculului numeric
Rezolvarea numerica cu ajutorul calculatorului a unei probleme de calcul se face
ntotdeauna pe baza unui algoritm, i.e. a unei succesiuni nite si bine precizate de
operat ii elementare (cum ar adunarea, nmult irea etc.) prin care solut ia problemei
este calculata n funct ie de datele init iale. Desi matematica furnizeaza deseori, n
demonstrat iile numite constructive, algoritmi de rezolvare a problemelor pe care le
trateaza, s-a dovedit ca de multe ori implementarile numerice ale acestor algoritmi
au dezavantaje majore care i fac de nefolosit.
Discrepant a ntre corectitudinea matematica a unui algoritm si adecvarea lui la
specicul calculului numeric practic poate proveni din doua cauze importante. Una,
evidenta, consta n (eventuala) complexitate (n ce priveste numarul operat iilor de
executat si memoria ocupata de date), care poate duce e la timpi de execut ie foarte
mari, deci nepractici, e, pur si simplu, la imposibilitatea execut iei programului
care implementeaza algoritmul. A doua cauza, mai subtil a, o constituie erorile
care nsot esc calculul numeric; prin acumulare, acestea pot periclita acuratet ea
rezultatului.
O serie de erori sunt inerente, cum ar cele care apar la determinarea datelor
din masuratori experimentale. Altele sunt legate de algoritmul de calcul utilizat,
care se poate baza pe simplicari n modelarea unor fenomene zice sau poate
proveni dintr-o metoda matematica implicand o innitate de operat ii, din care,
prin trunchiere, se ret ine doar un numar nit de operat ii; n ambele cazuri, prin
natura lucrurilor, algoritmul va furniza o solut ie aproximativa.

In ne, exista erori avand cauze specice calculului numeric, care opereaza cu
numere reale (si nu doar cu numere ntregi); de acestea ne vom ocupa mai pe larg.
Desigur, numerele reale sunt reprezentate n memoria calculatorului ntr-un format
bine precizat si ocupand un numar relativ mic de locat ii de memorie, de exemplu
4 sau 8 octet i; astfel, o innitate de numere este reprezentata printr-un numar
nit de combinat ii de bit i. De aici o prima sursa de erori, cele de reprezentare.
Apoi, pot aparea erori si la efectuarea operat iilor cu numere reale aate n memoria
calculatorului, erori numite de rotunjire; aceasta nu se ntampla pentru ca unitatea
1
2 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
centrala (microprocesorul, de exemplu) ar gresi la calcule, ci, din nou, datorita
faptului ca numerele reale sunt reprezentate ntr-un format nit, atat n memorie,
cat si n unitatea centrala.
Prin aceasta, calculul cu numere reale difera fundamental de cel cu ntregi. Vom
obt ine 1 + 2 = 3 pe orice calculator, n schimb 0.1 + 0.2 = 0.3 pe orice calculator
(doar daca nu se folosesc programe speciale !); de exemplu pe un calculator si
ntr-un limbaj de programare pe care nu le precizam adun and 0.1+0.2 si scazand
din rezultat 0.3 nu obt inem 0, asa cum ne-am astepta, ci aproximativ 5.5 10
17
; e
drept, eroarea este inma. Pericolul apare n cazul acumularii unor astfel de mici
erori, acumulare care poate duce la degradarea uneori fatala a rezultatului
produs.

In acest capitol ne vom ocupa de aspecte specice elementare ale calculului


numeric: modul de reprezentare a numerelor reale, felul n care se apreciaza calitatea
unui algoritm numeric, cuanticarea efectului erorilor de rotunjire asupra acuratet ii
solut iei numerice a unei probleme; acest ultim scop face obiectul analizei numerice
si este, n general, dicil de atins.
0.1 Reprezentarea n virgula mobila
Fie x si x numere reale, x ind interpretat ca o aproximare a lui x. Vom prezenta
doua masuri naturale ale calitat ii aproximarii.
Eroarea absolut a (cu care x aproximeaza x) se deneste prin
= |x x|.
Daca x = 0, atunci eroarea relativ a se deneste prin
=

x x
x

=

|x|
.
Daca x R
n
, se nlocuieste n relat iile de mai sus valoarea absoluta | | cu o
norma vectoriala (vom discuta despre norme vectoriale n capitolul 1).
Exemplul 0.1 Fie x = 1.0, si x = 0.999 o aproximare a sa. Atunci = 10
3
si
= 10
3
. Daca y = 0.009 este o aproximat ie a lui y = 0.01, atunci eroarea absoluta
este aceeasi ca n cazul precedent, = 10
3
, dar eroarea relativa este de o suta de
ori mai mare: = 10
1
. Raportandu-se la valoarea lui x, eroarea relativa este mult
mai adecvata pentru estimarea calitat ii aproximarii x.
Erorile de reprezentare apar datorita memorarii n calculator a numerelor reale
printr-o secvent a nita de simboluri (cifre binare). Pentru a prezenta o estimare
a acestor erori, sa reamintim bine cunoscuta reprezentare pozit ionala a numerelor
reale. Fie
N, 2, baza de numerat ie;
C = {0, 1, . . . , 1}, mult imea cifrelor n baza , adica primele numere
naturale.
0.1. REPREZENTAREA

IN VIRGUL

A MOBIL

A 3
Se stie ca orice numar x R poate scris unic sub forma unei secvent e innite
x = sa
n1
a
n2
. . . a
0
.a
1
a
2
a
3
. . . , (0.1)
care nu se termina printr-o secvent a innita de cifre egale cu 1 si n care a
i
C,
iar s este semnul, s {+, }. Valoarea lui x este
x = s
_
n1

i=0
a
i

i
+

i=1
a
i

i
_
. (0.2)
Convenim sa eliminam din scriere secvent a innita de zerouri nale, atunci cand
este cazul. Sa exemplicam relat iile (0.1) si (0.2).
Exemplul 0.2 Numarul n baza 10
3.25 = 3 10
0
+ 2 10
1
+ 5 10
2
se reprezinta n baza 2 n modul urmator (vericat i egalitatea):
11.01 = 1 2
1
+ 1 2
0
+ 0 2
1
+ 1 2
2
.

In ambele baze, reprezentarile au un numar nit de cifre.



In schimb, numarul
exprimat simplu n baza 10:
0.1 = 1 10
1
are o reprezentare de lungime innita n baza 2 (vericat i din nou egalitatea):
0.0001100110011 . . . = (2
4
+ 2
5
)

k=0
2
4k
.

In baza 10, urmatoarele doua secvent e


0.99999 . . .
1.00000 . . .
reprezinta acelasi numar real. Reprezentarile binare corespunzatoare sunt
0.11111 . . .
1.00000 . . .

In ambele situat ii, reprezentarea acceptata este 1.0000 . . .


Evident, reprezentarea numerelor reale pe calculator poate avea doar un numar
nit de cifre si deci, prin natura ei, este aproximativa. O buna aproximare printr-o
secvent a nita de lungime xata trebuie sa asigure:
un domeniu sucient de mare de numere reprezentate;
o eroare relativa de reprezentare sucient de mica;
o distribut ie uniforma a erorii relative de reprezentare.
4 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
Un bun compromis n satisfacerea acestor cerint e este dat de asa numitul Format
Virgul a Mobil a (FVM).
Denit ia 0.1 Un Format Virgula Mobila (FVM) este denit de trei ntregi (, t, p),
cu urm atoarea semnicat ie:
baza de numerat ie ( 2);
t precizia, adic a num arul de cifre semnicative (lungimea mantisei);
p num arul de cifre ale exponentului.
Un numar n virgula mobila este o pereche (f, e), unde
f = 0.f
1
f
2
. . . f
t
, f
1
= 0, f
i
C
este un num ar fract ionar cu semn (plus sau minus), normalizat (i.e. f
1
= 0), cu
t cifre, denumit mantisa, iar
e = e
1
e
2
. . . e
p
este un ntreg cu semn, cu p cifre, numit exponent. Valoarea real a asociat a num aru-
lui n virgul a mobil a (f, e) este
x = f
e
.
Fie L valoarea minima admisa a exponentului (de exemplu L = . . .
. .
p
, unde
= 1) si U cea maxima (de exemplu U = L). Se observa ca toate numerele
n virgula mobila x satisfac:

L1
= m |x| M =
U
(1
t
)
adica domeniul reprezentarii n virgula mobila este intervalul R = [M, M]. De-
sigur, pentru majoritatea reprezentarilor pe calculator, = 2 (se mai foloseste, de
exemplu, = 16 si chiar = 10).
Exemplul 0.3 Sa consideram FVM cu (, t, p) = (2, 2, 1). Atunci L = 1, U = 1,
m = 2
2
= 0.25
10
, M = 2(1 2
2
) = 1.5
10
. Numerele reale care au o reprezentare
exacta n acest FVM sunt:
x
1
= (0.11, +1) = 1.5
10
x
7
= (+0.10, 1) = 0.25
10
x
2
= (0.10, +1) = 1.0
10
x
8
= (+0.11, 1) = 0.375
10
x
3
= (0.11, 0) = 0.75
10
x
9
= (+0.10, 0) = 0.5
10
x
4
= (0.10, 0) = 0.5
10
x
10
= (+0.11, 0) = 0.75
10
x
5
= (0.11, 1) = 0.375
10
x
11
= (+0.10, +1) = 1.0
10
x
6
= (0.10, 1) = 0.25
10
x
12
= (+0.11, +1) = 1.5
10
si vor folosite pentru reprezentarea (aproximativa) a tuturor numerelor reale din
intervalul [1.5, 1.5]. Reprezentarea geometrica a tuturor acestor numere pe axa
reala este prezentata n gura 0.1. Numerele cu reprezentare exacta n virgula
mobila sunt relativ uniform distribuite; mai precis, |x
i
x
i1
| / |x
i
| are aproximativ
aceleasi valori pentru orice i.
Exemplul 0.4 Un FVM pe 32 bit i poate urmatorul: (, t, p) = (2, 24, 7). Doi
bit i sunt atribuit i reprezentarii semnelor mantisei si exponentului; deoarece primul
0.1. REPREZENTAREA

IN VIRGUL

A MOBIL

A 5
1
x
11

x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9
x
10
x
12
1.5 0.5 -0.5 -1 -1.5
0
Fig. 0.1: Reprezentarea numerelor n virgula mobila din exemplul 0.3
0 1 1 0 1 0 0 1

exponent (7 bit i)
0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1
mantisa (23+1 bit i) `
semn numar (mantisa)

`
semn exponent
Fig. 0.2: Structura unui numar n virgula mobila, pentru (, t, p) = (2, 24, 7)
bit al mantisei are ntotdeauna valoarea 1, semnul mantisei se memoreaza n locul
acestui bit, economisind astfel un bit al reprezentarii. Un exemplu de numar n
virgula mobila n acest format este prezentat n gura 0.2.
Pentru acest FVM avem: L = 127, U = 127, m = 2
127
= (2
10
)
13
2
3
10
38
,
M 10
38
(putem aproxima 2
10
10
3
). Aceasta arata ca FVM acopera un domeniu
larg de numere, utilizand un num ar relativ mic de cifre binare. Acest exemplu este
foarte apropiat de formatul standard IEEE pentru numere n virgula mobila n
simpl a precizie.

In formatul din acest exemplu, numarul real 0.1 are mantisa


0.110011001100110011001100
si exponentul 10000011 (3 n baza 10; prima cifra 1 a exponentului reprezinta
semnul). Asadar numarul 0.1 este reprezentat aproximativ (vezi exemplul 0.2).
Observat ia 0.1 Denit ia 0.1 nu permite reprezentarea exacta a numarului 0,
acesta neputand avea o mantisa normalizata. Practic, pentru a reprezenta 0, precum
si unele simboluri speciale despre care se va vorbi mai tarziu, se folosesc valori
dedicate ale exponentului, n afara intervalului [L, U]. De aceea, n standardul
IEEE pentru simpla precizie, L = 126.
Pentru a estima erorile efectuate la reprezentarea unui numar real n virgula
mobila, sa consideram un FVM, adica (, t, p), si sa notam
F = {x R | x are reprezentare exacta in VM} {0}. (0.3)
Desigur, F este o mult ime nita de numere rat ionale.
Reprezentarea numarului real x [M, M] n FVM nseamna aproximarea lui
cu un numar x F. Aceasta aproximare poate exprimata printr-o funct ie de
rotunjire.
Denit ia 0.2 Dac a (, t, p) este un FVM si F este mult imea denit a n (0.3),
atunci o funct ie
fl : [M, M] F
6 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
care asociaz a ec arui x [M, M] o unic a reprezentare n virgul a mobil a
x = fl(x)
este numit a funct ie de rotunjire. Eroarea relativ a de aproximare
|x fl(x)|
|x|
denit a pentru orice x [M, M] nenul este denumit a eroare de reprezentare.
Deoarece intervalul [M, M] este o mult ime innita de numere reale, ecare
x F constituie reprezentarea n VM a unei mult imi innite de numere din
[M, M]; suntem interesat i sa gasim o margine superioar a a erorii de reprezentare
pentru o funct ie de rotunjire data. Exista mai multe funct ii de rotunjire. O vom
prezenta doar pe cea mai simpla, denumita rotunjire prin t aiere.

In acest scop, sa
scriem numarul x [M, M] n forma (0.1) normalizata:
x = f
e
= 0.f
1
f
2
. . . f
t
f
t+1
. . .
e
=
= 0.f
1
f
2
. . . f
t

e
0.f
t+1
f
t+2
. . .
et
=
=

f
e
+ g
et
,
unde f
i
C, f
1
= 0,

f = 0.f
1
f
2
. . . f
t
, g = 0.f
t+1
f
t+2
. . .

In mod evident:
1/ |f| < 1, 1/ |

f| < 1, 0 | g| < 1. (0.4)


Funct ia de rotunjire prin taiere
fl
1
: [M, M] F
este denita prin
x = fl
1
(x) =
_

f
e
, pentru x = 0,
0, pentru x = 0.
Pe scurt, reprezentarea n VM se obt ine prin taierea cifrelor mantisei normalizate a
numarului x care se aa n afara formatului (de la pozit ia t + 1 ncolo).
Utilizand inegalitat ile (0.4), este usor de stabilit o margine superioara a erorii
de reprezentare introduse de fl
1
.

Intr-adevar, pentru orice x [M, M] \{0} avem
=
|x fl
1
(x)|
|x|
=
|f
e


f
e
|
|f|
e
=
| g|
et
|f|
e
<

t

1
=
t+1
.
Aceasta formula arata ca, indiferent de valoarea numarului x, o margine pentru
marimea erorii de reprezentare este determinata exclusiv de numarul de cifre ale
mantisei (n baza de numerat ie a FVM) si acesta este motivul pentru care t este
numit precizia reprezent arii n virgul a mobil a. Numarul
t+1
este numit epsilon
masin a si reprezinta distant a dintre 1 si urmatorul numar cu reprezentare n FVM
(vezi problema 0.5).
0.2. ARITMETICA

IN VIRGUL

A MOBIL

A 7
Pe majoritatea calculatoarelor, numerele n virgula mobila au o precizie xata.
Multe calculatoare au, de asemenea, posibilitatea de a manipula numere n virgula
mobila cu aproximativ 2t bit i pentru mantisa; astfel de numere sunt numite n
dubl a precizie. De exemplu, n standardul IEEE, numerele n dubla precizie sunt
memorate pe 64 bit i, cu t = 53 si p = 10 (un bit suplimentar este dedicat memorarii
semnului exponentului).
Pentru toate funct iile de rotunjire folosite, marginea superioara a erorii de re-
prezentare are forma

t
, (0.5)
unde este un numar de ordinul unitat ii.
Din (0.5) rezulta existent a unui numar astfel ncat
x = fl(x) = x(1 +), ||
t
, (0.6)
ceea ce este un alt mod de exprimare a erorii de reprezentare.
Cele t cifre ale mantisei sunt numite cifre semnicative ale numarului real repre-
zentat.

In baza de numerat ie zecimala, numerele reprezentate n simpla precizie
conform standardului IEEE (t = 24) au 7 cifre semnicative (numaram 3 cifre
zecimale pentru 10 cifre binare), iar cele n dubla precizie (t = 53) au 16 cifre sem-
nicative; n consecint a, eroarea maxima de reprezentare este de aproximativ 10
7
,
respectiv 10
16
(anume chiar epsilon masina). O prezentare detaliata a standardu-
lui IEEE poate gasita n [?].
0.2 Aritmetica n virgula mobila
Calculatoarele cu hardware dedicat operat iilor n virgula mobila sunt prevazute cu
un set de instruct iuni pentru implementarea unor operat ii cu numere n virgula
mobila ca, de exemplu, adunarea, scaderea, nmult irea sau mpart irea. Trebuie su-
bliniat ca operat iile ment ionate difera de cele matematice corespunzatoare deoarece
rezultatul lor apart ine ntotdeauna mult imii nite F a numerelor n virgula mo-
bila. Asadar operat iile aritmetice nu pot executate exact. Eroarea introdusa de
operat iile aritmetice n virgula mobila se numeste eroare de rotunjire. Consecint ele
pot foarte importante; exista posibilitatea ca erorile de rotunjire sa se acumuleze
si, n calcule lungi, valorile nale sa e afectate, chiar pana la a le face inutilizabile.
De aceea este de dorit ca ecare algoritm sa e analizat pentru a vedea n ce masura
erorile de rotunjire afecteaza rezultatele; n general, aceasta este o sarcina dicila.
Exemplul 0.5 Consideram FVM cu (, t, p) = (10, 3, 1). Adunand exact numerele
1.23 si 20.5, amandoua reprezentabile exact n FVM ales, se obt ine 21.73. Rotunjit
prin taiere, rezultatul n VM este 21.7, deci diferit de cel exact.
Analiza erorilor de rotunjire se bazeaza pe cunoasterea marginilor superioare ale
erorilor ce apar n operat iile n virgula mobila. Pentru majoritatea calculatoarelor
este valabil urmatorul model al erorilor asociate operat iilor n virgula mobila, bazat
pe evaluarea (0.6): notand cu fl(xy), fl(x/y) si fl(x+y) produsul, catul, respectiv
suma calculate ale numerelor n virgul a mobil a x si y, atunci, ntr-un FVM cu t cifre
avem
fl(xopy) = (xop y)(1 +), ||
t
, (0.7)
8 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
unde op poate +, sau /, iar este un numar de ordinul unitat ii.
Modelul (0.7) este obt inut presupunand ca xop y este calculat exact, apoi rezul-
tatul este transformat n FVM printr-o funct ie de rotunjire.

In realitate, lucrurile nu
stau chiar asa; unitat ile specializate pentru calculul n VM nu obt in rezultatul exact,
dar se comporta ca si cum l-ar obt ine, lucrand pe baza unor algoritmi nebanali, a
caror cunoastere nu este necesara pentrunt elegerea algoritmilor din aceasta lucrare
si a caror prezentare depaseste cadrul problematicii propuse.

In completarea relat iei (0.7), trebuie sa ment ionam ca, atunci cand o operat ie
n virgula mobila produce un numar cu un modul prea mare (> M), apare eroarea
numita de dep asire superioar a (overow). Cand rezultatul este prea mic n valoare
absoluta (< m, dar nenula), eroarea se numeste de dep asire inferioar a (underow).
Desigur, orice algoritm bine conceput trebuie sa specice cum se procedeaza n
eventualitatea unor depasiri si, mai ales, sa ncerce evitarea lor (vom explica n
capitolul urmator tehnica folosita scalarea). Depasirea inferioara nu constituie
de regula o eroare grava, de aceea majoritatea calculatoarelor atribuie automat
rezultatului valoarea zero.

In cazul unei depasiri superioare, de obicei calculele sunt
oprite sau, cel put in, este asat un mesaj de avertisment.

In standardul IEEE pentru
virgula mobila, exista o valoare speciala, numita Inf (innit), care este atribuita
rezultatului n cazul unei depasiri superioare; calculele continua cu aceasta valoare;
rezultatele se obt in conform regulilor uzuale de lucru cu innitat i. O alta valoare
speciala NaN (Not a Number) este atribuita rezultatelor nedenite, ca 0 ,
0/0, /; o operat ie implicand NaN are ntotdeauna ca rezultat NaN.
Relat ia (0.7) garanteaza ca o operat ie aritmetica introduce erori relative mici,
de ordinul
t
(adica al lui epsilon masina). O problema fundamental a a calculului
numeric este evaluarea marimii erorii ce afecteaza rezultatul n cazul unei secvent e
de operat ii.
Pentru a aborda problema, sa consideram doua exemple n care apar erori nu-
merice mari, dar din cauze esent ial diferite. Lucramn FVM cu (, t, p) = (10, 3, 1).
Pentru a evita confuziile, vom nota cu , , si adunarea, scaderea, nmult irea,
respectiv mpart irea n VM; deci x +y este suma exacta, iar x y = fl(x +y) este
suma calculata n VM.
Exemplul 0.6

In calculul radacinilor polinomului de gradul al doilea ax
2
+bx +c,
cu a = 0, este necesar calculul expresiei b
2
4ac. Considerand b = 3.34, a = 1.22,
c = 2.28, avem b
2
4ac = 0.0292, n timp ce, rotunjind prin taiere, b b = 4 a c
= 11.1, deci b b 4 a c = 0. Rezultatul calculat are toate cifrele semnicative
eronate, iar eroarea relativa aferenta este egala cu 1; totusi, pentru ecare operat ie
n parte, eroarea relativa este mai mica decat 10
2
.
Exemplul 0.7 Daca polinomul de gradul II are radacini reale, acestea se calculeaza
de obicei utilizand formulele
x
1
=
b

b
2
4ac
2a
, x
2
=
b +

b
2
4ac
2a
.
(0.8)
Luand b = 10.1, a = 0.0123, c = 32.4, valoarea exacta rotunjita la 3 cifre
semnicative a lui x
2
este 3.22. Efectuand calculele n formatul ales, obt inem
= b b 4 a c = 100 (n loc de 100.41, dar eroarea relativa e nca de ordinul
0.2. ARITMETICA

IN VIRGUL

A MOBIL

A 9
10
3
); dar b SQRT() = 0.1, n timp ce b +

b
2
4ac = 0.0792, eroarea
relativa ind acum 0.26. Valoarea calculata a radacinii x
2
este 4.06, n timp ce
valoarea exacta este 3.22; din nou toate cifrele semnicative 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 catastrofal a, adica o pierdere completa a
cifrelor semnicative ale rezultatului.

In primul caz anularea trebuie pusa integral
pe seama operat iei matematice de scadere; problema calculului b
2
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 put in mai t arziu. Sa studiem ntai
mai amanunt it ce se ntampla la scaderea a doua numere apropiate.
Exemplul 0.8 Consideram dou a 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 (d
1
= 0):
x = 0.d
1
d
2
. . . d
k
d
k+1
. . . d
t
1
e
,
y = 0.d
1
d
2
. . . d
k
c
k+1
. . . c
t
0
e
.
Rotunjind prin taiere, reprezentarile lor ntr-un FVM cu (, t, p) sunt
x = fl(x) = 0.d
1
d
2
. . . d
k
d
k+1
. . . d
t

e
,
y = fl(y) = 0.d
1
d
2
. . . d
k
c
k+1
. . . c
t

e
.
Diferent a lor, calculata n VM, este
x y = 0.f
1
. . . f
tk
0 . . . 0
k+e
.
Observam ca x y = x y, deci scaderea se efectueaza fara erori.

In schimb,
rezultatul scaderii cu valorile exacte ale operanzilor este
x y = 0.f
1
. . . f
tk
10 . . . 0
k+e
,
iar eroarea relativa asociata lui este

(x y) ( x y)
x y


t+1+e

k+e
=
t1+k
.

In concluzie, observam ca operanzii scaderii sunt afectat i de erori relative de repre-


zentare de ordinul
t1
, n timp ce rezultatul ei are o eroare relativa de ordinul

t1+k
; atunci cand x si y au multe cifre semnicative identice, deci k aproape de
t, (si acelasi ordin de marime) eroarea asociata rezultatului scaderii poate deveni
uriasa.
Exemplul 0.8 arata ca adunarea (scaderea) nu introduce erori mari prin eansasi,
ci potent eaza n anumite cazuri erorile operanzilor.
De aceea, scaderea numerelor apropiate trebuie evitata. Pentru aceasta, daca
este posibil, algoritmul de calcul este cel care trebuie modicat.
10 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
Exemplul 0.9 Am constatat, n exemplul 0.7, ca formulele (0.8) nu sunt cele
mai bune din punct de vedere numeric, mai ales cand b
2
4ac, si deci |b|

.
Pentru a evita scaderea unor numere apropiate, se pot folosi formulele
x
1
=
b sgn(b)

b
2
4ac
2a
, x
2
=
2c
b + sgn(b)

b
2
4ac
. (0.9)
Utilizandn (0.9) valorile numerice din exemplul 0.7, se obt ine, n FVM de lucru,
un rezultat cu toate cifrele semnicative exacte.
0.3 Condit ionarea problemelor de calcul
Orice problema de calcul numeric impune obt inerea unor rezultate numerice, pornind
de la date de intrare numerice, astfel ncat rezultatele sa poata interpretate ca o
aproximat ie a solut iei unei probleme matematice pentru datele de intrare respec-
tive. Pentru ca o astfel de problema sa e bine denita, trebuie asigurate existent a si
unicitatea solut iei.

In acest caz, o problema de calcul numeric poate ntotdeauna
descrisa ca evaluare a unei funct ii
f : D R
n
R
m
(0.10)
ntr-un punct x D dat. Cele n componente ale argumentului constituie datele
de intrare, iar cele m componente ale vectorului f(x) sunt rezultatele sau datele de
iesire.
Desigur, aplicat ia f este de cele mai multe ori denita implicit iar descoperirea
unei cai prin care calculul valorii f(x) devine posibil echivaleaza cu rezolvarea,
printr-un algoritm specic, a problemei de calcul considerate.
Exemplul 0.10 a) Fie D o mult ime de trei numere reale si
x =
_
_
a
b
c
_
_
D = {x R
3
| a = 0, b
2
4ac 0} R
3
.
Rezolvarea ecuat iei de gradul II
ay
2
+by +c = 0
este o problema numerica bine denita, deoarece pentru orice x D exista un unic
vector
y = f(x) =
_
y
1
y
2
_
=
_

_
b sgn(b)

b
2
4ac
2a
2c
b + sgn(b)

b
2
4ac
_

_
R
2
,
care este solut ia problemei.
b) Calculul integralei
_
b
a
e
t
2
dt,
0.3. CONDIT IONAREA PROBLEMELOR DE CALCUL 11
unde a, b R sunt date (a = b), este de asemenea o problema numerica bine denita.

Intr-adevar, pentru datele de intrare x =


_
a
b
_
D = R
2
, exista si este unica
valoarea integralei y R, desi integrala nedenita
_
e
t
2
dt nu este exprimabila
prin funct ii elementare.
Abaterea solut iei calculate fat a de solut ia exacta a unei probleme numerice poate
avea doua surse esent ial diferite, legate de problem a n sine si, respectiv, de algorit-
mul de calcul utilizat. De prima sursa de erori numita condit ionarea problemei
ne ocupam n continuare, de cea de-a doua stabilitatea algoritmului n
paragraful urmator.
Condit ionarea problemei caracterizeaza sensibilitatea solut iei n raport cu pertur-
bat iile datelor de intrare.

In practica este cunoscuta doar o aproximat ie 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 funct ia f denind problema noastra
este prea sensibila la variat ii ale argumentului, f( x) si f(x) pot diferi semnicativ
chiar n cazul unei erori relative mici x x / x a datelor de intrare ( este o
norma adecvata). O astfel de problema este numita r au condit ionat a.
Daca ncercam rezolvarea unei probleme rau condit ionate pornind de la date
inexacte, atunci solut ia obt inuta va nsot ita de erori mari indiferent de felul n
care este calculat a !
Denit ia 0.3 Condit ionarea numerica sau sensibilitatea local a a unei probleme
f : D R
n
R
m
ntr-un punct x D este exprimat a de amplicarea erorii rel-
ative
(x) =
f(x) f( x)
f(x)
x
x x
, (0.11)
pentru x = 0 si f(x) = 0. C and (x) este mic (de ordinul unit at ii, de exemplu)
problema este numit a bine condit ionata n punctul x. Altfel, problema este rau
condit ionata.
Observat ia 0.2 Daca f este Lipschitz continua, i.e. exista L astfel ncat
f(x) f(y) Lx y,
atunci
(x) L
x
f(x)
,
iar daca f este de clasa C
1
iar x este apropiat de y, atunci L se poate lua f

(x),
unde f

este derivata lui f n punctul x.


Subliniem faptul ca condit ionarea este o proprietate locala. De obicei, totusi, o
problema este numita bine condit ionata daca este bine condit ionata n orice punct
x D; de asemenea, este numita rau condit ionata, daca exist a puncte x D n
care este rau condit ionata.
Exemplul 0.11 Problema calculului sumei a doua numere x, y R poate
bine sau rau condit ionata funct ie de valorile lui x si y (datele de intrare). (Aici
12 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
f(x, y) = x + y, f : R
2
R; convenim sa scriem si f(x, y) n loc de f(
_
x
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
| .
Eroarea relativa asociata sumei este (calculul sumei se face exact)
=
|x +
x
x +y +
y
y (x +y)|
|x +y|
=
|
x
x +
y
y|
|x +y|
. (0.12)
Daca x si y au acelasi semn, atunci

|
x
x| +|
y
y|
|x| +|y|

si suma este afectata de o eroare de acelasi ordin de marime ca si operanzii; n acest
caz, adunarea este bine condit ionata.
Daca x si y au semne diferite, este posibil (atunci cand
x
si
y
au si ele semne
diferite) ca si
=
max(|x|, |y|)
|x +y|
sa aiba acelasi ordin de marime. Dar daca |x + y| max(|x|, |y|), ceea ce se
ntampla atunci cand x si y au valori apropiate, atunci .

In acest caz,
problema calculului sumei este rau condit ionata. Exemplele 0.6, 0.7, 0.8 ilustreaza
aceasta situat ie. Pentru a vedea cate subtilitat i ascunde calculul aparent simplu al
unei sume, cititorul este invitat sa consulte [?].
0.4 Stabilitatea numerica a algoritmilor
Pentru a rezolva o problema de calcul numeric denita de funct ia (0.10), un calcu-
lator executa o secvent a (nit a) bine precizata de operat ii denumita algoritm.

In
general exista mai mult i algoritmi pentru rezolvarea unei probleme. Un algoritm

f pentru problema f produce un raspuns unic determinat pentru date de intrare


xate si deci poate exprimat matematic printr-o funct ie

f : D F R
n
R
m
.
Deoarece execut ia unui algoritm se face folosind numere n FVM si calculele sunt
nsot ite 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 solut ia unei probleme rau condit ionate
mai precis decat o garanteaza datele de intrare. Totusi, e de dorit ca

f sa nu in-
troduca erori exagerat de mari. Not iunea de stabilitate numerica exprima marimea
erorilor numerice introduse de un algoritm, n ipoteza ca datele init iale sunt exacte.
0.4. STABILITATEA NUMERIC

A A ALGORITMILOR 13
r
r
`

f
f
x
x
f(x)

f(x) = f( x)
Date de iesire Date de intrare
Eroare nainte
Eroare napoi
Fig. 0.3: Erori nainte si napoi
Denit ia 0.4 Un algoritm

f, destinat rezolv arii problemei f, este numeric stabil
dac a una dintre urm atoarele dou a condit ii alternative este ndeplinit a:
i)

f(x) este aproape de f(x) pentru orice intrare x, adic a solut ia calculata aproxi-
meaz a bine solut ia exacta.
ii) pentru orice intrare x, exist a un x D apropiat de x astfel nc at f( x) s a e
egal cu

f(x), adic a solut ia calculata de algoritmul

f cu date de intrare exacte este
egal a cu solut ia exacta pentru niste date de intrare usor perturbate.
Altfel, algoritmul este numeric instabil.
Cele doua condit ii sunt similare, doar ca prima se formuleaza n spat iul datelor
de iesire, iar a doua n spat iul datelor de intrare, dupa cum se poate remarca
n gura 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
spat iul datelor de intrare, ulterior aplicarii algoritmului. Analiza stabilitat ii nu-
merice a unui algoritm nseamna cuanticarea erorilor din denit ia 0.4; evaluarea

f(x)f(x) este caracteristica analizei nainte (directe); evaluarea xx deneste


analiza napoi (inversa).
Not iunea vaga aproape se poate reexprima prin cea de eroare relativa mica
(not iune 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
: solut ia este calculata cu
precizia intrinseca a FVM utilizat.
Este usor de aratat ca utilizarea unui algoritm stabil la rezolvarea unei probleme
bine condit ionate conduce la un rezultat de nalta acuratet e
2
.

Intr-adevar, din denit ia 0.4 varianta ii), pentru intrarea exacta x exista x astfel
ncat eroarea relativa este (sa zicem) de ordinul erorii de rotunjire
x x
x

t
1
In continuare, vom spune algoritm stabil n loc de algoritm numeric stabil.
2
Atragem atent ia asupra sensurilor diferite pe care le au n calculul numeric termenii precizie si
acuratet e, aproape sinonimi n limbajul uzual. Precizia se refer a la num arul de cifre semnicative
din FVM, iar acuratet ea la m arimea erorii dintre rezultatul calculat numeric si cel exact.
14 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
si
f( x) =

f(x). (0.13)
Problema ind bine condit ionata, din (0.11) rezulta ca
f(x) f( x)
f(x)
=
x x
x

t
, (0.14)
unde si sunt de ordinul unitat ii. Deci, din (0.13) si (0.14),
f(x)

f(x)
f(x)

t
,
adica un algoritm stabil nu introduce erori suplimentare semnicative n rezolvarea
unei probleme bine condit ionate.

In mod similar, se poate observa ca, n alte situat ii (de exemplu pentru probleme
rau condit ionate sau pentru algoritmi instabili), marimea erorii asociate rezulta-
tului nu poate apreciata. Cand un algoritm stabil este folosit pentru a rezolva
o problema rau condit ionata, nu exista nici o garant ie ca f( x) si f(x) au valori
apropiate si, desi f( x) este (aproximativ) egal cu

f(x), diferent a dintre f(x) si

f(x)
poate semnicativa. Cand un algoritm instabil este folosit pentru rezolvarea unei
probleme bine condit ionate, solut ia calculata

f(x) pentru date exacte de intrare
este solut ie exacta a problemei cu x departe de x, si tot asa este f( x) de f(x).

In
sfarsit, nu e nici o sperant a de a obt ine erori mici atunci cand un algoritm instabil
este utilizat pentru o problema rau condit ionata.
Exemplul 0.12 Revenim la problema calculului sumei, f : R
2
R,
f(x, y) = x +y. Problema poate bine sau rau condit ionata n funct ie de datele
de intrare (vezi exemplul 0.11).
Algoritmul de calcul al sumei n virgula mobila

f : R
2
R este

f(x, y) = x y = fl(x +y),


unde fl este o funct ie de rotunjire care respecta relat ia (0.7), iar x si y sunt numere
n FVM; deci, n conformitate cu (0.7),

f(x, y) = x(1 +) +y(1 +),


cu || de ordinul
t
, adica suma calculata este suma exacta a operanzilor usor
perturbat i, si deci algoritmul de sumare este stabil.
Exemplul 0.13 Sa analizam acum algoritmul de calcul al marimii
f(a, b, c) = b
2
4ac. Presupunem ca a, b, c sunt numere n FVM.

In conformitate
cu (0.7) avem

f(a, b, c) = b b 4 a c = [b
2
(1 +
1
) 4ac(1 +
2
)](1 +
3
),
cu |
1
|, |
2
|, |
3
| de ordinul
t
; am presupus ca 4 a se calculeaza fara erori, ceea
ce e adevarat n baza 2, dar nu si n baza 10.
0.5. CALIT

AT ILE UNUI ALGORITM NUMERIC 15


Denind
a = a(1 +
2
),

b = b
_
(1 +
1
)(1 +
3
), c = c(1 +
3
),
constatam ca

f(a, b, c) =

b
2
4 a c,
si a,

b, c sunt aproape de a, b, respectiv c (n sensul | a a|/|a| de ordinul
t
etc.).
Condit ia ii) a denit iei 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 operat iile n virgula mobila pentru a demonstra ca solut ia
calculata a unei probleme este solut ia exacta a problemei cu date de intrare usor
perturbate. O astfel de demonstrat ie garanteaza ca algoritmul este numeric stabil si,
pentru probleme bine condit ionate, sunt asigurate erori relative mici ale rezultatelor
calculate.
Pentru probleme nebanale, a arata ca un anume algoritm este stabil poate
o sarcina dicila. Exista foarte put ini algoritmi pentru care exista o demonstrat ie
completa a stabilitat ii numerice. Totusi, mult i algoritmi important i au fost validat i
n practica printr-o experient a de zeci de ani. Cum spunea Wilkinson: scopul
principal al analizei erorilor nu este de a stabili margini precise, ci de a evident ia
instabilitat ile potent iale ale unui algoritm, daca ele exista, si, prin aceasta, de a gasi
o cale de mbunatat ire a algoritmului [IV].

In aceasta lucrare vom interesat i mai mult de prezentarea celor mai buni algo-
ritmi care rezolva o problema, si mai put in de demonstrarea aproape ntotdeauna
extrem de tehnica a stabilitat ii lor numerice.
0.5 Calitat ile unui algoritm numeric
Pentru a ncheia acest capitol, sa precizam criteriile dupa care se apreciaza calitatea
unui algoritm numeric.
Num arul de operat ii. Timpul de execut ie al unui program pe un calculator
precizat este o caracteristica de prim ordin a acestuia. De regula, un program se
executa de mai multe ori, pentru a rezolva o anume problema pentru diverse date
de intrare; timpul de execut ie permite aprecierea numarului de solut ii care se pot
obt ine ntr-un anumit timp, de obicei impus.
Desigur, este de dorit a estima timpul de execut ie al unui program nainte de
crearea sa efectiva, numai pe baza algoritmului implementat de program. O buna
masura este numarul de operat ii aritmetice efectuate; n algoritmii numerici ele
constituie de obicei partea majoritara a operat iilor, cele cu ntregi sau logice avand
o pondere mica, atat ca numar, cat si ca durata de execut ie.
Numim op o operat ie aritmetica elementara (adunare, scadere, nmult ire, m-
part ire). Num arul de operat ii al unui algoritm este numarul de opi necesari
obt inerii rezultatului. Trebuie precizat ca desi numarul de operat ii poate indica
doar cu aproximat ie timpul de execut ie pe un calculator dat, n schimb este o foarte
buna masura pentru compararea a doi algoritmi.
16 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
De regula, numarul de operat ii N
op
al unui algoritm e funct ie de dimensiunea
problemei care, de multe ori, poate apreciata prin numarul datelor de intrare,
N
op
= f(n).

In calculul numeric, de obicei f este un polinom (de grad mic),
f(n) = a
0
n
k
+a
1
n
k1
+. . . +a
k
. Pentru ca f poate avea o expresie complicata, se
pastreaza doar termenul cel mai semnicativ si se scrie N
op
a
0
n
k
. O astfel de
aproximare este cu atat mai buna cu cat n este mai mare. Pentru aprecieri pur
calitative, vom omite a
0
si vom scrie
3
N
op
= O(n
k
).
Memoria ocupat a. Pentru execut ia unui algoritm (program) este necesara
memorarea datelor de intrare, rezultatelor, precum si a altor valori intermediare.
Numarul de elemente n FVM necesare n acest scop se numeste memoria ocupat a
de algoritm.

In majoritatea cazurilor, datele de intrare nu mai sunt necesare la terminarea al-


goritmului. Spat iul de memorie ocupat de ele poate utilizat pe parcursul execut iei
algoritmului pentru a memora rezultate part iale si/sau nale.

In acest caz se spune
ca efectuam calculele pe loc.
Stabilitatea numeric a, discutata n paragraful anterior, arata acuratet ea rezul-
tatelor obt inute de algoritmul numeric (n ipoteza ca datele init iale sunt exacte).
Aceste trei criterii trebuie corelate cu viteza calculatorului, memoria disponibila,
numarul de cifre semnicative al FVM utilizat.
Desigur, nu trebuie uitata nici un moment condit ionarea problemei, care inuen-
t eaza si ea acuratet ea rezultatului. Intereseazan special performant ele algoritmului
pentru probleme rau condit ionate, adica atunci cand erorile datelor de intrare sunt
mult amplicate.

In orice caz, calculul solut iei e bine a nsot it de determinarea
(sau estimarea) condit ionarii problemei, adica de calculul unei cantitat i de tip (0.11).
Putem adauga astfel un al patrulea criteriu de apreciere a unui algoritm:
Sigurant an funct ionare capacitatea de a semnala situat iile n care rezultatul
poate afectat de erori importante datorate relei condit ionari a problemei. Decizia
de a utiliza sau nu un astfel de rezultat revine utilizatorului sau unui program
expert.
0.6 Implicat iile arhitecturii calculatoarelor asupra
organizarii algoritmilor

In considerat iile din sect iunea precedenta am presupus calculatorul pe care se vor
implementa algoritmii ca avand arhitectura clasica von Neumann, schit ata n gura
0.4a; pe un astfel de calculator, n principiu, pentru ecare operat ie aritmetica
se aduc operanzii din memoria M n unitatea centrala UC, se executa operat ia si
rezultatul este depus napoi n M. Cu acest mod de operare, timpul de execut ie
e dictat esent ialmente de numarul de operat ii n virgula mobila, durata tracului
ntre M si UC ind proport ionala cu numarul de opi.

In ultimele doua decenii au aparut numeroase tipuri de arhitecturi pe care timpul


de execut ie a unui algoritm nu mai este proport ional cu numarul de operat ii n
3
Se scrie f(n) = O(g(n)) dac a exist a dou a constante c
1
, c
2
astfel nc at c
1
g(n) f(n) c
2
g(n).
0.6. IMPLICATIILE ARHITECTURII CALCULATOARELOR 17
UC
M

`
UCS UCV
M

`
MR
UC
(a) (b) (c)
MP

`
Fig. 0.4: Arhitecturi de calculatoare: (a) von Neumann; (b) vectoriala; (c) cu
memorie ierarhica
virgula mobila. Vom exemplica n continuare cu doua arhitecturi larg raspandite,
n special n gama calculatoarelor de mare performant a.
Calculatoarele vectoriale au doua (tipuri de) unitat i de calcul, ca n gura
0.4b. Una dintre unitat i UCS este obisnuita; ea executa operat ii scalare, adica
operat iile aritmetice uzuale. Cealalta UCV este dedicata operat iilor vectoriale,
adica unor operat ii aritmetice de acelasi tip repetate pentru mai multe perechi de
date; de exemplu, adunarea a n perechi de numere, x
i
+ y
i
, i 1 : n. Daca pe un
calculator von Neumann nu e nici o diferent a de viteza ntre astfel de operat ii, pe
calculatoarele vectoriale se executa mult mai rapid operat iile vectoriale; explicat ia e
relativ simpla: UCV e astfel construita ncat datele o parcurg ca pe o banda rulanta
cu mai multe posturi de lucru, ecare pereche de date suferind la un moment dat
o alta operat ie intermediara (daca sunt p posturi de lucru, timpul de producere a
unui rezultat este de aproximativ p ori mai mic). La aceasta se adauga si un mod de
comunicat ie sosticat ntre M si UCV, astfel ncat UCV sa poata n permanent a
alimentata cu date.

In schimb, UCS prelucreaza doar o pereche de date la un mo-
ment dat. Deci, un algoritm ecient pe un calculator vectorial va cont ine mai ales
operat ii de tip vectorial.
Calculatoarele cu memorie ierarhic a au structura sugerata n gura 0.4c. Prin-
cipala noutate a acestei arhitecturi este organizarea memoriei pe cel put in doua
niveluri. Timpul de acces la memorie creste odata cu distant a dintre unitatea cen-
trala si memoria respectiva; memoria rapida (MR) are un timp de acces sensibil
mai mic decat cel al memoriei principale (MP), dar si o capacitate mult mai mica;
aceste caracteristici provin mai ales din tehnologia de realizare, diferita de cea a
memoriei principale (totusi, n mod natural, o memorie mai mica este mai rapida).
Transferurile ntre UC si MR dureaza put in n comparat ie cu timpul de execut ie
al unei operat ii n virgula mobila; n schimb, transferurile ntre MR si MP dureaza
mai mult. De aceea, un algoritm ecient pe un calculator cu memorie ierarhica are
un numar cat mai mic de transferuri implicand MP, acesta ind criteriul principal de
18 CAPITOLUL 0. CONCEPTE FUNDAMENTALE
apreciere, si nu numarul de operat ii. Caracteristica tipica a unui astfel de algoritm
este organizarea calculelor la nivel de bloc de matrice, operandu-se intensiv cu date
aate ntr-o aceeasi zona de memorie, sucient de mica pentru a ncapea n MR.
Concluzia care se impune este ca utilizarea unui acelasi algoritm pentru re-
zolvarea unei anume probleme pe toate arhitecturile ar inecienta. Vom sugera,
n capitolele urmatoare, metode de crestere a ecient ei algoritmilor pe calculatoare
vectoriale si cu memorie ierarhica. De obicei, este necesara doar o reorganizare
a calculelor; alteori, nsa, algoritmi noi se dovedesc mult mai ecient i pe aceste
arhitecturi.
O alta clasa de arhitecturi de mare performant a cuprinde calculatoarele para-
lele. Acestea au mai multe procesoare identice care pot lucra independent si care
coopereaza printr-un mediu de comunicat ie (legaturi directe sau memorie comuna).
Algoritmii ecient i pe arhitecturi paralele au multe caracteristici ce i diferent iaza
net de cei secvent iali; tratarea lor impune instrumente specice, de aceea nu i vom
aborda n prezenta lucrare, ci n una urmatoare, dedicata numai lor. Pentru o
introducere n materie, cititorul interesat poate consulta capitolul 6 din [VI].
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 Gasit i o limita a erorii relative pentru calculul n virgula mobila al sumei
y = x1 +x2 +x3; presupunet i ca x1, x2, x3 sunt numere n virgula mobila.
P 0.3 Sa consideram problema calculului solut iei ecuat iei liniare ax +b = 0, cu a, b R,
a = 0. Pentru ce valori ale datelor de intrare a, b este aceasta problema rau condit ionata ?
Algoritmul pentru calculul solut iei este x = b/a; este acest algoritm numeric stabil ?
P 0.4 Aceeasi ntrebare pentru ecuat ia (a1 +a2)x+(b1 +b2) = 0, n care datele de intrare
sunt a1, a2, b1, b2 R.
P 0.5 Se considera un FVM denit de (, t, p). Care este distant a ntre 1 si cel mai
apropiat numar reprezentabil n virgula mobila, mai mare ca 1 ?
P 0.6 Gasit i limita (superioara) a erorii relative a funct iei de rotunjire care asociaza
ecarui x [M, M] cel mai apropiat numar n virgula mobila.
P 0.7 Ce formula recomandat i pentru calculul n virgula mobila: x
2
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 not iunilor matematice aate 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 numit i ad-hoc elementari, unii folosit i ca unelte mai tarziu, alt ii deja rezolvand
probleme sau cazuri particulare ale unor probleme semnicative.
Not iunile matematice apart in n mare majoritate algebrei liniare. Am ncercat
o prezentare de sine statatoare, dar, desigur, cunostint ele anterioare ale cititorului
sunt binevenite.
Fiecare sect iune a capitolului are doua part i: prima, cu nuant a teoretica, de
parcurgere a unor denit ii si proprietat i fundamentale; a doua, de aspecte algo-
ritmice, n care sunt prezentat i si analizat i algoritmi simpli, moduri de memorare
a datelor, articii numerice etc. Subtitlurile acestor din urma part i vor ncepe cu
sigla AA.
Principalii algoritmi prezentat i 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 modalitat ile prin care se maresc performant ele algo-
ritmilor pe diverse arhitecturi de calculatoare. Capitolul se ncheie cu prezentarea
rutinelor BLAS, extrem de utilizate n calculul numeric.
1.1 Vectori. Spat iul vectorial R
n

In aceasta lucrare vom utiliza de regula entitat i (vectori si matrice) construite cu


numere reale; majoritatea denit iilor si proprietat ilor sunt valabile si pentru numere
complexe; vom face diferent ierile necesare atunci cand va cazul. Un numar real
R va numit si scalar; scalarii vor notat i de obicei cu litere grecesti mici.
19
20 CAPITOLUL 1. ALGORITMI ELEMENTARI
`

x
x
1
x
2
x
3
(a)
`

.
`

.
1
1
1
e
1
e
3
e
2
(b)
Fig. 1.1: (a) Un vector n R
3
si coordonatele sale; (b) vectorii unitate n R
3
Vectori. Un vector real x de dimensiune n este o colect ie de n numere reale
dispuse ordonat ntr-o coloana
x =
_

_
x
1
x
2
.
.
.
x
n
_

_
, (1.1)
numerele x
i
ind numite componente (elemente, sau coordonate) ale vectorului x.

In general, vom nota vectorii cu litere latine mici, iar elementele lor cu litera re-
spectiva si indicele pozit iei. Pentru economie de spat iu tipograc, vom nota deseori
x = [x
1
. . . x
n
]
T
, unde x
T
= [x
1
. . . x
n
] este vectorul linie cu aceleasi elemente ca
n (1.1), iar indicele superior
T
denota operat ia de transpunere.
Mult imea tuturor vectorilor de dimensiune n va notata cu R
n
si va asimi-
lata cu spat iul real n-dimensional.

In consecint a, din punct de vedere geometric, un
vector reprezinta segmentul orientat care uneste originea spat iului real cu n dimen-
siuni cu punctul de coordonate (x
1
, . . . , x
n
), sau chiar numai acest din urma punct.
Vectorul cu toate componentele nule va notat cu 0, dimensiunea sa reiesind din
context; geometric, acesta este originea spat iului n-dimensional. Pentru o mai buna
nt elegere, vom ilustra unele concepte n R
2
sau R
3
; gura 1.1a prezinta un vector
si semnicat ia (de coordonate) a elementelor sale.
Vectorii din R
n
care au un element egal cu 1 si celelalte nule se numesc vectori
unitate; ei vor notat i
e
i
= [0 . . . 0
. .
i1
1 0 . . . 0
. .
ni
]
T
,
indicele aratand pozit ia valorii 1. Spre exemplu, vectorii unitate din R
3
sunt
prezentat i n gura 1.1b.
Doi vectori sunt egali cand toate componentele lor de acelasi indice sunt egale;
deci, daca x, y R
n
, atunci x = y cand x
i
= y
i
, i 1 : n.
1.1. VECTORI. SPAT IUL VECTORIAL R
N
21

.
.
.
.
.
.
.
.
.
.
.
.
x
y
x +y

x x
(a) (b)
Fig. 1.2: (a) Suma a doi vectori n R
2
; (b) Produsul cu un scalar
Introducem acum operat iile elementare cu vectori.
Suma a doi vectori x, y R
n
este vectorul z R
n
denit prin z
i
= x
i
+ y
i
,
i 1 : n; asadar, suma se face pe componente.

In acest fel sunt mostenite toate
proprietat ile adunarii numerelor reale:
1. asociativitate (u + (v +w) = (u +v) +w);
2. comutativitate (u +v = v +u);
3. elementul neutru este vectorul nul (x + 0 = x);
4. opusul unui vector x este x, adica vectorul cu elementele x
i
, i = 1 : n
(x + (x) = 0).
Astfel, R
n
mpreuna cu operat ia de adunare formeaza un grup comutativ.
Produsul unui vector x R
n
cu un scalar R este vectorul y = x R
n
denit de y
i
= x
i
, i 1 : n; deci, produsul se face multiplicand cu ecare
componenta a vectorului x. Produsul cu un scalar este o operat ie externa pe R
n
.
Semnicat iile geometrice ale celor doua operat ii sunt prezentate n gura 1.2;
adunarea se face dupa regula paralelogramului, iar produsul cu un scalar modica
doar lungimea vectorului, pastrandu-i direct ia.
Mult imea R
n
mpreuna cu operat iile de adunare si produs cu un scalar are
structura de spat iu vectorial, adica, n afara structurii de grup comutativ fat a de
adunare, mai sunt satisfacute urmatoarele proprietat i ale produsului cu un scalar:
1. 1 x = x;
2. (x) = ()x;
3. ( +)x = x +x;
4. (x +y) = x +y.
Combinat ie liniara. Fie X R
n
o mult ime avand ca elemente vectorii
1
x
1
, x
2
, . . . , x
p
. Vectorul
y
def
=
1
x
1
+
2
x
2
+. . . +
p
x
p
=
p

i=1

i
x
i
(1.2)
se numeste combinat ie liniar a a vectorilor din X cu coecient ii
1
,
2
, . . . ,
p
R.
Daca tot i coecient ii sunt nuli, combinat ia se numeste trivial a.
Vectorii din X sunt liniar independent i daca nu exista o combinat ie liniara netri-
viala a elementelor lui X care sa e nula. Daca o astfel de combinat ie exista, vectorii
din X sunt numit i liniar dependent i.
1
Se observ a c a acum x
i
este un vector si nu un element de vector; asadar, folosim indicii si
pentru a numerota vectorii dintr-o mult ime.
22 CAPITOLUL 1. ALGORITMI ELEMENTARI
Daca vectorii sunt liniar dependent i, atunci cel put in unul dintre ei se poate
exprima printr-o combinat ie liniara a celorlalt i; i.e., daca

p
i=1

i
x
i
= 0, atunci
exista
j
= 0, si deci x
j
=

p
i=1,i=j
(
i
/
j
)x
i
.
Evident, ntr-o mult ime de vectori independent i, nici unul dintre ei nu se poate
exprima printr-o combinat ie liniara a celorlalt i. De exemplu, vectorii unitate
e
1
, . . . , e
n
sunt liniar independent i. Daca X R
n
este o mult ime de vectori
liniar independent i si y =

p
i=1

i
x
i
R
n
este o combinat ie liniara a acestora,
atunci coecient ii combinat iei liniare sunt unici (demonstrat i).
Subspat iu liniar. O mult ime S de vectori din R
n
este numita subspat iu liniar
al spat iului R
n
daca sunt ndeplinite urmatoarele doua condit ii:
1. x +y S, x, y S;
2. x S, R, x S.
Asadar, orice combinat ie liniara a unor vectori din S apart ine tot lui S; altfel spus,
S e invariant la combinat ii liniare. Evident, orice subspat iu liniar cont ine vectorul
nul (originea).
Fie X R
n
o mult ime de vectori si S mult imea tuturor combinat iilor liniare ale
vectorilor din X. Atunci S e un subspat iu liniar, numit subspat iul generat de X. De
exemplu, n R
3
doi vectori genereaza de regula un plan; daca vectorii sunt coliniari
(adica exista scalarul a.. y = x), atunci subspat iul generat este o dreapta.
Fie S R
n
un subspat iu; o mult ime de vectori B S este baz a a subspat iului
S daca:
1. elementele lui B sunt liniar independente;
2. S e generat de B.
Asadar o baza cont ine numarul minim de vectori cu ajutorul carora se poate genera
subspat iul.
Daca B = {b
1
, . . . , b
m
}, atunci x S se scrie n mod unic n forma unei
combinat ii liniare a vectorilor din baza, x =

m
i=1

i
b
i
. Numerele
i
se numesc
componentele sau coordonatele, vectorului x n raport cu baza B.
De exemplu, e
1
, . . . , e
n
formeaza o baza pentru R
n
, numita si baza canonic a;
componentele vectorului x, n sensul denit iei (1.1), sunt componentele n raport
cu aceasta baza, deoarece evident x =

n
i=1
x
i
e
i
.
Un subspat iu are o innitate de baze, dar toate au acelasi numar de elemente.
Evident, un vector x = 0 are coordonate diferite n raport cu aceste baze.
Dimensiunea unui subspat iu, notata dimS, este numarul vectorilor din baza,
adica numarul maxim de vectori din S liniari independent i sau, cum am ment ionat
deja, numarul minim de vectori care genereaza S.
De exemplu, R
n
are dimensiunea n, numarul de vectori din baza canonica; un
plan n R
3
are dimensiunea 2.
Doua subspat ii S, T R
n
se numesc complementare daca
1. S T = {0}.
2. R
n
este generat de S T .
1.1. VECTORI. SPAT IUL VECTORIAL R
N
23
\
\
\
\
\
\
\
\
\
\

\
\
\
\
\
\
\
\
\
\

S
T

Fig. 1.3: Subspat ii complementare n R


3
: un plan S si o dreapta T

In acest caz vom utiliza notat ia R


n
= S T . Fiecare dintre cele doua subspat ii este
numit complementul celuilalt. Orice vector x R
n
se poate exprima n mod unic
prin x = s + t, cu s S, t T . De asemenea, dimS + dimT = n. De exemplu,
n gura 1.3 sunt reprezentate un plan si o dreapta n R
3
, care constituie imaginile
geometrice a doua subspat ii complementare.
Sa observam ca subspat iul complementar al unui subspat iu nu este, n general,
unic.

In exemplul din gura 1.3, orice dreapta care nu apart ine planului este com-
plementara acestuia.
Spat iul vectorial complex C
n
se deneste analog cu spat iul R
n
si are aceleasi
proprietat i, deoarece proprietat ile corpului numerelor reale folosite mai sus sunt
identice cu cele ale corpului numerelor complexe.
Desigur, orice vector x C
n
se poate scrie n forma x = u + iv, cu u, v R
n
si
i unitatea imaginara.
AA. Saxpy. Vom descrie acumn termeni algoritmici o operat ie fundamentala
cu vectori, anume y x + y, cu x, y R
n
, R, operat ie numita Saxpy
2
.
Notat ia , citita ia valoarea, are semnicat ia de atribuire. Cu alte cuvinte,
ntr-un program ce realizeaza operat ia si n care vectorii x si y reprezinta variabile,
vectorul calculat x + y este depus n variabila y, suprascriind valoarea init iala a
acesteia. Vom introduce direct si alte convent ii de scriere a algoritmilor, cu premiza
ca cititorul are not iuni elementare despre limbajele de programare de nivel nalt.
Algoritmul 1.1 (Saxpy) (Se dau x, y R
n
. Se calculeaza
y x +y R
n
.)
1. Pentru i = 1 : n
1. y
i
y
i
+x
i
2
Notat ia provine din init ialele variabilelor folosite: x Plus y; n BLAS, init iala S semnic a
faptul c a calculele se efectueaz a n Simpl a precizie; ea este atasat a n mod tradit ional numelui
operat iei.
24 CAPITOLUL 1. ALGORITMI ELEMENTARI
Comentarii. Instruct iunea Pentru i = 1 : n nseamna repetarea execut iei, pentru
toate valorile indicate ale indicelui i, a instruct iunilor ce i urmeaza (pana la prima
instruct iune aata la acelasi nivel cu Pentru). Instruct iunile sunt referite prin
secvent e de numere cuprinzand (de la dreapta spre stanga) numarul din algoritm al
instruct iunii respective si numerele instruct iunilor carora le este subordonata (de la
cea mai apropiata la cea mai departata).

In algoritmul Saxpy, prima instruct iune
este 1, a doua 1.1.
Contorizand operat iile executate de algoritmul 1.1, constatam ca ecare execut ie
a instruct iunii 1.1 necesita 2 opi (o nmult ire si o adunare), deci, n total, sunt
necesari N
op
= 2n opi.

In continuare, Saxpy va privita ca operat ie elementara si va apelata prin


Saxpy(, x, y); ea face parte din grupul operat iilor de nivel 1, mpreuna cu alte
operat ii, dintre care unele vor prezentate ulterior
3
.
Asa cum este normal, Saxpy si celelalte operat ii de nivel 1 sunt executate
mai ecient pe calculatoare vectoriale. De aceea, pe astfel de calculatoare, exista
tendint a de a scrie tot i algoritmii n termeni de operat ii de nivel 1 si nu prin operat ii
aritmetice elementare.
1.2 Produs scalar. Norme. Ortogonalitate
Produsul scalar este o funct ie f : R
n
R
n
R cu proprietat ile:
1. f(x, y) = f(y, x) (comutativitate);
2. f(x, y +z) = f(x, y) +f(x, z) (distributivitate);
3. f(x, y) = f(x, y);
4. f(x, x) 0 si f(x, x) = 0 x = 0 (pozitivitate).
Produsul scalar standard n R
n
, cel pe care l vom utiliza de obicei, se deneste
prin f(x, y)
not
= y
T
x, unde y
T
x
def
=

n
i=1
x
i
y
i
. Invitam cititorul sa verice satisface-
rea celor patru proprietat i ale produsului scalar.
Spat iul R
n
mpreuna cu produsul scalar uzual este un spat iu euclidian (n el este
valabila o geometrie similara cu cea din R
2
si R
3
, cunoscuta din liceu).
Norme. Prin norma se asociaza unui vector o marime (lungime). O norm a
vectorial a este o funct ie : R
n
R
+
, notata de obicei (x) = x, care satisface
urmatoarele condit ii:
1. x > 0, x R
n
, x = 0 (pozitivitate);
2. x = || x, x R
n
, R (omogenitate);
3. x +y x +y, x, y R
n
(inegalitatea triunghiului).
Se deduce imediat ca 0 = 0 si x = x.
Cea mai utilizata norma vectoriala este cea indusa de produsul scalar si se
numeste norm a euclidian a sau norm a 2:
x
2
=

x
T
x =

_
n

i=1
x
2
i
. (1.3)
3
Numerotarea nivelelor se face dup a exponentul lui n din expresia num arului de opi necesari
la execut ie; operat iile de nivel 1 necesit a O(n) opi, cele de nivel 2 necesit a O(n
2
) opi etc.
1.2. PRODUS SCALAR. NORME. ORTOGONALITATE 25
87
96

>>
1

`
Fig. 1.4: Cercuri de raza 1 n R
2
, n normele 1, 2,
Denumirea de norma 2 este justicata de faptul ca (1.3) este un caz particular
de norma p (sau norma Holder). Pentru p 1, norma p se deneste prin
x
p
=
_
n

i=1
|x
i
|
p
_
1/p
.
Alte cazuri particulare de norma p folosite curent sunt normele 1 si innit,
denite, n ordine, prin
x
1
=
n

i=1
|x
i
|,
x

= max
i=1:n
|x
i
|.
Pentru a ilustra geometric cele trei norme de mai sus, gura 1.4 prezinta cer-
curile de raza 1 n R
2
, adica locul geometric al punctelor x R
2
pentru care
x
p
= 1, pentru p = 1, 2, .
Doua norme pe R
n
, sa zicem
q
si
r
, se numesc echivalente daca exista

1
,
2
> 0 astfel ncat pentru orice x R
n
avem

1
x
q
x
r

2
x
q
. (1.4)
Oricare doua norme p sunt echivalente. De exemplu (demonstrat i !):
x

x
1
nx

;
x

x
2

nx

;
x
2
x
1

nx
2
.
Ortogonalitate. Unghiul a doi vectori nenuli x, y R
n
se deneste prin
= arccos(y
T
x/(x y)); geometric, acesta este chiar unghiul format de cei doi
vectori n planul generat de ei.
Doi vectori x, y R
n
se numesc ortogonali daca produsul lor scalar este nul,
x
T
y = 0; semnicat ia geometrica este cea naturala: ntre cei doi vectori este un
unghi drept; de aceea vom folosi si notat ia x y.
Vectorii u
1
, u
2
, . . . , u
p
se numesc ortogonali daca sunt ortogonali doi cate doi,
adica
u
T
i
u
j
= 0, i = j, i, j 1 : p. (1.5)
26 CAPITOLUL 1. ALGORITMI ELEMENTARI
Daca, n plus fat a de (1.5), vectorii u
i
au norme euclidiene unitare, u
i

2
= 1,
i = 1 : p, ei sunt numit i ortonormali.
Vectorii ortogonali sunt liniar independent i; justicarea e intuitiva: un vector
ortogonal pe tot i ceilalt i este ortogonal si pe orice combinat ie liniara a lor.
Orice subspat iu de dimensiune mai mare ca unu are o innitate de baze ortonor-
male
4
. De exemplu, baza canonica a R
n
, e
1
, . . . , e
n
, este ortonormala. Folosirea
bazelor ortonormale este recomandabila nu numai datorit a proprietat ilor matema-
tice, dar si a acuratet ii numerice pe care o induc n calcule. Un mod simplu, dar nu
si numeric stabil, de a construi o baza ortonormala, pornind de la o baza oarecare,
este sugerat n problema 1.6 (algoritmul Gram-Schmidt); metode numeric stabile
vor prezentate n capitolele 3 si 5.
Teorema lui Pitagora se generalizeaza imediat n R
n
: vectorii x, y R
n
sunt
ortogonali daca si numai daca x +y
2
2
= x
2
2
+y
2
2
.
Not iunea de ortogonalitate poate extinsa la subspat ii liniare. Vectorul x R
n
este ortogonal pe subspat iul S R
n
daca este ortogonal pe orice vector din S. Doua
subspat ii S, T R
n
sunt ortogonale daca orice vector s S este ortogonal pe orice
vector t T ; vom nota S T .
Un subspat iu S R
n
este numit complementul ortogonal al subspat iului
T R
n
daca cele doua subspat ii sunt ortogonale si complementare. (x R
n
,
exista vectorii unici s S, t T astfel ncat x = t + s si t s.) Se utilizeaza
notat ia S = T

; desigur, avem si T = S

.
Particularitat i ale spat iului euclidian complex C
n
. Produsul scalar uzual
al vectorilor x, y C
n
este denit de proprietat i usor diferite de cele ale produsului
scalar din R
n
; mai precis, notand cu complex conjugatul scalarului complex ,
proprietat ile 1 si 3 devin:
1. f(x, y) = f(y, x);
3. f(x, y) = f(x, y).
Produsul scalar uzual n C
n
se deneste prin y
H
x =

n
i=1
x
i
y
i
.
Doi vectori x, y C
n
sunt ortogonali daca y
H
x = 0.
Norma euclidiana : C
n
R
+
se deneste prin x
2
=

x
H
x, x C
n
,
unde x
H
x =

n
i=1
|x
i
|
2
, iar || este modulul scalarului complex .
AA. Calculul produsului scalar. Urmand (1.3), produsul scalar se calculeaza
astfel:
Algoritmul 1.2 (DOT Calculul produsului scalar) (Se dau vec-
torii x, y R
n
. Se calculeaz a = y
T
x.)
1. 0
2. Pentru i = 1 : n
1. +x
i
y
i
Comentarii. Algoritmul are 2n operat ii si face deci parte din grupul operat iilor
de nivel 1.

Il vom apela prin = DOT(x, y).
4
In general vom spune baze ortogonale n loc de ortonormale, presupun and implicit c a normele
vectorilor sunt unitare.
1.2. PRODUS SCALAR. NORME. ORTOGONALITATE 27
Datorita erorilor numerice, la execut ie algoritmul DOT nu va calcula = y
T
x,
ci o valoare , despre care se poate demonstra (vezi si problema 1.5):
| | n
M
|y|
T
|x| + O(
2
M
), (1.6)
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 mare.
AA. Calculul normelor. Normele 1 si se calculeaza usor. De exemplu,
x

se calculeaza astfel:
Algoritmul 1.3 (Nrminf Calculul normei innit a unui vector)
(Se da x R
n
. Se calculeaz a x

.)
1. norm 0
2. Pentru i = 1 : n
1. Daca |x
i
| > norm atunci norm |x
i
|
Pentru calculul normei 2 a unui vector x R
n
poate utilizat algoritmul 1.2,
apeland DOT(x, x), si apoi extragand radicalul. Exista nsa posibilitatea ca, desi
x
2
este reprezentabil n virgula mobila, x
T
x = x
2
2
sa nu e (de exemplu 10
25
este
reprezentabil n simpla precizie, dar 10
50
nu) si atunci calculul lui x
T
x sa conduca
la depasire superioara. Similar poate aparea o depasire inferioara, care antreneaza
pierdere de precizie sau decizii eronate: x
2
= 0 desi x = 0. Pentru a preveni acest
eveniment care ar mpiedica obt inerea rezultatului, se scaleaz a vectorul x, adica se
mpart toate elementele sale cu, de exemplu, x

(se aduce astfel x la alta scara


de marime). Daca x = x/ x

, atunci | x
i
| 1, i 1 : n, si depasirea superioara
este practic imposibila. (Aparit ia unor depasiri inferioare la ridicarea la patrat a
unor elemente ale vectorului x nu este suparatoare, deoarece n acest caz rezultatul
se aproximeaza cu zero.) Se obt ine urmatorul algoritm.
Algoritmul 1.4 (Nrm2 Calculul normei 2 a unui vector) (Se da
x R
n
. Se calculeaza = x
2
, efectuand o operat ie de scalare.)
1. Se calculeaza = x

2. = 0
3. Pentru i = 1 : n
1. + (x
i
/)
2
4.

Comentarii. Se observa ca scalarea, care se efectueaza n instruct iunile 1 si 3.1,


ncarca algoritmul cu n opi (2) si n comparat ii (1); cu toate acestea, sigurant a
calculelor impune de regula utilizarea ei, cu except ia cazurilor n care informat iile
apriorice despre date exclud aparit ia depasirii.
Un ranament al algoritmului 1.4 este de a utiliza pentru scalare nu x

, ci
cea mai apropiata putere a bazei de numerat ie a formatului virgula mobila utilizat
(de regula 2). Scalarile din instruct iunea 3.1 vor avea rezultate de acelasi ordin de
marime can cazul scalarii cu x

, deci nu va exista pericol de depasire superioara,


n schimb toate mpart irile se vor efectua exact, neintroducandu-se nici un fel de
eroare numerica suplimentara la calculul normei.
28 CAPITOLUL 1. ALGORITMI ELEMENTARI
AA. Ortogonalitate numerica. Matematic, testul de ortogonalitate a doi
vectori x, y R
n
este foarte clar: se verica daca x
T
y = 0. Numeric nsa, se
ntampla foarte rar ca DOT(x, y) sa e exact 0; aceasta se datoreaza atat erorilor
numerice aparute n execut ia algoritmului DOT, cat si erorilor de reprezentare
asociate elementelor celor doi vectori. De aceea, pentru a considera doi vectori
numeric ortogonali, ne mult umim cu condit ia
| DOT(x/ x
2
, y / y
2
) | < c
M
,
unde c 1 este o constanta mica, adica produsul scalar al vectorilor normalizat i
sa e de acelasi ordin de marime cu epsilon masina al formatului virgula mobila
utilizat.
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 a
ij
elementul matricei de
pe linia i si coloana j, matricea arata astfel
A =
_

_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
_

_
(1.7)
Daca m = n, matricea se numeste p atrat a.
Mult imea tuturor matricelor reale (complexe) cu m linii si n coloane va notata
R
mn
(respectiv C
mn
). Pastram n continuare convent ia de a ne referi la cazul
complex doar atunci cand este diferit de cel real.
Se numeste diagonal a principal a a matricei mult imea pozit iilor de indici egali din
tablou; pentru A R
nn
, suma elementelor de pe diagonala principala se numeste
urm a si se noteaza tr(A)
def
=

n
i=1
a
ii
.
Operat ii. Denim acum cateva operat ii elementare cu matrice: suma, produsul
cu un scalar, transpunerea.
Suma a doua matrice A, B R
mn
este matricea C = A +B R
mn
, denita
prin c
ij
= a
ij
+ b
ij
; asadar, suma se face adunand elementele de pe pozit ii cores-
pondente.
Produsul unei matrice A R
mn
cu un scalar R este matricea
B = A R
mn
, denita prin b
ij
= a
ij
, i = 1 : m, j = 1 : n.
Cu aceste doua operat ii suma si produsul cu un scalar R
mn
are o structura
de spat iu vectorial de dimensiune mn. O baza este E
ij
, i = 1 : m, j = 1 : n, unde
E
ij
este matricea nula cu except ia elementului (i, j) egal cu 1.
Transpusa unei matrice A R
mn
este matricea B R
nm
, notata B = A
T
,
denita prin b
ij
= a
ji
. Propunem cititorului demonstrarea urmatoarelor proprietat i
simple ale operat iei de transpunere:
1.3. MATRICE 29
1. (A
T
)
T
= A, A R
mn
;
2. (A +B)
T
= A
T
+B
T
, A, B R
mn
;
3. (A)
T
= A
T
, A R
mn
, R.
Produsul matrice-vector.

In funct ie de modul de utilizare, o matrice poate
interpretata n mai multe feluri. De exemplu, o matrice poate vazuta ca alaturare
de vectori:
A = [a
1
a
2
. . . a
n
], (1.8)
cu a
1
, a
2
, . . . , a
n
R
m
notandu-se coloanele matricei A. Aceasta interpretare este
utila n special n lucrul cu subspat ii.
Cu notat ia (1.8), produsul dintre matricea A R
mn
si vectorul x R
n
este
vectorul y R
m
y
def
= Ax =
n

j=1
a
j
x
j
, (1.9)
i.e. combinat ia liniara a coloanelor lui A cu coecient ii x
j
. Un caz particular este
produsul dintre matricea A si vectorul unitate e
j
, care are ca rezultat coloana j a
matricei: Ae
j
= a
j
.
Se poate observa ca produsul matrice-vector deneste o transformare liniara
f : R
n
R
m
, f(x) = Ax, adica o aplicat ie cu proprietat ile (evident satisfacute n
cazul nostru): f(u +v) = f(u) +f(v), f(u) = f(u), u, v R
n
, R.
Matrice si subspat ii liniare. Deoarece matricea A poate privita ca o
mult ime de vectori (coloane), se impune o notat ie speciala pentru subspat iul
generat de coloanele matricei, numit imaginea acesteia:
ImA = {y R
m
| x R
n
astfel ncat y = Ax}. (1.10)
Un alt subspat iu interesant, de data asta n R
n
, este cel al vectorilor avand ca
elemente coecient ii combinat iilor liniare nule ale coloanelor lui A, numit nucleul
matricei A:
KerA = {x R
n
| Ax = 0}. (1.11)
O proprietate fundamentala a acestor subspat ii este dat a de
Teorema 1.1 Dac a A R
mn
, atunci ImA si KerA
T
sunt subspat ii ortogonale si
complementare n R
m
, i.e.
1. ImA KerA
T
.
2. R
m
= ImAKerA
T
.
Demonstrat ie. 1. Fie y = Ax ImA si z KerA
T
. Atunci y
T
z = x
T
A
T
z = 0.
2. Fie z ImA. Atunci x
T
A
T
z = 0, oricare x R
n
, deci A
T
z = 0.
Evident, teorema poate aplicata pentru A
T
, si deci avem ImA
T
KerA si
R
n
= ImA
T
KerA.
30 CAPITOLUL 1. ALGORITMI ELEMENTARI

>
>
>
>
>
>.
y
2
y
3
y
1
`
`
`
`
`
`
(0,1,1)

(1,0,1)
(1,1,-1)

KerA
T
ImA
Fig. 1.5: KerA
T
este complementul ortogonal al lui ImA. Datele sunt cele din
exemplul 1.1
Exemplul 1.1 Fie A =
_
_
1 0
0 1
1 1
_
_
.
Atunci, S = ImA = {y R
3
| y =
_
_
x
1
x
2
x
1
+x
2
_
_
, x
1
, x
2
R}, adica S este
planul de ecuat ie y
3
= y
1
+y
2
.
T = KerA
T
= {y R
3
| A
T
y = 0} = {y R
3
| y
2
+ y
3
= 0, y
1
+y
3
= 0}, deci
avem T = {y R
3
| y =
_
_
1
1
1
_
_
} = Im
_
_
_
_
1
1
1
_
_
_
_
.
Vezi gura 1.5.
Privind n continuare matricea A n forma (1.8), rangul matricei A este dimen-
siunea subspat iului 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 = rangA
T
si deci rangul este totodata si numarul
maxim de linii liniar independente din A. Recapituland:
dimImA = dimImA
T
not
= r,
dimKerA = n r,
dimKerA
T
= mr.
(1.12)
O matrice A R
mn
avand coloanele liniar independente se numeste monic a;
n acest caz, m n, rangA = n si KerA = {0}. Se mai spune ca A are rang maxim
pe coloane.
O matrice A R
mn
avand liniile liniar independente se numeste epic a; atunci
m n, rangA = m si ImA = R
m
; se spune ca A are rang maxim pe linii.
1.3. MATRICE 31
O matrice A R
mn
avand una din dimensiuni egala cu 1 este un vector; daca
n = 1, vectorul este coloana (accept iunea 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 scrisa evident iind liniile:
A =
_

_
a
T
1
a
T
2
.
.
.
a
T
m
_

_
. (1.13)
Atent ie: acum a
T
i
e o notat ie pentru vectorul format de linia i a matricei A; a
i
nu
este coloana i din (1.8). Pentru a evita confuziile, vom folosi si notat iile: A(:, i)
pentru coloana i din A, respectiv A(i, :) pentru linia i din A.
Folosind forma (1.13) a matricei A, se poate observa usor ca produsul matrice-
vector se poate exprima prin intermediul unor produse scalare:
Ax =
_

_
a
T
1
x
.
.
.
a
T
m
x
_

_. (1.14)
AA. Gaxpy. Vom prezenta acum mai multe implementari ale produsului
matrice-vector, sub forma operat iei y Ax +y, numita Gaxpy
5
.
Din (1.9), la nivel de element, operat ia se scrie y
i
y
i
+

n
j=1
a
ij
x
j
, si deci
Algoritmul 1.5 (Gaxpy Produs matrice-vector) (Se dau
A R
mn
, x R
n
. Se calculeaza y Ax + y R
m
utilizand operat ii
elementare.)
1. Pentru i = 1 : m
1. Pentru j = 1 : n
1. y
i
y
i
+a
ij
x
j
Se observa imediat ca bucla interioara reprezinta o operat ie DOT, corespun-
zand exprimarii produsului matrice-vector n forma (1.14). Algoritmul de mai sus
se scrie deci, n forma vectoriala
Algoritmul 1.6 (Se dau A R
mn
, x R
n
. Se calculeaza
y Ax +y R
m
utilizand operat ii DOT.)
1. Pentru i = 1 : m
1. y
i
y
i
+DOT(A(i, :), x)
Inversand acum ordinea buclelor din algoritmul 1.5, ceea ce nu afecteaza n nici
un fel rezultatul (ordinea operat iilor pentru calculul ecarei sume y
i
n parte este
aceeasi), obt inem
Algoritmul 1.7 (Se dau A R
mn
, x R
n
. Se calculeaza
y Ax +y R
m
utilizand operat ii elementare.)
5
Prescurtare pentru General Ax Plus y.
32 CAPITOLUL 1. ALGORITMI ELEMENTARI
1. Pentru j = 1 : n
1. Pentru i = 1 : m
1. y
i
y
i
+a
ij
x
j
Bucla interioara reprezinta acum o operat ie Saxpy, corespunzand exprimarii
produsului matrice-vector n forma (1.9), care este o sum a de vectori. Algoritmul
1.7 se rescrie deci n forma vectoriala:
Algoritmul 1.8 (Se dau A R
mn
, x R
n
. Se calculeaza
y Ax +y R
m
folosind operat ii Saxpy.)
1. Pentru j = 1 : n
1. y Saxpy(x
j
, A(:, j), y)
Comentarii. Tot i algoritmii de mai sus au 2n
2
operat ii. De aceea Gaxpy
face parte din grupul operat iilor de nivel 2. Vom face referint a la ea n forma
y = Gaxpy(A, x, y). Desigur, implementarile din algoritmii 1.6 si 1.8 vor deosebit
de eciente pe calculatoare vectoriale.
1.4

Inmult irea matricelor
Dedicam o sect iune separata nmult irii de matrice (si unor not iuni conexe),
deoarece aceasta operat ie este specica (nu se poate deni n general produsul a
doi vectori cu rezultat vector
6
) si apare deseori n construct ia algoritmilor de nivel
superior, devenind astfel interesanta atat teoretic, cat si din punctul de vedere al
detaliilor de implementare.
Denit ia 1.1 Fie A R
ml
si B R
ln
, dou a matrice; produsul lor este matricea
C = AB R
mn
, denit a prin
c
ij
=
l

k=1
a
ik
b
kj
, i = 1 : m, j = 1 : n.
Cazuri particulare. Sa discutam ntai cazurile particulare n care cel put in
una dintre dimensiuni este egala cu 1.
Daca m = n = 1, atunci A
not
= x
T
este un vector linie, B
not
= y este un vector
coloana, ambii n R
l
, iar produsul lor coincide cu simplul produs scalar AB = x
T
y.
Daca l = 1, atunci A
not
= x este un vector coloana n R
m
, B
not
= y
T
este un
vector linie n R
n
, iar produsul lor este matricea C = xy
T
R
mn
, denita prin
c
ij
= x
i
y
j
; aceasta operat ie cu doi vectori poarta numele de produs exterior si va
notata prin OUT(x, y).
Daca n = 1, atunci B
not
= y este un vector coloana si operat ia AB este onmult ire
matrice-vector.
Daca m = 1, atunci A
not
= x
T
este un vector linie si AB = x
T
B este un vector
linie (nmult ire vector linie - matrice).
6
Produsul vectorial a b este posibil, printr-un accident fericit c aruia i este ndatorat a
ntreaga zic a clasic a, numai n R
3
.
1.4.

INMULT IREA MATRICELOR 33
Forme ale produsului matriceal. Vom evident ia acum mai multe forme
de prezentare a nmult irii a doua matrice, folosind ca operat ii 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 denit ie ca c
ij
= a
T
i
b
j
, adica
ecare element al rezultatului poate exprimat printr-un produs scalar (DOT).
2. Privim acum A partit ionata pe coloane si B pe linii. Produsul lor se poate
exprima ca o suma de produse exterioare:
C = AB = [a
1
. . . a
l
]
_

_
b
T
1
.
.
.
b
T
l
_

_ =
l

k=1
a
k
b
T
k
. (1.15)
Demonstrat ie: c
ij
=

l
k=1
(a
k
b
T
k
)
ij
=

l
k=1
(a
k
)
i
(b
T
k
)
j
=

l
k=1
a
ik
b
kj
.
3. Punem acum n evident a numai coloanele matricei B. Atunci
C = AB = A[b
1
. . . b
n
] = [Ab
1
. . . Ab
n
], (1.16)
deci ecare coloana a produsului este obt inuta prinnmult irea matrice-vector dintre
matricea A si coloana respectiva a lui B.
4. Fie acum A partit ionata pe linii. Atunci
C = AB =
_

_
a
T
1
.
.
.
a
T
m
_

_B =
_

_
a
T
1
B
.
.
.
a
T
m
B
_

_, (1.17)
deci ecare linie a produsului este obt inuta prin nmult irea vector linie - matrice
dintre linia respectiva a lui A si matricea B.
5. Sa exprimam acum coloanele produsului C n funct ie de coloanele matricei
A. Cu ajutorul relat iei (1.16) se obt ine
c
j
= Ab
j
=
l

k=1
b
kj
a
k
, (1.18)
deci orice coloana din C este combinat ie liniara a coloanelor matricei A.
6.

In sfarsit, o ultima forma, n care vom exprima liniile produsului C n funct ie
de liniile matricei B. Din (1.17) rezulta
c
T
i
= a
T
i
B =
l

k=1
a
ik
b
T
k
. (1.19)
Proprietat i.

Inmult irea de matrice are unele proprietat i imediate, prezentaten
continuare; presupunem ca matricele au dimensiuni potrivite operat iilor efectuate;
demonstrat iile sunt lasate cititorului.
1. A(BC) = (AB)C (asociativitate);
2. A(B +C) = AB +AC (distributivitate);
34 CAPITOLUL 1. ALGORITMI ELEMENTARI
3. (AB)
T
= B
T
A
T
.
Trebuie subliniat faptul canmult irea de matrice nu este comutativ a. Sa detaliem
put in; consideram A R
ml
si B R
ln
, cazul cel mai general pentru care este
denit produsul AB; daca m = n, atunci produsul BA nici macar nu este denit.
Daca m = n, atunci AB R
ml
, iar BA R
lm
; prin urmare, daca m = l, atunci
AB si BA au dimensiuni diferite, deci nu se pune problema egalitat ii.

In ne, daca
si m = l, deci ambele matrice sunt patrate, atunci egalitatea AB = BA nu are loc,
n general; un exemplu simplu: A =
_
1 1
1 1
_
, B =
_
1 2
3 4
_
.
Matrice patrate. Ne vom ocupa n continuare de unele aspecte specice ma-
tricelor patrate din R
nn
, a caror mult ime 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 I
n
, sau numai I daca dimensiunea
rezulta din context; scrisa pe coloane, matricea unitate are forma I
n
= [e
1
. . . e
n
].
Fie o matrice A R
nn
; daca exista o matrice X R
nn
astfel ncat
AX = XA = I, atunci X se numeste inversa matricei A si se noteaza cu A
1
.
O matrice care are inversa se numeste inversabil a; matricea inversa este unic a. Se
poate demonstra ca mult imea matricelor inversabile din R
nn
are o structura de
grup (necomutativ) n raport cu nmult irea, notat GL(n).
Se pune ntrebarea cand este o matrice inversabila ? Vom ment iona deocamdata,
fara a demonstra, ca inversabilitatea este echivalent a cu condit ia rangA = n, adica
cu independent a coloanelor (si liniilor) matricei A. (O alta condit ie echivalenta este
KerA = {0}, i.e. KerA are dimensiune nula.) Testarea numerica a inversabilitat ii
va o problema tratata mai mult sau mai put in explicit n capitolele urmatoare,
metodele prezentate ind din ce n ce mai sigure, dar si mai sosticate.
O ultima proprietate: inversarea si transpunerea unei matrice sunt operat ii care
comuta ntre ele, adica (A
T
)
1
= (A
1
)
T
not
= A
T
.
Echivalent a. Doua matrice A, B R
mn
se numesc echivalente la dreapta
daca exista o matrice T R
nn
inversabila astfel ncat B = AT. Avem:
Propozit ia 1.1 Dac a A, B R
mn
sunt echivalente la dreapta, atunci avem ImA =
ImB.
Demonstrat ie. Din denit ie, exista T astfel ncat B = AT. Evident iind coloanele
din A si B si folosind (1.18) se obt ine b
j
= At
j
=

n
i=1
t
ij
a
i
, deci orice coloana
din B este combinat ie liniara a coloanelor matricei A; atunci b
j
ImA, pentru
j 1 : n, si deci ImB ImA.
Cum T este inversabila, A = BT
1
, si un rat ionament similar conduce la con-
cluzia ImA ImB.
Daca matricele echivalente la dreapta A si B au coloanele liniar independente,
atunci coloanele ecareia formeaza o baza pentru ImA = ImB.

In acest caz, ma-
tricea T este numita schimbare de baz a (n R
n
, din baza A n baza B).
Fie un vector x ImA; atunci x se exprima unic n ecare dintre cele doua
baze: x = Ac =

n
i=1

i
a
i
, cu c = [
1
. . .
n
]
T
si, respectiv, x = Bd =

n
i=1

i
b
i
, cu
1.4.

INMULT IREA MATRICELOR 35
d = [
1
. . .
n
]
T
; vectorii c si d cont in coordonatele n cele doua baze. Cum B = AT,
atunci x = Ac = ATd, din unicitate rezultand c = Td, sau d = T
1
c. Aceasta
ultima relat ie justica denumirea de transformare de coordonate data matricei T
1
(din nou, din baza An baza B).
Desigur, daca A si B sunt echivalente la dreapta, atunci si KerA
T
= KerB
T
,
consecint a a propozit iei de mai sus si a teoremei 1.1.
Deoarece nmult irea de matrice nu este comutativa, are sens not iunea de echiva-
lent a la stanga; matricele A, B R
mn
se numesc echivalente la st anga daca exista
o matrice S R
mm
inversabila astfel ncat B = SA.

In acest caz, ImA
T
= ImB
T
si KerA = KerB.
Daca coloanele ecareia dintre matricele echivalente la stanga A si B formeaza
o baza pentru ImA = ImB, atunci din (1.16) a
j
= Sb
j
, deci matricea S transforma
vectorii unei baze n vectorii celeilalte.
Doua matrice sunt echivalente (bilateral) daca exista S R
mm
, T R
nn
inversabile astfel ncat B = SAT. S si T se numesc generic transformari (de
echivalent a).
AA. Algoritmi. Vom prezenta mai multe variante de calcul al produsului ma-
triceal, variante ce difera, n esent a, prin ordinea n care sunt efectuate operat iile
scalare.

In acest mod punem n evident a diverse posibilitat i de organizare a cal-
culelor n vederea unei exploatari optime a particularitat ilor arhitecturale ale cal-
culatorului t inta.
Pentru nceput prezentam un algoritm pentru produsul exterior, singurul caz
particular nedetaliat pana acumn care cel put in o dimensiune a operanzilor nmult i-
rii este 1.
Algoritmul 1.9 (OUT Calculul produsului exterior) (Se dau
x R
m
, y R
n
. Se calculeaza C = xy
T
R
mn
.)
1. Pentru j = 1 : n
1. Pentru i = 1 : m
1. c
ij
x
i
y
j

In cazul general, o implementare directa anmult irii de matrice, folosind denit ia,
este prezentata n continuare.
Algoritmul 1.10 (MM

Inmult ire matriceal a) (Se dau
A R
ml
, B R
ln
. Se calculeaza C = AB R
mn
.)
1. C 0
2. Pentru j = 1 : n
1. Pentru i = 1 : m
1. Pentru k = 1 : l
1. c
ij
c
ij
+a
ik
b
kj
Rezultatul acestui algoritm nu se modica daca ordinea celor trei bucle Pentru
este alta. Algoritmul de mai sus se mai numeste forma jik a produsului ma-
triceal. Bucla Pentru cea mai interioara se poate nlocui cu apelul produsului scalar
DOT(A(i, :), B(:, j)), obt inandu-se astfel un algoritm cu operat ii vectoriale. Cele
doua bucle Pentru interioare se pot nlocui cu un apel la Gaxpy(A, B(:, j), C(:, j)),
dupa cum sugereaza direct relat ia (1.16).
Forma jki pune n evident a operat ii Saxpy, avand la baza relat ia (1.18):
36 CAPITOLUL 1. ALGORITMI ELEMENTARI
Algoritmul 1.11 (Se dau A R
ml
, B R
ln
. Se calculeaza
C = AB R
mn
. Forma jki.)
1. C 0
2. Pentru j = 1 : n
1. Pentru k = 1 : l
1. C(:, j) Saxpy(B(k, j), A(:, k), C(:, j))
Din nou cele doua bucle interioare se pot nlocui cu Gaxpy.
Forma kji a algoritmului este o implementare directa a formulei (1.15), care
evident iaza produse exterioare.
Algoritmul 1.12 (Se dau A R
ml
, B R
ln
. Se calculeaza
C = AB R
mn
folosind operat ii OUT.)
1. C 0
2. Pentru k = 1 : l
1. C C +OUT(A(:, k), B(k, :))
Apelul rutinei OUTnlocuieste buclele Pentru cu indicii j si i.
Formele ijk, kij si ikj sunt, n aceasta ordine, variante ale celor trei forme
prezentate mai sus. Permutarea buclelor i si j nu este esent iala, deoarece acestea
au rolul de parcurgere a matricei C, pe linii sau pe coloane. Acest lucru poate
deveni important daca se t ine seama de modul de adresare a elementelor matricei
impus de limbajul de programare utilizat. De exemplu, n FORTRAN se prefera
organizarea pe coloane, corespunzator formelor jik, jki, kji, deoarece matricele
sunt memorate pe coloane.

In oricare dintre formele ment ionate, nmult irea de matrice necesita 2mnl opi,
deci 2n
3
n cazul matricelor patrate, si face parte din grupul operat iilor de nivel 3.
Vom face referire la ea n forma C = MM(A, B).

Inmult irea matricelor complexe. Algoritmii de mai sus, ca si toate conside-


rat iile care i preced, sunt valabili si pentru nmult irea matricelor complexe
C = AB C
mn
, cu A C
ml
, B C
ln
. Diferent a consta n numarul de
opi necesari execut iei. Daca adunarea a doua numere complexe se face n doi opi
(unul pentru partea reala, altul pentru partea imaginara), n schimb nmult irea
necesita sase:
( + i)( + i) = + i( +). (1.20)
Asadar nmult irea matricelor complexe se executa n aproximativ 8mnl opi (cate
mnl nmult iri si adunari de scalari complecsi).
Aceeasi observat ie poate facuta scriind A = A
1
+ iA
2
, cu A
1
, A
2
R
ml
,
B = B
1
+ iB
2
, cu B
1
, B
2
R
ln
, si
C = A
1
B
1
A
2
B
2
+ i(A
1
B
2
+A
2
B
1
). (1.21)

Inmult irea matricelor complexe se poate efectua deci prin patru produse (si doua
adunari) de matrice reale.
Numarul de operat ii se poate reduce printr-un mic articiu de calcul; o forma
echivalenta cu (1.20) este
( + i)( + i) = + i(( +)( +) ). (1.22)
1.5. NORME MATRICEALE 37
Aparent, nu se castiga nimic, deoarece n loc de patru nmult iri si doua adunari
reale, ca n (1.20), avem trei nmult iri si cinci adunari. Egalitatea (1.22) se scrie
nsa identic si n cazul matriceal, nlocuindu-se (1.21) cu
G = A
1
B
1
,
H = A
2
B
2
,
C = GH + i((A
1
+A
2
)(B
1
+B
2
) GH).
(1.23)
Asadar C se calculeaza acum cu doar trei nmult iri de matrice, adica 6mnl opi, si
cinci adunari a caror contribut ie la numarul de operat ii este neglijabila.
Acest algoritm rapid pentru nmult irea 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 folosit cu succes n majoritatea aplicat iilor.
1.5 Norme matriceale
Produsul scalar matriceal este o generalizare imediata a produsului scalar
a doi vectori. Daca A, B R
mn
, produsul lor scalar este
(A, B)
def
=
m

i=1
n

j=1
a
ij
b
ij
= tr(B
T
A). (1.24)
Se observa ca (1.24) este identica cu produsul scalar al celor doi vectori din R
mn
obt inut i prin vectorizarea matricelor A si B, i.e. prin concatenarea coloanelor lui
A, respectiv B.
Normele matriceale se denesc la fel ca normele vectoriale. O norm a ma-
triceal a este o funct ie : R
mn
R
+
care satisface condit iile
1. A > 0, A R
mn
, A = 0 (pozitivitate);
2. A = || A, A R
mn
, R (omogenitate);
3. A+B A +B, A, B R
mn
(inegalitatea triunghiului).
Pentru a utiliza normele matriceale independent de dimensiunile matricelor, in-
troducem not iunea de familie de norme matriceale, care este o funct ie
:

m=1,n=1
R
mn
R
+
astfel ncat, pentru ecare m, n > 0, restrict ia lui
la R
mn
este o norma matriceala. Daca n = 1, atunci este o familie de
norme vectoriale.
O familie de norme matriceale este consistent a daca
AB A B, (1.25)
atunci cand produsul AB este denit. (Sa observam ca, n general, A, B si AB au
dimensiuni diferite, deci normele lor sunt funct ii diferite; de aceea se lucreaza cu
familii de norme.)
Norma Frobenius este norma matriceala indusa de produsul scalar (1.24):
A
F
=

_
m

i=1
n

j=1
a
2
ij
. (1.26)
38 CAPITOLUL 1. ALGORITMI ELEMENTARI
Familia de norme Frobenius este consistenta.
Norme subordonate. O familie de norme matriceale poate obt inuta dintr-o
familie de norme vectoriale , prin urmatoarea relat ie
A = sup
x =0
Ax
x
= max
x=1
Ax, (1.27)
n care norma matriceala A se deneste cu ajutorul normelor vectoriale x si
Ax. (Trecerea de la sup la max este justicata de faptul ca hipersfera de ecuat ie
x = 1 este un compact iar norma vectoriala este o funct ie continua, deci
marginita si si atinge marginile.) Familia de norme matriceale este numita subor-
donat a celei de norme vectoriale sau indus a de aceasta.
Astfel, folosind (1.27), se pot deni normele p matriceale subordonate normelor
p (Holder) vectoriale. Cele mai utilizate norme p sunt normele 1, 2 si . Pentru
p = 1, , relat ia (1.27) se reduce la expresiile simple
A
1
= max
x1=1
Ax
1
= max
j=1:n
_
m

i=1
|a
ij
|
_
,
A

= max
x=1
Ax

= max
i=1:m
_
_
n

j=1
|a
ij
|
_
_
.
(1.28)
Pentru norma 2, atat semnicat ia cat si modul de calcul vor prezentate n
capitolele urmatoare.
Normele p matriceale, aplicate unor vectori privit i ca matrice, dau aceleasi valori
ca normele p vectoriale. Astfel, nu e nici o posibilitate de confuzie n utilizarea
aceluiasi simbol
p
pentru normele matriceale si cele vectoriale.

In sfarsit, normele matriceale subordonate unor norme vectoriale sunt consis-


tente (demonstrat i, folosind denit ia) si, n plus, au proprietatea I = 1.
Echivalent a. Normele matriceale prezentate mai sus sunt echivalente, n sensul
relat iei (1.4). De exemplu (vezi problema 1.10):
1

n
A

A
2

mA

,
1

m
A
1
A
2

nA
1
,
A
2
A
F

nA
2
.
(1.29)
Cazul complex. O norma matriceala peste spat iul complex C
mn
este o funct ie
cu valori reale pozitive satisfacand cele trei condit ii de la nceputul sect iunii. Toate
denit iile si relat iile de mai sus raman valabile, cu singura observat ie ca acum norma
Frobenius este A
2
F
=

m
i=1

n
j=1
|a
ij
|
2
.
AA. Calculul normei 1 se face folosind direct relat iile (1.28):
Algoritmul 1.13 (Nm1 Calculul normei matriceale 1) (Se da
A R
mn
. Se calculeaza = A
1
.)
1.6. MATRICE STRUCTURATE 39
0
0
L U
Fig. 1.6: Matrice inferior si superior triunghiulare
1. 0
2. Pentru j = 1 : n
1. 0
2. Pentru i = 1 : m
1. +|a
ij
|
3. Daca > atunci
Algoritmul necesita mn opi. Calculul normei este asemanator si are aceeasi
complexitate. Calculul normei Frobenius necesita 2mn opi; 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 not iuni mai evolu-
ate si implica O(n
3
) operat ii (pentru matrice patrate). De aceea, normele 1, si
Frobenius sunt cele mai folosite n calculul numeric elementar. Toate aceste norme
ind echivalente, criteriul de alegere primordial este efortul de calcul.
1.6 Matrice structurate

In numeroase probleme apar matrice ale caror elemente sunt nulen anumite regiuni.
Astfel de matrice sunt numite generic structurate; n cazul lor, algoritmii de rezolvare
a unei probleme oarecare sunt de obicei mai simpli; de aceea, majoritatea algorit-
milor generali au ca prim obiectiv reducerea matricei init iale la una cu structura
mai simpla.

In aceasta sect iune vom prezenta cateva tipuri de matrice structurate si pro-
prietat ile lor principale. Pentru simplitate, vom considera doar matrice patrate,
din R
nn
. Extinderea la matrice dreptunghiulare este imediata.
Denit ii. 1) O matrice D se numeste diagonal a daca elementele nediagonale
sunt nule, adica d
ij
= 0, pentru i = j.
2) O matrice T se numeste inferior triunghiular a daca t
ij
= 0, pentru i < j, si
superior triunghiular a daca t
ij
= 0, pentru i > j. Figura 1.6 prezinta astfel de ma-
trice. Evident, o matrice simultan inferior si superior triunghiulara este diagonala.
O matrice se numeste triunghiular a unitate daca este triunghiulara si, n plus,
toate elementele sale diagonale sunt egale cu 1.
O matrice se numeste strict triunghiular a daca este triunghiulara si toate e-
lementele sale diagonale sunt nule. De exemplu, o matrice A este strict inferior
40 CAPITOLUL 1. ALGORITMI ELEMENTARI
triunghiulara daca a
ij
= 0, pentru i j.
Matricele triunghiulare au proprietat i deosebite care vor evident iate n sect iuni
urmatoare ale acestui capitol.
3) O matrice H se numeste inferior Hessenberg daca h
ij
= 0, pentru j > i + 1,
si superior Hessenberg daca h
ij
= 0, pentru i > j + 1.
4) O matrice A se numeste tridiagonal a daca este simultan inferior si superior
Hessenberg, adica a
ij
= 0, pentru |i j| > 1.

In general, o matrice B se numeste band a, de lat ime inferioara p, daca b


ij
= 0,
pentru i > j+p, si de lat ime superioara q, daca b
ij
= 0, pentru j > i+q. Daca p = q,
vom spune ca B este matrice banda de lat ime p. Evident, matricele tridiagonale
sunt un caz particular de matrice banda, cu p = q = 1. O matrice banda cu
p = q = 2 se zice pentadiagonala.
Proprietat i. Vom prezenta n continuare cateva proprietat i utile ale matricelor
structurate.
Este evident ca suma a doua matrice cu structuri identice va avea aceeasi struc-
tura. De asemenea, nmult irea unei matrice cu un scalar conserva structura.

In ce priveste produsul, proprietat ile nu mai sunt atat de generale.


Propozit ia 1.2 a. Dac a D este o matrice diagonal a si A este o matrice struc-
turat a, atunci matricele DA si AD vor avea structura matricei A.
b. Produsul a dou a matrice inferior (superior) triunghiulare (unitate) este o
matrice inferior (superior) triunghiular a (unitate).
c. Dac a L este o matrice inferior (superior) triunghiular a si H este inferior (su-
perior) Hessenberg, atunci LH si HL sunt matrice inferior (superior) Hessenberg.
Demonstrat ie. Vom demonstra doar punctul b n cazul inferior triunghiular, cele-
lalte demonstrat ii ind lasate ca exercit iu.
Fie A si B doua matrice inferior triunghiulare, si C = AB. Evident,
c
ij
=

n
k=1
a
ik
b
kj
. Consideram i < j. A ind inferior triunghiulara, a
ik
= 0 pentru
k > i; n plus, b
kj
= 0, pentru k i < j, deoarece B este inferior triunghiulara;
asadar, a
ik
b
kj
= 0, pentru oricare k 1 : n, deci c
ij
= 0 pentru i < j, adica C este
inferior triunghiulara.
Elementele posibil nenule ale matricei C (pentru i j) se calculeaza economic
cu relat ia
c
ij
=
i

k=j
a
ik
b
kj
, (1.30)
deoarece a
ik
= 0 pentru k > i si b
kj
= 0 pentru k < j.
Daca A si B sunt inferior triunghiulare unitate, atunci particularizand (1.30) se
obt ine c
ii
= a
ii
b
ii
= 1, deci si C este inferior triunghiulara unitate.
AA.

Inmult irea matricelor triunghiulare. Datorita elementelor nule, algo-
ritmii implicand matrice structurate pot simplicat i astfel ncat sa e executate
doar operat iile aritmetice strict necesare.
Vom exemplica cu algoritmul denmult ire a doua matrice inferior triunghiulare,
A si B. Protam de faptul ca rezultatul C este inferior triunghiular si calculam c
ij
numai pentru i j, folosind (1.30) si nu formula generala.
1.6. MATRICE STRUCTURATE 41
Algoritmul 1.14 (TRMM

Inmult ire de matrice inferior triun-
ghiulare) (Se dau A, B R
nn
inferior triunghiulare. Se calculeaza
C = AB.)
1. Pentru i = 1 : n
1. Pentru j = 1 : i
1. c
ij
=

i
k=j
a
ik
b
kj
Comentarii. Cele doua bucle sunt destinate parcurgerii pe linii a elementelor
triunghiului inferior al matricei C; parcurgerea se poate face si pe coloane, prin:
Pentru j = 1 : n, Pentru i = j : n. Acest algoritm necesita n
3
/3 opi, adica de
sase ori mai put in decat algoritmul general de nmult ire de matrice.
AA. Memorarea matricelor structurate se poate face n tablouri n n,
ca pentru toate celelalte matrice, cu dezavantajul stocarii elementelor nule; totusi,
exista si un avantaj: accesul la elementele matricelor se face identic pentru matricele
generale si pentru cele structurate.
Daca se doreste economie de memorie, stocarea elementelor nule se poate evita
usor; acest mod de memorare se numeste compact sau mpachetat (packed). Exem-
plicam n continuare pentru cateva tipuri de matrice.
O matrice triunghiulara se poate memora ntr-un vector, sa-l notam v, de
lungime n(n + 1)/2 (numarul elementelor posibil nenule ale matricei). Dac a L
este inferior triunghiulara, atunci o ordine naturala de memorare, cea pe linii, este
l
11
, l
21
, l
22
, l
31
, . . . (n v
1
, v
2
, v
3
, v
4
, . . . ). Se observa ca l
ij
se memoreaza n pozit ia
i(i1)
2
+j din v.
O matrice tridiagonala T se poate memora n trei vectori a, b, c (n ecare cate
o diagonala), ceea ce este evident din notat ia:
T =
_

_
a
1
c
1
b
2
a
2
c
2
.
.
.
.
.
.
.
.
.
b
n1
a
n1
c
n1
b
n
a
n
_

_
.

In general, o matrice banda B, de lat ime p, se poate memora usor ntr-un tablou
cu 2p + 1 linii si n coloane. Exemplicam pentru p = 2:
B =
_

_





.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
_

_
. . .
. . .
. . .
. . .
. . .

In stanga se gaseste matricea banda (cu elementele notate generic), n dreapta


tabloul de memorare (prin sunt notate elemente nesemnicative); se observa ca ele-
mentele de pe aceeasi diagonala a matricei se memoreaza pe aceeasi linie a tabloului.
Elementul b
ij
se memoreaza pe linia p +i j + 1, coloana j.
42 CAPITOLUL 1. ALGORITMI ELEMENTARI



(a) (b) (c)


Fig. 1.7: Submatrice: (a) cu I = {1, 3, 4}, J = {2, 3, 5} (elementele submatricei
sunt notate cu ); (b) bloc; (c) lider principala
1.7 Matrice bloc
Submatrice, bloc. Pana acum am privit o matrice A ca ind formata din
elemente sau, eventual, din coloane sau linii, ca n (1.7), (1.8), respectiv (1.13). Un
alt punct de vedere este de a evident ia submatrice sau blocuri, adica matrice de
dimensiuni mai mici cont inute n A.

In sensul cel mai larg, not iunea de submatrice se deneste dupa cum urmeaza.
Daca A R
mn
, iar I = {i
1
, i
2
, . . . , i
r
} 1 : m si J = {j
1
, j
2
, . . . , j
p
} 1 : n sunt
doua mult imi de indici astfel ncat i
1
< i
2
< . . . < i
r
, j
1
< j
2
< . . . < j
p
, atunci
matricea A

de dimensiune r p denita de a

kl
= a
i
k
j
l
, este numita submatrice a
matricei A. Figura 1.7a ilustreaza not iunea.
Se observa ca A

este obt inuta prin extragerea elementelor aate la intersect iile


liniilor si coloanelor din I, respectiv J. Daca indicii din I, respectiv J, sunt
consecutivi, atunci submatricea mai este numita si bloc. Pentru a ne referi la blocul
astfel denit vom folosi si notat ia A(i
1
: i
r
, j
1
: j
p
).
Daca A R
nn
si I = J, atunci submatricea A

se numeste principal a. Daca,


n plus, I = {1, 2, . . . , r}, atunci A

not
= A
[r]
este numita submatrice lider principal a
de ordin r a matricei A; aceasta este blocul r r pozit ionat stanga-sus n A. Vezi
gurile 1.7b,c.
Partit ionari conforme. Vom lucra n continuare cu matrice partit ionate n
blocuri, notate astfel
A =
_

_
A
11
A
12
. . . A
1n
A
21
A
22
. . . A
2n
.
.
.
.
.
.
.
.
.
.
.
.
A
m1
A
m2
. . . A
mn
_

_
, B =
_

_
B
11
B
12
. . . B
1l
B
21
B
22
. . . B
2l
.
.
.
.
.
.
.
.
.
.
.
.
B
p1
B
p2
. . . B
pl
_

_
, (1.31)
n care blocurile A
ij
au dimensiune
i

j
, iar B
ij
dimensiune
i

j
. Evident,
matricea A are (
1
+. . . +
m
) linii si (
1
+. . . +
n
) coloane.
Este interesant sa studiem operat iile cu matrice astfel partit ionate, mai precis
modul de partit ionare care permite nlocuirea operat iilor cu elemente prin cele cu
blocuri.
1.7. MATRICE BLOC 43
Daca m = p,
i
=
i
, i 1 : m, si n = l, cu
j
=
j
, j 1 : n, atunci
A +B = C =
_

_
C
11
. . . C
1n
.
.
.
.
.
.
.
.
.
C
m1
. . . C
mn
_

_, cu C
ij
= A
ij
+B
ij
. (1.32)
Daca n = p,
i
=
i
, i 1 : n, atunci
AB = D =
_

_
D
11
. . . D
1l
.
.
.
.
.
.
.
.
.
D
m1
. . . D
ml
_

_, cu D
ij
=
n

k=1
A
ik
B
kj
. (1.33)
Partit ionarile care permit scrierea relat iilor de mai sus se numesc conforme cu
operat ia executata; se observa ca formulele de calcul al sumei si produsului la nivel
de bloc sunt similare celor la nivel de element; evident, suma si produsul a doua
blocuri se calculeaza cu formulele elementare cunoscute.

Intorcandu-ne la sect iunea dedicata nmult irii de matrice, putem acum constata
ca relat iile (1.15)(1.18) sunt cazuri particulare ale relat iei (1.33).
Pentru transpunere avem
A
T
=
_

_
A
T
11
A
T
21
. . . A
T
m1
A
T
12
A
T
22
. . . A
T
m2
.
.
.
.
.
.
.
.
.
.
.
.
A
T
1n
A
T
2n
. . . A
T
mn
_

_
. (1.34)
Matrice bloc structurate. O matrice partit ionata ca n (1.31) poate struc-
turata la nivel de blocuri. Folosim aceleasi denit ii ca n sect iunea precedenta,
gandind nsa acum la nivel de blocuri si nu la nivel de element.
Presupunem ca A din 1.31 este patrata, m = n si blocurile diagonale sunt
patrate, adica
i
=
i
, i 1 : n (cu aceste ipoteze, diagonala principala a ecarui
bloc A
ii
este parte din diagonala principala a matricei). Spunem c a A este bloc
diagonal a daca A
ij
= 0, pentru i = j; A este bloc superior triunghiular a daca
A
ij
= 0, pentru i > j, etc. Este evident ca, n general, o matrice bloc diagonala nu
este diagonala, o matrice bloc triunghiulara nu este triunghiulara etc.
Structura la nivel de bloc este conservata la adunare daca matricele operand sunt
partit ionate conform pentru adunare. Pentru nmult ire, este adevarat analogul la
nivel de bloc al propozit iei 1.2, adica, de exemplu, produsul a doua matrice bloc
superior (inferior) triunghiulare partit ionate conform este o matrice bloc superior
(inferior) triunghiulare.
AA.

Inmult ire la nivel de bloc. Pe calculatoarele cu memorie ierarhica, cu
structura sugeratan gura 0.4c, partit ionarea matricelor n blocuri si utilizarea unei
relat ii de tipul (1.33) poate conduce la o ecient a sporita a nmult irii de matrice.
Consideram, pentru simplitate, matricele patrate A, B R
qq
si dorim sa cal-
culam produsul lor C = AB. Partit ionam A, B si C ca n (1.31), cu ment iunea
ca acum m = n, p = l, iar toate blocurile sunt patrate si au aceleasi dimensiuni,
44 CAPITOLUL 1. ALGORITMI ELEMENTARI
adica A
ij
R
rr
, r ind numita dimensiunea blocurilor, iar m = q/r numarul de
blocuri; presupunem ca r divide dimensiunea matricelor q doar pentru a simplica
expunerea.
Exprimam produsul matriceal ca n (1.33), deci
C
ij
=
m

k=1
A
ik
B
kj
. (1.35)
Pe un calculator cu memorie ierarhica trebuie minimizat tracul ntre memoria
principala MP si memoria rapida MR. Desigur, matricele A, B, C sunt stocate
n MP. Daca alegem dimensiunea blocurilor r astfel ncat 3 blocuri de matrice sa
poata stocate simultan n MR (deci, 3r
2
< dim(MR)), atunci putem construi
un algoritm de calcul al produsului matriceal bazat pe ideea de a aduce, pe rand,
blocurile A
ik
, B
kj
implicate n suma din (1.35), din MP n MR, si abia apoi de a
efectua nmult irea lor.
Algoritmul 1.15 (Se dau matricele A, B. Se calculeaza produsul
matriceal C = AB, la nivel de bloc. Se presupune ca variabilele X, Y si
Z se gasesc n MR.)
1. Pentru i = 1 : m
1. Pentru j = 1 : m
1. Z 0
2. Pentru k = 1 : m
1. X A
ik
, Y B
kj
2. Z Z +X Y
3. C
ij
Z
Comentarii.

In acest algoritm, atribuirile din instruct iunea 1.1.2.1 reprezinta de
fapt transferuri din MPn MR; analog, n instruct iunea 1.1.3 se executa un transfer
din MRn MP. Operat ia matriceala Z Z+X Y din 1.1.2.2 nu este detaliata aici;
ea se executa cu algoritmul 1.10 la nivel de element; esent ial este faptul ca toate
variabilele implicate se gasesc n MR, deci nu e necesar nici un transfer din/spre MP.
Lucrand la nivel de blocuri, numarul de operat ii ramane neschimbat, adica 2q
3
;
n schimb, numarul de accesuri la MP devine 2r
2
m
3
= 2q
2
m = 2q
3
/r (instruct iunea
1.1.2.1 se executa de m
3
ori, de ecare data transferandu-se doua blocuri cu r
2
elemente).
Daca s-ar folosi algoritmul 1.10 la nivel de element pe un calculator cu memorie
ierarhica, ecare operat ie c
ij
c
ij
+ a
ik
b
kj
ar implica cel put in doua transferuri
din MP n MR (putem presupune ca c
ij
ramane n MR cat timp este calculat). Ar
avea loc deci aproximativ 2q
3
accesuri la MP.

In concluzie, fat a de versiunea la nivel de element, n algoritmul 1.15 la nivel


de bloc se acceseaza de r ori mai put in memoria principala, ceea ce conduce la o
crestere semnicativa de viteza.
Sa rezumam ideea ecientizarii algoritmilor pe calculatoare cu memorie ier-
arhica; ea va folosita si n rezolvarea altor probleme. Se partit ioneaza matricele de
intrare n blocuri si se exprima algoritmul n operat ii ntre blocuri (aceasta e banal
1.7. MATRICE BLOC 45
la produsul matriceal, dar mai complicat la alte probleme); dimensiunile blocurilor
se aleg cat mai mari (de obicei), dar astfel ncat toate blocurile implicate ntr-o
operat ie sa ncapa simultan n MR.
Algoritmul Strassen. Aparent, prin nsasi denit ia ei (algoritmul numit
generic standard, n continuare), nmult irea a doua matrice n n reale nece-
sita 2n
3
opi. Exista nsa o multitudine de algoritmi, numit i global rapizi, desi se
bazeaza pe idei diferite, care au o complexitate aritmetica mai mica. Primul dintre
acestia, si singurul dovedit utilizabil n practica (mpreuna cu unele variante), este
cel descoperit n 1969 de Strassen [?].
Fie A, B R
nn
si, pentru simplitate, consideram ca n este divizibil cu 2.
Partit ionam matricele A, B si C = AB n blocuri de dimensiune n/2 n/2, adica
A =
_
A
11
A
12
A
21
A
22
_
, B =
_
B
11
B
12
B
21
B
22
_
, C =
_
C
11
C
12
C
21
C
22
_
. (1.36)
Algoritmul lui Strassen este denit de formulele urmatoare, usor de vericat prin
simpla substitut ie:
C = A B =
_
M
1
+M
2
+M
3
M
4
M
4
+M
6
M
3
+M
5
M
1
M
5
+M
6
+M
7
_
M
1
= (A
11
+A
22
) (B
11
+B
22
) M
5
= (A
21
+A
22
) B
11
M
2
= (A
12
A
22
) (B
21
+B
22
) M
6
= A
11
(B
12
B
22
)
M
3
= A
22
(B
21
B
11
) M
7
= (A
21
A
11
) (B
11
+B
12
)
M
4
= (A
11
+A
12
) B
22
(1.37)
Se observa ca pentru calculul matricei C sunt necesare 7 nmult iri si 18 adunari
de matrice de dimensiune n/2 n/2, n timp ce n algoritmul standard la nivel de
bloc se fac, pentru aceeasi partit ionare (1.36), 8 nmult iri si 4 adunari de blocuri.
Astfel, numarul de operat ii pentru algoritmul Strassen este N
1
(n) =
14n
3
8
+
18n
2
4
.
Este evident ca, pentru n sucient de mare (mai precis n > 18), N
1
(n) < 2n
3
si deci
algoritmul Strassen este mai rapid decat cel standard.

In schimb, implementarea
formulelor (1.37) necesita memorie suplimentara pentru rezultatele intermediare.
Un numar de operat ii si mai bun se obt ine daca, pentru calculul celor 7 pro-
duse de matrice n/2 n/2 din (1.37) se utilizeaza, recursiv, aceleasi formule ale
lui Strassen. La ecare nivel de recursie dimensiunea problemei se njumatat este
(simplicand, presupunem acum ca n este o putere a lui 2). Recursia are loc pana
cand se atinge o dimensiune n
0
sucient de mica, pentru care algoritmul standard
este mai ecient decat cel al lui Strassen. Numarul de operat ii N(n) este denit de
recurent a
N(n) = 7N(
n
2
) + 18
n
2
4
, N(n
0
) = 2n
3
0
, (1.38)
a carei solut ie, pentru n n
0
, este de ordinul
N(n) = O(n
log
2
7
), (log
2
7 2.807). (1.39)
Vezi problema 1.20 pentru solut ia exacta.
46 CAPITOLUL 1. ALGORITMI ELEMENTARI

In practica, dimensiunea n
0
este mai mare decat 18 (dar de obicei n
0
< 100),
datorita operat iilor nearitmetice suplimentare necesare n algoritmul Strassen, n
special alocarilor de memorie si apelurilor recursive. Asadar, acest algoritm este
ecient pentru nmult irea matricelor mari, cu dimensiuni de ordinul sutelor sau
miilor.

In privint a stabilitat ii numerice algoritmul Strassen este inferior celui standard,


de aceea trebuie utilizat cu anume precaut ii. Recomandam referint ele [IX], [?]
cititorului interesat.
1.8 Matrice normale

In aceasta sect iune vom lucra n principal cu matrice patrate, din R


nn
, specicand
explicit celelalte cazuri.
O matrice A R
nn
se numeste normal a daca A
T
A = AA
T
.
Matricele normale au propriet at i deosebit de interesante, cu precadere n cateva
cazuri particulare pe care le enumeram acum si le vom discuta pe larg n continuare:
1. matricele simetrice, pentru care A = A
T
;
2. matricele antisimetrice, care satisfac A = A
T
;
3. matricele ortogonale, pentru care A
T
A = I.
Fie A R
nn
; se numeste form a biliniar a asociata matricei A funct ia
f : R
n
R
n
R, f(x, y) = x
T
Ay =

n
i=1

n
j=1
a
ij
x
i
y
j
. Se observa ca funct ia este
liniara n ecare din cele doua argumente luate separat, ceea ce i justica numele.
Matrice simetrice. Matricea A este simetric a daca A = A
T
, adica a
ij
= a
ji
,
i, j 1 : n. Asadar simetria este fat a de diagonala principala a matricei; se observa
ca pentru o matrice nepatrata not iunea de simetrie nu are sens, A si A
T
neavand
aceleasi dimensiuni.
Suma si produsul cu scalari conserva simetria, adica daca matricele A, B sunt
simetrice si R, atunci A + B si A sunt simetrice.

In schimb, n gene-
ral, produsul AB nu este simetric; considerat i, de exemplu, A =
_
1 1
1 2
_
si
B =
_
1 1
1 1
_
.
Matrice antisimetrice. Matricea A este antisimetric a daca A = A
T
, adica
a
ij
= a
ji
, i, j 1 : n. Evident, elementele sale diagonale sunt nule.
Forma patratica asociata unei matrice simetrice este funct ia g : R
n
R,
g(x) = x
T
Ax =

n
i=1

n
j=1
a
ij
x
i
x
j
. Forma patratica este un polinom omogen de
gradul 2, n n variabile; de asemenea, se observa ca g(x) = f(x, x), unde f este
forma biliniara asociata matricei A
7
.
7
Formele p atratice se asociaz a numai matricelor simetrice din urm atorul motiv: dac a A nu e
simetric a, lu and

A = (A + A
T
)/2 se vede c a x
T
Ax = x
T
Ax, x R
n
, si

A este simetric a. S a
not am c a B = (A A
T
)/2 se numeste componenta antisimetric a, iar x
T
Bx = 0.
1.8. MATRICE NORMALE 47
Matricele simetrice si formele patratice asociate pot avea semn, n sensul
denit n continuare.
O matrice simetrica A este pozitiv denit a daca x
T
Ax > 0, pentru orice vector
x R
n
, x = 0; se noteaza A > 0, dar, atent ie, aceasta nu nseamna ca toate
elementele matricei sunt pozitive; de exemplu,
_
2 1
1 2
_
este pozitiv denita,
deoarece 2x
2
1
2x
1
x
2
+ 2x
2
2
> 0, [x
1
x
2
]
T
= 0, nsa
_
1 2
2 1
_
nu este, deoarece
x
2
1
4x
1
x
2
+ x
2
2
poate avea orice semn cand x
1
, x
2
R. Matricea A este pozitiv
semidenit a daca x
T
Ax 0, x R
n
, ceea ce se noteaza A 0.
O matrice simetrica A este negativ (semi)denit a daca A este pozitiv (semi)-
denita. O matrice simetrica care nu se ncadreaza n nici una dintre categoriile de
mai sus se numeste cu semn nedenit.
Suma si produsul cu scalari pozitivi conserva semnul; de exemplu, daca A, B
sunt pozitiv denite si > 0, atunci A+B si A sunt pozitiv denite (demonstrat i !).
Propozit ia 1.3 O submatrice principala a unei matrice pozitiv denite A este po-
zitiv denita.

In particular, submatricele lider principale A
[k]
, k 1 : n, sunt
pozitiv denite si toate elementele diagonale sunt pozitive.
Demonstrat ie. Fie I = {i
1
, i
2
, . . . , i
r
}, mult imea de indici denind o submatrice
principala A

a matricei A. Pentru orice vector nenul x R


r
, denim vectorul
y R
n
prin:
y
i
k
= x
k
, k = 1 : r,
y
i
= 0, i I.
Evident, x = 0 implica y = 0, si din pozitivitatea matricei A se deduce:
x
T
A

x = y
T
Ay > 0, adica A

este pozitiv denita.


Congruent a. Doua matrice simetrice A, B se numesc congruente daca exista
o matrice nesingulara T R
nn
astfel ncat B = T
T
AT. Evident, A = T
T
BT
1
.
(Demonstrat i ca simetria este conservata de transformarea de congruent a.)
Daca A, B sunt congruente si A > 0, atunci B > 0, adica transformarea de
congruent a conserva semnul. (

Intr-adevar, x
T
Bx = x
T
T
T
ATx = (Tx)
T
A(Tx) > 0,
pentru ca A > 0 si Tx = 0, daca x = 0, coloanele lui T ind liniar independente.)
Matrice ortogonale. O matrice patrata Q R
nn
este ortogonal a daca
Q
T
Q = I
n
; evident, avem Q
T
= Q
1
, deci transpusa matricei este chiar inversa ei,
iar QQ
T
= I
n
. Partit ionand Q pe coloane si exprimand Q
T
Q prin produse scalare,
denit ia este echivalenta cu q
T
i
q
j
= 0, pentru i = j, si q
i

2
= 1, adica matricea Q
are coloanele vectori ortonormali.

In cazul n care matricea nu este patrata, Q R


mn
, daca Q
T
Q = I
n
, atunci
matricea are coloanele ortonormale (m > n si QQ
T
= I
m
). Daca QQ
T
= I
m
, atunci
matricea are liniile ortogonale (m < n si Q
T
Q = I
n
).
Vom considera n continuare doar matrice ortogonale patrate. Referitor la
operat iile elementare, vom observa ca produsul a doua matrice ortogonale este
o matrice ortogonala; ntr-adevar, daca Q, U sunt amandoua ortogonale, atunci
(QU)
T
(QU) = U
T
Q
T
QU = U
T
U = I. Asadar, matricele ortogonale formeaza grup
n raport cu nmult irea, notat GO(n).
48 CAPITOLUL 1. ALGORITMI ELEMENTARI
De asemenea, transpusa unei matrice ortogonale este ortogonala, deoarece
(Q
T
)
T
Q
T
= QQ
T
= I.

In schimb, suma a doua matrice ortogonale nu este or-
togonala, nici produsul unei matrice ortogonale cu un scalar diferit de 1.
Matricele ortogonale au proprietatea remarcabila de a conserva normele 2 si
Frobenius.
Propozit ia 1.4 Fie matricele ortogonale Q R
nn
, U R
mm
. Atunci:
1. Qx
2
= x
2
, x R
n
, deci Q
2
= 1.
2. UAQ
2
= A
2
, UAQ
F
= A
F
, A R
mn
.
Demonstrat ie. 1. Qx
2
2
= (Qx)
T
(Qx) = x
T
Q
T
Qx = x
T
x = x
2
.
2. Aplicand punctul 1 avem
UA
2
= max
x2=1
U(Ax)
2
= max
x2=1
Ax
2
= A
2
.
Deoarece ImQ = R
n
, aplicand din nou punctul 1 avem
AQ
2
= max
x2=1
AQx
2
= max
Qx2=1
A(Qx)
2
= A
2
.
Utilizand cele doua rezultate anterioare se obt ine UAQ
2
= AQ
2
= A
2
.
Revenim acum put in la not iunea de echivalent a, prezentata n sect iunea 1.4.
Doua matrice A, B R
mn
se numesc ortogonal echivalente la dreapta (st anga),
daca exista o matrice ortogonala Q R
nn
(Q R
mm
) astfel ncat A = BQ (A =
QB). A si B se numesc ortogonal echivalente daca exista Q R
mm
, P R
nn
ortogonale astfel ncat B = Q
T
AP.
Presupunand A, B de rang maxim (deci coloanele lor sunt baze pentru ImA, re-
spectiv ImB) si amintindu-ne ca A = QB se scrie pe coloane a
i
= Qb
i
, sa observam
ca a
T
i
a
j
= b
T
i
Q
T
Qb
j
= b
T
i
b
j
, deci unghiurile dintre vectorii component i ai bazei se
pastreaza la o transformare de echivalent a ortogonal a (la stanga).
Proiectori. Fie o matrice P R
nn
si un subspat iu S R
n
. P se numeste
proiector pe S daca ImP = S si P
2
= P. Justicare: daca x R
n
, atunci Px
ImP = S, deci aplicarea proiectorului unui vector oarecare l va duce pe acesta n S;
Px este proiect ia lui x pe S. Mai mult, P(Px) = Px, deci aplicarea proiectorului
nu modica proiect ia.

In general, orice matrice P astfel ncat P


2
= P se zice matrice de proiect ie sau
proiector, pentru ca ea proiecteaza pe S
def
= ImP. Analog, Q = I P proiecteaza
pe T = ImQ.
Daca, n plus, matricea P este simetrica, atunci P se numeste proiector or-
togonal. Justicare: daca x R
n
, atunci Px ImP si P(x Px) = 0, deci
x Px KerP = KerP
T
, deci Px (x Px), adica x se descompune ca suma a
doi vectori ortogonali ca n gura 1.8.
Daca matricea B R
nr
are coloanele ortonormale (formand deci o baza or-
togonala pentru ImB = S), atunci P = BB
T
este proiect ie ortogonala pe S si, mai
mult, este unica (demonstrat i !).
Particularitat i ale matricelor complexe. Not iunile de simetrie si ortogona-
litate se pot deni si pentru matrice complexe. Avandn vedere denit ia produsului
1.9. SISTEME DE ECUAT II LINIARE 49
.
.
.
.
.. .
.
.
.
. .
>
>
>
>
>
>
>
>
>
>

`
S
x
Px
x Px
Fig. 1.8: Act iunea unui proiector ortogonal pe S asupra unui vector oarecare x
scalar complex, mai utile sunt not iunile analoage obt inute (formal) prin nlocuirea
transpunerii prin transpunere si complex conjugare. Dac a A C
nn
, se noteaza
cu A
H
= A
T
conjugata transpusei matricei A. Matricea A C
nn
se numeste
normala daca AA
H
= A
H
A.
Matricea A C
nn
se numeste hermitic a daca A
H
= A.

In acest caz scalarul
x
H
Ax este real pentru orice x C
n
. O matrice hermitica A C
nn
este pozitiv
denita daca x
H
Ax > 0, x C
n
, x = 0. O matrice A C
nn
este unitar a daca
A
H
A = I, adica are coloanele ortogonale n C
n
.
AA. Memorarea matricelor simetrice. Daca A R
nn
este simetrica, deci
A = A
T
, nu este necesara memorarea ntregii matrice, ci doar a unei jumatat i,
mai precis a triunghiului inferior sau a celui superior. Memorarea se poate face n
variantele discutate pentru matrice triunghiulare, n sect iunea 1.6.
Desigur, acest mod de memorare va implica particularizari ale algoritmilor; vom
exemplica pentru produsul matrice-vector (Gaxpy) y Ax +y, presupunand ca
A este memorata prin triunghiul superior.

In exprimarea elementului y
i
,
y
i
y
i
+
n

j=1
a
ij
x
j
= y
i
+
i1

j=1
a
ji
x
j
+
n

j=i
a
ij
x
j
,
nlocuim elementele matricei A din linia i aate n triunghiul inferior, prin cele egale
aate pe coloana i, n triunghiul superior, dupa cum este sugerat n gura 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.
1.9 Sisteme de ecuat ii liniare
Un sistem de m ecuat ii liniare cu n necunoscute are forma
_

_
a
11
x
1
+a
12
x
2
+. . . +a
1n
x
n
= b
1
a
21
x
1
+a
22
x
2
+. . . +a
2n
x
n
= b
2
. . .
a
m1
x
1
+a
m2
x
2
+. . . +a
mn
x
n
= b
m
, (1.40)
unde a
ij
R, b
i
R, pentru i = 1 : m, j = 1 : n, sunt date si x
j
, j = 1 : n, sunt
50 CAPITOLUL 1. ALGORITMI ELEMENTARI
i
i
A
x
Fig. 1.9: Utilizarea elementelor din triunghiul superior n produsul dintre o matrice
simetrica si un vector
necunoscutele.

In forma matriceala, sistemul este
Ax = b, (1.41)
A ind numita matricea coecient ilor, 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 relat ia ntre m si n:
cand numarul de ecuat ii 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;
n cazul unei matrice A patrate (m = n), sistemul (1.41) este determinat.
A gasi solut ia sistemului liniar (1.41) nseamna a calcula un vector x R
n
astfel
ncat egalitatea Ax = b sa e satisfacuta. Desigur, aceasta se poate realiza doar
daca sistemul are ntr-adevar (cel put in) o solut ie. Daca nu are, vom atribui o noua
semnicat ie not iunii de solut ie, astfel ncat sistemul sa aiba cel put in una. Daca
exista mai multe solut ii, va trebui selectata, ntr-un anume fel, una singura care va
calculata.
Condit iile n care sistemul (1.41) are solut ie si n care aceasta este unica sunt
bine cunoscute din algebra liniar a.
Teorema 1.2 Sistemul liniar (1.41) are solut ie dac a si numai dac a b ImA.
Dac a ImA = R
m
, adic a A este epic a (are liniile independente), atunci sistemul
(1.41) are solut ie pentru orice termen liber b R
m
si reciproc.
Demonstrat ia este imediata prin denit ia lui ImA.
1.9. SISTEME DE ECUAT II LINIARE 51

>
>
>
>
>
>.
y
2
y
3
y
1
ImA

b ImA

b ImA
`
Fig. 1.10: ImA si posibili b pentru exemplul 1.2
Exemplul 1.2 Daca A =
_
_
1 0
1 1
0 1
_
_
, atunci ImA este planul y
2
= y
1
+y
3
. Daca
b = [b
1
b
2
b
3
]
T
este astfel ncat b
2
= b
1
+ b
3
, atunci sistemul Ax = b are solut ie
deoarece condit ia din teorema 1.2 este ndeplinita. Altfel, sistemul nu are solut ie
(vezi gura 1.10).
Cand solut ia exista, unicitatea ei rezulta din
Teorema 1.3 1) Dac a x
0
R
n
este o solut ie particular a a sistemului liniar (1.41),
atunci mult imea tuturor solut iilor sistemului este varietatea liniar a
x
0
+ KerA = {x = x
0
+z | z KerA}.
2) Solut ia x este unic a dac a si numai dac a KerA = {0}, adic a matricea A este
monic a (are coloanele independente).
Demonstrat ie. Daca Ax
0
= b, atunci z = x x
0
satisface Az = 0, deci z KerA;
reciproc, Az = 0 implica A(x
0
+z) = b.
Exemplul 1.3 Daca A =
_
1 1 0
0 1 1
_
si b =
_
2
1
_
, atunci x
0
=
_
_
1
1
0
_
_
este
solut ie particulara pentru Ax = b. Pe de alta parte, KerA este dreapta descrisa de
_
x
1
+x
2
= 0
x
2
+x
3
= 0
,
care trece prin punctele O(0, 0, 0) si P(1, 1, 1). Astfel, vectorii din KerA au forma
Ker A z =
_
_
1
1
1
_
_
, R,
52 CAPITOLUL 1. ALGORITMI ELEMENTARI

x
2
x
3
x
1
.
.
.
.
.
.
.
.,

O
P

x
0
KerA
x + KerA
`
.
.
.
.
.
.
.
.
.
x
Fig. 1.11: Solut iile (x
0
solut ie particulara, x solut ie generala) sistemului din
exemplul 1.3
si deci (vezi gura 1.11),
x + KerA =
_
_
_
y =
_
_
1 +
1

_
_
| R
_
_
_
.

Corolar 1.1 C and matricea A este p atrat a (A R


nn
), atunci urm atoarele ar-
mat ii sunt echivalente:
i) ImA = R
n
, i.e. sistemul (1.41) admite solut ie unic a pentru orice b R
n
;
ii) KerA = {0};
iii) A este inversabil a.
Dac a sistemul are solut ie, aceasta se poate scrie
x = A
1
b. (1.42)
Dac a sistemul este omogen, atunci solut ia unic a este x = 0.
Trebuie subliniat ca (1.42) nu este o formula adecvata calculului numeric al
solut iei sistemului Ax = b. Vom vedea n capitolul 2 metode numerice eciente si
precise pentru a face acest lucru.
Cand sistemul (1.41) nu are solut ie, este convenabil sa denim pseudosolut ia x

ca vectorul care minimizeaza o norma a reziduului r = bAx. Este evident ca daca


b ImA, atunci aceasta pseudosolut ie devine solut ie adevarata a sistemului.
Cand sistemul (1.41) are mai multe solut ii, o posibilitate de a selecta una dintre
ele este de a deni solut ia normal a x

de lungime minima, lungimea ind denita


printr-o norma adecvata.
Vom reveni asupra acestor denit ii n capitolul 3, acolo unde vom prezenta si
algoritmi de calcul al solut iilor astfel denite.
1.9. SISTEME DE ECUAT II LINIARE 53
Determinantul. Fie o matrice patrata A R
nn
; determinantul matricei A
este un numar real, notat det(A), pe care l vom deni recursiv. Daca A
not
= a R,
atunci det(A) = a. Pentru A R
nn
,
det(A) =
n

j=1
(1)
j+1
a
1j
det(

A
1j
),
unde

A
1j
R
(n1)(n1)
este matricea obt inuta din A prin eliminarea liniei 1 si
coloanei j.
Cateva proprietat i importante ale determinantului sunt:
1. det(I) = 1;
2. det(A) =
n
det(A), R;
3. det(A
T
) = det(A);
4. det(AB) = det(A) det(B).
O matrice A R
nn
pentru care det(A) = 0 se numeste nesingular a. Se poate
demonstra ca not iunea 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 verica prin calculul determinantului, ci prin alte
mijloace, mult mai eciente 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 calculate, ntr-o ordine precizata, prin substitut ie numerica.
Sa consideramntai un sistem inferior triunghiular, Lx = b, unde L R
nn
, cu
l
ij
= 0 pentru i < j, l
ii
= 0, i 1 : n, si b R
n
. Prima ecuat ie este l
11
x
1
= b
1
, din
care
x
1
= b
1
/ l
11
. (1.43)

In general, daca se cunosc x


1
, x
2
, . . . , x
i1
, se poate rezolva a i-a ecuat ie,
i1

j=1
l
ij
x
j
+l
ii
x
i
= b
i
,
pentru a obt ine
x
i
=
_
_
b
i

i1

j=1
l
ij
x
j
_
_
/ l
ii
. (1.44)
Formulele (1.43) si (1.44) denesc un algoritm pentru calculul solut iei sistemului
Lx = b, cunoscut ca metoda substitut iei nainte.
Algoritmul 1.16 (LTRIS Calculul solut iei unui sistem inferior
triunghiular) (Se dau L R
nn
, inferior triunghiulara, inversabila, si
b R
n
. Se calculeaza solut ia x a sistemului Lx = b.)
54 CAPITOLUL 1. ALGORITMI ELEMENTARI
1. x b
2. Pentru i = 1 : n
1. Pentru j = 1 : i 1
1. x
i
x
i
l
ij
x
j
2. x
i
x
i
/ l
ii
Comentarii. Bucla Pentru interioara se poate nlocui cu un apel la produsul
scalar DOT(L(i, 1 : i 1), x(1 : i 1)). Fiecare execut ie a buclei Pentru i necesita
2(i 1) opi n 2.1.1, pentru calculul sumei din (1.44), si 1 op pentru mpart irea
din 2.2.

In total, sunt necesari N
LTRIS
=

n
i=1
(2(i 1) + 1) = n(n 1) + n = n
2
opi si M
LTRIS
= n(n +1)/2 +2n +1 n
2
/2 locat ii de memorie (pentru elemente
n virgula mobila). Daca vectorul b nu este necesar ulterior, solut ia x poate
memorata n aceeasi zona de memorie cu b; se spune ca se efectueaza calculul pe loc
n b. Ulterior, vom apela acest algoritm prin x = LTRIS(L, b).
Un algoritm cu aceleasi proprietat i se obt ine daca schimbam ordinea celor doua
bucle, ceea ce revine la a parcurge matricea L pe coloane, nu pe linii. Substitut ia
decurge acum astfel: dupa calculul lui x
1
cu (1.43), se actualizeaza valorile celorlalte
necunoscute x
i
, i = 2 : n (init ializate cu b
i
), cu termenul l
i1
x
1
care contribuie la
sumele din (1.44); se poate calcula acum x
2
, dupa care se actualizeaza din nou
restul necunoscutelor.
Algoritmul 1.17 (LTRIS versiunea pe coloane) (Se dau
L R
nn
, inferior triunghiulara, inversabila, si b R
n
. Se calculeaza
solut ia x a sistemului Lx = b.)
1. x b
2. Pentru j = 1 : n
1. x
j
x
j
/ l
jj
2. Pentru i = j + 1 : n
1. x
i
x
i
l
ij
x
j
Comentarii. Se observa ca bucla Pentru interioara se poate nlocui cu un apel la
Saxpy(x(j), L(j + 1 : n, :), x(j + 1 : n)).
Datorita erorilor numerice, execut ia algoritmului LTRIS nu produce x = L
1
b,
ci o solut ie aproximativa x. Se poate demonstra ca acest x satisface
(L +F) x = b, cu |f
ij
| n
M
|l
ij
| + O(
2
M
), (1.45)
adica x este solut ia unui sistem cu matricea coecient ilor usor perturbata fat a
de L. Asadar algoritmul LTRIS este numeric stabil. (Acesta este un rezultat tipic
de analiza inversa a erorilor.) Practica numerica arat a o acuratet e a algoritmului
LTRIS mult superioara celei indicate de (1.45).
Pentru a rezolva sistemul superior triunghiular (nesingular) Ux = b, unde
U R
nn
este o matrice superior triunghiulara, cu u
ii
= 0, i 1 : n, si b R
n
, sa
observam ca ultima ecuat ie are forma u
nn
x
n
= b
n
, iar de aici
x
n
= b
n
/u
nn
. (1.46)
1.9. SISTEME DE ECUAT II LINIARE 55
Mai mult, daca x
n
, x
n1
, . . . , x
i+1
, sunt deja calculate, atunci, din a i-a ecuat ie,
u
ii
x
i
+
n

j=i+1
u
ij
x
j
= b
i
,
se obt ine
x
i
=
_
_
b
i

j=i+1
u
ij
x
j
_
_
/u
ii
. (1.47)
Din formulele (1.46) si (1.47), care denesc asa numita substitut ie napoi, obt inem
direct algoritmul urmator.
Algoritmul 1.18 (UTRIS Calculul solut iei unui sistem superior
triunghiular) (Se dau U R
nn
, superior triunghiulara, inversabila, si
b R
n
. Se calculeaza solut ia x a sistemului Ux = b.)
1. x b
2. Pentru i = n : 1 : 1
1. Pentru j = i + 1 : n
1. x
i
x
i
u
ij
x
j
2. x
i
x
i
/u
ii
Perfect analog cu algoritmul 1.17 avem versiunea pe coloane a UTRIS.
Algoritmul 1.19 (UTRIS versiunea pe coloane) (Se dau
U R
nn
, superior triunghiulara, inversabila, si b R
n
. Se calculeaza
solut ia x a sistemului Ux = b.)
1. x b
2. Pentru j = n : 1 : 1
1. x
j
x
j
/u
jj
1. Pentru i = 1 : j 1
1. x
i
x
i
u
ij
x
j
Comentarii. Ca si n cazul inferior triunghiular, efortul de calcul este N
UTRIS
= n
2
opi, iar memoria ocupata M
UTRIS
n
2
/2 locat ii n virgula mobila. Vom apela
acest algoritm prin x = UTRIS(L, b). Si pentru algoritmul UTRIS este valabila
o relat ie de genul (1.45), i.e. algoritmul de mai sus este numeric stabil. Rezolvarea
sistemelor triunghiulare este o operat ie de nivel 2.
AA. Sisteme triunghiulare cu parte dreapta multipla. Se spune despre
un sistem de forma AX = B, cu A R
nn
, B R
np
(rezultand X R
np
), cu
p > 1, ca este un sistem cu parte dreapt a multipl a. Desigur, a rezolva AX = B este
matematic echivalent cu a calcula X = A
1
B. Partit ionand X si B pe coloane,
rezolvarea sistemului AX = B se poate reduce rezolvarea a p sisteme de forma
(1.41), Ax
j
= b
j
, j 1 : p.
Consideram A inferior triunghiulara. Prezentam o varianta bloc de rezolvare a
sistemului AX = B, adecvata calculatoarelor cu memorie ierarhica. Partit ionam
sistemul astfel
56 CAPITOLUL 1. ALGORITMI ELEMENTARI
_

_
A
11
0 . . . 0
A
21
A
22
. . . 0
.
.
.
.
.
.
.
.
. 0
A
m1
A
m2
. . . A
mm
_

_
_

_
X
1
X
2
.
.
.
X
m
_

_
=
_

_
B
1
B
2
.
.
.
B
m
_

_
, (1.48)
n care A
ij
R
rr
, iar B
i
, X
i
R
rp
. Evident, blocurile diagonale A
ii
sunt inferior
triunghiulare. Se presupune ca r divide n si e 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
relat ie asemanatoare cu (1.44):
i

j=1
A
ij
X
j
= B
i
= A
ii
X
i
= B
i

i1

j=1
A
ij
X
j
, (1.49)
din care se poate deduce un algoritm similar cu LTRIS (prin substitut ie nainte).
Pe un calculator cu memorie ierarhica (gura 0.4c), A, B si X sunt stocate n
memoria principala MP. Alegem r astfel ncat blocurile A
ij
, X
j
si B
i
sa poata
stocate simultan n memoria rapida MR (deci r
2
+ 2rp < dim(MR)). Algoritmul
urmator se bazeaza pe ideea aducerii acestor blocuri n MR si apoi a efectuarii
calculelor din (1.49).
Algoritmul 1.20 (Se dau A R
nn
, inferior triunghiulara, in-
versabila, si B R
np
. Se rezolva sistemul AX = B. Se utilizeaza
variabilele C, D, Z n MR.)
1. Pentru i = 1 : m
1. D B
i
2. Pentru j = 1 : i 1
1. C A
ij
, Z X
j
2. D DCZ
3. C A
ii
4. rezolva sistemul triunghiular cu p.d.m. CZ = D
(aplicand de p ori algoritmul LTRIS pentru
Cz
j
= d
j
, j 1 : p)
5. X
i
Z
Comentarii. Toate operat iile aritmetice, n numar de pn
2
(de p ori mai multe
decat pentru algoritmul LTRIS aplicat unui sistem Ax
j
= b
j
), se efectueaza cu
operanzi din MR. Instruct iunile 1.1, 1.2.1, 1.3, 1.5 reprezinta transferuri ntre MP
si MR; numarul acestor transferuri este de
m

i=1
_
_
i1

j=1
(r
2
+rp) +r
2
+rp
_
_

pn
2
2r
+
n
2
2
,
sensibil mai mic decat n cazul n care operanzii s-ar aat n MP (atunci ar fost
aproximativ 2pn
2
accesuri la MP).
1.9. SISTEME DE ECUAT II LINIARE 57
Rezolvarea sistemelor triunghiulare cu parte dreapta multipla face parte din
grupul operat iilor de nivel 3.
AA. Inversarea matricelor triunghiulare. Fie L R
nn
o matrice inferior
triunghiular a; presupunem ca L este inversabila, adica l
ii
= 0, i 1 : n. Pentru a
calcula X = L
1
, utilizam egalitatea evidenta
LX = I
n
,
pe care o partit ionam pe coloane
Lx
j
= e
j
, j 1 : n, (1.50)
x
j
= Xe
j
ind cea de-a j-a coloana a matricei X. Sistemul inferior triunghiular
(1.50) poate rezolvat n mod ecient prin adaptarea algoritmului LTRIS la forma
particulara a termenului drept.

Intr-adevar, sistemul (1.50) poate partit ionat
astfel:
_
L
(j)
11
0
L
(j)
21
L
(j)
22
_
_
x

j
x

j
_
=
_
0
e

j
_
, (1.51)
unde L
(j)
11
este submatricea de dimensiune (j 1) (j 1) din colt ul stanga sus al
matricei L si
e

j
= [1 0 . . . 0]
T
R
nj+1
.
Din (1.51) rezulta
_
L
(j)
11
x

j
= 0,
L
(j)
21
x

j
+L
(j)
22
x

j
= e

j
.
(1.52)
Deoarece L este inversabila si, prin urmare, la fel sunt L
(j)
11
si L
(j)
22
, relat ia (1.52)
devine
_
x

j
= 0,
L
(j)
22
x

j
= e

j
.
(1.53)
Aceasta relat ie stabileste un fapt important, dat de
Propozit ia 1.5 Inversa unei matrice inferior triunghiulare nesingulare este infe-
rior triunghiular a.

In concluzie, matricele inferior triunghiulare inversabile formeaza grupn raport


cu nmult irea matriceala.
Din (1.53) poate dedus un algoritm de calcul al inversei unei matrice nesingu-
lare, avand la baza urmatoarea schema de calcul:
L
1
1. Pentru j = 1 : n
1. Daca j > 1 atunci x

j
= 0
2. x

j
= LTRIS(L
(j)
22
, e

j
)
Se poate observa ca inversa calculata poate memorata n aceeasi zona de
memorie ca matricea L. Explicitand rezolvarea sistemului inferior triunghiular,
obt inem
58 CAPITOLUL 1. ALGORITMI ELEMENTARI
Algoritmul 1.21 (LINV Calculul inversei unei matrice inferior
triunghiulare) (Se da L R
nn
, inferior triunghiulara si inversabila. Se
calculeaza pe loc n L inversa acesteia.)
1. Pentru j = 1 : n
1. l
jj
x
jj
= 1 / l
jj
2. Pentru i = j + 1 : n
1. l
ij
x
ij
=
_

i1
k=j
l
ik
x
kj
_
/ l
ii
Comentarii. Numarul de operat ii necesar este
N
LINV
= n +
n1

j=1
n

i=j+1
2(i j)
n
3
3
.
Memoria necesara este M
LINV
n
2
/2 locat ii n virgula mobila. Se vede acum ca
rezolvarea sistemului liniar Lx = b folosind relat ia x = L
1
b (adica LINV) este
inecienta n comparat ie cu algoritmul direct LTRIS.
Pentru a calcula inversa unei matrice superior triunghiulare nesingulare
U R
nn
, trebuie rezolvata ecuat ia matriceala UX = I
n
, sau, echivalent, cele
n ecuat ii liniare
Ux
j
= e
j
, j = 1 : n, (1.54)
unde x
j
este coloana j a matricei X = U
1
.
Utilizand partit ia
_
U
(j)
11
U
(j)
12
0 U
(j)
22
_
_
x

j
x

j
_
=
_
e

j
0
_
, (1.55)
unde U
(j)
11
este submatricea de dimensiune j j din colt ul stanga sus a lui U si
e

j
= [0 0 . . . 0 1]
T
R
j
, si urmand o cale asemanatoare celei parcurse pentru inver-
sarea matricelor inferior triunghiulare, se obt in analoagele relat iei (1.53), propozit iei
1.5 si algoritmului LINV. Avem:
_
U
(j)
11
x

j
= e

j
,
x

j
= 0.
(1.56)
Propozit ia 1.6 Inversa unei matrice superior triunghiulare nesingulare este supe-
rior triunghiular a.
Asadar matricele superior triunghiulare inversabile formeaza grup n raport cu
nmult irea.
Daca sistemele (1.56) sunt rezolvate n ordine inversa (pentru j = n, n1, . . . , 1),
se poate vedea cu usurint a ca elementele matricei inverse se pot memora peste cele
ale matricei originale, pe masura ce sunt calculate. Vom obt ine deci urmatorul
algoritm.
1.10. VALORI SI VECTORI PROPRII 59
Algoritmul 1.22 (UINV Calculul inversei unei matrice superior
triunghiulare) (Se da U R
nn
, superior triunghiulara si inversabila.
Se calculeaza pe loc n U inversa acesteia.)
1. Pentru j = n : 1 : 1
1. u
jj
x
jj
= 1/u
jj
2. Pentru i = j 1 : 1 : 1
1. u
ij
x
ij
=
_

j
k=i+1
u
ik
x
kj
_
/u
ii
Comentarii. Ca n cazul inferior triunghiular, N
UINV
n
3
/3 si M
UINV
n
2
/2.
Algoritmii de inversare a matricelor triunghiulare sunt numeric stabili.
1.10 Valori si vectori proprii
Fie A C
nn
. Numarul C se numeste valoare proprie a matricei A daca exista
un vector v C
n
, v = 0, astfel ncat
Av = v. (1.57)

In acest caz, v se numeste vector propriu al matricei A, asociat lui .


Se observa ca daca v este vector propriu al matricei A, atunci si u = v este
vector propriu al lui A, corespunzand aceleiasi valori proprii, oricare C, = 0.
Asadar, vectorii proprii sunt determinat i numai ca direct ie, nu si ca marime.
Teorema 1.4 Fie A C
nn
. Scalarul C este valoare proprie a matricei A
dac a si numai dac a matricea I A este singular a. Mai mult, matricea A are
exact n valori proprii (num ar and separat valorile proprii multiple), care coincid cu
zerourile polinomului caracteristic
p() = det(I
n
A). (1.58)
Dac a A R
nn
, valorile proprii apar n perechi complex conjugate (iar vectorii
proprii asociat i acestor perechi pot alesi complex conjugat i).
Demonstrat ie. Daca este valoare proprie a matricei A, atunci exista un vector
v = 0 astfel ncat Av = v, deci (I
n
A)v = 0 si n consecint a I
n
A este
singulara. Reciproc, daca pentru un C matricea I
n
A este singulara, atunci
exista v C
n
, v = 0, astfel ncat (I
n
A)v = 0, adica Av = v si deci este
valoare proprie a matricei A.
Deoarece I
n
A este singulara daca si numai daca satisface det(I A) = 0,
iar p() = det(I A) este un polinom monic de grad n, din teorema fundamentala
a algebrei rezulta ca (1.58) are n zerouri care coincid cu valorile proprii ale matri-
cei A. Daca A este reala, polinomul caracteristic p() are coecient i reali si atunci
zerourile sale complexe apar n perechi complex conjugate (pentru vectori proprii,
vezi problema 1.28).
Ca o consecint a directa a faptului ca valorile proprii sunt radacinile ecuat iei
det(I
n
A) = 0, sa observam ca daca A este diagonala sau triunghiulara, atunci
valorile sale proprii sunt chiar elementele diagonale.
60 CAPITOLUL 1. ALGORITMI ELEMENTARI
Notam prin
(A) = {
1
,
2
, . . . ,
n
} = { C | det(I A) = 0} (1.59)
mult imea valorilor proprii ale matricei A C
nn
(cu repetarea valorilor proprii
multiple). Mult imea (A) se numeste spectrul matricei A.
Transformari de asemanare. Suntem interesat i 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 C
nn
sunt numite asemenea daca exista o matrice nesin-
gulara T C
nn
astfel ncat
B = TAT
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.5 Dou a matrice asemenea A, B C
nn
au acelasi spectru, adic a
(A) = (B). Mai mult, dac a T este matricea de transformare din (1.60) si dac a
v
A
este vector propriu al matricei A corespunz ator valorii proprii (A), atunci
vectorul
v
B
= Tv
A
(1.61)
este vector propriu al matricei B, corespunz ator aceleiasi valori proprii.
Demonstrat ie. Daca A si B satisfac (1.60), atunci
det(I B) = det(I TAT
1
) = det(T(I A)T
1
) =
= det(T) det(I A) det(T
1
) = det(I A),
deci (A) = (B). Daca v
A
este vector propriu al matricei A corespunzator valorii
proprii , atunci Av
A
= v
A
, sau TAT
1
Tv
A
= Tv
A
, de unde Bv
B
= v
B
si deci
(1.61) este adevarata.
Matrice simple. O matrice A C
nn
care are un set complet de n vectori
proprii liniar independent i se numeste simpl a. Acesta este cazul generic si toto-
data cel n care proprietat ile spectrale ale matricelor sunt mai vizibile. Se poate
demonstra ca daca matricea A are n valori proprii distincte, atunci ea este simpla.
Teorema 1.6 Fie A C
nn
o matrice simpl a si V C
nn
matricea ale c arei
coloane sunt vectorii proprii ai lui A. Atunci
V
1
AV = C
nn
(1.62)
este o matrice diagonal a.
Demonstrat ie. V = [v
1
v
2
. . . v
n
] si Av
j
=
j
v
j
, j 1 : n, unde
j
sunt valorile
proprii ale lui A. Atunci
AV = [Av
1
Av
2
. . . Av
n
] = [
1
v
1

2
v
2
. . .
n
v
n
] =
1.10. VALORI SI VECTORI PROPRII 61
= [v
1
v
2
. . . v
n
] diag(
1
,
2
, . . . ,
n
) = V .
Deoarece vectorii v
j
, j 1 : n, sunt liniar independent i, matricea V este nesingulara
si (1.62) este adevarata.
Asadar o matrice simpla poate diagonalizat a peste C printr-o transformare de
asemanare. Nu aceasta este si abordarea numerica a problemei, care va discutata
pe larg n capitolul 4.
Subspat ii invariante. Fie A C
nn
si un subspat iu S C
n
; spunem ca S
este A-invariant daca Av S, v S. (Denit ia este identica pentru A R
nn
,
S R
n
.)
Se observa usor ca daca S are o baza formata din vectori proprii ai matricei A,
atunci S este A-invariant. Reciproca acestei armat ii nu este, n general, adevarata.
AA. Calculul vectorilor proprii ai matricelor triunghiulare. Fie
U R
nn
o matrice superior triunghiulara. Asa cum am observat mai sus, valorile
sale proprii sunt
i
= u
ii
, i 1 : n. Dorim acum sa calculam vectorii proprii.
1. Consideramntai cazul n care valorile proprii sunt distincte doua cate doua.
Fie T =
j
I U; vectorul propriu v
j
va calculat rezolvand sistemul liniar Tv
j
= 0,
care poate partit ionat
_
_
T
11
y T
13
0 w
T
T
33
_
_
_
_
v

j
v
jj
v

j
_
_
= 0
_
_
_
T
11
v

j
+v
jj
y +T
13
v

j
= 0
w
T
v

j
= 0
T
33
v

j
= 0
, (1.63)
unde v

j
R
j1
, v

j
R
nj
. Valorile proprii ind distincte, T
11
si T
33
sunt nesin-
gulare. Din (1.63), T
33
v

j
= 0, si deci v

j
= 0. Ecuat ia w
T
v

j
= 0 este ntotdeauna
satisfacuta iar v
jj
poate avea o valoare nenula oarecare, sa zicem v
jj
= 1.

In ne,
sistemul superior triunghiular T
11
v

j
= y are solut ie unica, care se poate calcula
cu algoritmul UTRIS.
Vectorii proprii astfel calculat i sunt liniar independent i, deoarece matricea
V = [v
1
v
2
. . . v
n
] este superior triunghiulara unitate; rezultatul e natural, deoarece
U este simpla. Direct iile vectorilor proprii sunt unic denite, marimile lor ind alese
arbitrar prin constrangerea v
jj
= 1.
2. Daca exista valori proprii multiple, atunci T va avea mai multe valori di-
agonale nule. Putem alege n continuare, n (1.63), v

j
= 0, v
jj
= 1. Acum nsa,
T
11
poate singulara, deci se pune problema daca sistemul superior triunghiular
T
11
v

j
= y are solut ie. Procedand prin substitut ie napoi, presupunem ca v
jj
= 1,
v
j1,j
, . . . , v
i+1,j
au fost calculate si scriem ecuat ia i a acestui sistem
t
ii
v
ij
=
ij
, cu
ij
= t
ij

j1

k=i+1
t
ik
v
kj
. (1.64)
Daca t
ii
= 0, evident ca n (1.64) v
ij
=
ij
/ t
ii
si substitut ia poate continua. Daca
t
ii
= 0, sunt doua variante: e
ij
= 0, si atunci v
ij
din (1.64) poate avea o valoare
arbitrara, de exemplu v
ij
= 1, si substitut ia continua; e
ij
= 0, si atunci (1.64)
nu este satisfacuta, deci sistemul (1.63) nu are solut ie v
j
; n acest caz, matricea U
este defectiva, adica nu are n vectori proprii liniar independent i.
62 CAPITOLUL 1. ALGORITMI ELEMENTARI
Considerat iile de mai sus conduc la urmatorul algoritm general, n care matricea
T =
j
U nu se formeaza explicit
Algoritmul 1.23 (TRV Calculul vectorilor proprii ai unei ma-
trice superior triunghiulare) (Se da U R
nn
, superior triunghiulara.
Se calculeaza vectorii proprii ai matricei U n matricea V ; coloanele nule
din V desemneaza cazurile de defectivitate.)
1. V 0
2. Pentru j = 1 : n
1. v
jj
1
2. Pentru i = j 1 : 1 : 1
1. u
ij
+

j1
k=i+1
u
ik
v
kj
2. Daca u
ii
= u
jj
atunci % t
ii
= 0
1. v
ij
/(u
jj
u
ii
)
altfel dac a = 0 atunci
2. v
ij
1
altfel % = 0
3. v
kj
0, cu k = i + 1 : j
4. treci la urmatorul j
Comentarii. Instruct iunile 2.2.2.1, 2.2.2.2, 2.2.2.3 implementeaz a cele trei cazuri
posibile n rezolvarea ecuat iei (1.64); n 2.2.2.3 se refac zerourile din coloana j
a matricei V , pentru a se marca necalcularea unui vector propriu. Numarul de
operat ii este de cel mult n
3
/3 opi.
Deoarece calculul valorii este afectat de erori numerice, decizia = 0 se
implementeaza efectiv printr-un test de genul || < c
M
, unde c > 1 este o constanta
mica.

In unele programe de calcul, cazurile de defectivitate sunt pur si simplu
ocolite; atunci cand u
ii
= u
jj
, se ia fort at n 2.2.2.1 u
jj
u
ii
=
M
si se lucreaza ca
si cum matricea U are avea valori proprii distincte. Se obt in astfel ntotdeauna n
vectori proprii distinct i; n cazurile de defectivitate, vectorii proprii corespunzatori
aceleiasi valori proprii sunt aproape (cu o aproximat ie de ordinul preciziei de calcul)
coliniari.
Cazul matricelor inferior triunghiulare se trateaza analog si e lasat ca exercit iu.
1.11 Rutinele BLAS
Am prezentat n sect iunile anterioare algoritmi simpli adecvat i calculatoarelor cu
memorie ierarhica: 1.15 pentru nmult irea de matrice si 1.20 pentru rezolvarea
sistemelor triunghiulare cu parte dreapta multipla. Pentru majoritatea problemelor,
nsa, algoritmii sunt complicat i si efortul gasirii unei idei de adaptare poate consi-
derabil; programatorul ar obligat sa cunoasca detalii arhitecturale si ale sistemului
de operare pentru calculatorul n cauza.

In plus, programul realizat ar funct iona
doar pe tipul respectiv de calculator, transferul pe un altul implicand rescrierea
part iala.
Pentru a usura sarcina programatorului si pentru a realiza portabilitatea, a
aparut ideea scrierii unor biblioteci de rutine fundamentale, put ine la numar, dar
1.11. RUTINELE BLAS 63
S real simpla precizie C complex simpla precizie
D real dubla precizie Z complex dubla precizie
GE - generala GB - generala banda
SY - simetrica SB - simetrica banda SP - simetrica mpachetat
HE - hermitica HB - hermitica banda HP - hermitica mpachetat
TR - triunghiulara TB - triungh. banda TP - triungh. mpachetat
Tabelul 1.1: Convent ii de nume n BLAS: tipuri de date si structuri de matrice
implementate foarte ecient pe majoritatea calculatoarelor (de catre programatori
profesionisti). Atunci, un program obisnuit va folosi c at mai mult aceste rutine, si
cat mai put in alt gen de operat ii; ecient a este asigurata, datorita adecvarii rutinelor
de baza la arhitectura, iar efortul de programare este redus, datorita numarului
redus al rutinelor.
Astfel s-au nascut (ncepand din 1973, pana n 1989) bibliotecile BLAS (Basic
Linear Algebra Subroutines rutine de baza n algebra liniara), care s-au impus ca
un standard unanim acceptat si sunt implementate pe marea majoritate a calcula-
toarelor de performant a. Exista trei nivele BLAS, n fapt trei biblioteci distincte
al caror cont inut trateaza operat ii asemanatoare din punct de vedere al datelor
implicate:
nivel 1: dedicat operat iilor vectoriale, de genul Saxpy sau DOT, care necesita
O(n) opi. BLAS-1 este adecvat calculatoarelor vectoriale.
nivel 2: dedicat operat iilor matrice-vector, de tipul Gaxpy sau rezolvare de
sisteme triunghiulare, care necesita O(n
2
) ops. Si BLAS-2 are aplicabilitate
n special pe calculatoare vectoriale.
nivel 3: operat ii matrice-matrice, ca nmult irea de matrice sau rezolvarea de
sisteme triunghiulare cu parte dreapta multipla, care necesita O(n
3
) ops.
BLAS-3 este ecient ndeosebi pe calculatoare cu memorie ierarhica.
Prezentamn continuare cateva din rutinele BLAS, insistand asupra nivelului 3,
deoarece calculatoarele cu memorie ierarhica sunt tot mai raspandite.
Convent ii de nume. Scrise init ial n FORTRAN, numele rutinelor sunt foarte
scurte (cel mult sase caractere) si de aceea greu de nt eles fara explicat ii asupra
convent iilor utilizate pentru stabilirea lor.

In tabelul 1.1, prima litera a numelui
unei rutine indica tipul datelor, iar urmatoarele doua (numai pentru nivelele 2 si
3), structura matricelor argumente ale funct iei.

In ne, ultimele trei (uneori doua) litere tot pentru nivelele 2 si 3 codica
operat ia executata, dupa cum se va vedea imediat.
BLAS 1. Prezentamn tabelul 1.2 cele mai importante rutine ale nivelului 1 al
BLAS, fara a preciza argumentele lor, ci numai operat ia realizata; ca si pana acum,
x, y sunt vectori n R
n
sau C
n
, iar scalar. Prima litera a numelui, care arata tipul
datelor, este precizata n ultima coloana.
64 CAPITOLUL 1. ALGORITMI ELEMENTARI
Nume Operat ie Prexe
xSWAP x y S, D, C, Z
xSCAL x x S, D, C, Z
xCOPY x y S, D, C, Z
xAXPY y x +y S, D, C, Z
xDOT dot x
T
y S, D
xDOTU dot x
T
y C, Z
xDOTC dot x
H
y C, Z
xNRM2 nrm2 x
2
S, D, C, Z
Tabelul 1.2: Rutine din BLAS 1
Deoarece argumentele funct iilor sunt asemanatoare, exemplicam cu un apel
tipic:
SAXPY(N, ALFA, X, INCX, Y, INCY)
INCX reprezinta distant a, n memorie, ntre doua elemente succesive ale vectoru-
lui al carui prim element se gaseste la adresa X. Argumentul INCX permite utilizarea
ca vectori, n SAXPY, atat a coloanelor cat si a liniilor unei matrice. Sa presupunem
ca o matrice A este memorata ntr-un tablou m n, n ordinea coloanelor (adica
a
11
, a
21
, . . . , a
m1
, a
12
, . . . ). Atunci coloana j este reprezentata astfel: X este adresa
elementului a
1j
(adica A+mjd, unde d este numarul de octet i necesari memorarii
unui element), iar INCX = 1. Pentru a reprezenta linia i a matricei A, luam X adresa
elementului a
i1
(adica A+id), iar INCX = m.
BLAS 2. Nivelul 2 al BLAS cont ine rutine pentru trei operat ii: produsul
matrice-vector, rezolvarea sistemelor triunghiulare si produsul exterior, n diverse
variante pe care le enumeramn continuare.
Rutinele care executa nmult ire matrice-vector de forma y Ax + y au
numele de tipul xyyMV, n care primele trei litere sunt cele din tabelul 1.1 (toate
combinat iile permise).
Rezolvarea sistemelor (inferior sau superior) triunghiulare este efectuata de ru-
tinele xyySV, unde yy este TR, TB sau TP.
Pentru produsul exterior, rutina de baza este xGER, care executa operat ia
A xy
T
+A, unde A este o matrice.
Nu dam un exemplu de apel, deoarece descrierea matricelor se face ca la rutinele
de nivel 3, explicate mai jos, iar cea a vectorilor ca n rutinele de nivel 1.
BLAS 3. Vom prezenta acum cele 6 rutine alese a face parte din setul BLAS
nivel 3 n [?]. Ele sunt put ine la numar, deoarece munca de creare a unei rutine
optime este dicila; chiar daca rutinele rezolva probleme relativ simple, arhitectura
complicata implica folosirea aproape exclusiva a limbajului de asamblare; pe un
calculator CRAY, s-a ajuns chiar la 100 000 linii de program pentru o, n aparent a
banala, nmult ire de matrice.
Operat iile implementate de rutinele BLAS nivel 3 sunt esent ialmente n numar
de doua: nmult irea de matrice, n cateva variante, si rezolvarea de sisteme triunghiu-
lare cu parte dreapta multipla. Numele rutinelor sunt deja intrate n uzul curent si
1.11. RUTINELE BLAS 65

`
M

`

K
LDA
Fig. 1.12: Memorarea (pe coloane a) unei matrice ntr-un tablou
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 operat iilor, sau simetrice si patrate, T este o matrice triunghiulara,
superior sau inferior, iar si snt scalari.
1. xGEMM (GEneral Matrix Multiplication) nmult irea matrice-matrice, n cazul
general. Modul complet de apel este:
xGEMM(TRANSA, TRANSB, M, N, K, ALFA, A, LDA, B, LDB, BETA, C, LDC)
Operat iile efectuate de rutina snt prezentate n tabelul urmator; C este ntot-
deuna de dimensiune mn.
TRANSA = N TRANSA = T
TRANSB = N C AB + C C A
T
B + C
A este mk, B este k n A este k m, B este k n
TRANSB = T C AB
T
+ C C A
T
B
T
+ C
A este mk, 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 cont in dimensiunea principala a variabilelor n care sunt stocate
matricele, presupuse memorate pe coloane. Semnicat ia acestor variabile dimen-
sionale este mai clara n gura 1.12. Elementele de pe aceeasi linie se aa la distant a
LDA n memorie. Se mai poate observa ca patru variabile (analog cu A, M, K, LDA)
sunt suciente pentru utilizarea oricarei submatrice a matricei din gura.
Rutina acopera toate variantele de nmult ire a doua matrice, operat ia de baza
ind C AB + C; transpunerea nu este lasata utilizatorului, deoarece poate
mare consumatoare de timp daca se executa explicit (n xGEMM nu se ntampla
asa); la fel, nmult irea matrice-scalar. Cum toate celelalte rutine BLAS nivel 3 au
argumente de apelare asemanatoare, vom prezenta n continuare doar operat ia de
baza implementata.
2. xSYMM (SYmetric Matrix Multiplication) nmult ire matrice-matrice, cu una
din matrice simetrica:
66 CAPITOLUL 1. ALGORITMI ELEMENTARI
C AB + C. (1.65)
3. xSYRK (SYmmetric Rank-K update) actualizare de rang k a unei matrice
simetrice; A are dimensiune n k.
C AA
T
+ C. (1.66)
De obicei, k < n; de aici numele rutinei, AA
T
avand rang k.
4. xSYR2K actualizare de rang 2k a unei matrice simetrice:
C AB
T
+ BA
T
+ C. (1.67)
5. xTRMM (TRiangular Matrix Multiplication) nmult ire matrice-matrice, cu
una dintre matrice triunghiulara:
B TB. (1.68)
Evident, exista si varianta n care T este la dreapta; de asemenea, T poate inferior
sau superior triunghiulara.
6. xTRSM (TRiangular system Solver, with Multiple right hand term) cal-
culeaza solut ia unui sistem liniar triunghiular, cu parte dreapta multipla (TX = B):
X T
1
B. (1.69)
Si pentru aceasta rutina exista versiuni n care necunoscuta este n stanga (de genul
XT = B); T este e superior, e inferior triunghiulara.
Ca pentru orice standard, alegerea setului de mai sus poate parea mai mult sau
mai put in arbitrara; principala justicare 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 operat iilor sa apara n execut ia unor rutine BLAS de nivel 3. Pentru a
cuantica ecient a lor, introducem ponderea operat iilor de nivel 3 prin raportul
P
3
(n) =
N
3
(n)
N
total
(n)
. (1.70)
N
total
(n) reprezinta numarul total de opi necesari execut iei algoritmului, iar N
3
(n)
numarul de opi executat i n rutinele din BLAS-3; ele depind (cel put in) de dimen-
siunea problemei n.
Pe un calculator cu memorie ierarhica, un algoritm este cu atat mai bun cu cat
P
3
(n) este mai apropiata de 1; evident, P
3
(n) 1. Motivul este clar: pe un astfel
de calculator, operat iile 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 Demonstrat i ca un subspat iu liniar n R
n
este un spat iu vectorial.
P 1.2 Scriet i algoritmi pentru calculul normelor 1 si ale unui vector x R
n
.
P 1.3 (Cauchy-Buniakowski-Schwarz) Demonstrat i ca |x
T
y| x2y2, x, y R
n
.
P 1.4 Gasit i vectori liniar independent i x, y R
n
care sa satisfaca x+yp = xp+yp,
pentru p = 1, 2, .
P 1.5 Demonstrat i (1.6) pentru n = 2, apoi n cazul general.
P 1.6 (Ortogonalizare Gram-Schmidt) Fie b1, . . . , bp o baza a unui subspat iu S R
n
.
Sa se gaseasca o baza ortogonala a1, . . . , ap a lui S procedand prin induct ie: a1 = b1 si
a
k+1
=
P
k
i=1

ik
ai +b
k+1
. (Evident, baza devine ortonormala prin normalizare.)
P 1.7 Fie x R
m
si y R
n
doi vectori, si A = xy
T
R
mn
produsul lor exterior.
Demonstrat i ca rangA = 1.
P 1.8 Fie matricele A R
n
1
n
2
, B R
n
2
n
3
, C R
n
3
n
4
. Sugerat i un algoritm de
calcul al produsului ABC.
P 1.9 Demonstrat i ca maxi,j |aij| A2

mnmaxi,j |aij|, A R
mn
.
P 1.10 Demonstrat i (1.29) si gasit i matrice pentru care inegalitat ile (e cele de majorare,
e cele de minorare) devin egalitat i.
P 1.11 Fie B o submatrice a matricei A. Aratat i ca Bp Ap.
P 1.12 Demonstrat i ca: 1. A2 = max
x
2
=1,y
2
=1
|y
T
Ax|; 2. A
T
2 = A2;
3. A
T
A2 = A
2
2
.
P 1.13 Demonstrat i ca daca A R
nn
este inversabila, atunci pentru orice norma ma-
triceala subordonata unei norme vectoriale avem 1 / A
1
= min
x=1
Ax.
P 1.14 Fie L R
nn
o matrice strict inferior triunghiulara. Demonstrat i ca L
n
= 0.
P 1.15 Fie A, B R
nn
doua matrice banda, prima de lat ime p, a doua de lat ime q.
Demonstrat i ca AB este o matrice banda de lat ime p + q si scriet i un algoritm pentru
calculul acestui produs.
P 1.16 Scriet i un algoritm pentru calculul produsului dintre o matrice inferior triunghiu-
lara si una superior triunghiulara.
P 1.17 Aratat i ca algoritmul 1.14 de nmult ire de matrice inferior triunghiulare se poate
executa pe loc n A. Cum trebuie modicat pentru a se putea executa pe loc n B ?
P 1.18 Aratat i ca submatricele lider principale ale unor matrice triunghiulare, Hessen-
berg, simetrice sunt triunghiulare, Hessenberg, respectiv simetrice. Este armat ia valabila
pentru matrice ortogonale ?
P 1.19 Presupunem ca dispunet i de un algoritm general de rezolvare a sistemelor liniare.
Indicat i un mod ecient de rezolvare a sistemului Ax = b atunci cand A, partit ionata ca
n (1.31), este patrata si bloc superior triunghiulara.
P 1.20 Demonstrat i ca numarul de operat ii N(n) al algoritmului Strassen, respectand
recurent a (1.38), este
N(n) =
2n
3
0
+ 6n
2
0
n
log 7
0
n
log 7
6n
2
0
.
68 CAPITOLUL 1. ALGORITMI ELEMENTARI
P 1.21 Daca A R
nn
este simetrica pozitiv denita, demonstrat i ca xA =

x
T
Ax
este o norma vectoriala. (Indicat ie: matricele simetrice sunt ortogonal diagonalizabile.)
P 1.22 Fie A R
nn
, simetrica pozitiv denita. Demonstrat i ca A este inversabila si ca
A
1
este pozitiv denita.
P 1.23 a. Este clar ca o matrice triunghulara si simetrica este diagonala. Cum este o
matrice triunghiulara si antisimetrica ?
b. Demonstrat i ca o matrice triunghiulara si ortogonala este diagonala.
c. Putet i extinde rezultatul n cazul matricelor triunghiulare si normale ?
P 1.24 Scriet i algoritmi ecient i pentru rezolvarea sistemului Ax = b, cu A R
nn
si
b R
n
, n cazurile:
a. A inferior bidiagonala, adica aij = 0 pentru i < j sau i > j + 1.
b. A inferior triunghiulara si banda de lat ime p (aij = 0 pentru i < j sau i > j +p).
c. A superior bidiagonala.
d. A superior triunghiulara si banda de lat ime p.
P 1.25 Adaptat i algoritmii LINVsi UINV pentru inversarea matricelor inferior, respec-
tiv superior bidiagonale.
P 1.26 Propunet i algoritmi de rezolvare a sistemelor inferior (superior) triunghiulare,
folosind operat iile vectoriale DOT sau Saxpy.
P 1.27 Prezentat i 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 R
nn
si x = u + iv C
n
un vector propriu al sau, cu u, v R
n
, v = 0.
Demonstrat i ca:
a. u iv este vector propriu al matricei A.
b. Vectorii u si v sunt liniar independent i iar subspat iul generat de ei n R
n
este
A-invariant.
P 1.29 Daca matricea A R
nn
are spectrul (A) = {1, . . . , n}, atunci
tr(A) =
P
n
i=1
i, iar detA =
Q
n
i=1
i. Putet i generaliza ?
P 1.30 Fie A R
nn
, simetrica pozitiv denita. Demonstrat i ca toate valorile proprii
ale matricei A sunt (reale si) pozitive.
Capitolul 2
Rezolvarea sistemelor de
ecuat ii liniare

In acest capitol vom prezenta principalele metode de rezolvare a sistemelor deter-


minate de ecuat ii liniare
Ax = b, (2.1)
unde A R
nn
este o matrice inversabila, iar b R
n
este un vector dat. Asa cum
am vazut n sect iunea 1.9, n virtutea condit iei de inversabilitate, sistemul (2.1) are
o solut ie unica x R
n
.

In practica numerica actuala se folosesc doua categorii principale de metode


numerice sigure pentru determinarea acestei solut ii:
Metode directe, bazate pe reducerea sistemului (2.1), printr-o secvent a nita
de transformari elementare, la unul sau doua sisteme triunghiulare, care se
rezolva utilizand procedurile de substitut ie cunoscute din sect iunea 1.9 (al-
goritmii LTRIS si UTRIS). Din aceasta categorie fac parte metodele de
eliminare gaussiana si de factorizare compacta LU, care sunt recomandate
pentru sisteme de dimensiuni medii, sa zicem n < 500, dar aceasta limita
depinde de puterea calculatorului pe care rezolvam sistemul.
Metode iterative, bazate pe construirea recursiva a unui sir de vectori care
converge catre solut ia sistemului (2.1). Aceste metode sunt recomandate pen-
tru sisteme de dimensiuni foarte mari, sau/si atunci cand matricea A are o
structura speciala, eventual rara.
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 sect iuni ale capitolului vom trata
aceste transformari ca subiect de sine statator. Algoritmii descrisi vor utilizat i
n sect iunea 2.5 pentru rezolvarea efectiva a unui sistem (2.1), de forma generala.
Ca probleme conexe, n sect iunea 2.6 vor prezentat i algoritmi de calcul al in-
versei si determinantului unei matrice. Urmatoarele doua sect iuni sunt dedicate
69
70 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
analizei condit ionarii unui sistem liniar si respectiv stabilitat ii numerice a algo-
ritmilor prezentat i. De asemenea, sunt descrise unele metode de mbunatat ire a
acuratet ii solut iei numerice obt inute.

In ne, ultimele sect iuni ale capitolului se
ocupa de cazuri particulare de sisteme liniare cu structura banda, bloc, simetrice
si pozitiv denite care apar frecvent n practica.
2.1 Transformari elementare
Transformarile matricei A necesare pentru rezolvarea sistemului (2.1) se pot descrie
concis si elegant n termeni de operat ii matriceale, mai precis ca produs ntre A
si anumite matrice elementare. (

In loc de produs sau nmult ire, vom vorbi despre


aplicarea asupra lui A a matricei de transformare corespunzatoare.)
Denit ia 2.1 O matrice inferior triunghiulara elementara (ITE) de ordin n si in-
dice k este o matrice de forma
M
k
= I
n
m
k
e
T
k
, (2.2)
unde
m
k
= [0 0 . . . 0
k+1,k
. . .
nk
]
T
(2.3)
este un vector av and primele k componente nule, iar e
k
este vectorul unitate de
indice k.
Din motive ce vor evidente ulterior, M
k
se mai numeste transformare ele-
mentara sau gaussiana, m
k
se numeste vector Gauss, iar scalarii
ik
se numesc
multiplicatori (gaussieni).
Structura unei matrice elementare inferior triunghiulare de ordinul n si indice k
este
M
k
=
_

_
1 0 . . . 0 . . . 0
0 1 . . . 0 . . . 0
.
.
. . . .
0 0 . . . 1 . . . 0
0 0 . . .
k+1,k
. . . 0
. . . . . .
.
.
. 0
0 0 . . .
nk
. . . 1
_

_
.
Notam de acum faptul ca o matrice ITE este complet denita de vectorul m
k
din (2.3); n orice algoritm, matricea M
k
nu se memoreaza integral, ci doar prin
vectorul m
k
, i.e. prin multiplicatorii
ik
, i = k + 1 : n. Principalele proprietat i ale
unei astfel de matrice sunt rezumate n urmatoarea propozit ie.
Propozit ia 2.1 a) O matrice ITE este inversabil a si
M
1
k
= I
n
+m
k
e
T
k
. (2.4)
2.1. TRANSFORM

ARI ELEMENTARE 71
b) Fie x R
n
un vector dat, iar M
k
o matrice ITE precizat a. Atunci vectorul
transformat y = M
k
x are elementele
(M
k
x)
i
=
_
x
i
, pentru i = 1 : k,
x
i

ik
x
k
, pentru i = k + 1 : n.
(2.5)
c) Fie x R
n
. Dac a x
k
= 0, atunci exist a o matrice ITE M
k
astfel nc at
vectorul transformat y = M
k
x are ultimele n k componente nule, mai precis
(M
k
x)
i
=
_
x
i
, pentru i = 1 : k,
0, pentru i = k + 1 : n.
(2.6)
Dac a x
k
= 0, atunci pentru orice M
k
M
k
x = x. (2.7)
Demonstrat ie. a) Evident, det(M
k
) = 1, adica M
k
este inversabila. Mai mult,
M
k
(I
n
+m
k
e
T
k
) = (I
n
m
k
e
T
k
)(I
n
+m
k
e
T
k
) = I
n
m
k
(e
T
k
m
k
)e
T
k
= I
n
deoarece, din (2.3), e
T
k
m
k
= 0. Deci (2.4) este adevarata.
b) Utilizand (2.2), obt inem
M
k
x = (I
n
m
k
e
T
k
)x = x m
k
e
T
k
x = x
i
x
k
m
k
.
Scriind relat ia de mai sus pe componente si t inand seama de (2.3), obt inem (2.5).
c) T inand seama de (2.5) si alegand

ik
= x
i
/x
k
, i = k + 1 : n, (2.8)
rezulta (M
k
x)
i
= 0, pentru i = k + 1 : n. Daca x
k
= 0, atunci (2.5) conduce direct
la (2.7). De observat ca, daca x
k
= 0, atunci matricea ITE denita de vectorul
Gauss cu elementele din (2.8) este unica matrice ITE de indice k care introduce
zerouri n ultimele n k componente ale vectorului x.
Dupa cum vom vedea n sect iunea urmatoare, proprietat ile (2.6) si (2.7) sunt
cruciale n reducerea unei matrice la forma triunghiulara.
Similar se introduce not iunea de matrice superior triunghiular a elementar a (STE)
sau transformare elementara retrograda, n care vectorul m
k
are ultimele k com-
ponente nule. Propunem cititorului formularea si demonstrarea analoagei propo-
zit iei 2.1.
Vom introduce acum not iunea de matrice de permutare, care permite descrierea
concisa a interschimbarilor de linii sau coloane n termeni de operat ii matriceale.
Denit ia 2.2 O matrice P
ij
R
nn
obt inut a din matricea unitate I
n
prin inter-
schimbarea a dou a coloane (sau linii) i si j, adic a o matrice de forma (aici i < j):
P
ij
= [e
1
e
2
. . . e
i1
e
j
e
i+1
. . . e
j1
e
i
e
j+1
. . . e
n
] =
_

_
I
i1
0 1
I
ji1
1 0
I
nj
_

_
72 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
n care toate elementele negurate sunt nule, se numeste (matrice de) permutare
elementara (PE).
Daca (i
1
, i
2
, . . . , i
n
) este o permutare a mult imii 1 : n, atunci matricea
P = [e
i1
e
i2
. . . e
in
] este o matrice de permutare. Desigur, un produs de matrice
elementare de permutare este o matrice de permutare si, reciproc, orice matrice de
permutare se poate exprima ca produs de matrice PE.
Proprietat ile matricelor elementare de permutare sunt expuse n urmatoarea
propozit ie, a carei demonstrat ie e evidenta.
Propozit ia 2.2 a) O PE este ortogonal a si simetric a, deci P
1
ij
= P
ij
, iar
det P
ij
= 1.
b) Premultiplicarea unei matrice A cu PE P
ij
interschimb a linia i cu linia j din
A, adic a:
e
T
k
(P
ij
A) =
_
_
_
e
T
k
A, pentru k = i, j,
e
T
j
A, pentru k = i,
e
T
i
A, pentru k = j.
c) Postmultiplicarea unei matrice A cu PE P
ij
interschimb a coloana i cu coloana
j din A, adic a:
(AP
ij
)e
k
=
_
Ae
k
, pentru k = i, j,
Ae
j
, pentru k = i,
Ae
i
, pentru k = j.
2.2 Triangularizare prin eliminare gaussiana
Fie A R
nn
(cazul A C
nn
este identic) o matrice nu neaparat inversabila.
Eliminarea gaussiana este o metoda de reducere a matricei A la forma superior
triunghiulara prin aplicarea la stanga lui A a unei secvent e M
k
, k = 1 : n 1,
de matrice ITE, ecare aleasa astfel ncat sa anuleze elementele subdiagonale n
coloana corespunzatoare a
k
a matricei A.
Pentru prezentarea metodei avem nevoie de doua rezultate cu caracter tehnic,
a caror demonstrat ie e lasata cititorului.
Propozit ia 2.3 Fie A R
nn
. a) Dac a L R
nn
este inferior triunghiular a,
atunci
1
(LA)
[k]
= L
[k]
A
[k]
.
b) Dac a L
i
R
nn
, i = 1 : p, sunt matrice inferior triunghiulare, atunci
(L
1
L
2
. . . L
p
A)
[k]
= L
[k]
1
L
[k]
2
. . . L
[k]
p
A
[k]
.
Urmatoarea teorema stabileste condit iile n care este posibila reducerea unei
matrice la forma triunghiulara, utilizand transformari ITE.
1
Reamintim c a A
[k]
def
= A(1 : k, 1 : k) este submatricea lider principal a de ordin k a matricei A.
2.2. TRIANGULARIZARE PRIN ELIMINARE GAUSSIAN

A 73
Teorema 2.1 Dac a matricea A R
nn
satisface condit ia
(i) submatricele lider principale A
[k]
, k = 1 : n 1, sunt nesingulare,
atunci exist a o matrice inferior triunghiular a unitate M astfel nc at matricea
MA = U
este superior triunghiular a. Dac a A este nesingular a, atunci U este nesingular a.
Demonstrat ia este constructiva, adica descrie o procedura pentru reducerea efectiva
a matricei A la forma superior triunghiulara U. Procedura consta n n 1 pasi.
Pasul 1. Fie A
1
= A si a
1
= Ae
1
prima sa coloana. Prin ipoteza, A
[1]
1
= A
[1]
=
= a
11
= 0. Din propozit ia 2.1, exista o matrice ITE M
1
astfel ncat
(M
1
a
1
)
i
=
_
a
11
, pentru i = 1,
0, pentru i = 2 : n,
adica matricea A
2
= M
1
A
1
are toate elementele subdiagonale ale primei coloane
egale cu zero:
A
2
=
_

_
a
(2)
11
a
(2)
12
. . . a
(2)
1n
0 a
(2)
22
. . . a
(2)
2n
0 a
(2)
32
. . . a
(2)
3n
. . . . . . . . . . . .
0 a
(2)
n2
. . . a
(2)
nn
_

_
.
Pasul k. Presupunem ca matricea curenta
A
k
= M
k1
. . . M
2
M
1
A
este superior triunghiulara n primele k 1 coloane, i.e. are toate elementele sub-
diagonale ale acestor coloane egale cu zero. Aplicand propozit ia 2.3, obt inem
A
[k]
k
= M
[k]
k1
. . . M
[k]
1
A
[k]
,
unde matricele M
[k]
i
sunt toate inferior triunghiulare unitate, deci det(M
[k]
i
) = 1,
i = 1 : k 1. Deoarece A
[k]
k
este superior triunghiulara, n virtutea condit iei (i) din
enunt ul teoremei avem
det(A
[k]
k
) =
k

i=1
a
(k)
ii
= det(A
[k]
) = 0,
adica elementul a
(k)
kk
, numit pivot, este nenul. Consideram partit ionarea pe coloane
a matricei A
k
:
A
k
= [ a
(k)
1
a
(k)
2
. . . a
(k)
k
. . . a
(k)
n
].
Putem utiliza acum propozit ia 2.1 pentru a conchide ca exista o matrice ITE M
k
astfel ncat (M
k
a
(k)
k
)
i
= 0, pentru i = k + 1 : n. Mai mult, premultiplicarea cu
M
k
a matricei A
k
nu altereaza primele k 1 coloane si n particular zerourile deja
74 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
introduse la pasii anteriori, deoarece a
(k)
kj
= 0, pentru j = 1 : k 1 (vezi propozit ia
2.1, punctul c). Prin urmare matricea
A
k+1
= M
k
A
k
(2.9)
este superior triunghiulara n primele k coloane.
Astfel, procedura de introducere a zerourilor subdiagonale, nceputa la pasul 1
si continuata pana la pasul n 1 (inclusiv), are ca rezultat matricea
U
def
= A
n
= M
n1
M
n2
. . . M
1
A, (2.10)
evident superior triunghiulara. Mai mult, deoarece produsul matriceal conserva
structura inferior triunghiulara unitate (vezi propozit ia 1.2), matricea
M = M
n1
M
n2
. . . M
1
este inferior triunghiulara unitate iar, daca A este nesingulara, atunci si U rezulta
nesingulara, ca produs a doua matrice nesingulare.
Demonstrat ia 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 M
k
(adica multiplicatorii
ik
,
i = k +1 : n), astfel ncat (M
k
A)
i
= 0, pentru i = k +1 : n
2. Se calculeaz a A M
k
A
La pasul 1.1, multiplicatorii gaussieni
ik
sunt calculat i conform (2.8) prin

ik
= a
(k)
ik
/a
(k)
kk
, i = k + 1 : n, (2.11)
si pot memorat i pe pozit iile elementelor anulate. Prin instruct iunea 1.2 a schemei
de mai sus, toate rezultatele intermediare sunt depuse n spat iul de memorie ocupat
de matricea A; vezi si gura 2.1.
La pasul 1.2, transformarea A M
k
A este echivalenta cu calculul a
j
M
k
a
j
,
pentru toate coloanele a
j
= Ae
j
ale matricei A. Transformarea poate efectuata
ecient t inand cont ca primele k1 coloane ale matricei A nu sunt afectate. Coloana
k este modicata prin anularea elementelor subdiagonale. Pentru restul submatricei,
t inand seama de propozit ia 2.1b, coloana transformata are elementele
a
ij
(M
k
a
j
)
i
= ((I
n
m
k
e
T
k
)a
j
)
i
= a
ij

ik
a
kj
, i = k + 1 : n, (2.12)
unde j = k + 1 : n. Relat iile (2.11) si (2.12) mpreuna cu schema de calcul ElG
denesc algoritmul de eliminare gaussiana detaliat n continuare. Condit ia de ter-
minare corecta a algoritmului este ca numerele a
(k)
kk
, k = 1 : n 1, numite elemente
pivot, sa e nenule, adica submatricele lider principale A
[k]
, k = 1 : n 1, ale
matricei init iale, sa e nesingulare.
2.2. TRIANGULARIZARE PRIN ELIMINARE GAUSSIAN

A 75
_

_
u
11
u
12
. . . u
1k
u
1,k+1
. . . u
1n

21
u
22
. . . u
2k
u
2,k+1
. . . u
2n
. . . . . .

k1

k2
. . . u
kk
u
k,k+1
. . . u
kn

k+1,1

k+1,2
. . .
k+1,k
a
(k+1)
k+1,k+1
. . . a
(k+1)
k+1,n
. . . . . .

n1

n2
. . .
nk
a
(k+1)
n,k+1
. . . a
(k+1)
nn
_

_
_

_
u
11
u
12
. . . u
1k
. . . u
1n

21
u
22
. . . u
2k
. . . u
2n
. . . . . .

k1

k2
. . . u
kk
. . . u
kn
. . . . . .
. . . . . .

n1

n2
. . .
nk
. . . u
nn
_

_
Dupa pasul k

In nal
Fig. 2.1: Cont inutul matricei A dupa pasul k al eliminarii gaussiene si la terminarea
execut iei algoritmului
Algoritmul 2.1 (G Eliminare gaussian a) (Se da A R
nn
, cu
submatricele lider principale A
[k]
, k = 1 : n 1, nesingulare. Se cal-
culeaza matricea superior triunghiulara U si matricele ITE M
1
, . . . ,
M
n1
, astfel ncat U = M
n1
M
n2
. . . M
1
A. Matricea U se memoreaza
n triunghiul superior al lui A, inclusiv diagonala, iar multiplicatorii
gaussieni
ik
care denesc transformarile M
k
se memoreazan triunghiul
inferior al matricei A, pe pozit iile elementelor anulate.)
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : n
1. a
ik

ik
= a
ik
/a
kk
2. Pentru j = k + 1 : n
1. Pentru i = k + 1 : n
1. a
ij
a
ij

ik
a
kj
O forma vectoriala a eliminarii gaussiene se poate deduce imediat din cea de
mai sus, prin nlocuirea buclelor 1.1 si 1.2.1 cu operat iile corespunzatoare: scalare,
respectiv Saxpy (aceasta din urma putand dedusa din (2.12), care se mai scrie
M
k
a
j
= a
j
a
kj
m
k
). Avem
Algoritmul 2.2 (G varianta vectorial a)
1. Pentru k = 1 : n 1
1. A(k + 1 : n, k) m
k
= A(k + 1 : n, k)/A(k, k)
2. Pentru j = k + 1 : n
1. A(k + 1 : n, j) A(k + 1 : n, j) A(k, j)m
k
Comentarii.

In oricare dintre cele doua forme de mai sus, algoritmul necesita
N
G
=
n1

k=1
(n k + 2(n k)
2
) =
n(n 1)
2
+ 2
n(n 1)(2n 1)
6

2n
3
3
,
76 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
operat ii n virgula mobila (opi), iar memoria ocupat a este de M
G
= n
2
locat ii
(elemente n virgula mobila).
Algoritmul G poate utilizat pentru rezolvarea sistemului liniar Ax = b atunci
cand A are toate submatricele lider principale nesingulare (inclusiv A
[n]
= A).

Intr-adevar, sistemul Ax = b are aceeasi solut ie ca sistemul superior triunghiular


Ux = M
n1
M
n2
. . . M
1
b,
n care matricea U este furnizata de algoritmul G. Acest sistem triunghiular poate
rezolvat cu algoritmul UTRIS.
Semnicat ia operat iilor din algoritmul G este imediata; introducerea de zero-
uri subdiagonale n coloana k nseamna eliminarea necunoscutei x
k
din ecuat iile
k +1 : n; buclele 1.2 si 1.2.1 reprezinta scaderea din ecuat iile i = k +1 : n a ecuat iei
k nmult ite, pe rand, cu multiplicatorii
ik
, cu scopul de a elimina x
k
din ecare
ecuat ie i.
Totusi, nesingularitatea submatricelor lider principale ale matricei A nu este o
condit ie necesara pentru existent a si unicitatea solut iei sistemului (2.2). De aceea,
algoritmul G trebuie modicat astfel ncat sa produca rezultatul dorit si atunci
cand unele submatrice lider principale sunt singulare, dar A este nesingulara.
2.3 Strategii de pivotare
Daca o submatrice lider principala A
[k]
este singulara, atunci, la pasul k al procedurii
de eliminare gaussiana, pivotul a
(k)
kk
este nul; deci, conform propozit iei 2.1c, nu exista
nici o matrice ITE M
k
care sa anuleze, prin premultiplicare, elementele subdiagonale
ale coloanei k din A
k
. Modicarea algoritmului G recomandata pentru a evita
aceasta dicultate consta ntr-o interschimbare de linii (sau/si coloane), care aduce
n pozit ia pivotului un element nenul. Un alt motiv pentru permutarea de linii si
coloane este asigurarea stabilitat ii numerice a procesului de calcul. O explicat ie
intuitiva este ca, atunci cand un proces matematic nu poate denit pentru o
anumita valoare critica a unui parametru (de exemplu A
[k]
singulara), exista
sanse mari ca procesul numeric corespunzator sa e instabil atunci cand parametrul
efectiv este n vecinatatea valorii critice.

In cazul nostru, trebuie evitat i pivot ii
mici (n modul), corespunzatori cazului n care submatricele lider principale sunt
aproape singulare; astfel se mbunatat este stabilitatea numerica a algoritmului.
2.3.1 Pivotare part iala
Vom modica algoritmul G dupa cum urmeaza. La pasul k al procedurii de trian-
gularizare a matricei A R
nn
(vezi demonstrat ia teoremei 2.1), se alege ca pivot
primul element maxim n modul din coloana k. Presupunand ca acest element
se gaseste n linia i
k
si este nenul, i.e. a
(k)
i
k
k
= 0, interschimbarea liniilor k si i
k
,
obt inuta matriceal prin nmult irea la stanga a lui A
k
cu PE P
ki
k
, va muta a
(k)
i
k
k
n
pozit ia (k, k), astfel ncat acest element devine noul pivot. Pentru a evita alterarea
structurii matricei obt inute pana la pasul k (superior triunghiulara n primele k 1
coloane), trebuie sa alegem i
k
k. Vezi gura 2.2.
2.3. STRATEGII DE PIVOTARE 77
A
k
=
_

_
u
11
. . . u
1k
. . . u
1n
0
.
.
. . . .
a
(k)
kk
. . . a
(k)
kn
0 . . .
a
(k)
i
k
k
. . . a
(k)
i
k
n
0 . . .
a
(k)
nk
. . . a
(k)
nn
_

_
P
ki
k
A
k
=
_

_
u
11
. . . u
1k
. . . u
1n
0
.
.
. . . .
a
(k)
i
k
k
. . . a
(k)
i
k
n
0 . . .
a
(k)
kk
. . . a
(k)
kn
0 . . .
a
(k)
nk
. . . a
(k)
nn
_

_
Fig. 2.2: Pasul k al eliminarii gaussiene cu interschimbare de linii; a
(k)
kk
este nul
sau prea aproape de zero; n P
ki
k
A
k
, noul pivot este a
(k)
i
k
k
si are o valoare buna
(sucient de mare, n modul)
Pentru simplitate, vom nota matricea P
i
k
k
cu P
k
. Pasul k al algoritmului G
devine
1. Se determina cel mai mic (primul) i
k
k astfel ncat |a
i
k
k
| = max
i=k:n
|a
ik
|.
2. Se interschimba liniile i
k
si k, adica A P
k
A.
3. Se determina matricea ITE M
k
astfel ncat (M
k
A)
ik
= 0, i = k + 1 : n.
4. Se aplica transformarea A M
k
A.
Astfel la pasul k are loc transformarea
A A
k+1
= M
k
P
k
A
k
, (2.13)
unde matricea T
k
= M
k
P
k
se numeste transformare elementar a stabilizat a.
Procesul global, cunoscut sub numele de eliminare gaussian a cu pivotare part ial a,
conduce n cele din urma la matricea superior triunghiulara
U
def
= A
n
= M
n1
P
n1
M
n2
P
n2
. . . M
1
P
1
A. (2.14)
Aceasta egalitate arma ca orice matrice A este echivalenta la stanga cu o ma-
trice superior triunghiulara, iar matricea de transformare poate un produs de
transformari elementare stabilizate.
Algoritmul corespunzator este prezentat n continuare.
Algoritmul 2.3 (GPP Eliminare gaussian a cu pivotare part ial a)
(Se da A R
nn
, nesingulara. Se calculeaza matricea superior triun-
ghiulara U, matricele ITE M
1
, . . . , M
n1
si PE P
1
, . . . , P
n1
astfel
ncat (2.14) sa e satisfacuta. Matricea U se memoreaza n triunghiul
superior al lui A, inclusiv diagonala, iar multiplicatorii gaussieni
ik
care denesc matricele M
k
se memoreaza n triunghiul inferior al lui
A.

Intregii i
k
care denesc PE P
k
, sunt memorat i ntr-un vector p de
dimensiune n 1, cu elementele p(k) = i
k
, pentru k = 1 : n 1.)
78 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
1. Pentru k = 1 : n 1
1. Se determina cel mai mic i
k
k : n astfel ncat
|a
i
k
k
| = max
i=k:n
|a
ik
|.
2. p(k) i
k
3. Pentru j = k : n % interschimba liniile k si i
k
1. a
kj
a
i
k
j
4. Pentru i = k + 1 : n
1. a
ik

ik
= a
ik
/a
kk
5. Pentru j = k + 1 : n
1. Pentru i = k + 1 : n
1. a
ij
a
ij

ik
a
kj
Comentarii. Operat iile suplimentare necesare n algoritmul GPP, fat a de algorit-
mul G, apar numai n cautarea pivotului si constau n comparat iile necesare gasirii
maximului din instruct iunea 1.1; numarul de comparat ii este
n1

k=1
(n k + 1) n
2
/2 2n
3
/3,
deci pivotarea part iala nu este costisitoare (relativ la numarul de operat ii aritme-
tice). Necesarul de memorie este M
GPP
= n
2
.
Un rezultat important referitor la algoritmul GPP este dat de
Teorema 2.2 Dac a A R
nn
este nesingular a, atunci algoritmul GPP se va
executa complet iar matricea superior triunghiular a U rezultat a n nal, vezi (2.14),
este nesingular a.
Demonstrat ie. Algoritmul GPP nu se executa complet daca, la un pas k, ele-
mentul pivot a
i
k
k
= 0.

Intr-un astfel de caz, deoarece pivotul este maximn modul
pe coloana (sub diagonala), toate elementele a
ik
, i = k : n, sunt nule, deci matricea
A
k
este singulara (vezi structura matricei A
k
, cu A
[k]
k
superior triunghiulara).
Matricele ITE si PE ind nesingulare, singularitatea matricei
A
k
= M
k1
P
k1
. . . M
1
P
1
A
implica A singulara; contradict ie. Deci, tot i pivot ii a
i
k
k
= 0 si algoritmul se exe-
cuta complet. Nesingularitatea matricei U rezulta din nesingularitatea tuturor ma-
tricelor din termenul drept din (2.14).
2.3.2 Pivotare completa
Proprietat i numerice superioare se pot obt ine daca, la pasul k al eliminarii gaussiene,
pivotul maxim n modul este cautat printre elementele a
(k)
ij
, i = k : n, j = k : n,
adica n ntregul colt dreapta jos al matricei A
k
. Primul element cu modul maxim
2.3. STRATEGII DE PIVOTARE 79
A
k
=
_

_
u
11
. . . u
1k
. . . u
1j
k
. . . u
1n
0
.
.
. . . . . . .
a
(k)
kk
. . . a
(k)
kj
k
. . . a
(k)
kn
0 . . .
a
(k)
i
k
k
. . . a
(k)
i
k
j
k
. . . a
(k)
i
k
n
0 . . .
a
(k)
nk
. . . a
(k)
nj
k
. . . a
(k)
nn
_

_
P
ki
k
A
k
Q
kj
k
=
_

_
u
11
. . . u
1j
k
. . . u
1k
. . . u
1n
0
.
.
. . . . . . .
a
(k)
i
k
j
k
. . . a
(k)
i
k
k
. . . a
(k)
i
k
n
0 . . .
a
(k)
kj
k
. . . a
(k)
kk
. . . a
(k)
kn
0 . . .
a
(k)
nj
k
. . . a
(k)
nk
. . . a
(k)
nn
_

_
Fig. 2.3: Pasul k al eliminarii gaussiene, cu interschimbari de linii si coloane
(e.g. n ordinea explorarii pe coloane), sa zicem a
i
k
j
k
, este mutat n pozit ia pivot
(k, k), prin intermediul a doua interschimbari, una de linii, cealalta de coloane,
exprimate matriceal prin nmult irea lui A
k
la stanga, respectiv la dreapta, cu PE
P
ki
k
, respectiv Q
kj
k
; vezi gura 2.3.
Notand P
ki
k
cu P
k
si Q
kj
k
cu Q
k
, pasul k al algoritmului G devine:
1. Se determina cei mai mici i
k
si j
k
astfel ncat |a
i
k
j
k
| = max
i=k:n,j=k:n
|a
ij
|.
2. Se interschimba liniile i
k
si k, adica A P
k
A.
3. Se interschimba coloanele j
k
si k, adica A AQ
k
.
4. Se determina matricea ITE M
k
astfel ncat (M
k
A)
ik
= 0, i = k + 1 : n.
5. Se aplica transformarea A M
k
A.
Astfel, la pasul k are loc transformarea
A A
k+1
= M
k
P
k
A
k
Q
k
, (2.15)
iar procesul global de calcul, cunoscut sub numele de eliminare gaussien a cu pivotare
complet a, conduce la matricea superior triunghiulara
A U
def
= M
n1
P
n1
. . . M
1
P
1
AQ
1
. . . Q
n1
. (2.16)
Algoritmul rezultat este prezentat n continuare.
Algoritmul 2.4 (GPC Eliminare gaussian a cu pivotare complet a)
(Se da A R
nn
, nesingulara. Se calculeaza matricea superior triun-
ghiulara U, matricele ITE M
1
, . . . , M
n1
si PE P
1
, Q
1
, . . . , P
n1
,
Q
n1
, astfel ncat (2.16) sa e satisfacuta. Matricea U se memoreaza
n triunghiul superior al lui A, inclusiv diagonala, iar multiplicatorii
gaussieni
ik
care denesc matricele M
k
se memoreaza n triunghiul in-
ferior al matricei A.

Intregii i
k
si j
k
, denind PE P
k
, respectiv Q
k
, sunt
memorat i n vectorii p, respectiv q, de dimensiune n 1, astfel ncat
p(k) = i
k
si q(k) = j
k
, pentru k = 1 : n 1.)
80 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
1. Pentru k = 1 : n 1
1. Se determina i
k
k : n si j
k
k : n astfel ncat
|a
i
k
j
k
| = max
i=k:n,j=k:n
|a
ij
|.
2. p(k) i
k
3. q(k) j
k
4. Pentru j = k : n % interschimba liniile k si i
k
1. a
kj
a
i
k
j
5. Pentru i = 1 : n % interschimba coloanele k si j
k
1. a
ik
a
ij
k
6. Pentru i = k + 1 : n
1. a
ik

ik
= a
ik
/a
kk
7. Pentru j = k + 1 : n
1. Pentru i = k + 1 : n
1. a
ij
a
ij

ik
a
kj
Comentarii. Operat iile suplimentare ce apar n algoritmul GPC, fat a de algorit-
mul G, sunt doar cele necesare cautarii pivotului, ca si la pivotarea part iala; acum
nsa, numarul de comparat ii este
n1

k=1
(n k + 1)
2
=
n

k=2
k
2
n
3
/3;
spre deosebire de pivotarea part iala, pivotarea completa introduce un numar de
comparat ii de acelasi ordin de marime cu numarul operat iilor aritmetice; aceasta
poate conduce la cresterea semnicativa a timpului de execut ie, de aceea pivotarea
completa trebuie folosita doar atunci cand se doreste o mare sigurant a n calculul
rezultatului. Vom prezenta ulterior argumentele care conduc la alegerea strategiei
de pivotare. Necesarul de memorie este si aici M
GPC
= n
2
.
Teorema urmatoare corespunde teoremei 2.2, demonstrat ia ind asemanatoare.
Teorema 2.3 Dac a A R
nn
este nesingular a, atunci algoritmul GPC se execut a
complet, iar matricea superior triunghiular a rezultat a U din (2.16) este nesingular a.
Observat ia 2.1 Algoritmii GPP si GPC pot modicat i cu usurint a pentru a
putea triangulariza si matrice singulare.

In GPP, dupa pasul 1.1, trebuie adaugata urmatoarea condit ie: daca a
i
k
k
= 0,
adica a
ik
= 0, i = k : n, atunci pentru acest k, instruct iunile 1.2 1.5 nu trebuie
executate.

In acest caz matricea U = A
n
poate avea elemente diagonale nule

In GPC, daca a
i
k
j
k
= 0, adica a
ij
= 0, i = k : n, j = k : n, atunci algoritmul
se termina la pasul k, deoarece matricea U = A
k
este deja superior triunghiulara,
mai precis superior trapezoidala, iar rangA = k 1. Desigur, datorita erorilor de
rotunjire inerente, gasirea unui pivot nul este un eveniment destul de rar. Deoarece
este dicil de stabilit, n general, o tolerant a de trunchiere astfel ncat |a
i
k
j
k
| <
sa e considerat pivot nul, algoritmul GPC nu se foloseste pentru determinarea
rangului unei matrice; proceduri mai sigure sunt oferite de algoritmii de factorizare
QR cu pivotarea coloanelor si DVS, vezi capitolele 3 si 5.
2.4. FACTORIZ

ARI LU 81
2.4 Factorizari LU

In multe situat ii, este convenabil a exprima o matrice dat a ca produs a doua matrice
triunghiulare. Aceasta forma poate utilizata pentru a simplica anumite calcule
implicand matricea respectiva.
Denit ia 2.3 Fie A R
nn
. Dac a exist a o matrice inferior triunghiular a
L R
nn
si o matrice superior triunghiular a U R
nn
astfel nc at
A = LU (2.17)
atunci se spune c a A admite o factorizare (sau descompunere) LU. L si U se numesc
factori triunghiulari ai matricei A.

In general, orice exprimare a matricei A ca produs de dou a matrice triunghiulare


(cu eventuale permut ari) se numeste factorizare triunghiular a.
Daca A R
nn
este o matrice care are o factorizare LU, iar D este o matrice
diagonala nesingulara, atunci, D
1
ind de asemenea diagonala, (2.17) poate
scrisa n forma
A = LU = LDD
1
U = L

, (2.18)
unde L

= LD este inferior triunghiulara si U

= D
1
U este superior triunghiulara.
Daca D = 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 denit ia urmatoare.
Denit ia 2.4 Fie A R
nn
. Dac a exist a matricele L R
nn
inferior triunghiu-
lar a unitate, U R
nn
superior triunghiular a unitate si D R
nn
diagonal a astfel
nc at
A = LDU,
atunci expresia de mai sus este numit a factorizare LDU a matricei A.
Aratamn continuare n ce condit ii o factorizare LDU exista si este unica.
Teorema 2.4 O matrice A R
nn
are o unic a factorizare LDU dac a si numai
dac a submatricele lider principale A
[k]
, k = 1 : n 1, sunt nesingulare.
Demonstrat ie. Demonstram aici doar existent a factorizarii LDU, pentru unicitate
vezi problema 2.5.

In condit iile enunt ate, din teorema 2.1, care constituie baza eliminarii gaussiene,
rezulta ca exista M inferior triunghiulara unitate (deci inversabila) astfel ncat
MA = U, cu U superior triunghiulara. Cu notat ia L = M
1
, matrice inferior
triunghiulara unitate, avem A = LU. Notand acum
D = diag(u
11
, u
22
, . . . , u
nn
),
U

= D
1
U,
atunci A = LDU

, cu L, D, U

satisfacand condit iile descompunerii LDU.


82 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
Reciproc, se poate demonstra prin reducere la absurd vezi problema 2.6
ca daca factorizarea LDU este unica, atunci submatricele A
[k]
, k = 1 : n 1, sunt
nesingulare.
Factorizarile LU utilizate n practica numerica curenta asociaza matricea dia-
gonala D din cu una dintre matricele U, L ale factorizarii LDU. Astfel se obt in,
respectiv:
factorizarea Doolittle A = LU, cu L inferior triunghiulara unitate si U superior
triunghiulara,
factorizarea Crout A = LU, cu L inferior triunghiulara si U superior triun-
ghiulara unitate.
Din teorema 2.4 rezulta ca ambele factorizari, Doolittle si Crout, exista si sunt
unice daca si numai daca submatricele lider principale A
[k]
, k = 1 : n 1, sunt
nesingulare. Vom pastra n continuare aceasta ipoteza, specicand cazurile n care
ea nu este necesara.
2.4.1 Factorizari LU rezultate din eliminarea gaussiana
Factorizarea Doolittle este calculata chiar de algoritmul G de triangularizare gaus-
siana ! Este una din surprizele placute ale calculului numeric.
Teorema 2.5 Algoritmul G, aplicat matricei A R
nn
, cu det A
[k]
= 0,
k = 1 : n 1, calculeaz a factorizarea Doolittle A = LU, cu L inferior triunghiular a
unitate si U superior triunghiular a. Factorii L (mai put in elementele diagonale) si
U sunt memorat i peste A.
Demonstrat ie. Algoritmul G produce matricele ITE M
k
, k = 1 : n 1, astfel
ncat din (2.10) rezulta A = LU, cu L = (M
n1
. . . M
2
M
1
)
1
si U memorata peste
A. Asadar
L = M
1
1
M
1
2
. . . M
1
n1
.
Dar (vezi propozit ia 2.1), M
1
k
= I
n
+m
k
e
T
k
, deci
L = (I
n
+m
1
e
T
1
)(I
n
+m
2
e
T
2
) . . . (I
n
+m
n1
e
T
n1
) = I
n
+
n1

k=1
m
k
e
T
k
+S,
unde S este o suma de matrice de forma
T = . . . m
p
e
T
p
m
q
e
T
q
. . .
cu p < q. Deoarece e
T
p
m
q
= 0, pentru orice p < q, obt inem T = 0 si S = 0. Astfel,
L = I
n
+
n1

k=1
m
k
e
T
k
=
_

_
1 0 . . . 0 0

21
1 . . . 0 0

31

32
. . . 0 0
. . .
.
.
. . . .

n1,1

n1,2
. . . 1 0

n1

n2
. . .
n,n1
1
_

_
,
2.4. FACTORIZ

ARI LU 83
deci matricea L este formata chiar din multiplicatorii gaussieni memorat i n A, n
algoritmul G.
Vom studia acum legatura ntre algoritmul GPP de eliminare gaussiana cu pi-
votare part iala si factorizarile LU.
Teorema 2.6 Triangularizarea (2.14) (M
n1
P
n1
. . . M
1
P
1
A = U) a matricei
A R
nn
, obt inut a prin algoritmul GPP, este echivalent a cu factorizarea Doolittle
a matricei A cu liniile permutate, adic a
PA = LU, (2.19)
unde P = P
n1
. . . P
1
.

In partea subdiagonal a, coloana k 1 : n 1 a matri-
cei L este o permutare a vectorului Gauss corespunz ator m
k
; mai precis, dac a
h
k
= P
n1
. . . P
k+1
m
k
, atunci L(k + 1 : n, k) = h
k
(k + 1 : n).
Demonstrat ie. Se poate verica usor echivalent a dintre (2.14) si

M
n1
. . .

M
1
PA = U, (2.20)
unde

M
n1
= M
n1
si, pentru k < n 1,

M
k
= P
n1
. . . P
k+1
M
k
P
k+1
. . . P
n1
=
= I P
n1
. . . P
k+1
m
k
e
T
k
P
k+1
. . . P
n1
=
= I P
n1
. . . P
k+1
m
k
e
T
k
= I h
k
e
T
k
.

In relat iile de mai sus am t inut seama ca M


k
= I m
k
e
T
k
si P
1
s
= P
s
; n plus,
e
T
k
P
s
= e
T
k
, pentru s > k, deoarece P
s
este o PE de indici s si t s. Deci

M
k
este o
matrice ITE denita de vectorul Gauss h
k
. Deoarece (2.20) si (2.10) sunt analoage,
rezulta, ca n teorema 2.5, ca matricea L =

M
1
1
. . .

M
1
n1
este inferior triunghiulara
unitate cu coloanele egale n partea subdiagonala cu vectorii h
k
, k 1 : n1. Prin
urmare relat ia (2.19) este satisfacuta.
Expresia vectorului h
k
arata cum trebuie modicat algoritmul GPP pentru a
produce factorizarea LU cu pivotare (2.19); se observa ca asupra ecarui vector
Gauss m
k
trebuie aplicate toate permutarile ulterioare P
s
, cu s > k. Pentru a
implementa aceasta, modicam instruct iunea 1.3 a GPP din Pentru j = k : n
n Pentru j = 1 : n, adica, ceea ce e echivalent cu armat ia anterioara, ecare
permutare P
k
se aplica si tuturor vectorilor Gauss anteriori m
j
, cu j 1 : k 1.
Dupa execut ia algoritmului GPP astfel modicat, matricele triunghiulare L si U
din (2.19) se vor aa n A.
Cazul eliminarii gaussiane cu pivotare completa este acum clar si vom lasa de-
taliile ca exercit iu pentru cititor (problema 2.8). Modicand algoritmul GPC n
acelasi mod ca pe GPP, se va obt ine pe loc n matricea A o factorizare LU a unei
matrice obt inute din A prin permutari de linii si coloane:
PAQ = LU, (2.21)
unde P, L si U au aceeasi semnicat ie (dar nu aceleasi elemente) ca n teorema
2.6, iar Q = Q
1
. . . Q
n1
este construita din matricele de permutare elementara din
relat ia (2.16).
84 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
a
kk
. . . a
kj
. . .
.
.
.
a
ik
.
.
.
=
l
kk
.
.
.
l
ik
.
.
.
i
1
1
1
0
0

elemente calculate

elemente calculate
. . . u
kj
. . .
k
Fig. 2.4: Stadiu intermediar al factorizarii Crout.
2.4.2 Factorizari LU compacte
Factorizarea Crout poate calculata luandn relat ia (2.18) expresia LU ca ind fac-
torizarea Doolittle si D = diag(u
11
, u
12
, . . . , u
nn
). Atunci, L

este descompunerea
Crout a matricei A.
Totusi, exista si alte posibilitat i de a organiza calculele, care de obicei se numesc
scheme de factorizare compact a. Vom deduce o astfel de factorizare Crout pe baza
ideii de a utiliza direct identitatea A = LU, calculand succesiv cate o coloana din
L si cate o linie din U. Procedura poate init ializata considerand prima coloana a
identitat ii A = LU, i.e.
Ae
1
= LUe
1
= Le
1
,
de unde
l
i1
= a
i1
, i = 1 : n, (2.22)
respectiv prima linie a aceleiasi identitat i,
e
T
1
A = e
T
1
LU = l
11
e
T
1
U,
adica
a
1j
= l
11
u
1j
, j = 2 : n.
Deoarece l
11
= a
11
= A
[1]
= 0, din relat ia anterioara rezulta
u
1j
= a
1j
/ l
11
, j = 2 : n. (2.23)
Presupunem acum ca primele k 1 coloane din L si primele k 1 linii din U
sunt cunoscute (calculate); vezi gura 2.4. Din identitatea A = LU obt inem
a
ik
=
k1

s=1
l
is
u
sk
+l
ik
, i = k : n,
n care singura necunoscuta este scalarul l
ik
. Deci,
l
ik
= a
ik

k1

s=1
l
is
u
sk
, i = k : n. (2.24)
2.4. FACTORIZ

ARI LU 85
De asemenea,
a
kj
=
k1

s=1
l
ks
u
sj
+l
kk
u
kj
, j = k + 1 : n,
n care acum singura necunoscuta este scalarul u
kj
. Din propozit ia 2.3 rezulta
A
[k]
= L
[k]
U
[k]
, unde A
[k]
, deci si L
[k]
sunt nesingulare, adica l
kk
= 0. Asadar,
u
kj
=
_
a
kj

k1

s=1
l
ks
u
sj
_
/ l
kk
, j = k + 1 : n. (2.25)
Astfel, procedura init iata prin (2.22) si (2.23) poate continuata prin (2.24) si
(2.25); daca submatricele A
[k]
, k = 1 : n 1, sunt nesingulare, ceea ce garanteaza
ca mpart irea din (2.25) poate 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.
Algoritmul 2.5 (CROUT Factorizare Crout) (Se da A R
nn
,
cu submatricele lider principale A
[k]
, k = 1 : n 1, nesingulare. Se
calculeaza factorizarea Crout A = LU, cu L inferior triunghiulara si U
superior triunghiulara unitate. Matricele L si U sunt memorate peste
elementele corespunzatoare din A, mai put in elementele diagonale ale
lui U, egale cu 1.)
1. Pentru k = 1 : n
1. Pentru i = k : n
1. a
ik
l
ik
= a
ik

k1
s=1
l
is
u
sk
2. Pentru j = k + 1 : n
1. a
kj
u
kj
=
_
a
kj

k1
s=1
l
ks
u
sj
_
/ l
kk
Comentarii. Numarul de operat ii n virgula mobila este N
CROUT
2n
3
/3 la fel
ca n algoritmii G, GPP sau GPC, iar memoria ocupata este M
CROUT
n
2
.
Ca si algoritmul G de eliminare gaussiana, algoritmul CROUT esueaza pe
parcurs daca se obt ine un l
kk
= 0 (ceea ce este echivalent cu A
[k]
singulara); mai
mult, valori apropiate de zero ale unui l
kk
conduc la valori absolute foarte mari ale
elementelor matricei U calculate n instruct iunea 1.2.1 precum si la erori numerice
inadmisibile n rezultat.
Pentru a preveni aceasta situat ie se introduce pivotarea part iala (pe linii). Spre
deosebire de algoritmul G unde, la pasul k, permutarea liniilor se efectua naintea
celorlaltor operat ii, aici permutarea poate avea loc doar dupa calcularea elementelor
l
ik
, cu i k : n, pentru a putea aduce cea mai convenabila valoare n pozit ia (k, k).
(Sa observam ca pivotarea completa este acum imposibila, deoarece ar implica an-
ticiparea calculelor pentru toata matricea.) Aceasta revine la nmult irea la stanga
a matricei A cu o PE P
ki
k
, cu i
k
k, la ecare pas k si, global, la o factorizare
PA = LU, cu P = P
n1
. . . P
1
. Algoritmul corespunzator este urmatorul.
Algoritmul 2.6 (CROUTP Factorizare Crout cu pivotare par-
t ial a) (Se da A R
nn
nesingulara. Se calculeaza factorizarea Crout
86 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
PA = LU, cu L inferior triunghiulara, U superior triunghiulara uni-
tate si P = P
n1
. . . P
1
matrice de permutare. Matricele L si U sunt
memorate peste elementele corespunzatoare din A, mai put in elementele
diagonale ale lui U, egale cu 1.

Intregii i
k
denind PE P
k
sunt memorat i
ntr-un vector p astfel ncat p(k) = i
k
, k = 1 : n 1.)
1. Pentru k = 1 : n
1. Pentru i = k : n
1. a
ik
l
ik
= a
ik

k1
s=1
l
is
u
sk
2. Se determina i
k
k : n astfel ncat |l
i
k
k
| = max
i=k:n
|l
ik
|
3. Pentru j = 1 : n {interschimba liniile k si i
k
}
1. a
kj
a
i
k
j
4. Pentru j = k + 1 : n
1. a
kj
u
kj
=
_
a
kj

k1
s=1
l
ks
u
sj
_
/ l
kk
Comentarii. Desigur, numarul comparat iilor efectuate n instruct iunea 1.2 este
de ordinul O(n
2
), adica neglijabil fat a de cel al operat iilor aritmetice.
2.4.3 Factorizari LU prin eliminare gaussiana la nivel de bloc
Vom elabora n continuare un algoritm pentru calculul factorizarii Doolittle a unei
matrice A R
nn
, folosind cat mai mult operat ii din setul BLAS nivel 3, anume
GEMM si TRSM. Abordarea problemei se face n mod natural prin partit ionarea ma-
tricelor n blocuri. Vom prezenta ntai varianta fara pivotare, deci presupunem ca
submatricele A
[k]
sunt nesingulare, pentru k 1 : n 1.
Partit ionam matricea A astfel
A =
_
A
11
A
12
A
21
A
22
_
} r
} n r
..
r
..
nr
, (2.26)
alegerea lui r urmand a precizata ulterior.

In ideea calculului la nivel de bloc al factorizarii LU, sancepem prin a determina


L
11
, L
21
, U
11
, U
12
, astfel ncat sa e satisfacuta egalitatea:
_
A
11
A
12
A
21
A
22
_
=
_
L
11
0
L
21
I
nr
_

_
I
r
0
0 B
_

_
U
11
U
12
0 I
nr
_
. (2.27)
Din aceasta egalitate, privita pe rand pentru cele patru blocuri componente, se pot
deduce usor blocurile dorite din L si U:
1. A
11
= L
11
U
11
, deci L
11
si U
11
provin din factorizarea LU la nivel de element
a matricei A
11
.
2. A
21
= L
21
U
11
L
21
= A
21
U
1
11
. Deci, U
11
ind cunoscut de la pasul
anterior, L
21
poate calculat prin rezolvarea unui sistem superior triunghiular
cu parte dreapta multipla.
2.4. FACTORIZ

ARI LU 87
3. A
12
= L
11
U
12
U
12
= L
1
11
A
12
. Deci, U
12
este solut ia unui sistem inferior
triunghiular cu parte dreapta multipla.
4. A
22
= L
21
U
12
+ B B = A
22
L
21
U
12
; 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 = L
22
U
22
. (2.28)

In acest caz, egalitatea (2.27) devine o factorizare LU a matricei A, cu


L =
_
L
11
0
L
21
L
22
_
; U =
_
U
11
U
12
0 U
22
_
. (2.29)
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 ind terminata.
Algoritmul de factorizare LU va consta deci dintr-o bucla cont inand pasii 1-4.

In
gura 2.5 sunt reprezentate blocurile de interes pe parcursul unei iterat ii.
Algoritmul 2.7 (Gbl Eliminare gaussian a la nivel de bloc) (Se
dau A R
nn
, cu A
[k]
, k = 1 : n 1, nesingulare, si r N astfel ncat
n = mr. Se calculeaza factorizarea Doolittle A = LU, prin operat ii la
nivel de bloc.)
1. Pentru k = 1 : m
1. s (k 1)r + 1
2. f kr
3. Se calculeaza factorizarea LU
A(s : f, s : f) = L(s : f, s : f) U(s : f, s : f)
4. Se rezolva sistemul superior triunghiular
Z U(s : f, s : f) = A(f + 1 : n, s : f)
5. L(f + 1 : n, s : f) Z
6. Se rezolva sistemul inferior triunghiular
L(s : f, s : f) Z = A(s : f, f + 1 : n)
7. U(s : f, f + 1 : n) Z
8. A(f + 1 : n, f + 1 : n) A(f + 1 : n, f + 1 : n)
L(f + 1 : n, s : f)U(s : f, f + 1 : n)
Comentarii. Se observa ca doar n instruct iunea 1.3, factorizarea LU a blocului
A(s : f, s : f), de dimensiune r r, trebuie explicitata cu operat ii la nivel de
element; n rest, n instruct iunile 1.4 si 1.6 se foloseste TRSM, iar n 1.8 GEMM. Din
totalul de 2n
3
/3 opi ai algoritmului 2.7 (la fel ca pentru algoritmul G), doar
2mr
3
/3 = 2nr
2
/3 apar n factorizarile LU mici din instruct iunea 1.3.

In acest
caz, ponderea operat iilor de nivel 3 este
P3
LU
(n, r) =
2n
3
/3 2nr
2
/3
2n
3
/3
= 1
r
2
n
2
. (2.30)
88 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
s
f
n
s
f
n
L
U
`
`
`
`` -

deja factorizat

`
curent
curent

de factorizat
Fig. 2.5: Structura blocurilor ntr-un pas al factorizarii Doolittle la nivel de bloc
Cum, n general, se alege r n (si deci, cu atat mai mult, r
2
n
2
), ponderea
operat iilor de nivel 3 este apropiata de 1, deci putem estima o buna comportare
a algoritmului pe un calculator cu memorie ierarhica. Totusi, alegerea dimensiunii
blocurilor r se face n urma unui compromis: pe de o parte, din (2.30) e de dorit
ca r sa e cat mai mic, pe de alta, pentru ca rutinele din BLAS-3 sa e eciente
trebuie ca r sa e sucient de mare; valoarea ideala se determina e din estimari
teoretice, e, mai ales, prin ncercari experimentale.
Introducerea pivotarii se face relativ simplu, t inandu-se seama ca n (2.27) apare
n plus o matrice de permutare P
1
:
P
1

_
A
11
A
12
A
21
A
22
_
=
_
L
11
0
L
21
I
nr
_

_
I
r
0
0 B
_

_
U
11
U
12
0 I
nr
_
. (2.31)
Reducerea calculului factorizarii LU a matricei A la un calcul analog pentru
matricea de dimensiuni mai mici B se face n felul urmator:
1. Se calculeaza, de exemplu prin eliminare gaussiana, factorizarea LU (rezultata
din (2.31), pentru cele doua blocuri din stanga):
P
1

_
A
11
A
21
_
=
_
L
11
L
21
_
U
11
. (2.32)
(Se aplica algoritmul GPP, chiar daca matricea n cauza este nr; cautarea
pivotului se face pe toata port iunea subdiagonala a unei coloane. Vezi pro-
blema 2.9.)
2. Se aplica permutarea restului matricei A (cele doua blocuri din dreapta),
obt inandu-se
_

A
12

A
22
_
= P
1

_
A
12
A
22
_
.
2.4. FACTORIZ

ARI LU 89
3. Din

A
12
= L
11
U
12
se poate calcula U
12
= L
1
11

A
12
, prin rezolvarea unui sistem
inferior triunghiular cu parte dreapta multipla (se apeleaza TRSM).
4. Mai ramane B =

A
22
L
21
U
12
, termenii din dreapta ind tot i deja calculat i;
deci B se poate obt ine n urma unui apel la GEMM.
Lasam cititorului detalierea ideii algoritmice de mai sus, ca si calculul ponderii
operat iilor de nivel 3; desi acum vor mai multe operat ii la nivel de element fat a de
cazul factorizarii fara pivotare, totusi numarul lor ramane sucient de mic pentru
a putea aprecia algoritmul ca ecient.
2.4.4 Factorizari LU compacte la nivel de bloc
Vom prezenta n continuare o varianta la nivel de bloc a metodei Crout pentru
factorizarea LU; ne vom ocupa doar de cazul n care nu se efectueaza pivotare.
Rat ionamentul este absolut identic cu cel la nivel de element. La nivel de bloc,
egalitatea A = LU se poate scrie
_

_
A
11
A
12
. . . A
1m
A
21
A
22
. . . A
2m
.
.
.
.
.
.
.
.
.
.
.
.
A
m1
A
m2
. . . A
mm
_

_
=
_

_
L
11
0 . . . 0
L
21
L
22
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
L
m1
L
m2
. . . L
mm
_

_
U
11
U
12
. . . U
1m
0 U
22
. . . U
2m
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . U
mm
_

_
,
(2.33)
ceea ce, pentru blocul cu indici i, j, revine la A
ij
=

min(i,j)
t=1
L
it
U
tj
.
Detaliind aceasta relat ie, distingem urmatoarele cazuri:
i = j = k A
kk
=
k

t=1
L
kt
U
tk
L
kk
U
kk
=
_
A
kk

k1

t=1
L
kt
U
tk
_
. (2.34)
i > j = k A
ik
=
k

t=1
L
it
U
tk
L
ik
=
_
A
ik

k1

t=1
L
it
U
tk
_
U
1
kk
; (2.35)
k = i < j A
kj
=
k

t=1
L
kt
U
tj
U
kj
= L
1
kk
_
A
kj

k1

t=1
L
kt
U
tj
_
. (2.36)
Ordinea n care se aplica formulele de mai sus este aceeasi ca n algoritmul la
nivel de element: se calculeaza ntai prima bloc coloan a din L si prima bloc linie din
U; diferent a este ca acum trebuie calculate doua blocuri diagonale, L
11
si U
11
(n
algoritmul la nivel de element, u
11
= 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 L
kk
si U
kk
factorizand LU termenul drept din (2.34)
2. Pentru i = k + 1 : m
1. Se calculeaza L
ik
ca n (2.35)
3. Pentru j = k + 1 : m
1. Se calculeaza U
kj
ca n (2.36)
90 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
Pentru a detalia algoritmul si a-l scrie n mod cat mai ecient prin apeluri la
rutine BLAS-3, sa observam ca sumele din relat iile (2.342.36) se pot scrie compact;
exemplicam doar pentru una dintre sume, cea din (2.35), notand s = (k 1)r +1,
f = kr, s
i
= (i 1)r + 1, f
i
= ir:
k1

t=1
L
it
U
tk
L(s
i
: f
i
, 1 : s 1) U(1 : s 1, s : f).
Mai mult, putem scrie compact toate relat iile de tip (2.35), pentru un k xat, dar
cu i = k + 1 : m. Mai exact, bucla 1.2 din schema de mai sus se transforma ntr-o
singura atribuire (protand de faptul ca U
1
kk
nu depinde de i), anume:
L(f +1 : n, s : f) [A(f +1 : n, s : f) L(f +1 : n, 1 : s1) U(1 : s1, s : f)]
U(s : f, s : f)
1

In ne, combinand forma de mai sus cu termenul drept din (2.34), obt inem instruc-
t iunea 1.3 din algoritmul detaliat n continuare (calculele se pot efectua pe loc n
matricea A, dar, pentru claritate, nu procedam astfel).
Algoritmul 2.8 (CROUTbl Factorizare Crout la nivel de bloc)
(Se dau A R
nn
si r N astfel ncat n = mr. Se calculeaza factori-
zarea A = LU, utilizand operat ii la nivel de bloc.)
1. Pentru k = 1 : m
1. s (k 1)r + 1
2. f kr
3. A(s : n, s : f) A(s : n, s : f) L(s : n, 1 : s1)U(1 : s1, s : f)
4. Se calculeaza factorizarea LU Crout
A(s : f, s : f) = L(s : f, s : f) U(s : f, s : f)
5. Se rezolva sistemul superior triunghiular
Z U(s : f, s : f) = A(f + 1 : n, s : f)
6. L(f + 1 : n, s : f) Z (o bloc coloana din L)
7. A(s : f, f + 1 : n) A(s : f, f + 1 : n)
L(s : f, 1 : s 1) U(1 : s 1, f + 1 : n)
8. Se rezolva sistemul inferior triunghiular
L(s : f, s : f) Z = A(s : f, f + 1 : n)
9. U(s : f, f + 1 : n) Z (o bloc linie din U)
Comentarii. Desigur, nmult irile matriceale din instruct iunile 1.3 si 1.7 se vor
executa prin apeluri la GEMM, iar rezolvarile de sisteme triunghiulare din 1.5 si 1.8,
prin apeluri la TRSM. Ponderea operat iilor de nivel 3 este aceeasi ca pentru algoritmul
2.7, diferent a ind ca aici se executa mai multe apeluri la GEMM, ceea ce ar putea
mari timpul de execut ie, dar probabil numai ntr-o masura nesemnicativa.
Algoritmul de mai sus poate calcula si o factorizare LU Doolittle daca n in-
struct iunea 1.4 se utilizeaza algoritmul Gn loc de CROUT.
2.5. REZOLVAREA SISTEMELOR LINIARE 91
2.5 Rezolvarea sistemelor liniare
Teoremele 2.2 si 2.3 arata ca algoritmii GPP si GPC constituie un bun instrument
pentru rezolvarea sistemului liniar nesingular Ax = b.
Sa consideramurmatoarea sintaxa neformala pentru utilizarea algoritmilor GPP
si respectiv GPC:
[M, U, p] = GPP(A)
[M, U, p, q] = GPC(A)
unde M denota multiplicatorii gaussieni
ik
, k = 1 : n 1, i = k + 1 : n, U
este matricea superior triunghiulara produsa de algoritm, iar p si q sunt vectori de
ntregi denind permutarile de linii si, respectiv, coloane. Desi matricele M si U se
memoreaza peste A (asa cum am si procedat n GPP si GPC), vom utiliza sintaxa
de mai sus pentru claritate.
Rezolvarea sistemelor utilizand GPP. Consideram sistemul liniar Ax = b,
cu A nesingulara si utilizam GPP pentru triangularizarea matricei A conform
relat iei (2.14). Doarece toate matricele M
k
si P
k
sunt nesingulare, sistemul Ax = b
este echivalent (are aceeasi solut ie) cu sistemul
M
n1
P
n1
. . . M
1
P
1
Ax = M
n1
P
n1
. . . M
1
P
1
b. (2.37)

In consecint a, (2.37) se scrie n forma


Ux = d,
unde matricea superior triunghiulara U se aa n A, iar vectorul
d = M
n1
P
n1
. . . M
1
P
1
b, (2.38)
se poate calcula pe loc n b, utilizand urmatoarea schema de calcul:
b 1. Pentru k = 1 : n 1
1. b P
k
b
2. b M
k
b

In denitiv, solut ia x a sistemului Ax = b se obt ine rezolvand (pe loc n b) sis-


temul superior triunghiular Ux = b. Evident, n acest scop se utilizeaza algoritmul
UTRIS, cu sintaxa
x = UTRIS(U, b).
Pentru detalierea schemei facem apel la propozit iile 2.1 si 2.2. Se obt ine algo-
ritmul de mai jos.
Algoritmul 2.9 (S GPP Calculul solut iei unui sistem liniar uti-
liz and GPP) (Se dau A R
nn
nesingulara si b R
n
. Se calculeaza
solut ia x R
n
a sistemului liniar Ax = b, utilizand procedura de elimi-
nare gaussiana cu pivotare part iala.)
92 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
1. [M, U, p] = GPP(A)
2. Pentru k = 1 : n 1
1. b
k
b
p(k)
2. Pentru i = k + 1 : n
1. b
i
b
i

ik
b
k
3. x = UTRIS(U, b)
Comentarii. Numarul de operat ii este:
N
S GPP
= N
GPP
+
n1

k=1
2(n k) +N
UTRIS

2n
3
3
+n
2
+n
2

2n
3
3
N
GPP
,
si deci principalul efort consta n triangularizarea matricei A. Evident, memoria
necesara este M
S GPP
n
2
.
Rezolvarea sistemelor utilizand GPC. Alternativ, dar mai costisitor, putem
utiliza GPC, vezi (2.16); n acest caz, sistemul Ax = b este echivalent cu
M
n1
P
n1
. . . M
1
P
1
AQ
1
. . . Q
n1
Q
n1
. . . Q
1
x = M
n1
P
n1
. . . M
1
P
1
b. (2.39)
Notand
Q
n1
. . . Q
1
x = y, (2.40)
din (2.16) rezulta ca vectorul y poate calculat prin rezolvarea sistemului superior
triunghiular
Uy = d, (2.41)
unde d este vectorul dat de (2.38).

In nal, din (2.40), si stiind ca Q
1
k
= Q
k
,
obt inem
x = Q
1
Q
2
. . . Q
n1
y. (2.42)
Din relat iile (2.38)(2.42), rezulta algoritmul urmator.
Algoritmul 2.10 (S GPC Calculul solut iei unui sistem liniar
utiliz and GPC) (Se dau A R
nn
nesingulara si b R
n
. Se cal-
culeaza solut ia x R
n
a sistemului liniar Ax = b, utilizand procedura
de eliminare gaussiana cu pivotare completa.)
1. [M, U, p, q] = GPC(A)
2. Pentru k = 1 : n 1
1. b
k
b
p(k)
2. Pentru i = k + 1 : n
1. b
i
b
i

ik
b
k
3. x = UTRIS(U, b)
4. Pentru k = n 1 : 1 : 1
1. x
k
x
q(k)
Comentarii. Complexitatea acestui algoritm este asimptotic aceeasi cu cea a
algoritmului GPC.
2.6. CALCULUL INVERSEI SI AL DETERMINANTULUI 93
Observat ia 2.2 Eliminarea gaussiana, prezentata aici ntr-un mod sistematic,
este binecunoscuta metoda de calcul manual prin reducere si substitut ie. Pivotarea
pe linii corespunde unei reordonari a ecuat iilor n (2.1), iar pivotarea pe coloane
corespunde unei reordonari a componentelor necunoscutei x. Subliniem ca aceasta
metoda este cea mai ecienta procedura de rezolvare a sistemelor de ecuat ii liniare
nesingulare de forma generala. Stabilitatea numerica a acestor algoritmi va dis-
cutata ulterior.
Este clar ca sistemul Ax = b se poate rezolva si recurgand explicit la factorizarea
LU a matricei A. Presupunand, pentru simplitate, ca nu a fost utilizata pivotarea,
factorizarea este A = LU. Avem LUx = b, sau Ly = b, unde am notat Ux = y.
Prin urmare, solut ia sistemului poate gasita dupa urmatoarea schema:
Ax = b 1. A = LU (calculeaza factorizarea LU)
2. Se rezolva sistemul inferior triunghiular Ly = b
3. Se rezolva sistemul superior triunghiular Ux = y
Efortul de calcul este acelasi ca n eliminarea gaussian a si partea sa cea mai
importanta se consuma n procesul de factorizare.
Daca sistemul liniar are parte dreapta multipla, adica este de forma AX = B
cu B R
np
, p > 1, atunci X va rezulta de aceeasi dimensiune; sistemul AX = B
poate redus la p sisteme cu parte dreapta simpla, Ax
j
= b
j
, j = 1 : p, unde
vectorii b
j
si x
j
sunt coloanele j din B, respectiv X. Utilizarea naiva de p ori a
algoritmului S GPP ar conduce la un efort de calcul de pn
3
/3 opi, inacceptabil
de mare. Dar, deoarece A este aceeasi pentru toate cele p sisteme, factorizarea LU
sau, n general, triangularizarea matricei A, se efectueaza o singura data, ramanand
apoi de rezolvat doar sisteme triunghiulare. Ideea algoritmului, n cazul factorizarii
LU, este urmatoarea:
AX = B 1. A = LU (calculeaza factorizarea LU)
2. Pentru j = 1 : p
1. Se rezolva sistemul inferior triunghiular Ly = b
j
2. Se rezolva sistemul superior triunghiular Ux
j
= y
Numarul de operat ii va de numai aproximativ 2n
3
/3 + 2pn
2
opi, ment inandu-
se complexitatea O(n
3
). Desigur, n practica este recomandat a se folosi pivotarea,
efectuand o factorizare LU de forma PA = LU sau apeland algoritmul GPP.
Modicarea corespunzatoare a schemelor de calcul prezentate mai sus este propusa
cititorului (vezi problema 2.15).
2.6 Calculul inversei si al determinantului
unei matrice
Grupam n aceasta sect iune doua probleme care au n comun metoda de rezolvare
utilizata eliminarea gaussiana, precum si recomandarea de a calcula inversa sau
determinantul unei matrice doar atunci cand acestea se doresc explicit. Repetam
94 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
A

M
U
A
M
U
1
Fig. 2.6: Memorarea datelor n inversarea matriceala
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.
2.6.1 Calculul inversei unei matrice
Daca A R
nn
este nesingulara, atunci procedura de eliminare gaussiana cu pi-
votare part iala se termina cu succes si produce o matrice superior triunghiulara
nesingulara U astfel ncat
M
n1
P
n1
. . . M
1
P
1
A = U, (2.43)
unde M
k
sunt matrice ITE si P
k
sunt matrice elementare de permutare. Din (2.43)
rezulta
X A
1
= U
1
M
n1
P
n1
. . . M
1
P
1
,
deci inversa matricei A poate calculata astfel
A
1
1. [M, U, p] = GPP(A)
2. X = UINV(U)
3. Pentru k = n 1 : 1 : 1
1. X XM
k
2. X XP
k
Ne amintim ca n algoritmul GPP, matricea U si multiplicatorii gaussieni
ik
,
k = 1 : n1, i = k +1 : n, notat i global cu M n schema de mai sus, se memoreaza
peste matricea A ca n partea stanga a gurii 2.6.

In algoritmul UINV, am vazut
ca U
1
se poate memora peste U, astfel ca, dupa instruct iunea 2 a schemei de mai
sus, datele sunt memorate ca n partea dreapta a gurii 2.6.
Pornind de la schema precedenta, vom prezenta un algoritm care calculeaza
inversa matricei A, folosind minimum de memorie. Pentru aceasta, observam c a
primele doua instruct iuni necesit a memorie adit ionala doar pentru vectorul p
R
n1
, n care se memoreaza permutarile de linii din GPP. Analizam acum bucla
Pentru din instruct iunea 3. Prima atribuire, X XM
k
, poate detaliata utilizand
o partit ionare pe linii a lui X:
x
T
i
M
k
= x
T
i
(I
n
m
k
e
T
k
) = x
T
i
(x
T
i
m
k
)e
T
k
(2.44)
= [x
i1
x
i2
. . . x
i,k1
x
ik
x
T
i
m
k
x
i,k+1
. . . x
in
], i = 1 : n.
Se poate observa ca sunt modicate numai elementele de pe coloana k a lui X.
2.6. CALCULUL INVERSEI SI AL DETERMINANTULUI 95
u
(1)
1k
.
.
.
u
(1)
kk

k+1,k
.
.
.

nk

. . .

. . .

. . .

. . .
. . .

U
1
k
X XM
k
P
k

.
.
.

.
.
.

. . .

. . .

. . .

. . .
. . .

U
1
k

Fig. 2.7: Memorarea datelor n pasul k al inversarii matriceale


A doua instruct iune a buclei Pentru, X XP
k
, interschimba coloanele k si i
k
(i
k
k).
T inand cont de toate aceste considerat ii si de ordinea inversa de calcul a coloa-
nelor, pasul k al buclei Pentru din schema de mai sus, adica X XM
k
P
k
, poate
descris ca n gura 2.7, unde

U
1
si

M reprezinta elementele din U
1
si, respectiv,
multiplicatorii gaussieni care nu au fost utilizat i (si nici modicat i) n execut ia buclei
pana la pasul curent; elementele modicate (parte a lui X) sunt notate prin .
Astfel, singura informat ie care trebuie salvata consta n multiplicatorii gaussieni
din coloana curenta,
ik
, i = k + 1 : n, necesari pentru calculul din (2.45).

In acest fel, inversarea matricei A poate executata utilizand doar doi vec-
tori suplimentari de lungime (n 1), anume p pentru memorarea permutarilor si,
sa zicem, g pentru salvarea temporara a multiplicatorilor gaussieni de pe coloana
curenta.
Algoritmul care implementeaz a considerat iile de mai sus este:
Algoritmul 2.11 (INV GPP Calculul inversei unei matrice) (Se
da A R
nn
nesingulara. Se calculeaza matricea A
1
peste A. Algo-
ritmul utilizeaza algoritmii GPP pentru triangularizarea gaussiana si
UINV pentru inversarea unei matrice superior triunghiulare.)
1. [M, U, p] = GPP(A) % M si U sunt memorate n A
2. A X = UINV(U) % doar triunghiul sup. e modicat
3. Pentru k = n 1 : 1 : 1
1. Pentru i = k + 1 : n
1. g
i

ik
% salveaza multiplicatorii
2. Pentru i = 1 : k
1. a
ik
a
ik

n
t=k+1
a
it
g
t
% relat ia (2.45), primele k linii
3. Pentru i = k + 1 : n
1. a
ik

n
t=k+1
a
it
g
t
% relat ia (2.45), celelalte linii
4. Daca p(k) = k atunci
1. Pentru i = 1 : n % interschimba coloanele k si p(k)
1. a
ik
a
i,p(k)
96 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
Comentarii. Numarul de operat ii n virgula mobila este
N
INV GPP
= N
GPP
+N
UINV
+
n1

k=1
2n(n k)
2n
3
3
+
n
3
3
+n
3
= 2n
3
si memoria utilizata M
INV GPP
= n
2
.
Este remarcabil faptul ca inversarea matriceala nu este mai complexa (ca numar
de operat ii) decat nmult irea de matrice.
O acuratet e mai buna a matricei inverse calculate se poate obt ine utilizand
algoritmul GPCn locul lui GPP.

In acest caz,
M
n1
P
n1
. . . M
1
P
1
AQ
1
Q
2
. . . Q
n1
= U,
si deci
X A
1
= Q
1
Q
2
. . . Q
n1
U
1
M
n1
P
n1
. . . M
1
P
1
.
Scrierea algoritmului corespunzator este lasata n sarcina cititorului.

In practica, acuratet ea obt inuta cu INV GPP este sucient de buna pentru
majoritatea aplicat iilor.
Observat ia 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
= c
T
A
1
b,
unde A R
nn
, b, c R
n
, schema recomandata este
c
T
A
1
b 1. Se rezolva sistemul Ax = b % rezulta x = A
1
b
2. c
T
x
sensibil mai ecienta decat varianta cu inversarea matricei A
Este clar ca inversa matricei A se poate calcula si recurgand explicit la factori-
zarea LU a matricei. Presupunand ca A = LU, avem
A
1
= U
1
L
1
,
iar o procedura de inversare ar putea consta n:
1. A = LU (se calculeaza factorizarea LU)
2. U X = U
1
3. L Y = L
1
3. A
1
XY
Numarul de operat ii este tot 2n
3
. Desigur, n practica este indicat a se folosi o
factorizare LU cu pivotare.
2.7. CONDIT IONAREA SISTEMELOR LINIARE 97
2.6.2 Calculul determinantului
Algoritmii GPP si GPC sunt utili si n calculul determinantului unei matrice.
Amintim ca interschimbarea a doua linii sau coloane ale unei matrice schimba
semnul determinantului acesteia, sau, echivalent, daca P este o permutare elemen-
tara, atunci det(P) = 1.

In plus, matricele ITE M
k
, k = 1 : n 1, din (2.43), au
elementele diagonale egale cu 1 si deci det(M
k
) = 1. Asadar
det(A) = (1)
s
det(U) = (1)
s
n

i=1
u
ii
,
unde s n 1 este numarul de PE proprii (adica P
k
= I
n
) n (2.43).
Algoritmul corespunzator celor de mai sus este:
Algoritmul 2.12 (DET GPP Calculul determinantului) (Se da
A R
nn
. Se calculeaza detA, utilizand algoritmul GPP.)
1. [M, U, p] = GPP(A)
2. det 1
3. Pentru k = 1 : n
1. det det u
kk
4. Pentru k = 1 : n 1
1. Daca p(k) = k atunci
1. det det
Principalul efort de calcul n algoritmul de mai sus este efectuat n execut ia
algoritmului GPP. Desigur, algoritmul GPC poate utilizat n loc de GPP,
obt inandu-se, de regula, o acuratet e superioara a rezultatului. Scrierea algoritmului
corespunzator este propusa cititorului.
Daca este disponibila o factorizare LU a matricei A, atunci det(A) = det(LU) =
= det(L) det(U) = (

n
i=1
l
ii
) (

n
i=1
u
ii
), ceea ce permite evaluarea imediata a
determinantului.
2.7 Condit ionarea sistemelor liniare
Dupa cum am vazut n capitolul 0, condit ionarea unei probleme de calcul, n cazul
nostru rezolvarea sistemului liniar determinat nesingular Ax = b, este cruciala n
aprecierea acuratet ii rezultatelor obt inute. Sa consideram o perturbat ie a datelor
de intrare ale sistemului
(A, b) (A + A, b + b) (

A,

b),
care va avea ca efect o perturbat ie a solut iei x
x x + x x, (2.45)
astfel ncat
(A + A)(x + x) = b + b. (2.46)
98 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
Consideram doar perturbat ii mici, respectand A A, b b (unde
este o norma consistenta oarecare), i.e. efectuam o analiza a sensibilitat ii locale
a solut iei n raport cu variat ia datelor.
Teorema 2.7 Presupunem c a x = 0. Eroarea relativ a a solut iei (2.45) a sistemului
perturbat (2.46) este m arginit a conform relat iei
x
x
(A)
_
A
A
+
b
b
_
, (2.47)
unde
(A) = A
1
A (2.48)
se numeste numar de condit ionare (la inversare) al matricei A.
Cu alte cuvinte, erorile relative A / A si b / b ale datelor de intrare
pot amplicate de (A) ori n solut ie, presupunand ca toate calculele se efectueaza
exact (deci indiferent de algoritmul folosit).
Demonstrat ie. Deoarece Ax = b, din (2.46) rezulta
A x + A x + A x = b.
Neglijand produsul A x (deoarece perturbat iile sunt mici), obt inem
x A
1
A x +A
1
b.
Utilizand o familie consistenta de norme matriceale , din relat ia de mai sus
rezulta
x A
1
A x +A
1
b.
Prin urmare, daca x = 0, o limita superioara a erorii relative este data de
x
x
A
1
A
A
A
+A
1
A
b
A x

A
1
A
_
A
A
+
b
b
_
,
ceea ce demonstreaza (2.47). (Am t inut seama ca b = Ax A x.)
Asadar numarul de condit ionare (A) denit n (2.48) furnizeaza o masura a
condit ionarii problemei rezolvarii unui sistem liniar Ax = b. Un (A) mic cores-
punde unei bune condit ionari, adica unei sensibilitat i reduse a solut iei n raport cu
perturbat iile datelor. Vom prezentan sect iunea urmatoare un rezultat care permite
aprecierea mai precisa a condit ionarii n funct ie de valoarea (A). Se observa ca
doar matricea A determina condit ionarea unui sistem, termenul liber b neavand
nici un rol; de aceea vorbim de condit ionarea matricei A n loc de condit ionarea
sistemului. Vom atasa un indice notat iei (A) atunci cand vom preciza norma
folosita n (2.48); de exemplu,

(A) = A
1

.

Intre norme echivalente,
alegerea uneia anume pentru evaluarea lui (A) nu este relevanta, ordinul de marime
al rezultatului ind acelasi; de obicei, dintre normele p se alege

(A) pentru
2.7. CONDIT IONAREA SISTEMELOR LINIARE 99
usurint a calculului (vezi mai jos). Sa notam ca
p
(A) 1 si
2
(A) = 1 daca si
numai daca A este ortogonala (demonstrat i !).
Este intuitiv faptul ca un sistem este cu atat mai rau condit ionat cu cat matricea
A este mai aproape de o matrice singulara. Trebuie subliniat ca masura acestei
apropieri este data de numarul de condit ionare si nu de determinantul matricei A.
Exemplul 2.1 Sa consideram matricele D, T R
nn
D =
_

_
0.1
0.1
.
.
.
0.1
_

_
, T =
_

_
1 1 . . . 1
1 . . . 1
.
.
.
.
.
.
1
_

_
.
Fiind diagonala, este evident ca D este bine condit ionata; se verica imediat ca
(D) = 1, n schimb det(D) = 10
n
, adica, daca de exemplu n = 20, o va-
loare foarte mica. Pentru matricea triunghiulara T situat ia este contrara: desi
det(A) = 1, matricea este rau condit ionata pentru ca

(T) = n2
n1
(U = T
1
este inferior triunghiulara unitate cu elementele u
ij
= 2
ji1
, pentru j > i, deci
T
1

= 1 + 2 + 2
2
+ . . . + 2
n2
= 2
n1
1. Pe de alta parte, T

= n).
Un mod uzual dar naiv de vericare a posteriori a calitat ii solut iei calculate
x a unui sistem liniar Ax = b consta n a calcula norma reziduului r = b A x, i.e.
r = b A x
si de a conchide ca daca r este mic, atunci x este o solut ie precisa. De fapt,
aceasta concluzie, corecta pentru matricele bine condit ionate, poate sa nu e (si
de cele mai multe ori nu este) adev arat a daca matricea A este rau condit ionata.

Intr-adevar, solut ia exacta este x = A


1
b, astfel ca avem
x x = A
1
b A
1
(b r) = A
1
r,
deci eroarea relativa este marginita conform relat iei
x x
x
=
A
1
r
A
1
b

A
1
r
A
1
r
(A)
r
A A
1
b
(A)
r
b
,
pentru orice norma consistenta . Astfel, testul r este mic e valid doar daca
matricea A este bine condit ionata.
Exemplul 2.2 Matricele Hilbert H
n
R
nn
, denite prin h
ij
= 1/(i +j 1) sunt
rau condit ionate, (H
n
) crescand foarte repede cu n. De exemplu,

(H
3
) 748.
Daca luam
x =
_
_
8.27
4.60
3.23
_
_
, b =
_
_
11.646 . . .
6.475 . . .
4.552 . . .
_
_
, d =
_
_
0.0128
0.0714
0.0689
_
_
, x = x +d,
atunci x este solut ia sistemului H
3
x = b (n acest exemplu am ales x si am calculat
b). Pentru solut ia aproximativa x avem
b H
3
x

1.7 10
5
,
x x

8.6 10
3
.
100 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
Deci, desi reziduul b H
3
x este relativ mic fat a de b, eroarea relativa a solut iei
aproximative x este mult mai mare, de aproximativ 510 ori, i.e. cu un factor de
marime de ordinul lui

(H
3
).
Estimarea numarului de condit ionare
Un algoritm bun de calcul al solut iei sistemului Ax = b indica si cat de sigura este
solut ia obt inuta, n condit iile perturbarii inerente a datelor de intrare. Numarul
de condit ionare

(A) (se alege norma doar pentru usurint a calculului) poate


furniza informat ii sigure asupra acuratet ii solut iei.

In continuare, presupunem ca
rezolvarea sistemului se face prin intermediul unei factorizari cu pivotare PA = LU,
de exemplu cu algoritmul GPP modicat dupa cum este sugerat n sect iunea 2.4.1,
dar concluziile pot extinse si n celelalte cazuri.
Calculul exact al

(A), utiliz and relat ia de denit ie, (2.48) este prea costisitor.
Daca A

se obt ine simplu n O(n


2
) opi conform (1.28), a calcula A
1

implica o inversare matriceala care necesita de trei ori mai multe operat ii decat
rezolvarea sistemului, adica inacceptabil de mult. Deoarece

(A) indica numai o


limita superioara, si nu valoarea exacta a amplicarii erorii datelor de intrare, ne
punem problema estim arii numarului de condit ionare cu doar O(n
2
) operat ii.
Cline et al. [?] au propus o metoda ecienta prin care se obt in estimat ii de buna
calitate ale normei A
1

. Metoda se bazeaza pe implicat ia


Ay = d A
1

= sup
f=0
A
1
f

.
Problema este de a gasi un vector d care conduce la un y sucient de mare n norma.
Consideram cazul simplun care A este inferior triunghiulara. Deoarece sistemul
Ay = d se rezolva prin substitut ie nainte (algoritmul LTRIS), elementele lui d nu
trebuie precizate toate de la nceput ci se pot alege convenabil pe masura ce sistemul
este rezolvat. O prima idee consta n a considera d
i
{1, 1} (deci d

= 1) si
de a alege n expresia
y
i
= (d
i

i1

j=1
a
ij
y
j
)/a
ii
acea valoare d
i
care produce cel mai mare |y
i
|. Schema de calcul poate rezumata
astfel:
A
1

1. Pentru i = 1 : n
1.

i1
j=1
a
ij
y
j
2. Dac a 0 atunci d
i
1
altfel d
i
1
3. y
i
(d
i
)/a
ii
2. y

Sunt necesari aproximativ n


2
opi, la fel ca pentru LTRIS.
O metoda mai ecienta constan a urmari, la pasul i al schemei de mai sus, majo-
rarea n modul nu numai a lui y
i
, ci si a tuturor sumelor part iale z
ki
=

i
j=1
a
kj
y
j
,
2.7. CONDIT IONAREA SISTEMELOR LINIARE 101
cu k > i, contribuind astfel la majorarea tuturor y
k
, si deci a lui y

. Putem
realiza aceasta alegand valoarea d
i
= 1 care corespunde celei mai mari dintre
sumele
s
+
= |y
+
i
| +
n

k=i+1
|z
+
ki
|,
s

= |y

i
| +
n

k=i+1
|z

ki
|,
unde elementele y
+
i
, y

i
corespund alegerii d
i
= 1, respectiv d
i
= 1, iar sumele
part iale au valorile z

ki
=

i1
j=1
a
kj
y
j
+a
ki
y

i
. Algoritmul rezultat pentru estimarea
numarului de condit ionare

(A) = A

A
1

este prezentat mai jos; pentru


k xat, sumele z
ki
de mai sus se memoreaza ntr-un scalar notat
k
.
Algoritmul 2.13 (COND Estimarea num arului de condit ionare)
(Se da A R
nn
, inferior triunghiulara nesingulara. Se calculeaza o
estimare a lui

(A).)
1. Pentru k = 1 : n
1.
k
0
2. Pentru i = 1 : n
1. y
+
i
(1
i
)/a
ii
2. y

i
(1
i
)/a
ii
3. Pentru k = i + 1 : n
1.
+
k

k
+a
ki
y
+
i
2.

k

k
+a
ki
y

i
4. s
+
|y
+
i
| +

n
k=i+1
|
+
k
|
5. s

|y

i
| +

n
k=i+1
|

k
|
6. Daca s
+
s

atunci
1. y
i
y
+
i
2. Pentru k = i + 1 : n
1.
k

+
k
altfel
3. y
i
y

i
4. Pentru k = i + 1 : n
1.
k

k
3. y

Execut ia algoritmului necesita aproximativ 3n


2
opi.
Consideram acum cazul general al unei matrice A R
nn
a carei factorizare
PA = LU este cunoscuta. Numarul de condit ionare

(A) se poate estima uti-


lizand urmatoarea schema de calcul, a carei justicare depaseste cadrul acestei
lucrari.

(A) 1. Se aplica algoritmul 2.13 pentru a obt ine o solut ie de


norma cat mai mare a sistemului U
T
y = d
2. Se rezolva sistemele triunghiulare L
T
r = y, Lv = Pr,
Uw = v
3. A

/ r

102 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE


Algoritmul necesita aproximativ 7n
2
opi si s-a dovedit excelent n practica,
valorile obt inute ind de regula de cel mult 2-5 ori mai mici decat

(A), ceea ce
constituie o aproximat ie acceptabila, mai ales n situat iile critice cand

(A) are
valori foarte mari.
2.8 Stabilitatea numerica a algoritmilor de
eliminare gaussiana
Vom prezentan aceasta sect iune caracterizari ale stabilitat ii numerice a algoritmilor
de eliminare gaussiana (G, GPP, GPC), precum si modalitat i de mbunatat ire a
rezultatelor numerice obt inute.
Un algoritm de rezolvare a sistemului liniar determinat Ax = b produce o solut ie
calculata x afectata de erori numerice. Vectorul x este solut ia aceluiasi sistem cu
datele perturbate, i.e.
(A +H) x = b. (2.49)
Vom evalua marimea matricei H pentru algoritmii ment ionat i, adica vom prezenta
rezultate ale analizei inverse a erorilor. Evaluarea unor margini superioare pentru
H este o sarcina dicila, iar marginile au de obicei expresii complicate, de aceea
nu va prezentata nici o demonstrat ie.

In plus, aceste margini sunt mult mai mari
decat erorile numerice ntalnite n practica; ele au rolul de a preciza cazurile cand
erorile pot importante, nu de a cuantica cu precizie aceste erori.
Nu trebuie uitat nici o clipa ca, chiar n prezent a unor valori ale H foarte
mici, acuratet ea solut iei este asigurata doar daca matricea A este bine condit ionata.
Altfel, H / A mic poate implica ( x x) / x mare, indiferent de algoritmul
utilizat.

In contextul teoremei 2.1, notam cu



A
k
si

M
k
matricele A
k
, respectiv M
k
, calcu-
late efectiv de algoritmul de eliminare gaussiana G. Introducemn plus urmatoarele
notat ii:

k
= max
i,j
| a
(k)
ij
|, k 1 : n,
=
max
k=1:n

1
.
Numarul real este numit factor de crestere, deoarece arata cat de mult cresc
valorile elementelor matricei An cursul transformarilor efectuate de algoritmul G.
Teorema 2.8 Matricele

M
1
,

M
2
, . . . ,

M
n1
,

A
n
=

U calculate n algoritmul G
satisfac

M
1
1
. . .

M
1
n1

U = A +E, cu |e
ij
| n
1

M
, (2.50)
cu o constant a de ordinul unit at ii, independent a de A.
Deoarece procedura de rezolvare a sistemelor triunghiulare prin substitut ie este
numeric stabila, majoritatea erorile numerice n rezolvarea unui sistem Ax = b apar
la triangularizarea matricei A. De aceea, matricea H din (2.49) satisface margini
superioare la nivel de element asemanatoare cu (2.50).
2.8. STABILITATE NUMERIC

A 103
Se observa ca valoarea marginii din (2.50) este determinata n special de factorul
de crestere . Pentru algoritmii GPP si GPC sunt valabile margini identice cu
(2.50), dar cu valori maxime diferite pentru .


In algoritmul G, factorul de crestere poate avea valori oricat de mari; asadar
acest algoritm este numeric instabil.
Introducerea pivotarii part iale conduce la 2
n1
. Desi teoretic aceasta
margine este mare chiar pentru valori modeste ale lui n, totusi algoritmul
GPP produce rezultate precise n marea majoritate a cazurilor uzuale (unele
except ii sunt prezentate n [?]); marginea este atinsa numai pentru anumite
matrice patologice, special construite n acest scop; un exemplu este prezen-
tat n problema 2.24. De aceea, GPP poate considerat practic stabil.


In cazul pivotarii complete avem [n 2
1
3
1/2
4
1/3
. . . n
1/(n1)
]
1/2
.
Aceasta margine creste lent cu n si practic se poate considera n, ceea ce
nseamna ca algoritmul GPC este necondit ionat stabil.
Combinand constatarile de mai sus cu efortul de calcul cerut de algoritmii
studiat i, putem conchide ca algoritmul GPP este cel mai recomandat pentru re-
zolvarea sistemelor liniare.

In cazuri speciale, cand se doreste o sigurant a deosebita
a rezultatului, se pot utiliza algoritmul GPC sau metodele prezentate n continuare.
Pentru ca marginea superioar a (2.50) e relativ complicata, sa deducem un rezul-
tat euristic, si deci aproximativ, dar cu aplicat ii practice clare si imediate. Daca n
rezolvarea sistemului Ax = b se foloseste o strategie de pivotare, atunci este su-
cient de mic; pe de alta parte,
1
A

, dar de acelasi ordin de marime (n orice


caz, n
1
A

). Atunci (2.50) este esent ial echivalenta cu armat ia grosiera


E

M
. (2.51)
Combinand (2.51) cu (2.47) (n care A = H, b = 0, x = x x), se obt ine
aproximat ia
x x

(A)
M
, (2.52)
care conduce la urmatoarea regula de apreciere a acuratet ii rezolvarii unui sistem:
Dac a
M
10
t
si

(A) 10
q
, atunci solut ia calculat a are aproximativ t q
cifre zecimale corecte (restul de q ind nesigure).
Altfel spus, un numar de condit ionare de ordinul 10
q
antreneaza pierderea a q
cifre semnicative n solut ie. Aceasta constatare subliniaza important a cunoasterii
unei evaluari a lui (A) pentru aprecierea acuratet ii solut iei calculate.
2.8.1 Scalarea sistemelor liniare
Fie D
1
, D
2
R
nn
doua matrice diagonale nesingulare ale caror elemente sunt pu-
teri ale bazei de numerat ie a formatului virgula mobila utilizat. Evident, sistemul
Ax = b este echivalent cu sistemul
D
1
AD
2
y = D
1
b, unde x = D
2
y. (2.53)
104 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
Transformarea A D
1
AD
2
, b D
1
b, prin care sistemul Ax = b se aduce la forma
(2.53) se numeste scalare.
Astfel denita, scalarea nu introduce erori numerice, iar costul ei este de O(n
2
)
opi, deci convenabil. Sunt mai multe considerente care sugereaza ideea de scalare
si strategia de alegere a factorilor de scala D
1
, D
2
.
Daca elementele din A sunt de marimi foarte diferite, atunci, marginea din (2.50)
ind aceeasi pentru toate elementele, e posibil ca erorile relative asociate elementelor
a
ij
mici (n modul) sa e foarte mari. De aceea, un obiectiv al scalarii poate acela
de a echilibra valorile elementelor matricei A.
Pe de alta parte, (2.52) sugereaza sa alegem D
1
, D
2
astfel ncat sa minimizam

(D
1
AD
2
). Acest obiectiv este dicil de realizatn general si imposibil cu restrict ia
de cost impusa; de altfel, nu are sens a optimiza pornind de la o relat ie aproximativa.
T inand seama de cele spuse mai sus precum si de cerint a evidenta ca D
1
si D
2
sa e calculate cu O(n
2
) operat ii, s-au impus cateva modalitat i de scalare:
scalare pe linii: D
2
= I si D
1
se alege astfel ncat liniile matricei D
1
A sa aiba
aproximativ aceeasi norma .
echilibrare linii-coloane: D
1
si D
2
se aleg astfel ncat ecare linie si coloana
din D
1
AD
2
sa aiba norma cuprinsa n intervalul [1/, 1] (vezi problema
2.26).
De obicei, solut ia calculata a sistemului (2.53) astfel scalat este mai precisa decat
solut ia calculata a sistemului init ial, dar n general nu exista nici o garant ie n acest
sens, de aceea scalarea nu trebuie privita ca panaceu universal ci aplicata n funct ie
de problema.
2.8.2 Ranarea iterativa a solut iei calculate
O alta metoda de mbunatat ire a acuratet ii solut iei calculate x a sistemului Ax = b
este prezentata n continuare. Presupunem ca sistemul a fost rezolvat folosind un
algoritm cu pivotare part iala si deci ca o factorizare PA = LU este disponibila.
Fie r = b A x reziduul corespunzator lui x. Daca notam e = x x, atunci
Ae = Ax A x = b (b r) = r. (2.54)
Aceasta egalitate sugereaza sa rezolvam sistemul Ae = r, obt inand solut ia e, si apoi
sa calculam o noua solut ie
x
nou
= x + e, (2.55)
sperand ca aceasta este mai precisa decat x (daca nu ar exista erori numerice n
rezolvarea sistemului Ae = r, atunci e = e, deci x
nou
= x). Procedura poate
repetata pentru noua solut ie, pana la atingerea unei acuratet i mult umitoare sau
pana cand nu se mai obt ine o mbunatat ire a acesteia. (Nu discutam aici modali-
tatea tehnica de estimare a acuratet ii solut iei, care depaseste nivelul acestei lucrari.)
Aparent, asa cum rezulta din (2.52), sistemele Ax = b si Ae = r se rezolva
cu acuratet i asemanatoare, n esent a dictate de

(A), iar adunarea solut iilor lor


n (2.55) nu ar produce un rezultat mai precis. Se poate nsa demonstra ca, daca
2.9. SISTEME BAND

A 105

(A)
M
1, atunci schema de ranare iterativa sugerata mai sus conduce (de
obicei ntr-un numar foarte mic de iterat ii) la solut ia aproximativa x satisfacand
x x

2n cond(A, x)
M
, (2.56)
unde
cond(A, x)
def
=
|A
1
| |A| |x|

, (2.57)
iar |A| este matricea cu elementele |a
ij
|.
Comparand acum (2.52) si (2.56) constatam ca n general ranarea iterativa
conduce ntr-adevar la mbunatat irea acuratet ii solut iei calculate deoarece
cond(A, x)

(A). (2.58)
(Pentru demonstrarea acestei inegalitat i vezi problema 2.25.) Cresterea acuratet ii
solut iei este cu atat mai mare cu cat raportul dintre cei doi termeni ai inegalitat ii
(2.58) este mai mic.
Ranarea iterativa da rezultate si mai bune daca se calculeaza reziduul r n
dubl a precizie (utilizand un format virgula mobila cu mai multe cifre semnicative
decat cel utilizat la rezolvarea Ax = b). Mai precis, daca

(A)
M
1, atunci prin
ranare se obt ine x x

/ x


M
, adica cel mai precis rezultat la care se
poate ajunge n formatul virgula mobila de lucru. Aceasta concluzie este intuitiva,
deoarece n (2.55) e este calculat mai precis decat x.
Pentru a rezuma, o iterat ie a schemei de ranare are forma (beneciind de
factorizarea PA = LU disponibil a)
x
nou
1. Se calculeaza r = b Ax (eventual n dubla precizie)
2. Se rezolva sistemele triunghiulare Ly = Pr, Uz = y
3. x x +z
Numarul de operat ii este de O(n
2
), deci cateva iterat ii au un cost semnicativ
mai mic decat cel al eliminarii gaussiene. Exista si dezavantaje: trebuie pastrata o
copie a matricei A pentru calculul reziduului, iar implementarea calculelor n dubla
precizie poate dependenta de masina (desi standardul IEEE este respectat pe ma-
joritatea calculatoarelor); de aceea, n bibliotecile actuale, de exemplu LAPACK, se
utilizeaza precizia de lucru. O analiza detaliata a erorilor pentru ranarea iterativa
poate gasita n [IX].
2.9 Sisteme banda

In aceasta sect iune vom considera sisteme Ax = b, n care A R


nn
este o matrice
banda nesingulara, de lat ime inferioara r si superioara q. Astfel de matrice apar
deseori n practica, de exemplu la solut ionarea numerica a ecuat iilor cu derivate
part iale. Vom vedea n continuare ca aplicarea adecvat a a procedurii de eliminare
gaussiana poate aduce o mare reducere a numarului de operat ii, fat a de cazul ma-
tricelor oarecare.
106 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
_

_





_

_
k=1

_

0
0


_

_
k=2

_


0
0

_

_
k=3
. . .
Fig. 2.8: Eliminarea gaussiana aplicata unei matrice banda de lat ime inferioara 2
si superioara 1. S-au notat cu elementele modicate la pasul respectiv, cu 0 cele
anulate, iar cu cele ramase nemodicate
Teorema 2.9 Dac a eliminarea gaussian a (algoritmul G) este aplicat a matricei
A R
nn
band a de l at ime inferioar a r si superioar a q, nesingular a si cu A
[k]
nesin-
gulare, k = 1 : n 1, atunci n egalitatea (2.10) (M
n1
. . . M
1
A = U), matricea U
este superior triunghiular a band a de l at ime q, iar matricele ELT M
k
= I m
k
e
T
k
sunt caracterizate de
ik
= 0, pentru i > k + r (altfel spus, n factorizarea LU
produs a de algoritmul G, matricea L este inferior triunghiular a band a de l at ime r).
Pe scurt, n procedura de eliminare gaussiana fara pivotare, structura banda a
matricei A este ereditara, i.e. se transmite ca atare factorilor L, U furnizat i de
procedura.
Demonstrat ie. Figura 2.8 ilustreaza procesul de eliminare gaussiana. Deoarece

i1
= a
i1
/a
11
, rezulta
i1
= 0 pentru i > 1 + r.

In atribuirea A M
1
A scrisa
detaliat
a
ij
a
ij

i1
a
1j
, pentru i, j = 2 : n,
se observa ca a
ij
ramane nemodicat pentru i > 1+r (deoarece
i1
= 0) si j > 1+q
(deoarece a
1j
= 0). Asadar, se modica doar blocul A(2 : 1 +r, 1 : 1 +q) (n prima
coloana sunt introduse zerouri subdiagonale) si matricea A, inferior triunghiulara
n prima coloana, ramane banda de lat ime inferioar a r si superioara q.
Procesul continua analog pentru k = 2, . . . , n1, la ecare pas k modicandu-se
blocul A(k + 1 : k + r, k : k + q), ceea ce conduce la structura banda a matricei
U, iar blocul (n k) (n k) dreapta jos pastrandu-si structura banda, ceea ce
asigura forma enunt ata a matricelor ITE.
Algoritmul rezultat este prezentat n continuare.
Algoritmul 2.14 (Gb Eliminare gaussian a pentru matrice band a)
(Se da A R
nn
, banda de lat ime inferioara r si superioara q, cu A
[k]
nesingulare, k = 1 : n1. Se calculeaza matricea superior triunghiulara
U si matricele ITE M
1
, . . . , M
n1
astfel ncat U = M
n1
M
n2
. . . M
1
A.)
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : min(k +r, n)
1. a
ik

ik
= a
ik
/a
kk
2. Pentru i = k + 1 : min(k +r, n)
2.9. SISTEME BAND

A 107
1. Pentru j = k + 1 : min(k +q, n)
1. a
ij
a
ij

ik
a
kj
Lasam cititorului calculul unei formule pentru numarul de operat ii; daca r n
sau q n, acesta este 2n
3
/3.
Triangularizarea matricei A conform algoritmului de mai sus permite reducerea
sistemului Ax = b la sistemul echivalent superior triunghiular Ux = d, cu U banda
de lat ime superioara q. Adaptarea UTRIS la acest caz este imediata, elementele
x
i
calculandu-se prin substitut ie napoi cu formula
x
i
=
_
_
d
i

min(i+q,n)

j=i+1
u
ij
x
j
_
_
/u
ii
.
Vom vedea acum ce efect are pivotarea asupra structurii banda.
Teorema 2.10 Dac a eliminarea gaussian a cu pivotare part ial a (algoritmul GPP)
este aplicat a matricei A R
nn
band a de l at ime inferioar a r si superioar a q, nesin-
gular a, atunci n egalitatea (2.14) (M
n1
P
n1
. . . M
1
P
1
A = U), matricea U este
superior triunghiular a band a de l at ime q + r, iar matricele ITE M
k
= I m
k
e
T
k
sunt caracterizate de
ik
= 0, pentru i > k +r.
Demonstrat ia va doar schit ata, procesul de eliminare ind ilustrat cu ajutorul
gurii 2.9. Primul pivot este gasit pe linia i
1
1 : 1 + r, restul elementelor din
prima coloana ind nule. Permutarea liniilor 1 si i
1
(operat ia A P
1
A) va face ca
pe prima linie elementele nenule sa e n coloanele 1 : 1+q+r, n cel mai defavorabil
caz (i
1
= 1+r). Evident,
i1
= a
i1
/a
11
, deci
i1
= 0 pentru i > 1+r.

In atribuirea
A M
1
A scrisa detaliat
a
ij
a
ij

i1
a
1j
, pentru i, j = 2 : n,
a
ij
ramane nemodicat pentru i > 1 + r (deoarece
i1
= 0) si j > 1 + q + r
(deoarece a
1j
= 0). Asadar se modica doar blocul A(2 : 1 + r, 1 : 1 + q + r).
Matricea A ramane banda de lat ime inferioara r; n prima linie, A este banda de
lat ime superioara q +r, iar n liniile 1 +r : n banda de lat ime superioara q.
Procesul continua asemanator pentru k = 2, . . . , n 1; dupa A P
k
A, n linia
k rezulta a
kj
= 0 pentru j > k + q + r; operat ia A M
k
A modica doar blocul
A(k+1 : k+r, k : k+r+q).

In nal, U si matricele ITE M
k
au structura prezentata
n enunt .
Observam ca pivotarea part iala conduce la o matrice U superior triunghiulara
banda de lat ime mai mare decat cea a matricei init iale A. Mai mult, n factorizarea
rezultata PA = LU, matricea inferior triunghiulara L nu mai este banda, ca n
lipsa pivotarii; t inand seama de teorema 2.6, deoarece o coloana a matricei L este
o permutare a vectorului m
k
(ce deneste matricea ITE M
k
= I m
k
e
T
k
), coloana
respectiva are doar r elemente nediagonale nenule, dar n pozit ii ce difera de la caz
la caz.
Prezentam mai jos algoritmul sugerat de demonstrat ia teoremei 2.10.
108 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
_

_






_

_
P1

_






_

_
M1

_

0
0



_

_
P2

_






_

_
M2

_


0
0


_

_
P3
. . .
Fig. 2.9: Eliminarea gaussiana cu pivotare part iala aplicata unei matrice banda
de lat ime inferioara 2 si superioara 1. S-a presupus c a la pasul k se efectueaza
permutarea liniilor k (curenta) si k + 2 (cea mai departata posibil de cea curenta)
Algoritmul 2.15 (GPPb Eliminare gaussian a cu pivotare par-
t ial a pentru matrice band a) (Se da A R
nn
, banda de lat ime infe-
rioara r si superioara q, nesingulara. Se calculeaza matricea superior
triunghiulara U, matricele ITE M
1
, . . . , M
n1
(memorate peste A)
si matricele PE P
1
, . . . , P
n1
(memorate n vectorul p), astfel ncat
U = M
n1
P
n1
. . . M
1
P
1
A.)
1. Pentru k = 1 : n 1
1. r
1
= min(k +r, n), q
1
= min(k +q +r, n)
2. Se determina i
k
k : r
1
astfel ncat |a
i
k
k
| = max
i=k:r1
|a
ik
|
3. p(k) i
k
4. Pentru j = k : q
1
1. a
kj
a
i
k
j
5. Pentru i = k + 1 : r
1
1. a
ik

ik
= a
ik
/a
kk
6. Pentru i = k + 1 : r
1
1. Pentru j = k + 1 : q
1
1. a
ij
a
ij

ik
a
kj
Comentarii. Numarul de operat ii este mai mare decat pentru algoritmul 2.14,
dar, daca r n sau q n, acesta este totusi 2n
3
/3.
Lasam cititorului problema scrierii unui algoritm ecient de rezolvare a sistemu-
lui Ax = b, atunci cand A are structura banda, utilizand algoritmul 2.15.

In nal, precizam ca pivotarea completa distruge structura banda si deci nu este


recomandata n acest caz.
2.10. SISTEME SIMETRICE 109
Factorizarea Crout aplicata unei matrice A R
nn
banda de lat ime inferioara
r si superioara q are proprietat i similare cu cele ale eliminarii gaussiane; cititorul
este invitat sa demonstreze armat iile urmatoare.
Algoritmul CROUT produce o matrice L inferior triunghiulara banda de lat ime
r si o matrice U superior triunghiulara (unitate) banda de lat ime q.
Algoritmul CROUTP (cu pivotare part iala) produce o matrice L inferior tri-
unghiulara si o matrice U superior triunghiulara (unitate) banda de lat ime q + r.

In plus, ecare coloana a matricei L are cel mult r elemente nediagonale nenule.
2.10 Sisteme simetrice
Ne ocupam n aceasta sect iune de rezolvarea sistemului Ax = b, cu A inversabila
si simetric a, n general de semn nedenit. Nucleul rezolvarii sistemului este fac-
torizarea matricei A, chiar daca eventual ea nu se face explicit. Presupunand ca
matricea A are factorizare LDU, deoarece A = A
T
si factorizarea este unica (n
condit iile teoremei 2.4), rezulta imediat ca U = L
T
. Se pune ntrebarea cum putem
prota de simetrie pentru a reduce numarul operat iilor de la 2n
3
/3 (cazul general)
la, speram, jumatate, adica n
3
/3.
Dicultat ile problemei. Aplicarea ca atare a procedurii de eliminare gaus-
siana (algoritmul G) pare a avea inconvenientul major de a distruge simetria ma-
tricei A. Sa explicitam primul pas al eliminarii gaussiene; se calculeaza A M
1
A,
unde M
1
= I m
1
e
T
1
este matricea ITE pentru care (M
1
A)
i1
= 0, i 2 : n. Ma-
tricea M
1
A nu este simetrica: prima coloana are elementele subdiagonale nule, n
schimb prima linie are elemente n general nenule. Totusi submatricea (M
1
A)
2:n,2:n
este simetrica, ceea ce se observa si detaliind instruct iunea 1.2.1.1 din algoritmul G
(cu k = 1), adica,
a
ij
a
ij
a
i1
a
1j
/a
11
care se aplica identic si elementului a
ji
= a
ij
a
ji
a
ji
a
j1
a
1i
/a
11
= a
ij
a
i1
a
1j
/a
11
.
Asadar nu este necesara modicarea tuturor elementelor matricei, ci doar a celor din
(sa zicem) triunghiul inferior; numarul de operat ii se reduce astfel la aproximativ
jumatate.
Pentru a pastra simetria sunt necesare transformari de congruent a, adica se
aplica transformarile ITE de ambele p art i ale matricei A. Primul pas al eliminarii
gaussiene (modicate) va acum A M
1
AM
T
1
= M
1
A (M
1
A)e
1
m
T
1
; deoarece
(M
1
A)e
1
= a
11
e
1
, se observa ca nmult irea la dreapta cu M
T
1
, adica (M
1
A)M
T
1
,
nu afecteaza decat prima linie a matricei M
1
A (identica cu prima linie a matricei
A), anume introducand zerouri n toate pozit iile din dreapta diagonalei. Asadar,
din punctul de vedere al implementarii, nmult irea la dreapta cu M
T
1
nu necesita
calcule.
Continuand analog pentru celelalte coloane, se obt ine echivalentul relat iei (2.10)
n cazul simetric
D
def
= M
n1
. . . M
2
M
1
AM
T
1
M
T
2
. . . M
T
n1
, (2.59)
110 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
unde D este evident o matrice diagonala.
Modicand algoritmul G astfel ncat sa se acceseze doar triunghiul inferior al
matricei A, se obt ine factorizarea A = LDL
T
, cu L = M
1
1
M
1
2
. . . M
1
n1
inferior
triunghiulara unitate si D memorate peste A:
LDL
T
1. Pentru k = 1 : n 1
1. Pentru i = k + 1 : n
1. t
i
a
ik
2. a
ik
a
ik
/a
kk
2. Pentru j = k + 1 : n
1. Pentru i = j : n
1. a
ij
a
ij
a
ik
t
j
Vectorul auxiliar t se foloseste pentru salvarea elementelor coloanei curente k,
egale cu cele de pe linia k n triunghiul superior, pe pozit iile carora se memoreaza
multiplicatorii.
Ca si n cazul general, chiar daca A este inversabila, se pot obt ine pivot i nuli
daca det(A
[k]
) = 0 pentru un k 1 : n1. Un exemplu evident este A =
_
0 1
1 0
_
.

In plus, algoritmul este numeric instabil. De aceea se impune pivotarea.


Din pacate, strategiile de pivotare (part iala sau completa) propuse anterior pen-
tru eliminarea gaussiana distrug simetria. O prima idee ar de a aplica permutarile
elementare de ambele part i ale matricei A, asa cum am procedat si cu transformarile
ITE; de exemplu, la primul pas, s a se calculeze A P
1
AP
T
1
. O astfel de permutare
nu poate aduce pe pozit ia pivotului decat unul dintre elementele diagonale; exem-
plul de mai sus dovedeste ca aceasta strategie poate da gres n situat ii banale.
Factorizarea cvasi-diagonala. Pastrarea simetriei trebuie deci mbinata cu
participarea la pivotare a elementelor nediagonale. O posibilitate de realizare a
acestui compromis este de a calcula o factorizare LDL
T
de un tip special, n care
matricea D este cvasi-diagonala
2
.
Teorema 2.11 Fie A R
nn
o matrice inversabil a si simetric a. Atunci exis-
t a o matrice inferior triunghiular a unitate L R
nn
, o matrice cvasi-diagonala
D R
nn
cu blocuri diagonale de dimensiune 1 1 sau 2 2, si o matrice de
permutare P R
nn
astfel nc at
PAP
T
= LDL
T
. (2.60)
Desigur, matricea D este inversabil a. Expresia de mai sus este numit a factorizare
cvasi-diagonala a matricei A.
Demonstrat ia este constructiva. Vom descrie modul de calcul al factorizarii cvasi-
diagonale fara a preciza strategia de permutare mai mult decat este matematic
necesar demonstrat iei. Desigur, ntr-un algoritm de calcul efectiv matricea de per-
mutare P va construita pornind de la considerente de stabilitate numerica.
2
O idee alternativ a, descris a n [?], este de a lua D tridiagonal a.
2.10. SISTEME SIMETRICE 111
Primul pas al procedurii de factorizare se aplica matricei
P
1
AP
T
1
=
_
E C
T
C B
_
, (2.61)
unde E este un bloc s s, cu s = 1 sau s = 2, iar P
1
o matrice de permutare,
eventual elementara. Demonstram acum ca daca A este inversabila, atunci exista
P
1
astfel ncat E sa e inversabil; de exemplu, daca a
11
= 0, se poate lua s = 1,
P
1
= I; daca a
11
= 0, exista a
1j
= 0, altfel prima coloana a matricei A este nula,
deci A este singulara; n acest caz, cu s = 2 si P
1
permutand liniile 2 si j se obt ine
det(E) = a
2
1j
= 0.
Pentru a determina primele s coloane ale factorilor L si D, se utilizeaza o relat ie
asemanatoare cu (2.31):
P
1
AP
T
1
=
_
I
s
0
CE
1
I
ns
_ _
E 0
0 B CE
1
C
T
_ _
I
s
E
1
C
T
0 I
ns
_
(2.62)
Daca s = 1, calculul factorizarii (2.62) este efectuat de schema LDL
T
. Daca
s = 2, atunci CE
1
se poate calcula folosind eliminarea gaussiana cu pivotare (vezi
problema 2.30) sau chiar varianta pe care o adoptam aici pentru simplitate
calculand direct
E
1
=
1
det(E)
_
e
22
e
21
e
21
e
11
_
(2.63)
si apoi nmult ind C si E
1
; evident, blocul BCE
1
C
T
se calculeaza acum banal,
printr-un produs si o adunare matriceale, dar numai n partea sa inferior triunghiu-
lara, deoarece este simetric.
Procedura continua identic pentru matricea B CE
1
C
T
de dimensiune
(n s) (n s), si asa mai departe pana la obt inerea factorizarii cvasi-diagonale
(2.60).
Algoritmul corespunzator este prezentat n continuare. Se vede usor ca proce-
dura se poate executa pe loc n A; totusi, la fel ca n schema LDL
T
, e necesara
alocarea unui spat iu suplimentar pentru salvarea temporara, acum ntr-o matrice
T R
n2
, a elementelor coloanei (coloanelor, daca s = 2) curente.
Algoritmul 2.16 (FCD Factorizare cvasi-diagonal a) (Se da
A R
nn
simetrica si inversabila. Se calculeaza matricea inferior tri-
unghiulara unitate L, matricea D R
nn
cvasi-diagonala, cu blocuri de
dimensiune 1 1 sau 2 2, si matricea de permutare P R
nn
astfel
ncat relat ia (2.60) sa e satisfacuta. Matricele L si D se memoreaza
peste A. Modul de calcul al lui P nu este detaliat.)
0. k 1
1. C^at timp k < n
1. Se determina P
k
si s.
2. Se efectueaza permutarea (simetrica) A P
k
AP
T
k
3. Daca s = 1 atunci
1. Pentru i = k + 1 : n
1. t
i1
a
ik
112 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
2. a
ik
a
ik
/a
kk
altfel
2.
_
e
11

e
21
e
22
_

1
a
kk
a
k+1,k+1
a
2
k+1,k
_
a
k+1,k+1

a
k+1,k
a
kk
_
3. Pentru i = k + 2 : n
1. t
i1
a
ik
, t
i2
a
i,k+1
2. a
ik
a
ik
e
11
+a
i,k+1
e
21
3. a
i,k+1
t
i1
e
21
+a
i,k+1
e
22
4. Pentru j = k +s : n
1. Pentru i = j : n
1. Daca s = 1 atunci
1. a
ij
a
ij
a
ik
t
j1
altfel
2. a
ij
a
ij
a
ik
t
j1
a
i,k+1
t
j2
5. k k +s
Comentarii. Numarul de operat ii este de ordinul n
3
/3 opi, iar memoria ocupata
de n(n + 1)/2 + 2n.
Strategii de pivotare. Vom prezenta n continuare doua strategii de alegere
a permutarilor, completand astfel algoritmul FCD cu detalierea instruct iunii 1.1.
Ne vom limita la descrierea primei etape din procedura de factorizare. Prin exten-
sie de terminologie, numim pivot blocul E din (2.61) si pivotare permutarea din
instruct iunea 1.2.
Pivotare completa. Spre deosebire de eliminarea gaussiana, la procedura de
factorizare cvasi-diagonala pivotarea completa se poate descrie mai usor decat cea
part iala. Matricea P
1
si ntregul s sunt alese conform urmatoarei scheme [?]:
FCDPC
1
1. Se alege (0, 1)
2.
0
= max
i,j
|a
ij
|,
1
= max
i
|a
ii
|
3. Daca
1

0
atunci
1. s = 1, se alege P
1
astfel ncat n (2.61) |e
11
| =
1
altfel
2. s = 2, se alege P
1
astfel ncat n (2.61) |e
21
| =
0
Ideea este de a alege un pivot 1 1 daca exista un element diagonal sucient
de mare n raport cu elementul de modul maxim
0
(depasind un prag dictat de
constanta ). Altfel pivotul este
E =
_
a
11
a
r1
a
r1
a
rr
_
, unde |a
r1
| =
0
. (2.64)
Notand

A = B CE
1
C
T
, se poate demonstra ca (vezi problema 2.31):
| a
ij
|
__
1 +
1

0
, daca s = 1,
_
1 +
2
1
_

0
, daca s = 2.
(2.65)
2.10. SISTEME SIMETRICE 113
Constanta se determina impunand condit ia
_
1 +
1

_
2
=
_
1 +
2
1
_
, ceea ce
va conduce la factori de crestere (vezi sect iunea 2.8) asemanatori indiferent de di-
mensiunile pivot ilor. Se obt ine = (1 +

17)/8 0.64.
Aceasta strategie de pivotare face ca algoritmul FCD sa e numeric stabil.
O analiza inversa a erorilor conduce la o margine similar a cu cea din (2.50), cu
3n [2
1
3
1/2
4
1/3
. . . n
1/(n1)
]
1/2
; aceasta margine pentru factorul de crestere
este put in mai mare decat cea pentru eliminarea gaussian a cu pivotare completa
(algoritmul GPC).
Costul pivotarii complete este de O(n
3
) comparat ii, la fel ca pentru algoritmul
GPC, ceea ce constituie un efort de calcul important. De aceea este interesanta
gasirea unei strategii de pivotare part iala.
Pivotare part iala. 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 part iala ecienta (vezi [?]),
detaliata de schema (ne ocupam din nou doar de primul pas al factorizarii):
FCDPP
1
1. Se alege (0, 1)
2. = max
i=2:n
|a
i1
| (si |a
r1
| = )
3. Daca |a
11
| atunci
1. s = 1, P
1
= I
altfel
2. = max
i=1:n, i=r
|a
ir
|
3. Daca |a
11
|
2
atunci
1. s = 1, P
1
= I
altfel dac a |a
rr
| atunci
2. s = 1, se alege P
1
astfel ncat n (2.61) e
11
= a
rr
altfel
3. s = 2, se alege P
1
astfel ncat n (2.61) |e
21
| =
Pentru a nt elege ideea pivotarii, este util a considera matricea
_

_
a
11
. . . . . . . . . . . .
.
.
.
.
.
.
. . . a
rr
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
_

_
si a observa ca pivotul este a
11
sau a
rr
cand s = 1, sau
_
a
11
a
r1
a
r1
a
rr
_
cand s = 2.
Se poate demonstra ca relat ia (2.65) ramane n continuare adevarata, deci se va
alege aceeasi valoare pentru . Factorul de crestere din (2.50) va acum limitat de
(1 + 1/)
n1
(2.57)
n1
, o margine ceva mai larga decat pentru algoritmul
GPP.

In practica, algoritmul de factorizare cvasi-diagonala cu pivotare part iala
114 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
are o stabilitate numerica satisfacatoare. Cum numarul de comparat ii este redus
acum la O(n
2
), pivotarea part iala este de obicei preferata celei complete (la fel ca
la eliminarea gaussiana).
Utilizarea factorizarii cvasi-diagonale. Factorizarea (2.60) poate folosita
n modul cel mai simplu pentru rezolvarea sistemelor liniare, redusa la rezolvarea
a doua sisteme triunghiulare si a unuia cvasi-diagonal; lasam cititorului detaliile de
implementare.
De asemenea, (2.60) se poate utiliza pentru calculul inversei matricei A, t inand
seama ca
A
1
= P
T
L
T
D
1
L
1
P.
Remarcam faptul ca si matricea A
1
este simetrica.
Cazul complex.

In cazul n care A C
nn
este hermitica (A = A
H
), factori-
zarea sa cvasi-diagonala are forma (analoaga cu (2.60))
PAP
T
= LDL
H
,
unde P este o matrice de permutare, L C
nn
este inferior triunghiulara unitate,
iar D C
nn
este bloc diagonala (cu blocuri 1 1 sau 2 2) si hermitic a.
Algoritmul FCD si pastreaz a forma generala; trebuie luat nsa n considerare
faptul ca n cazul complex transpunerea este nsot ita si de conjugare. De exemplu,
(2.61) devine
P
1
AP
T
1
=
_
E C
H
C B
_
, (2.66)
iar E este hermitica, adica, n cazul 2 2,
E =
_
e
11
e
21
e
21
e
22
_
.
Instruct iunile algoritmului FCD se modica corespunzator, de exemplu 1.4.1.1.1
are forma a
ij
a
ij
a
ik
a
jk
.
2.11 Sisteme simetrice pozitiv denite
Consideram acum sistemul Ax = b, unde matricea A R
nn
este simetrica si
pozitiv denita. Ideea de baza a rezolvarii lui este dat a de teorema urmatoare.
Teorema 2.12 Pentru orice matrice simetric a si pozitiv denit a A R
nn
, exist a
o unic a matrice inferior triunghiular a L R
nn
, cu elemente diagonale pozitive,
astfel nc at
A = LL
T
, (2.67)
expresie care este numit a factorizare Cholesky (iar L este numit factorul Cholesky
al matricei A). Reciproc, dac a factorizarea Cholesky exist a, atunci A este pozitiv
denit a.
2.11. SISTEME SIMETRICE POZITIV DEFINITE 115
Evident, (2.67) se poate scrie sub forma A = R
T
R, unde R = L
T
este superior
triunghiulara. De asemenea, factorizarile A = L
T
L, respectiv A = RR
T
, se numesc
tot Cholesky.
Demonstrat ie. Deoarece A este pozitiv denita atunci, conform propozit iei 1.3,
submatricele lider principale A
[k]
, k = 1 : n 1, sunt pozitiv denite, deci nesingu-
lare. Atunci A are o unica factorizare LDU (vezi teorema 2.4), A = L

DU

si, din
motive de simetrie, U

= (L

)
T
. Dar A si D sunt congruente, deci D este pozitiv
denita, adica d
ii
> 0, i = 1 : n. Fie F R
nn
matricea diagonala denita de
f
ii
=

d
ii
, i = 1 : n. Notand L = L

F, prima parte a teoremei este demonstrata


(l
ii
=

d
ii
, i = 1 : n).
Reciproca este evidenta; e x R
n
nenul, altfel arbitrar; atunci avem x
T
Ax =
x
T
LL
T
x = L
T
x
2
2
> 0 (deoarece L este nesingulara, L
T
x = 0).
Exista mai mult i algoritmi pentru calculul factorizarii Cholesky a unei matrice
pozitiv denite, care difera doar prin ordinea de efectuare a calculelor. Vom deduce
aici o procedura de factorizare compacta, similara cu cea folosita la calculul fac-
torizarii Crout, n care elementele factorului Cholesky L sunt calculate n ordinea
(crescatoare a) coloanelor. Din identitatea A = LL
T
(doar triunghiul inferior stang
al lui A este reprezentat, deoarece A este simetrica)
_

_
a
11
.
.
.
.
.
.
a
k1
. . . a
kk
.
.
.
.
.
.
.
.
.
a
n1
. . . a
nk
. . . a
nn
_

_
=
_

_
l
11
.
.
.
.
.
. 0
l
k1
. . . l
kk
.
.
.
.
.
.
.
.
.
l
n1
. . . l
nk
. . . l
nn
_

_
_

_
l
11
. . . l
k1
. . . l
n1
.
.
.
.
.
.
.
.
.
l
kk
. . . l
nk
0
.
.
.
.
.
.
l
nn
_

_
obt inem pentru prima coloana:
a
11
= l
2
11
l
11
=

a
11
,
a
i1
= l
i1
l
11
l
i1
= a
i1
/ l
11
, i = 2 : n,
(2.68)
si deci procesul de calcul poate init iat.
Acum, presupunand ca primele k1 coloane din L au fost calculate, identicarea
elementului din pozit ia (k, k) n A = LL
T
furnizeaza
a
kk
=
k1

j=1
l
2
kj
+l
2
kk
, (2.69)
n care singura necunoscuta este l
kk
. Conform teoremei 2.12, daca A este pozitiv
denita, atunci exista un unic l
kk
pozitiv astfel ncat (2.69) sa aiba loc. Atunci,
a
kk

k1

j=1
l
2
kj
> 0 (2.70)
si
l
kk
=

_
a
kk

k1

j=1
l
2
kj
. (2.71)
116 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
De asemenea,
a
ik
=
k1

j=1
l
ij
l
kj
+l
ik
l
kk
, i = k + 1 : n,
n care, n ordinea de calcul considerata, singura necunoscuta este l
ik
. Asadar
l
ik
=
_
_
a
ik

k1

j=1
l
ij
l
kj
_
_
/ l
kk
, i = k + 1 : n. (2.72)
Formulele (2.68), (2.71) si (2.72) denesc 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 pozitivitat ii unei matrice; testul se bazeaza pe
faptul ca factorizarea Cholesky a unei matrice poate calculata daca si numai
dac a matricea este pozitiv denita (teorema 2.12); asadar, daca termenul stang al
inegalitat ii (2.70) nu este pozitiv, atunci matricea A nu este pozitiv denita.
Algoritmul 2.17 (CHOL factorizare Cholesky) (Se da A R
nn
simetrica. Se stabileste daca A este pozitiv denita si, n acest caz,
se scrie peste triunghiul inferior al lui A matricea L din factorizarea
Cholesky A = LL
T
.)
1. Pentru k = 1 : n
1. a
kk

k1
j=1
l
2
kj
2. Daca 0 atunci
1. Tipareste A nu este pozitiv denita
2. Stop
3. a
kk
l
kk
=

4. Pentru i = k + 1 : n
1. a
ik
l
ik
=
_
a
ik

k1
j=1
l
ij
l
kj
_
/ l
kk
Comentarii.

In mod evident, instruct iunea 1.4.1 reprezinta o operat ie DOT. O
alta ordonare a calculelor, care, n varianta vectoriala, conduce la operat ii Saxpy,
este propusa n problema 2.33. Tot ca exercit iu pentru cititor (problema 2.34)
este lasata varianta la nivel de bloc a factorizarii Cholesky, foarte asemanatoare
algoritmilor de factorizare LU la nivel de bloc, prezentat i n sect iunea 2.4.
Algoritmul CHOL necesita aproximativ N
CHOL
= n
3
/3 opi si, n plus, calculul
a n radacini patrate (care e neglijabil). Memoria necesar a este de aproximativ
M
CHOL
= n
2
/2.
Algoritmul este numeric stabil; daca

L reprezinta factorul Cholesky calculat,
atunci

L

L
T
= A+E, unde perturbat ia E satisface limita (2.50) pentru = 1; deci,
stabilitatea este mai buna decat a eliminarii gaussiene cu pivotare completa.
Desigur, sistemul liniar Ax = b, cu A pozitiv denita se calculeaza cu schema
Ch 1. Se factorizeaza A = LL
T
cu algoritmul CHOL
2. Se rezolva sistemul inferior triunghiular Ly = b
3. Se rezolva sistemul superior triunghiular L
T
x = y
2.12. RUTINE LAPACK SI MATLAB 117
efectuandu-se de doua ori mai put ine operat ii decat daca s-ar aplica algoritmul de
eliminare gaussiana.

In privint a condit ionarii, problema rezolvarii sistemului pozitiv denit Ax = b


satisface inegalitatea (2.47).
Inversa (care este tot simetrica si pozitiv denita) si determinantul unei matrice
simetrice pozitiv denite se calculeaza adaptand ideile din sect iunea 2.6 la contextul
factorizarii Cholesky A = LL
T
.
Matrice banda. Daca A R
nn
este o matrice simetrica, pozitiv denita
si banda de lat ime r, atunci factorul Cholesky este inferior triunghiular banda de
lat ime r. Aceasta se poate observa cu usurint a din relat ia (2.72), n care un element
l
ik
depinde de valorile l
ij
aate la stanga sa pe linia i (i.e. j < k); asadar, l
i1
= a
i1
,
deci n prima coloana se mosteneste structura matricei A; daca, pentru un indice
de coloana s, avem l
ij
= 0 pentru j = 1 : s 1, atunci este evident ca l
is
= a
is
/l
ss
,
deci structura se mosteneste si n coloana s.

In concluzie, linia i are, n port iunea
subdiagonala, aceeasi structura n A si L.
Adaptarea algoritmului CHOL la cazul matricelor banda este un exercit iu re-
lativ simplu pe care l lasam cititorului (vezi problema 2.36).
Cazul complex. Daca matricea A C
nn
este hermitica si pozitiv denita,
atunci factorizarea sa Cholesky este unica si are forma
A = LL
H
,
unde L C
nn
este inferior triunghiulara, cu elementele diagonale reale si pozi-
tive (si A are elementele diagonale reale, ind hermitica, si pozitive, ind pozitiv
denita). Factorul Cholesky se poate calcula cu algoritmul CHOL usor modicat,
deoarece (2.71) si (2.72) se transforma n
l
kk
=

_
a
kk

k1

j=1
l
kj
l
kj
, (2.73)
respectiv
l
ik
=
_
_
a
ik

k1

j=1
l
ij
l
kj
_
_
/ l
kk
, i = k + 1 : n. (2.74)
2.12 Rutine LAPACK si MATLAB
Prezentam pe scurt n continuare rutinele din biblioteca LAPACK si instruct iunile
sau funct iile limbajului MATLAB care rezolva problemele tratate n acest capitol.
LAPACK (Linear Algebra PACKage) [XV] este o biblioteca de rutine scrise
init ial n FORTRAN dar apelabile din mai multe limbaje de programare. Rutinele
implementeaza n special algoritmi la nivel de bloc (apeland rutinele BLAS de nivel
3) si de aceea ating maximul de performant a pe calculatoare cu memorie ierarhica.
Pentru ecare problema au fost alesi algoritmii cei mai abili si rapizi dintre cei
cunoscut i, buna parte dintre acestia ind adaptarea celor din bibliotecile LINPACK
118 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
[XIII] (dedicata n special rezolvarii sistemelor liniare) si EISPACK [XI,XII] (pentru
calculul valorilor proprii si probleme conexe), cele mai performante si folosite pa-
chete de programe de calcul numeric ale anilor 7080. De aceea se poate aprecia ca
LAPACK este cel mai modern si puternic instrument de calcul n algebra matriceala.

In plus, sursele LAPACK sunt disponibile gratuit (vezi http://www.netlib.org).


Numele rutinelor LAPACK respecta convent iile BLAS (vezi sect iunea 1.11),
adica au forma xyyzzz, unde x codica formatul de reprezentare a datelor, yy
reprezinta tipul matricei (vezi tabelul 1.1 pentru cele mai importante tipuri), iar
zzz arata operat ia executata.
Rutinele LAPACK sunt mpart ite n trei categorii:
rutine driver, care rezolva o problema completa, de exemplu aarea solut iei
unui sistem liniar;
rutine de calcul, care rezolva subprobleme sau completeaza rezolvarea unei
probleme, de exemplu calculul factorizarii LU sau ranarea iterativa a solut iei
unui sistem liniar;
rutine auxiliare.
Rezolvarii sistemelor liniare i sunt dedicate n LAPACK doua tipuri de rutine
driver:
1. Driverul simplu, cu numele de forma xyySV, rezolva sistemele (cu parte
dreapta multipla) AX = B sau A
T
X = B. De exemplu, xGESV se utilizeaza pentru
matrice A oarecare (implementand eliminarea gaussiana la nivel de bloc), xPOSV se
utilizeaza cand matricea A este simetrica pozitiv denita (implementand algoritmul
Cholesky la nivel de bloc) etc.
2. Driverul expert, cu numele xyySVX, care, n plus
scaleaza matricea A daca este necesar;
estimeaza numarul de condit ionare al matricei A;
raneaza iterativ solut ia.

In contextul rezolvarii de sisteme, rutinele de calcul cele mai importante sunt


urmatoarele:
1. xyyTRF calculeaza factorizarea PA = LU n cazul general (yy=GE), factori-
zarea Cholesky A = LL
T
pentru matrice simetrice (hermitice) pozitiv denite
(yy=PO), factorizarea cvasi-diagonala PAP
T
= LDL
T
pentru matrice sime-
trice (hermitice) (yy=SY, yy=HE).

In toate cazurile de mai sus exista rutine si
pentru matrice banda.
2. xyyTRS utilizeaza rezultatul factorizarii (iesirea rutinei xyyTRF corespunzatoa-
re) pentru a calcula solut ia unui sistem liniar.
3. xyyEQU scaleaza matricea A.
4. xyyRFS raneaza iterativ solut ia unui sistem liniar.
2.13. PROBLEME 119
5. xyyCON estimeaza inversul numarului de condit ionare, adica 1/(A).
6. xyyTRI calculeaza inversa unei matrice, utilizand rezultatul factorizarii.
MATLAB (MATrix LABoratory) [XIV] are o interfat a mai simpla, dar rutinele
sale implementeaza de asemenea algoritmi de mare performant a.
Rezolvarea sistemului liniar (eventual cu parte dreapta multipla) AX = B se
face apeland la operatorul de mpart ire la stanga; daca A si B sunt variabilele
memorand matricea coecient ilor sistemului si, respectiv, termenul sau drept, atunci
solut ia se calculeaza cu A\B. Sistemul (cu necunoscuta la stanga) XA = B se rezolva
utilizand operatorul de mpart ire la dreapta, solut ia ind B/A.

In ambele cazuri,
algoritmul implementat este eliminarea gaussiana cu pivotare part iala, indiferent
de tipul matricei.
Factorizarea PA = LU este calculata de funct ia lu, iar factorizarea Cholesky
de funct ia chol. Nu exista o funct ie dedicata factorizarii cvasi-diagonale.
Inversa unei matrice se calculeaza cu funct ia inv, iar determinantul cu det.
Reamintim ca n nici un caz solut ia unui sistem AX = B nu se calculeaza cu
inv(A)*B.
Pentru calculul numarului de condit ionare exista mai multe funct ii; cond cal-
culeaza exact
2
(A), ceea ce necesita mai multe operat ii decat rezolvarea sistemului
liniar Ax = b (algoritmul va prezentat n capitolul 5); rcond estimeaza 1/

(A),
utilizand algoritmul din nalul sect iunii 2.7; n ne, condest estimeaza 1/
1
(A) cu
un algoritm neprezentat n aceasta lucrare.
2.13 Probleme
P 2.1 Descriet i 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 = UL,
unde U este superior triunghiulara unitate si L este inferior triunghiulara.
P 2.2 Scriet i variantele vectoriale ale algoritmilor GPP si GPC, utilizand apeluri la
funct ii din biblioteca BLAS 1.
P 2.3 Fie A R
nn
o matrice strict diagonal dominanta pe coloane, i.e. cu proprietatea
|ajj| >
P
n
i=1,i =j
|aij|. Demonstrat i ca pivotarea part iala nu este necesara n procesul de
eliminare gaussiana si ca tot i multiplicatorii gaussieni sunt subunitari (n modul).
P 2.4 Fie matricea de transformare elementara Gauss-Jordan

M
k
= In m
k
e
T
k
, denita
de vectorul m
k
= [
1k
. . .
k1,k
0
k+1,k
. . .
nk
]
T
.
a. Fie x R
n
, cu x
k
= 0. Determinat i m
k
astfel ncat

M
k
x = x
k
e
k
.
b. Fie A R
nn
, avand submatricele lider principale A
[k]
nesingulare, k = 1 : n 1.
Scriet i un algoritm care, utilizand transformari Gauss-Jordan, diagonalizeaza matricea A,
i.e. genereaza

M1,

M2, . . . ,

Mn1 astfel ncat

Mn1 . . .

M2

M1A = D, cu D diagonala.
Care este numarul de operat ii ?
c. Introducet i pivotarea n algoritmul anterior.
P 2.5 Demonstrat i unicitatea factorizarii LDU n condit iile teoremei 2.4.
P 2.6 Demonstrat i ca daca A R
nn
admite o factorizare LDU unica, atunci subma-
tricele lider principale A
[k]
, k = 1 : n 1, sunt nesingulare. (Indicat ie: utilizat i reducerea
la absurd.)
120 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
P 2.7 Demonstrat i ca algoritmul GPP modicat conform descrierii din sect iunea 2.4.1
produce o factorizare LU pentru care |l
ik
| 1, pentru i > k.
P 2.8 Cum trebuie modicat algoritmul GPC aplicat matricei A R
nn
pentru a furniza
factorizarea LU cu permutari pe linii si pe coloane de forma PAQ = LU ? Demonstrat i
ca |u
kk
| |u
kj
|, pentru j > k (n plus, |l
ik
| 1, pentru i > k).
P 2.9 Adaptat i algoritmul de eliminare gaussiana cu pivotare part iala astfel ncat sa
calculeze factorizarea (2.32).
P 2.10 Scriet i o varianta la nivel de bloc a algoritmului de factorizare Crout cu pivotare
CROUTP.
P 2.11 Cum trebuie modicat i algoritmii 2.7 si 2.8 astfel ncat sa funct ioneze corect si
atunci cand dimensiunea n a matricei nu este multiplu al dimensiunii r a blocurilor ?
P 2.12 Prezentat i o varianta a algoritmului de rezolvare a sistemelor liniare de forma
Ax = b prin eliminare gaussiana cu pivotare part iala, fara a memora multiplicatorii.
P 2.13 Fie H R
nn
o matrice nesingulara superior Hessenberg (hij = 0, pentru
i > j + 1).
a. Daca toate submatricele lider principale ale lui H sunt nesingulare, adaptat i algo-
ritmul de eliminare gaussiana pentru rezolvarea sistemului liniar Hx = b, unde b R
n
;
calculat i numarul de operat ii.
b. Adaptat i algoritmul GPP pentru aceeasi problema.
c. Adaptat i algoritmul Crout de factorizare LU.
P 2.14 Se considera doua matrice: H R
nn
, superior Hessenberg nesingulara, si
R R
nn
, superior triunghiulara unitate. Prezentat i algoritmi ecient i pentru:
a. rezolvarea sistemului liniar HRx = b, cu b R
n
.
b. Atunci cand toate submatricele lider principale ale lui H sunt nesingulare, factori-
zarea Crout A = HR poate obt inuta printr-una din urmatoarele doua scheme:
Schema 1. 1. Calculeaza A = HR.
2. Calculeaza factorizarea Crout a lui A: A = LU.
Schema 2. 1. Calculeaza factorizarea Crout a lui H: H = L

U.
2. Calculeaza U =

UR.
Care dintre ele este mai ecienta ?
P 2.15 a. Propunet i un algoritm pentru rezolvarea sistemului liniar Ax = b, unde
A R
nn
este nesingulara si b C
n
, utilizand numai aritmetica reala.
b. Prezentat i un algoritm pentru rezolvarea ecuat iei matriceale AX = B, n care
A R
nn
este nesingulara si B R
nm
. (Indicat ie: utilizat i GPP.)
c. Idem, dar pentru ecuat ia XA = B, cu A R
nn
, B R
mn
.
P 2.16 Se da matricea A R
nn
nesingulara. Utilizand rezultatul algoritmului de elim-
inare gaussiana cu pivotare part iala (Mn1Pn1 . . . M1P1A = U) sau factorizarea LU
(PA = LU), scriet i algoritmii pentru rezolvarea sistemelor A
T
y = c, A
T
Y = C, unde
c R
n
, C R
nm
.
P 2.17 Prezentat i un algoritm ecient pentru rezolvarea sistemului liniar A
k
x = b, unde
A R
nn
este nesingulara, b R
n
si k N, k > 1.
P 2.18 Daca A, B R
nn
sunt matrice nesingulare, prezentat i un algoritm ecient de
rezolvare a sistemului liniar (AB)
k
x = c, unde c R
n
.
2.13. PROBLEME 121
P 2.19 Sistemul complex Cz = w (cu C = A+ iB, z = x + iy, w = u + iv) se poate scrie
(prin decomplexicare) n forma

A B
B A

x
y

u
v

Ce este preferabil: (a) rezolvarea sistemului Cz = w cu operat ii complexe sau (b) rezolvarea
sistemului decomplexicat cu operat ii reale ?
P 2.20 Se presupune ca A R
nn
are o factorizare LU si ca L si U sunt cunoscut i.
Prezentat i un algoritm care calculeaza elementul din pozit ia (i, j) a matricei A
1
, cu
aproximativ (n j)
2
+ (n i)
2
opi.
P 2.21 Detaliat i algoritmii de calcul al inversei unei matrice A R
nn
si al det(A),
utilizand eliminarea gaussiana cu pivotare completa.
P 2.22 Se dau A R
nn
, B R
nr
, C R
rn
, D R
rr
, matricele A si D ind
inversabile. Fie A+ = A+BD
1
C (actualizare de rang r a matricei A). Cazuri particulare:
1

A, D simetrice pozitiv denite, C = B


T
; 2

r = 1, adica A+ = A +bc
T
/ (actualizare
de rang 1).
a. Demonstrat i ca are loc formula (Sherman-Morrison-Woodbury):
A
1
+
= A
1
A
1
BD
1
+
CA
1
, unde D+ = D +CA
1
B.
b. Scriet i un algoritm de calcul al matricei A
1
+
, presupunand A
1
cunoscuta (actu-
alizarea inversei). Considerat i cazurile particulare 1

si 2

. Evaluat i numarul de operat ii.


c. Se considera matricea H =

A B
C D

. Demonstrat i ca
H
1
=

A
1
+
A
1
BD
1
+
D
1
+
CA
1
D
1
+

.
P 2.23 Fie u, v R
n
doi vectori nenuli si matricea A = In +uv
T
.
a. Prezentat i un algoritm ecient pentru calculul determinantului matricei A. Cand
este A nesingulara ?
b. Daca A este nesingulara si b R
n
, scriet i un algoritm ecient pentru rezolvarea
sistemului liniar Ax = b.
P 2.24 Matricea A R
nn
de mai jos este un exemplu (construit special n acest scop)
n care factorul de crestere atinge valoarea maxima n algoritmul GPP.
A =
2
6
6
6
6
6
4
1 0 . . . 0 1
1 1 . . . 0 1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 1 . . . 1 1
1 1 . . . 1 1
3
7
7
7
7
7
5
.
Demonstrat i ca n algoritmul GPP nu se efectueaza nici o permutare si ca = 2
n1
.
P 2.25 Fie A R
nn
si x R
n
. Demonstrat i inegalitatea cond(A, x) (A) (relat ia
(2.58)).
122 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAT II LINIARE
P 2.26 Se da A R
nn
. Sa se gaseasca matricele diagonale D1 si D2 astfel ncat ecare
linie si coloana din D1AD2 sa aiba norma egala cu 1. (Impunandu-se restrict ia ca
elementele matricelor D1 si D2 sa e puteri ale bazei de numerat ie , sa se construiasca
D1 si D2 astfel ncat liniile si coloanele lui D1AD2 sa aiba norma cuprinsa n intervalul
[1/, 1].)
P 2.27 Fie B =

A 0
R A

, cu A, R R
nn
, nesingulare, R superior triunghiulara. Se
presupune ca factorizarea LU a lui A exista si este cunoscuta (A = LU).
a. Scriet i un algoritm pentru calculul factorizarii LU a lui B, B =

L

U.
b. Propunet i un algoritm pentru rezolvarea sistemului liniar Bx = d, n care d R
2n
.
Calculat i numarul de operat ii pentru ambii algoritmi.
P 2.28 Fie A R
2n2n
o matrice nesingulara cu toate submatricele lider principale nesin-
gulare, de forma A =

A1 A2
A3 A4

, cu A1, A2, A3, A4 R


nn
si A3 superior triunghiulara.
a. Scriet i un algoritm pentru rezolvarea sistemului liniar Ax = b, cu b R
2n
.
b. Aceeasi problema, dar presupunand doar ca A este nesingulara.
P 2.29 Fie A R
nn
o matrice nesingulara tridiagonala (aij = 0, pentru i > j + 1 sau
i < j 1).
a. Adaptat i algoritmul de eliminare gaussiana la acest tip de matrice.
b. Prezentat i un algoritm care rezolva sistemul Ax = b, cu b R
n
.
c. Daca matricea A este simetrica si pozitiv denita, adaptat i algoritmul de factorizare
Cholesky pentru A.
P 2.30 Detaliat i o procedura de calcul al matricei F = CE
1
din (2.62), pentru cazul
s = 2, utilizand eliminarea gaussiana cu pivotare part iala.
P 2.31 Demonstrat i relat ia (2.65) (care margineste cresterea elementelor matricei sime-
trice A n timpul execut iei algoritmul FCD, de factorizare cvasi-diagonala cu pivotare
completa).
P 2.32 Detaliat i permutarile efectuate n algoritmul de factorizare cvasi-diagonala cu pi-
votare completa (schema FCDPC1), operand numai n triunghiul inferior al matricei si-
metrice date.
P 2.33 Scriet i un algoritm de calcul al factorului Cholesky L al unei matrice A R
nn
pozitiv denite, n care elementele lui L sa e calculate prin operat ii Saxpy (si nu DOT,
ca n algoritmul CHOL). Indicat ie: algoritmul este asemanator eliminarii gaussiene.
P 2.34 Scriet i o varianta la nivel de bloc a algoritmului de factorizare Cholesky a unei
matrice simetrice pozitiv denite.
P 2.35 Fie A R
nn
o matrice nesingulara inferior bidiagonala, si T = AA
T
. Prezentat i
un algoritm ecient pentru calculul factorizarii Cholesky a matricei T (demonstrat i ntai
ca T este simetrica si pozitiv denita).
P 2.36 Adaptat i algoritmul CHOL pentru factorizarea matricelor simetrice pozitiv de-
nite banda de lat ime r.
P 2.37 Daca matricea A R
nn
este simetrica si pozitiv denita, propunet i un algo-
ritm pentru factorizarea Cholesky A = RR
T
, unde R este superior triunghiulara si are
elementele diagonale pozitive.
P 2.38 Fie A R
nn
o matrice simetrica si pozitiv denita. Scriet i un algoritm de calcul
al factorizarii A = LDL
T
, cu L inferior triunghiulara unitate si D diagonala. (A = LDL
T
mai este numita factorizare Cholesky fara radical.)
Capitolul 3
Problema celor mai mici
patrate

In acest capitol vom prezenta principalele metode numerice de rezolvare a sistemelor


de ecuat ii liniare
Ax = b, (3.1)
n care matricea A R
mn
si vectorul b R
m
sunt date, iar m = n, adica
numarul ecuat iilor este diferit de cel al necunoscutelor.

Intrucat, de regula, un
sistem supradeterminat (cu m > n) nu are solut ii, iar un sistem subdeterminat (cu
m < n) nu are solut ie unica, pentru a asigura buna formulare a problemei de calcul,
n prima situat ie trebuie sa redenim, iar n a doua trebuie sa precizam not iunea
de solut ie a sistemului (3.1).

In cazul m > n, o reformulare naturala a problemei (3.1) consta n a cere deter-


minarea unei solut ii aproximative a sistemului (3.1), adica a unui vector
x

R
n
astfel ncat reziduul corespunzator r

= b Ax

sa e, ntr-un anumit
sens, c at mai mic. (Altfel spus, vectorul b trebuie sa e aproximat cat mai bine
printr-o combinat ie liniara a coloanelor lui A.)

Intr-o exprimare mai precisa, aceasta
nseamna ca x

trebuie sa minimizeze funct ia


(x) = (b Ax), (3.2)
unde () este o norma pe R
m
, aleasa n mod adecvat.

In cazul m < n, un criteriu natural de select ie a unei singure solut ii x

R
n
a
sistemului (3.1) impune ca aceasta sa e, ntr-un anumit sens, cat mai economica,
de exemplu sa aiba o lungime, adica o norma, c at mai mic a. Altfel spus, x

trebuie
sa minimizeze funct ia
(x) = (x)|
Ax=b
, (3.3)
unde () este o norma pe R
n 1
.
1
Notat ia din (3.3) spune c a este restrict ia normei pe mult imea X a solut iilor sistemului
(3.1). Desigur, pentru ca problema minimiz arii funct iei s a aib a sens, este necesar s a presupunem
c a sistemul liniar (3.1) are cel put in o solut ie, i.e. b ImA.
123
124 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Subliniem din start ca alegerea normelor din (3.2) si (3.3) depinde de natura
problemei considerate si, n acelasi timp, determina specicul metodelor de calcul
utilizate pentru rezolvarea ei. (De exemplu, n cazul normelor
1
sau

se obt in 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 euclidian a


=
2
, iar terminologia utilizata va urmatoarea.
1.

In cazul m n problema de minimizare
b Ax

= min
xR
n
b Ax (3.4)
a normei euclidiene a reziduului r = b Ax se numeste problema (liniar a) a
celor mai mici patrate (CMMP), iar solut ia ei x

este, prin denit ie, pseudo-


solut ia sistemului (3.1) n sensul CMMP. Vectorul b

= Ax

constituie cea
mai buna aproximare a lui b printr-o combinat ie liniara a coloanelor matricei
A, i.e. pe ImA, iar reziduul de norma minima r

= bAx

reprezinta eroarea
de aproximare optimala.
2.

In cazul m n solut ia problemei de minimizare cu restrict ii liniare
x

= min
Ax=b
x (3.5)
este, prin denit ie, solut ia normal a n sensul CMMP (i.e. solut ia de norma
euclidiana minima) a sistemului (3.1).
Problemele de tip CMMP enunt ate mai sus apar sub diverse forme (inclusiv cu
date complexe) n multe aplicat ii care, de exemplu, vizeaza aproximarea funct iilor,
prelucrarea statistica a datelor experimentale, modelarea si identicarea sistemelor
dinamice, prelucrarea semnalelor etc.
Exemplul 3.1 Consideram un proces descris printr-o dependent a funct ionala
y = f
0
(u), cunoscuta doar part ial din date experimentale constand ntr-o mult ime
de perechi intrare-iesire (u
i
, y
i
), unde y
i
= f
0
(u
i
), i = 1 : m.
Se pune problema gasirii unei expresii analitice aproximative f pentru funct ia
f
0
, sub forma unei combinat ii liniare cu coecient ii c
1
, c
2
, . . . , c
n
a n funct ii date
g
1
, g
2
, . . . , g
n
, i.e.
f(u) =
n

j=1
c
j
g
j
(u),
astfel ncat erorile de aproximare (sau reziduurile)
r
i
= y
i
f(u
i
), i = 1 : m,
evaluate n punctele date (u
i
, y
i
), sa e cat mai mici.

In cazul tipic m > n, formularea n sens CMMP a problemei de aproximare


considerate mai sus consta n determinarea coecient ilor c
j
, j = 1 : n, astfel ncat
eroarea medie patratica
r
2
=
m

i=1
r
2
i
=
m

i=1
_
_
y
i

j=1
c
j
g
j
(u
i
)
_
_
2
(3.6)
3.1. TRANSFORM

ARI ORTOGONALE 125


sa e minima.
Introducand matricea A R
mn
cu elementele a
ij
= g
j
(u
i
), i = 1 : m,
j = 1 : n, precum si vectorii b = [ y
1
y
2
. . . y
m
]
T
R
m
si x = [ c
1
c
2
. . . c
n
]
T
R
n
,
problema minimizarii lui (3.6) se scrie evident sub forma sintetica (3.4).
Exemplul 3.2

In problemele de identicare si estimare a parametrilor, relat iile
din exemplul anterior apar scrise sub forma
y
i
=
n

j=1
c
j
g
j
(u
i
) +r
i
, i = 1 : m,
n care acum reziduurile r
i
reprezinta erori (sau zgomote) de masura si, n consecint a,
au o descriere statistica. Se poate arata ca, n anumite condit ii standard, estimarile
optimale ale parametrilor x = [c
1
. . . c
n
]
T
sunt solut ii 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 consecint a se trateaza n spiritul principiului CMMP. Pentru detalii
si aplicat ii specice, cititorul poate consulta [?, ?].
Teoria problemelor CMMP este intim legata de geometria spat iului euclidian
R
m
, n special de not iunea 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 sect iuni 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), insist and totodata asupra unor
aspecte practice importante privind condit ionarea problemelor considerate precum
si stabilitatea numerica a algoritmilor de calcul propusi.
3.1 Transformari ortogonale

In aceasta sect iune vom deni cele doua tipuri de transformari ortogonale utilizate
n calculul numeric si vom descrie proprietat ile lor importante.
3.1.1 Reectori
Consideram spat iul R
m
cu produsul scalar (x, y) = y
T
x si notam cu x = (x
T
x)
1/2
norma euclidiana indusa. Amintim ca o matrice U R
mm
se numeste ortogonala
daca U
T
U = I
m
.
2
Aici este esent ial faptul c a norma euclidian a considerat a n (3.4) si (3.5) este invariant a n
raport cu grupul transform arilor ortogonale.

In leg atur a cu aceste not iuni, cititorul este invitat sa
consulte capitolul 1.
126 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Denit ia 3.1 Fie u R
m
un vector normat, i.e. u = 1. O matrice U R
mm
de forma
U = I
m
2uu
T
(3.7)
se numeste reector elementar de ordinul m sau transformare Householder
3
.
Se constata imediat ca orice reector elementar U este o matrice simetric a si
ortogonal a.

Intr-adevar, produsul exterior uu
T
este evident o matrice simetrica, iar
n virtutea condit iei de normare, u
2
= u
T
u = 1, avem
U
T
U = U
2
=
_
I
m
2uu
T
_ _
I
m
2uu
T
_
= I
m
4uu
T
+ 4u(u
T
u)u
T
= I
m
.
Asadar, un reector elementar este o transformare involutiva, i.e. coincide cu pro-
pria sa inversa.

In cele ce urmeaza vom xa un ntreg k 1 : m1 si vom considera ca vectorul


u = 0 din (3.7), nu neaparat normat, are primele k1 componente nule, i.e. u
i
= 0,
i = 1 : k 1. Pentru precizare, n acest caz vom scrie
U
k
= I
m

uu
T

,
def
=
1
2
u
2
(3.8)
unde
u = [ 0 . . . 0 u
k
. . . u
m
]
T
(3.9)
si vom spune ca U
k
este un reector de ordin m si indice k. Vectorul u se numeste
vector Householder, iar este factorul de normare corespunzator. (Uneori, n loc de
se utilizeaza scalarul =
1
. Vom reveni asupra acestei chestiuni n sect iunea
urmatoare.) Observam ca datorit a zerourilor din (3.9) matricea U
k
are structura
U
k
=
_
I
k1
0
0

U
1
_
, (3.10)
n care

U
1
este evident un reector de ordin mk + 1 si indice 1.
Reectorii U
k
cu structura precizata mai sus au doua proprietat i importante
4
.
AA. Fiind dat i un reector U
k
si un vector x R
m
, aplicarea transform arii
U
k
, i.e. calculul vectorului transformat y = U
k
x, se face simplu, observand ca
U
k
x = (I
m

uu
T

)x = x
u(u
T
x)

= x u, (3.11)
unde, evident
=
u
T
x

. (3.12)
Relat ia (3.11) scrisa pe componente (unde amintim ca u
i
= 0, i = 1 : k 1)
arata ca premultiplicarea cu U
k
nu modic a primele k 1 componente ale lui x. De
aceea, transformarea y = U
k
x se efectueaza avantajos pe loc n x, conform schemei
x y = U
k
x. Considerand ca reectorul U
k
este denit de vectorul u R
m
precum
si de scalarul , procedura de calcul este urmatoarea.
3
Transform arile de tip (3.7) au fost introduse n calculul numeric de A. Householder n 1958.
De regul a, mai departe vom omite calicativul elementar.
4
La fel ca n capitolul 1, sigla AA indic a expunerea unor aspecte algoritmice semnicative.
3.1. TRANSFORM

ARI ORTOGONALE 127


0

u
H
(u
T
x)u

u
x U
k
x
>
>
>
>
>
>
>
>
>
>
>
>

Fig. 3.1: Efectul aplicarii unui reector U asupra unui vector x, n R


2
Algoritmul 3.1 (Se dau un reector U
k
si un vector x R
m
. Se
aplica transformarea x U
k
x).
1. = (

m
i=k
u
i
x
i
) /.
2. x
i
x
i
u
i
, pentru i = k : m
Comentarii.

In esent a, la pasul 1 se calculeaza un produs scalar (de exemplu,
utilizand funct ia DOT), iar la pasul 2 se face o actualizare de tip Saxpy a lui x
(funct iile DOTsi Saxpy au fost denite n capitolul 1). De ecare data se opereaz a
asupra unor vectori de dimensiune m k + 1. Prin urmare, numarul de operat ii
necesar este aproximativ N
op
= 4(mk).
Semnicat ia geometrica a transformarii (3.11) rezult a din gura 3.1, unde pentru
claritate am considerat m = 2 si u = 1, deci = 2u
T
x (vezi (3.12)), iar (u
T
x)u
este proiect ia ortogonala a lui x pe direct ia lui u.

In general, transformarea U
k
reprezinta simetria (reexia) n raport cu hiperplanul H (oglinda) care trece
prin origine si are vectorul normal u.

In practica, algoritmul 3.1 apare extrem de frecvent.


Aplicarea transformarii B = U
k
A, unde A R
mn
este o matrice cu n coloane,
iar U
k
act ioneaza la stanga, se face partit ionand A pe coloane. Avem
A = [a
1
a
2
. . . a
n
] U
k
A = [U
k
a
1
U
k
a
2
. . . U
k
a
n
],
deci calculul se poate desfasura pe loc n tabloul A, utilizand algoritmul 3.1 pentru
actualizarea ecarei coloane a matricei A.
% Se aplica transformarea A U
k
A
1. Pentru j = 1 : n
1. a
j
U
k
a
j
Conform celor spuse mai sus, premultiplicarea cu U
k
nu modica primele k 1
linii ale matricei A. Mai precis, partit ionand A conform cu U
k
din (3.10), avem
A =
_
B
C
_
U
k
A =
_
B

U
1
C
_
.
128 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Pe de alta parte, n forma compacta, similara cu (3.11), avem evident
U
k
A = (I
m

uu
T

)A = A uv
T
, unde v =
A
T
u

.
Altfel spus, matricea transformata B = U
k
A este o modicare de rang 1 a lui A.
Aplicarea transformarii C = AU
k
, unde acum A R
lm
are m coloane,
iar U
k
act ioneaza la dreapta, se face partit ionand A pe linii si observand ca, n
virtutea simetriei lui U
k
, avem AU
k
= (U
k
A
T
)
T
. Prin urmare, asupra coloanelor
lui A
T
, adica a liniilor lui A, are loc aceeasi transformare ca mai sus.

In particular,
postmultiplicarea cu U
k
nu modica primele k 1 coloane ale matricei A.
AA.

In calculul numeric generarea reectorilor se face n scopul introducerii
de zerouri ntr-un vector. Pe scurt, ind dat un vector x R
m
, putem determina
un reector U
k
de forma (3.8) astfel ncat ultimele mk componente ale vectorului
transformat s a e nule, i.e. (U
k
x)
i
= 0, pentru i = k +1 : m. Formularea precisa a
acestui fapt esent ial trebuie ret inuta.
Propozit ia 3.1 Fix am un ntreg k 1 : m1 si e x R
m
un vector astfel nc at

2
def
=
m

i=k
x
2
i
= 0. (3.13)
Vectorul Householder u R
m
av and componentele
u
i
=
_
0, pentru i = 1 : k 1
x
k
+, pentru i = k
x
i
, pentru i = k + 1 : m
(3.14)
precum si scalarul

def
=
1
2
u
2
= u
k
(3.15)
denesc un reector U
k
de ordin m si indice k astfel nc at
(U
k
x)
i
=
_
x
i
, pentru i = 1 : k 1
, pentru i = k
0, pentru i = k + 1 : m.
(3.16)
Demonstrat ie.

Intr-adevar, datorita alegerii (3.14), avem
=
1
2
m

i=k
u
2
i
=
1
2
_
(x
k
+)
2
+
m

i=k+1
x
2
i
_
=
2
+x
k
= u
k
,
deci (3.15) are loc. Mai departe, din (3.12) rezulta
=

m
i=1
u
i
x
i

=
x
k
(x
k
+) +

m
i=k+1
x
2
i

=

2
+ x
k

= 1.

In virtutea acestui fapt, (3.16) rezulta imediat din (3.11) si (3.14).


3.1. TRANSFORM

ARI ORTOGONALE 129


Relat iile (3.13)(3.15) furnizeaza un algoritm aproape complet pentru calculul
reectorului U
k
cu proprietatea ceruta. Constanta este determinata, mai put in
semnul, de faptul ca U
k
este o matrice ortogonala, deci U
k
x = x (vezi (3.13) si
(3.16)). Pentru a evita pierderea de cifre semnicative la calculul componentei
u
k
= x
k
+ , semnul lui se alege acelasi cu cel al lui x
k
. (Ment ionam ca
aceasta alegere este esent iala pentru stabilitatea numerica a algoritmului rezultat.)
Considerat iile de mai sus pot rezumate astfel.
Algoritmul 3.2 (Se dau un ntreg k 1 : m 1 si un vector
x R
m
cu proprietatea (3.13). Se determina un reector U
k
astfel
ncat (U
k
x)
i
= 0, pentru i = k + 1 : m.)
1. = sgn(x
k
)
_
m
i=k
x
2
i
_
1/2
2. u
k
= +x
k
; u
i
= x
i
, pentru i = k + 1 : m
3. = u
k
% Vectorul transformat
4. x
k
= ; x
i
= 0, pentru i = k + 1 : m
Comentarii. Subliniem nca o data ca reectorul U
k
nu se formeaza niciodata
ca matrice, ci este complet denit numai prin intermediul vectorului u (ale carui
prime k 1 componente sunt nule) precum si al scalarului . Ultimele componente
u
i
, i = k + 1 : m, ale lui u se memoreaza natural pe pozit iile elementelor anulate
din x, dupa aplicarea transformarii (vezi pasii 2 si 4). Componenta u
k
si scalarul
se memoreaza separat. Numarul de operat ii necesar este N
op
2(mk) (plus o
extragere de radical), vezi pasul 1.
Implementarea
5
algoritmului 3.2 t ine seama de urmatoarele considerente speci-
ce.
1

. Pentru a evita eventualele depasiri n virgula mobil a, posibile daca elementele


x
i
, i = k : m, au valori absolute foarte mari sau foarte mici, calculul normei
euclidiene de la pasul 1 se asociaza cu scalarea vectorului corespunzator, e.g. prin
raportare la M = max
i=k:m
|x
i
|. (Pentru indicat ii mai precise, vezi sect iunea 3.1.2.)
2

. Daca n situat ia de la punctul 1

rezulta M = 0 sau = 0, i.e. toate


componentele x
i
, i = k : m, ale vectorului dat x sunt deja nule, atunci convenim
sa consideram U
k
= I
m
si sa semnalam aceasta situat ie punand = 0. (Matricea
unitate I
m
este ortogonala si poate asimilata cu un reector impropriu). Aceeasi
convent ie se adopta daca algoritmul 3.2 este apelat pentru k = m.
3

. Deoarece vectorul Householder u este esent ial determinat numai ca direct ie,
la pasul 2 se poate face scalarea acestuia, e.g. luand
2

. u
k
= 1 +
x
k

; u
i
=
x
i

, i = k + 1 : m.
Se vede usor can acest caz rezult a = u
k
, deci organizarea procedurala a calculelor
se simplica, n particular se memoreaza separat un singur numar
6
. (Cresterea
numarului de operat ii este fara important a.) Rezum and cele de mai sus, obt inem
5
Convenim ca funct ia sgn : R R utilizat a n algoritmii ce urmeaz a este denit a de
sgn(x) =

1, dac a x < 0
1, dac a x 0
. Atragem atent ia c a utilizarea unor funct ii sgn predenite n di-
verse limbaje de nivel nalt (pentru care de regul a sgn(0) = 0) poate conduce la rezultate eronate.
6
Alternativ, u poate scalat astfel nc at u
k
= 1. Aceast a posibilitate va discutat a mai
departe.
130 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
% Forma implementabila a algoritmului 3.2.
1. = 0
2. Daca k < m
1. =
_
m
i=k
x
2
i
_
1/2
2. Daca = 0
1. sgn(x
k
)
2. x
i
u
i
= x
i
/, pentru i = k : m
3. u
k
= 1 +x
k
% Componenta k a vectorului transformat
4. x
k
=
Pe scurt, la pasul 2.1 are loc calculul normei, careia mai departe i se atribuie
semnul corespunzator, iar la pasul 2.2.2 are loc scalarea vectorului Householder u.
Componentele u
i
, i = k + 1 : m, care constituie partea esent iala a vectorului u, se
memoreaza pe pozit iile corespunzatoare din x.

In nal, se calculeaza si se memo-
reaza separat scalarul = u
k
, iar componenta de indice k a vectorului transformat
este returnata pe pozit ia corespunzatoare x
k
, vezi (3.16).
Observat ia 3.1

In unele aplicat ii apar reectori modicat i U
k
, de forma (3.8), n
care, spre deosebire de (3.9), vectorul Householder u are ultimele k 1 componente
nule, i.e.
u = [ u
1
. . . u
mk+1
0 . . . 0 ]
T
. (3.17)

In consecint a, matricea U
k
are acum structura
U
k
=
_

U
1
0
0 I
k1
_
, (3.18)
deci, n procesul de aplicare a transformarii x U
k
x, premultiplicarea cu U
k
nu modica ultimele k 1 componente ale lui x. De asemenea, este clar ca prin
alegerea adecvata a vectorului Householder u, putem genera un reector modicat
U
k
astfel ncat primele mk componente ale vectorului transformat s a e nule, i.e.
(U
k
x)
i
= 0, i = 1 : m k. Scrierea algoritmilor de transformare si generare a
reectorilor modicat i, perfect similari cu algoritmii 3.1 si 3.2 stabilit i anterior, este
propusa ca exercit iu.
Proceduri de calcul cu reectori

In problemele de calcul numeric relativ simple, algoritmii 3.1 si 3.2 (ultimul, sub
forma sa implementabila) pot utilizat i ca atare.

In practica profesionala, cal-
culele se organizeaza procedural, exploatand faptul ca algoritmii ment ionat i sunt
vectorizat i n mod natural.
Pentru nceput, observam ca, n acord cu (3.10), partea activa a unui reector
U
k
de indice k este ntotdeauna un reector de indice 1 care act ioneaza asupra unui
vector de dimensiune adecvata. De aceea, n continuare vom considera k = 1.
AA. Fie x R
m
un vector dat. Generarea unui reector U
1
astfel ncat (U
1
x)
i
=
0, i = 2 : m, adica
U
1
x = e
1
, (3.19)
se face utilizand forma implementabila a algoritmului 3.2 n care punem k = 1.
3.1. TRANSFORM

ARI ORTOGONALE 131


_

_
x
1
x
2
.
.
.
x
m
_

_
U
1

u
2
.
.
.
u
m
_

_
_

_
x
1
.
.
.
x
k1
x
k
x
k+1
.
.
.
x
m
_

_
U
k

_
x
1
.
.
.
x
k1

u
k+1
.
.
.
u
m
_

_
Fig. 3.2: Efectul aplicarii procedurii RFG asupra vectorului x R
m
; n stanga,
= RFG(x); n dreapta, = RFG(x(k : m))
RFG % Se da x R
m
. Se genereaza un reector U
1
cu proprie-
tatea (3.19) si se aplica transformarea. Partea esent iala u
i
,
i = 2 : m, a vectorului Householder u se memoreaza pe
pozit iile corespunzatoare din x. La aplicarea ulterioara a
transformarii se considera u
1
= .
1. = 0
2. Daca m > 1 atunci
1. = x % NRM2
2. Daca = 0 atunci
1. Daca x
1
= 0 atunci sgn(x
1
)
2. x
i
u
i
= x
i
/, pentru i = 1 : m % SCAL
3. u
1
= 1 +x
1
4. x
1

Comentarii. La pasul 2.1 nu am explicitat modul de calcul al normei euclidiene
pentru a aminti necesitatea scalarii lui x. La pasul 2.2.2 are loc scalarea lui u, spe-
cica procedurii RFG. Avandn vedere considerente de ecient a, la pasii ment ionat i
se recomanda utilizarea procedurilor NRM2 si SCAL din BLAS. Observam ca daca
vectorul dat x este nul sau are o singura componenta, atunci algoritmul returneaza
= 0, ceea ce, conform convent iei adoptate anterior, nseamna ca U
1
= I
m
.
Modul de apel al procedurii de generare (evident iind argumentele de intrare si
iesire) este [u, , x] = RFG(x). Pentru a sublinia ca, dupa cum am spus, partea
esent iala u
i
, i = 2 : m, a vectorului Householder este returnata n x, mai departe
vom nota
= RFG(x),
n care x apare ca tablou de intrare/iesire.

In consecint a, execut ia instruct iunilor
= RFG(x), respectiv = RFG(x(k : m)), are efectul indicat n gura 3.2.
AA. Fie acum U
1
un reector dat, generat de RFG, iar x R
m
un vector
arbitrar. Aplicarea transformarii
x U
1
x (3.20)
132 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Transformare Funct ie Mod de apel Apel rapid Obs.
Reector
U
1
def
= (u, )
x R
m
U
1
x = e
1
x U
1
x
[u, , x] = RFG(x)
x = RF(u, , x)
= RFG(x)
RF(u, , x)
u
1
=
Reector
modicat
U
1
def
= (u, )
x R
m
U
1
x = e
m
x U
1
x
[u, , x] = mRFG(x)
x = mRF(u, , x)
= mRFG(x)
mRF(u, , x)
u
m
=
Tabelul 3.1: Proceduri de calcul cu reectori
se face avand n vedere algoritmul 3.1 precum si convent ia specica de memorare
a vectorului Householder u. Not and = si t inand seama ca u
1
= , vectorul
transformat poate calculat efectuand numai adunari si nmult iri.
RF % Se dau un reector U
1
generat de RFG si un vector
x R
m
. Se aplica transformarea x U
1
x.
1. Daca = 0 atunci
1. t = u
1
2. u
1
=
3. = (

m
i=1
u
i
x
i
)/ % DOT
4. x
i
x
i
+u
i
, pentru i = 1 : m % SAXPY
5. u
1
= t
Comentarii. Deoarece = 0 semnaleaza ca U
1
= I
m
, transformarea se aplica
efectiv numai daca = 0. Prima componenta u
1
a lui u nu este alterata, deoarece
ea cont ine informat ii despre vectorul transformat n procesul de generare a reec-
torului.
Modul de apel al procedurii este x = RF(u, , x). Deoarece transformarea se
efectueaza ntotdeauna pe loc n x, vom scrie simplu RF(u, , x).
Procedurile de calcul cu reectori modicat i se scriu similar. De exemplu, gene-
rarea unui reector (modicat) U
1
astfel ncat (U
1
x)
i
= 0, i = 1 : m1, adica
U
1
x = e
m
,
se face nlocuind pur si simplu x
1
cu x
m
n RFG. (Desigur, acum partea esent iala
a vectorului Householder u este u
i
, i = 1 : m 1, iar u
m
= .) Scrierea detaliata
a procedurilor de generare si aplicare a reectorilor modicat i, notate mai departe
mRFG si respectiv mRF, este propusa cititorului ca exercit iu.
Procedurile de calcul cu reectori sunt prezentate sintetic n tabelul 3.1.
Subliniem ca, n general, procedurile de generare si aplicare a reectorilor apar
n perechi, modicarea convent iei de memorare a vectorului Householder din RFG
antrenand dupa sine o modicare corespunzatoare n RF.
Ilustram utilizarea procedurilor prin doua exemple simple, dar extrem de im-
portante pentru ntreaga expunere ulterioara.
3.1. TRANSFORM

ARI ORTOGONALE 133


Exemplul 3.3 Se da o matrice A R
mn
. Vom determina un reector
U
1
R
mm
astfel ncat elementele subdiagonale din prima coloana a matricei
B = U
1
A sa e nule; apoi, vom calcula matricea transformata A B = U
1
A.
Deoarece transformarea se aplica la stanga, partit ion am A pe coloane. Notand
a
j
= A(:, j), j = 1 : n, trebuie sa avem U
1
a
1
= e
1
, deci U
1
se determina aplicand
procedura RFG primei coloane a
1
a matricei A. Totodata are loc si transformarea
acestei coloane, i.e. scalarul este returnat pe prima pozit ie a
11
.

In continuare
transformarea celorlalte coloane a
j
, j = 2 : n, se face aplicand repetat procedura
RF. Prin urmare, rezultatul dorit se obt ine pe loc n A utilizand algoritmul
QR
1
1. = RFG(A(:, 1))
2. Pentru j = 2 : n
1. RF(A(:, 1), , A(:, j)).
Desigur, reectorul U
1
obt inut la pasul 1 poate aplicat mai departe unei alte
matrice, atata timp cat partea esent iala A(2 : m, 1) a vectorului Householder u
precum si scalarul sunt disponibili. De exemplu, daca C R
lm
, atunci trans-
formarea la dreapta C CU
1
se efectueaza partit ionand C pe linii, i.e.
1. Pentru i = 1 : l
1. RF(A(:, 1), , C(i, :)).

Exemplul 3.4 Se da o matrice A R


mn
. Vom determina un reector
Z
1
R
nn
astfel ncat elementele nediagonale din prima linie a matricei B = AZ
1
sa e nule; apoi vom calcula matricea transformata A B = AZ
1
.
Deoarece transformarea se aplica la dreapta, partit ion am A pe linii. Rat ionand
la fel ca mai sus, algoritmul de calcul este
LQ
1
1. = RFG(A(1, :))
1. Pentru i = 2 : m
1. RF(A(1, :), , A(i, :)).

Pentru a evident ia avantajele organizarii procedurale, propunem cititorului sa


scrie detaliat algoritmii de calcul stabilit i mai sus, nlocuind apelurile la procedurile
RFG si RF cu secvent ele de instruct iuni scalare corespunzatoare. Avand n
vedere expunerea ulterioara, ment ionam ca acesti algoritmi efectueaza prima etapa
de triangularizare a matricei A prin transformari ortogonale la stanga si respectiv
la dreapta (vezi sect iunile 3.3 si 3.6).
3.1.2 Rotat ii
Dupa cum se stie, n cazul m = 2 o rotat ie (plana) de unghi se reprezinta prin
matricea
P =
_
cos sin
sin cos
_
. (3.21)

In cazul general m 2, vom adopta urmatoarea denit ie.


134 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Denit ia 3.2 Fix am doi ntregi i = k 1 : m. O matrice P
ki
R
mm
de forma
P
ki
=
_

_
I
k1
c s
I
ik1
s c
I
mi
_

_
, unde c
2
+s
2
= 1 (3.22)
se numeste rotat ie de ordinul mn planul (k, i) sau transformare Givens
7
.
Se constata imediat ca orice rotat ie P
ki
este o matrice ortogonal a.
Rotat iile P
ki
cu structura precizata mai sus au doua proprietat i importante.
AA. Fiind date o rotat ie P
ki
si un vector x R
m
, aplicarea transform arii P
ki
,
i.e. calculul vectorului transformat y = P
ki
x, se face extrem de simplu. Din (3.22)
se vede ca P
ki
modica numai elementele lui x cu aceiasi indici, deci calculele se
desfasoara avantajos pe loc n x, utilizand urmatoarea procedura.
Algoritmul 3.3 (Se dau o rotat ie P
ki
si un vector x R
m
. Se
aplica transformarea x P
ki
x).
1. t = x
k
2. x
k
= ct +sx
i
3. x
i
= cx
i
st
Numarul de operat ii necesar este N
op
= 6.
Aplicarea transformarii B = P
ki
A, unde A R
mn
este o matrice cu n coloane,
se face utilizand algoritmul 3.3 pentru actualizarea ec arei coloane.
% Se aplica transformarea A P
ki
A
1. Pentru j = 1 : n
1. a
j
P
ki
a
j
Aplicarea transformarii C = AP
T
ki
se face similar, partit ionand A pe linii.

In legatura cu algoritmul 3.3, este important sa ret inem ca, spre deosebire de
reectori, rotat iile nu sunt matrice simetrice. Mai precis, transformarea x P
T
ki
x
difera de transformarea x P
ki
x, considerata mai sus, prin semnul scalarului s.
AA. La fel ca n cazul reectorilor, generarea rotat iilor vizeaza introducerea de
zerouri ntr-un vector. Mai precis, ind dat un vector x R
m
, putem determina
o rotat ie P
ki
astfel ncat componenta i a vectorului transformat s a e nul a, i.e.
(P
ki
x)
i
= 0.
Propozit ia 3.2 Fix am doi ntregi i = k 1 : m si e x R
m
un vector astfel
nc at
r
2
def
= x
2
k
+x
2
i
= 0. (3.23)
7
Desi cunoscute din secolul trecut si utilizate de Jacobi, Rotat iile au fost introduse n calculul
numeric de W. Givens n 1954. Structura (3.22) corespunde cazului i > k, iar n (3.21) avem
P = P
12
cu c = cos , s = sin . Subliniem c a, n accept iunea noastr a, o rotat ie este denit a de
dou a numere reale c, s, satisf ac and condit ia c
2
+ s
2
= 1. Evident, n acest fel se evit a utilizarea
n calcule a funct iilor trigonometrice.
3.1. TRANSFORM

ARI ORTOGONALE 135


Numerele reale
c =
x
k
r
, s =
x
i
r
(3.24)
denesc o rotat ie P
ki
de ordin m n planul (k, i) astfel nc at
(P
ki
x)
l
=
_
x
l
, pentru l = k, i
r, pentru l = k
0, pentru l = i.
(3.25)
Demonstrat ia este imediata observand ca avem
_
c s
s c
_ _
x
k
x
i
_
=
_
r
0
_
, (3.26)
precum si c
2
+s
2
= 1.
Precizand (deocamdata arbitrar) semnul lui r, relat iile (3.23) si (3.24) conduc
la urmatorul algoritm de calcul al rotat iei P
ki
cu proprietatea ceruta.
Algoritmul 3.4 (Se dau i = k 1 : m si un vector x R
m
. Se
calculeaza o rotat ie P
ki
astfel ncat (P
ki
x)
i
= 0).
1. r =
_
x
2
k
+x
2
i
2. c = x
k
/r, s = x
i
/r
% vectorul transformat
3. x
k
= r; x
i
= 0
Numarul de operat ii necesar este N
op
= 6.
Semnicat ia geometrica a rotat iei P
ki
calculate de algoritmul 3.4 apare n gura
3.3, unde m = 2, k = 1, i = 2.
Implementarea algoritmului 3.4 t ine seama de urmatoarele considerente.
1

. La pasul 1 se recomanda scalarea componentelor x


k
si x
i
, de exemplu prin
mpart ire la N = |x
k
| + |x
i
|.
2

. Daca N = 0 sau r = 0, i.e. ambele componente x


k
si x
i
sunt deja nule,
atunci se ia P
ki
= I
m
, punand c = 1, s = 0.
3

. Semnul lui r se alege astfel ncat r si cel mai mare (n valoare absoluta)
dintre cele doua numere x
k
si x
i
sa aiba acelasi semn.
Aceasta convent ie, adoptata n BLAS, nu este importanta n sine, dar are avan-
tajul de a permite reconstruct ia numeric stabila a parametrilor c, s, dintr-un singur
numar z. (Desigur, n acest fel devine posibila memorarea rotat iei P
ki
pe pozit ia
elementului x
i
anulat prin aplicarea transformarii la pasul 3). Precizarile necesare
vor facute mai departe.
Observat ia 3.2 Ret inem ca, desi rotat iile sunt transformari considerabil mai
simple decat reectorii, ele sunt n acelasi timp si mai put in eciente decat acestia,
ntrucat o rotat ie permite anularea unei singure componente a vectorului transfor-
mat. (Tocmai de aceea rotat iile se utilizeaza mai ales n probleme cu date struc-
turate, asupra carora ele au un efect de rezolut ie na a zerourilor.)

In caz de nevoie, un efect similar cu al reectorului U


k
determinat de algoritmul
3.2 poate obt inut utilizand o secvent a de rotat ii, e.g.
136 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

1
`
2

P
12
x
r
x
2
x
1
Fig. 3.3: Efectul aplicarii unei rotat ii P
12
asupra unui vector x R
2
P
k
= P
km
. . . P
k,k+2
P
k,k+1
, (3.27)
n care rotat iile P
ki
se determina succesiv (aplicand algoritmul 3.4) pentru a anula
componentele corespunzatoare x
i
, i = k + 1 : m. (Scrierea algoritmului de calcul
este propusa ca exercit iu.) Alternativ, n acelasi scop poate utilizata secvent a
P
k
= P
k,k+1
P
k+1,k+2
. . . P
m1,m
, (3.28)
n care rotat iile P
ki
anuleaza aceleasi componente n ordine inversa, adic a x
i
,
i = m : 1 : k + 1.
Ment ionam ca n practica se utilizeaza frecvent secvent e de rotat ii disjuncte care
au proprietat i numerice mai bune, vezi problemele 3.14 si 3.22
8
.
Proceduri de calcul cu rotat ii

In continuare dam cateva indicat ii privind organizarea procedurala a calculelor cu


rotat ii
9
. Deoarece partea activa a unei rotat ii P
ki
de forma (3.22) este evident o
rotat ie plana ce act ioneaza asupra unui vector x R
2
, n continuare vom considera
m = 2 si vom nota P
12
= P.
AA. Fie x R
2
un vector dat. Generarea unei rotat ii P astfel ncat (Px)
2
= 0,
adica
_
c s
s c
_ _
x
1
x
2
_
=
_
r
0
_
, (3.29)
se face t inand seama de indicat iile de implementare ce nsot esc algoritmul 3.4.
ROTG % Se da x R
2
. Se genereaza o rotat ie P cu proprietatea
(3.29) si se aplica transformarea. Totodata, pe pozit ia ele-
mentului anulat x
2
se returneaza scalarul z, pe baza caruia
este posibila reconstruct ia numeric stabila a parametrilor
c, s.
1. r = x
2. Daca r = 0 atunci
8
Dou a rotat ii P
ki
, P
lj
se numesc disjuncte dac a tot i indicii sunt diferit i.
9
Subliniem c a, ntruc at opereaz a asupra unor vectori cu dou a componente, procedurile de calcul
cu rotat ii sunt de tip scalar.
3.1. TRANSFORM

ARI ORTOGONALE 137


1. c = 1, s = 0
altfel
2. Daca |x
2
| |x
1
| atunci
1. r sgn(x
2
)r
altfel
2. r sgn(x
1
)r
3. c = x
1
/r, s = x
2
/r
4. x
1
= r
% calculul lui z
5. Daca c = 0 atunci
1. z = 1
altfel dac a |x
2
| |x
1
| atunci
2. z = 1/c
altfel
3. z = s
6. x
2
= z
Modul de apel al procedurii de generare este [c, s, x
1
, x
2
] = ROTG(x
1
, x
2
).
AA. Fie acum P o rotat ie data, generata de ROTG, iar x R
2
un vector
arbitrar. Aplicarea transformarii
x Px (3.30)
se face direct numai daca parametrii c, s sunt disponibili ca atare; n caz contrar, n
prealabil are loc reconstruct ia lor pe baza scalarului z, utilizand secvent a urmatoare.
138 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Transformare Funct ie Mod de apel Apel rapid Obs.
Rotat ie Px = re
1
[c, s, a, b] = ROTG(a, b) [c, s] = ROTG(a, b)
a r
b z
P
def
= (c, s)
x =
_
a
b
_
x Px
x P
T
x
[a, b] = ROT(c, s, a, b)
[a, b] = ROT(c, s, a, b)
ROT(c, s, a, b)
ROT(c, s, a, b)
Tabelul 3.2: Proceduri de calcul cu rotat ii. (N.B. Semnicat ia lui z este precizata
n text)
% Reconstruct ia perechii (c, s).
1. Daca z = 1 atunci
1. c = 0, s = 1
altfel daca |z| > 1 atunci
2. c = 1/z, s =

1 c
2
altfel
3. s = z, c =

1 s
2
Procedura de transformare propriu-zisa coincide n esent a cu algoritmul 3.3.
ROT % Se aplica transformarea x Px.
1. t = x
1
2. x
1
ct +sx
2
3. x
2
cx
2
st
Modul de apel al procedurii este [x
1
, x
2
] = ROT(c, s, x
1
, x
2
).
Procedurile de calcul cu rotat ii sunt prezentate sintetic n tabelul 3.2. (Si n
cazul rotat iilor, ca si al reectorilor, mai departe vom utiliza notat iile procedurale
prescurtate indicate n penultima coloana a tabelului.)
3.2 Transformari unitare

In aceasta sect iune vom prezenta principalele transformari unitare utilizate n cal-
culele cu matrice complexe. Avand n vedere ca propriet at ile structurale ale acestor
transformari sunt aceleasi cu proprietat ile similare ale transformarilor ortogonale
descrise n sect iunea anterioara, expunerea va orientata n principal asupra as-
pectelor procedurale specice.
3.2.1 Reectori complecsi
Consideram spat iul complex C
m
cu produsul scalar (x, y) = y
H
x si norma euclidiana
x = (x
H
x)
1/2
= (
m

i=1
|x
i
|
2
)
1/2
.
3.2. TRANSFORM

ARI UNITARE 139


87
96

`
0

. .,
=
1

=
2
u
2
Re
Im
r r r
Fig. 3.4: Cercul n planul complex
Amintim ca o matrice Q C
mm
se numeste unitara daca Q
H
Q = I
m
.
Fie u C
m
un vector Householder, u = 0. Consideram matrice complexe de
forma
U
1
not
= Q
H
1
= I
m

uu
H

, (3.31)
respectiv
Q
1
= I
m
uu
H
, (3.32)
unde si sunt doi parametri legat i prin relat ia =

1
. Avem
Q
H
1
Q
1
= (I
m
uu
H
)(I
m
uu
H
) = I
m
( + )uu
H
+||
2
u(u
H
u)u
H
,
deci matricea Q
1
este unitara daca si numai daca
2Re = ||
2
u
2
, (3.33)
i.e. scalarul apart ine cercului din planul complex care trece prin origine si are
raza egala cu 1/u
2
(vezi gura 3.4). Pe de alta parte, matricea Q
1
este hermitica
daca si numai daca R. Asociind cele doua proprietat i, pentru = 0 obt inem
Q
1
= I
m
, iar pentru
=
1

=
2
u
2
, (3.34)
din (3.31) sau (3.32) obt inem reectorii hermitici care constituie generalizarea di-
recta a reectorilor reali din (3.8).
Pentru toate celelalte valori ( = 0 si = 2/u
2
), matricele de forma
(3.32) sunt unitare si de aceea se numesc (abuziv dar comod) reectori complecsi.
Subliniem ca, n aceasta accept iune mai larga, reectorii complecsi nu sunt her-
mitici, deci necesita o manipulare relativ mai atenta decat omologii lor reali (acum
U
1
not
= Q
H
1
= Q
1
!).
AA. Fie x C
m
un vector dat. Vom determina un reector Q
1
astfel ncat
(Q
H
1
x)
i
= 0, i = 2 : m, i.e.
Q
H
1
x = e
1
, (3.35)
unde C este un scalar nca nedeterminat. Deoarece matricea Q
1
este unitara
trebuie sa avem Q
H
1
x = x, deci modulul lui este xat, mai precis || = x.
Din considerente de stabilitate numerica, vom alege
=
x
1
|x
1
|
x (3.36)
140 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
sau
= sgn(Rex
1
)x. (3.37)
(Ret inem ca n primul caz C, iar n al doilea R.)

In continuare scriem ca de obicei


Q
H
1
x = (I
m

uu
H

)x = x u, (3.38)
unde
=
u
H
x

. (3.39)
Prin urmare, relat ia (3.35) are loc daca si numai daca u = (x + e
1
)/, sau pe
componente
u
1
=
x
1
+

; u
i
=
x
i

, i = 2 : m. (3.40)
De asemenea, trebuie sa avem
=
u
H
x

=
(x
H
+ e
T
1
)x
||
2
=
x
2
+ x
1
||
2
,
unde, conform celor spuse mai sus, x
2
= ||
2
, deci
=


x
1
+

. (3.41)
Pentru a determina complet reectorul U
1
cu proprietatea (3.35) ramane sa
precizam valoarea parametrului de scalare = 0 din (3.40) si (3.41).
a) Daca luam = 1 si alegem din (3.36) (sau din (3.37)), atunci obt inem
analogul complex al algoritmului 3.1.
b) Pe de alta parte, daca dorim simplicarea relat iei (3.41), atunci sunt posibile
doua alegeri, i.e. = si = x
1
+, care conduc la
_
u
1
= 1 +
x
1

; u
i
=
x
i

, i = 2 : m
= u
1
(3.42)
si respectiv
_

_
u
1
= 1; u
i
=
x
i
x
1
+
, i = 2 : m
= 1 +
x
1

, ( =
1

).
(3.43)

In practica numerica actuala se ntalnesc doua versiuni de implementare a rela-


t iilor de calcul stabilite mai sus.

In LINPACK [XIII] se asociaza relat iile (3.36) si (3.42).



In consecint a, para-
metrul = u
1
rezulta real, deci reectorul obt inut este hermitic, Q
H
1
= Q
1
.

In
schimb, prima componenta a vectorului transformat
x
1

3.2. TRANSFORM

ARI UNITARE 141


este complexa. Procedura de generare a reectorului hermitic Q
1
difera de proce-
dura reala RFG numai prin modul de calcul al lui , vezi (3.36).


In LAPACK [XV] se asociaza relat iile (3.37) si (3.43). Instrumentul fun-
damental de lucru este acum reectorul complex Q
1
, n care parametrul rezulta
complex; n schimb faptul ca u
1
= 1 si R poate exploatat avantajos n multe
situat ii concrete. Procedura de generare a reectorului Q
1
este urmatoarea.
CRFG % Se da x C
m
. Se genereaza un reector complex Q
1
cu pro-
prietatea (3.35) si se aplica transformarea. Componentele
u
i
, i = 2 : m, ale vectorului Householder u se memoreaza
pe pozit iile corespunzatoare din x. La aplicarea ulterioara
a transformarii se considera u
1
= 1.
1. = 0
2. Daca m > 1 atunci
1. = x
2. Daca = 0 atunci
1. Daca Re(x
1
) = 0 atunci sgn(Rex
1
)
2. x
i
u
i
= x
i
/(x
1
+), pentru i = 1 : m
3. (x
1
+)/
4. x
1

Comentarii. Calculul normei euclidiene la pasul 2.1 se poate face utilizand funct ia
complexa CNRM2 din BLAS 1.
AA. Fie acum x C
m
un vector arbitrar, iar Q
1
un reector dat. Aplicarea
transformarilor
x Q
H
1
x, x Q
1
x (3.44)
se face t inand seama de relat iile (3.38), (3.39) precum si de tipul reectorului con-
siderat.
Daca Q
1
este un reector 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 Q
1
este un reector complex, generat de procedura CRFG, atunci se
t ine seama ca prima componenta u
1
= 1 a vectorului Householder nu este memorata
ca atare. Scrierea procedurii de transformare corespunzatoare primei relat ii (3.44),
de exemplu notata CRF, este propusa ca exercit iu.
Procedurile de calcul cu reectori 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 Q
H
A) si doua la dreapta (AQ si
AQ
H
).

In primul caz A se partit ioneaza pe coloane si ecarei coloane i se aplica
transformarea corespunzatoare.

In al doilea caz A se partit ioneaza pe linii.
11
10
Procedurile de calcul cu reectori complecsi modicat i, e.g. CmRFG etc. se scriu similar cu
cazul real. Detaliile sunt l asate n sarcina cititorului interesat.
11
Pentru a acoperi toate aceste situat ii cu o singur a procedur a CLARF, n LAPACK (ca si n
142 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Transformare Funct ie Mod de apel Apel rapid Obs.
Reector
complex
Q
H
1
x = e
1
[u, , x] = CRFG(x) = CRFG(x)
C
R
Q
1
def
= (, u)
x C
m
x Q
H
1
x
x Q
1
x
x = CRF(u, , x)
x = CRF(u, , x)
CRF(u, , x)
CRF(u, , x)
Tabelul 3.3: Proceduri de calcul cu reectori complecsi. Procedurile de calcul cu
reectori hermitici sunt similare cu RFG si RF
3.2.2 Rotat ii complexe
Consideram spat iul complex C
2
cu norma euclidiana x = (|x
1
|
2
+|x
2
|
2
)
1/2
.
O rotat ie complex a este o matrice de forma
P =
_
c s
s c
_
, (3.45)
n care parametrii c, s satisfac relat ia
|c|
2
+|s|
2
= 1. (3.46)
Se verica usor ca matricea P este unitara, i.e. P
H
P = I
2
.
AA. Fie x C
2
un vector dat. Vom determina o rotat ie complexa P astfel
ncat
_
c s
s c
_ _
x
1
x
2
_
=
_
r
0
_
, (3.47)
unde r este un scalar astfel ncat |r| = x. O analiza simpla arata ca aici, ca si n
cazul reectorilor complecsi, sunt posibile doua opt iuni.
Putem alege r complex, e.g.
r =
x
1
|x
1
|
x, (3.48)
si n acest caz obt inem
c =
|x
1
|
x
, s =
x
1
|x
1
|
x
2
x
, (3.49)
deci parametrul c rezulta real pozitiv. Procedura de calcul este urmatoarea.
CROTG % Se da x R
2
. Se genereaza o rotat ie complexa P cu pro-
prietatea (3.47) si se efectueaza transformarea.
1. Daca |x
1
| = 0 atunci
1. c = 0, s = 1
BLAS3) se utilizeaz a opt iunile TRANS si SIDE, vezi sect iunea 1.11. Subliniem c a urm arirea acestor
detalii, aparent pur tehnice, este esent ial a pentru asigurarea corectitudinii si optimizarea calcula-
torie a algoritmilor de calcul obt inut i.
3.3. TRIANGULARIZAREA ORTOGONAL

A 143
Transformare Funct ie Mod de apel Apel rapid Obs.
Rotat ie
complexa
Px = re
1
[c, s, a, b] = CROTG(a, b) [c, s] = CROTG(a, b)
c R
r C
P
def
= (c, s)
x =
_
a
b
_
x Px
x P
H
x
[a, b] = CROT(c, s, a, b)
[a, b] = CROT( c, s, a, b)
CROT(c, s, a, b)
CROT( c, s, a, b)
Tabelul 3.4: Proceduri de calcul cu rotat ii complexe
2. x
1
r = x
2
, x
2
= 0
altfel
3. = x
1
/ |x
1
|
4. = x
5. c = |x
1
| / , s = x
2
/
6. x
1
r = , x
2
= 0
Alternativ, putem alege r real, de exemplu
r = sgn(Rex
1
)x (3.50)
si n acest caz ambii parametri
c =
x
1
r
, s =
x
2
r
(3.51)
rezulta complecsi. (Ment ionam c a n practica se ntalnesc ambele opt iuni (3.48) si
(3.50), implementate sub diverse forme relativ sosticate.)
AA. Fie acum P o rotat ie complexa data, generata de CROTG, iar x C
2
un
vector arbitrar. Procedura de transformare
x Px, (3.52)
de exemplu notata CROT, se scrie cu usurint a n maniera algoritmului 3.3, dar,
desigur, t inand seama de forma actuala (3.45) a lui P.
Procedurile de calcul cu rotat ii complexe sunt prezentate sintetic n tabelul 3.4.
3.3 Triangularizarea ortogonala

In aceasta sect iune vom descrie principalele proceduri de triangularizare a unei


matrice A C
mn
prin transformari unitare de echivalent a la stanga.

In cazul real
A R
mn
, n acelasi scop se utilizeaza transformari ortogonale. Pentru concizia
expunerii vom considera ambele cazuri n paralel.
Teorema 3.1 Oricare ar A C
mn
, exist a o matrice unitara U
not
= Q
H
C
mm
astfel nc at matricea
UA = R, respectiv Q
H
A = R (3.53)
144 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
este superior triunghiulara.

In cazul real A R
mn
, matricea de transformare U = Q
T
poate aleas a real a
si ortogonal a, deci R rezult a real a.
Pe scurt, orice matrice este unitar echivalent a (la stanga) cu o matrice superior
triunghiulara. A doua relat ie arata ca A poate scrisa sub forma unui produs
A = QR, unde Q este unitara, iar R este superior triunghiulara.

In calculul numeric,
aceasta relat ie se numeste factorizare QR, de aceea procedurile de calcul stabilite
pe baza relat iei fundamentale (3.53) vor notate cu sigla QR. (Asupra factorizarii
QR vom reveni pe larg n sect iunea urmatoare.)
Demonstrat ia va constructiva, conducand la o procedura de triangularizare
ortogonala a matricei A utilizand reectori sau rotat ii. Pentru precizare, n cele ce
urmeaza alegem prima posibilitate.

In cazul real, ne referim la faptele stabilite n sect iunea 3.1.1 si pentru claritate
consideram succesiv doua situat ii cu semnicat ii structurale distincte.

In cazul m > n matricea de transformare va un produs de reectori, i.e.


U = Q
T
= U
n
. . . U
2
U
1
,
unde reectorii U
k
ce se determina prin metodele cunoscute pentru a introduce
zerourile necesare n coloanele corespunzatoare a
k
, k = 1 : n, ale matricei A.

In consecint a, procedura de triangularizare are n etape. Notam A


1
= A, unde
A = [a
1
a
2
. . . a
n
].
Etapa 1. Daca elementele a
i1
, i = 2 : m, nu sunt toate nule, atunci conform
propozit iei 3.1, exista un reector U
1
R
mm
de ordinul m si indice 1, astfel ncat
(U
1
a
1
)
i
= 0, i = 2 : m.

In virtutea acestui fapt, matricea transformata


A
2
= U
1
A
1
= [U
1
a
1
U
1
a
2
. . . U
1
a
n
] =
_

_
r
11
r
12
. . . r
1n
0 a
(2)
22
. . . a
(2)
2n
0 a
(2)
32
. . . a
(2)
3n
. . .
0 a
(2)
m2
. . . a
(2)
mn
_

_
are toate elementele subdiagonale ale primei coloane egale cu zero, i.e. este superior
triunghiulara n prima coloana. Daca a
i1
= 0 pentru i = 2 : m, atunci luam
pur si simplu U
1
= I
m
si trecem la etapa urmatoare. (Matricea unitate I
m
este
ortogonala !)
Etapa k, k = 2 : n. Presupunem ca dupa desfasurarea primelor k 1 etape ale
procedurii am obt inut matricea
A
k
= U
k1
. . . U
2
U
1
A
3.3. TRIANGULARIZAREA ORTOGONAL

A 145
superior triunghiulara n primele k 1 coloane, i.e.
A
k
= [a
(k)
1
. . . a
(k)
k
. . . a
(k)
n
] =
_

_
r
11
r
12
. . . r
1,k1
r
1k
. . . r
1n
r
22
. . . r
2,k1
r
2k
. . . r
2n
.
.
.
.
.
.
.
.
.
.
.
.
r
k1,k1
r
k1,k
. . . r
k1,n
a
(k)
kk
. . . a
(k)
kn
0 a
(k)
k+1,k
. . . a
(k)
k+1,n
.
.
.
.
.
.
a
(k)
mk
. . . a
(k)
mn
_

_
.
Acum, daca elementele a
(k)
ik
, i = k + 1 : m, nu sunt toate nule, atunci exista un
reector U
k
R
mm
de ordinul m si indice k, astfel ncat
(U
k
a
(k)
k
)
i
= 0, i = k + 1 : m.
(Altfel, luam U
k
= I
m
si trecem la etapa urmatoare.) Tinand cont de faptul ca
orice reector de indice k nu modica un vector ale carui ultime mk +1 elemente
sunt nule (vezi (3.11), unde = 0), rezulta ca matricea
A
k+1
= U
k
A
k
= [U
k
a
(k)
1
. . . U
k
a
(k)
k
. . . U
k
a
(k)
n
]
are primele k 1 coloane nemodicate, iar n coloana k elementele subdiagonale
sunt nule; prin urmare A
k+1
este superior triunghiulara n primele k coloane. De
asemenea, deoarece reectorul este de indice k, primele k 1 linii ale lui A
k
raman
nemodicate.
Asadar, procedura de anulare a elementelor subdiagonale poate init ializata,
ca n etapa 1, si, o data pornita, poate continuata, ca n etapa k. Astfel, cand
m > n, dupa n etape, obt inem matricea
R
def
= A
n+1
= U
n
U
n1
. . . U
2
U
1
A =
_
R

0
_
, (3.54)
unde R

R
nn
este superior triunghiulara de ordin n.

In cazul m n, procedand similar, dupa m1 etape obt inem matricea superior


trapezoidala
R
def
= A
m
= U
m1
. . . U
2
U
1
A = [ R

S ], (3.55)
unde R

R
mm
este superior triunghiulara de ordin m, iar S R
m(nm)
este
un bloc dreptunghiular fara particularitat i de structura.
Demonstrat ia teoremei n cazul real este ncheiata.

In cazul complex rat ionamentul este identic, iar detaliile pot completate cu
usurint a de cititorul interesat prin referire la sect iunea 3.2.1.
Observat ia 3.3 Atat enunt ul cat si demonstrat ia teoremei 3.1 au un caracter
procedural, n sensul ca matricea R rezultata n urma procesului de triangularizare
146 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
nu trebuie sa e neaparat superior triunghiulara. De exemplu, n cazul m = n, ma-
tricea A poate adusa la forma inferior triunghiulara utilizand reectorii modicat i
din observat ia 3.1. Aceasta posibilitate va discutatan nalul sect iunii urmatoare.
De asemenea, transformarile unitare de echivalent a pot aplicate la dreapta matri-
cei A, dupa cum vom arata n sect iunea 3.6.

In toate cazurile, tehnica de lucru este
aceeasi, iar alegerea procedurii de triangularizare adecvate este dictata de structura
problemei considerate.
A. Proceduri de triangularizare cu reectori
Procedura de triangularizare ortogonala degajata pe parcursul demonstrat iei de
mai sus este similara cu procedura de eliminare gaussiana, cunoscuta din capitolul
anterior, si, la fel ca aceasta, se poate desfasura pe loc n tabloul A, astfel ncat n
nal matricea R sa e memorata n triunghiul superior al lui A.

In cazul real, relat iile (3.54) si (3.55) conduc la urmatoarea schema de calcul.
QR RF % Triangularizarea matricei A utilizand reectori
1. Pentru k = 1 : min (m1, n)
1. Se determina U
k
a.. (U
k
A)
ik
= 0, i = k + 1 : m
2. A U
k
A.
Daca matricea A este monica, i.e. are coloane independente, atunci la ecare
etapa elementele a
ik
, i = k : m, ale matricei curente A nu sunt toate nule.

In
consecint a, pentru a determina reectorul U
k
(adica vectorul Householder u
k
si
scalarul
k
), la pasul 1.1 se utilizeaza algoritmul 3.2, aplicat vectorului x = A(:, k).
(Componentele nenule ale vectorilor Householder u
k
vor notate u
ik
, 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
% Versiunea primara a algoritmului de triangularizare cu reectori
1. Pentru k = 1 : min (m1, n)
% se determina transformarea U
k
1. = sgn(a
kk
)
_
m
i=k
a
2
ik
_
1/2
2. u
kk
= a
kk
+; u
ik
= a
ik
, pentru i = k + 1 : m
3.
k
= u
kk
% se aplica U
k
4. Pentru j = k + 1 : n
1. = (

m
i=k
u
ik
a
ij
) /
k
2. a
ij
a
ij
u
ik
, pentru i = k : m
% coloana k
5. a
kk
= ; a
ik
= 0, pentru i = k + 1 : m
Comentarii. Algoritmul necesita aproximativ N
QR
= 2(mn
2
n
3
/3) operat ii,
care n principal se consuma la pasul 1.4 pentru actualizarea coloanelor A(k : m, j),
j = k + 1 : n, ale matricei ramase.

In particular, daca m = n, atunci
N
QR
= (4/3)n
3
este dublu fat a de algoritmul de eliminare gaussiana.
3.3. TRIANGULARIZAREA ORTOGONAL

A 147

In general, e acum A C
mn
o matrice oarecare. Pentru uniformizarea scrierii,
n cazul m n completam sirul de transformari din (3.55) cu U
m
def
= I
m
. De aseme-
nea, notam s = min(m, n), precum si U
k
= Q
H
k
, unde Q
k
sunt reectorii com-
plecsi (n particular hermitici) utilizat i pentru anularea elementelor subdiagonale la
etapele k = 1 : s. Cu aceste notat ii, relat iile (3.54) si (3.55) pot scrise mpreuna
sub forma (3.53), unde
U = Q
H
= Q
H
s
. . . Q
H
2
Q
H
1
, (3.56)
iar schema de triangularizare devine
QR % Schema generala de triangularizare QR
1. Pentru k = 1 : s
1. Se genereaza Q
H
k
a.. (Q
H
k
A)
ik
= 0, i = k + 1 : m
2. A Q
H
k
A.

In cazul real sau n cazul utilizarii reectorilor hermitici de forma (3.31) avem
Q
H
k
= Q
k
, iar implementarea schemei QR are la baza procedurile RFG si RF din
tabelul 3.1. Componentele u
ik
, i = k + 1 : m, ale vectorilor Householder u
k
se
memoreaza natural pe pozit iile elementelor anulate, iar scalarii
k
se memoreaza
ntr-un vector suplimentar, ca n urmatoarea diagrama corespunzatoare situat iei de
dupa pasul k
_

_
r
11
r
12
. . . r
1k
r
1,k+1
. . . r
1n
u
21
r
22
. . . r
2k
r
2,k+1
. . . r
2n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u
k1
u
k2
. . . r
kk
r
k,k+1
. . . r
kn
u
k+1,1
u
k+1,2
. . . u
k+1,k
a
(k+1)
k+1,k+1
. . . a
(k+1)
k+1,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u
m1
u
m2
. . . u
mk
a
(k+1)
m,k+1
. . . a
(k+1)
mn
_

_
_

1

2
. . .
k

Algoritmul rezultat se redacteaza astfel.


Algoritmul 3.5 (QR triangularizare ortogonal a cu reectori her-
mitici) (Se da A C
mn
. Se efectueaza triangularizarea ortogonala a
matricei A, i.e. Q
H
A = R, unde Q
H
= Q
s
. . . Q
2
Q
1
, iar Q
k
sunt reec-
tori hermitici. Partea esent iala u
k
(k + 1 : m) a vectorilor Householder
u
k
se memoreaza pe pozit iile corespunzatoare A(k + 1 : m, k). La apli-
carea ulterioara a transformarilor se t ine seama ca u
kk
=
k
, k = 1 : s.
Elementele nenule ale matricei superior triunghiulare R suprascriu ele-
mentele corespunzatoare din triunghiul superior al matricei A.)
1. Pentru k = 1 : s
1.
k
= 0
2. Daca k < m atunci
1. = A(k : m, k)
148 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
2. Daca = 0 atunci
1. Daca a
kk
= 0 atunci
a
kk
|a
kk
|

2. a
ik
u
ik
= a
ik
/, pentru i = k : m
3.
k
u
kk
= 1 +a
kk
4. Pentru j = k + 1 : n
1. = (

m
i=k
u
ik
a
ij
) /
k
2. a
ij
a
ij
+u
ik
, pentru i = k : m
% elementul diagonal
5. a
kk
=
Comentarii.

In cazul real, algoritmul 3.5 necesita N
QR
operat ii
12
si este numeric
stabil, dupa cum vom arata n sect iunea 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 reectorii Q
k
din (3.56), si cu atat mai put in matricea de transformare Q
H
, ci doar memoreaza
(extrem de economic) toate elementele necesare pentru denirea acestora.
Exemplul 3.5

In cazul matricelor cu structura speciala, algoritmul general prezen-
tat mai sus se adapteaza n mod corespunzator, avand n vedere conservarea struc-
turii si exploatarea acesteia n scopul reducerii numarului de operat ii.

In acest sens
e matricea A
+
=
_
R
C
_
, n care blocul lider R C
nn
este deja superior tri-
unghiular, iar C C
(mn)n
este un bloc dat cu l = m n 1 linii. Schema de
triangularizare ortogonala este
Q
H
A
+
=
_
R
+
0
_
, Q
H
= Q
H
n
. . . Q
H
2
Q
H
1
,
n care Q
k
sunt reectori denit i de vectorii Householder
u
k
= [0 . . . 0 u
kk
0 . . . 0 u
n+1,k
. . . u
mk
]
T
.
La ecare etapa, elementele
k
= u
kk
si u
ik
, i = n + 1 : m, se determina ca n
algoritmul 3.5 pentru a anula elementele corespunzatoare din coloana k a blocului
C.

In plus, datorita structurii suplimentare de zerouri, aplicarea transformarii lasa
nemodicate liniile i = k + 1 : n ale matricei A
+
, deci conserva structura supe-
rior triunghiulara a blocului lider.

In consecint a, numarul de operat ii se reduce la
2(mn)n
2
. Detaliile de implementare si analiza unor cazuri particulare semnica-
tive sunt propuse n problema 3.20.


In cazul utilizarii reectorilor complecsi de forma generala (3.32),
implementarea schemei QR se face utilizand direct procedurile CRFG si CRF
din tabelul 3.3.
12
In cazul complex, not and N = mn
2
n
3
/3, algoritmul 3.5 cere N adun ari complexe si N
nmult iri complexe. Deoarece o adunare complex a este echivalent a cu 2 adun ari (reale), iar o
nmult ire complex a este echivalent a cu dou a adun ari si patru nmult iri, algoritmul 3.5 cere 4N
adun ari si 4N nmult iri, adic a 8N (sau 4N
QR
) operat ii reale (opi).
3.4. FACTORIZAREA QR 149
CQR % Algoritmul de triangularizare ortogonala cu reectori com-
plecsi, i.e. Q
H
A = R, unde Q
H
= Q
H
s
. . . Q
H
2
Q
H
1
.
1. Pentru k = 1 : s
1.
k
= CRFG(A(k : m, k))
2. Pentru j = k + 1 : n
1. CRF(A(k : m, k),
k
, A(k : m, j))
Modul de apel este [, A] = CQR(A), unde este acum vectorul complex cu
componentele
k
, k = 1 : s.
B. Proceduri de triangularizare cu rotat ii
Procesul de triangularizare denit prin relat ia (3.53) poate implementat alternativ
utilizand rotat ii.
De exemplu, n cazul real, pentru anularea elementelor subdiagonale se utilizeaza
secvent e de rotat ii P
k
de forma (3.26), n care la ecare etapa k rotat iile P
ki
se
determina utilizand algoritmul 3.4 pentru a introduce zerourile necesare n pozit iile
corespunzatoare a
ik
, i = k + 1 : m, ale matricei curente A. Actualizarea coloanelor
urmatoare se face utilizand algoritmul 3.3.
Procedura de triangularizare se poate desfasura pe loc n tabloul A, utilizand
urmatoarea schema de calcul.
QR ROT % Triangularizarea matricei A utilizand rotat ii
1. Pentru k = 1 : min (m1, n)
1. Pentru i = k + 1 : m
1. Se determina P
ki
astfel ncat (P
ki
A)
ik
= 0
2. A P
ki
A
Detaliile de justicare precumsi scrierea algoritmului n forma sa implementabila
sunt propuse ca exercit ii. Ment ionam ca numarul de operat ii efectuat aici este dublu
fat a de algoritmul similar care utilizeaza reectori, de aceea acesta din urma este
n general preferabil.

In cazul complex, schema de mai sus ramane valabila, cu
ment iunea ca rotat iile P
ki
se calculeaza ca n sect iunea 3.2.2.
3.4 Factorizarea QR

In aceasta sect iune vom utiliza procedurile de triangularizare ortogonala stabilite


n sect iunea anterioara pentru a construi factorizarea QR a unei matrice A C
mn
de forma generala. Notam ca de obicei s = min(m, n).

In cazul m n din (3.53) si (3.56) rezulta


A = QR, R =
_
R

0
_
}n
}mn
(3.57)
unde matricea
Q = Q
1
Q
2
. . . Q
n
(3.58)
150 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
este unitara iar R este superior triunghiulara ca n (3.54). (

In particular, daca
m = n atunci R = R

.) Partit ionand Q conform cu R, i.e.


Q = [ Q

..
n
Q

..
mn
], (3.59)
din (3.57) deducem
A = Q

, (3.60)
unde acum Q

are coloanele ortogonale, pe scurt Q


H
Q

= I
n
, iar R

este patrata.
Am demonstrat astfel prima parte a urmatorului rezultat fundamental.
Teorema 3.2 Orice matrice A C
mn
cu m n poate scris a sub forma (3.60),
unde Q

C
mn
are coloane ortogonale, iar R

C
nn
este superior triunghiular a.
Prin denit ie, relat ia (3.60) constituie factorizarea QR a matricei A. Dac a A
este monic a, atunci R

rezult a inversabil a si reciproc.



In acest caz, factorizarea
QR este unic a dac a n plus impunem condit ia ca factorul triunghiular R

s a aib a
elemente diagonale (reale si) pozitive.
Demonstrat ie. Pentru a demonstra a doua armat ie, sa ne amintim ca matricea
A este monica daca si numai daca Ax = 0, oricare ar x C
n
, x = 0, deci
x
H
A
H
Ax = Ax
2
> 0 pentru orice x = 0, adica matricea hermitic a G = A
H
A
este pozitiv denit a. Atunci, conform teoremei de factorizare Cholesky, exista si
este unica matricea R
1
superior triunghiulara cu elemente diagonale pozitive astfel
ncat G = R
H
1
R
1
. Fie Q
1
= AR
1
1
. Avem
Q
H
1
Q
1
= R
H
1
A
H
AR
1
1
= R
H
1
R
H
1
R
1
R
1
1
= I
n
,
adica Q
1
are coloanele ortogonale, si n plus A = Q
1
R
1
. Prin urmare, unicitatea
factorizarii QR rezulta din unicitatea factorizarii Cholesky, i.e. daca R

satisface
condit ia din enunt atunci R

= R
1
si Q

= Q
1
. (Condit ia ca elementele diagonale
ale lui R

sa e pozitive poate ntotdeauna satisfacuta, dar, de obicei, nu prezinta


interes n practica.)
Observat ia 3.4

In general, matricea hermitica pozitiv semidenita G = A
H
A
se numeste gramian al (coloanelor) matricei A. Demonstrat ia teoremei 3.2 arata
ca daca matricea A este monica, atunci factorul triunghiular R

al lui A coincide
n esent a cu factorul Cholesky R
1
al lui G.

In principiu, acest rezultat extrem de
important poate exploatat n doua sensuri.
a) Factorizarea QR a matricei A poate determinata relativ economic efectuand
n prealabil factorizarea Cholesky a matricei G. Schema de calcul, dedusa direct
din demonstrat ia teoremei amintite, este urmatoarea
QR Ch 1. Se formeaza G = A
H
A
2. Se calculeaza R
1
efectuand factorizarea Cholesky G = R
H
1
R
1
3. Se calculeaza Q
1
= AR
1
1
rezolvand sistemul supe-
rior triunghiular Q
1
R
1
= A
3.4. FACTORIZAREA QR 151
Trebuie nsa sa subliniem ca aceasta metoda, desi conceptual extrem de simpla,
nu este recomandabila din punct de vedere numeric deoarece matricea G, rezultata
la pasul 1 prin ridicarea la patrat a lui A, este rau condit ionata, vezi mai departe
propozit ia 3.5.

In consecint a, rezultatele calculate la pasii 2 si 3 sunt afectate de erori
straine de problema si eventual catastrofale, independent de calitatea algoritmilor
utilizat i. Ca regula generala, formarea gramianului G = A
H
A trebuie sistematic
evitata n favoarea operarii directe asupra matricei date A.
b) O serie de probleme de calcul, vizand de exemplu actualizarea unor factorizari
LU sau Cholesky, pot reformulate n termenii unei factorizari QR echivalente si
rezolvate n consecint a aplicand procedurile numeric stabile bazate pe utilizarea
transformarilor ortogonale. Spre deosebire de abordarea de la punctul a), aceasta
idee, care constituie baza unei ntregi familii de metode de calcul, tradit ional numite
de radacina patrata, este larg aplicata n practica.
Exemplul 3.6 Pentru a ilustra ideea de baza a algoritmilor de radacin a patrata,
e G = R
H
R o matrice hermitica pozitiv denita al carei factor Cholesky supe-
rior triunghiular R C
nn
este cunoscut. Problema de actualizare a factorizarii
Cholesky consta n a calcula factorul Cholesky R
+
al matricei modicate
G
+
= G+C
H
C,
n care C C
ln
este o matrice data.

In particular, daca l = 1, i.e. C = c
T
este
un vector linie, atunci G
+
este o modicare de rang 1 a lui G.
Aceasta problema poate rezolvata extrem de simplu, fara a forma explicit G
+
,
observand ca
G
+
= R
H
R +C
H
C = [R
H
C
H
]
_
R
C
_
= A
H
+
A
+
,
i.e. G
+
este gramianul matricei A din exemplul 3.5.

In consecint a, factorul Cholesky
cautat R
+
poate 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 modicari de rang 2, i.e.
G
+
= G+dc
H
+cd
H
+cc
H
,
unde c, d C
n
sunt doi vectori (coloana) dat i.
Daca matricea A este monic a, atunci factorul ortogonal Q

al lui A are o
semnicat ie geometrica remarcabila. Din (3.60) rezulta
y
not
= Ax = Q

(R

x), x C
n
, (3.61)
unde R

este superior triunghiulara inversabila. Prin urmare, coloanele matricelor


A si Q

genereaza acelasi subspat iu liniar S


not
= ImA. Mai precis, prin ipoteza A are
coloanele independente, deci constituie o baza a lui S, iar prin construct ie Q

are
coloanele ortogonale, deci constituie o baz a ortogonal a a lui S. Proiectorul ortogonal
pe S este P
1
= A(A
H
A)
1
A
H
sau, mai simplu, P
1
= Q

Q
H
. (Prin calcul direct
152 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
>
>
>
>
>
>
>
>
> >
>
>
>
>
>
>
>
>
>
>
>
>.

`
q
1
q
2
q
3
S

S
Fig. 3.5: Baze ortogonale pentru ImA si KerA
H
. Q = [q
1
q
2
| q
3
], m = 3, n = 2
se verica usor ca P
2
1
= P
1
si P
H
1
= P
1
, iar faptul ca ImP
1
= S este evident.
Echivalent a celor doua expresii ale lui P
1
rezulta din (3.60).)

In mod similar, matricea Q

C
m(mn)
(care, n (3.59), completeaza Q

pana
la o matrice unitara Q), constituie o baza ortogonala a subspat iului complementar
S

= KerA
H
. Proiectorul ortogonal pe S

este P
2
= Q

Q
H
si, n plus, avem
P
1
+P
2
= I
m
.
Pe scurt, partit ia (3.59) a matricei unitare Q corespunde descompunerii ortogo-
nale fundamentale
C
m
= ImAKerA
H
, (3.62)
furnizand baze ortogonale pentru ambele subspat ii. Cazul m = 3, n = 2 este ilustrat
n gura 3.5.

In consecint a, orice vector b C
m
se scrie unic sub forma b = b
1
+b
2
,
unde b
i
= P
i
b, i = 1 : 2, sunt proiect iile ortogonale ale lui b pe S si, respectiv, S

In cazul m < n, din (3.53) si (3.56) rezulta


A = QR, R = [R

S], (3.63)
unde Q = Q
1
Q
2
. . . Q
m
este unitara, iar R este superior trapezoidala ca n (3.55).
Utilizand partit ia conforma A = [A

B] obt inem factorizarea


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
relat ia B = A

X, unde X = (R

)
1
S este solut ia sistemului triunghiular R

X = S,
prin urmare matricea
N =
_
X
I
mn
_
constituie o baza (neortogonala) a subspat iului N
not
= KerA C
n
. (Se constata
imediat ca A este epica si AN = 0.)
Trebuie nsa sa observam ca, n absent a unei strategii adecvate de pivotare a
coloanelor, condit ia de inversabilitate ment ionata mai sus nu este ndeplinita, astfel
3.4. FACTORIZAREA QR 153
ncat n cazul m < n, utilitatea practica a procedurii de triangularizare ortogonala
(la stanga) precum si a factorizarii QR asociate sunt limitate.
Avand n vedere rezultatele teoretice stabilite mai sus, care evident iaza clar
important a factorizarii QR, n continuare ne vom concentra atent ia asupra as-
pectelor procedurale privind calculul si aplicat iile practice ale acestei factorizari.
3.4.1 Acumularea transformarilor

In cazul m n, factorizarea QR a matricei A poate determinata utilizand pro-


cedurile de triangularizare ortogonala stabilite n sect iunea anterioara.

Intr-adevar,
n urma execut iei acestor proceduri, factorul triunghiular R

se obt ine ca atare n


triunghiul superior al matricei A iar, n acord cu relat iile (3.58) si (3.59), factorul
ortogonal Q

poate calculat sub forma


Q

= Q
_
I
n
0
_
= Q
1
Q
2
. . . Q
n
_
I
n
0
_
, (3.65)
aplicand urmatoarea schema caracteristica de acumulare a transformarilor.
GQR % Acumularea primelor n coloane Q

ale matricei
Q = Q
1
Q
2
. . . Q
n
, m n.
1. Q

=
_
I
n
0
_
2. Pentru k = n : 1 : 1
1. Q

Q
k
Q

Cu referire la algoritmul 3.5, implementarea schemei GQR este simpla. T inand


seama de particularitat ile de structura ale matricei Q

si utilizand elementele de-


nitorii ale transformarilor Q
k
, memorate n triunghiul inferior strict al matricei A
precum si n vectorul , procesul de calcul poate organizat astfel ncat Q

sa
rezulte pe loc n tabloul A
13
.
Algoritmul 3.6 (GQR) (Utilizand iesirea algoritmului 3.5, se efec-
tueaza acumularea pe loc n A a primelor n coloane Q

ale matricei
Q = Q
1
Q
2
. . . Q
s
, unde Q
k
sunt reectori hermitici. Se presupune
m n.)
1. Pentru j = 2 : n
1. a
ij
= 0, pentru i = 1 : j 1
2. Pentru k = n : 1 : 1
1. Daca
k
= 0 atunci
1. a
kk
u
kk
=
k
2. Pentru j = k + 1 : n
1. = (

m
i=k
u
ik
a
ij
) /
k
2. a
ij
a
ij
+u
ik
, pentru i = k : m
13
In caz de nevoie, factorul triunghiular R

sau chiar ntregul tablou A sunt n prealabil salvate.


Acest mod de lucru se justic a av and n vedere c a, n general, un anumit algoritm de calcul trebuie
s a manevreze un num ar c at mai mic de tablouri de lucru.
154 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
% coloana k
3. a
ik
a
ik
, i = k : m
4. a
kk
= 1 +a
kk
altfel
5. a
ik
= 0, pentru i = k + 1 : m
6. a
kk
= 1
Comentarii.

In cazul real, algoritmul 3.6 necesita N
QR
operat ii, 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, ). Ret inem ca determinarea explicita a factorizarii
QR a matricei A prin apelarea succesiva a procedurilor QR si GQR necesita n
total 2N
QR
operat ii, 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 reectori 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 = Q1Q2 . . . Qn,


m n, unde Q
k
sunt reectori 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 GCQRn forma scrisa mai sus este neecienta 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 = 2n
3
operat ii complexe, adica cu
50% mai mult decat algoritmul 3.6.) Modicarile necesare pentru a corecta acest defect,
permit and totodata formarea lui Q

pe loc n tabloul A, pot 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 calculata


sub forma
Q

= Q
_
0
I
mn
_
= Q
1
Q
2
. . . Q
n
_
0
I
mn
_
, (3.66)
utilizand o schema de acumulare similara, dar mai put in ecienta. (Evident, acum
tabloul A trebuie extins cu mn coloane necesare pentru a memora Q

.)
14

In nal, subliniem ca formarea matricelor Q

, Q

sau Q prin acumularea trans-


formarilor este relativ costisitoare. De aceea, n contextul aplicat iilor 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 apel and direct procedura
GQR sub forma A(:, 1 : m) = GQR(A(:, 1 : m), ). Dup a execut ie, rezultatul dorit Q suprascrie
blocul lider A

al matricei A.
3.4. FACTORIZAREA QR 155
3.4.2 Aplicarea transformarilor

In practica, matricea unitara Q


H
generata sub forma (3.56) de procedurile de tri-
angularizare ortogonala aplicate matricei A, se utilizeaza pentru a transforma n
mod adecvat o alta matrice data B. Ca regula generala, cele patru tipuri de trans-
formari posibile, doua la stanga (Q
H
B si QB) si doua la dreapta (BQ si BQ
H
), se
efectueaza pe loc n B fara a forma explicit matricele Q
H
sau Q.
Aplicarea transformarilor
B Q
H
B = Q
H
s
. . . Q
H
2
Q
H
1
B (3.67)
si
B QB = Q
1
Q
2
. . . Q
s
B (3.68)
se face partit ionand B pe coloane.

In cazul (3.67), schema de calcul este evident urmatoarea.


MQR % Aplicarea transformarii B Q
H
B, unde Q = Q
1
Q
2
. . . Q
s
.
1. Pentru k = 1 : s
1. B Q
H
k
B
Cu referire la algoritmul 3.5, implementarea schemei MQR are la baza o pro-
cedura de tip RF pentru actualizarea ecarei coloane a matricei B. Desigur, la
pasul 1.1, transformarea se aplic a efectiv numai daca
k
= 0, utilizand vectorul
Householder u
k
memorat n A(k : m, k).
Algoritmul 3.7 (MQR) (Se da B C
mp
. Utilizand iesirea algo-
ritmului 3.5, se aplica transformarea B Q
H
B, unde Q = Q
1
Q
2
. . . Q
s
,
iar Q
k
sunt reectori hermitici.)
1. Pentru k = 1 : s
1. Daca
k
= 0 atunci
1. t = a
kk
2. a
kk
u
kk
=
k
3. Pentru j = 1 : p
1. = (

m
i=k
u
ik
b
ij
) /
k
2. b
ij
b
ij
+u
ik
, pentru i = k : m
4. a
kk
= t
Comentarii.

In cazul real cu m n, algoritmul 3.7 necesita N
op
= pN
m
operat ii,
unde am notat cu N
m
= 2n(2m n) numarul de operat ii necesar pentru a aplica
transformarea (3.67) unui vector b cu m componente.

In contextul procedurii de triangularizare CQR, schema MQR se implementeaza astfel.


MCQR % Aplicarea transformarii B Q
H
B, unde Q = Q1Q2 . . . Qs, iar
Q
k
sunt reectori complecsi.
1. Pentru k = 1 : s
1. Pentru j = 1 : p
1. CRF(A(k : m, k),
k
, B(k : m, j))
156 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

In cazul (3.68) se procedeaza analog. Daca Q


k
sunt reectori hermitici, atunci
algoritmul rezultat difera de algoritmul 3.7 numai prin ordinea de aplicare a trans-
formarilor. Avand n vedere simplicarea redactarii unor proceduri ulterioare, vom
presupune ca ambele transformari (3.67) si (3.68) pot efectuate apeland o singura
procedura, al carei mod de apel este B = MQR(TRANS, A, , B), unde TRANS
este o variabila logica cu valorile da n cazul (3.67), respectiv nu n cazul (3.68).
Scrierea acestei proceduri (din care jumatatea da coincide cu algoritmul 3.7) con-
situie un exercit iu usor.
Aplicarea transformarilor la dreapta B BQ si B BQ
H
se face partit ionand
B pe linii si t inand seama de precizarile facute n nalul sect iunii 3.2.1. Scrierea
procedurii corespunzatoare, de exemplu notata MQRd, este propusa ca exercit iu.
(La nevoie, cele doua proceduri MQR si MQRd pot reunite ntr-una singura
introducand o variabila suplimentara SIDE, asa cum se procedeaza n LAPACK.)

In concluzia expunerii de pana acum, subliniem ca procedurile de triangularizare,


acumulare si transformare, notate generic QR, GQRsi MQR, apar ntotdeauna n
triplete, orice modicare a procedurii fundamentale de triangularizare QR, n ceea
ce priveste calculul si memorarea transformarilor Q
k
, k = 1 : s, antrenand dupa sine
modicari corespunzatoare n procedurile asociate GQRsi MQR. Avandn vedere
recomandarile facute n nalul sect iunii precedente, procedura de acumulare GQR
se utilizeaza numai n caz de stricta necesitate. Aproape ntotdeauna, obiectivele
urmarite prin calcul pot atinse utilizand procedura de transformare MQR care
opereaza direct cu forma factorizata a matricei Q.
3.4.3 Triangularizarea ortogonala la nivel de bloc
Ideea procedurilor bloc de triangularizare ortogonala este aceeasi cu a procedurilor
bloc de factorizare LU, descrise n sect iunea 2.4. La fel ca acolo, utilizarea acestui
tip de proceduri este indicata pe calculatoarele cu memorie ierarhica.
Pentru precizare, n continuare ne vom referi la procedura CQR care efectueaza
triangularizarea matricei A, partit ionata pe coloane, utilizand reectori complecsi.
Dupa cum am vazut, aceasta procedura este bogata n operat ii vectoriale, iar efortul
principal de calcul se consuma la pasul 1.2 pentru actualizarea coloanelor urmatoare.
Avand n vedere accelerarea acestui proces pe seama reducerii numarului de apeluri
la memoria principala, procedura bloc opereaza asupra matricei A partit ionate n
blocuri de coloane, cu scopul de a efectua operat iile indicate utilizand procedurile
de nmult ire matriceala (la nivel de bloc) de tip GEMM din BLAS 3.
Consideram A C
mn
cu m n si n = n
b
, unde n
b
e dimensiunea comuna a
blocurilor (de coloane), iar este numarul total de blocuri. Procedura de triangu-
larizare la nivel de bloc are etape. (Pentru simplitate, n continuare indicele de
etapa va omis.)
La prima etapa, are loc triangularizarea primului bloc al matricei A, efectuand
transformarea A Q
H
b
A.

In consecint a, se considera partit ia A = [A
b
B], unde
A
b
= A(1 : m, 1 : n
b
), B = A(1 : m, n
b
+ 1 : n) (3.69)
si se procedeaza astfel:
3.4. FACTORIZAREA QR 157
Bl
1
1. Se genereaza Q
b
a.. Q
H
b
A
b
= R
b
este superior triunghiulara
2. Se formeaza Q
b
3. Se aplica transformarea B Q
H
b
B
Evident, la pasul 1 se aplica procedura uzuala CQR blocului A
b
. Matricea Q
b
rezultata este de forma
Q
b
= Q
1
Q
2
. . . Q
n
b
, (3.70)
unde Q
i
= I
m

i
u
i
u
H
i
sunt reectorii complecsi determinat i pentru a introduce
zerouri subdiagonale n coloanele i = 1 : n
b
ale blocului A
b
. Problema consta n
gasirea unei forme de reprezentare a lui Q
b
la pasul 2, adecvate accelerarii execut iei
pasului 3
15
.
La o etapa ulterioara l 2 : , matricea curenta A este superior triunghiulara
n primele k 1 coloane, unde k = (l 1)n
b
+ 1, prin urmare
A =
_
R

S
0

A
_
,
unde matricea R

este superior triunghiulara de ordin k 1, iar



A = A(k : m, k : n)
este matricea ramasa. Acum are loc triangularizarea blocului urmator efectuand
transformarea A Q
H
b
A, unde
Q
b
= Q
k
Q
k+1
. . . Q
k+n
b
1
,
iar ecare reector Q
i
are o structura de tip (3.10), deci
Q
b
=
_
I
k1
0
0

Q
b
_
.

In consecint a, se considera partit ia



A = [

A
b

B], unde acum

A
b
= A(k : m, k : k +n
b
1),

B = A(k : m, k +n
b
: n),
si se aplica procedura Bl
1
cu noile date. Matricea

Q
b
rezultata este de forma

Q
b
=

Q
1

Q
2
. . .

Q
n
b
,
iar problemele de calcul la pasii 2 si 3 sunt aceleasi ca mai sus.
Pentru precizare, n continuare ne vom referi la partit ia (3.69) si vom descrie
cele doua tipuri de reprezentari structurate ale matricelor Q
b
de tip (3.70), utilizate
15
Procedurile uzuale de tip vectorial, expuse n sect iunile anterioare, nu satisfac acest deziderat.
Aplicarea succesiv a a transform arilor Q
i
, i = 1 : n
b
, n maniera MQR, este ecient a (num arul
de operat ii este 2n
b
(2m n
b
)(n n
b
)) dar nu conduce la operat ii matriceale implementabile n
BLAS 3. Pe de alt a parte, formarea explicit a a matricei Q
b
prin acumularea transform arilor
n maniera GQR este costisitoare, totodat a Q
b
rezult a nestructurat a, deci produsul matriceal
B Q
H
b
B cere 2m
2
(n n
b
) operat ii, unde tipic, m n
b
, adic a cu un ordin mai mult dec at
este necesar.

In plus, un asemenea mod de lucru cere un spat iu considerabil pentru memorarea
matricei Q
b
.
De aceea, n practic a, se utilizeaz a reprezent ari speciale ale matricelor de tip Q
b
care poart a
numele de reectori bloc si care vor descrise n continuare.
158 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
n practica. (Indicele
b
va omis.) Aceste reprezentari se numesc reectori bloc, iar
elementele lor denitorii se construiesc exploatand relat ia recurenta
Q = Q
1
, Q Q
+
= QQ
i
, i = 2 : n
b
.
a. Reprezentarea WY este de forma Q
H
= I WY
H
, respectiv
Q = I Y W
H
, (3.71)
unde W, Y C
mn
b
sunt doua matrice ce urmeaza a determinate.
Init ial avem Q = I
1
u
1
u
H
1
, deci putem lua
W = u
1
, Y =
1
u
1
.
Mai departe putem scrie
Q
+
= QQ
i
= (I Y W
H
)(I
i
u
i
u
H
i
) =
= I Y W
H

i
(I Y W
H
)u
i
u
H
i
=
= I
_
Y z
i

_
W
H
u
H
i
_
=
= I Y
+
W
H
+
,
deci
W
+
= [W u
i
], Y
+
= [Y z
i
],
unde z
i
=
i
(I Y W
H
)u
i
. Matricea W, formata prin alaturarea vectorilor House-
holder u
i
, este produsa si memorata ca atare de catre procedura CQR pe pozit iile
subdiagonale din tabloul A
b
. (

Intrucat primele i 1 componente ale vectorilor


Householder u
i
sunt nule, iar u
ii
= 1, W este chiar inferior trapezoidala unitate.)

In consecint a, reprezentarea WY este complet denita de tabloul Y , a carui proce-


dura de formare (vezi pasul 2 al schemei Bl
1
) este urmatoarea.
% Formarea lui Y
1. Y (:, 1) =
1
u
1
2. Pentru i = 2 : n
b
1. Y (:, i) = (
i
u
i
) Y (W
H
(
i
u
i
))
La pasul 3 al procedurii Bl
1
, reectorul bloc n reprezentarea WY se aplica
matricei B conform schemei
B Q
H
B = (I WY
H
)B = B W(Y
H
B), (3.72)
respectiv
1. N = Y
H
B
2. B B WN
Ambele produse se efectueaza utilizand GEMM si cer 4mn
b
(n n
b
) operat ii. Sin-
gurul neajuns al reprezentarii WY consta n necesitatea formarii tabloului de lucru
suplimentar Y de dimensiune mn
b
, relativ mare.
3.4. FACTORIZAREA QR 159
b. Reprezentarea W
2
T sau triunghiulara este de forma Q
H
= I WT
H
W
H
,
respectiv
Q = I WTW
H
(3.73)
unde, dupa cum vom vedea, W este acelasi ca mai sus, iar T C
n
b
n
b
rezulta
superior triunghiulara.
Init ial avem Q = I
1
u
1
u
H
1
, deci putem lua
W = u
1
, T =
1
.
Mai departe putem scrie
Q
+
= QQ
i
= (I WTW
H
)(I
i
u
i
u
H
i
) =
= I WTW
H

i
u
i
u
H
i
+W(
i
TW
H
u
i
)u
H
i
=
= I
_
W u
i

_
T t
i
0
i
_ _
W
H
u
H
i
_
=
= I W
+
T
+
W
H
+
deci avem
W
+
= [W u
i
], T
+
=
_
T t
i
0
i
_
,
unde t
i
=
i
T(W
H
u
i
).
Procedura de formare a tabloului triunghiular T, care deneste complet repre-
zentarea W
2
T, este urmatoarea.
% Formarea lui T
1. T(1, 1) =
1
2. Pentru i = 2 : n
b
1. T(1 : i 1, i) =
i
T(W
H
u
i
)
2. T(i, i) =
i
La pasul 3 al procedurii Bl
1
, reectorul bloc n reprezentarea W
2
T se aplica
matricei B conform schemei
B Q
H
B = (I WTW
H
)B = B WT(W
H
B), (3.74)
respectiv
1. N = W
H
B
2. N T
H
N
3. B B WN
O analiza simpla arata ca n acest caz este sucient un singur tablou de lucru de
dimensiune n
b
n, relativ mica.

In primele n
b
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 operat ii este
(4m+n
b
)n
b
(nn
b
). Cresterea numarului de operat ii este compensata de memorarea
mai compacta a reprezentarii triunghiulare.
Combinand ideile de mai sus, procedura de triangularizare ortogonala la nivel
de bloc poate rezumata astfel.
160 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
CQR Bl % Triangularizare la nivel de bloc, utilizand reectori complecsi.
1. Pentru k = 1 : n
b
: min(n, m)
1. f = min(k +n
b
1, n)
2. A
b
= A(k : m, k : f)
3. (k : f) = CQR(A
b
)
4. A(k : m, k : f) = A
b
5. Daca f < n atunci
% Formarea lui T
1. T(k, k) =
k
2. Pentru i = k + 1 : f
1. T(k : i 1, i) =
i
T(W
H
u
i
)
2. T(i, i) =
i
% aplicarea transformarii
3. B = A(k : m, f + 1 : n)
4. N = W
H
B
5. N T
H
N
6. B B WN
7. A(k : m, f + 1 : n) = B

In redactarea de mai sus, A


b
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


tratat sub forma partit ionata.) Amintim ca tabloul W este format si memorat
ca atare n triunghiul strict inferior al blocului A
b
obt inut la pasul 1.3. Evident, n
cazul n
b
= 1 procedura de mai sus se reduce la CQR. Instruct iunile 1.2, 1.4, 1.5.3
si 1.5.7 efectueaza transferul datelor ntre memoria principala si cea rapida.

In nal, subliniem ca procedurile de acumulare si transformare GCQR si


MCQR pot de asemenea reformulate la nivel de bloc, procedand n esent a ca la
pasul 1.5 al algoritmului de mai sus.
3.4.4 Alte metode de ortogonalizare
Factorizarea QR a unei matrice monice A C
mn
poate calculata utilizand pro-
cedurile de ortogonalizare de tip Gram-Schmidt, care constituie analogul schemelor
compacte Crout si Doolittle, cunoscute din sect iunea 2.4.
Considerand relat ia A = Q

R si partit ionand A si Q

pe coloane, putem scrie


[a
1
. . . a
j
. . . a
n
] = [q
1
. . . q
j
. . . q
n
]
_

_
r
11
. . . r
1j
. . . r
1n
.
.
.
.
.
.
.
.
.
r
jj
. . . r
jn
.
.
.
.
.
.
r
nn
_

_
.
Egaland primele coloane avem
a
1
= q
1
r
11
,
3.4. FACTORIZAREA QR 161
unde vectorul q
1
este normat, i.e. q
1
= 1, deci r
11
= a
1
si q
1
= a
1
/r
11
.

In
general avem
a
j
= q
1
r
1j
+. . . +q
j1
r
j1,j
+q
j
r
jj
,
unde q
k
q
j
, deci q
H
k
a
j
= r
kj
, k = 1 : j 1, iar q
j
este si el normat, deci
r
jj
= a
j

j1

k=1
q
k
r
kj
.
Procedura de ortogonalizare Gram-Schmidt astfel obt inuta este urmatoarea.
GS % Procedura Gram-Schmidt (schema jk)
1. Pentru j = 1 : n
1. q
j
= a
j
2. Pentru k = 1 : j 1
1. r
kj
= q
H
k
q
j
3. q
j
q
j

j1
k=1
q
k
r
kj
4. r
jj
= q
j

5. q
j
q
j
/r
jj
Prin rearanjarea buclelor procedurii GS si actualizarea coloanei curente q
j
ime-
diat dupa calculul unui coecient r
kj
, se obt ine procedura de ortogonalizare Gram-
Schmidt modicata.
MGS % Procedura Gram-Schmidt modicata (schema kj)
1. Pentru k = 1 : n
1. q
k
= a
k
2. Pentru k = 1 : n
1. r
kk
= q
k

2. q
k
q
k
/r
kk
3. Pentru j = k + 1 : n
1. r
kj
= q
H
k
q
j
2. q
j
q
j
q
k
r
kj
Aici este important sa subliniem ca, desi cele doua proceduri sunt echivalente din
punct de vedere matematic, iar numarul de operat ii este acelasi n ambele cazuri,
N
GS
= 2mn
2
, totusi performant ele 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 calculat i q
j
rezulta ortogonali
n precizia de lucru) si constituie totodata un algoritm numeric stabil pentru re-
zolvarea problemei CMMP. De aceea, n multe situat ii, procedura MGS (imple-
mentata ngrijit) poate constitui o alternativa viabila fat a de perechea QR, GQR,
relativ mai costisitoare.
162 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
3.4.5 Factorizarea QL

In unele aplicat ii matricea A este adusa la forma inferior triunghiulara n raport cu


diagonala secundara care ncepe din colt ul dreapta-jos, i.e.
Q
H
A = L, (3.75)
unde l
ij
= 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 reec-
tori modicat i. Notand reectorii cu indicele coloanei n care se pastreaza vectorii
Householder corespunzatori, putem scrie
Q
H
= Q
H
1
Q
H
2
. . . Q
H
n
, (3.76)
iar procedura de calcul poate rezumata astfel.
QL % Schema de triangularizare QL, cazul m n
1. Pentru k = n : 1 : 1
1. Se genereaza Q
k
a.. (Q
H
k
A)
ik
= 0, i = 1 : mn +k 1
2. A Q
H
k
A
La pasul 1.1 se utilizeaza o procedura de tip mRFG (vezi tabelul 3.1), iar la
pasul 1.2 se modica numai primele mn+k elemente din coloanele j = 1 : k 1,
utilizand procedura corespunzatoare mRF.
Aplicat iile procedurii de triangularizare QL sunt perfect similare cu aplicat iile
descrise mai sus ale procedurii QR (vezi problemele 3.42, 3.43).
3.5 Rezolvarea problemei CMMP
Revenim acum la problema (3.4) din sect iunea introductiv a a acestui capitol si, pen-
tru generalitate, consideram versiunea ei complexa. Fie A C
mn
o matrice data si
b C
m
un vector arbitrar. Problema CMMP consta n determinarea pseudosolut iei
x

C
n
a sistemului Ax = b astfel ncat norma euclidiana a reziduului r = b Ax
sa e minima, i.e.
b Ax

= min
xC
n
b Ax. (3.77)

In primul rand, vom stabili condit iile n care problema (3.77) este bine denita,
i.e. are o solut ie unica.
Teorema 3.3 Oricare ar vectorul b C
m
, problema (3.77) are o solut ie unic a
dac a si numai dac a matricea A C
mn
este monica, i.e. m n si rangA = n.

In acest caz, pseudosolut ia n sensul CMMP a sistemului Ax = b poate scris a


n forma
x

= A
+
b, (3.78)
n care matricea A
+
C
nm
este prin denit ie pseudoinversa lui A si are expresia
A
+
= (A
T
A)
1
A
T
(3.79)
3.5. REZOLVAREA PROBLEMEI CMMP 163
Demonstrat ie. Vom stabili pe rand a) existent a si b) unicitatea pseudosolut iei x

.
a) Pentru a demonstra existent a, nu e necesar sa presupunem ca matricea A
este monica. Consideram subspat iul S = ImA si e S

= KerA
H
complementul
sau ortogonal n C
m
. Vectorul b poate scris n mod unic sub forma b = b
1
+ b
2
,
unde b
1
S si b
2
S

sunt proiect iile ortogonale ale lui b pe S si respectiv S

.
Avem
r = b Ax = b
2
+ (b
1
Ax), (3.80)
unde b
1
S, Ax S implica b
1
Ax S, deci b
2
si b
1
Ax sunt ortogonali,
x C
n
, vezi gura 3.6. Aplicand teorema lui Pitagora obt inem
b Ax
2
= b
1
Ax +b
2

2
= b
1
Ax
2
+b
2

2
b
2

2
, x C
n
. (3.81)

Intrucat b
1
S = ImA, exista (cel put in) un x

C
n
astfel ncat
Ax

= b
1
, (3.82)
iar din (3.81) se vede ca orice astfel de x

are proprietatea (3.77) si reciproc.


Existent a pseudosolut iei x

este demonstrata.
Relat ia (3.82) arata ca cea mai buna aproximare b

= Ax

a lui b pe S = ImA
coincide cu proiect ia ortogonala b
1
, deci b

= b
1
exista ntotdeauna si este unic
determinata oricare ar A. Aceasta armat ie constituie lema proiect iei ortogonale
si reprezinta generalizarea unui fapt binecunoscut din geometria elementara. Pe
scurt (vezi (3.77) si gura 3.6), distant a minima de la un punct b la un subspat iu
S este lungimea (euclidiana) a perpendicularei duse din b pe S.
Considerat iile geometrice de mai sus pot exprimate analitic. Notand
r

= b Ax

, din (3.80) si (3.82) se vede ca r

= b
2
, unde b
2
S

= KerA
H
,
deci A
H
r

= 0. Prin urmare avem


_
I
m
A
A
H
0
_ _
r

_
=
_
b
0
_
, (3.83)
de unde, eliminand r

ntre cele doua ecuat ii, rezulta


A
H
Ax

= A
H
b. (3.84)
b) Din (3.82), pseudosolut ia x

e unic determinata daca si numai daca


A(x x

) = 0 implica x = x

, adica KerA = {0}, sau, echivalent, A este monica.

In acest caz, gramianul G = A


H
A este o matrice pozitiv denita, deci inversabila
(vezi demonstrat ia teoremei 3.2), iar din (3.84) rezulta imediat (3.78) si (3.79).
Observat ia 3.5 Sistemul liniar (3.83), de ordin m+n, se numeste sistemul extins
asociat problemei CMMP. Matricea acestui sistem este hermitica de semn nedenit
si are o structura particulara remarcabila. Prin rezolvarea acestui sistem putem
calcula atat pseudosolut ia x

cat si reziduul de norma minima r

. Procedurile de
calcul corespunzatoare vor expuse mai jos
16
.
16
In principiu, sistemul extins poate rezolvat utiliz and procedurile de factorizare cvasi-
diagonal a descrise n sect iunea 2.10, dar acestea nu sunt eciente n cazul de fat a deoarece nu
exploateaz a structura special a a sistemului considerat (vezi problema 3.52).
164 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
`
`
`
`
\
\
\
\
\
\
\
\
\
\
\
\ `

`
-
-
-
-
-
-
-
-
`
S = ImA
b
2
b
b
1
Ax
b Ax
b
1
Ax
T = S

Fig. 3.6: Lema proiect iei ortogonale


Sistemul liniar (3.84), de ordin n, se numeste sistemul de ecuat ii normale, pe
scurt sistemul normal asociat problemei CMMP. Daca matricea A e monica, grami-
anul G este o matrice hermitica pozitiv denita, iar pseudosolut ia x

coincide cu
solut ia sistemului normal. La fel ca n observat ia 3.4, aceasta echivalent a poate
exploatata n doua sensuri.
a) Pseudosolut ia x

a sistemului Ax = b poate determinata prin rezolvarea


sistemului normal asociat. Schema de calcul este urmatoarea:
S Ch 1. Se formeaza c = A
H
b
2. Se formeaza G = A
H
A
3. Se efectueaza factorizarea Cholesky G = R
H
1
R
1
4. Se calculeaza x

rezolvand succesiv sistemele


triunghiulare R
H
1
y = c si R
1
x

= y.
Trebuie nsa sa subliniem ca, la fel ca n observat ia 3.4, aceasta metoda (desi
relativ economica si extrem de compacta) nu este recomandabila din punct de vedere
numeric, deoarece matricea G = A
H
A este rau condit ionata. Cu precaut ie, ea poate
avuta n vedere, n special dac a m n, iar economia de memorie realizata prin
formarea lui G constituie un obiectiv esent ial.
b) Solut iile unor sisteme liniare cu matrice pozitiv denite avand structura de
gramian pot determinate aplicand ideea algoritmilor de radacina patrata bazat i
pe utilizarea transformarilor unitare (vezi observat ia 3.4). Acest mod de lucru,
frecvent utilizat n practica actuala, este ilustrat prin problema 3.46.
3.5.1 Calculul pseudosolut iei
Avand n vedere teorema 3.3, peste tot mai departe vom presupune ca matricea
A C
mn
este monica.
3.5. REZOLVAREA PROBLEMEI CMMP 165
Rezolvarea problemei CMMP se poate face utilizand informat ia furnizata de
algoritmul de triangularizare ortogonala QR, i.e.
Q
H
A =
_
R

0
_
}n
}mn
, Q
H
= Q
H
n
. . . Q
H
2
Q
H
1
, (3.85)
unde Q este unitara, iar R

este superior triunghiulara inversabila. Aplicand trans-


formarea Q
H
ambilor membri ai sistemului Ax = b si notand
Q
H
b = d, d =
_
d

_
}n
}mn
, (3.86)
obt inem sistemul unitar echivalent
_
R

0
_
x =
_
d

_
}n
}mn
. (3.87)

In general, n (3.87) avem d

= 0, deci sistemul dat Ax = b este incompatibil.


Pentru a determina pseudosolut ia x

, consideram reziduul r = b Ax. Din


(3.87) rezulta
Q
H
r =
_
d

x
d

_
, (3.88)
unde matricea Q
H
este unitara, deci r = Q
H
r. Prin urmare
r
2
= Q
H
r
2
= d

x
2
+d

2
d

2
, x C
n
. (3.89)
Efectuand minimizarea n raport cu x indicata n (3.77) obt inem
R

= d

, (3.90)
deci solut ia n sens CMMP a sistemului supradeterminat Ax = b coincide cu solut ia
sistemului superior triunghiular nesingular reprezentat de primele n ecuat ii din
(3.87)
17
. Pe scurt, avem
x

= [(R

)
1
0]Q
H
b (3.91)
sau echivalent
x

= (R

)
1
Q
H
b. (3.92)
Procedural, solut ia problemei CMMP (3.77) este determinata de relat iile (3.86)
si (3.90). T inand cont de structura lui Q
H
din (3.85), se vede usor ca transformarile
(3.86) pot efectuate (pe loc n b), utilizand o procedura de tip MQR. Schema de
calcul astfel obt inuta este urmatoarea
SQR % Calculul pseudosolut iei x = A
+
b
1. Pentru k = 1 : n
1.b Q
H
k
b
2. Se rezolva sistemul triunghiular R

x = b(1 : n)
17
Rat ionamentul de mai sus constituie o nou a demonstrat ie, de data aceasta constructiv a, a
teoremei 3.3. Relat iile (3.80-3.82) si (3.88-3.90) se corespund n mod evident.
166 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Cu referire la algoritul 3.5, care utilizeaza reectori hermitici, implementarea
schemei SQR are loc astfel.
Algoritmul 3.8 (SQR problema liniar a a celor mai mici p atrate)
(Se da un vector b C
m
. Utilizand iesirea algoritmului 3.5, se calculeaza
n x solut ia n sens CMMP a sistemului liniar Ax = b. Se presupune ca
matricea A este monica.)
% se aplica transformarile vectorului b
1. Pentru k = 1 : n
1. t = a
kk
2. a
kk
u
kk
=
k
3. = (

m
i=k
u
ik
b
i
) /
k
4. b
i
b
i
+u
ik
, pentru i = k : m
5. a
kk
= t
% calculul solut iei problemei CMMP
2. Pentru k = n : 1 : 1
1. x
k
= (b
k

n
j=k+1
a
kj
x
j
)/a
kk
Comentarii.

In cazul real, algoritmul 3.8 necesita N
op
= N
m
+n
2
= 4mn n
2
operat ii. Modul de apel este x = SQR(A, , b). Ret inem ca determinarea pseudo-
solut iei prin apelarea succesiva a procedurilor QR si SQR necesita asimptotic N
QR
operat ii, i.e. principalul efort de calcul se consuma pentru triangularizarea ortogo-
nala a matricei A.

In cazul utilizarii algoritmului CQR, implementarea schemei SQR este urmatoarea.


SCQR % Calculul pseudosolut iei.
1. Pentru k = 1 : s
1. CRF(A(k : m, k),
k
, b(k : m))
2. x = UTRIS(A(1 : n, :), b(1 : n))
Pe baza informat iilor furnizate de schema SQR, putem calcula usor si reziduul
de norma minima r

= bAx

, obt inand astfel solut ia completa a sistemului extins


(3.83). Din (3.88) si (3.90) obt inem imediat
r

= Q
_
0
d

_
, (3.93)
n care d

are semnicat ia din (3.86). Prin urmare, avand n vedere ca vectorul


transformat b d = Q
H
b a fost deja calculat la pasul 1, r

poate obt inut (pe loc


n b) completand schema SQR cu secvent a
3. b(1 : n) = 0
4. Pentru k = n : 1 : 1
1. b Q
k
b
3.5. REZOLVAREA PROBLEMEI CMMP 167

In rezumat, ind date matricea A si vectorul b, calculul pseudosolut iei x

a
sistemului Ax = b si al reziduului de norma minima r

consta n triangularizarea
ortogonala a matricei A, urmata de aplicarea schemei SQR completata asa cum am
spus mai sus. Utilizand procedurile cunoscute QR, MQR si UTRIS, algoritmul
de calcul se redacteaza concis astfel.
CMMP % Rezolvarea completa a problemei CMMP.
0. [A, ] = QR(A)
1. b = MQR(

da

, A, , b)
2. x = UTRIS(A(1 : n, :), b(1 : n))
3. b(1 : n) = 0
4. b = MQR(

nu

, A, , b)
Subliniem ca la pasul 2 pseudosolut ia x

nu se calculeaza pe locul membrului


drept b, tocmai avand n vedere utilizarea acestui spat iu la pasii 3 si 4 pentru
memorarea lui r

. Deseori n practica, pentru aprecierea gradului de incompati-


bilitate a sistemului Ax = b, este sucient calculul normei = r

. Evident,
avem = b(n + 1 : m), unde b este vectorul transformat obt inut la pasul 1 al
procedurilor SQR sau CMMP.
3.5.2 Calculul proiect iilor

In numeroase aplicat ii prezinta interes calculul proiect iilor ortogonale b


1
si b
2
ale
unui vector b pe subspat iile S = ImA si respectiv S

= KerA
H
.
Din demonstrat ia teoremei 3.5 (vezi gura 3.6) a rezultat ca proiect ia b
2
a lui b pe
S

coincide cu reziduul de norma minima r

, deci se calculeaza aplicand procedura


CMMP din care pasul 2 se omite
18
.

In mod similar proiect ia b


1
a lui b pe S, care coincide cu vectorul de cea mai
buna aproximat ie b

= Ax

, are expresia
b

= Q
_
d

0
_
, (3.94)
deci se calculeaza aplicand aceeasi procedura CMMP n care pasul 3 se nlocuieste
cu
3

. b(n + 1 : m) = 0.
Subliniem ca, pentru sigurant a calculului, proiect iile b
1
= b

si b
2
= r

se
determinantotdeauna utilizand relat iile (3.86), (3.93) si (3.94), n care au loc numai
transformari ortogonale.

In special, nu se recomanda utilizarea relat iilor evidente
b

= Ax

si r

= b Ax

sau b
1
+b
2
= b, aparent mai simple, deoarece acestea din
urma pot conduce la erori catastrofale de anulare prin scadere. De asemenea, este
esent ial sa ret inem ca determinarea proiect iilor precum si calculul pseudosolut iei
se efectueaza operand direct asupra vectorului b, fara a forma explicit proiectorii
ortogonali P
1
, P
2
sau pseudoinversa A
+
.
18
Tocmai n virtutea acestei semnicat ii geometrice remarcabile, reziduul r

= b Ax

poate
calculat f ar a a determina n prealabil pseudosolut ia x

.

In general, toate calculele se fac utiliz and
exclusiv informat iile obt inute la pasii 0 si 1 ai procedurii CMMP, f ar a nici o referire la datele
init iale A, b care, de altfel, au si fost distruse.
168 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
3.5.3 Problema CMMP cu membru drept multiplu
Fie acum A C
mn
o matrice data si B C
mp
o matrice arbitrara cu p coloane,
unde p 1. Problema rezolvarii n sensul CMMP a sistemului cu membru drept
multiplu AX = B consta n determinarea pseudosolut iei X

C
np
astfel ncat
norma Frobenius a reziduului matriceal R = B AX sa e minima, pe scurt
B AX

F
= min
XC
np
B AX
F
. (3.95)
Analiza acestei probleme este simpla. Partit ionand matricele B, X si R pe
coloane, cu notat ii clare putem scrie r
j
= b
j
Ax
j
, j = 1 : p. Pe de alta parte, prin
denit ia normei Frobenius avem
R
2
F
=
p

j=1
r
j

2
. (3.96)

In consecint a, problema de minimizare (3.95) este echivalenta cu p probleme CMMP


de tip (3.77), avand aceeasi matrice A si membri drept i diferit i, i.e.
b
j
Ax

j
= min
xC
n
b
j
Ax, j = 1 : p. (3.97)
Prin urmare, daca matricea A este monica, atunci conform teoremei 3.3 ecare
problema (3.97) are o solut ie unica x

j
= A
+
b
j
, j = 1 : p, iar matricea
X

= [x

1
. . . x

p
], rezultata prin agregarea acestora constituie solut ia unica
X

= A
+
B (3.98)
a problemei (3.95).
Procedural, pseudosolut ia X

C
np
se calculeaza simplu, efectuand o sin-
gur a dat a triangularizarea ortogonala a matricei A si aplicand apoi repetat algo-
ritmul de rezolvare SQR ecarei 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 CMMPn care vectorul b se nlocuieste peste tot cu ma-
tricea B. Desigur, n acest nou context pot aplicate avantajos (pe calculatoarele
cu memorie ierarhica) procedurile bloc de triangularizare ortogonala si aplicare a
transformarilor, expuse n sect iunea 3.4.4.
3.5.4 Calculul pseudoinversei
Matricea pseudoinversa A
+
, denita prin (3.78) are multe proprietat i interesante
si, n principiu, poate calculata n multe feluri.

In primul rand, utilizand relat ia (3.79), constatam imediat ca


1

A
+
A = I
n
2

AA
+
= (AA
+
)
H
.
Prima relat ie arma ca A
+
este o inversa la stanga a matricei A; n particular,
rangA
+
= n, deci A
+
este epica. A doua relat ie, n combinat ie cu prima, arata
3.5. REZOLVAREA PROBLEMEI CMMP 169
ca matricea hermitica P
1
= AA
+
coincide cu proiectorul ortogonal pe subspat iul
S = ImA. Prin urmare, relat iile 1

si 2

determina unic matricea A


+
cu expresia
(3.79). Din nefericire, (3.79) este improprie din punct de vedere numeric, deoarece
implica inversarea gramianului G = A
H
A.

In al doilea rand, punand B = I


m
din (3.98) gasim X

= A
+
. Prin urmare,
avand n vedere (3.95), A
+
este solut ia unica a problemei de minimizare
I
m
AA
+

F
= min
XC
nm
I
m
AX
F
. (3.99)
Nici aceasta constatare, desi teoretic extrem de interesanta, nu are nsa utilitate
calculatorie. Determinarea lui A
+
prin rezolvarea sistemului AX = I
m
utilizand
procedura CMMP este evident neecienta, deoarece aplicarea transformarilor de la
pasul 1 nu t ine seama de structura speciala a membrului drept B = I
m
.

In sfarsit, din (3.78), prin identicare cu (3.91), (3.92) rezulta


A
+
= [(R

)
1
0]Q
H
, respectiv A
+
= (R

)
1
Q
H
, (3.100)
n care apar direct elementele factorizarii QR a matricei A.

In consecint a, A
+
poate calculata efectuand triangularizarea ortogonala a matricei A si utilizand
informat ia astfel obt inuta pentru a explicita oricare dintre relat iile (3.100).
a)

In primul caz se calculeaza inversa matricei triunghiulare R

si apoi se aplica
transformarea Q
H
la dreapta inversei extinse cu zerouri, utilizand o procedura de
tip MQRd.
b)

In al doilea caz se acumuleaza matricea Q

utilizand procedura GQR si apoi


se rezolva sistemul superior triunghiular R

A
+
= Q
H 19
.
Detaliile de implementare precum si analiza algoritmilor de calcul astfel obt inut i
sunt propuse cititorului ca exercit ii.

Intrucat matricea A
+
este rareori necesara ca atare n calcule, iar formarea sa
explicita este costisitoare, n practica se recomanda evitarea determinarii lui A
+
n
favoarea rezolvarii n sens CMMP a unui sistem AX = B denit n mod adecvat. O
observat ie similara este valabila relativ la proiectorii P
1
si P
2
. Calculul proiect iilor
se face direct, dupa cum am aratat n sect iunea 3.5.2.
3.5.5 Alte metode de rezolvare a problemei CMMP
Calculul pseudosolut iei x

a sistemului Ax = b se poate face utilizand factorizarea


QR a matricei furnizata de procedura Gram-Schmidt modicata din sect iunea 3.4.4.
Pe scurt, avem A = Q

, unde ambele matrice Q

si R

sunt formate explicit de


procedura MGS, iar relat ia (3.92) spune ca x

= (R

)
1
Q
H
b. Partit ionand Q

pe
coloane, schema de calcul este urmatoarea.
SMGS % Calculul pseudosolut iei.
1. Pentru j = 1 : n
1. x
j
d
j
= q
H
j
b
2. Se rezolva sistemul triunghiular R

x = d

19
Amintim c a procedura GQR calculeaz a Q

pe loc n A. Prin urmare, matricea Y = (A


+
)
H
poate obt inut a tot n A, rezolv and sistemul inferior triunghiular Y (R

)
H
= Q

.
170 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Numarul de operat ii este N
op
= 2mn + n
2
, prin urmare calculul pseudosolut iei
prin apelarea succesiva a procedurilor MGS si SMGS cere asimptotic N
GS
> N
QR
operat ii.
Desigur, procedura de triangularizare ortogonala este mai economica deoarece
nu formeaza explicit matricea Q

, totusi simplitatea procedurii MGS este uneori


atractiva. Realmente neplacuta aici este absent a matricei de completare Q

pe
care procedura MGS nu o poate calcula.

In consecint a, calculul reziduului de norma
minima nu se poate face acum decat pe baza relat iei r

= b Ax

, ceea ce necesita
pastrarea unor copii ale datelor de intrare A, b.

In plus, daca sistemul Ax = b este
aproape compatibil, i.e. vectorii b si b

= Ax

sunt apropiat i, atunci calculul


lui r

este amenint at de erori catastrofale si, de aceea, trebuie efectuat lucrand n


dubla precizie (vezi sect iunea 2.7).
3.6 Sisteme liniare subdeterminate
Rezolvarea sistemelor liniare subdeterminate necesita o procedura specica de tri-
angularizare ortogonala la dreapta, pe care o vom expune n prima parte a acestei
sect iuni.

In continuare vom construi factorizarea LQ corespunzatoare, iar n nal
vom prezenta procedura de rezolvare a problemelor CMMP de tip (3.5).
3.6.1 Triangularizarea ortogonala la dreapta
Propozit ia 3.3 Oricare ar A C
mn
, exist a o matrice unitara V
H
not
= Z
C
nn
astfel nc at matricea
AV
H
= L, respectiv AZ = L, (3.101)
este inferior triunghiulara.

In cazul real A R
mn
, matricea de transformare V
T
= Z poate aleas a (real a
si) ortogonal a, deci L rezult a real a.
Pe scurt, orice matrice A este unitar echivalent a la dreapta cu o matrice inferior
triunghiulara. Prima relat ie arata ca A poate scrisa sub forma unui produs
A = LV , unde V este unitara, iar L este inferior triunghiulara.

In calculul numeric
o relat ie de acest tip se numeste factorizare LQ, de aceea procedurile de calcul
stabilite pe baza relat iei fundamentale (3.101) vor notate cu sigla LQ.
Demonstrat ia rezulta imediat aplicand teorema 3.1 matricei B = A
H
.

Intr-adevar, daca V A
H
= R este superior triunghiulara, atunci are loc (3.101),
unde L = R
H
este evident inferior triunghiulara
20
.
Avand n vedere ca operat ia de transpunere si conjugare este costisitoare, n
practica profesionala se opereaza direct asupra matricei date A C
mn
. Notam ca
de obicei s = min(m, n) si e Z
k
reectorii utilizat i n scopul anularii elementelor
20
Corespondent a A A
H
se numeste dualitate, iar rezultatele si relat iile asociate prin aceast a
corespondent a se numesc duale. De exemplu, relat iile (3.53) si (3.101) sunt duale.
3.6. SISTEME LINIARE SUBDETERMINATE 171
situate la dreapta diagonalei principale, din liniile matricei A, la etapele k = 1 : s.
Similar cu (3.56), matricea de transformare are structura
V
H
= Z = Z
1
Z
2
. . . Z
s
(3.102)
iar schema de triangularizare este urmatoarea
LQ % Schema generala de triangularizare LQ
1. Pentru k = 1 : s
1. Se genereaza Z
k
a.. (AZ
k
)
kj
= 0, j = k + 1 : n
2. A AZ
k
.

In cazul real sau n cazul utilizarii reectorilor hermitici (Z


k
= Z
H
k
), compo-
nentele v
kj
, j = k + 1 : n, ale vectorilor Householder v
k
se memoreaza natural pe
pozit iile elementelor anulate. Algoritmul rezultat poate redactat astfel.
Algoritmul 3.9 (LQ triangularizare ortogonal a la dreapta cu re-
ectori hermitici) (Se da A C
mn
. Se efectueaza triangularizarea
ortogonala la dreapta a matricei A, i.e. AZ = L, unde Z = Z
1
Z
2
. . . Z
s
,
iar Z
k
sunt reectori hermitici. Partea esent iala v
k
(k+1 : n) a vectorilor
Householder v
k
se memoreaz a pe pozit iile corespunzatoare A(k, k + 1 : n).
La aplicarea ulterioara a transformarilor se t ine seama ca v
kk
=
k
,
k = 1 : s. Elementele nenule ale matricei inferior triunghiulare L
suprascriu elementele corespunzatoare din triunghiul inferior al matri-
cei A.)
1. Pentru k = 1 : s
1.
k
= 0
2. Daca k < n atunci
1. = A(k, k : n)
2. Daca = 0 atunci
1. Daca a
kk
= 0 atunci
a
kk
|a
kk
|

2. a
kj
v
kj
= a
kj
/, pentru j = k : n
3.
k
v
kk
= 1 +a
kk
4. Pentru i = k + 1 : m
1. =
_

n
j=k
a
ij
v
kj
_
/
k
2. a
ij
a
ij
+ v
kj
, pentru j = k : n
% elementul diagonal
5. a
kk
=
Comentarii.

In cazul real algoritmul 3.9 necesita N
LQ
= 2nm
2
m
3
/3 operat ii
si este numeric stabil, dupa cum vom arata n sect iunea 3.8. Modul de apel este
[A, ] = LQ(A), unde este vectorul real cu componentele
k
, k = 1 : s, iar A
apare ca tablou de intrare-iesire.

In cazul utilizarii reectorilor complecsi, detaliile sunt propuse cititorului ca


exercit iu.
172 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
3.6.2 Factorizarea LQ

In aceasta sect iune construim factorizarea LQ a unei matrice A C


mn
de forma
generala.

In cazul m n, relat iile (3.101) si (3.102) pot scrise sub forma


A = LV, L = [ L

..
m
0
..
nm
], (3.103)
unde matricea
V = Z
H
m
. . . Z
H
2
Z
H
1
(3.104)
este unitara, iar L

este inferior triunghiulara de ordin m. Partit ionand V = Z


H
conform cu L, i.e.
V =
_
V

_
}m
}n m
, Z = [ Z

..
m
Z

..
nm
] (3.105)
din (3.103) deducem
A = L

, (3.106)
unde evident V

= Z
H
are liniile ortogonale, i.e. V

V
H
= I
m
.
Propozit ia 3.4 Orice matrice A C
mn
cu m n poate scris a sub forma
(3.106), unde V

C
mn
are liniile ortogonale, iar L

C
mm
este inferior
triunghiular a. Prin denit ie, relat ia (3.106) constituie factorizarea LQ a ma-
tricei A. Dac a A este epic a, atunci L

rezult a inversabil a si reciproc.


Demonstrat ia ultimei armat ii este evidenta. Mai mult, daca A este epica,
atunci matricea hermitica G = AA
H
este pozitiv denita, prin urmare considerand
factorizarea Cholesky G = L
1
L
H
1
si denind V
1
= L
1
1
A, putem stabili cu usurint a
unicitatea factorizarii LQ, n care factorul triunghiular L

are elementele diagonale


pozitive.

In general, matricea hermitica pozitiv semidenita G = AA


H
se numeste gramian
al (liniilor) lui A. Observat ia 3.4 se reformuleaza corespunzator n noul context.
Daca matricea A este epica, atunci matricea Z

din (3.105) are o semnicat ie


geometrica remarcabila. Din (3.101) sau (3.103) rezult a AZ = [L

0], unde Z are


structura (3.105), deci
AZ

= 0. (3.107)
Mai mult, Z

C
n(nm)
are coloanele ortogonale, deci constituie o baz a ortogonal a
a subspat iului N = KerA. Proiectorul ortogonal pe N este P
2
= Z

Z
H
.

In mod similar, matricea Z

C
nm
(care, n (3.105), completeaza Z

pana
la o matrice ortogonala) constituie o baza ortogonala a subspat iului complementar
N

= ImA
H
. Proiectorul ortogonal pe S este P
1
= A
H
(AA
H
)
1
A sau mai simplu
P
1
= Z

Z
H
. Pe scurt, partit ia (3.105) corespunde descompunerii ortogonale
C
n
= ImA
H
KerA. (3.108)
3.6. SISTEME LINIARE SUBDETERMINATE 173
Acumularea transformarilor

In cazul m n, factorizarea LQ a matricei A poate determinata utilizand pro-


cedura de triangularizare ortogonala la dreapta din sect iunea anterioara. Factorul
triunghiular L

se obt ine ca atare n triunghiul inferior al matricei A, iar factorul


ortogonal V

poate calculat sub forma


V

= [I
m
0]V = [I
m
0]Z
H
m
. . . Z
H
2
Z
H
1
, (3.109)
aplicand urmatoarea schema evidenta de acumulare a transformarilor.
GLQ % Acumularea primelor n linii V

ale matricei V = Z
H
, m n.
1. V

= [I
n
0]
2. Pentru k = m : 1 : 1
1. V

Z
H
k
Cu referire la algoritmul 3.9, calculul poate organizat pe loc n tabloul A,
iar procedura poate scrisa cu usurint a de cititorul interesat. Ment ionam nsa ca
formarea explicita a matricelor V

sau Z

, Z

etc. este de regula contraindicata.


Aproape ntotdeauna forma factorizata (3.102) este sucienta.
Aplicarea transformarilor
La fel ca n sect iunea 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 = Z
1
Z
2
. . . Z
s
B (3.110)
se face partit ionand B pe coloane:
MLQ % Aplicarea transformarii B ZB, unde Z = Z
1
Z
2
. . . Z
s
.
1. Pentru k = s : 1 : 1
1. B Z
k
B
Procedandn acelasi spirit, toate rezultatele din sect iunea 3.4 pot 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 exercit ii.
Factorizarea RQ

In unele aplicat ii matricea A este adusa la forma superior triunghiulara n raport


cu diagonala secundara care ncepe din colt ul dreapta-jos, i.e.
AZ = R, (3.111)
unde r
ij
= 0, j < n m + i, i = 1 : m, iar Z este unitara. (Pentru simplitate am
presupus m n.)
174 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
Procesul de triangularizare la dreapta parcurge liniile n ordine inversa, ncepand
cu ultima si anuleaza elementele situate la stanga diagonalei secundare utilizand
reectori modicat i. Notand reectorii cu indicele liniei n care se pastreaza vectorii
Householder corespunzatori, putem scrie
Z = Z
m
. . . Z
2
Z
1
, (3.112)
iar procedura de calcul poate rezumata astfel.
RQ % Schema de triangularizare RQ, cazul n > m
1. Pentru k = m : 1 : 1
1. Se genereaza Z
k
a.. (AZ
k
)
kj
= 0, j = 1 : n m +k 1
2. A AZ
k
La pasul 1.1 se utilizeaza o procedura de tip mRFG (vezi tabelul 3.1), iar la
pasul 1.2 se modica numai primele n m + k elemente din liniile i = 1 : k 1,
utilizand procedura corespunzatoare mRF.
Aplicat iile procedurii de triangularizare RQ sunt perfect similare cu aplicat iile
descrise mai sus ale procedurii LQ.
3.6.3 Rezolvarea sistemelor subdeterminate
Revenim acum la problema (3.5) din sect iunea introductiv a a acestui capitol. Fie
A C
mn
si b C
n
. Problema consta n determinarea solut iei normale a sistemului
Ax = b, i.e. a unui vector x

C
n
astfel ncat
x

= min
Ax=b
x. (3.113)
Condit iile de existent a si unicitate ale solut iei normale pot formulate astfel.
Teorema 3.4 Oricare ar b R
m
, problema (3.113) are o solut ie unic a dac a si
numai dac a A este epica, i.e. m n si rangA = m.

In acest caz, solut ia normal a x

a sistemului Ax = b poate scris a n forma


x

= A
+
b, (3.114)
n care matricea A
+
este prin denit ie (pseudo)inversa normala a lui A si are
expresia
A
+
= A
T
(AA
T
)
1
. (3.115)
Demonstrat ia rezulta usor (cel put in n cazul real) utilizand metodele clasice de
minimizare cu restrict ii (problema (3.113) este extrem de simpla). Noi vom proceda
direct, stabilind pe rand a) unicitatea si b) existent a globala a solut iei 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. mult imea X a solut iilor sistemului Ax = b nu e vida. Desigur, n limbaj
geometric, X este planul (sau varietatea liniara) de ecuat ie Ax = b. Mai precis,
3.6. SISTEME LINIARE SUBDETERMINATE 175

`
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

`
N = KerA
x
2
x
x

= x
1 N

0
planul
Ax = b
Fig. 3.7: Forma generala a solut iilor sistemului subdeterminat Ax = b
teorema 1.3 din capitolul 1 arma ca X = x
0
+ KerA, unde x
0
este o solut ie par-
ticulara.

In consecint a, conform lemei proiect iei ortogonale, solut ia x

a problemei
(3.113) coincide cu piciorul perpendicularei din origine pe planul X si ca atare este
unic determinata, vezi gura 3.7.
La fel ca n demonstrat ia teoremei 3.3, aceste considerat ii geometrice pot
exprimate analitic. Planul X este paralel cu subspat iul N = KerA, deci x

KerA
sau x

= ImA
H
, i.e. exista (cel put in) un y

C
m
astfel ncat x

= A
H
y

.
(

In interpretare variat ionala, y

este vectorul multiplicatorilor Lagrange asociat i


restrict iilor egalitate Ax = b din (3.113).)

In denitiv avem
_
I
n
A
H
A 0
_ _
x

_
=
_
0
b
_
, (3.117)
de unde, eliminand x

rezulta
AA
H
y

= b, x

= A
H
y

. (3.118)
b) Existent a globala a lui x

este asigurata, i.e. (3.116) are loc oricare ar


b C
m
, daca si numai daca A este epica.

In acest caz, matricea G = AA
H
este
pozitiv denita deci inversabila, iar (3.114) si (3.115) rezulta din (3.118).
Observat ia 3.6 Sistemul extins (3.117) si sistemul normal (3.118) au o semnicat ie
similara cu cea a sistemelor (3.83) si respectiv (3.84) din observat ia anterioara. Si
aici gramianul G = AA
H
este o matrice rau condit ionata, astfel ncat, n general,
calculul solut iei normale prin rezolvarea sistemului (3.118) nu este recomandabil.
Calculul solut iei normale
Rezolvarea problemei de minimizare cu restrict ii (3.113) se poate face utilizand
informat iile furnizate de algoritmul de triangularizare ortogonala
AZ = [L

0], Z = Z
1
Z
2
. . . Z
m
, (3.119)
176 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
unde Z este unitara, iar L

este inferior triunghiulara inversabila. Notam


x = Zu, u =
_
u

_
}m
}n m
(3.120)
si scriem sistemul Ax = b sub forma echivalenta
[L

0]
_
u

_
= b, (3.121)
Relat ia de mai sus arata ca, n procesul de minimizare din (3.113), vectorul u

= u

este xat prin


Lu

= b, (3.122)
iar u

este liber.
Pentru a determina solut ia normala x

, consideram (3.120), unde Z este orto-


gonala, deci Zu = u. Avem
x
2
= Zu
2
= u

2
+u

2
u

2
. (3.123)
Efectuand minimizarea n raport cu u

, obt inem evident


u

= 0. (3.124)
Prin urmare solut ia normala este
x

= Z
_
(L

)
1
b
0
_
, (3.125)
sau
x

= Z

(L

)
1
b. (3.126)
T inand seama de structura matricei Z din (3.119), se vede usor ca transformarea
(3.125) poate efectuata pe loc n x utilizand o procedura de tip MLQ. Schema de
calcul este urmatoarea
SLQ % Calculul solut iei normale x = A
+
b
1. Se rezolva sistemul triunghiular L

x(1 : m) = n
2. x(m + 1 : n) = 0
3. Pentru k = m : 1 : 1
x Z
k
x
Cu referire la algoritmul 3.9, care utilizeaza reectori hermitici, implementarea
schemei de mai sus are loc astfel.
Algoritmul 3.10 (SLQ rezolvarea sistemelor subdeterminate) (Se
da un vector b C
m
. Utilizand iesirea algoritmului 3.9, se calculeaza
solut ia normala x a sistemului liniar Ax = b. Se presupune ca matricea
A este epica.)
3.7. CONDIT IONAREA PROBLEMELOR CMMP 177
% se rezolva sistemul inferior triunghiular (3.122)
1. Pentru k = 1 : m
1. x
k
= (b
k

k1
j=1
a
kj
x
j
)/a
kk
% calculul solut iei normale
2. x(m + 1 : n) 0
3. Pentru k = m : 1 : 1
1. t = a
kk
2. a
kk
=
k
3.
_

n
j=k
v
kj
x
j
_
/
k
4. Pentru j = k : n
1. x
j
x
j
+v
kj
5. a
kk
= t
Calculul proiect iilor (pe ImA
H
si KerA), rezolvarea sistemelor subdeterminate
cu membru drept multiplu precum si calculul pseudoinversei normale A
+
se fac
adaptand n mod corespunzator metodologia din sect iunea 3.5. Desigur, acum A
+
este o inversa la dreapta a lui A, i.e. AA
+
= I.
3.7 Condit ionarea problemelor CMMP

In aceasta sect iune prezentam cateva rezultate privind sensibilitatea solut iilor pro-
blemelor de calcul abordate anterior n raport cu variat ia datelor de intrare
21
.
3.7.1 Preliminarii
Consideram sistemul liniar
Ax = b, (3.127)
unde A R
mn
este o matrice data, iar b R
n
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 consecint a, conform teoremelor 3.5 si 3.6, sistemul (3.127) are
o solut ie 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 notat ii cat mai uniforme. Vom spune ca A
+
este inversa (n sens
21
Deoarece aceast a tematic a are un caracter pur matematic, i.e. nu vizeaz a calitatea algoritmilor
de calcul, pe parcurs vom utiliza formulele cele mai convenabile pentru scopul propus.
22
O proprietate P denit a pe R
mn
se numeste tipica dac a este generic a si structural stabil a,
adic a are loc aproape peste tot (n afara unei variet at i algebrice) si se conserv a oricare ar
micile variat ii ale (elementelor) matricei considerate.
De exemplu, n cazul m = n, proprietatea de inversabilitate este generic a (are loc peste tot
n afara variet at ii denite de ecuat ia detA = 0) si structural stabil a (dac a detA = 0, atunci
det(A+E) = 0, oricare ar perturbat ia E sucient de mic a). Pe scurt, matricele inversabile sunt
tipice n R
nn
. Similar, matricele de rang maxim sunt tipice n R
mn
.
178 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
CMMP a) matricei A si vom deni num arul de condit ionare (la inversare) al lui A
prin
(A) = AA
+
, (3.129)
unde =
2
este norma spectral a, indusa de norma (vectoriala) euclidiana
x = (x
T
x)
1/2
, adica
A
def
= max
x=1
Ax. (3.130)
Desigur, n cazul m = n avem A
+
= A
1
, deci (3.129) se reduce la denit ia cunos-
cuta a lui (A) din sect iunea 2.7
23
.
Direct din (3.129) si (3.130),
(i) daca matricea A este ortogonala, atunci (A) = 1, i.e. matricele ortogonale
sunt perfect condit ionate la inversare.
Pe de alta parte, norma euclidiana precum si norma spectrala sunt ortogonal
invariante, deci
(ii) transformarile ortogonale nu modica condit ionarea datelor, i.e. avem
(A) = (Q
T
AZ), oricare ar matricele ortogonale Q si Z.
Proprietat ile remarcabile (i) si (ii) explica folosirea intensiva a matricelor or-
togonale n calculul numeric. (Aceleasi proprietat i de invariant a apar si n norma
Frobenius
F
, care este si ea ortogonal invarianta. Numarul de condit ionare
evaluat folosind aceasta norma este notat
F
(A).)
Revenim acum la sistemul (3.127), n care prin ipoteza matricea A este de rang
maxim si facem urmatoarele precizari.


In cazul m n matricea A este monic a, iar A
+
= (A
T
A)
1
A
T
este epica.
Evident, avem A
+
A = I
n
, deci A
+
este o inversa la stanga a lui A, dar AA
+
= I
m
,
mai precis P
1
= AA
+
si P
2
= I
m
P
1
sunt proiectorii (ortogonali) pe subspat iile
S = ImA si respectiv S

= KerA. De asemenea, este adevarat ca A


2
= A
T
A
sau, pe scurt,
A
2
= G, (3.131)
unde matricea simetrica G = A
T
A este gramianul (coloanelor) matricei A.

In cazul m n matricea A este epic a, iar A


+
= A
T
(AA
T
)
1
este monica.
Evident, acum avem AA
+
= I
m
, deci A
+
este o inversa la dreapta a lui A, iar
P
1
= A
+
A si P
2
= I
m
P
1
sunt proiectorii pe subspat iile N

= ImA
T
si respectiv
N = KerA. De asemenea, are loc relat ia (3.131), unde matricea G = AA
T
este
gramianul (liniilor) matricei A.
Putem acum formula concis primele noastre rezultate.
Propozit ia 3.5 Dac a A R
mn
este de rang maxim, atunci
(G) =
2
(A), (3.132)
unde G este gramianul matricei A.
23
Acolo am evaluat (A) utiliz and normele
1
sau , relativ mai simple.

In acelasi scop,
aici vom utiliza norma spectral a, care, dup a cum stim din capitolul 1, este ortogonal invariant a.
Anticip and rezultate din capitolul 5, preciz am c a n general norma spectral a A coincide cu
valoarea singular a maxim a a matricei A, notat a de obicei
1
, iar num arul de condit ionare este
(A) =
1
/r 1, unde r este cea mai mic a valoare singular a nenul a a lui A.
3.7. CONDIT IONAREA PROBLEMELOR CMMP 179
Demonstrat ie. Notam cu H gramianul lui A
+
.

In cazul m n, A
+
este epica,
deci
H = A
+
(A
+
)
T
= (A
T
A)
1
A
T
A(A
T
A)
1
= (A
T
A)
1
= G
1
.
Aplicand acum (3.131) lui A
+
gasim
A
+

2
= H = G
1
, (3.133)
deci (3.132) rezulta direct, utilizand denit ia lui (G) precum si relat iile (3.131) si
(3.133). Cazul m n este similar; desigur acum H = (A
+
)
T
A
+
.
Propozit ia 3.6 Dac a A R
mn
este de rang maxim, atunci matricea

A = A+E
are aceeasi proprietate, oricare ar perturbat ia E astfel nc at
E <
1
(A)A. (3.134)
Demonstrat ie.

In cazul m n putem scrie

A = (I
m
+ EA
+
)A, unde, conform
unui rezultat cunoscut, matricea I
m
+EA
+
este inversabila daca EA
+
< 1. Dar
ntotdeauna avem EA
+
E A
+
. Prin urmare, daca (3.134) are loc, atunci
A si

A sunt echivalente (la stanga), deci

A rezulta monica o data cu A.

In cazul
m n scriem

A = A(I
n
+A
+
E) si rat ionam similar.
Propozit ia 3.5 arata ca sistemele normale (3.84) si (3.118)
24
sunt mult mai
rau condit ionate decat sistemul dat (3.127) si explic a de ce determinarea solut iei
x

prin rezolvarea acestor sisteme este ntotdeauna contraindicata din punct de


vedere numeric. Propozit ia 3.6 arata ca solut ia x

este robust a, i.e. continua sa


e bine denita chiar daca matricea A a sistemului (3.127) sufera perturbat ii E
relativ importante. Conform relat iei (3.134), aceste perturbat ii sunt strict limitate
n norma numai de (A). Pentru orientare, daca (A) = 10
3
, atunci (G) = 10
6
,
deci la rezolvarea n simpla precizie (i.e. cu t = 7 cifre zecimale semnicative) a
sistemului normal se pierd aproape toate cifrele semnicative. Pe de alta parte, daca
A 1, atunci perturbat iile admisibile n A sunt numai de ordinul E < 10
3
.
Concluziile obt inute mai sus subliniaza important a deosebita a numarului de
condit ionare (A) pentru caracterizarea din punct de vedere numeric a problemei
(3.127).

In continuare vom preciza aceste concluzii, efectuand analiza cantitativa a
sensibilitat ii (locale) a solut iei x

n raport cu perturbat iile datelor.



In consecint a,
vom considera sistemul perturbat
(A +E)x = b +f, (3.135)
n care perturbat iile E si f sunt relativ mici n raport cu nivelul maxim admisibil,
e.g. avem
E
A
A, f
b
b, (3.136)
unde tipic
A
si
b
sunt de acelasi ordin de marime si, n orice caz,
A
<
1
(A).
Notand cu x

solut ia n sens CMMP a sistemului perturbat (3.136), problema


de analiza a sensibilitat ii consta pe scurt n a evalua diferent a x = x

.
24
A c aror matrice este evident G = A
T
A, respectiv G = AA
T
.
180 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

= b
2
b
1
= Ax

Fig. 3.8: este unghiul dintre vectorul b si subspat iul ImA


3.7.2 Sensibilitatea pseudosolut iei
Consideram sistemul (3.127) n care presupunem ca A R
mn
este monica, iar
A
T
b = 0.
Teorema 3.5 Sensibilitatea relativ a a pseudosolut iei x

= 0 a sistemului (3.127)
n raport cu perturbat iile (3.136) poate evaluat a acoperitor prin
x

(
2
(A)tg +(A))
A
+
(A)
cos

b
, (3.137)
unde are semnicat ia din gura 3.8.
Demonstrat ie. Conform teoremei 3.5, pseudosolut ia x

= x

+ x a sistemului
perturbat (3.135) satisface relat ia
(A
T
+E
T
)(A +E)(x

+ x) = (A
T
+E
T
)(b +f).
Desfacand parantezele si t inand seama ca A
T
Ax

= A
T
b, obt inem
(A
T
E +E
T
A)x

+ (A
T
A)x = E
T
b +A
T
f +. . . ,
unde +. . . indica termeni neglijabili n prima aproximat ie, ca produs a doua can-
titat i mici. Prin urmare putem scrie
x = (A
T
A)
1
E
T
(b Ax

) A
+
Ex

+A
+
f, (3.138)
unde evident A
T
A = G este gramianul lui A, iar b Ax

= r

este reziduul de
norma minima. Evaluand n norma ambii membri ai relat iei (3.138), gasim
x G
1
E r

+A
+
E x

+A
+
f,
de unde, t inand seama de relat iile (3.133) si (3.136), rezulta imediat
x
x


_
A
+

2
A
2
r

A x

+A
+
A
_

A
+A
+
A
b
A x

b
.

In sfarsit, avem b
1
= Ax

, deci b
1
A x

, iar din gura 3.8 se vede ca


r

b
1

= tg,
b
b
1

=
1
cos
.
3.7. CONDIT IONAREA PROBLEMELOR CMMP 181
Demonstrat ia este terminata.
Observat ia 3.7 Putem obt ine usor o evaluare mai na decat (3.137), t inand
seama ca n (3.138) perturbat iile E si f act ioneaza diferent iat.

In acest scop scriem
E = E
1
+ E
2
, unde E

= P

E, = 1 : 2, sunt proiect iile (coloanelor) lui


E pe subspat iile S si respectiv S

. Avem A
+
E = A
+
E
1
(deoarece A
+
P
2
=
= A
+
(I AA
+
) = 0) precum si E
T
r

= E
T
2
r

(deoarece r

= P
2
b iar P
2
este
proiector ortogonal, i.e. P
2
2
= P
2
si P
T
2
= P
2
).

In mod similar avem f = f
1
+ f
2
,
unde f

= P

f, = 1 : 2, iar A
+
f = A
+
f
1
. Prin urmare, relat ia (3.138) poate
scrisa sub forma echivalenta, dar mai precisa
x = G
1
E
T
2
r

A
+
E
1
x

+A
+
f
1
, (3.139)
unde E
1
, E
2
si f
1
apar acum ca perturbat ii independente, iar f
2
a disparut. Prin
urmare, daca n locul relat iei (3.136) consideram ca pentru = 1 : 2 avem
P

E
A

A, P

f
b

b, (3.140)
atunci concluzia teoremei este
x

(A)
_

A
1
+

b
1
cos
_
+
2
(A) tg
A
2
. (3.141)
Mai departe vom utiliza relat iile (3.137) si (3.141) sub forma relativ mai simpla
x


1
(A) +
2

2
(A)tg, (3.142)
unde, n acord cu (3.140),

, = 1 : 2, reprezinta estimari (n norma spectrala)


ale perturbat iilor datelor A si b la nivelul subspat iilor S si S

In esent a, relat ia (3.142) arata ca, din punctul de vedere al sensibilitat ii pseudo-
solut iei x

, exista doua clase distincte de probleme CMMP, avand caracteristici


numerice net diferite.
Prima clasa cont ine problemele CMMP aproape compatibile, la care reziduul
r

este mic n norm a fat a de membrul drept b, deci 0.



In acest caz, al doilea
termen din (3.142) este neglijabil, deci practic sensibilitatea local a a pseudosolut iei
x

este proport ional a cu num arul de condit ionare (A) al lui A.



In particular, daca
m = n, atunci avem exact r

= 0 si = 0, iar (3.142) se reduce la relat ia (2.47)


stabilita n sect iunea 2.7. Concluziile de acolo se aplica evident si aici.
A doua clasa de probleme CMMP corespunde sistemelor (3.127) cu reziduu
de norma minima r

mare n norm a fat a de membrul drept b


25
.

In acest caz al
doilea termen din (3.142) este evident dominant, deci practic sensibilitatea local a
a pseudosolut iei x

este proport ional a cu p atratul num arului de condit ionare (A).


Aceste probleme, specic de tip CMMP, sunt considerabil mai dicile din punct de
vedere numeric decat cele din prima clasa si necesita luarea unor masuri speciale
de precaut ie (vezi sect iunea urmatoare).
25
Aceast a situat ie poate usor detectat a n practic a calcul and b si = r

, vezi comentariile
la algoritmul 3.8. Subliniem c a n acest caz sensibilitatea pseudosolut iei x

depinde nu numai de
matricea A a sistemului (3.127) ci si de membrul drept b (prin intermediul lui ).
182 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

In orice caz, relat ia (3.142) subliniaza ca elementul determinant n stabilirea


sensibilitat ii pseudosolut iei este numarul de condit ionare (A), de aceea n practica
se recomanda insistent evaluarea lui (A) n cursul procesului de calcul. Desigur,
daca am efectuat triangularizarea ortogonala Q
T
A = R a lui A, atunci, beneciind
de invariant a ortogonala a normei spectrale, avem
(A) = (R), (3.143)
deci (A) poate estimat extrem de simplu, utilizand estimatorul de condit ie pentru
matrice triunghiulare descris n sect iunea 2.7. Acelasi rezultat poate obt inut
aplicand procedura de triangularizare ortogonala cu pivotarea coloanelor, descrisa
n sect iunea 3.9.

In acest caz, o (sub)evaluare a lui (A) poate obt inuta prin simpla
inspect ie, sub forma (A) = r
11
/r
nn
, unde r
kk
, 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 ret inem
ca inuent a perturbat iilor E si f asupra pseudosolut iei x

depinde de localizarea
acestoran raport cu subspat iile S si S

. De exemplu, daca ImE ImA, atunci evi-


dent E
2
= P
2
E = 0, deci sensibilitatea lui x

este dictata de (A) (iar nu de


2
(A)),
chiar daca reziduul r

este important.

In unele aplicat ii, aceste circumstant e pot
realizate printr-o ltrare prealabila adecvata a datelor de intrare, dar discutarea
acestor tehnici depaseste scopurile expunerii de fat a.

In alta ordine de idei, este
evident ca perturbat iile inerente datorate erorilor de rotunjire act ioneaza n gen-
eral aleator si n orice caz nediferent iat n raport cu S si S

, astfel ncat de fapt


dependent a de
2
(A) nu poate niciodata eliminata complet n situat iile practice,
indiferent de masurile de precaut ie luate.

In rezumat, sensibilitatea pseudosolut iei este determinata de condit ionarea ma-


tricei A precum si de clasa a problemei CMMP considerate. De asemenea, ea
depinde de tipul structural al perturbat iilor considerate.
3.7.3 Sensibilitatea solut iei normale
Consideram sistemul (3.127) n care presupunem ca matricea A R
mn
este epica,
iar b = 0.
Teorema 3.6 Sensibilitatea relativ a a solut iei normale x

= 0 a sistemului (3.127)
poate evaluat a acoperitor prin
x


1
(A), unde
1
= 2
A
+
b
. (3.144)
Demonstrat ie. Procedam ca n demonstrat ia teoremei 3.5. Conform cu teorema
3.4, solut ia normala x

= x

+ x a sistemului perturbat (3.135) satisface relat iile


(A +E)(x

+ x) = b +f, x

+ x = (A
T
+E
T
)(y

+ y),
unde Ax

= b si x

= A
T
y

. Prin urmare, n prima aproximat ie avem


Ax +Ex

= f, x = A
T
y +E
T
y

.
3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 183
Eliminand y ntre aceste relat ii si notand A
+
= A
T
(AA
T
)
1
, obt inem
x = (I
n
A
+
A)E
T
y

A
+
Ex

+A
+
f, (3.145)
unde y

= (AA
T
)
1
b = (A
+
)
T
x

, iar n paranteza din membrul drept recunoastem


proiectorul ortogonal P
2
= I
n
A
+
A pe subspat iul N = KerA. Deoarece P
2
este o
matrice simetrica cu valorile proprii 0 si 1, avem P
2
= 1.

In consecint a, evaluand
n norma ambii membri ai relat iei (3.145), gasim
26
x E A
+
x

+A
+
E x

+A
+
f,
de unde, t inand seama de (3.136), rezulta (3.145).
Observat ia 3.8 Considerand proiect iile E

= EP

, = 1 : 2, ale liniilor matricei


E pe subspat iile N

si N si procedand ca n observat ia 3.7, putem si aici scrie mai


precis
x = (I
n
A
+
A)E
T
2
y

A
+
E
1
x

+A
+
f. (3.146)
Avand nsa n vedere structura extrem de simpla a relat iei (3.145), utilitatea prac-
tica a acestei precizari este aici limitata.

In esent a, relat ia (3.144) spune ca sensibilitatea local a a solut iei normale x

este
proport ional a cu num arul de condit ionare (A) al matricei A.
Avand n vedere ca, n ipoteza teoremei 3.6, sistemele subdeterminate sunt
ntotdeauna compatibile, relat ia (3.144) poate considerata caz particular al relat iei
(3.137), n care r

= 0, deci = 0. Observam totusi ca demonstrat iile celor doua


teoreme se bazeaza pe relat ii diferite, iar coecientul 2 din (3.144) nu apare n
(3.137). Prin urmare, apelul la (3.137) ofera mai curand o conrmare intuitiva,
decat o justicare ferma a relat iei (3.144).

In rest, implicat iile practice ale relat iei
(3.144) sunt similare cu cele cunoscute din sect iunea 2.7.

In rezumat, sensibilitatea solut iei normale este dictata numai de condit ionarea
matricei A.

In acest sens, problema rezolvarii sistemelor subdeterminate este relativ
simpla.
3.8 Stabilitatea numerica a algoritmilor de
triangularizare ortogonala

In aceasta sect iune oferim cateva informat ii de baza privind stabilitatea numerica a
algoritmilor de calcul prezentat i anterior n acest capitol. De asemenea, sprijinit i pe
analiza sensibilitat ii problemelor de calcul din sect iunea precedenta, facem cateva
considerat ii privind acuratet ea solut iilor calculate si descriem o procedura de ra-
nare iterativa a acestor solut ii.
26
Amintim c a, n norma spectral a avem ntotdeauna A = A
T
.
184 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
3.8.1 Stabilitatea numerica a algoritmilor fundamentali

In general, analiza stabilitat ii numerice a algoritmilor de calcul din acest capitol nu


prezinta dicultat i de esent a, ci numai obstacole pur tehnice.

In principiu, ncepand
cu algoritmii de baza 3.1-3.4, ntregul proces de calcul se reduce la o succesiune
determinata de operat ii aritmetice elementare, inclusiv extrageri de radical, pentru
care erorile de rotunjire sunt de ordinul
M
10
t
, unde t este precizia de lucru,
adica numarul de cifre zecimale semnicative, vezi capitolul 0. Prin urmare, efectul
(cumulat al) acestor erori asupra rezultatelor obt inute n urma unui proces de calcul
liniar poate apreciat utilizand parametrul generic

cm
= cm
M
, (3.147)
unde m reprezinta numarul de operat ii efectuate, iar c este o constanta de ordinul
unitat ii, n general diferita de la caz la caz. Aici este esent ial sa subliniem cantreaga
tehnica de analiz a invers a a erorilor consta n a converti acest efect direct al erorilor
de rotunjire asupra solut iei calculate n perturbat ii echivalente la nivelul datelor.

In consecint a, algoritmul analizat este (invers) numeric stabil daca solut ia calculata
coincide cu solut ia exacta a problemei de calcul cu datele put in perturbate
27
.
Rezultatele analizei pot sintetizate astfel. (Pentru demonstrat ii si rezultate
adit ionale, vezi [IX].)
1

. Fie x R
m
un vector dat. Vectorul Householder u, calculat de procedura
RFG, este apropiat de vectorul Householder exact u, i.e.
u = u + u, unde u
cm
. (3.148)
Subliniem ca acest rezultat se datoreaza exclusiv alegerii judicioase a semnului
lui de la pasul 2.2.1.
2

. Fie x R
m
un vector dat, U
1
un reector denit de vectorul Householder
u, iar y = U
1
x. Vectorul transformat y, calculat de procedura RF, utilizand un
vector Householder aproximativ u de tip (3.148) satisface relat ia
y = (U
1
+ U)x, unde U
F

cm
. (3.149)

In continuare, utilizand rezultatele fundamentale 1

si 2

, se poate demonstra
armat ia urmatoare. (Vezi schema de calcul MQR din sect iunea 3.4.)
3

Fie A R
mn
o matrice data, Q
T
= U
s
. . . U
2
U
1
o secvent a de s reectori
denit i de vectorii Householder u
k
, k = 1 : s, iar B = Q
T
A. Matricea transformata

B, calculata utilizand schema de calcul


1. B = A
2. Pentru k = 1 : s
1. B U
k
B
cu vectori Householder aproximativi u
k
de tip (3.148), satisface relat ia

B = Q
T
(A + A), unde A
F
s
cm
A
F
. (3.150)
27
Peste tot mai departe not iunea de stabilitate numeric a a unui algoritm concret va nt eleas a
n acest sens, deci este implicit legat a de o anume problem a de calcul precizat a.
3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 185
Pe scurt, algoritmul de aplicare a unei secvent e de reectori este (invers) numeric
stabil, iar perturbat ia echivalenta relativa la nivelul matricei date A este

A
= s
cm
, (3.151)
unde s este lungimea secvent ei, m este ordinul reectorilor iar c este o constanta de
ordinul unitat ii.
Pe baza proprietat ii generale 3

se poate demonstra ca
4

Algoritmul de triangularizare ortogonal a QR este numeric stabil. Mai precis,


daca

R este matricea superior triunghiulara calculata (n cazul m n), atunci
exista o matrice ortogonala

Q astfel ncat

Q
T
(A + A) =

R, unde A
F
n
cm
A
F
. (3.152)
O armat ie similara este valabila relativ la algoritmul LQ de triangularizare ortog-
onala la dreapta precum si la tot i algoritmii de calcul derivat i (cum ar GQR,
MQR, SQR etc.). Subliniem ca, n ultima instant a, toate procedurile ment ionate
sunt de tip 3

, unde parametrii s = min(m, n) si m iau valori adecvate.



In consecint a
5

Procedurile SQR (respectiv CMMP) si SLQ, care calculeaza pseudosolut ia si


respectiv solut ia normala x

a sistemului Ax = b, sunt numeric stabile. Perturbat iile


echivalente relative la nivelul datelor sunt de ordinul
(SQR)
A,b
= n
cm
, (m n), (3.153)
si respectiv
(SLQ)
A,b
= m
cn
, (m n). (3.154)
Rezultate asemanatoare sunt valabile pentru procedurile de calcul ce utilizeaza
reectori bloc, respectiv rotat ii
28
.
3.8.2 Acuratet ea solut iilor calculate
Vom combina acum rezultatele privind sensibilitatea solut iilor de tip CMMP, sta-
bilite n sect iunea 3.7, cu estimarile perturbat iilor echivalente la nivelul datelor, in-
troduse de procedurile de calcul analizate mai sus.

In acest fel vom obt ine evaluari a
priori ale acuratet ei solut iilor calculate, i.e. ale abaterilor relative ale acestor solut ii
fat a de solut iile exacte.
Consideram problema calculului pseudosolut iei x

a sistemului (3.127), n care


matricea A este monica. Daca rezolvam aceasta problema utilizand procedura
SQR, bazata pe algoritmul de triangularizare ortogonala QR, atunci n virtutea
stabilitat ii numerice inverse a acestei proceduri, pseudosolut ia calculat a x

coin-
cide cu solut ia exacta a problemei (3.127) cu datele perturbate n acord cu (3.153).
Aplicand teorema 3.5 (vezi relat iile (3.137)) conchidem ca
x


1
(A) +
2

2
(A)tg, (3.155)
28
In cazul secvent elor de rotat ii disjuncte, estimarea (3.151) este independent a de lungimea
secvent ei [IX].
186 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
unde
_

1
not
=
A
+

b
cos
= n
cm
(1 +
1
cos
),

2
not
=
A
tg = n
cm
tg.
(3.156)
Relat ia (3.155) arata ca n nal acuratet ea solut iei calculate x

depinde atat de
condit ionarea (A) si clasa ale problemei CMMP considerate, cat si de nivelul
erorilor

, = 1 : 2, introduse de algoritmul folosit pentru rezolvarea ei. Conform


relat iilor (3.155) si (3.136), acest nivel este determinat de dimensiunile m, n ale
problemei precumsi de precizia de lucru
M
cont inuta 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 situat iile dicile (care, dupa cum am
vazut, pot detectate relativ usor n practica) sunt necesare act iuni suplimentare
(vizand e.g. lucrul n dubla precizie, ranarea iterativa a solut iei calculate x

etc.),
chiar daca aceasta se obt ine utilizand un algoritm numeric stabil cum este SQR.
Consideram acum problema, relativ mai simpla, a calculului solut iei normale
x

a sistemului (3.127), n care matricea A este epica. Conform relat iilor (3.154) si
(3.144), solut ia normal a calculat a x

satisface o relat ie de forma


x


1
(A), (3.157)
unde

1
not
= 2
A
+
b
= m
cm
. (3.158)
Ment ionam ca, n practica, acuratet ea solut iei calculaten acest mod se dovedeste
de cele mai multe ori satisfacatoare.
3.8.3 Scalarea problemei CMMP
Consideram sistemul liniar (3.127), n care matricea A este monica. La fel ca n
sect iunea 2.8, scalarea acestui sistem consta n nlocuirea sa cu sistemul echivalent
D
1
AD
2
x = D
1
b, (3.159)
n care D
1
si D
2
sunt matrice inversabile (n particular diagonale sau triunghiulare)
alese n mod adecvat.
Matricea D
2
realizeaza scalarea coloanelor lui A, iar introducerea ei se reduce la
schimbarea de variabila x = D
2
x. Prin urmare D
2
nu altereaza pseudosolut ian sens
CMMP a sistemului considerat, mai precis daca x

este pseudosolut ia sistemului


scalat, atunci pseudosolut ia sistemului init ial poate recuperata utilizand relat ia
x

= D
2
x

.
Din contra, matricea D
1
, care realizeaza scalarea liniilor lui A, atrage dupa sine
modicarea normei din R
m
n raport cu care se formuleaza problema CMMP si deci
a pseudosolut iei corespunzatoare.

Intr-adevar, notand cu r = D
1
b D
1
Ax reziduul
sistemului scalat, avem r = D
1
r, deci
r
2
= r
T
Sr
not
= r
2
S
, S = D
T
1
D
1
,
3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 187
n care
S
este noua norma determinata de alegerea matricei D
1
. Problema
CMMP n raport cu norma
S
se numeste problema CMMP ponderata, iar
rezolvarea ei se face aplicand sistemului scalat tehnicile de calcul expuse ante-
rior. Subliniem ca pseudosolut ia x

astfel obt inuta nu coincide cu pseudosolut ia


x

a problemei CMMP n norma standard (corespunzatoare alegerii D


1
= I
m
).

In consecint a, scalarea pe linii n problemele CMMP la care se doreste calculul


pseudosolut iei x

este interzisa. Pe de alta parte, n multe probleme, alegerea lui


D
1
este impusa de tipul zgomotelor de masura asociate problemei CMMP (vezi
exemplul 3.2), iar n acest context matricea S are o semnicat ie statistica precisa.

In problemele care privesc rezolvarea n sens CMMP a sistemelor subdetermi-


nate Ax = b, n care matricea A este epica, situat ia se inverseaza. Matricea D
1
realizeaza o simpla scalare (pe linii) a sistemului de restrict ii Ax = b si ca atare este
permisa ntotdeauna. Din contra, matricea D
2
modica norma din R
n
considerata
la denirea solut iei normale, mai precis
x
2
= x
T
Tx
not
= x
2
T
, T = D
T
2
D
1
2
,
de aceea scalarea pe coloane a sistemelor subdeterminate la care se doreste calculul
solut iei normale n raport cu norma standard este interzisa.
Din punctul de vedere al calculului numeric, alegerea matricelor de scalare D
1
,
D
2
urmareste echilibrarea sistemului n sensul uniformizarii nivelului de eroare
n elementele matricei A.

In acest scop se recomanda evaluarea erorilor init iale
E = [
ij
] care afecteaza elementele lui A precum si determinarea matricelor D
1
, D
2
astfel ncat elementele matricei scalate D
1
ED
2
sa aiba acelasi ordin de marime .
(Daca matricea A este cunoscuta exact, atunci se poate lua
ij
=
M
a
ij
.) Pentru
detalii vezi [XIII].
3.8.4 Ranarea iterativa a solut iei CMMP
Consideram din nou problema CMMP (3.127), n care matricea A este monica.
Pentru simplitate, n continuare omitem indicele superior

, notand solut iile n sens
CMMP x

si x

cu x si respectiv x.
Presupunem ca am obt inut solut ia aproximativa x, utilizand procedura CMMP,
bazata pe algoritmul de triangularizare ortogonala
A Q
T
A =
_
R
1
0
_
, Q
T
= U
n
. . . U
2
U
1
. (3.160)

In general, problema ranarii iterative a solut iei aproximative x consta n con-


struct ia recurenta a unui sir x
k
, k = 0, 1, 2, . . ., convergent (n precizia de lucru)
catre solut ia exacta x a problemei de calcul considerate.

In cazul m = n, stim din sect iunea 2.8 ca un pas al procesului de ranare se


desfasoara conform urmatoarei scheme de principiu. (Pentru simplitate, omitem
indicele de iterare k.)
% Se da x. Se determina aproximat ia urmatoare x
+
.
1. Se calculeaza reziduul r = b A x
2. Se determina corect ia x rezolvand sistemul Ax = r
3. Se actualizeaza aproximat ia x x
+
= x + x
188 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

In cazul m > n, schema de mai sus este, n principiu, aplicabila ca atare sistemu-
lui (3.127), dar ea se dovedeste ecienta numai daca acest sistem este aproape com-
patibil, i.e. 0 (vezi discut ia din sect iunea 3.7.2).

In caz contrar, inuent a rezidu-
ului asupra solut iei este determinanta (n acord cu relat iile (3.137) si (3.138)), deci
ranarea iterativa trebuie sa se faca corectand simultan evolut ia ambelor marimi.
Altfel spus, n problemele specic CMMP, cu reziduu mare, schema de corect ie
prezentata mai sus trebuie aplicata nu sistemului dat (3.127), ci sistemului extins
(3.83).

In consecint a, presupunand data o solut ie aproximativa ( x, r) a sistemului extins,


n primul rand vom calcula reziduul corespunzator
_
s
t
_
=
_
b
0
_

_
I
m
A
A
T
0
_ _
r
x
_
, (3.161)
iar apoi vom determina corect iile r si x rezolvand sistemul
_
I
m
A
A
T
0
_ _
r
x
_
=
_
s
t
_
. (3.162)
Desigur, n acest scop vom folosi triangularizarea ortogonala (3.160) a matricei A,
deja calculatan urma aplicarii procedurii CMMP, iar solut ia (r, x) va obt inuta
n locul membrului drept (s, t).
Pentru a vedea cum este posibil acest lucru, consideram prima ecuat ie (3.162),
i.e. r + Ax = s, pe care o premultiplicam cu Q
T
, vezi (3.160). Notand
Q
T
r = z, efectuand pe loc n s transformarea
s Q
T
s (3.163)
si utilizand pentru vectorii z si s partit ii adecvate, putem scrie
_
z
1
z
2
_
+
_
R
1
0
_
x =
_
s
1
s
2
_
,
de unde deducem imediat
R
1
x = s
1
z
1
, z
2
= s
2
. (3.164)

In continuare, pentru a determina z


1
si x, consideram a doua ecuat ie (3.148),
i.e. A
T
r = t. Aici avem r = Qz, iar din (3.160) rezulta A
T
Q = [R
T
1
0], deci
R
T
1
z
1
= t. (3.165)
Acum este clar ca dezideratele formulate mai sus relativ la rezolvarea sistemului
extins (3.162) pot realizate procedand n ordinea (3.163), (3.165), (3.164), dupa
care r rezulta utilizand relat ia
r = Q
_
z
1
z
2
_
. (3.166)

In rezumat, schema de calcul pentru un pas al procesului de ranare iterativa


aplicat sistemului extins (3.83) este urmatoarea.
3.9. DESCOMPUNEREA ORTOGONAL

A COMPLET

A 189
% Se dau ( r, x). Se determin a aproximat ia urmatoare
( r, x) ( r
+
, x
+
) = ( r, x) + (r, x) .
% se calculeaza reziduul (3.161)
1. s = (b A x) r
2. t = A
T
r
% se rezolva sistemul extins (3.162)
3. s Q
T
s
4. z
1
= R
T
t
5. s
1
s
1
z
1
6. t x = R
1
s
1
7. s
1
= z
1
8. s r = Qs
% se actualizeaza aproximat ia
9. r r
+
= r + r
10. x x
+
= x + x
Implementarea schemei se face de regula lucrand n precizie mixta. Reziduul
(s, t) se calculeaza n precizie dubl a, apoi se rotunjeste la precizia de lucru n care se
fac restul calculelor. Condit ia de oprire a algoritmului este x

, r

c
M
,
sau efectuarea unui numar maxim de iterat ii. Practic, schema e utila atunci cand
problema nu este prea rau condit ionata. Pentru amanunte consultat i [?].
3.9 Descompunerea ortogonala completa
Procedurile de triangularizare ortogonala prezentate n sect iunile anterioare con-
stituie instrumente eciente si numeric stabile de rezolvare a problemelor de tip
CMMP cu matrice A C
mn
de rang maximal, r = s. (Peste tot mai departe vom
nota r = rangA, iar s va avea semnicat ia obisnuita s = min(m, n).)

In aceasta
sect iune vom considera cazul general r s si vom descrie un set de proceduri (di-
recte), capabile sa determine rangul efectiv al matricei A n prezent a erorilor de
rotunjire si sa utilizeze aceasta informat ie.
Subliniem ca, n general, determinarea rangului unei matrice A cu mijloace
de calcul numeric presupune luarea unei decizii inerent afectate de riscuri privind
structura lui A. Totodata, aceasta decizie inuent eaza decisiv si ireversibil ntregul
proces de calcul ulterior. Avand n vedere reducerea riscurile ment ionate, actual-
mente se considera ca cel mai sigur instrument de determinare a rangului este des-
compunerea valorilor singulare (DVS), care va prezentata pe larg n capitolul 5.
(Construct ia acestei descompuneri are la baza tehnici iterative de determinare a va-
lorilor proprii, care vor dezvoltate n capitolul urmator.) Din aceasta perspectiva,
procedura (directa) de triangularizare ortogonal a complet a prezentata n continuare
apare ca ind relativ elementara si ca atare se aplica n situat iile n care simplitatea
primeaza iar deciziile de rang nu sunt critice.

In esent a, procedura se desfasoara n
trei etape.

In prima etapa are loc triangularizarea ortogonala a matricei date A, utilizand


o strategie adecvata de pivotare (permutare) a coloanelor, cu scopul de a evident ia
190 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
n colt ul dreapta-jos al factorului triunghiular R partea neglijabila, corespunzatoare
eventualului defect de rang.

In a doua etapa are loc determinarea rangului prin trunchierea lui R, adica
prin identicarea si eliminarea part ii sale neglijabile. Desigur, ntr-un calcul ideal cu
precizie innita, aceasta parte se anuleaza exact, dar n calculul practic acest lucru
nu se realizeaza niciodata datorita (i) erorilor init iale cu care elementele matricei A
au fost calculate sau determinate experimental si reprezentate n calculator precum
si (ii) erorilor de rotunjire comise pe parcursul procesului de calcul. Prin urmare,
n realitate, este ntotdeauna necesara corectarea fort at a a rezultatului calculat

R
si tocmai acest lucru se face prin trunchierea ment ionata. Desigur, n acest scop
este necesar un criteriu de decizie, care n principiu este formulat de utilizator n
funct ie de situat ia concreta precum si de obiectivele urmarite prin calcul. Indicat ii
mai precise vor date la momentul potrivit.

In a treia etapa (n anumite situat ii, facultativa) matricea superior trapezoidala


ramasa dupa trunchierea lui R este adusa la forma superior triunghiulara printr-o
procedura de tip RQ (vezi sect iunea 3.6.2).
Trecem acum la descrierea succinta a etapelor procedurii de triangularizare com-
pleta, dupa care vom prezenta cateva aplicat ii ale acesteia n legatura cu problema
generala CMMP.
3.9.1 Triangularizarea ortogonala cu pivotarea coloanelor
Teorema 3.7 Fie A C
mn
. Exist a o matrice unitar a U = Q
H
C
mm
precum
si o matrice de permutare astfel nc at matricea
Q
H
A = R (3.167)
este superior triunghiular a, iar pentru ecare k = 1 : s sunt satisf acute condit iile
|r
kk
|
2

min(j,m)

i=k
|r
ij
|
2
, j = k + 1 : n. (3.168)

In consecint a, |r
11
| |r
22
| . . . |r
ss
|, i.e. elementele diagonale ale matricei R
sunt ordonate descresc ator.
Relat ia (3.167) arma ca matricele A si R sunt ortogonal echivalente, n par-
ticular au acelasi rang. Prin urmare, daca A este de rang r s, atunci n mod
necesar r
kk
= 0, k = r + 1 : s, deci n virtutea relat iilor (3.168) ultimele mr linii
ale lui R sunt nule.

In consecint a,
Corolar 3.1 Dup a o permutare convenabil a a coloanelor sale, orice matrice
A C
mn
de rang r este echivalent a (la st anga) cu o matrice superior trapezoidal a,
i.e.
Q
H
A =
_
T
0
_
, (3.169)
unde T = R(1 : r, :), iar blocul lider T(:, 1 : r) este inversabil.

In consecint a, primele
r coloane ale matricei A sunt independente.
3.9. DESCOMPUNEREA ORTOGONAL

A COMPLET

A 191
Avand n vedere ca situat ia din corolar nu poate realizata exact, n continuare
ne vom concentra atent ia asupra condit iilor (3.168). Problema determinarii rangului
va discutata ulterior.
Demonstrat ia teoremei 3.7. Procedura de triangularizare ortogonala cu pivotare
are s etape. Fie A
1
= A. Vom determina matricea unitara
Q
H
= Q
H
s
. . . Q
H
2
Q
H
1
(3.170)
procedand ca n sect iunea 3.3 (vezi demonstrat ia teoremei 3.1), dar act ionand la
ecare etapa k = 1 : s asupra unei matrice A
k

k
, cu coloanele permutate n scopul
satisfacerii condit iei (3.168).
T inand seama de invariant a normei euclidienen raport cu transformarile unitare
(3.170), aceasta nseamna ca la etapa k, n pozit ia pivot (adica n coloana k) trebuie
sa se gaseasca acea coloana j k a tabloului curent A
k
pentru care norma euclidiana
a vectorului A
k
(k : m, j) este maxima. Pe scurt, notand

(k)
j
= A
k
(k : m, j), j = k : n, (3.171)
strategia de pivotare a coloanelor este
1. Se determina cel mai mic j
k
astfel ncat
(k)
j
k
= max
j=k:n

(k)
j
2. Daca j
k
= k
1. A
k
(:, k) A
k
(:, j
k
).
Dupa permutare, procedura de triangularizare continua ca de obicei, i.e. are loc
generarea reectorului Q
H
k
care anuleaza elementele subdiagonale din coloana k si
aplicarea sa coloanelor urmatoare. Astfel se obt ine tabloul transformat
A
k+1
= Q
H
k
(A
k

k
), (3.172)
asupra caruia se va opera similar la etapa urmatoare.

In nal, matricea R = A
s+1
este superior triunghiulara si satisface (3.168).
Avand n vedere implementarea ecienta a procedurii descrise, t inem seama de
invariant a normelor (3.171) n raport cu transformarile (3.172) si constatam ca
(
(k)
j
)
2
= (
(k+1)
j
)
2
+|a
(k+1)
kj
|
2
. (3.173)
Prin urmare, calculul repetat si costisitor al normelor (3.171) poate evitat, uti-
lizand n schimb relat iile de actualizare relativ simple
29

(k+1)
j
=
(k)
j

_
1
_
|a
(k+1)
kj
|

(k)
j
_2
. (3.174)

Intregul proces de calcul se desfasoara pe loc n tabloul A conform urmatoarei


scheme de principiu.
29
Subliniem c a desi scrierea (3.174) evit a dep asirile superioare, totusi utilizarea ei nu este lipsit a
de riscuri dac a |a
(k+1)
kj
| si
(k)
j
au valori apropiate.

In acest caz, pentru sigurant a se recomand a
recalcularea normelor
(k+1)
j
, j = k + 1 : n, vezi [XIII, pag. 9.17].
192 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
QRP % Schema de triangularizare ortogonala cu pivotarea coloanelor
% init ializarea normelor
1. Pentru j = 1 : n
1.
j
= A(:, j)
2. Pentru k = 1 : s
% strategia de pivotare
1. Se determina cel mai mic j
k
a..
j
k
= max
j=k:n

j
2. Daca j
k
= k
1. A(:, k) A(:, j
k
)
2.
j
k

k
% procedura de triangularizare ortogonala
3. Se determina Q
H
k
a.. (Q
H
k
A)
ik
= 0, i = k + 1 : m
4. A Q
H
k
A
% actualizarea normelor
5.
j

j
_
1
_
|a
kj
|
j
_
2
, pentru j = k + 1 : n

In ceea ce priveste permutarile de coloane, ele pot memorate ntr-un vector


astfel ncat
k
= j
k
, k = 1 : s, la fel ca n procedurile de eliminare gaussiana din
capitolul 2. Pentru a putea identica direct pozit ia n tabloul init ial A a coloanelor
matricei (permutate) A, aici vom aplica o convent ie de memorare diferita. Vec-
torul este init ializat cu indicii coloanelor lui An ordinea naturala, iar cont inutul
sau este actualizat dupa ecare permutare de coloane efectuata. Forma nala a
procedurii de triangularizare se obt ine aplicand algoritmul 3.5 la pasii 2.3, 2.4 si
plasand instruct iunea 2.5 la locul potrivit.
Algoritmul 3.11 (QRP) (Se da A C
mn
. Se efectueaza tri-
angularizarea ortogonala cu pivotarea coloanelor a matricei A utilizand
reectori hermitici, i.e. Q
H
A = R, vezi algoritmul 3.5. Permutarile
de coloane se memoreaza n vectorul astfel ncat daca n nal
k
= j,
atunci coloana k a lui A a fost coloana j a lui A.)
3.9. DESCOMPUNEREA ORTOGONAL

A COMPLET

A 193
1. Pentru j = 1 : n % init ializarea normelor
1.
j
= A(:, j)
2.
j
= j
2. Pentru k = 1 : s
1. Se determina cel mai mic j
k
a..
j
k
= max
j=k:n

j
2. Daca j
k
= k % pivotare
1. A(:, k) A(:, j
k
)
2.
j
k

k
3.
j
k

k
3.
k
= 0 % triangularizare
4. Daca k < m atunci
1. = A(k : m, k)
2. Daca = 0
1. Daca a
kk
= 0 atunci
a
kk
|a
kk
|

2. a
ik
u
ik
= a
ik
/, pentru i = k : m
3.
k
u
kk
= 1 +a
kk
4. Pentru j = k + 1 : n
1. = (

m
i=k
u
ik
a
ij
) /
k
2. a
ij
a
ij
+u
ik
, pentru i = k : m
% actualizarea normei
3.
j

j
_
1
_
|a
kj
|
j
_
2
5. a
kk
=
Comentarii. Pe parcursul procesului de calcul, normele
j
se memoreaza n
j
,
ind suprascrise pe masura ce nu mai sunt necesare; pentru claritate, nu am mai
indicat explicit acest lucru.
Modul de apel al procedurii este [A, , ] = QRP(A).
Daca matricea A este monica, atunci aplicat iile algoritmului 3.11 sunt similare cu
aplicat iile algoritmului 3.5.

In plus, dupa cum am ment ionat n sect iunea anterioara,
ordonarea coloanelor lui An acord cu (3.168) permite estimarea rapida (ca ordin de
marime) a numarului de condit ionare
30
(A) = |r
11
| / |r
nn
|. Daca matricea A este
epica, atunci din nou n virtutea ordonarii (3.168), blocul lider R

din (3.63) rezulta


n mod necesar inversabil, deci construct ia unor baze pentru subspat iile N = KerA
si N

= ImA
H
precum si determinarea unei solut ii particulare a sistemului Ax = b
se poate face aproape prin inspect ie.
De aceea, mai departe ne vom concentra atent ia asupra cazului general n care
matricea A nu este de rang maxim.
3.9.2 Determinarea rangului
Aplicam procedura QRP matricei date A si consideram matricea superior triun-
ghiulara calculata
Q
H
A =

R. (3.175)
30
Tipic, aceast a relat ie furnizeaz a o subevaluare de 23 ori mai mic a dec at valoarea adev arat a
(A).
194 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

In cazul m n,

R are structura

R
not
=
_
_
R
1
R
12
0

R
2
0 0
_
_
} r
} n r
} mn
..
r
..
nr
(3.176)
n care elementele satisfac relat iile (3.168), blocul lider R
1
este superior triunghiular
inversabil, dar blocul

R
2
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

R
2
= 0, (3.177)
n acord cu (3.169), n care evident matricea superior trapezoidala ramasa este
T = [R
1
R
12
]. (3.178)

In cazul m < n se procedeaza similar.


Pe scurt, determinarea rangului r consta n a decide care este primul element
neglijabil de pe diagonala lui

R. Strategia recomandata n LINPACK [XIII] pre-
supune scalarea prealabila a liniilor si coloanelor lui A astfel ncat erorile la nivel
de element sa e de acelasi ordin de marime (vezi sect iunea 3.8.3).

In acest caz,
prin denit ie, rangul numeric (sau efectiv) al lui A este primul ntreg k 1 : s astfel
ncat
|r
k+1,k+1
| |r
11
|. (3.179)
Mai departe, vom presupune mereu ca rangul numeric determinat n acord cu
criteriul de decizie (3.179) coincide cu rangul adevarat r al lui A
31
. Subliniem
ca, n urma acestei trunchieri corecte, se recupereaza forma superior trapezoidala
(3.169), iar numarul de condit ionare al matricei A (de rang r s) poate estimat
ca ind
(A) =
|r
11
|
|r
rr
|
<
1
. (3.180)
Relat ia (3.169) are cateva aplicat ii specice extrem de importante. Notand
Q

= Q(:, 1 : r) primele r coloane ale matricei unitare Q = Q


1
Q
2
. . . Q
s
, din (3.169)
obt inem imediat factorizarea QR cu pivotarea coloanelor
A = Q

T. (3.181)

In virtutea structurii lui T, matricea Q

constituie o baza ortogonala a subspa-


t iului S = ImA, generat de primele r coloane ale matricei A sau, echivalent,
de coloanele
k
, k = 1 : r, ale lui A (vezi comentariile de nceput la algoritmul
3.11). Altfel spus, o data cu determinarea rangului, n (3.181) a avut loc select ia
31
Realizarea practic a a acestei coincident e este condit ionat a de alegerea judicioas a a tolerant ei
. (Valoarea = 0 nu este interzis a, dar de obicei conduce la decizia r = s.) Pe de alt a parte,
gradul de sigurant a al deciziei de rang poate nesatisf ac ator, mai ales dac a modulele r
kk
scad
uniform, f ar a s a nregistreze vreun salt semnicativ.

In asemenea situat ii dicile se recomand a
determinarea rangului pe baza descompunerii valorilor singulare, vezi capitolul 5.
3.9. DESCOMPUNEREA ORTOGONAL

A COMPLET

A 195
unui set de r coloane liniar independente ale matricei init iale A, iar Q

constituie
versiunea lor ortogonalizata.

In mod corespunzator, matricea Q

= Q(:, r +1 : n)
constituie o baza ortogonala a subspat iului complementar S

= KerA
H
. (Vom
folosi sintaxa [Q, R, ] = FQRP(A) pentru apelul procedurii de calcul al factorizarii
QR cu pivotarea coloanelor; implementarea este lasata cititorului, cu ment iunea ca
acumularea transformarilor ortogonale este identica cu aceea din algoritmul GQR.)
Pe de alta parte, considerand gramianul G = A
H
A si t inand seama de (3.181),
n care matricea Q

are coloanele ortogonale, deducem

T
G = T
H
T. (3.182)
Aceasta relat ie se numeste factorizare Cholesky cu pivotare si arma ca, dupa
o permutare congruenta a liniilor si coloanelor sale, orice matrice hermitica pozitiv
semidenita G de rang r admite o factorizare Cholesky n care factorul superior
trapezoidal T are structura (3.178)
32
.

In multe situat ii constatarile de mai sus prezinta un interes intrinsec. Avand n


vedere abordarea problemei generale CMMP, descriem n continuare ultima faza a
procedurii de triangularizare ortogonala completa.
3.9.3 Triangularizarea ortogonala completa
Corolar 3.2 Fie A C
mn
, de rang r s. Exist a dou a matrice unitare
U = Q
H
C
mm
si Z = V
H
R
nn
precum si o matrice de permutare astfel
nc at matricea
Q
H
AZ = S (3.183)
are structura
S =
_
S

0
0 0
_
} r
} mr
..
r
..
nr
(3.184)
n care blocul lider S

C
rr
este superior triunghiular inversabil.
Demonstrat ia este simpla. Consideram matricea superior trapezoidal a T din
(3.178) si o aducem la forma triunghiulara utilizand transformari unitare la dreapta.
Aceasta etapa se numeste compresie si poate efectuata n multe feluri. De exem-
plu, aplicand o procedura de tip RQ (vezi sect iunea 3.6.2), obt inem
TZ = [S
1
0], (3.185)
n care S
1
este superior triunghiulara iar
Z = Z
r
. . . Z
2
Z
1
. (3.186)
Acum relat iile (3.183) si (3.184) rezulta aplicand Z la dreaptan (3.169) si t inand
seama de (3.185). Evident, matricea S

not
= S
1
rezulta inversabila, transformarile
32
Subliniem c a aceast a factorizare poate calculat a direct, aplic and matricei G procedura
CHOLDC din LINPACK [XIII].
196 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
unitare Q si Z au expresiile (3.168) si respectiv (3.186), iar este permutarea
produsa de procedura QRP.
Cu referire la o matrice superior trapezoidala oarecare A C
mn
cu m < n,
schema de triangularizare RQ este urmatoarea.
TZRQ % Schema de compresie la dreapta, cazul m < n
1. Pentru k = m : 1 : 1
1. Se determina Z
k
a.. (AZ
k
)
kj
= 0, j = m + 1 : n
2. A AZ
k
Desigur, liniile lui A sunt parcurse n ordine inversa, ncepand cu ultima, iar
anularea elementelor are n vedere conservarea structurii preexistente de zerouri.

In consecint a, reectorii Z
k
sunt de tipul celor din exemplul 3.5, dar aici vectorii
Householder sunt notat i v
k
, iar partea lor esent iala v
kj
, j = m+1 : n, este memorata
pe pozit iile elementelor anulate din liniile lui A, la fel can algoritmul 3.9. Procedura
rezultata din combinarea acestor idei se redacteaza astfel.
Algoritmul 3.12 (TZRQ) (Se da A C
mn
superior trapezoidala
cu m < n. Se efectueaza compresia la dreapta a matricei A utilizand o
procedura de tip RQ cu reectori hermitici, i.e. A AZ = [R 0], unde
Z = Z
m
. . . Z
2
Z
1
, iar R rezulta superior triunghiulara. Partea esent iala
v
kj
, j = m + 1 : n, a vectorilor Householder se memoreaza pe pozit iile
corespunzatoare A(k, m + 1 : n) din tabloul A. La aplicarea ulterioara
a transformarilor se t ine seama ca v
kk
=
k
, k = 1 : m.)
1. Pentru k = m : 1 : 1
1.
k
= 0
1. =
_
|a
kk
|
2
+

n
j=m+1
|a
kj
|
2
_
1/2
2. Daca = 0
1. Daca a
kk
= 0 atunci
a
kk
|a
kk
|

2. a
kj
v
kj
= a
kj
/, pentru j = k, m+ 1 : n
3.
k
v
kk
= 1 +a
kk
4. Pentru i = 1 : k 1
1. =
_
a
ik
v
kk
+

n
j=m+1
a
ij
v
kj
_
/
k
2. a
ij
a
ij
+ v
kj
, pentru j = k, m+ 1 : n
5. a
kk
=
Comentarii.

In cazul real, algoritmul cere 2m
2
(n m) operat ii. Modul de apel
este [A, ] = TZRQ(A).

In sinteza ntregii expuneri de pana acum, procedura de triangularizare ortogo-


nala completa, corespunzatoare relat iilor (3.183) si (3.184), este urmatoarea.
QRX % Procedura de triangularizare ortogonala completa a matri-
cei A C
mn
; este o tolerant a data, utilizata la deter-
minarea rangului.
% triangularizarea ortogonala cu pivotarea coloanelor
1. [A, , ] = QRP(A)
3.9. DESCOMPUNEREA ORTOGONAL

A COMPLET

A 197
% trunchierea si determinarea rangului
2. k = 1
3. C^at timp k s si |a
kk
| > |a
11
|
1. k k + 1
4. r = k 1
% compresia la dreapta
5. [A(1 : r, :), ] = TZRQ(A(1 : r, :))
Modul de apel este [r, A, , , ] = QRX(A, ). Subliniem ca toata informat ia
despre transformarile unitare Q si Z, generate la pasii 1 si 5, este memorata (extrem
de compact) n tabloul A.
3.9.4 Descompunerea ortogonala completa
Pentru a facilita expunerea, notam X = Z si scriem relat iile (3.183) si (3.184) sub
forma
A = Q
_
S

0
0 0
_
X
H
. (3.187)
Partit ionand Q si X conform cu S, obt inem
A = Q

X
H
, (3.188)
unde matricele Q

= Q(:, 1 : r) si X

= X(:, 1 : r) au coloanele ortogonale, iar S

este superior triunghiulara inversabila de ordin r = rangA s.


Relat ia (3.188) constituie descompunerea ortogonal a complet a a matricei
A C
mn
si reprezinta, n cazul general r s = min(m, n), echivalentul fac-
torizarilor QR si LQ (sau RQ), specice matricelor de rang maxim. Subliniem ca,
desi descompunerea (3.188) este relativ elementara si are un evident caracter proce-
dural, totusi ea constituie un instrument pret ios de rezolvare a numeroase probleme
de calcul, n general inabordabile prin metode clasice, de tip Cholesky sau Gram-
Schmidt.

In plus, performant ele numerice ale algoritmilor bazat i pe aceasta de-
scompunere sunt apropiate de performant ele algoritmilor similari, derivat i pe baza
descompunerii valorilor singulare din capitolul 5.
Aplicat iile descompunerii ortogonale complete sunt extrem de variate (vezi pro-
blemele 3.613.63, precum si capitolul 5). Ne vom mult umi aici sa ment ionam ca,
la fel ca n sect iunile 3.4 si 3.6.2, matricele Q

si Q

= Q(:, r + 1 : m) constituie
baze ortogonale pentru subspat iile descompunerii C
m
= ImA KerA
H
, iar ma-
tricele X

si X

= X(:, r + 1 : n) joaca un rol similar relativ la descompunerea


C
n
= ImA
H
KerA. Vom insista mai mult numai asupra problemei generale
CMMP, care constituie pentru noi un subiect inedit.
3.9.5 Problema generala CMMP
Consideram sistemul liniar Ax = b, n care A C
mn
este o matrice data, nu
neaparat de rang maxim, iar b C
m
este un vector arbitrar. Problema generala
198 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
CMMP, pe scurt CMMPX, consta n determinarea pseudosolut iei normale a sis-
temului Ax = b, i.e. a unui vector x

C
n
astfel ncat
x

= min
xX

x, (3.189)
unde X

este mult imea pseudosolut iilor cu proprietatea (3.77). Teorema urmatoare


arata ca problema CMMPX este ntotdeauna bine formulat a.
Teorema 3.8 Oricare ar vectorul b C
m
, problema CMMPX are o solut ie unic a
x

C
n
. Pseudosolut ia normal a a sistemului Ax = b poate scris a sub forma
x

= A
+
b, (3.190)
unde, prin denit ie, matricea A
+
C
nm
este pseudoinversa normal a (sau Moore-
Penrose) a lui A.
Demonstrat ie. Conform part ii a) a teoremei 3.3, sistemul Ax = b are ntotdeauna
pseudosolut ii care satisfac sistemul Ax = b
1
, unde b
1
S = ImA, vezi (3.82).
Conform part ii a) a teoremei 3.4, acest sistem are ntotdeauna o solut ie normala
unica x

= ImA
H
. Altfel spus, restrict ia lui A la N

, vazuta ca aplicat ie
liniara A de la N

la S este inversabila. Inversa A


1
: S N

, prelungita cu 0
pe S

, constituie pseudoinversa A
+
a lui A.
Pseudosolut ia normala x

a sistemului Ax = b, poate determinata utilizand


informat ia furnizata de procedura de triangularizare ortogonala completa
Q
H
AZ =
_
S

0
0 0
_
, (3.191)
n care matricele Q si Z sunt unitare, iar S

este superior triunghiulara inversabila


de ordin r = rangA. Aplicand transformarea Q
H
ambilor membri ai sistemului si
notand
Q
H
b =
_
d

_
, x = Z
_
u

_
, (3.192)
obt inem sistemul ortogonal echivalent
_
S

0
0 0
_ _
u

_
=
_
d

_
. (3.193)
La fel ca n sect iunea 3.5.1, pentru a determina pseudosolut iile consideram
reziduul
Q
H
r =
_
d

_
, (3.194)
n care matricea Q este unitara, deci minimul normei r = Q
H
r se atinge pentru
S

= d

.

In continuare, la fel ca n sect iunea 3.6.3, din (3.192), n care matricea
Z este unitara, rezulta u

= 0. Prin urmare, pseudosolut ia normala a sistemului


Ax = b este unic determinata prin relat ia
x

= Z
_
(S

)
1
d

0
_
, (3.195)
3.10. RUTINE LAPACK SI MATLAB 199
sau
x

= Z
_
(S

)
1
0
0 0
_
Q
H
b, (3.196)
din care expresia pseudoinversei A
+
este evidenta.
Exploatand forma factorizata a transformarilor unitare Q
H
si Z, schema de
calcul al pseudosolut iei normale se stabileste imediat.
SQRX % Calculul pseudosolut iei normale x = A
+
b
1. Pentru k = 1 : s
1. b = Q
H
k
b
2. Se rezolva sistemul triunghiular S

x(1 : r) = b(1 : r) % r = rangA


3. x(r + 1 : n) = 0
4. Pentru k = 1 : r
x Z
k
x
5. x x
Detalierea procedurii de permutare, necesare la pasul 5 pentru plasarea compo-
nentelor lui x pe pozit iile naturale, precum si completarea schemei SQRXn scopul
obt inerii reziduului de norma minima r

= b Ax

sau a vectorului de cea mai


buna aproximat ie b

= Ax

sunt propuse cititorului ca exercit ii.


3.10 Rutine LAPACK si MATLAB
Primele implementari profesionale si de larga circulat ie ale procedurilor de triangu-
larizare ortogonala au fost rutinele xQRDC si xQRSL din LINPACK, care corespund
(ca organizare si tip de reectori) procedurilor QRP (algoritmul 3.11) si CMMP din
sect iunile 3.9 si, respectiv, 3.5.

In LAPACK procedurile de calcul sunt mai diversicate.


Pentru ecare dintre cele 4 scheme de triangularizare standard zz = (QR, QL,
LQ sau RQ)
33
exista cate trei rutine de calcul, care efectueaza triangularizarea
propriu-zisa, acumularea si aplicarea transformarilor; numele rutinelor se obt in
adaugand literele F, G si respectiv M la combinat ia zz. Rutinele opereaza cu
matrice de forma generala (GE), unitare sau ortogonale (yy = UN, OR).
De exemplu, rutinele din clasa QR se numesc xGEQRF, xyyGQR, xyyMQR si cores-
pund versiunilor la nivel de bloc ale procedurilor CQR, GCQR, respectiv MCQR
din sect iunile 3.3 si 3.4. (Amintim can LAPACK se opereaza cu reectori n scrierea
Q
1
= I uu
H
, vezi sect iunea 3.2.) Numele celorlalte rutine se formeaza analog.
Pentru calculul descompunerii ortogonale complete din sect iunea 3.9 se utilizeaza
rutinele xGEQPF si xTZRQF, care corespund schemelor QRP, respectiv TZRQ din text.
Rezolvarea problemelor de tip CMMP de rang maxim, relativ la sistemele Ax = b
sau A
H
x = b se efectueaza cu driverul xGELS, iar pentru rezolvarea problemei gene-
rale CMMP se utilizeaza driverul expert xGELSX. (Primul reuneste versiunile bloc
ale schemelor SQR si SLQ din sect iunile 3.5 si 3.6, iar al doilea corespunde schemei
SQRX din sect iunea 3.9.) Un al treilea driver (xGELSS) utilizeaza descompunerea
valorilor singulare.
33
Pentru convent iile de compunere a numelor rutinelor LAPACK, a se revedea sect iunea 2.12.
200 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE

In MATLAB, funct ia qr realizeaza triangularizarea ortogonala (n diverse ver-


siuni) a matricei A. Organizarea riguroasa a spat iului de memorie (specic a imple-
mentarilor LINPACK si LAPACK) este de regula sacricat a n favoarea unei ma-
nipulari mai comode de catre utilizator, dar performant ele numerice sunt aceleasi.
Apelul R = qr(A) calculeaza factorul superior triunghiular R returnand totodata,
n partea inferioara a aceluiasi tablou, vectorii Householder corespunzatori reec-
torilor Q
1
, . . . , Q
n
. Prin [Q,R] = qr(A) se acumuleaza n plus Q, iar comanda
[Q,R,P] = qr(A) efectueaza triangularizarea ortogonala cu pivotare, formand to-
todata explicit matricele Q si P = .
Rezolvarea n sens CMMP a sistemului liniar Ax = b, cu m = n se face utilizand
comanda x=A\b, unde \ este operatorul de mpart ire la stanga. (Daca m > n,
atunci x este pseudosolut ia sistemului Ax = b, iar daca m < n, atunci x este o
solut ie particulara a aceluiasi sistem.)
3.11 Probleme
P 3.1

In planul R
2
se da vectorul x = [3 4]
T
si se considera reectorul elementar
U = I 2uu
T
, unde u = 1.
a. Fie u = e1. Sa se construiasca vectorul transformat y = Ux si sa se reprezinte grac
transformarea. Ce modicari apar daca u = e2 ?
b. Sa se determine vectorul Householder normat u astfel ncat Ux = e1. Cate solut ii
exista ? Cat rezulta ?
c. Explicat i de cen calcule este mai bine sa presupunem ca vectorul u nu este neaparat
normat, introducand scalarul can (3.8). Rezolvat i din nou punctul b aplicand algoritmul
3.2 si observand ca = . Justicat i alegerea semnului lui recomandata n text. Ce
se ntampla daca x = [3 10
5
] ?
d. Aplicat i n acest caz simplu indicat iile de implementare ce nsot esc algoritmul
3.2. Aratat i cum se face scalarea vectorului Householder u = [u1 u2]
T
astfel ncat sa
obt inem u1 = , respectiv u1 = 1. Vericat i ca n ecare caz are loc transformarea dorita
Ux = e1.
e. Ilustrat i grac diversele situat ii semnicative ntalnite la punctele bd.
P 3.2 Rezolvat i problema anterioara n R
3
, considerand de exemplu vectorii x = [3 4 0]
T
sau x = [3 4 5]
T
.
P 3.3 Fie x, y R
m
doi vectori dat i.

In ce condit ii exista un scalar si un reector U
astfel ncat Ux = y ? Ce restrict ii apar daca impunem condit ia suplimentara = 1 ?
Scriet i algoritmii de generare a reectorului U n cele doua situat ii.
P 3.4 Fie x R
m
un vector dat, x = 0.
a. Sa se determine un reector U astfel ncat prima coloana Ue1 a lui U sa e un
multiplu scalar de x, i.e. Ue1 = x. Cat trebuie sa e ? Cate solut ii exista ?
b. Ce semnicat ie geometrica au celelalte coloane Uej, j = 2 : m, ale lui U ?
c. Scriet i algoritmul de calcul al unei baze ortogonale B = [b1 b2 . . . bm] a lui R
m
,
unde b1 = x este un vector dat, x = 1.
d. Reformulat i 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. Precizat i structura
lui U precum si structura bazei ortogonale B astfel obt inute. Ilustrat i grac construct ia,
considerand m = 3, k = 2.
e. Revenit i la punctul a si ncercat i sa determinat i U astfel ncat Uem = x. Ce se
schimba la punctele bd ?
3.11. PROBLEME 201
P 3.5 Fie x R
m
un vector dat, x = 0.
a. Sa se construiasca m 1 vectori liniar independent i yj astfel ncat x
T
yj = 0,
j = 2 : m.
b. Cum se construiesc vectorii de la punctul a daca n plus ei trebuie sa e ortogonali
doi cate doi, i.e. y
T
i
yj = 0, i = j ? (Indicat ie. Asimiland x
T
cu o matrice cu o singura
linie, problema consta n a construi o baza ortogonala a subspat iului N = Kerx
T
, i.e. o
matrice Y R
m(m1)
cu coloane ortogonale astfel ncat x
T
Y = 0. Se t ine seama de
punctul b al problemei anterioare.)
c. Utilizand rezultatele de la punctele a si b, descriet i mult imea tuturor solut iilor
ecuat iei x
T
y = 1. Ilustrat i grac situat ia n cazul m = 2, considerand de exemplu x = e1
si x = [3 4]
T
.
d. Determinat i solut ia normala y

a ecuat iei x
T
y = 1. Aratat i ca y

este de forma
x si precizat i interpretarea geometrica a lui y

. (Indicat ie. Orice vector y R


m
poate
scris unic sub forma y = x +
P
m
i=2
iyi, unde yi, i = 2 : m, sunt vectorii de la punctele
a sau b.)
e. Scriet i algoritmii de calcul ce rezolva punctele b si d. Ce simplicari apar daca
x = 1 ?
P 3.6 Se dau doi vectori x, y R
m
, x = 0.
a. Determinat i pseudosolut ia

a sistemului x = y, astfel ncat norma euclidiana a


reziduului ()
not
= y x sa e minima. Evaluat i r

= y

x si (

) = r

.
b. Scriet i algoritmul de calcul corespunzator si gasit i interpretarea geometrica a vec-
torilor y

x si r

.
c. Reluat i punctul a presupunand ca xi = 0, i = 2 : m. Ce simplicari apar ? Putet i
realiza aceasta condit ie aplicand o transformare adecvata T ambilor vectori dat i x si y ?
Cum trebuie sa e T pentru ca funct ia () sa ramana neschimbata (invarianta) ?
P 3.7 Considerat i un reector U = I 2uu
T
, u = 1.
a. Calculat i detU.
b. Determinat i valorile si vectorii proprii ai lui U.
c. Determinat i n vectori vi, i = 1 : n, astfel ncat Uvi = ei si Uei = vi, i = 1 : n.
Observat ie.

In general, se numeste reector elementar (nu neaparat ortogonal) orice
matrice U R
mm
de forma U = Im 2uv
T
, n care u, v R
m
sunt doi vectori astfel
ncat v
T
u = 1. Multe dintre proprietat ile reectorilor (ortogonali) considerate mai sus se
pastreaza (sau se reformuleaza adecvat) n acest cadru mai general.
P 3.8 Aratat i ca orice matrice de permutare elementara este un reector.
P 3.9 Fie S R
mm
o matrice simetrica pozitiv denita, arbitrara dar xata. Se
considera spat iul vectorial R
m
cu produsul scalar (x, y)S = y
T
Sx si norma euclidiana
x
2
S
= (x, x)S. Doi vectori x, y R
m
se numesc S-ortogonali daca (x, y)S = 0. Matricea
A se numeste S-simetrica daca (y, Ax)S = (Ay, x)S, x, y R
m
, adica SA = A
T
S sau
A = S
1
A
T
S. Matricea U R
mm
se numeste S-ortogonala daca pastreaza produsul
scalar (, )S, i.e. (Ux, Uy)S = (x, y)S, x, y R
m
, 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,
proprietat ile geometrice ale spat iului R
m
dotat cu produsul scalar (, )S se reduc la pro-
prietat ile euclidiene uzuale.
b. Sa se deneasca not iunea de S-reector elementar si sa se studieze principalele
proprietat i ale acestui tip de transformari. Cum se implementeaza avantajos algoritmii de
generare si aplicare a reectorilor S-ortogonali ?
202 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
P 3.10 Pastram aceeasi terminologie ca n problema anterioara chiar daca matricea si-
metrica (inversabila) S este de semn nedenit.

In particular, e S = J, unde
J =

Ip 0
0 Iq

, p +q = m. (3.197)
Observat ie. Spat iul R
m
cu produsul scalar nedenit (, )J se numeste spat iu pseu-
doeuclidian (sau spat iu hiperbolic) de signatura (p, q). Mult imea vectorilor din R
m
cu
proprietatea
x
2
J
= 0
p
X
i=1
x
2
i

m
X
i=p+1
x
2
i
= 0 (3.198)
se numeste con izotrop
34
.
a. Fie x R
m
un vector dat, iar U un J-reector de forma
U = Im
uu
T
J

, =
1
2
u
2
J
. (3.199)
Sa se scrie algoritmul de aplicare a transformarii x y = Ux si sa se verice prin calcul
direct ca UxJ = xJ.
b. Fie x R
m
un vector dat. Sa se stabileasca n ce condit ii exista un J-reector de
forma (3.199) astfel ncat
Ux = e1, R {0} (3.200)
si sa se scrie algoritmul de generare a lui U. Discut ie.
c. Fie S o matrice simetrica inversabila. Sa se stabileasca n ce condit ii S admite
factorizari de forma S = R
T
JR sau S = L
T
JL, n care R si L sunt matrice superior,
respectiv inferior triunghiulare. Sa se scrie algoritmii de factorizare Cholesky cu semn,
corespunzatori celor doua relat ii de mai sus.
d. Aratat i ca daca exista doua matrice patrate A si B (nu neaparat triunghiulare)
astfel ncat S = A
T
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 echivalent i.
P 3.11

In planul R
2
se da vectorul x = [3 4]
T
si se considera rotat ia plana P = P12 cu
parametrii c, s.
a. Fie c =

3/2, s = 1/2. Sa se calculeze vectorul transformat y = Px si sa se


reprezinte grac transformarea.
b. Sa se determine c, s astfel ncat Px = re1. Cate solut ii exista ? Cat rezulta r ?
P 3.12 Fie x, y R
m
doi vectori dat i.

In ce condit ii exista un scalar si o rotat ie P
ki
astfel ncat P
ki
x = y ?
P 3.13 Fie P o rotat ie plana. Calculat i detP si determinat i valorile si vectorii proprii ai
matricei P.
P 3.14 Fie x R
m
un vector dat.
a. Scriet i algoritmii de generare a unei secvent e de rotat ii P astfel ncat Px = re1.
Analizat i diversele variante posibile.
b. Acelasi enunt , utilizand o grupare convenabila a rotat iilor n secvent e de rotat ii
disjuncte (vezi observat ia 3.2).
P 3.15 Se da o matrice A R
mm
. Sa se scrie algoritmii de aplicare a transformarilor
A PA si A AP
T
, unde P sunt secvent ele de rotat ii generate n problema 3.14.
34
Cel mai simplu exemplu este planul Lobacevski R
2
cu p = 1, q = 1. Spat iul Minkovsky din
teoria relativit at ii este R
4
cu p = 1, q = 3.

In acest caz (3.198) se numeste con de lumin a, iar
transform arile J-ortogonale formeaz a grupul Poincare al lui R
4
.
3.11. PROBLEME 203
P 3.16 O matrice P de forma
P =

c s
s c

, c
2
s
2
= 1
se numeste rotat ie hiperbolica (plana)
35
.
a. Aratat i ca P este o transformare J-ortogonala, i.e. P
T
JP = J. Cat este J ?
b. Fie x R
2
un vector dat.

In ce condit ii exista o rotat ie hiperbolica astfel ncat
Px = re1, respectiv Px = re2 ? Scriet i algoritmul de generare a lui P si discutat i
aplicabilitatea lui practica
36
.
P 3.17

In planul C
2
se da vectorul x = [1 + i 2 + i]
T
.
a. Sa se determine un reector complex Q astfel ncat Qx = e1.
b. Sa se determine o rotat ie complexa P astfel ncat Px = re1.
P 3.18 Formulat i si rezolvat i versiunile complexe ale problemelor anterioare 3.33.10 si
3.123.14, semnaland n ecare caz modicarile de notat ie si de terminologie introduse.
P 3.19 Demonstrat i ca orice matrice ortogonala se poate exprima ca produs de reectori
elementari.
P 3.20 Scriet i algoritmul de triangularizare ortogonala a matricei A+ =

R
C

, n care
blocul R este superior triunghiular de ordin n, iar C R
(mn)n
este un bloc oarecare.
Evaluat i numarul de operat ii. Precizat i ce simplicari apar n urmatoarele cazuri
a. mn = 1, i.e. C = c
T
este un vector linie;
b. R este superior bidiagonala, respectiv superior Hessenberg;
c. C este superior triunghiulara.
P 3.21 Cum procedat i daca blocul lider R al matricei A+ din problema precedenta este
inferior triunghiular ? Scriet i algoritmul corespunzator.
P 3.22 Scriet i algoritmul de triangularizare cu rotat ii a unei matrice A R
mn
, utilizand
diverse strategii de anulare a elementelor subdiagonale (vezi problema 3.14).
P 3.23 Scriet i algoritmul de triangularizare cu rotat ii a unei matrice A R
nn
a) superior
Hessenberg, b) tridiagonale.

In al doilea caz, presupunet i ca A este memorata mpachetat (prin trei vectori). Ce


dicultat i apar n ceea ce priveste memorarea informat iei generate de algoritm ?
P 3.24 Fie R R
nn
o matrice superior triunghiulara, iar b, c R
n
doi vectori. Scriet i
un algoritm ecient de triangularizare a matricei A+ = R + bc
T
, i.e. Q
T
A+ = R+, unde
R+ este superior triunghiulara.
Fie k 1 : n 1. Cum procedat i daca ultimele n k elemente ale vectorului b sunt
nule ?
P 3.25 Cum procedat i n problema precedenta daca A+ = R+BC
T
, unde B, C R
np
,
cu p > 1 ?
P 3.26 Se considera relat ia P+ = A
T
PA+C
T
C, unde A R
nn
si C R
ln
sunt doua
matrice date, iar P = R
T
R este o matrice pozitiv denita al carei factor Cholesky superior
triunghiular R este cunoscut. Scriet i o procedura (de tip radacina p atrata) care calculeaza
factorul Cholesky R+ al matricei P+, fara a forma explicit P+.
35
Denumirea se justic a observ and c a putem ntotdeauna considera c = ch, s = sh.
36
Observat i c a rotat ia hiperbolic a este o transformare simetric a.
204 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
P 3.27 Ce simplicari apar n problema precedenta daca A este superior Hessenberg, iar
C = c
T
este un vector linie avand numai ultima componenta nenula ?
P 3.28 Fie A R
mn
monica, cu m > n. Utilizand informat ia furnizata de algoritmul de
triangularizare cu reectori Un . . . U2U1A = R, scriet i algoritmul de acumulare a primelor
p coloane ale matricei Q = U1U2 . . . Un, unde p 1 : m este un ntreg dat. Calculat i
numarul de operat ii n funct ie de p. Cum memorat i rezultatul ? Discutat i cazul n care
matricea A nu este neaparat monica.
P 3.29 Aceeasi problema ca mai sus, utilizand algoritmul de triangularizare ortogonala
cu rotat ii.
P 3.30 Fie Q matricea din problema 3.28. Precizat i care dintre schemele urmatoare
realizeaza mai ecient 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 QU
k
1. Q U
k
Q
P 3.31 a. Construit i reprezentarile WY si W
2
T ale reectorilor bloc Q = U1U2 . . . Un
b
,
considerand relat ia de recurent a
1. Q = Un
b
2. Pentru k = n
b
1 : 1 : 1
1. Q U
k
Q
Ce diferent e apar fat a de solut ia adoptata n sect iunea 3.4.3 ?
b. Scriet i reprezentarea W
2
T sub forma Q = I WS
1
W
T
, unde S
1
= T. Precizat i
structura si scriet i procedura de construct ie a matricei S. Care dintre cele doua forme de
reprezentare este preferabila si de ce ?
P 3.32 Fie A R
mn
(m > n) o matrice superior Hessenberg. Prezentat i algoritmi
pentru:
a. calculul factorizarii QR a matricei A;
b. rezolvarea sistemului liniar supradeterminat Ax = b, cu b R
m
dat.
c. Cum procedat i daca A este banda de lat ime inferioara p > 1 ?
Utilizat i reectori si rotat ii. Comparat i cele doua versiuni.
P 3.33 Aceeasi problema, cand A R
mn
este inferior Hessenberg, repectiv banda de
lat ime inferioara p.
P 3.34 Fie A R
mn
, m > n, o matrice de rang n a carei factorizare QR este cunoscuta,
i.e. A = QR, Q R
mm
, R R
mn
. Fie A+ = [A y], cu y R
m
. Prezentat i algoritmi
pentru
a. calculul factorizarii QR a matricei A+;
b. rezolvarea sistemului A+x+ = b, cu b R
m
dat.
c. Stabilit i o relat ie ntre pseudosolut iile x

+
si x

ale sistemelor A+x+ = b, respectiv


Ax = b.
d. Considerat i cazul general A+ = [A Y ], cu Y R
mp
.
P 3.35 Fie A R
mn
, m n, o matrice de rang n a carei factorizare QR este cunoscuta.
Fie A+ =

z
T
A

, cu z R
n
dat. Aratat i ca coloanele lui A+ sunt liniar independente.
Prezentat i algoritmi pentru
a. calculul factorizarii QR a matricei A+.
3.11. PROBLEME 205
b. rezolvarea sistemului A+x+ = b+, unde b+ =

, cu b R
m
si R dat i.
c. Stabilit i o relat ie ntre pseudosolut iile x

+
si x

ale sistemelor A+x+ = b+, respectiv


Ax = b.
d. Considerat i cazul general A+ =

Z
A

, cu Z R
pn
.
P 3.36 Scriet i algoritmi ecient i de aplicare a transformarilor B Q
T
B si B QB,
unde Q este matricea din problema 3.28 iar B R
mp
este superior sau inferior triun-
ghiulara. Evaluat i numarul de operat ii n cele patru situat ii.
P 3.37 Aceeasi problema ca mai sus, pentru transformarile la dreapta, B BQ si
B BQ
T
.
P 3.38 Fie B R
mp
o matrice data, iar Q = Q1Q2 . . . Qn matricea din problema 3.28.
Scriet i algoritmul de aplicare a transformarilor B Q
T
B si B QB la nivel de bloc.
P 3.39 Aceeasi problema ca mai sus, pentru transformarile la dreapta, B BQ si
B BQ
T
.
P 3.40

In condit iile problemei 3.28, scriet i un algoritm pentru calculul vectorului y = Ax,
cu x R
n
dat. (N.B. Matricea A a fost distrusa n urma execut iei algoritmului de
triangularizare.)
P 3.41

In condit iile problemei 3.28, scriet i algoritmi pentru
a. rezolvarea sistemului A
T
Ax = c, cu c R
n
dat;
b. calculul inversei H = (A
T
A)
1
;
c. calculul scalarului = c
T
(A
T
A)
1
c, c R
n
.
P 3.42 Scriet i procedurile GQL si MQL de acumulare si aplicare a transformarilor gene-
rate de algoritmul de triangularizare QL.
P 3.43 Scriet i algoritmul de triangularizare ortogonala QL la nivel de bloc.
P 3.44 Fie A R
mn
o matrice monica. Scriet i procedurile de ortogonalizare GS si
MGS care calculeaza factorizarea A = Q

, unde Q

are coloanele ortogonale, iar L

este inferior triunghiulara.


P 3.45 Rezolvat i problemele 3.24-3.26nlocuind peste tot matricele superior triunghiulare
R si R+ cu matrice inferior triunghiulare. Reformulat i n acelasi spirit problema 3.27.
P 3.46 a. Sa se scrie un algoritm ecient de rezolvare a sistemului
(G+C
T
C)x+ = c +C
T
y,
n care G = R
T
R este o matrice simetrica pozitiv denita al carei factor Cholesky superior
triunghiular R este cunoscut, iar matricea C R
ln
precum si vectorii c R
n
, y R
l
sunt dat i. Stabilit i o relat ie ntre x+ si solut ia 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 R
n
un vector dat.
P 3.47 Fie A R
mn
monica. Scriet i algoritmul de calcul al pseudosolut iei sistemului
Ax = b cu b R
m
dat, utilizand informat ia furnizata de algoritmul de triangularizare
ortogonala QL.
206 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
P 3.48 Scriet i algoritmul de triangularizare ortogonala la dreapta a matricei A+ = [L B],
n care blocul L este inferior triunghiular de ordin m iar B R
m(nm)
este o matrice
oarecare. Precizat i ce modicari apar daca
a. n m = 1, i.e. B = b este un vector;
b. L este inferior bidiagonala, respectiv inferior Hessenberg;
c. B este inferior triunghiulara.
Observat ie. Evident, aceasta problema reprezinta o simpla formulare prin dualitate a
problemei 3.20. Propunem cititorului ca, procedand n mod similar, sa obt ina si sa rezolve
dualele problemelor 3.213.47 (sau ale celor mai interesante dintre acestea), comentand n
ecare caz paralelismele observate.
P 3.49 Fie A R
mn
o matrice de rang maxim.
a. Discutat i existent a si unicitatea inverselor la stanga (dreapta) ale matricei A. Putet i
descrie printr-o formula mult imea acestor inverse ?
b. Evaluat i expresiile Im AA
+
F si In A
+
AF . Ce se schimba daca mai sus
nlocuim norma Frobenius cu norma spectrala ?
P 3.50 a. Fie A R
mn
o matrice monica, iar b R
m
, c R
n
doi vectori dat i.
Utilizand informat ia furnizata de algoritmul de triangularizare ortogonala Q
T
A = R,
scriet i o procedura care rezolva (n sensul CMMP) ambele sisteme Ax = b si A
T
x = c.
b. Aceeasi problema ca mai sus, daca A este epica, utilizand algoritmul de triangu-
larizare la dreapta AZ = L.
c. Aceleasi probleme ca mai sus, relativ la sistemele cu membru drept multiplu
AX = B si A
T
Y = C, n care B si C sunt doua matrice date, dimensionate corespunzator.
P 3.51 Fie A R
mn
cu m = n. Scriet i algoritmii de triangularizare prin eliminare
gaussiana MA = U, respectiv AN = L si indicat i cateva aplicat ii. Ce strategii de pivotare
recomandat i n ecare caz ?
P 3.52 Fie H =

Im A
A
H
0

, cu A = Q

monica (Q C
mm
, R

R
nn
).
a. Aratat i ca factorizarea cvasi-diagonala a matricei H este de forma THT
H
= J,
unde
J =
2
6
6
6
4
J1
.
.
.
Jn
Imn
3
7
7
7
5
, J
k
=

1 1
1 0

, k = 1 : n.
b. Aratat i ca H este inversabila si
H
1
=

P2 (A
+
)
H
A
+
G
1

,
unde G = A
H
A, A
+
= (A
H
A)
1
A
H
, P2 = I AA
+
. Cat este detH ?
c. Formulat i rezultatele a si b pentru H =

In A
H
A 0

, cu A epica.
P 3.53 Considerat i funct ia patratica F : R
n
R denita prin
F(x) =
1
2
x
T
Gx x
T
c,
unde G R
nn
este o matrice simetrica pozitiv denita, iar c R
n
.
a. Scriet i condit iile necesare de minim si aratat i ca F are un punct de minim unic
x

R
n
care satisface sistemul Gx

= c. (Indicat ie:
F
x
i
= 0, i = 1 : n.)
b. Scriet i un algoritm care calculeaza x

si
not
= F(x

).
3.11. PROBLEME 207
P 3.54 Fie A R
mn
, b R
m
. De asemenea, e S R
mm
si T R
nn
doua matrice
pozitiv denite. Considerat i funct ia patratica
F(x) = b Ax
2
S
+x
2
T
,
unde notat iile sunt cele din problema 3.9.
a. Aratat i ca F are un punct de minim unic x

si scriet i un algoritm care calculeaza


x

si = F(x

).
b. Analizat i separat problema CMMP ponderata, n care F(x) = b Ax
2
S
. (Aici S
se numeste tradit ional matrice pondere.)
P 3.55 Considerat i problema de minimizare cu restrict ii liniare
F(x

) = min
Ax=b
F(x),
unde F este funct ia patratica din problema 3.53, matricea A R
mn
este epica, iar
b R
m
.
a. Scriet i condit iile necesare de minim utilizand metoda multiplicatorilor Lagrange.
Putet i arata ca problema considerata are solut ie unica ? Analizat i cazul general n care
matricea G nu este neaparat pozitiv denita.
b. Scriet i un algoritm care calculeaza x

si = F(x

).
P 3.56 Fie A R
mn
monica, B R
mp
epica si b R
m
. Rezolvat i problema CMMP
generalizata
y

2
= min
Ax+By=b
y
2
.
Observat ie. Daca p = m si B = Im, atunci evident y = r
not
= b Ax, deci se obt ine
problema CMMP din sect iunea 3.5.
P 3.57 Fie A R
mn
monica, C R
ln
epica si b R
m
, d R
l
. Rezolvat i problema
CMMP cu restrict ii liniare
b Ax

= min
Cx=d
b Ax.
P 3.58 Considerat i vectorul de permutari produs de algoritmul 3.11 si e x R
n
.
Scriet i procedurile de permutare pe loc x x si x
T
x.
P 3.59 Se dau doi vectori b R
m
si c R
n
. Scriet i algoritmi de determinare a proiect iilor
ortogonale ale acestor vectori pe subspat iile descompunerilor ortogonale
R
m
= ImA KerA
T
si respectiv R
n
= ImA
T
KerA, utilizand informat ia furnizata
de procedura de triangularizare ortogonala QRX.
P 3.60 a. Cu notat iile din sect iunea 3.9.5, aratat i ca matricea
X
not
= A
+
= Z

(S

)
1
0
0 0

Q
H
satisface condit iile (Moore-Penrose) 1

AXA = X, 2

XAX = X, 3

AX = (AX)
H
,
4

XA = (XA)
H
.
b. Precizat i ce forma iau aceste condit ii daca A este monica (epica).
c. Demonstrat i ca 5

(A
+
)
H
= (A
H
)
+
, 6

(A
+
)
+
A = A, 7

A
+
= (A
H
A)
+
A
H
,
8

A
+
= A
H
(AA
H
)
+
.
d. Putet i indica o metoda de calcul al pseudoinversei unei matrice hermitice (vezi
proprietat ile 7

si 8

) fara a utiliza triangularizarea ortogonala completa ?


e. Tinand seama de forma factorizata a matricelor Q si Z, scriet i un algoritm pentru
calculul pseudoinversei A
+
.
208 CAPITOLUL 3. PROBLEMA CELOR MAI MICI P

ATRATE
P 3.61 a. Aratat i ca orice matrice A C
mn
poate 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. Scriet i algoritmi pentru determinarea factorizarilor (i) si (ii).
c. Aratat i ca A
+
= C
+
(Q

)
H
, respectiv A
+
= (V

)
H
B
+
.
d. Scriet i algoritmi pentru calculul pseudoinversei normale a sistemului Ax = b, cu
b R
m
dat, utilizand factorizarile (i) si (ii).
P 3.62 O matrice A C
mn
se numeste (ad-hoc) pseudounitara (sau part ial izometrica)
daca exista doua matrice cu coloane ortogonale U C
mr
si V C
nr
astfel ncat
A = UV
H
.
a. Ce structura au gramienii G1 = A
H
A si G2 = AA
H
? Interpretare geometrica.
b. Aratat i ca A
+
= V U
H
.
c. Aratat i ca o matrice A C
mn
este pseudounitara daca si numai daca A
+
= A
H
.
d. Cum se poate testa faptul ca o anumita matrice data A C
mn
este 1) monica,
2) epica, 3) pseudounitara, 4) proiector ortogonal ?
P 3.63 Fie A C
mn
.
a. Scriet i un algoritm de triangularizare ortogonala la dreapta cu pivotarea liniilor, i.e.
AZ = L, unde L rezulta inferior triunghiulara. Precizat i strategia de pivotare utilizata.
b. Indicat i cateva aplicat ii posibile ale acestui algoritm si explicat i de ce n practica
algoritmul QRP din sect iunea 3.9 este ntotdeauna sucient.
P 3.64 Fie A R
mn
, B R
mp
monice.
a. Explicat i de ce n general matricea M = [A B] nu este monica. Aratat i ca
ImM = ImA + ImB.
b. Efectuat i triangularizarea ortogonala completa a matricei M, i.e.
Q
H
MZ =

0
0 0

, unde S este inversabila de ordin r = rangM. Ce semnicat ie


geometrica au r si Q ?
c. Notam S = ImA, T = ImB. Utilizand rezultatele de la punctul b, precizat i cum
poate vericata condit ia S
T
T = .
d. Idem, indicat i o baza ortogonala pentru subspat iul (S +T )

.
e. Cum se schimba concluziile de la punctele bd daca matricele init iale nu sunt
neaparat monice ?
Pentru exemplicare, e A =
2
4
1
0
0
3
5
, B =
2
4
1 1
0 1
0 0
3
5
. Cine sunt S, T si S +T ?
P 3.65 Fie A R
mn
, C R
ln
epice.
a. Explicat i de ce n general matricea N =

A
C

nu este epica. Aratat i ca


KerN = KerA
T
KerC.
b. Formulat i prin dualitate si rezolvat i punctele bd din problema precedenta.
c. Fie x R
n
. Scriet i algoritmul de calcul al proiect iilor ortogonale ale lui x pe
subspat iile N si N

, unde N = KerA
T
KerC.
Pentru exemplicare, e A = [1 0 0], C =

1 0 0
1 1 0

. Cine sunt KerA, KerC si


KerA
T
KerC ?

You might also like