555
METODE DE CALCUL NUMERIC MATRICEAL. ALGORITMI FUNDAMENTALI Bogdan Dumitrescu Corneliu Popeea Boris Jora Partea I

metode de calcul numeric matriceal. algoritmi fundamentali

  • Upload
    lamhanh

  • View
    376

  • Download
    15

Embed Size (px)

Citation preview

Page 1: metode de calcul numeric matriceal. algoritmi fundamentali

METODE DE CALCUL

NUMERIC MATRICEAL.

ALGORITMI

FUNDAMENTALI

Bogdan Dumitrescu Corneliu Popeea Boris Jora

Partea I

Page 2: metode de calcul numeric matriceal. algoritmi fundamentali

Tuturor studentilor, fosti, actuali sau viitori,precum si copiilor nostri

Andrei Octavia MonicaSebastian Corneliu Serban

Page 3: metode de calcul numeric matriceal. algoritmi fundamentali

i

Cuvant introductiv

Lucrarea de fata, prima de o asemenea amploare ın limba romana, este con-struita pe structura cursului de Calcul numeric, predat de autori la Facultateade Automatica si Calculatoare a Universitatii Politehnica din Bucuresti. Lucrareaexpune, ın maniera eminamente algoritmica, metodele de rezolvare a problemelorfundamentale de calcul din algebra matriceala, care constituie primele si, de celemai multe ori, principalele componente ale celor mai diverse aplicatii din inginerie,economie si numeroase alte ramuri ale stiintei.

In afara studentilor din facultatile cu profil tehnic sau economic, lucrarea poatefi utila tuturor celor care, fie ei studenti, cadre didactice, ingineri sau cercetatori,doresc sa utilizeze cele mai moderne instrumente de calcul numeric matriceal. Pen-tru ıntelegerea notiunilor prezentate, cititorul trebuie sa posede cunostinte minimede matematica, la nivelul celor dobandite ın liceu sau ın primul an de facultate.Pentru orientare, fiecare capitol ıncepe cu o trecere ın revista a bazelor matematiceale problemelor de calcul studiate. De asemenea, cititorul ar trebui sa fie capabil ase exprima ıntr-un limbaj de programare de nivel ınalt; aceasta conditie nu e strictnecesara, dar constituie un avantaj, pentru ca ıi permite sa se concentreze asupraideilor si nu a detaliilor de implementare ale acestora.

Cartea contine 7 capitole, descrise ın cateva cuvinte mai jos. La ınceput seafla o bibliografie de baza, cuprinzand lucrari de larga utilizare, referite cu cifreromane, care ofera o privire de perspectiva asupra ıntregului domeniu. In finalse gaseste o a doua bibliografie, ın general formata din articole (referite cu cifrearabe) privind aspecte specifice ale problemelor tratate si destinata cititorului caredoreste sa adanceasca studiul dincolo de textul de fata. Pentru facilitarea lecturii,recomandam consultarea listelor de notatii si de prescurtari uzuale, aflate catevapagini mai departe.

Capitolul 0, numerotat astfel pentru a sublinia caracterul sau de initiere ın dome-niu, prezinta specificul calculului numeric si justifica necesitatea existentei cartii defata. Este vorba aici despre: reprezentarea numerelor reale ın virgula mobila, pro-prietatile (uneori neasteptate ale) operatiilor cu astfel de numere precum si meca-nismele de aparitie inevitabila a erorilor numerice. Este apoi considerata perecheaformata din problema de calcul si algoritmul de rezolvare, relativ la care sunt defi-

Page 4: metode de calcul numeric matriceal. algoritmi fundamentali

ii

nite notiunile fundamentale de conditionare si, respectiv, stabilitate numerica. Inıncheiere, este aruncata o privire asupra modului ın care arhitectura calculatoruluiinfluenteaza conceptia algoritmilor.

Capitolul 1 este dedicat expunerii notiunilor primare ale algebrei matriceale(vectori, subspatii, matrice de diverse tipuri si proprietatile acestora), constituindtotodata o introducere ın problematica specifica a capitolelor urmatoare. Algoritmiiprezentati rezolva unele probleme simple, dar fundamentale, cum ar fi ınmultirea adoua matrice, sau unele cazuri particulare, de exemplu cel al matricelor triunghiu-lare, ale unor probleme mai dificile (rezolvarea sistemelor liniare, calculul valorilorsi vectorilor proprii). Acesti algoritmi sunt larg utilizati ın continuare, ca elementeconstructive primare.

Capitolul 2 trateaza metodele directe de rezolvare a sistemelor liniare Ax = b,cu matrice A nesingulara, prezentand procedura de eliminare gaussiana, inclusivstrategiile de pivotare adecvate, precum si versiunile compacte ale acestei metodebazate pe factorizarea LU a matricei A. In afara matricelor de forma generala,sunt studiate si cazurile, des ıntalnite ın practica, ale matricelor banda, simetrice sisimetric pozitiv definite. De asemenea, sunt abordate probleme conexe, cum ar ficalculul inversei si al determinantului.

Capitolul 3 descrie metodele de rezolvare ın sensul celor mai mici patrate (CMMP)a sistemelor liniareAx = b, ın care numarul ecuatiilor difera de cel al necunoscutelor,deci A este o matrice dreptunghiulara de forma generala. In acest caz se utilizeazametode de ”eliminare” specifice, bazate pe aplicarea transformarilor ortogonale (re-flectori Householder, rotatii Givens etc.) iar conceptul central este cel de factorizareQR. Daca matricea A nu este de rang maxim, se recomanda utilizarea factorizariiortogonale complete, care are la baza un algoritm de triangularizare cu pivotareacoloanelor. Sistemele liniare de acest tip apar frecvent ın prelucrarea datelor expe-rimentale, statistica, identificarea sistemelor etc.

Capitolul 4 expune principalele metode de calcul al valorilor si vectorilor propriiai unei matrice A. Este prezentat ın detaliu algoritmul QR, care aduce matriceaA laforma Schur, reala sau complexa, pornind de la forma de principiu a algoritmului, alecarei proprietati matematice sunt usor de analizat, si ajungand la variantele relativsofisticate sub care acesta este implementat ın programele profesionale. Alaturi decazul general este tratat si cel al matricelor simetrice. Nu sunt uitati alti algoritmiimportanti, utili ın cazuri particulare, cum ar fi metodele puterii, puterii inverse,bisectiei sau Jacobi. Cunoasterea valorilor proprii este utila ın analiza stabilitatiisistemelor dinamice, ın studiul vibratiilor (pentru cladiri, poduri, avioane) si ınmulte 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 fi determinarea rangului, calculul unor normematriceale, constructia bazelor pentru diverse subspatii, rezolvarea ın sensul celormai mici patrate a sistemelor cu matrice de rang nemaxim. Algoritmul DVS esteo adaptare ingenioasa a algoritmului QR simetric, cunoscut din capitolul anterior.Utilizarea DVS este ilustrata considerand unele variante ale problemei CMMP, deexemplu CMMP totala sau cu restrictii, frecvent ıntalnite ın aplicatii.

Page 5: metode de calcul numeric matriceal. algoritmi fundamentali

iii

Capitolul 6 considera calculul valorilor si vectorilor proprii generalizati ai uneiperechi de matrice (A,B). Este prezentat algoritmul QZ, care aduce perechea laforma Schur generalizata, precum si problema conexa a calculului bazelor ortogo-nale pentru subspatii de deflatie. Notiunile si algoritmii studiati aici sunt de mareutilitate ın probleme care apar, de exemplu, ın teoria sistemelor precum si ın analizacircuitelor electrice sau mecanice cu elemente ideale.

Principalele rezultate ale expunerii sunt concretizate sub forma de algoritmide calcul descrisi ıntr-un pseudocod extrem de apropiat de implementarea directaıntr-un limbaj de programare de nivel ınalt. Algoritmii au fost testati de autoriın mediul de programare MATLAB; cu toate acestea, orice observatii si propuneridin partea cititorilor, care sa conduca la eliminarea unor erori sau la ımbunatatireaperformantelor, sunt binevenite si pot fi transmise la adresa mentionata mai jos.Pentru majoritatea algoritmilor sunt precizate proprietatile de stabilitate numerica,de obicei ıntr-o sectiune speciala dedicata acestei teme, ın fiecare capitol. Mentionamca o alta sectiune expune ıntotdeuna informatii despre conditionarea problemelor decalcul studiate; ın acest fel, cititorul va avea o imagine clara a acuratetii cu care sepot obtine solutiile numerice ale diverselor probleme studiate. De asemenea, fiecarecapitol contine ın final o sectiune ce prezinta rutine (functii) din biblioteca LA-PACK (Linear Algebra PACKage) si din limbajul MATLAB (MATrix LABoratory),reprezentative pentru problemele de calcul studiate. LAPACK [XV] implementeazacei mai eficienti si siguri algoritmi de calcul numeric matriceal si este instrumentulcel mai utilizat ın acest domeniu. MATLAB [XIV] are o componenta didacticamai pronuntata, ımbinand o interfata utilizator simpla cu o calitate remarcabila aalgoritmilor.

De asemenea, fiecare capitol este ınsotit de un set de probleme, ın total peste200, ale caror rezolvari complete sau partiale se gasesc ın partea finala a lucrarii.Recomandam cititorului sa consulte indicatiile sau rezolvarea propusa de autorinumai pentru verificarea solutiei personale sau dupa tentative serioase de gasire aacesteia. In plus, un mare castig pentru cititor ıl poate reprezenta implementareaalgoritmilor (cei de baza, din lucrare, si cei derivati, ın probleme) precum si testareafunctionarii lor pe exemple numerice reprezentative.

Aducem la cunostinta cititorilor ca Grupul de Calcul Numeric din cadrul catedreide Automatica si Ingineria Sistemelor de la Facultatea de Automatica si Calcula-toare, din care autorii fac parte, dispune de o biblioteca de calcul numeric matricealscrisa ın limbajul C, care contine implementarea tuturor algoritmilor din lucrare.Cei interesati pot contacta autorii la urmatoarele adrese de e-mail

bogdan,popeea,[email protected]

Autorii multumesc colegilor lor prof. Paul Flondor si conf.dr.ing. Ioan Tabuspentru interesul acordat si ın special pentru comentariile si observatiile constructivefacute pe marginea lucrarii. De asemenea, autorii aduc multumiri doamnei redactorViorica Fatu, de la Editura ALL Educational, pentru atentia acordata acestei cartiın drumul catre tipar.

Autorii

Page 6: metode de calcul numeric matriceal. algoritmi fundamentali

iv

Bibliografie generala

• Pentru chestiuni teoretice de calcul matriceal:

[ I ] Gantmaher F.R. Teoriia matrit (editia 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 UniversityPress, Cambridge UK, 1985.

[ III ] Strang G. Introduction to Linear Algebra, Wellesley-CambridgePress, 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, AcademicPress, 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 conditionarii problemelor de calcul matriceal si al stabilitatiinumerice a algoritmilor aferenti:

[ VIII ] Stewart G.W., Sun J. Matrix Perturbation Theory, AcademicPress, London, 1990.

[ IX ] Higham N.J. Accuracy and Stability of Numerical Algorithms,SIAM, Philadelphia PA, 1996.

• Pentru programe de calcul si indicatii 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., Springer–Verlag,New York, 1974.

[ XII ] Garbow B.S., Boyle J.M., Dongarra J.J., Moler C.B. Matrix

Eigensystem Routines: EISPACK Guide Extension, Springer–Verlag,New York, 1977.

[ XIII ] Dongarra J.J., Bunch J.R., Moler C.B., Stewart G.W. LINPACK

User’s Guide, SIAM Publications, Philadelphia, PA, 1978.

[ XIV ] MATLAB User’s Guide, The MathWorks Inc., Natick, MA, USA, 1992.

Page 7: metode de calcul numeric matriceal. algoritmi fundamentali

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)

• Lucrari ın limba romana:

[ 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 robusta.

Metode numerice de calcul., Ed. ALL, Bucuresti, 1994.

[ XIX ] Iorga V., Jora B., Nicolescu C., Lopatan I., Fatu I., Programare

numerica, Ed. Teora, Bucuresti, 1996.

Lista de notatii

N – multimea numerelor naturale

Z – multimea numerelor ıntregi

R – multimea numerelor reale

C – multimea numerelor complexe

• Vectori

ni : p : nf – vectorul cu elementele ıntregi ni, ni + p, ni + 2p, . . . , nf ; daca p = 1,vectorul se scrie simplu ni : nf

Rn – spatiul liniar n-dimensional al vectorilor (coloana) x cu n componente realexi ∈ R, i = 1 : n

Cn – spatiul liniar n-dimensional al vectorilor (coloana) x cu n componente com-plexe xi ∈ C, i = 1 : n

ek, k = 1 : n – baza standard a spatiului liniar Rn, respectiv Cn

xi, x(i) – elementul vectorului x aflat ın pozitia i

x(i1 : i2) – vectorul format din elementele din pozitiile de la i1 la i2 ale vectorului x

(x, y) = yTx =∑n

i=1 xiyi – produsul scalar standard a doi vectori x, y ∈ Rn; ıncazul complex produsul scalar este (x, y) = yHx =

∑ni=1 xiyi

‖x‖ = (x, x)1/2 = (∑n

i=1 |xi|2)1/2 – norma euclidiana a vectorului x ∈ Rn

Page 8: metode de calcul numeric matriceal. algoritmi fundamentali

vi

‖x‖p = (∑n

i=1 |xi|p)1/p– p-normele vectorului n-dimensional x, p ≥ 1; ın calcule se

utilizeaza ın special ‖x‖1,‖x‖2 =‖x‖ si ‖x‖∞=maxi=1:n|xi|

• Matrice

Rm×n – spatiul liniar al matricelor cu m linii si n coloane cu elemente reale aij ∈ R,

i = 1 : m, j = 1 : n

Cm×n – spatiul liniar al matricelor cu m linii si n coloane cu elemente complexeaij ∈ C, i = 1 : m, j = 1 : n 1

In – matricea unitate de ordinul n

aij, A(i, j) – elementul matricei A situat ın linia i, coloana j

A(i1 : i2, j1 : j2) – blocul matricei A format din liniile de la i1 la i2 si coloanele dela j1 la j2. Indicele ”:”, fara alta precizare, semnifica luarea tuturor liniilorsau coloanele

AT – transpusa matricei (reale sau complexe) A

AH – conjugata hermitica a matricei (complexe) A, i.e. AH = AT , unde A esteconjugata complexa a lui A

A−1 – inversa matricei patrate nesingulare A, i.e. AA−1 = A−1A = In

A−T = (A−1)T

= (AT )−1

A−H = (A−1)H

= (AH)−1

trA – urma matricei patrate A, i.e. suma elementelor diagonale

detA – determinantul matricei patrate 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) = maxi=1:n|λi(A)| – raza spectrala a matricei A

cond(A) = ‖A‖ ‖A−1‖ – numarul de conditie la inversare al matricei A (‖ · ‖ este onorma matriceala consistenta)

A+ – pseudoinversa normala (Moore-Penrose) a matricei A; daca A este monica

A+ =(ATA)−1AT , daca A este epica, atunci A+ =AT(AAT )

−1

σi(A), i = 1 : p, p = min(m,n) – valorile singulare ale matricei A ordonate astfelıncat σ1 ≥ σ2 ≥ . . . ≥ σp

1In calcule, vectorii se identifica cu matricele cu o singura coloana, iar scalarii se identifica cumatricele (sau vectorii) cu un singur element.

Page 9: metode de calcul numeric matriceal. algoritmi fundamentali

vii

σ(A) – multimea σ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(BTA) (tr(BHA)) – produsul scalar a doua matrice reale (complexe)

‖A‖F = (A,A)1/2 – norma Frobenius a matricei A,

‖A‖2F =∑m

i=1

∑nj=1 |aij |2 sau ‖A‖2F =

∑ri=1 σi

2

|A|p = (∑r

i=1 σip)

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 normaspectrala |A|∞ = σ1(A)

‖A‖p = max‖x‖p=1‖Ax‖p – p-normele induse; ın calcule se utilizeaza ın special

norma ‖A‖1 = maxj=1:n

∑mi=1 |aij |, norma spectrala ‖A‖2 = σ1(A) si norma

‖A‖∞ = maxi=1:m

∑nj=1 |aij |

• Transformari

SAT – transformare de echivalenta (bilaterala) a matricei A ∈ Rm×n (S si T suntmatrice patrate nesingulare; transformarea de echivalenta conserva rangul, iardaca S, T sunt ortogonale, atunci conserva si valorile singulare)

T−1AT – transformare de asemanare a matricei A ∈ Rn×n (transformarea deasemanare conserva valorile proprii)

T TAT – transformare de congruenta a matricei A ∈ Rn×n (T este nesingulara; apli-cata unei matrice A simetrice, transformarea de congruenta conserva rangulsi inertia i.e. numerele de valori proprii negative, nule si, respectiv, pozitive)

Daca T este ortogonala, atunci T−1 = T T si transformarea T TAT se numestetransformare de asemanare ortogonala

• 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

Page 10: metode de calcul numeric matriceal. algoritmi fundamentali

viii

LU – factorizarea LU

PE – matrice de permutare elementara

QR – factorizarea QR

• Alfabetul grec

Majuscule Minuscule Denumire Corespondentullatin

A α alfa A, aB β beta B, bΓ γ gamma G, g∆ δ delta D, dE ǫ epsilon E, eZ ζ zeta Z, zH η eta E, eΘ θ theta -I ι iota I, iK κ kappa K, kΛ λ lambda L, lM µ mu M, mN ν nu N, nΞ ξ xi X, xO o omicron O, oΠ π pi P, pP ρ rho R, rΣ σ sigma S, sT τ tau T, tΥ υ upsilon U, uΦ φ phi F, fX χ hi H, hΨ ψ psi -Ω ω omega O, o

Page 11: metode de calcul numeric matriceal. algoritmi fundamentali

Cuprins

0 Concepte fundamentale 1

0.1 Reprezentarea ın virgula mobila . . . . . . . . . . . . . . . . . . . . . 20.2 Aritmetica ın virgula mobila . . . . . . . . . . . . . . . . . . . . . . . 70.3 Conditionarea problemelor de calcul . . . . . . . . . . . . . . . . . . 100.4 Stabilitatea numerica a algoritmilor . . . . . . . . . . . . . . . . . . 120.5 Calitatile unui algoritm numeric . . . . . . . . . . . . . . . . . . . . 150.6 Implicatiile arhitecturii calculatoarelor . . . . . . . . . . . . . . . . . 160.7 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1 Algoritmi elementari 19

1.1 Vectori. Spatiul vectorial Rn . . . . . . . . . . . . . . . . . . . . . . 191.2 Produs scalar. Norme. Ortogonalitate . . . . . . . . . . . . . . . . . 241.3 Matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.4 Inmultirea matricelor . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.5 Norme matriceale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.6 Matrice structurate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.7 Matrice bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.8 Matrice normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461.9 Sisteme de ecuatii liniare . . . . . . . . . . . . . . . . . . . . . . . . . 491.10 Valori si vectori proprii . . . . . . . . . . . . . . . . . . . . . . . . . . 591.11 Rutinele BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.12 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

2 Rezolvarea sistemelor de ecuatii liniare 69

2.1 Transformari elementare . . . . . . . . . . . . . . . . . . . . . . . . . 702.2 Triangularizare prin eliminare gaussiana . . . . . . . . . . . . . . . . 722.3 Strategii de pivotare . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

2.3.1 Pivotare partiala . . . . . . . . . . . . . . . . . . . . . . . . . 762.3.2 Pivotare completa . . . . . . . . . . . . . . . . . . . . . . . . 78

2.4 Factorizari LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.4.1 Factorizari LU rezultate din eliminarea gaussiana . . . . . . . 822.4.2 Factorizari LU compacte . . . . . . . . . . . . . . . . . . . . . 842.4.3 Factorizari LU prin eliminare gaussiana la nivel de bloc . . . 862.4.4 Factorizari LU compacte la nivel de bloc . . . . . . . . . . . . 89

2.5 Rezolvarea sistemelor liniare . . . . . . . . . . . . . . . . . . . . . . . 91

ix

Page 12: metode de calcul numeric matriceal. algoritmi fundamentali

x CUPRINS

2.6 Calculul inversei si al determinantului . . . . . . . . . . . . . . . . . 932.6.1 Calculul inversei unei matrice . . . . . . . . . . . . . . . . . . 942.6.2 Calculul determinantului . . . . . . . . . . . . . . . . . . . . 97

2.7 Conditionarea sistemelor liniare . . . . . . . . . . . . . . . . . . . . . 972.8 Stabilitate numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

2.8.1 Scalarea sistemelor liniare . . . . . . . . . . . . . . . . . . . . 1032.8.2 Rafinarea iterativa a solutiei calculate . . . . . . . . . . . . . 104

2.9 Sisteme banda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052.10 Sisteme simetrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092.11 Sisteme simetrice pozitiv definite . . . . . . . . . . . . . . . . . . . . 1142.12 Rutine LAPACK si MATLAB . . . . . . . . . . . . . . . . . . . . . . 1172.13 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

3 Problema celor mai mici patrate 123

3.1 Transformari ortogonale . . . . . . . . . . . . . . . . . . . . . . . . . 1253.1.1 Reflectori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253.1.2 Rotatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

3.2 Transformari unitare . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383.2.1 Reflectori complecsi . . . . . . . . . . . . . . . . . . . . . . . 1383.2.2 Rotatii complexe . . . . . . . . . . . . . . . . . . . . . . . . . 142

3.3 Triangularizarea ortogonala . . . . . . . . . . . . . . . . . . . . . . . 1433.4 Factorizarea QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

3.4.1 Acumularea transformarilor . . . . . . . . . . . . . . . . . . . 1533.4.2 Aplicarea transformarilor . . . . . . . . . . . . . . . . . . . . 1553.4.3 Triangularizarea ortogonala la nivel de bloc . . . . . . . . . . 1563.4.4 Alte metode de ortogonalizare . . . . . . . . . . . . . . . . . 1603.4.5 Factorizarea QL . . . . . . . . . . . . . . . . . . . . . . . . . 162

3.5 Rezolvarea problemei CMMP . . . . . . . . . . . . . . . . . . . . . . 1623.5.1 Calculul pseudosolutiei . . . . . . . . . . . . . . . . . . . . . . 1643.5.2 Calculul proiectiilor . . . . . . . . . . . . . . . . . . . . . . . 1673.5.3 Problema CMMP cu membru drept multiplu . . . . . . . . . 1683.5.4 Calculul pseudoinversei . . . . . . . . . . . . . . . . . . . . . 1683.5.5 Alte metode de rezolvare a problemei CMMP . . . . . . . . . 169

3.6 Sisteme liniare subdeterminate . . . . . . . . . . . . . . . . . . . . . 1703.6.1 Triangularizarea ortogonala la dreapta . . . . . . . . . . . . . 1703.6.2 Factorizarea LQ . . . . . . . . . . . . . . . . . . . . . . . . . 1723.6.3 Rezolvarea sistemelor subdeterminate . . . . . . . . . . . . . 174

3.7 Conditionarea problemelor CMMP . . . . . . . . . . . . . . . . . . . 1773.7.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1773.7.2 Sensibilitatea pseudosolutiei . . . . . . . . . . . . . . . . . . . 1803.7.3 Sensibilitatea solutiei normale . . . . . . . . . . . . . . . . . . 182

3.8 Stabilitatea algoritmilor de triangularizare . . . . . . . . . . . . . . . 1833.8.1 Stabilitatea numerica a algoritmilor fundamentali . . . . . . . 1843.8.2 Acuratetea solutiilor calculate . . . . . . . . . . . . . . . . . . 1853.8.3 Scalarea problemei CMMP . . . . . . . . . . . . . . . . . . . 1863.8.4 Rafinarea iterativa a solutiei CMMP . . . . . . . . . . . . . . 187

Page 13: metode de calcul numeric matriceal. algoritmi fundamentali

CUPRINS xi

3.9 Descompunerea ortogonala completa . . . . . . . . . . . . . . . . . . 1893.9.1 Triangularizarea ortogonala cu pivotarea coloanelor . . . . . . 1903.9.2 Determinarea rangului . . . . . . . . . . . . . . . . . . . . . . 1933.9.3 Triangularizarea ortogonala completa . . . . . . . . . . . . . 1953.9.4 Descompunerea ortogonala completa . . . . . . . . . . . . . . 1973.9.5 Problema generala CMMP . . . . . . . . . . . . . . . . . . . 197

3.10 Rutine LAPACK si MATLAB . . . . . . . . . . . . . . . . . . . . . . 1993.11 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Page 14: metode de calcul numeric matriceal. algoritmi fundamentali

0 CUPRINS

Page 15: metode de calcul numeric matriceal. algoritmi fundamentali

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 finite si bine precizate deoperatii elementare (cum ar fi adunarea, ınmultirea etc.) prin care solutia problemeieste calculata ın functie de datele initiale. Desi matematica furnizeaza deseori, ındemonstratiile numite constructive, algoritmi de rezolvare a problemelor pe care letrateaza, s-a dovedit ca de multe ori implementarile numerice ale acestor algoritmiau dezavantaje majore care ıi fac de nefolosit.

Discrepanta ıntre corectitudinea matematica a unui algoritm si adecvarea lui laspecificul calculului numeric practic poate proveni din doua cauze importante. Una,evidenta, consta ın (eventuala) complexitate (ın ce priveste numarul operatiilor deexecutat si memoria ocupata de date), care poate duce fie la timpi de executie foartemari, deci nepractici, fie, pur si simplu, la imposibilitatea executiei programuluicare implementeaza algoritmul. A doua cauza, mai subtila, o constituie erorilecare ınsotesc calculul numeric; prin acumulare, acestea pot periclita acuratetearezultatului.

O serie de erori sunt inerente, cum ar fi cele care apar la determinarea datelordin masuratori experimentale. Altele sunt legate de algoritmul de calcul utilizat,care se poate baza pe simplificari ın modelarea unor fenomene fizice sau poateproveni dintr-o metoda matematica implicand o infinitate de operatii, din care,prin trunchiere, se retine doar un numar finit de operatii; ın ambele cazuri, prinnatura lucrurilor, algoritmul va furniza o solutie aproximativa.

In fine, exista erori avand cauze specifice calculului numeric, care opereaza cunumere 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 formatbine precizat si ocupand un numar relativ mic de locatii de memorie, de exemplu4 sau 8 octeti; astfel, o infinitate de numere este reprezentata printr-un numarfinit de combinatii de biti. De aici o prima sursa de erori, cele de reprezentare.Apoi, pot aparea erori si la efectuarea operatiilor cu numere reale aflate ın memoriacalculatorului, erori numite de rotunjire; aceasta nu se ıntampla pentru ca unitatea

1

Page 16: metode de calcul numeric matriceal. algoritmi fundamentali

2 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

centrala (microprocesorul, de exemplu) ar ”gresi” la calcule, ci, din nou, datoritafaptului ca numerele reale sunt reprezentate ıntr-un format finit, atat ın memorie,cat si ın unitatea centrala.

Prin aceasta, calculul cu numere reale difera fundamental de cel cu ıntregi. Vomobtine 1 + 2 = 3 pe orice calculator, ın schimb 0.1 + 0.2 6= 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 — adunand 0.1+0.2 si scazanddin rezultat 0.3 nu obtinem 0, asa cum ne-am astepta, ci aproximativ 5.5 · 10−17; edrept, eroarea este infima. Pericolul apare ın cazul acumularii unor astfel de micierori, acumulare care poate duce la degradarea — uneori fatala — a rezultatuluiprodus.

In acest capitol ne vom ocupa de aspecte specifice elementare ale calcululuinumeric: modul de reprezentare a numerelor reale, felul ın care se apreciaza calitateaunui algoritm numeric, cuantificarea efectului erorilor de rotunjire asupra acuratetiisolutiei numerice a unei probleme; acest ultim scop face obiectul analizei numericesi este, ın general, dificil de atins.

0.1 Reprezentarea ın virgula mobila

Fie x si x numere reale, x fiind interpretat ca o aproximare a lui x. Vom prezentadoua masuri naturale ale calitatii aproximarii.

Eroarea absoluta (cu care x aproximeaza x) se defineste prin

∆ = |x− x|.

Daca x 6= 0, atunci eroarea relativa se defineste prin

ε =

∣∣∣∣

x− xx

∣∣∣∣=

|x| .

Daca x ∈ Rn, se ınlocuieste ın relatiile 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 aproximatie a lui y = 0.01, atunci eroarea absolutaeste aceeasi ca ın cazul precedent, ∆ = 10−3, dar eroarea relativa este de o suta deori mai mare: ε = 10−1. Raportandu-se la valoarea lui x, eroarea relativa este multmai adecvata pentru estimarea calitatii aproximarii x. ♦

Erorile de reprezentare apar datorita memorarii ın calculator a numerelor realeprintr-o secventa finita de simboluri (cifre binare). Pentru a prezenta o estimarea acestor erori, sa reamintim bine cunoscuta reprezentare pozitionala a numerelorreale. Fie

• β ∈ N, β ≥ 2, baza de numeratie;

• C = 0, 1, . . . , β − 1, multimea cifrelor ın baza β, adica primele β numerenaturale.

Page 17: metode de calcul numeric matriceal. algoritmi fundamentali

0.1. REPREZENTAREA IN VIRGULA MOBILA 3

Se stie ca orice numar x ∈ R poate fi scris unic sub forma unei secvente infinite

x = san−1an−2 . . . a0.a−1a−2a−3 . . . , (0.1)

care nu se termina printr-o secventa infinita de cifre egale cu β−1 si ın care ai ∈ C,iar s este semnul, s ∈ +,−. Valoarea lui x este

x = s

(n−1∑

i=0

aiβi +

∞∑

i=1

a−iβ−i

)

. (0.2)

Convenim sa eliminam din scriere secventa infinita de zerouri finale, atunci candeste cazul. Sa exemplificam relatiile (0.1) si (0.2).

Exemplul 0.2 Numarul ın baza 10

3.25 = 3 · 100 + 2 · 10−1 + 5 · 10−2

se reprezinta ın baza 2 ın modul urmator (verificati egalitatea):

11.01 = 1 · 21 + 1 · 20 + 0 · 2−1 + 1 · 2−2.

In ambele baze, reprezentarile au un numar finit de cifre. In schimb, numarulexprimat simplu ın baza 10:

0.1 = 1 · 10−1

are o reprezentare de lungime infinita ın baza 2 (verificati din nou egalitatea):

0.0001100110011 . . .= (2−4 + 2−5)

∞∑

k=0

2−4k.

In baza 10, urmatoarele doua secvente

0.99999 . . .1.00000 . . .

reprezinta acelasi numar real. Reprezentarile binare corespunzatoare sunt

0.11111 . . .1.00000 . . .

In ambele situatii, reprezentarea acceptata este 1.0000 . . . ♦

Evident, reprezentarea numerelor reale pe calculator poate avea doar un numarfinit de cifre si deci, prin natura ei, este aproximativa. O ”buna” aproximare printr-osecventa finita de lungime fixata trebuie sa asigure:

• un domeniu suficient de mare de numere reprezentate;

• o eroare relativa de reprezentare suficient de mica;

• o distributie uniforma a erorii relative de reprezentare.

Page 18: metode de calcul numeric matriceal. algoritmi fundamentali

4 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

Un bun compromis ın satisfacerea acestor cerinte este dat de asa numitul FormatVirgula Mobila (FVM).

Definitia 0.1 Un Format Virgula Mobila (FVM) este definit de trei ıntregi (β, t, p),cu urmatoarea semnificatie:

β – baza de numeratie (β ≥ 2);t – precizia, adica numarul de cifre semnificative (”lungimea” mantisei);p – numarul de cifre ale exponentului.Un numar ın virgula mobila este o pereche (f, e), unde

f = ±0.f1f2 . . . ft, f1 6= 0, fi ∈ C

este un numar fractionar cu semn (plus sau minus), normalizat (i.e. f1 6= 0), cut cifre, denumit mantisa, iar

e = ±e1e2 . . . ep

este un ıntreg cu semn, cu p cifre, numit exponent. Valoarea reala asociata numaru-lui ın virgula mobila (f, e) este

x = f · βe.

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:

βL−1 = 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, deexemplu, β = 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.2510, M = 2(1− 2−2) = 1.510. Numerele reale care au o reprezentareexacta ın acest FVM sunt:

x1 = (−0.11,+1) = −1.510 x7 = (+0.10,−1) = 0.2510

x2 = (−0.10,+1) = −1.010 x8 = (+0.11,−1) = 0.37510

x3 = (−0.11, 0) = −0.7510 x9 = (+0.10, 0) = 0.510

x4 = (−0.10, 0) = −0.510 x10 = (+0.11, 0) = 0.7510

x5 = (−0.11,−1) = −0.37510 x11 = (+0.10,+1) = 1.010

x6 = (−0.10,−1) = −0.2510 x12 = (+0.11,+1) = 1.510

si vor fi folosite pentru reprezentarea (aproximativa) a tuturor numerelor reale dinintervalul [−1.5, 1.5]. Reprezentarea geometrica a tuturor acestor numere pe axareala este prezentata ın figura 0.1. Numerele cu reprezentare exacta ın virgulamobila sunt relativ uniform distribuite; mai precis, |xi−xi−1| / |xi| are aproximativaceleasi valori pentru orice i. ♦

Exemplul 0.4 Un FVM pe 32 biti poate fi urmatorul: (β, t, p) = (2, 24, 7). Doibiti sunt atribuiti reprezentarii semnelor mantisei si exponentului; deoarece primul

Page 19: metode de calcul numeric matriceal. algoritmi fundamentali

0.1. REPREZENTAREA IN VIRGULA MOBILA 5

1

x11

-x1 x2 x3 x4x5 x6 x7x8 x9 x10 x12

1.50.5-0.5-1-1.50

Fig. 0.1: Reprezentarea numerelor ın virgula mobila din exemplul 0.3

0 1 1 0 1 0 0 1

-exponent (7 biti)

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 biti)6

semn numar (mantisa)

-6

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 loculacestui bit, economisind astfel un bit al reprezentarii. Un exemplu de numar ınvirgula mobila ın acest format este prezentat ın figura 0.2.

Pentru acest FVM avem: L = −127, U = 127, m = 2−127 = (2−10)1323 ≈ 10−38,M ≈ 1038 (putem aproxima 210 ≈ 103). Aceasta arata ca FVM acopera un domeniularg de numere, utilizand un numar relativ mic de cifre binare. Acest exemplu estefoarte apropiat de formatul standard IEEE pentru numere ın virgula mobila ınsimpla 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 reprezintasemnul). Asadar numarul 0.1 este reprezentat aproximativ (vezi exemplul 0.2). ♦

Observatia 0.1 Definitia 0.1 nu permite reprezentarea exacta a numarului 0,acesta neputand avea o mantisa normalizata. Practic, pentru a reprezenta 0, precumsi unele simboluri speciale despre care se va vorbi mai tarziu, se folosesc valoridedicate ale exponentului, ın afara intervalului [L,U ]. De aceea, ın standardulIEEE pentru simpla precizie, L = −126. ♦

Pentru a estima erorile efectuate la reprezentarea unui numar real ın virgulamobila, 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 multime finita de numere rationale.Reprezentarea numarului real x ∈ [−M,M ] ın FVM ınseamna aproximarea lui

cu un numar x ∈ F . Aceasta aproximare poate fi exprimata printr-o functie derotunjire.

Definitia 0.2 Daca (β, t, p) este un FVM si F este multimea definita ın (0.3),atunci o functie

fl : [−M,M ]→ F

Page 20: metode de calcul numeric matriceal. algoritmi fundamentali

6 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

care asociaza fiecarui x ∈ [−M,M ] o unica reprezentare ın virgula mobila

x = fl(x)

este numita functie de rotunjire. Eroarea relativa de aproximare

|x− fl(x)||x|

definita pentru orice x ∈ [−M,M ] nenul este denumita eroare de reprezentare.

Deoarece intervalul [−M,M ] este o multime infinita de numere reale, fiecarex ∈ F constituie ”reprezentarea ın VM” a unei multimi infinite de numere din[−M,M ]; suntem interesati sa gasim o margine superioara a erorii de reprezentarepentru o functie de rotunjire data. Exista mai multe functii de rotunjire. O vomprezenta doar pe cea mai simpla, denumita rotunjire prin taiere. In acest scop, sascriem numarul x ∈ [−M,M ] ın forma (0.1) normalizata:

x = f · βe = ±0.f1f2 . . . ftft+1 . . . · βe =

= ±0.f1f2 . . . ft · βe ± 0.ft+1ft+2 . . . · βe−t =

= f · βe + g · βe−t,

unde fi ∈ C, f1 6= 0, f = ±0.f1f2 . . . ft, g = ±0.ft+1ft+2 . . .In mod evident:

1/β ≤ |f | < 1, 1/β ≤ |f | < 1, 0 ≤ |g| < 1. (0.4)

Functia de rotunjire prin taiere

fl1 : [−M,M ]→ F

este definita prin

x = fl1(x) =

f · βe, pentru x 6= 0,0, pentru x = 0.

Pe scurt, reprezentarea ın VM se obtine prin taierea cifrelor mantisei normalizate anumarului x care se afla ın afara formatului (de la pozitia t+ 1 ıncolo).

Utilizand inegalitatile (0.4), este usor de stabilit o margine superioara a eroriide reprezentare introduse de fl1. Intr-adevar, pentru orice x ∈ [−M,M ]\0 avem

ε =|x− fl1(x)||x| =

|fβe − fβe||f |βe

=|g|βe−t

|f |βe<β−t

β−1= β−t+1.

Aceasta formula arata ca, indiferent de valoarea numarului x, o margine pentrumarimea erorii de reprezentare este determinata exclusiv de numarul de cifre alemantisei (ın baza de numeratie a FVM) si acesta este motivul pentru care t estenumit precizia reprezentarii ın virgula mobila. Numarul β−t+1 este numit epsilonmasina si reprezinta distanta dintre 1 si urmatorul numar cu reprezentare ın FVM(vezi problema 0.5).

Page 21: metode de calcul numeric matriceal. algoritmi fundamentali

0.2. ARITMETICA IN VIRGULA MOBILA 7

Pe majoritatea calculatoarelor, numerele ın virgula mobila au o precizie fixata.Multe calculatoare au, de asemenea, posibilitatea de a manipula numere ın virgulamobila cu aproximativ 2t biti pentru mantisa; astfel de numere sunt numite ındubla precizie. De exemplu, ın standardul IEEE, numerele ın dubla precizie suntmemorate pe 64 biti, cu t = 53 si p = 10 (un bit suplimentar este dedicat memorariisemnului exponentului).

Pentru toate functiile de rotunjire folosite, marginea superioara a erorii de re-prezentare are forma

ε ≤ µ · β−t, (0.5)

unde µ este un numar de ordinul unitatii.Din (0.5) rezulta existenta 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 semnificative ale numarului real repre-

zentat. In baza de numeratie zecimala, numerele reprezentate ın simpla precizieconform standardului IEEE (t = 24) au 7 cifre semnificative (numaram 3 cifrezecimale pentru 10 cifre binare), iar cele ın dubla precizie (t = 53) au 16 cifre sem-nificative; ın consecinta, eroarea maxima de reprezentare este de aproximativ 10−7,respectiv 10−16 (anume chiar epsilon masina). O prezentare detaliata a standardu-lui IEEE poate fi gasita ın [?].

0.2 Aritmetica ın virgula mobila

Calculatoarele cu hardware dedicat operatiilor ın virgula mobila sunt prevazute cuun set de instructiuni pentru implementarea unor operatii cu numere ın virgulamobila ca, de exemplu, adunarea, scaderea, ınmultirea sau ımpartirea. Trebuie su-bliniat ca operatiile mentionate difera de cele matematice corespunzatoare deoarecerezultatul lor apartine ıntotdeauna multimii finite F a numerelor ın virgula mo-bila. Asadar operatiile aritmetice nu pot fi executate exact. Eroarea introdusa deoperatiile aritmetice ın virgula mobila se numeste eroare de rotunjire. Consecintelepot fi foarte importante; exista posibilitatea ca erorile de rotunjire sa se acumulezesi, ın calcule lungi, valorile finale sa fie afectate, chiar pana la a le face inutilizabile.De aceea este de dorit ca fiecare algoritm sa fie analizat pentru a vedea ın ce masuraerorile de rotunjire afecteaza rezultatele; ın general, aceasta este o sarcina dificila.

Exemplul 0.5 Consideram FVM cu (β, t, p) = (10, 3, 1). Adunand exact numerele1.23 si 20.5, amandoua reprezentabile exact ın FVM ales, se obtine 21.73. Rotunjitprin taiere, rezultatul ın VM este 21.7, deci diferit de cel exact. ♦

Analiza erorilor de rotunjire se bazeaza pe cunoasterea marginilor superioare aleerorilor ce apar ın operatiile ın virgula mobila. Pentru majoritatea calculatoareloreste valabil urmatorul model al erorilor asociate operatiilor ın virgula mobila, bazatpe evaluarea (0.6): notand cu fl(xy), fl(x/y) si fl(x+y) produsul, catul, respectivsuma calculate ale numerelor ın virgula mobila x si y, atunci, ıntr-un FVM cu t cifreavem

fl(x op y) = (x op y)(1 + ρ), |ρ| ≤ µβ−t, (0.7)

Page 22: metode de calcul numeric matriceal. algoritmi fundamentali

8 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

unde op poate fi +, · sau /, iar µ este un numar de ordinul unitatii.Modelul (0.7) este obtinut presupunand ca x op y este calculat exact, apoi rezul-

tatul este transformat ın FVM printr-o functie de rotunjire. In realitate, lucrurile nustau chiar asa; unitatile specializate pentru calculul ın VM nu obtin rezultatul exact,dar se comporta ca si cum l-ar obtine, lucrand pe baza unor algoritmi nebanali, acaror cunoastere nu este necesara pentru ıntelegerea algoritmilor din aceasta lucraresi a caror prezentare depaseste cadrul problematicii propuse.

In completarea relatiei (0.7), trebuie sa mentionam ca, atunci cand o operatieın virgula mobila produce un numar cu un modul prea mare (> M), apare eroareanumita de depasire superioara (overflow). Cand rezultatul este prea mic ın valoareabsoluta (< m, dar nenula), eroarea se numeste de depasire inferioara (underflow).Desigur, orice algoritm bine conceput trebuie sa specifice cum se procedeaza ıneventualitatea unor depasiri si, mai ales, sa ıncerce evitarea lor (vom explica ıncapitolul urmator tehnica folosita — scalarea). Depasirea inferioara nu constituiede regula o eroare grava, de aceea majoritatea calculatoarelor atribuie automatrezultatului valoarea zero. In cazul unei depasiri superioare, de obicei calculele suntoprite sau, cel putin, este afisat un mesaj de avertisment. In standardul IEEE pentruvirgula mobila, exista o valoare speciala, numita Inf (infinit), care este atribuitarezultatului ın cazul unei depasiri superioare; calculele continua cu aceasta valoare;rezultatele se obtin conform regulilor uzuale de lucru cu infinitati. O alta valoarespeciala – NaN (Not a Number) – este atribuita rezultatelor nedefinite, ca 0 · ∞,0/0, ∞/∞; o operatie implicand NaN are ıntotdeauna ca rezultat NaN.

Relatia (0.7) garanteaza ca o operatie aritmetica introduce erori relative mici,de ordinul β−t (adica al lui epsilon masina). O problema fundamentala a calcululuinumeric este evaluarea marimii erorii ce afecteaza rezultatul ın cazul unei secventede operatii.

Pentru a aborda problema, sa consideram doua exemple ın care apar erori nu-merice mari, dar din cauze esential diferite. Lucram ın FVM cu (β, t, p) = (10, 3, 1).Pentru a evita confuziile, vom nota cu ⊕, ⊖, ⊗ si ⊘ adunarea, scaderea, ınmultirea,respectiv ımpartirea ın VM; deci x+ y este suma exacta, iar x⊕ y = fl(x+ y) estesuma calculata ın VM.

Exemplul 0.6 In calculul radacinilor polinomului de gradul al doilea ax2 + bx+ c,cu a 6= 0, este necesar calculul expresiei b2 − 4ac. Considerand b = 3.34, a = 1.22,c = 2.28, avem b2− 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 semnificativeeronate, iar eroarea relativa aferenta este egala cu 1; totusi, pentru fiecare operatieın parte, eroarea relativa este mai mica decat 10−2. ♦

Exemplul 0.7 Daca polinomul de gradul II are radacini reale, acestea se calculeazade obicei utilizand formulele

x1 =−b−

√b2 − 4ac

2a, x2 =

−b+√b2 − 4ac

2a. (0.8)

Luand b = 10.1, a = 0.0123, c = 32.4, valoarea exacta rotunjita la 3 cifresemnificative a lui x2 este −3.22. Efectuand calculele ın formatul ales, obtinem∆ = b⊗ b⊖ 4⊗ a⊗ c = 100 (ın loc de 100.41, dar eroarea relativa e ınca de ordinul

Page 23: metode de calcul numeric matriceal. algoritmi fundamentali

0.2. ARITMETICA IN VIRGULA MOBILA 9

10−3); dar −b⊕ SQRT (∆) = −0.1, ın timp ce −b+√b2 − 4ac = −0.0792, eroarea

relativa fiind acum 0.26. Valoarea calculata a radacinii x2 este −4.06, ın timp cevaloarea exacta este −3.22; din nou toate cifrele semnificative ale rezultatului sunteronate. ♦

Se observa ca, ın ambele exemple, erorile mari apar dupa scaderea a doua numerede valori apropiate. Se produce o anulare catastrofala, adica o pierdere completa acifrelor semnificative ale rezultatului. In primul caz anularea trebuie pusa integralpe seama operatiei matematice de scadere; problema calculului b2 − 4ac este cauzaerorilor, si nu algoritmul de calcul. In schimb, ın al doilea caz, algoritmul de calculal radacinilor este de vina, deoarece nu evita scaderea a doua numere apropiate,desi aceasta este posibil, dupa cum vom vedea putin mai tarziu. Sa studiem ıntaimai amanuntit ce se ıntampla la scaderea a doua numere apropiate.

Exemplul 0.8 Consideram doua numere reale, x si y, de acelasi ordin de marime(cu x > y, pentru simplitate), ale caror prime k cifre coincid, cu urmatoarelereprezentari (exacte) ın baza β (d1 6= 0):

x = 0.d1d2 . . . dkdk+1 . . . dt1 · βe,y = 0.d1d2 . . . dkck+1 . . . ct0 · βe.

Rotunjind prin taiere, reprezentarile lor ıntr-un FVM cu (β, t, p) sunt

x = fl(x) = 0.d1d2 . . . dkdk+1 . . . dt · βe,y = fl(y) = 0.d1d2 . . . dkck+1 . . . ct · βe.

Diferenta lor, calculata ın VM, este

x⊖ y = 0.f1 . . . ft−k0 . . . 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.f1 . . . ft−k10 . . . 0 · β−k+e,

iar eroarea relativa asociata lui este∣∣∣∣

(x− y)− (x− y)x− y

∣∣∣∣≥ β−t+1+e

β−k+e= β−t−1+k.

In concluzie, observam ca operanzii scaderii sunt afectati de erori relative de repre-zentare de ordinul β−t−1, ın timp ce rezultatul ei are o eroare relativa de ordinulβ−t−1+k; atunci cand x si y au multe cifre semnificative identice, deci k aproape det, (si acelasi ordin de marime) eroarea asociata rezultatului scaderii poate deveniuriasa. ♦

Exemplul 0.8 arata ca adunarea (scaderea) nu introduce erori mari prin ea ınsasi,ci potenteaza — ın anumite cazuri — erorile operanzilor.

De aceea, scaderea numerelor apropiate trebuie evitata. Pentru aceasta, dacaeste posibil, algoritmul de calcul este cel care trebuie modificat.

Page 24: metode de calcul numeric matriceal. algoritmi fundamentali

10 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

Exemplul 0.9 Am constatat, ın exemplul 0.7, ca formulele (0.8) nu sunt celemai bune din punct de vedere numeric, mai ales cand b2 ≫ 4ac, si deci |b| ≈

√∆.

Pentru a evita scaderea unor numere apropiate, se pot folosi formulele

x1 =−b− sgn(b)

√b2 − 4ac

2a, x2 =

−2c

b+ sgn(b)√b2 − 4ac

. (0.9)

Utilizand ın (0.9) valorile numerice din exemplul 0.7, se obtine, ın FVM de lucru,un rezultat cu toate cifrele semnificative exacte. ♦

0.3 Conditionarea problemelor de calcul

Orice problema de calcul numeric impune obtinerea unor rezultate numerice, pornindde la date de intrare numerice, astfel ıncat rezultatele sa poata fi interpretate ca oaproximatie a solutiei unei probleme matematice pentru datele de intrare respec-tive. Pentru ca o astfel de problema sa fie bine definita, trebuie asigurate existenta siunicitatea solutiei. In acest caz, o problema de calcul numeric poate fi ıntotdeaunadescrisa ca evaluare a unei functii

f : D ⊂ Rn −→ R

m (0.10)

ıntr-un punct x ∈ D dat. Cele n componente ale argumentului constituie datelede intrare, iar cele m componente ale vectorului f(x) sunt rezultatele sau datele deiesire.

Desigur, aplicatia f este de cele mai multe ori definita implicit iar descoperireaunei cai prin care calculul valorii f(x) devine posibil echivaleaza cu rezolvarea,printr-un algoritm specific, a problemei de calcul considerate.

Exemplul 0.10 a) Fie D o multime de trei numere reale si

x =

abc

∈ D = x ∈ R3 | a 6= 0, b2 − 4ac ≥ 0 ⊂ R

3.

Rezolvarea ecuatiei de gradul II

ay2 + by + c = 0

este o problema numerica bine definita, deoarece pentru orice x ∈ D exista un unicvector

y = f(x) =

[y1y2

]

=

−b− sgn(b)√b2 − 4ac

2a

−2c

b+ sgn(b)√b2 − 4ac

∈ R

2,

care este solutia problemei.

b) Calculul integralei∫ b

a

e−t2dt,

Page 25: metode de calcul numeric matriceal. algoritmi fundamentali

0.3. CONDITIONAREA PROBLEMELOR DE CALCUL 11

unde a, b ∈ R sunt date (a 6= b), este de asemenea o problema numerica bine definita.

Intr-adevar, pentru datele de intrare x =

[ab

]

∈ D = R2, exista si este unica

valoarea integralei y ∈ R, desi integrala nedefinita∫

e−t2dt nu este exprimabilaprin functii elementare. ♦

Abaterea solutiei calculate fata de solutia exacta a unei probleme numerice poateavea doua surse esential diferite, legate de problema ın sine si, respectiv, de algorit-mul de calcul utilizat. De prima sursa de erori — numita conditionarea problemei— ne ocupam ın continuare, de cea de-a doua — stabilitatea algoritmului — ınparagraful urmator.

Conditionarea problemei caracterizeaza sensibilitatea solutiei ın raport cu pertur-batiile datelor de intrare. In practica este cunoscuta doar o aproximatie x a datelorde intrare x si, ın cel mai bun caz, presupunand ca toate calculele se efectueazaexact, putem calcula f(x) ın loc de f(x). Daca functia f definind problema noastraeste prea sensibila la variatii ale argumentului, f(x) si f(x) pot diferi semnificativchiar ın cazul unei erori relative mici ‖x− x‖ / ‖x‖ a datelor de intrare (‖ · ‖ este onorma adecvata). O astfel de problema este numita rau conditionata.

Daca ıncercam rezolvarea unei probleme rau conditionate pornind de la dateinexacte, atunci solutia obtinuta va fi ınsotita de erori mari indiferent de felul ıncare este calculata !

Definitia 0.3 Conditionarea numerica sau sensibilitatea locala a unei problemef : D ⊂ Rn → Rm ıntr-un punct x ∈ D este exprimata de amplificarea erorii rel-ative

κ(x) =‖f(x)− f(x)‖‖f(x)‖

‖x‖‖x− x‖ , (0.11)

pentru x 6= 0 si f(x) 6= 0. Cand κ(x) este mic (de ordinul unitatii, de exemplu)problema este numita bine conditionata ın punctul x. Altfel, problema este rauconditionata.

Observatia 0.2 Daca f este Lipschitz continua, i.e. exista L astfel ıncat

‖f(x)− f(y)‖ ≤ L‖x− y‖,

atunci

κ(x) ≤ L ‖x‖‖f(x)‖ ,

iar daca f este de clasa C1 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 conditionarea este o proprietate locala. De obicei, totusi, oproblema este numita bine conditionata daca este bine conditionata ın orice punctx ∈ D; de asemenea, este numita rau conditionata, daca exista puncte x ∈ D ıncare este rau conditionata.

Exemplul 0.11 Problema calculului sumei a doua numere x, y ∈ R poate fibine sau rau conditionata functie de valorile lui x si y (datele de intrare). (Aici

Page 26: metode de calcul numeric matriceal. algoritmi fundamentali

12 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

f(x, y) = x + y, f : R2 −→ R; convenim sa scriem si f(x, y) ın loc de f(

[xy

]

),

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+ εxx, cu |εx| ≤ γ ≪ 1,y = y + εyy, cu |εy| ≤ γ.

Eroarea relativa asociata sumei este (calculul sumei se face exact)

ε =|x+ εxx+ y + εyy − (x+ y)|

|x+ y| =|εxx+ εyy||x+ y| . (0.12)

Daca x si y au acelasi semn, atunci

ε ≤ |εxx|+ |εyy||x|+ |y| ≤ γ

si suma este afectata de o eroare de acelasi ordin de marime ca si operanzii; ın acestcaz, adunarea este bine conditionata.

Daca x si y au semne diferite, este posibil (atunci cand εx si εy au si ele semnediferite) 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 conditionata. Exemplele 0.6, 0.7, 0.8 ilustreazaaceasta situatie. Pentru a vedea cate subtilitati ascunde calculul aparent simplu alunei sume, cititorul este invitat sa consulte [?]. ♦

0.4 Stabilitatea numerica a algoritmilor

Pentru a rezolva o problema de calcul numeric definita de functia (0.10), un calcu-lator executa o secventa (finita) bine precizata de operatii denumita algoritm. Ingeneral exista mai multi algoritmi pentru rezolvarea unei probleme. Un algoritmf pentru problema f produce un raspuns unic determinat pentru date de intrarefixate si deci poate fi exprimat matematic printr-o functie

f : D ∩ F ⊂ Rn −→ R

m.

Deoarece executia unui algoritm se face folosind numere ın FVM si calculele suntınsotite de erori, este clar ca f(x) este de regula diferit de f(x). De asemenea, nu ne

putem astepta ca algoritmul f sa calculeze solutia unei probleme rau conditionatemai precis decat o garanteaza datele de intrare. Totusi, e de dorit ca f sa nu in-troduca erori exagerat de mari. Notiunea de stabilitate numerica exprima marimeaerorilor numerice introduse de un algoritm, ın ipoteza ca datele initiale sunt exacte.

Page 27: metode de calcul numeric matriceal. algoritmi fundamentali

0.4. STABILITATEA NUMERICA A ALGORITMILOR 13

rr6?

r@@@@@@R r@@

@@@@I

f

f

f

x

x

f(x)

f(x) = f(x)

Date de iesireDate de intrare

Eroare ”ınainte”Eroare ”ınapoi”

Fig. 0.3: Erori ınainte si ınapoi

Definitia 0.4 Un algoritm f , destinat rezolvarii problemei f , este numeric stabildaca una dintre urmatoarele doua conditii alternative este ındeplinita:

i) f(x) este aproape de f(x) pentru orice intrare x, adica solutia calculata aproxi-meaza bine solutia exacta.

ii) pentru orice intrare x, exista un x ∈ D apropiat de x astfel ıncat f(x) sa fie

egal cu f(x), adica solutia calculata de algoritmul f cu date de intrare exacte esteegala cu solutia exacta pentru niste date de intrare usor perturbate.

Altfel, algoritmul este numeric instabil.

Cele doua conditii sunt similare, doar ca prima se formuleaza ın spatiul datelorde iesire, iar a doua ın spatiul datelor de intrare, dupa cum se poate remarcaın figura 0.3; ın mod plastic, eroarea (absoluta) f(x) − f(x) este numita eroare”ınainte”, deoarece corespunde sensului de calcul al algoritmului, iar x − x eroare”ınapoi”, deoarece gasirea unui x care sa satisfaca ii) ınseamna ıntoarcerea ınspatiul datelor de intrare, ulterior aplicarii algoritmului. Analiza stabilitatii nu-merice a unui algoritm ınseamna cuantificarea erorilor din definitia 0.4; evaluarea‖f(x)−f(x)‖ este caracteristica analizei ınainte (directe); evaluarea ‖x−x‖ definesteanaliza ınapoi (inversa).

Notiunea vaga ”aproape” se poate reexprima prin cea de eroare relativa mica(notiune destul de vaga si ea); ın calculul numeric se folosesc deseori astfel deexprimari. In mod sigur, o eroare relativa de ordinul erorii de rotunjire (introdusede (0.7)) caracterizeaza un algoritm numeric stabil 1: solutia este calculata cuprecizia intrinseca a FVM utilizat.

Este usor de aratat ca utilizarea unui algoritm stabil la rezolvarea unei problemebine conditionate conduce la un rezultat de ınalta acuratete 2.

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

‖x− x‖‖x‖ ≤ µβ−t

1In continuare, vom spune ”algoritm stabil” ın loc de ”algoritm numeric stabil”.2Atragem atentia asupra sensurilor diferite pe care le au ın calculul numeric termenii precizie si

acuratete, aproape sinonimi ın limbajul uzual. Precizia se refera la numarul de cifre semnificativedin FVM, iar acuratetea la marimea erorii dintre rezultatul calculat numeric si cel exact.

Page 28: metode de calcul numeric matriceal. algoritmi fundamentali

14 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

sif(x) = f(x). (0.13)

Problema fiind bine conditionata, din (0.11) rezulta ca

‖f(x)− f(x)‖‖f(x)‖ = κ

‖x− x‖‖x‖ ≤ κµβ−t, (0.14)

unde κ si µ sunt de ordinul unitatii. Deci, din (0.13) si (0.14),

‖f(x)− f(x)‖‖f(x)‖ ≤ κµβ−t,

adica un algoritm stabil nu introduce erori suplimentare semnificative ın rezolvareaunei probleme bine conditionate.

In mod similar, se poate observa ca, ın alte situatii (de exemplu pentru problemerau conditionate sau pentru algoritmi instabili), marimea erorii asociate rezulta-tului nu poate fi apreciata. Cand un algoritm stabil este folosit pentru a rezolvao problema rau conditionata, nu exista nici o garantie ca f(x) si f(x) au valori

apropiate si, desi f(x) este (aproximativ) egal cu f(x), diferenta dintre f(x) si f(x)poate fi semnificativa. Cand un algoritm instabil este folosit pentru rezolvarea uneiprobleme bine conditionate, solutia calculata f(x) pentru date exacte de intrareeste solutie exacta a problemei cu x departe de x, si tot asa este f(x) de f(x). Insfarsit, nu e nici o speranta de a obtine erori mici atunci cand un algoritm instabileste utilizat pentru o problema rau conditionata.

Exemplul 0.12 Revenim la problema calculului sumei, f : R2 −→ R,f(x, y) = x+ y. Problema poate fi bine sau rau conditionata ın functie de datelede intrare (vezi exemplul 0.11).

”Algoritmul” de calcul al sumei ın virgula mobila f : R2 −→ R este

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

unde fl este o functie de rotunjire care respecta relatia (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 usorperturbati, si deci algoritmul de sumare este stabil. ♦

Exemplul 0.13 Sa analizam acum algoritmul de calcul al marimiif(a, b, c) = b2 − 4ac. Presupunem ca a, b, c sunt numere ın FVM. In conformitatecu (0.7) avem

f(a, b, c) = b⊗ b⊖ 4⊗ a⊗ c = [b2(1 + ρ1)− 4ac(1 + ρ2)](1 + ρ3),

cu |ρ1|, |ρ2|, |ρ3| de ordinul β−t; am presupus ca 4⊗ a se calculeaza fara erori, ceeace e adevarat ın baza 2, dar nu si ın baza 10.

Page 29: metode de calcul numeric matriceal. algoritmi fundamentali

0.5. CALITATILE UNUI ALGORITM NUMERIC 15

Definind

a = a(1 + ρ2), b = b√

(1 + ρ1)(1 + ρ3), c = c(1 + ρ3),

constatam ca

f(a, b, c) = b2 − 4ac,

si a, b, c sunt aproape de a, b, respectiv c (ın sensul |a− a|/|a| de ordinul β−t etc.).Conditia ii) a definitiei 0.4 este ındeplinita, deci algoritmul este stabil. ♦

Exemplul de mai sus este o ilustrare foarte simpla a analizei inverse a erorilorde rotunjire ale unui algoritm. In aceasta tehnica se utilizeaza limitele (0.7) aleerorilor introduse de operatiile ın virgula mobila pentru a demonstra ca solutiacalculata a unei probleme este solutia exacta a problemei cu date de intrare usorperturbate. O astfel de demonstratie garanteaza ca algoritmul este numeric stabil si,pentru probleme bine conditionate, sunt asigurate erori relative mici ale rezultatelorcalculate.

Pentru probleme nebanale, a arata ca un anume algoritm este stabil poate fio sarcina dificila. Exista foarte putini algoritmi pentru care exista o demonstratiecompleta a stabilitatii numerice. Totusi, multi algoritmi importanti au fost validatiın practica printr-o experienta de zeci de ani. Cum spunea Wilkinson: ”scopulprincipal al analizei erorilor nu este de a stabili margini precise, ci de a evidentiainstabilitatile potentiale ale unui algoritm, daca ele exista, si, prin aceasta, de a gasio cale de ımbunatatire a algoritmului” [IV].

In aceasta lucrare vom fi interesati mai mult de prezentarea celor mai buni algo-ritmi care rezolva o problema, si mai putin de demonstrarea — aproape ıntotdeaunaextrem de ”tehnica” — a stabilitatii lor numerice.

0.5 Calitatile unui algoritm numeric

Pentru a ıncheia acest capitol, sa precizam criteriile dupa care se apreciaza calitateaunui algoritm numeric.

• Numarul de operatii. Timpul de executie al unui program — pe un calculatorprecizat — este o caracteristica de prim ordin a acestuia. De regula, un program seexecuta de mai multe ori, pentru a rezolva o anume problema pentru diverse datede intrare; timpul de executie permite aprecierea numarului de solutii care se potobtine ıntr-un anumit timp, de obicei impus.

Desigur, este de dorit a estima timpul de executie al unui program ınainte decrearea sa efectiva, numai pe baza algoritmului implementat de program. O bunamasura este numarul de operatii aritmetice efectuate; ın algoritmii numerici eleconstituie de obicei partea majoritara a operatiilor, cele cu ıntregi sau logice avando pondere mica, atat ca numar, cat si ca durata de executie.

Numim flop o operatie aritmetica elementara (adunare, scadere, ınmultire, ım-partire). Numarul de operatii al unui algoritm este numarul de flopi necesariobtinerii rezultatului. Trebuie precizat ca desi numarul de operatii poate indicadoar cu aproximatie timpul de executie pe un calculator dat, ın schimb este o foartebuna masura pentru compararea a doi algoritmi.

Page 30: metode de calcul numeric matriceal. algoritmi fundamentali

16 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

De regula, numarul de operatii Nop al unui algoritm e functie de dimensiuneaproblemei care, de multe ori, poate fi apreciata prin numarul datelor de intrare,Nop = f(n). In calculul numeric, de obicei f este un polinom (de grad mic),f(n) = a0n

k + a1nk−1 + . . .+ ak. Pentru ca f poate avea o expresie complicata, se

pastreaza doar termenul cel mai semnificativ si se scrie Nop ≈ a0nk. O astfel de

aproximare este cu atat mai buna cu cat n este mai mare. Pentru aprecieri purcalitative, vom omite a0 si vom scrie3 Nop = O(nk).

• Memoria ocupata. Pentru executia unui algoritm (program) este necesaramemorarea datelor de intrare, rezultatelor, precum si a altor valori intermediare.Numarul de elemente ın FVM necesare ın acest scop se numeste memoria ocupatade algoritm.

In majoritatea cazurilor, datele de intrare nu mai sunt necesare la terminarea al-goritmului. Spatiul de memorie ocupat de ele poate fi utilizat pe parcursul executieialgoritmului pentru a memora rezultate partiale si/sau finale. In acest caz se spuneca efectuam calculele pe loc.

• Stabilitatea numerica, discutata ın paragraful anterior, arata acuratetea rezul-tatelor obtinute de algoritmul numeric (ın ipoteza ca datele initiale sunt exacte).

Aceste trei criterii trebuie corelate cu viteza calculatorului, memoria disponibila,numarul de cifre semnificative al FVM utilizat.

Desigur, nu trebuie uitata nici un moment conditionarea problemei, care influen-teaza si ea acuratetea rezultatului. Intereseaza ın special performantele algoritmuluipentru probleme rau conditionate, adica atunci cand erorile datelor de intrare suntmult amplificate. In orice caz, calculul solutiei e bine a fi ınsotit de determinarea(sau estimarea) conditionarii problemei, adica de calculul unei cantitati de tip (0.11).Putem adauga astfel un al patrulea criteriu de apreciere a unui algoritm:

• Siguranta ın functionare – capacitatea de a semnala situatiile ın care rezultatulpoate fi afectat de erori importante datorate relei conditionari a problemei. Deciziade a utiliza sau nu un astfel de rezultat revine utilizatorului sau unui programexpert.

0.6 Implicatiile arhitecturii calculatoarelor asupra

organizarii algoritmilor

In consideratiile din sectiunea precedenta am presupus calculatorul pe care se vorimplementa algoritmii ca avand arhitectura clasica von Neumann, schitata ın figura0.4a; pe un astfel de calculator, ın principiu, pentru fiecare operatie aritmeticase aduc operanzii din memoria M ın unitatea centrala UC, se executa operatia sirezultatul este depus ınapoi ın M. Cu acest mod de operare, timpul de executiee dictat esentialmente de numarul de operatii ın virgula mobila, durata traficuluiıntre M si UC fiind proportionala cu numarul de flopi.

In ultimele doua decenii au aparut numeroase tipuri de arhitecturi pe care timpulde executie a unui algoritm nu mai este proportional cu numarul de operatii ın

3Se scrie f(n) = O(g(n)) daca exista doua constante c1, c2 astfel ıncat c1g(n) ≤ f(n) ≤ c2g(n).

Page 31: metode de calcul numeric matriceal. algoritmi fundamentali

0.6. IMPLICATIILE ARHITECTURII CALCULATOARELOR 17

UC

M

?

6

UCS UCV

M

?

6

MR

UC

(a) (b) (c)

MP

?6

?6

Fig. 0.4: Arhitecturi de calculatoare: (a) von Neumann; (b) vectoriala; (c) cumemorie ierarhica

virgula mobila. Vom exemplifica ın continuare cu doua arhitecturi larg raspandite,ın special ın gama calculatoarelor de mare performanta.

Calculatoarele vectoriale au doua (tipuri de) unitati de calcul, ca ın figura0.4b. Una dintre unitati – UCS – este obisnuita; ea executa operatii scalare, adicaoperatiile aritmetice uzuale. Cealalta – UCV – este dedicata operatiilor vectoriale,adica unor operatii aritmetice de acelasi tip repetate pentru mai multe perechi dedate; de exemplu, adunarea a n perechi de numere, xi + yi, i ∈ 1 : n. Daca pe uncalculator von Neumann nu e nici o diferenta de viteza ıntre astfel de operatii, pecalculatoarele vectoriale se executa mult mai rapid operatiile vectoriale; explicatia erelativ simpla: UCV e astfel construita ıncat datele o parcurg ca pe o banda rulantacu mai multe posturi de lucru, fiecare pereche de date suferind la un moment dato alta operatie intermediara (daca sunt p posturi de lucru, timpul de producere aunui rezultat este de aproximativ p ori mai mic). La aceasta se adauga si un mod decomunicatie sofisticat ıntre M si UCV, astfel ıncat UCV sa poata fi ın permanentaalimentata cu date. In schimb, UCS prelucreaza doar o pereche de date la un mo-ment dat. Deci, un algoritm eficient pe un calculator vectorial va contine mai alesoperatii de tip vectorial.

Calculatoarele cu memorie ierarhica au structura sugerata ın figura 0.4c. Prin-cipala noutate a acestei arhitecturi este organizarea memoriei pe cel putin douaniveluri. Timpul de acces la memorie creste odata cu distanta dintre unitatea cen-trala si memoria respectiva; memoria rapida (MR) are un timp de acces sensibilmai 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 amemoriei principale (totusi, ın mod natural, o memorie mai mica este mai rapida).

Transferurile ıntre UC si MR dureaza putin ın comparatie cu timpul de executieal unei operatii ın virgula mobila; ın schimb, transferurile ıntre MR si MP dureazamai mult. De aceea, un algoritm eficient pe un calculator cu memorie ierarhica areun numar cat mai mic de transferuri implicand MP, acesta fiind criteriul principal de

Page 32: metode de calcul numeric matriceal. algoritmi fundamentali

18 CAPITOLUL 0. CONCEPTE FUNDAMENTALE

apreciere, si nu numarul de operatii. Caracteristica tipica a unui astfel de algoritmeste organizarea calculelor la nivel de bloc de matrice, operandu-se intensiv cu dateaflate ıntr-o aceeasi zona de memorie, suficient 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 fi ineficienta. Vom sugera,ın capitolele urmatoare, metode de crestere a eficientei algoritmilor pe calculatoarevectoriale si cu memorie ierarhica. De obicei, este necesara doar o reorganizarea calculelor; alteori, ınsa, algoritmi noi se dovedesc mult mai eficienti pe acestearhitecturi.

O alta clasa de arhitecturi de mare performanta cuprinde calculatoarele para-lele. Acestea au mai multe procesoare identice care pot lucra independent si carecoopereaza printr-un mediu de comunicatie (legaturi directe sau memorie comuna).Algoritmii eficienti pe arhitecturi paralele au multe caracteristici ce ıi diferentiazanet de cei secventiali; tratarea lor impune instrumente specifice, de aceea nu ıi vomaborda ın prezenta lucrare, ci ın una urmatoare, dedicata numai lor. Pentru ointroducere ı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. Saconsideram numerele x1 = 0.001, x2 = 1, x3 = −1, reprezentate ıntr-un FVM cu β = 10,t = 3. Cat de mare este eroarea relativa atunci cand se calculeaza y = x1 + x2 + x3 ?

P 0.2 Gasiti o limita a erorii relative pentru calculul ın virgula mobila al sumeiy = x1 + x2 + x3; presupuneti ca x1, x2, x3 sunt numere ın virgula mobila.

P 0.3 Sa consideram problema calculului solutiei ecuatiei liniare ax + b = 0, cu a, b ∈ R,a 6= 0. Pentru ce valori ale datelor de intrare a, b este aceasta problema rau conditionata ?”Algoritmul” pentru calculul solutiei este x = −b/a; este acest algoritm numeric stabil ?

P 0.4 Aceeasi ıntrebare pentru ecuatia (a1 +a2)x+(b1 +b2) = 0, ın care datele de intraresunt a1, a2, b1, b2 ∈ R.

P 0.5 Se considera un FVM definit de (β, t, p). Care este distanta ıntre 1 si cel maiapropiat numar reprezentabil ın virgula mobila, mai mare ca 1 ?

P 0.6 Gasiti limita (superioara) a erorii relative a functiei de rotunjire care asociazafiecarui x ∈ [−M, M ] cel mai apropiat numar ın virgula mobila.

P 0.7 Ce formula recomandati pentru calculul ın virgula mobila: x2−y2 sau (x−y)(x+y) ?(Se presupune ca x si y sunt numere ın FVM.)

Page 33: metode de calcul numeric matriceal. algoritmi fundamentali

Capitolul 1

Algoritmi elementari de

calcul numeric

Acest capitol este dedicat prezentarii notiunilor matematice aflate la baza dez-voltarilor ulterioare, formularii problemelor de calcul pe care le vom rezolva, ındiverse variante, pe ıntreg parcursul lucrarii, precum si descrierii unor primi algo-ritmi numiti ad-hoc elementari, unii folositi ca unelte mai tarziu, altii deja rezolvandprobleme sau cazuri particulare ale unor probleme semnificative.

Notiunile matematice apartin ın mare majoritate algebrei liniare. Am ıncercato prezentare de sine statatoare, dar, desigur, cunostintele anterioare ale cititoruluisunt binevenite.

Fiecare sectiune a capitolului are doua parti: prima, cu nuanta teoretica, deparcurgere a unor definitii si proprietati fundamentale; a doua, de ”aspecte algo-ritmice”, ın care sunt prezentati si analizati algoritmi simpli, moduri de memorarea datelor, artificii numerice etc. Subtitlurile acestor din urma parti vor ıncepe cusigla AA.

Principalii algoritmi prezentati rezolva urmatoarele probleme: produsul ma-triceal (cu diversele lui cazuri particulare: produsul scalar, produsul exterior, pro-dusul matrice-vector), calculul normelor vectoriale si matriceale, rezolvarea sis-temelor liniare triunghiulare si calculul valorilor si vectorilor proprii ai matricelortriunghiulare. Sunt prezentate modalitatile prin care se maresc performantele algo-ritmilor pe diverse arhitecturi de calculatoare. Capitolul se ıncheie cu prezentarearutinelor BLAS, extrem de utilizate ın calculul numeric.

1.1 Vectori. Spatiul vectorial Rn

In aceasta lucrare vom utiliza de regula entitati (vectori si matrice) construite cunumere reale; majoritatea definitiilor si proprietatilor sunt valabile si pentru numerecomplexe; vom face diferentierile necesare atunci cand va fi cazul. Un numar realα ∈ R va fi numit si scalar; scalarii vor fi notati de obicei cu litere grecesti mici.

19

Page 34: metode de calcul numeric matriceal. algoritmi fundamentali

20 CAPITOLUL 1. ALGORITMI ELEMENTARI

6

-1

+

x

x1

x2

x3

(a)

6

-

+

6

-+

1

1

1e1

e3

e2

(b)

Fig. 1.1: (a) Un vector ın R3 si coordonatele sale; (b) vectorii unitate ın R3

Vectori. Un vector real x de dimensiune n este o colectie de n numere realedispuse ordonat ıntr-o coloana

x =

x1

x2

...xn

, (1.1)

numerele xi fiind 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 pozitiei. Pentru economie de spatiu tipografic, vom nota deseorix = [x1 . . . xn]T , unde xT = [x1 . . . xn] este vectorul linie cu aceleasi elemente caın (1.1), iar indicele superior T denota operatia de transpunere.

Multimea tuturor vectorilor de dimensiune n va fi notata cu Rn si va fi asimi-lata cu spatiul real n-dimensional. In consecinta, din punct de vedere geometric, unvector reprezinta segmentul orientat care uneste originea spatiului real cu n dimen-siuni cu punctul de coordonate (x1, . . . , xn), sau chiar numai acest din urma punct.Vectorul cu toate componentele nule va fi notat cu 0, dimensiunea sa reiesind dincontext; geometric, acesta este originea spatiului n-dimensional. Pentru o mai bunaıntelegere, vom ilustra unele concepte ın R2 sau R3; figura 1.1a prezinta un vectorsi semnificatia (de coordonate) a elementelor sale.

Vectorii din Rn care au un element egal cu 1 si celelalte nule se numesc vectoriunitate; ei vor fi notati

ei = [0 . . . 0︸ ︷︷ ︸

i−1

1 0 . . . 0︸ ︷︷ ︸

n−i

]T ,

indicele aratand pozitia valorii 1. Spre exemplu, vectorii unitate din R3 sunt

prezentati ın figura 1.1b.Doi vectori sunt egali cand toate componentele lor de acelasi indice sunt egale;

deci, daca x, y ∈ Rn, atunci x = y cand xi = yi, ∀i ∈ 1 : n.

Page 35: metode de calcul numeric matriceal. algoritmi fundamentali

1.1. VECTORI. SPATIUL VECTORIAL RN 21

-

:

x

yx+ y

- -x αx

(a) (b)

Fig. 1.2: (a) Suma a doi vectori ın R2; (b) Produsul cu un scalar

Introducem acum operatiile elementare cu vectori.Suma a doi vectori x, y ∈ Rn este vectorul z ∈ Rn definit prin zi = xi + yi,

i ∈ 1 : n; asadar, suma se face pe componente. In acest fel sunt mostenite toateproprietatile 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 −xi, i = 1 : n

(x+ (−x) = 0).Astfel, Rn ımpreuna cu operatia de adunare formeaza un grup comutativ.Produsul unui vector x ∈ Rn cu un scalar α ∈ R este vectorul y = αx ∈ Rn

definit de yi = αxi, i ∈ 1 : n; deci, produsul se face multiplicand cu α fiecarecomponenta a vectorului x. Produsul cu un scalar este o operatie externa pe Rn.

Semnificatiile geometrice ale celor doua operatii sunt prezentate ın figura 1.2;adunarea se face dupa regula paralelogramului, iar produsul cu un scalar modificadoar lungimea vectorului, pastrandu-i directia.

Multimea Rn ımpreuna cu operatiile de adunare si produs cu un scalar arestructura de spatiu vectorial, adica, ın afara structurii de grup comutativ fata deadunare, mai sunt satisfacute urmatoarele proprietati ale produsului cu un scalar:

1. 1 · x = x;2. α(βx) = (αβ)x;3. (α+ β)x = αx+ βx;4. α(x + y) = αx + αy.

Combinatie liniara. Fie X ⊂ Rn o multime avand ca elemente vectorii 1

x1, x2, . . . , xp. Vectorul

ydef= α1x1 + α2x2 + . . .+ αpxp =

p∑

i=1

αixi (1.2)

se numeste combinatie liniara a vectorilor din X cu coeficientii α1, α2, . . . , αp ∈ R.Daca toti coeficientii sunt nuli, combinatia se numeste triviala.

Vectorii din X sunt liniar independenti daca nu exista o combinatie liniara netri-viala a elementelor lui X care sa fie nula. Daca o astfel de combinatie exista, vectoriidin X sunt numiti liniar dependenti.

1Se observa ca acum xi este un vector si nu un element de vector; asadar, folosim indicii sipentru a numerota vectorii dintr-o multime.

Page 36: metode de calcul numeric matriceal. algoritmi fundamentali

22 CAPITOLUL 1. ALGORITMI ELEMENTARI

Daca vectorii sunt liniar dependenti, atunci cel putin unul dintre ei se poateexprima printr-o combinatie liniara a celorlalti; i.e., daca

∑pi=1 αixi = 0, atunci

exista αj 6= 0, si deci xj = −∑pi=1,i6=j(αi/αj)xi.

Evident, ıntr-o multime de vectori independenti, nici unul dintre ei nu se poateexprima printr-o combinatie liniara a celorlalti. De exemplu, vectorii unitatee1, . . . , en sunt liniar independenti. Daca X ⊂ Rn este o multime de vectoriliniar independenti si y =

∑pi=1 αixi ∈ Rn este o combinatie liniara a acestora,

atunci coeficientii combinatiei liniare sunt unici (demonstrati).

Subspatiu liniar. O multime S de vectori din Rn este numita subspatiu liniar

al spatiului Rn daca sunt ındeplinite urmatoarele doua conditii:

1. x+ y ∈ S, ∀x, y ∈ S;

2. αx ∈ S, ∀α ∈ R, ∀x ∈ S.

Asadar, orice combinatie liniara a unor vectori din S apartine tot lui S; altfel spus,S e invariant la combinatii liniare. Evident, orice subspatiu liniar contine vectorulnul (originea).

Fie X ⊂ Rn o multime de vectori si S multimea tuturor combinatiilor liniare alevectorilor din X . Atunci S e un subspatiu liniar, numit subspatiul generat de X . Deexemplu, ın R3 doi vectori genereaza de regula un plan; daca vectorii sunt coliniari(adica exista scalarul α a.ı. y = αx), atunci subspatiul generat este o dreapta.

Fie S ⊂ Rn un subspatiu; o multime de vectori B ⊂ S este baza a subspatiuluiS daca:

1. elementele lui B sunt liniar independente;

2. S e generat de B.

Asadar o baza contine numarul minim de vectori cu ajutorul carora se poate generasubspatiul.

Daca B = b1, . . . , bm, atunci ∀x ∈ S se scrie ın mod unic ın forma uneicombinatii liniare a vectorilor din baza, x =

∑mi=1 αibi. Numerele αi se numesc

componentele sau coordonatele, vectorului x ın raport cu baza B.De exemplu, e1, . . . , en formeaza o baza pentru Rn, numita si baza canonica;

componentele vectorului x, ın sensul definitiei (1.1), sunt componentele ın raportcu aceasta baza, deoarece evident x =

∑ni=1 xiei.

Un subspatiu are o infinitate de baze, dar toate au acelasi numar de elemente.Evident, un vector x 6= 0 are coordonate diferite ın raport cu aceste baze.

Dimensiunea unui subspatiu, notata dimS, este numarul vectorilor din baza,adica numarul maxim de vectori din S liniari independenti sau, cum am mentionatdeja, numarul minim de vectori care genereaza S.

De exemplu, Rn are dimensiunea n, numarul de vectori din baza canonica; unplan ın R

3 are dimensiunea 2.Doua subspatii S, T ⊂ Rn se numesc complementare daca

1. S ∩ T = 0.

2. Rn este generat de S ∪ T .

Page 37: metode de calcul numeric matriceal. algoritmi fundamentali

1.1. VECTORI. SPATIUL VECTORIAL RN 23

CCCCCCCCCC

CCCCCCCCCC

ST

-

6

+

Fig. 1.3: Subspatii complementare ın R3: un plan S si o dreapta T

In acest caz vom utiliza notatia Rn = S⊕T . Fiecare dintre cele doua subspatii estenumit complementul celuilalt. Orice vector x ∈ Rn se poate exprima ın mod unicprin x = s + t, cu s ∈ S, t ∈ T . De asemenea, dimS + dim T = n. De exemplu,ın figura 1.3 sunt reprezentate un plan si o dreapta ın R

3, care constituie imaginilegeometrice a doua subspatii complementare.

Sa observam ca subspatiul complementar al unui subspatiu nu este, ın general,unic. In exemplul din figura 1.3, orice dreapta care nu apartine planului este com-plementara acestuia.

Spatiul vectorial complex Cn se defineste analog cu spatiul Rn si are aceleasiproprietati, deoarece proprietatile corpului numerelor reale folosite mai sus suntidentice cu cele ale corpului numerelor complexe.

Desigur, orice vector x ∈ Cn se poate scrie ın forma x = u + iv, cu u, v ∈ Rn sii unitatea imaginara.

AA. Saxpy. Vom descrie acum ın termeni algoritmici o operatie fundamentalacu vectori, anume y ← αx + y, cu x, y ∈ Rn, α ∈ R, operatie numita Saxpy2.Notatia ←, citita ”ia valoarea”, are semnificatia de atribuire. Cu alte cuvinte,ıntr-un program ce realizeaza operatia si ın care vectorii x si y reprezinta variabile,vectorul calculat αx + y este depus ın variabila y, suprascriind valoarea initiala aacesteia. Vom introduce direct si alte conventii de scriere a algoritmilor, cu premizaca cititorul are notiuni elementare despre limbajele de programare de nivel ınalt.

Algoritmul 1.1 (Saxpy) (Se dau x, y ∈ Rn. Se calculeazay ← αx + y ∈ Rn.)

1. Pentru i = 1 : n1. yi ← yi + αxi

2Notatia provine din initialele variabilelor folosite: αx Plus y; ın BLAS, initiala S semnificafaptul ca calculele se efectueaza ın Simpla precizie; ea este atasata ın mod traditional numeluioperatiei.

Page 38: metode de calcul numeric matriceal. algoritmi fundamentali

24 CAPITOLUL 1. ALGORITMI ELEMENTARI

Comentarii. Instructiunea Pentru i = 1 : n ınseamna repetarea executiei, pentrutoate valorile indicate ale indicelui i, a instructiunilor ce ıi urmeaza (pana la primainstructiune aflata la acelasi nivel cu Pentru). Instructiunile sunt referite prinsecvente de numere cuprinzand (de la dreapta spre stanga) numarul din algoritm alinstructiunii respective si numerele instructiunilor carora le este subordonata (de lacea mai apropiata la cea mai departata). In algoritmul Saxpy, prima instructiuneeste 1, a doua 1.1.

Contorizand operatiile executate de algoritmul 1.1, constatam ca fiecare executiea instructiunii 1.1 necesita 2 flopi (o ınmultire si o adunare), deci, ın total, suntnecesari Nop = 2n flopi.

In continuare, Saxpy va fi privita ca operatie elementara si va fi apelata prinSaxpy(α, x, y); ea face parte din grupul operatiilor de nivel 1, ımpreuna cu alteoperatii, dintre care unele vor fi prezentate ulterior3.

Asa cum este normal, Saxpy si celelalte operatii de nivel 1 sunt executatemai eficient pe calculatoare vectoriale. De aceea, pe astfel de calculatoare, existatendinta de a scrie toti algoritmii ın termeni de operatii de nivel 1 si nu prin operatiiaritmetice elementare. ♦

1.2 Produs scalar. Norme. Ortogonalitate

Produsul scalar este o functie f : Rn × Rn −→ R cu proprietatile: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 Rn, cel pe care ıl vom utiliza de obicei, se defineste

prin f(x, y)not= yTx, unde yTx

def=∑n

i=1 xiyi. Invitam cititorul sa verifice satisface-rea celor patru proprietati ale produsului scalar.

Spatiul Rn ımpreuna cu produsul scalar uzual este un spatiu euclidian (ın el estevalabila o geometrie similara cu cea din R

2 si R3, cunoscuta din liceu).

Norme. Prin norma se asociaza unui vector o marime (lungime). O normavectoriala este o functie ν : Rn → R+, notata de obicei ν(x) = ‖x‖, care satisfaceurmatoarele conditii:

1. ‖x‖ > 0, ∀x ∈ Rn, x 6= 0 (pozitivitate);2. ‖αx‖ = |α| · ‖x‖, ∀x ∈ Rn, ∀α ∈ 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 norma euclidiana sau norma 2:

‖x‖2 =√xTx =

√√√√

n∑

i=1

x2i . (1.3)

3Numerotarea nivelelor se face dupa exponentul lui n din expresia numarului de flopi necesarila executie; operatiile de nivel 1 necesita O(n) flopi, cele de nivel 2 necesita O(n2) flopi etc.

Page 39: metode de calcul numeric matriceal. algoritmi fundamentali

1.2. PRODUS SCALAR. NORME. ORTOGONALITATE 25

&%'$@@@@

1

bb 2

∞-

6

Fig. 1.4: Cercuri de raza 1 ın R2, ın normele 1, 2, ∞

Denumirea de norma 2 este justificata de faptul ca (1.3) este un caz particularde norma p (sau norma Holder). Pentru p ≥ 1, norma p se defineste prin

‖x‖p =

(n∑

i=1

|xi|p)1/p

.

Alte cazuri particulare de norma p folosite curent sunt normele 1 si infinit,definite, ın ordine, prin

‖x‖1 =

n∑

i=1

|xi|,

‖x‖∞ = maxi=1:n

|xi|.

Pentru a ilustra geometric cele trei norme de mai sus, figura 1.4 prezinta ”cer-curile” de raza 1 ın R2, adica locul geometric al punctelor x ∈ R2 pentru care‖x‖p = 1, pentru p = 1, 2,∞.

Doua norme pe Rn, sa zicem ‖ · ‖q si ‖ · ‖r, se numesc echivalente daca existaγ1, γ2 > 0 astfel ıncat pentru orice x ∈ Rn avem

γ1‖x‖q ≤ ‖x‖r ≤ γ2‖x‖q. (1.4)

Oricare doua norme p sunt echivalente. De exemplu (demonstrati !):

‖x‖∞ ≤ ‖x‖1 ≤ n‖x‖∞;

‖x‖∞ ≤ ‖x‖2 ≤√n‖x‖∞;

‖x‖2 ≤ ‖x‖1 ≤√n‖x‖2.

Ortogonalitate. Unghiul α a doi vectori nenuli x, y ∈ Rn se defineste prinα = arccos(yTx/(‖x‖ · ‖y‖)); geometric, acesta este chiar unghiul format de cei doivectori ın planul generat de ei.

Doi vectori x, y ∈ Rn se numesc ortogonali daca produsul lor scalar este nul,xT y = 0; semnificatia geometrica este cea naturala: ıntre cei doi vectori este ununghi drept; de aceea vom folosi si notatia x ⊥ y.

Vectorii u1, u2, . . . , up se numesc ortogonali daca sunt ortogonali doi cate doi,adica

uTi uj = 0, ∀i 6= j, i, j ∈ 1 : p. (1.5)

Page 40: metode de calcul numeric matriceal. algoritmi fundamentali

26 CAPITOLUL 1. ALGORITMI ELEMENTARI

Daca, ın plus fata de (1.5), vectorii ui au norme euclidiene unitare, ‖ui‖2 = 1,∀i = 1 : p, ei sunt numiti ortonormali.

Vectorii ortogonali sunt liniar independenti; justificarea e intuitiva: un vectorortogonal pe toti ceilalti este ortogonal si pe orice combinatie liniara a lor.

Orice subspatiu de dimensiune mai mare ca unu are o infinitate de baze ortonor-male 4. De exemplu, baza canonica a Rn, e1, . . . , en, este ortonormala. Folosireabazelor ortonormale este recomandabila nu numai datorita proprietatilor matema-tice, dar si a acuratetii numerice pe care o induc ın calcule. Un mod simplu, dar nusi 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 stabilevor fi prezentate ın capitolele 3 si 5.

Teorema lui Pitagora se generalizeaza imediat ın Rn: vectorii x, y ∈ Rn suntortogonali daca si numai daca ‖x+ y‖22 = ‖x‖22 + ‖y‖22.

Notiunea de ortogonalitate poate fi extinsa la subspatii liniare. Vectorul x ∈ Rn

este ortogonal pe subspatiul S ⊂ Rn daca este ortogonal pe orice vector din S. Douasubspatii S, T ⊂ Rn sunt ortogonale daca orice vector s ∈ S este ortogonal pe oricevector t ∈ T ; vom nota S ⊥ T .

Un subspatiu S ⊂ Rn este numit complementul ortogonal al subspatiuluiT ⊂ Rn daca cele doua subspatii sunt ortogonale si complementare. (∀x ∈ Rn,exista vectorii unici s ∈ S, t ∈ T astfel ıncat x = t + s si t ⊥ s.) Se utilizeazanotatia S = T ⊥; desigur, avem si T = S⊥.

Particularitati ale spatiului euclidian complex Cn. Produsul scalar uzualal vectorilor x, y ∈ Cn este definit de proprietati usor diferite de cele ale produsuluiscalar din Rn; mai precis, notand cu α complex conjugatul scalarului complex α,proprietatile 1 si 3 devin:

1’. f(x, y) = f(y, x);

3’. f(x, αy) = αf(x, y).

Produsul scalar uzual ın Cn se defineste prin yHx =∑n

i=1 xiyi.

Doi vectori x, y ∈ Cn sunt ortogonali daca yHx = 0.

Norma euclidiana ‖ · ‖ : Cn → R+ se defineste prin ‖x‖2 =

√xHx, ∀x ∈ C

n,unde xHx =

∑ni=1 |xi|2, iar |α| este modulul scalarului complex α.

AA. Calculul produsului scalar. Urmand (1.3), produsul scalar se calculeazaastfel:

Algoritmul 1.2 (DOT – Calculul produsului scalar) (Se dau vec-torii x, y ∈ Rn. Se calculeaza α = yTx.)

1. α← 02. Pentru i = 1 : n

1. α← α+ xiyi

Comentarii. Algoritmul are 2n operatii si face deci parte din grupul operatiilorde nivel 1. Il vom apela prin α = DOT(x, y).

4In general vom spune baze ortogonale ın loc de ortonormale, presupunand implicit ca normelevectorilor sunt unitare.

Page 41: metode de calcul numeric matriceal. algoritmi fundamentali

1.2. PRODUS SCALAR. NORME. ORTOGONALITATE 27

Datorita erorilor numerice, la executie algoritmul DOT nu va calcula α = yTx,ci o valoare α, despre care se poate demonstra (vezi si problema 1.5):

|α− α| ≤ nεM |y|T |x|+ O(ε2M ), (1.6)

unde |x| este vectorul modulelor elementelor vectorului x. Eroarea nu este neaparatmica; daca |yTx| ≪ |y|T |x|, atunci eroarea relativa din (1.6) poate fi mare. ♦

AA. Calculul normelor. Normele 1 si ∞ se calculeaza usor. De exemplu,‖x‖∞ se calculeaza astfel:

Algoritmul 1.3 (Nrminf – Calculul normei infinit a unui vector)(Se da x ∈ R

n. Se calculeaza ‖x‖∞.)

1. norm← 02. Pentru i = 1 : n

1. Daca |xi| > norm atunci norm← |xi|Pentru calculul normei 2 a unui vector x ∈ Rn poate fi utilizat algoritmul 1.2,

apeland DOT(x, x), si apoi extragand radicalul. Exista ınsa posibilitatea ca, desi‖x‖2 este reprezentabil ın virgula mobila, xTx = ‖x‖22 sa nu fie (de exemplu 1025 estereprezentabil ın simpla precizie, dar 1050 nu) si atunci calculul lui xTx sa conducala depasire superioara. Similar poate aparea o depasire inferioara, care antreneazapierdere de precizie sau decizii eronate: ‖x‖2 = 0 desi x 6= 0. Pentru a preveni acesteveniment care ar ımpiedica obtinerea rezultatului, se scaleaza vectorul x, adica seımpart toate elementele sale cu, de exemplu, ‖x‖∞ (se aduce astfel x la alta scarade marime). Daca x = x / ‖x‖∞, atunci |xi| ≤ 1, ∀i ∈ 1 : n, si depasirea superioaraeste practic imposibila. (Aparitia unor depasiri inferioare la ridicarea la patrat aunor elemente ale vectorului x nu este suparatoare, deoarece ın acest caz rezultatulse aproximeaza cu zero.) Se obtine urmatorul algoritm.

Algoritmul 1.4 (Nrm2 – Calculul normei 2 a unui vector) (Se dax ∈ Rn. Se calculeaza α = ‖x‖2, efectuand o operatie de scalare.)

1. Se calculeaza β = ‖x‖∞2. α = 03. Pentru i = 1 : n

1. α← α+ (xi/β)2

4. α← β√α

Comentarii. Se observa ca scalarea, care se efectueaza ın instructiunile 1 si 3.1,ıncarca algoritmul cu n flopi (2) si n comparatii (1); cu toate acestea, sigurantacalculelor impune de regula utilizarea ei, cu exceptia cazurilor ın care informatiileapriorice despre date exclud aparitia depasirii.

Un rafinament al algoritmului 1.4 este de a utiliza pentru scalare nu ‖x‖∞, cicea mai apropiata putere a bazei de numeratie a formatului virgula mobila utilizat(de regula 2). Scalarile din instructiunea 3.1 vor avea rezultate de acelasi ordin demarime ca ın cazul scalarii cu ‖x‖∞, deci nu va exista pericol de depasire superioara,ın schimb toate ımpartirile se vor efectua exact, neintroducandu-se nici un fel deeroare numerica suplimentara la calculul normei. ♦

Page 42: metode de calcul numeric matriceal. algoritmi fundamentali

28 CAPITOLUL 1. ALGORITMI ELEMENTARI

AA. Ortogonalitate numerica. Matematic, testul de ortogonalitate a doivectori x, y ∈ Rn este foarte clar: se verifica daca xT y = 0. Numeric ınsa, seıntampla foarte rar ca DOT(x, y) sa fie exact 0; aceasta se datoreaza atat erorilornumerice aparute ın executia algoritmului DOT, cat si erorilor de reprezentareasociate elementelor celor doi vectori. De aceea, pentru a considera doi vectorinumeric ortogonali, ne multumim cu conditia

|DOT(x / ‖x‖2, y / ‖y‖2) | < cεM ,

unde c ≥ 1 este o constanta mica, adica produsul scalar al vectorilor normalizatisa fie de acelasi ordin de marime cu epsilon masina al formatului virgula mobilautilizat.

1.3 Matrice

Matrice. O matrice reala A este un tablou bidimensional (rectangular) denumere reale dispuse pe m linii si n coloane; notand cu aij elementul matricei depe linia i si coloana j, matricea arata astfel

A =

a11 a12 . . . a1n

a21 a22 . . . a2n

......

...am1 am2 . . . amn

(1.7)

Daca m = n, matricea se numeste patrata.

Multimea tuturor matricelor reale (complexe) cu m linii si n coloane va fi notataRm×n (respectiv Cm×n). Pastram ın continuare conventia de a ne referi la cazulcomplex doar atunci cand este diferit de cel real.

Se numeste diagonala principala a matricei multimea pozitiilor de indici egali dintablou; pentru A ∈ Rn×n, suma elementelor de pe diagonala principala se numeste

urma si se noteaza tr(A)def=∑n

i=1 aii.

Operatii. Definim acum cateva operatii elementare cu matrice: suma, produsulcu un scalar, transpunerea.

Suma a doua matrice A,B ∈ Rm×n este matricea C = A+B ∈ Rm×n, definitaprin cij = aij + bij ; asadar, suma se face adunand elementele de pe pozitii cores-pondente.

Produsul unei matrice A ∈ Rm×n cu un scalar α ∈ R este matricea

B = αA ∈ Rm×n, definita prin bij = αaij , i = 1 : m, j = 1 : n.

Cu aceste doua operatii — suma si produsul cu un scalar — Rm×n are o structurade spatiu vectorial de dimensiune mn. O baza este Eij , i = 1 : m, j = 1 : n, undeEij este matricea nula cu exceptia elementului (i, j) egal cu 1.

Transpusa unei matrice A ∈ Rm×n este matricea B ∈ R

n×m, notata B = AT ,definita prin bij = aji. Propunem cititorului demonstrarea urmatoarelor proprietatisimple ale operatiei de transpunere:

Page 43: metode de calcul numeric matriceal. algoritmi fundamentali

1.3. MATRICE 29

1. (AT )T = A, ∀A ∈ Rm×n;

2. (A+B)T = AT +BT , ∀A,B ∈ Rm×n;

3. (αA)T = αAT , ∀A ∈ Rm×n, ∀α ∈ R.

Produsul matrice-vector. In functie de modul de utilizare, o matrice poate fiinterpretata ın mai multe feluri. De exemplu, o matrice poate fi vazuta ca alaturarede vectori:

A = [a1 a2 . . . an], (1.8)

cu a1, a2, . . . , an ∈ Rm notandu-se coloanele matricei A. Aceasta interpretare esteutila ın special ın lucrul cu subspatii.

Cu notatia (1.8), produsul dintre matricea A ∈ Rm×n si vectorul x ∈ Rn estevectorul y ∈ Rm

ydef= Ax =

n∑

j=1

ajxj , (1.9)

i.e. combinatia liniara a coloanelor lui A cu coeficientii xj . Un caz particular esteprodusul dintre matricea A si vectorul unitate ej , care are ca rezultat coloana j amatricei: Aej = aj .

Se poate observa ca produsul matrice-vector defineste o transformare liniaraf : Rn → Rm, f(x) = Ax, adica o aplicatie cu proprietatile (evident satisfacute ıncazul nostru): f(u+ v) = f(u) + f(v), f(αu) = αf(u), ∀u, v ∈ Rn, α ∈ R.

Matrice si subspatii liniare. Deoarece matricea A poate fi privita ca o”multime” de vectori (coloane), se impune o notatie speciala pentru subspatiulgenerat de coloanele matricei, numit imaginea acesteia:

ImA = y ∈ Rm | ∃x ∈ R

n astfel ıncat y = Ax. (1.10)

Un alt subspatiu interesant, de data asta ın Rn, este cel al vectorilor avand ca

elemente coeficientii combinatiilor liniare nule ale coloanelor lui A, numit nucleulmatricei A:

KerA = x ∈ Rn | Ax = 0. (1.11)

O proprietate fundamentala a acestor subspatii este data de

Teorema 1.1 Daca A ∈ Rm×n, atunci ImA si KerAT sunt subspatii ortogonale sicomplementare ın Rm, i.e.

1. ImA ⊥ KerAT .

2. Rm = ImA⊕KerAT .

Demonstratie. 1. Fie y = Ax ∈ ImA si z ∈ KerAT . Atunci yT z = xTAT z = 0.2. Fie z ⊥ ImA. Atunci xTAT z = 0, oricare x ∈ Rn, deci AT z = 0. ♦

Evident, teorema poate fi aplicata pentru AT , si deci avem ImAT ⊥ KerA siRn = ImAT ⊕KerA.

Page 44: metode de calcul numeric matriceal. algoritmi fundamentali

30 CAPITOLUL 1. ALGORITMI ELEMENTARI

-y2

y3

y1

6

QQQQQk

(0,1,1)

(1,0,1)

(1,1,-1)•

KerAT

ImA

Fig. 1.5: KerAT este complementul ortogonal al lui ImA. Datele sunt cele dinexemplul 1.1

Exemplul 1.1 Fie A =

1 00 11 1

.

Atunci, S = ImA = y ∈ R3 | y =

x1

x2

x1 + x2

, x1, x2 ∈ R, adica S este

planul de ecuatie y3 = y1 + y2.T = KerAT = y ∈ R3 | AT y = 0 = y ∈ R3 | y2 + y3 = 0, y1 + y3 = 0, deci

avem T = y ∈ R3 | y =

11−1

α = Im

11−1

.

Vezi figura 1.5. ♦

Privind ın continuare matricea A ın forma (1.8), rangul matricei A este dimen-siunea subspatiului ImA generat de coloanele lui A. Asadar rangA = dim(ImA),sau, altfel spus, rangul este numarul maxim de coloane liniar independente din A.

Se poate demonstra ca rangA = rangAT si deci rangul este totodata si numarulmaxim de linii liniar independente din A. Recapituland:

dim ImA = dim ImAT not= r,

dimKerA = n− r,dimKerAT = m− r.

(1.12)

O matrice A ∈ Rm×n avand coloanele liniar independente se numeste monica;ın acest caz, m ≥ n, rangA = n si KerA = 0. Se mai spune ca A are rang maximpe coloane.

O matrice A ∈ Rm×n avand liniile liniar independente se numeste epica; atuncim ≤ n, rangA = m si ImA = Rm; se spune ca A are rang maxim pe linii.

Page 45: metode de calcul numeric matriceal. algoritmi fundamentali

1.3. MATRICE 31

O matrice A ∈ Rm×n avand una din dimensiuni egala cu 1 este un vector; daca

n = 1, vectorul este coloana (acceptiunea implicita), iar daca m = 1 vectorul estelinie. Este clar ca transpusa unui vector linie este un vector coloana si reciproc. Inmod analog cu (1.8), o matrice poate fi scrisa evidentiind liniile:

A =

aT1

aT2...aT

m

. (1.13)

Atentie: acum aTi e o notatie pentru vectorul format de linia i a matricei A; ai nu

este coloana i din (1.8). Pentru a evita confuziile, vom folosi si notatiile: 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 =

aT1 x...

aTmx

. (1.14)

AA. Gaxpy. Vom prezenta acum mai multe implementari ale produsuluimatrice-vector, sub forma operatiei y ← Ax+ y, numita Gaxpy5.

Din (1.9), la nivel de element, operatia se scrie yi ← yi +∑n

j=1 aijxj , si deci

Algoritmul 1.5 (Gaxpy – Produs matrice-vector) (Se dauA ∈ Rm×n, x ∈ Rn. Se calculeaza y ← Ax + y ∈ Rm utilizand operatiielementare.)

1. Pentru i = 1 : m1. Pentru j = 1 : n

1. yi ← yi + aijxj

Se observa imediat ca bucla interioara reprezinta o operatie DOT, corespun-zand exprimarii produsului matrice-vector ın forma (1.14). Algoritmul de mai susse scrie deci, ın forma vectoriala

Algoritmul 1.6 (Se dau A ∈ Rm×n, x ∈ Rn. Se calculeazay ← Ax + y ∈ Rm utilizand operatii DOT.)

1. Pentru i = 1 : m1. yi ← yi + DOT(A(i, :), x)

Inversand acum ordinea buclelor din algoritmul 1.5, ceea ce nu afecteaza ın niciun fel rezultatul (ordinea operatiilor pentru calculul fiecarei sume yi ın parte esteaceeasi), obtinem

Algoritmul 1.7 (Se dau A ∈ Rm×n, x ∈ Rn. Se calculeazay ← Ax + y ∈ Rm utilizand operatii elementare.)

5Prescurtare pentru General Ax Plus y.

Page 46: metode de calcul numeric matriceal. algoritmi fundamentali

32 CAPITOLUL 1. ALGORITMI ELEMENTARI

1. Pentru j = 1 : n1. Pentru i = 1 : m

1. yi ← yi + aijxj

Bucla interioara reprezinta acum o operatie Saxpy, corespunzand exprimariiprodusului matrice-vector ın forma (1.9), care este o suma de vectori. Algoritmul1.7 se rescrie deci ın forma vectoriala:

Algoritmul 1.8 (Se dau A ∈ Rm×n, x ∈ Rn. Se calculeazay ← Ax + y ∈ Rm folosind operatii Saxpy.)

1. Pentru j = 1 : n1. y ← Saxpy(xj , A(:, j), y)

Comentarii. Toti algoritmii de mai sus au 2n2 operatii. De aceea Gaxpy

face parte din grupul operatiilor de nivel 2. Vom face referinta la ea ın formay = Gaxpy(A, x, y). Desigur, implementarile din algoritmii 1.6 si 1.8 vor fi deosebitde eficiente pe calculatoare vectoriale. ♦

1.4 Inmultirea matricelor

Dedicam o sectiune separata ınmultirii de matrice (si unor notiuni conexe),deoarece aceasta operatie este specifica (nu se poate defini ın general produsul adoi vectori cu rezultat vector6) si apare deseori ın constructia algoritmilor de nivelsuperior, devenind astfel interesanta atat ”teoretic”, cat si din punctul de vedere aldetaliilor de implementare.

Definitia 1.1 Fie A ∈ Rm×l si B ∈ Rl×n, doua matrice; produsul lor este matriceaC = AB ∈ Rm×n, definita prin

cij =l∑

k=1

aikbkj , i = 1 : m, j = 1 : n.

Cazuri particulare. Sa discutam ıntai cazurile particulare ın care cel putinuna dintre dimensiuni este egala cu 1.

Daca m = n = 1, atunci Anot= xT este un vector linie, B

not= y este un vector

coloana, ambii ın Rl, iar produsul lor coincide cu simplul produs scalar AB = xT y.

Daca l = 1, atunci Anot= x este un vector coloana ın Rm, B

not= yT este un

vector linie ın Rn, iar produsul lor este matricea C = xyT ∈ R

m×n, definita princij = xiyj ; aceasta operatie cu doi vectori poarta numele de produs exterior si va finotata prin OUT(x, y).

Daca n = 1, atunci Bnot= y este un vector coloana si operatia AB este o ınmultire

matrice-vector.Daca m = 1, atunci A

not= xT este un vector linie si AB = xTB este un vector

linie (ınmultire vector linie - matrice).

6Produsul ”vectorial” a × b este posibil, printr-un accident fericit caruia ıi este ındatorataıntreaga fizica clasica, numai ın R3.

Page 47: metode de calcul numeric matriceal. algoritmi fundamentali

1.4. INMULTIREA MATRICELOR 33

Forme ale produsului matriceal. Vom evidentia acum mai multe formede prezentare a ınmultirii a doua matrice, folosind ca operatii elementare cazurileparticulare prezentate mai sus.

1. Sa privim A ca alaturare de vectori linie, ca ın (1.13), si B ca alaturare devectori coloana, ca ın (1.8). Se observa imediat din definitie ca cij = aT

i bj , adicafiecare element al rezultatului poate fi exprimat printr-un produs scalar (DOT).

2. Privim acum A partitionata pe coloane si B pe linii. Produsul lor se poateexprima ca o suma de produse exterioare:

C = AB = [a1 . . . al]

bT1...bTl

=

l∑

k=1

akbTk . (1.15)

Demonstratie: cij =∑l

k=1(akbTk )ij =

∑lk=1(ak)i(b

Tk )j =

∑lk=1 aikbkj .

3. Punem acum ın evidenta numai coloanele matricei B. Atunci

C = AB = A[b1 . . . bn] = [Ab1 . . . Abn], (1.16)

deci fiecare coloana a produsului este obtinuta prin ınmultirea matrice-vector dintrematricea A si coloana respectiva a lui B.

4. Fie acum A partitionata pe linii. Atunci

C = AB =

aT1...aT

m

B =

aT1 B...

aTmB

, (1.17)

deci fiecare linie a produsului este obtinuta prin ınmultirea vector linie - matricedintre linia respectiva a lui A si matricea B.

5. Sa exprimam acum coloanele produsului C ın functie de coloanele matriceiA. Cu ajutorul relatiei (1.16) se obtine

cj = Abj =l∑

k=1

bkjak, (1.18)

deci orice coloana din C este combinatie liniara a coloanelor matricei A.6. In sfarsit, o ultima forma, ın care vom exprima liniile produsului C ın functie

de liniile matricei B. Din (1.17) rezulta

cTi = aTi B =

l∑

k=1

aikbTk . (1.19)

Proprietati. Inmultirea de matrice are unele proprietati imediate, prezentate ıncontinuare; presupunem ca matricele au dimensiuni potrivite operatiilor efectuate;demonstratiile sunt lasate cititorului.

1. A(BC) = (AB)C (asociativitate);2. A(B + C) = AB +AC (distributivitate);

Page 48: metode de calcul numeric matriceal. algoritmi fundamentali

34 CAPITOLUL 1. ALGORITMI ELEMENTARI

3. (AB)T = BTAT .Trebuie subliniat faptul ca ınmultirea de matrice nu este comutativa. Sa detaliem

putin; consideram A ∈ Rm×l si B ∈ Rl×n, cazul cel mai general pentru care estedefinit produsul AB; daca m 6= n, atunci produsul BA nici macar nu este definit.Daca m = n, atunci AB ∈ Rm×l, iar BA ∈ Rl×m; prin urmare, daca m 6= l, atunciAB si BA au dimensiuni diferite, deci nu se pune problema egalitatii. In fine, dacasi m = l, deci ambele matrice sunt patrate, atunci egalitatea AB = BA nu are loc,

ın general; un exemplu simplu: A =

[1 11 1

]

, B =

[1 23 4

]

.

Matrice patrate. Ne vom ocupa ın continuare de unele aspecte specifice ma-tricelor patrate din Rn×n, a caror multime are structura de inel necomutativ. Ma-tricea unitate de ordinul n are elementele de pe diagonala principala egale cu 1 sitoate celelalte elemente nule; ea este notata prin In, sau numai I daca dimensiunearezulta din context; scrisa pe coloane, matricea unitate are forma In = [e1 . . . en].

Fie o matrice A ∈ Rn×n; daca exista o matrice X ∈ Rn×n astfel ıncatAX = XA = I, atunci X se numeste inversa matricei A si se noteaza cu A−1.O matrice care are inversa se numeste inversabila; matricea inversa este unica. Sepoate demonstra ca multimea matricelor inversabile din Rn×n are o structura degrup (necomutativ) ın raport cu ınmultirea, notat GL(n).

Se pune ıntrebarea cand este o matrice inversabila ? Vom mentiona deocamdata,fara a demonstra, ca inversabilitatea este echivalenta cu conditia rangA = n, adicacu independenta coloanelor (si liniilor) matricei A. (O alta conditie echivalenta esteKerA = 0, i.e. KerA are dimensiune nula.) Testarea numerica a inversabilitatiiva fi o problema tratata mai mult sau mai putin explicit ın capitolele urmatoare,metodele prezentate fiind din ce ın ce mai sigure, dar si mai sofisticate.

O ultima proprietate: inversarea si transpunerea unei matrice sunt operatii care

comuta ıntre ele, adica (AT )−1 = (A−1)T not= A−T .

Echivalenta. Doua matrice A,B ∈ Rm×n se numesc echivalente la dreaptadaca exista o matrice T ∈ Rn×n inversabila astfel ıncat B = AT . Avem:

Propozitia 1.1 Daca A,B ∈ Rm×n sunt echivalente la dreapta, atunci avem ImA =ImB.

Demonstratie. Din definitie, exista T astfel ıncat B = AT . Evidentiind coloaneledin A si B si folosind (1.18) se obtine bj = Atj =

∑ni=1 tijai, deci orice coloana

din B este combinatie liniara a coloanelor matricei A; atunci bj ∈ ImA, pentruj ∈ 1 : n, si deci ImB ⊂ ImA.

Cum T este inversabila, A = BT−1, si un rationament similar conduce la con-cluzia ImA ⊂ ImB. ♦

Daca matricele echivalente la dreapta A si B au coloanele liniar independente,atunci coloanele fiecareia formeaza o baza pentru ImA = ImB. In acest caz, ma-tricea T este numita schimbare de baza (ın Rn, din baza A ın baza B).

Fie un vector x ∈ ImA; atunci x se exprima unic ın fiecare dintre cele douabaze: x = Ac =

∑ni=1 γiai, cu c = [γ1 . . . γn]T si, respectiv, x = Bd =

∑ni=1 δibi, cu

Page 49: metode de calcul numeric matriceal. algoritmi fundamentali

1.4. INMULTIREA MATRICELOR 35

d = [δ1 . . . δn]T ; vectorii c si d contin coordonatele ın cele doua baze. Cum B = AT ,atunci x = Ac = ATd, din unicitate rezultand c = Td, sau d = T−1c. Aceastaultima relatie justifica denumirea de transformare de coordonate data matricei T−1

(din nou, din baza A ın baza B).Desigur, daca A si B sunt echivalente la dreapta, atunci si KerAT = KerBT ,

consecinta a propozitiei de mai sus si a teoremei 1.1.Deoarece ınmultirea de matrice nu este comutativa, are sens notiunea de echiva-

lenta la stanga; matricele A,B ∈ Rm×n se numesc echivalente la stanga daca existao matrice S ∈ Rm×m inversabila astfel ıncat B = SA. In acest caz, ImAT = ImBT

si KerA = KerB.Daca coloanele fiecareia dintre matricele echivalente la stanga A si B formeaza

o baza pentru ImA = ImB, atunci din (1.16) aj = Sbj, deci matricea S transformavectorii unei baze ın vectorii celeilalte.

Doua matrice sunt echivalente (bilateral) daca exista S ∈ Rm×m, T ∈ Rn×n

inversabile astfel ıncat B = SAT . S si T se numesc generic transformari (deechivalenta).

AA. Algoritmi. Vom prezenta mai multe variante de calcul al produsului ma-triceal, variante ce difera, ın esenta, prin ordinea ın care sunt efectuate operatiilescalare. In acest mod punem ın evidenta diverse posibilitati de organizare a cal-culelor ın vederea unei exploatari optime a particularitatilor arhitecturale ale cal-culatorului tinta.

Pentru ınceput prezentam un algoritm pentru produsul exterior, singurul cazparticular nedetaliat pana acum ın care cel putin o dimensiune a operanzilor ınmulti-rii este 1.

Algoritmul 1.9 (OUT – Calculul produsului exterior) (Se daux ∈ Rm, y ∈ Rn. Se calculeaza C = xyT ∈ Rm×n.)

1. Pentru j = 1 : n1. Pentru i = 1 : m

1. cij ← xiyj

In cazul general, o implementare directa a ınmultirii de matrice, folosind definitia,este prezentata ın continuare.

Algoritmul 1.10 (MM – Inmultire matriceala) (Se dauA ∈ Rm×l, B ∈ Rl×n. Se calculeaza C = AB ∈ Rm×n.)

1. C ← 02. Pentru j = 1 : n

1. Pentru i = 1 : m1. Pentru k = 1 : l

1. cij ← cij + aikbkj

Rezultatul acestui algoritm nu se modifica 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 scalarDOT(A(i, :), B(:, j)), obtinandu-se astfel un algoritm cu operatii vectoriale. Celedoua bucle Pentru interioare se pot ınlocui cu un apel la Gaxpy(A, B(:, j), C(:, j)),dupa cum sugereaza direct relatia (1.16).

Forma jki pune ın evidenta operatii Saxpy, avand la baza relatia (1.18):

Page 50: metode de calcul numeric matriceal. algoritmi fundamentali

36 CAPITOLUL 1. ALGORITMI ELEMENTARI

Algoritmul 1.11 (Se dau A ∈ Rm×l, B ∈ Rl×n. Se calculeazaC = AB ∈ R

m×n. Forma jki.)

1. C ← 02. Pentru j = 1 : n

1. Pentru k = 1 : l1. 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

evidentiaza produse exterioare.

Algoritmul 1.12 (Se dau A ∈ Rm×l, B ∈ Rl×n. Se calculeazaC = AB ∈ Rm×n folosind operatii OUT.)

1. C ← 02. Pentru k = 1 : l

1. C ← C + OUT(A(:, k), B(k, :))

Apelul rutinei OUT ınlocuieste 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 esentiala, deoarece acesteaau rolul de parcurgere a matricei C, pe linii sau pe coloane. Acest lucru poatedeveni important daca se tine seama de modul de adresare a elementelor matriceiimpus de limbajul de programare utilizat. De exemplu, ın FORTRAN se preferaorganizarea pe coloane, corespunzator formelor jik, jki, kji, deoarece matricelesunt memorate pe coloane.

In oricare dintre formele mentionate, ınmultirea de matrice necesita 2mnl flopi,deci 2n3 ın cazul matricelor patrate, si face parte din grupul operatiilor de nivel 3.Vom face referire la ea ın forma C = MM(A,B).

Inmultirea matricelor complexe. Algoritmii de mai sus, ca si toate conside-ratiile care ıi preced, sunt valabili si pentru ınmultirea matricelor complexeC = AB ∈ Cm×n, cu A ∈ Cm×l, B ∈ Cl×n. Diferenta consta ın numarul deflopi necesari executiei. Daca adunarea a doua numere complexe se face ın doi flopi(unul pentru partea reala, altul pentru partea imaginara), ın schimb ınmultireanecesita sase:

(α + iβ)(γ + iδ) = αγ − βδ + i(αδ + βγ). (1.20)

Asadar ınmultirea matricelor complexe se executa ın aproximativ 8mnl flopi (catemnl ınmultiri si adunari de scalari complecsi).

Aceeasi observatie poate fi facuta scriind A = A1 + iA2, cu A1, A2 ∈ Rm×l,B = B1 + iB2, cu B1, B2 ∈ Rl×n, si

C = A1B1 −A2B2 + i(A1B2 +A2B1). (1.21)

Inmultirea matricelor complexe se poate efectua deci prin patru produse (si douaadunari) de matrice reale.

Numarul de operatii se poate reduce printr-un mic artificiu de calcul; o formaechivalenta cu (1.20) este

(α+ iβ)(γ + iδ) = αγ − βδ + i((α + β)(γ + δ)− αγ − βδ). (1.22)

Page 51: metode de calcul numeric matriceal. algoritmi fundamentali

1.5. NORME MATRICEALE 37

Aparent, nu se castiga nimic, deoarece ın loc de patru ınmultiri si doua adunarireale, ca ın (1.20), avem trei ınmultiri si cinci adunari. Egalitatea (1.22) se scrieınsa identic si ın cazul matriceal, ınlocuindu-se (1.21) cu

G = A1B1,H = A2B2,C = G−H + i((A1 +A2)(B1 +B2)−G−H).

(1.23)

Asadar C se calculeaza acum cu doar trei ınmultiri de matrice, adica 6mnl flopi, sicinci adunari a caror contributie la numarul de operatii este neglijabila.

Acest algoritm rapid pentru ınmultirea matricelor complexe are totusi si undezavantaj: stabilitatea sa numerica este mai slaba decat cea a algoritmului ”clasic”(1.21); cu toate acestea, el poate fi folosit cu succes ın majoritatea aplicatiilor.

1.5 Norme matriceale

Produsul scalar matriceal este o generalizare imediata a produsului scalara doi vectori. Daca A,B ∈ Rm×n, produsul lor scalar este

(A,B)def=

m∑

i=1

n∑

j=1

aijbij = tr(BTA). (1.24)

Se observa ca (1.24) este identica cu produsul scalar al celor doi vectori din Rmn

obtinuti prin vectorizarea matricelor A si B, i.e. prin concatenarea coloanelor luiA, respectiv B.

Normele matriceale se definesc la fel ca normele vectoriale. O norma ma-triceala este o functie ‖ · ‖ : Rm×n → R+ care satisface conditiile

1. ‖A‖ > 0, ∀A ∈ Rm×n, A 6= 0 (pozitivitate);2. ‖αA‖ = |α| · ‖A‖, ∀A ∈ Rm×n, ∀α ∈ R (omogenitate);3. ‖A+B‖ ≤ ‖A‖+ ‖B‖, ∀A,B ∈ Rm×n (inegalitatea triunghiului).

Pentru a utiliza normele matriceale independent de dimensiunile matricelor, in-troducem notiunea de familie de norme matriceale, care este o functie‖ · ‖ :

⋃∞m=1,n=1 R

m×n → R+ astfel ıncat, pentru fiecare m,n > 0, restrictia lui

‖ · ‖ la Rm×n este o norma matriceala. Daca n = 1, atunci ‖ · ‖ este o familie denorme vectoriale.

O familie ‖ · ‖ de norme matriceale este consistenta daca

‖AB‖ ≤ ‖A‖ · ‖B‖, (1.25)

atunci cand produsul AB este definit. (Sa observam ca, ın general, A, B si AB audimensiuni diferite, deci normele lor sunt functii diferite; de aceea se lucreaza cufamilii de norme.)

Norma Frobenius este norma matriceala indusa de produsul scalar (1.24):

‖A‖F =

√√√√

m∑

i=1

n∑

j=1

a2ij . (1.26)

Page 52: metode de calcul numeric matriceal. algoritmi fundamentali

38 CAPITOLUL 1. ALGORITMI ELEMENTARI

Familia de norme Frobenius este consistenta.

Norme subordonate. O familie de norme matriceale poate fi obtinuta dintr-ofamilie de norme vectoriale ‖ · ‖, prin urmatoarea relatie

‖A‖ = supx 6=0

‖Ax‖‖x‖ = max

‖x‖=1‖Ax‖, (1.27)

ın care norma matriceala ‖A‖ se defineste cu ajutorul normelor vectoriale ‖x‖ si‖Ax‖. (Trecerea de la sup la max este justificata de faptul ca hipersfera de ecuatie‖x‖ = 1 este un compact iar norma vectoriala ‖ · ‖ este o functie continua, decimarginita si ısi atinge marginile.) Familia de norme matriceale este numita subor-donata celei de norme vectoriale sau indusa de aceasta.

Astfel, folosind (1.27), se pot defini normele p matriceale subordonate normelorp (Holder) vectoriale. Cele mai utilizate norme p sunt normele 1, 2 si ∞. Pentrup = 1,∞, relatia (1.27) se reduce la expresiile simple

‖A‖1 = max‖x‖1=1

‖Ax‖1 = maxj=1:n

(m∑

i=1

|aij |)

,

‖A‖∞ = max‖x‖∞=1

‖Ax‖∞ = maxi=1:m

n∑

j=1

|aij |

.

(1.28)

Pentru norma 2, atat semnificatia cat si modul de calcul vor fi prezentate ıncapitolele urmatoare.

Normele p matriceale, aplicate unor vectori priviti ca matrice, dau aceleasi valorica normele p vectoriale. Astfel, nu e nici o posibilitate de confuzie ın utilizareaaceluiasi simbol ‖ · ‖p pentru normele matriceale si cele vectoriale.

In sfarsit, normele matriceale subordonate unor norme vectoriale sunt consis-tente (demonstrati, folosind definitia) si, ın plus, au proprietatea ‖I‖ = 1.

Echivalenta. Normele matriceale prezentate mai sus sunt echivalente, ın sensulrelatiei (1.4). De exemplu (vezi problema 1.10):

1√n‖A‖∞ ≤ ‖A‖2 ≤

√m‖A‖∞,

1√m‖A‖1 ≤ ‖A‖2 ≤

√n‖A‖1,

‖A‖2 ≤ ‖A‖F ≤√n‖A‖2.

(1.29)

Cazul complex. O norma matriceala peste spatiul complex Cm×n este o functie

cu valori reale pozitive satisfacand cele trei conditii de la ınceputul sectiunii. Toatedefinitiile si relatiile de mai sus raman valabile, cu singura observatie ca acum normaFrobenius este ‖A‖2F =

∑mi=1

∑nj=1 |aij |2.

AA. Calculul normei 1 se face folosind direct relatiile (1.28):

Algoritmul 1.13 (Nm1 – Calculul normei matriceale 1) (Se daA ∈ Rm×n. Se calculeaza ν = ‖A‖1.)

Page 53: metode de calcul numeric matriceal. algoritmi fundamentali

1.6. MATRICE STRUCTURATE 39

0

0

L U

Fig. 1.6: Matrice inferior si superior triunghiulare

1. ν ← 02. Pentru j = 1 : n

1. α← 02. Pentru i = 1 : m

1. α← α+ |aij |3. Daca α > ν atunci ν ← α

Algoritmul necesita mn flopi. Calculul normei∞ este asemanator si are aceeasicomplexitate. Calculul normei Frobenius necesita 2mn flopi; desigur, pentru evitareadepasirilor superioare, ın implementarea formulei directe (1.26) se utilizeaza scalarea.In schimb, dupa cum vom vedea, calculul normei 2 face apel la notiuni mai evolu-ate si implica O(n3) operatii (pentru matrice patrate). De aceea, normele 1, ∞ siFrobenius sunt cele mai folosite ın calculul numeric elementar. Toate aceste normefiind echivalente, criteriul de alegere primordial este efortul de calcul.

1.6 Matrice structurate

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

In aceasta sectiune vom prezenta cateva tipuri de matrice structurate si pro-prietatile lor principale. Pentru simplitate, vom considera doar matrice patrate,din Rn×n. Extinderea la matrice dreptunghiulare este imediata.

Definitii. 1) O matrice D se numeste diagonala daca elementele nediagonalesunt nule, adica dij = 0, pentru i 6= j.

2) O matrice T se numeste inferior triunghiulara daca tij = 0, pentru i < j, sisuperior triunghiulara daca tij = 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 triunghiulara unitate daca este triunghiulara si, ın plus,toate elementele sale diagonale sunt egale cu 1.

O matrice se numeste strict triunghiulara daca este triunghiulara si toate e-lementele sale diagonale sunt nule. De exemplu, o matrice A este strict inferior

Page 54: metode de calcul numeric matriceal. algoritmi fundamentali

40 CAPITOLUL 1. ALGORITMI ELEMENTARI

triunghiulara daca aij = 0, pentru i ≤ j.Matricele triunghiulare au proprietati deosebite care vor fi evidentiate ın sectiuni

urmatoare ale acestui capitol.3) O matrice H se numeste inferior Hessenberg daca hij = 0, pentru j > i+ 1,

si superior Hessenberg daca hij = 0, pentru i > j + 1.4) O matrice A se numeste tridiagonala daca este simultan inferior si superior

Hessenberg, adica aij = 0, pentru |i− j| > 1.

In general, o matrice B se numeste banda, de latime inferioara p, daca bij = 0,pentru i > j+p, si de latime superioara q, daca bij = 0, pentru j > i+q. Daca p = q,vom spune ca B este matrice banda de latime p. Evident, matricele tridiagonalesunt un caz particular de matrice banda, cu p = q = 1. O matrice banda cup = q = 2 se zice pentadiagonala.

Proprietati. Vom prezenta ın continuare cateva proprietati utile ale matricelorstructurate.

Este evident ca suma a doua matrice cu structuri identice va avea aceeasi struc-tura. De asemenea, ınmultirea unei matrice cu un scalar conserva structura.

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

Propozitia 1.2 a. Daca D este o matrice diagonala si A este o matrice struc-turata, atunci matricele DA si AD vor avea structura matricei A.

b. Produsul a doua matrice inferior (superior) triunghiulare (unitate) este omatrice inferior (superior) triunghiulara (unitate).

c. Daca L este o matrice inferior (superior) triunghiulara si H este inferior (su-perior) Hessenberg, atunci LH si HL sunt matrice inferior (superior) Hessenberg.

Demonstratie. Vom demonstra doar punctul b ın cazul inferior triunghiular, cele-lalte demonstratii fiind lasate ca exercitiu.

Fie A si B doua matrice inferior triunghiulare, si C = AB. Evident,cij =

∑nk=1 aikbkj . Consideram i < j. A fiind inferior triunghiulara, aik = 0 pentru

k > i; ın plus, bkj = 0, pentru k ≤ i < j, deoarece B este inferior triunghiulara;asadar, aikbkj = 0, pentru oricare k ∈ 1 : n, deci cij = 0 pentru i < j, adica C esteinferior triunghiulara.

Elementele posibil nenule ale matricei C (pentru i ≥ j) se calculeaza economiccu relatia

cij =

i∑

k=j

aikbkj , (1.30)

deoarece aik = 0 pentru k > i si bkj = 0 pentru k < j.Daca A si B sunt inferior triunghiulare unitate, atunci particularizand (1.30) se

obtine cii = aiibii = 1, deci si C este inferior triunghiulara unitate. ♦

AA. Inmultirea matricelor triunghiulare. Datorita elementelor nule, algo-ritmii implicand matrice structurate pot fi simplificati astfel ıncat sa fie executatedoar operatiile aritmetice strict necesare.

Vom exemplifica cu algoritmul de ınmultire a doua matrice inferior triunghiulare,A si B. Profitam de faptul ca rezultatul C este inferior triunghiular si calculam cijnumai pentru i ≥ j, folosind (1.30) si nu formula generala.

Page 55: metode de calcul numeric matriceal. algoritmi fundamentali

1.6. MATRICE STRUCTURATE 41

Algoritmul 1.14 (TRMM – Inmultire de matrice inferior triun-ghiulare) (Se dau A,B ∈ Rn×n inferior triunghiulare. Se calculeazaC = AB.)

1. Pentru i = 1 : n1. Pentru j = 1 : i

1. cij =∑i

k=j aikbkj

Comentarii. Cele doua bucle sunt destinate parcurgerii pe linii a elementelortriunghiului inferior al matricei C; parcurgerea se poate face si pe coloane, prin:Pentru j = 1 : n, Pentru i = j : n. Acest algoritm necesita n3/3 flopi, adica desase ori mai putin decat algoritmul general de ınmultire 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 matricelegenerale si pentru cele structurate.

Daca se doreste economie de memorie, stocarea elementelor nule se poate evitausor; acest mod de memorare se numeste compact sau ımpachetat (packed). Exem-plificam ın continuare pentru cateva tipuri de matrice.

O matrice triunghiulara se poate memora ıntr-un vector, sa-l notam v, delungime n(n + 1)/2 (numarul elementelor posibil nenule ale matricei). Daca Leste inferior triunghiulara, atunci o ordine naturala de memorare, cea pe linii, estel11, l21, l22, l31, . . . (ın v1, v2, v3, v4, . . . ). Se observa ca lij se memoreaza ın pozitiai(i−1)

2 + j din v.O matrice tridiagonala T se poate memora ın trei vectori a, b, c (ın fiecare cate

o diagonala), ceea ce este evident din notatia:

T =

a1 c1b2 a2 c2

. . .. . .

. . .

bn−1 an−1 cn−1

bn an

.

In general, o matrice banda B, de latime p, se poate memora usor ıntr-un tabloucu 2p+ 1 linii si n coloane. Exemplificam pentru p = 2:

B =

α β γδ α β γε δ α β γε δ α β γε δ α β γ

. . .. . .

. . .. . .

. . .

∗ ∗ γ . . . γ γ γ∗ β β . . . β β βα α α . . . α α αδ δ δ . . . δ δ ∗ε ε ε . . . ε ∗ ∗

In stanga se gaseste matricea banda (cu elementele notate generic), ın dreaptatabloul de memorare (prin ∗ sunt notate elemente nesemnificative); se observa ca ele-mentele de pe aceeasi diagonala a matricei se memoreaza pe aceeasi linie a tabloului.Elementul bij se memoreaza pe linia p+ i− j + 1, coloana j.

Page 56: metode de calcul numeric matriceal. algoritmi fundamentali

42 CAPITOLUL 1. ALGORITMI ELEMENTARI

× • • × •× × × × ×× • • × •× • • × •

(a) (b) (c)

Fig. 1.7: Submatrice: (a) cu I = 1, 3, 4, J = 2, 3, 5 (elementele submatriceisunt notate cu •); (b) bloc; (c) lider principala

1.7 Matrice bloc

Submatrice, bloc. Pana acum am privit o matrice A ca fiind formata dinelemente sau, eventual, din coloane sau linii, ca ın (1.7), (1.8), respectiv (1.13). Unalt punct de vedere este de a evidentia submatrice sau blocuri, adica matrice dedimensiuni mai mici continute ın A.

In sensul cel mai larg, notiunea de submatrice se defineste dupa cum urmeaza.Daca A ∈ R

m×n, iar I = i1, i2, . . . , ir ⊂ 1 : m si J = j1, j2, . . . , jp ⊂ 1 : n suntdoua multimi de indici astfel ıncat i1 < i2 < . . . < ir, j1 < j2 < . . . < jp, atuncimatricea A′ de dimensiune r × p definita de a′kl = aikjl

, este numita submatrice amatricei A. Figura 1.7a ilustreaza notiunea.

Se observa ca A′ este obtinuta prin extragerea elementelor aflate la ”intersectiile”liniilor si coloanelor din I, respectiv J . Daca indicii din I, respectiv J , suntconsecutivi, atunci submatricea mai este numita si bloc. Pentru a ne referi la bloculastfel definit vom folosi si notatia A(i1 : ir, j1 : jp).

Daca A ∈ Rn×n si I = J , atunci submatricea A′ se numeste principala. Daca,

ın plus, I = 1, 2, . . . , r, atunci A′ not= A[r] este numita submatrice lider principala

de ordin r a matricei A; aceasta este blocul r × r pozitionat stanga-sus ın A. Vezifigurile 1.7b,c.

Partitionari conforme. Vom lucra ın continuare cu matrice partitionate ınblocuri, notate astfel

A =

A11 A12 . . . A1n

A21 A22 . . . A2n

......

. . ....

Am1 Am2 . . . Amn

, B =

B11 B12 . . . B1l

B21 B22 . . . B2l

......

. . ....

Bp1 Bp2 . . . Bpl

, (1.31)

ın care blocurile Aij au dimensiune µi × νj , iar Bij dimensiune πi × λj . Evident,matricea A are (µ1 + . . .+ µm) linii si (ν1 + . . .+ νn) coloane.

Este interesant sa studiem operatiile cu matrice astfel partitionate, mai precismodul de partitionare care permite ınlocuirea operatiilor cu elemente prin cele cublocuri.

Page 57: metode de calcul numeric matriceal. algoritmi fundamentali

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 =

C11 . . . C1n

.... . .

...Cm1 . . . Cmn

, cu Cij = Aij +Bij . (1.32)

• Daca n = p, νi = πi, ∀i ∈ 1 : n, atunci

AB = D =

D11 . . . D1l

.... . .

...Dm1 . . . Dml

, cu Dij =

n∑

k=1

AikBkj . (1.33)

Partitionarile care permit scrierea relatiilor de mai sus se numesc conforme cuoperatia executata; se observa ca formulele de calcul al sumei si produsului la nivelde bloc sunt similare celor la nivel de element; evident, suma si produsul a douablocuri se calculeaza cu formulele elementare cunoscute.

Intorcandu-ne la sectiunea dedicata ınmultirii de matrice, putem acum constataca relatiile (1.15)–(1.18) sunt cazuri particulare ale relatiei (1.33).

• Pentru transpunere avem

AT =

AT11 AT

21 . . . ATm1

AT12 AT

22 . . . ATm2

......

. . ....

AT1n AT

2n . . . ATmn

. (1.34)

Matrice bloc structurate. O matrice partitionata ca ın (1.31) poate fi struc-turata la nivel de blocuri. Folosim aceleasi definitii ca ın sectiunea 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 suntpatrate, adica µi = νi, i ∈ 1 : n (cu aceste ipoteze, diagonala principala a fiecaruibloc Aii este parte din diagonala principala a matricei). Spunem ca A este blocdiagonala daca Aij = 0, pentru i 6= j; A este bloc superior triunghiulara dacaAij = 0, pentru i > j, etc. Este evident ca, ın general, o matrice bloc diagonala nueste diagonala, o matrice bloc triunghiulara nu este triunghiulara etc.

Structura la nivel de bloc este conservata la adunare daca matricele operand suntpartitionate conform pentru adunare. Pentru ınmultire, este adevarat analogul lanivel de bloc al propozitiei 1.2, adica, de exemplu, produsul a doua matrice blocsuperior (inferior) triunghiulare partitionate conform este o matrice bloc superior(inferior) triunghiulare.

AA. Inmultire la nivel de bloc. Pe calculatoarele cu memorie ierarhica, custructura sugerata ın figura 0.4c, partitionarea matricelor ın blocuri si utilizarea uneirelatii de tipul (1.33) poate conduce la o eficienta sporita a ınmultirii de matrice.

Consideram, pentru simplitate, matricele patrate A,B ∈ Rq×q si dorim sa cal-

culam produsul lor C = AB. Partitionam A, B si C ca ın (1.31), cu mentiuneaca acum m = n, p = l, iar toate blocurile sunt patrate si au aceleasi dimensiuni,

Page 58: metode de calcul numeric matriceal. algoritmi fundamentali

44 CAPITOLUL 1. ALGORITMI ELEMENTARI

adica Aij ∈ Rr×r, r fiind numita dimensiunea blocurilor, iar m = q/r numarul de

blocuri; presupunem ca r divide dimensiunea matricelor q doar pentru a simplificaexpunerea.

Exprimam produsul matriceal ca ın (1.33), deci

Cij =

m∑

k=1

AikBkj . (1.35)

Pe un calculator cu memorie ierarhica trebuie minimizat traficul ıntre memoriaprincipala 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 sapoata fi stocate simultan ın MR (deci, 3r2 < dim(MR)), atunci putem construiun algoritm de calcul al produsului matriceal bazat pe ideea de a aduce, pe rand,blocurile Aik, Bkj implicate ın suma din (1.35), din MP ın MR, si abia apoi de aefectua ınmultirea lor.

Algoritmul 1.15 (Se dau matricele A, B. Se calculeaza produsulmatriceal C = AB, la nivel de bloc. Se presupune ca variabilele X , Y siZ se gasesc ın MR.)

1. Pentru i = 1 : m1. Pentru j = 1 : m

1. Z ← 02. Pentru k = 1 : m

1. X ← Aik, Y ← Bkj

2. Z ← Z +X · Y3. Cij ← Z

Comentarii. In acest algoritm, atribuirile din instructiunea 1.1.2.1 reprezinta defapt transferuri din MP ın MR; analog, ın instructiunea 1.1.3 se executa un transferdin MR ın MP. Operatia 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; esential este faptul ca toatevariabilele implicate se gasesc ın MR, deci nu e necesar nici un transfer din/spre MP.

Lucrand la nivel de blocuri, numarul de operatii ramane neschimbat, adica 2q3;ın schimb, numarul de accesuri la MP devine 2r2m3 = 2q2m = 2q3/r (instructiunea1.1.2.1 se executa de m3 ori, de fiecare data transferandu-se doua blocuri cu r2

elemente).Daca s-ar folosi algoritmul 1.10 la nivel de element pe un calculator cu memorie

ierarhica, fiecare operatie cij ← cij + aikbkj ar implica cel putin doua transferuridin MP ın MR (putem presupune ca cij ramane ın MR cat timp este calculat). Aravea loc deci aproximativ 2q3 accesuri la MP.

In concluzie, fata de versiunea la nivel de element, ın algoritmul 1.15 la nivelde bloc se acceseaza de r ori mai putin memoria principala, ceea ce conduce la ocrestere semnificativa de viteza. ♦

Sa rezumam ideea eficientizarii algoritmilor pe calculatoare cu memorie ier-arhica; ea va fi folosita si ın rezolvarea altor probleme. Se partitioneaza matricele deintrare ın blocuri si se exprima algoritmul ın operatii ıntre blocuri (aceasta e banal

Page 59: metode de calcul numeric matriceal. algoritmi fundamentali

1.7. MATRICE BLOC 45

la produsul matriceal, dar mai complicat la alte probleme); dimensiunile blocurilorse aleg cat mai mari (de obicei), dar astfel ıncat toate blocurile implicate ıntr-ooperatie sa ıncapa simultan ın MR.

Algoritmul Strassen. Aparent, prin ınsasi definitia ei (algoritmul numitgeneric ”standard”, ın continuare), ınmultirea a doua matrice n × n reale nece-sita 2n3 flopi. Exista ınsa o multitudine de algoritmi, numiti global ”rapizi”, desi sebazeaza pe idei diferite, care au o complexitate aritmetica mai mica. Primul dintreacestia, si singurul dovedit utilizabil ın practica (ımpreuna cu unele variante), estecel descoperit ın 1969 de Strassen [?].

Fie A,B ∈ Rn×n si, pentru simplitate, consideram ca n este divizibil cu 2.Partitionam matricele A, B si C = AB ın blocuri de dimensiune n/2× n/2, adica

A =

[A11 A12

A21 A22

]

, B =

[B11 B12

B21 B22

]

, C =

[C11 C12

C21 C22

]

. (1.36)

Algoritmul lui Strassen este definit de formulele urmatoare, usor de verificat prinsimpla substitutie:

C = A · B =

[M1 +M2 +M3 −M4 M4 +M6

M3 +M5 M1 −M5 +M6 +M7

]

M1 = (A11 +A22) · (B11 +B22) M5 = (A21 +A22) ·B11

M2 = (A12 −A22) · (B21 +B22) M6 = A11 · (B12 −B22)M3 = A22 · (B21 −B11) M7 = (A21 −A11) · (B11 +B12)M4 = (A11 +A12) · B22

(1.37)Se observa ca pentru calculul matricei C sunt necesare 7 ınmultiri si 18 adunari

de matrice de dimensiune n/2× n/2, ın timp ce ın algoritmul standard la nivel debloc se fac, pentru aceeasi partitionare (1.36), 8 ınmultiri si 4 adunari de blocuri.

Astfel, numarul de operatii pentru algoritmul Strassen este N1(n) = 14n3

8 + 18n2

4 .Este evident ca, pentru n suficient de mare (mai precis n > 18), N1(n) < 2n3 si decialgoritmul Strassen este mai rapid decat cel standard. In schimb, implementareaformulelor (1.37) necesita memorie suplimentara pentru rezultatele intermediare.

Un numar de operatii si mai bun se obtine daca, pentru calculul celor 7 pro-duse de matrice n/2 × n/2 din (1.37) se utilizeaza, recursiv, aceleasi formule alelui Strassen. La fiecare nivel de recursie dimensiunea problemei se ınjumatateste(simplificand, presupunem acum ca n este o putere a lui 2). Recursia are loc panacand se atinge o dimensiune n0 suficient de mica, pentru care algoritmul standardeste mai eficient decat cel al lui Strassen. Numarul de operatii N(n) este definit derecurenta

N(n) = 7N(n

2) + 18

n2

4, N(n0) = 2n3

0, (1.38)

a carei solutie, pentru n≫ n0, este de ordinul

N(n) = O(nlog2 7), (log2 7 ≈ 2.807). (1.39)

Vezi problema 1.20 pentru solutia exacta.

Page 60: metode de calcul numeric matriceal. algoritmi fundamentali

46 CAPITOLUL 1. ALGORITMI ELEMENTARI

In practica, dimensiunea n0 este mai mare decat 18 (dar de obicei n0 < 100),datorita operatiilor nearitmetice suplimentare necesare ın algoritmul Strassen, ınspecial alocarilor de memorie si apelurilor recursive. Asadar, acest algoritm esteeficient pentru ınmultirea matricelor mari, cu dimensiuni de ordinul sutelor saumiilor.

In privinta stabilitatii numerice algoritmul Strassen este inferior celui standard,de aceea trebuie utilizat cu anume precautii. Recomandam referintele [IX], [?]cititorului interesat.

1.8 Matrice normale

In aceasta sectiune vom lucra ın principal cu matrice patrate, din Rn×n, specificandexplicit celelalte cazuri.

O matrice A ∈ Rn×n se numeste normala daca ATA = AAT .Matricele normale au proprietati 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 = AT ;

2. matricele antisimetrice, care satisfac A = −AT ;

3. matricele ortogonale, pentru care ATA = I.

Fie A ∈ Rn×n; se numeste forma biliniara asociata matricei A functiaf : Rn×Rn → R, f(x, y) = xTAy =

∑ni=1

∑nj=1 aijxiyj . Se observa ca functia este

liniara ın fiecare din cele doua argumente luate separat, ceea ce ıi justifica numele.

Matrice simetrice. Matricea A este simetrica daca A = AT , adica aij = aji,∀i, j ∈ 1 : n. Asadar simetria este fata de diagonala principala a matricei; se observaca pentru o matrice nepatrata notiunea de simetrie nu are sens, A si AT neavandaceleasi dimensiuni.

Suma si produsul cu scalari conserva simetria, adica daca matricele A, B suntsimetrice si α ∈ R, atunci A + B si αA sunt simetrice. In schimb, ın gene-

ral, produsul AB nu este simetric; considerati, de exemplu, A =

[1 11 2

]

si

B =

[1 11 1

]

.

Matrice antisimetrice. Matricea A este antisimetrica daca A = −AT , adicaaij = −aji, ∀i, j ∈ 1 : n. Evident, elementele sale diagonale sunt nule.

Forma patratica asociata unei matrice simetrice este functia g : Rn → R,g(x) = xTAx =

∑ni=1

∑nj=1 aijxixj . Forma patratica este un polinom omogen de

gradul 2, ın n variabile; de asemenea, se observa ca g(x) = f(x, x), unde f esteforma biliniara asociata matricei A 7.

7Formele patratice se asociaza numai matricelor simetrice din urmatorul motiv: daca A nu esimetrica, luand A = (A + AT )/2 se vede ca xT Ax = xT Ax, ∀x ∈ Rn, si A este simetrica. Sanotam ca B = (A− AT )/2 se numeste componenta antisimetrica, iar xT Bx = 0.

Page 61: metode de calcul numeric matriceal. algoritmi fundamentali

1.8. MATRICE NORMALE 47

Matricele simetrice si formele patratice asociate pot avea ”semn”, ın sensuldefinit ın continuare.

O matrice simetrica A este pozitiv definita daca xTAx > 0, pentru orice vectorx ∈ Rn, x 6= 0; se noteaza A > 0, dar, atentie, aceasta nu ınseamna ca toate

elementele matricei sunt pozitive; de exemplu,

[2 −1−1 2

]

este pozitiv definita,

deoarece 2x21 − 2x1x2 + 2x2

2 > 0, ∀[x1 x2]T 6= 0, ınsa

[1 22 1

]

nu este, deoarece

x21 − 4x1x2 + x2

2 poate avea orice semn cand x1, x2 ∈ R. Matricea A este pozitivsemidefinita daca xTAx ≥ 0, ∀x ∈ Rn, ceea ce se noteaza A ≥ 0.

O matrice simetrica A este negativ (semi)definita daca −A este pozitiv (semi)-definita. O matrice simetrica care nu se ıncadreaza ın nici una dintre categoriile demai sus se numeste cu semn nedefinit.

Suma si produsul cu scalari pozitivi conserva semnul; de exemplu, daca A, Bsunt pozitiv definite si α > 0, atunci A+B si αA sunt pozitiv definite (demonstrati !).

Propozitia 1.3 O submatrice principala a unei matrice pozitiv definite A este po-zitiv definita. In particular, submatricele lider principale A[k], k ∈ 1 : n, suntpozitiv definite si toate elementele diagonale sunt pozitive.

Demonstratie. Fie I = i1, i2, . . . , ir, multimea de indici definind o submatriceprincipala A′ a matricei A. Pentru orice vector nenul x ∈ R

r, definim vectoruly ∈ Rn prin:

yik= xk, k = 1 : r,

yi = 0, i 6∈ I.Evident, x 6= 0 implica y 6= 0, si din pozitivitatea matricei A se deduce:xTA′x = yTAy > 0, adica A′ este pozitiv definita. ♦

Congruenta. Doua matrice simetrice A, B se numesc congruente daca existao matrice nesingulara T ∈ Rn×n astfel ıncat B = T TAT . Evident, A = T−TBT−1.(Demonstrati ca simetria este conservata de transformarea de congruenta.)

Daca A, B sunt congruente si A > 0, atunci B > 0, adica transformarea decongruenta conserva semnul. (Intr-adevar, xTBx = xTT TATx = (Tx)TA(Tx) > 0,pentru ca A > 0 si Tx 6= 0, daca x 6= 0, coloanele lui T fiind liniar independente.)

Matrice ortogonale. O matrice patrata Q ∈ Rn×n este ortogonala dacaQTQ = In; evident, avem QT = Q−1, deci transpusa matricei este chiar inversa ei,iar QQT = In. Partitionand Q pe coloane si exprimand QTQ prin produse scalare,definitia este echivalenta cu qT

i qj = 0, pentru i 6= j, si ‖qi‖2 = 1, adica matricea Qare coloanele vectori ortonormali.

In cazul ın care matricea nu este patrata, Q ∈ Rm×n, daca QTQ = In, atuncimatricea are coloanele ortonormale (m > n si QQT 6= Im). Daca QQT = Im, atuncimatricea are liniile ortogonale (m < n si QTQ 6= In).

Vom considera ın continuare doar matrice ortogonale patrate. Referitor laoperatiile elementare, vom observa ca produsul a doua matrice ortogonale esteo matrice ortogonala; ıntr-adevar, daca Q, U sunt amandoua ortogonale, atunci(QU)T (QU) = UTQTQU = UTU = I. Asadar, matricele ortogonale formeaza grupın raport cu ınmultirea, notat GO(n).

Page 62: metode de calcul numeric matriceal. algoritmi fundamentali

48 CAPITOLUL 1. ALGORITMI ELEMENTARI

De asemenea, transpusa unei matrice ortogonale este ortogonala, deoarece(QT )TQT = QQT = 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 siFrobenius.

Propozitia 1.4 Fie matricele ortogonale Q ∈ Rn×n, U ∈ Rm×m. Atunci:1. ‖Qx‖2 = ‖x‖2, ∀x ∈ Rn, deci ‖Q‖2 = 1.2. ‖UAQ‖2 = ‖A‖2, ‖UAQ‖F = ‖A‖F , ∀A ∈ Rm×n.

Demonstratie. 1. ‖Qx‖22 = (Qx)T (Qx) = xTQTQx = xTx = ‖x‖2.2. Aplicand punctul 1 avem

‖UA‖2 = max‖x‖2=1

‖U(Ax)‖2 = max‖x‖2=1

‖Ax‖2 = ‖A‖2.

Deoarece ImQ = Rn, aplicand din nou punctul 1 avem

‖AQ‖2 = max‖x‖2=1

‖AQx‖2 = max‖Qx‖2=1

‖A(Qx)‖2 = ‖A‖2.

Utilizand cele doua rezultate anterioare se obtine ‖UAQ‖2 = ‖AQ‖2 = ‖A‖2. ♦

Revenim acum putin la notiunea de echivalenta, prezentata ın sectiunea 1.4.Doua matrice A,B ∈ Rm×n se numesc ortogonal echivalente la dreapta (stanga),daca exista o matrice ortogonala Q ∈ Rn×n (Q ∈ Rm×m) astfel ıncat A = BQ (A =QB). A si B se numesc ortogonal echivalente daca exista Q ∈ Rm×m, P ∈ Rn×n

ortogonale astfel ıncat B = QTAP .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 ai = Qbi, sa observamca aT

i aj = bTi QTQbj = bTi bj , deci unghiurile dintre vectorii componenti ai bazei se

pastreaza la o transformare de echivalenta ortogonala (la stanga).

Proiectori. Fie o matrice P ∈ Rn×n si un subspatiu S ⊂ Rn. P se numesteproiector pe S daca ImP = S si P 2 = P . Justificare: daca x ∈ Rn, atunci Px ∈ImP = S, deci aplicarea proiectorului unui vector oarecare ıl va duce pe acesta ın S;Px este proiectia lui x pe S. Mai mult, P (Px) = Px, deci aplicarea proiectoruluinu modifica proiectia.

In general, orice matrice P astfel ıncat P 2 = P se zice matrice de proiectie 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. Justificare: daca x ∈ Rn, atunci Px ∈ ImP si P (x − Px) = 0, decix − Px ∈ KerP = KerPT , deci Px ⊥ (x − Px), adica x se descompune ca suma adoi vectori ortogonali ca ın figura 1.8.

Daca matricea B ∈ Rn×r are coloanele ortonormale (formand deci o baza or-togonala pentru ImB = S), atunci P = BBT este proiectie ortogonala pe S si, maimult, este unica (demonstrati !).

Particularitati ale matricelor complexe. Notiunile de simetrie si ortogona-litate se pot defini si pentru matrice complexe. Avand ın vedere definitia produsului

Page 63: metode de calcul numeric matriceal. algoritmi fundamentali

1.9. SISTEME DE ECUATII LINIARE 49

"""""""

"""""

*

-

6

S

x

Px

x− Px

Fig. 1.8: Actiunea unui proiector ortogonal pe S asupra unui vector oarecare x

scalar complex, mai utile sunt notiunile analoage obtinute (formal) prin ınlocuireatranspunerii prin transpunere si complex conjugare. Daca A ∈ C

n×n, se noteazacu AH = AT conjugata transpusei matricei A. Matricea A ∈ Cn×n se numestenormala daca AAH = AHA.

Matricea A ∈ Cn×n se numeste hermitica daca AH = A. In acest caz scalarulxHAx este real pentru orice x ∈ Cn. O matrice hermitica A ∈ Cn×n este pozitivdefinita daca xHAx > 0, ∀x ∈ Cn, x 6= 0. O matrice A ∈ Cn×n este unitara dacaAHA = I, adica are coloanele ortogonale ın Cn.

AA. Memorarea matricelor simetrice. Daca A ∈ Rn×n este simetrica, deciA = AT , nu este necesara memorarea ıntregii matrice, ci doar a unei ”jumatati”,mai precis a triunghiului inferior sau a celui superior. Memorarea se poate face ınvariantele discutate pentru matrice triunghiulare, ın sectiunea 1.6.

Desigur, acest mod de memorare va implica particularizari ale algoritmilor; vomexemplifica pentru produsul matrice-vector (Gaxpy) y ← Ax+ y, presupunand caA este memorata prin triunghiul superior. In exprimarea elementului yi,

yi ← yi +

n∑

j=1

aijxj = yi +

i−1∑

j=1

ajixj +

n∑

j=i

aijxj ,

ınlocuim elementele matricei A din linia i aflate ın triunghiul inferior, prin cele egaleaflate pe coloana i, ın triunghiul superior, dupa cum este sugerat ın figura 1.9.

Acelasi mod de memorare, printr-un singur triunghi, se utilizeaza si ın cazulmatricelor antisimetrice sau hermitice. Propunem cititorului adaptarea algoritmuluiGaxpy ın aceste doua cazuri.

1.9 Sisteme de ecuatii liniare

Un sistem de m ecuatii liniare cu n necunoscute are forma

a11x1 + a12x2 + . . .+ a1nxn = b1a21x1 + a22x2 + . . .+ a2nxn = b2. . .am1x1 + am2x2 + . . .+ amnxn = bm

, (1.40)

unde aij ∈ R, bi ∈ R, pentru i = 1 : m, j = 1 : n, sunt date si xj , j = 1 : n, sunt

Page 64: metode de calcul numeric matriceal. algoritmi fundamentali

50 CAPITOLUL 1. ALGORITMI ELEMENTARI

i

i

A x

Fig. 1.9: Utilizarea elementelor din triunghiul superior ın produsul dintre o matricesimetrica si un vector

necunoscutele. In forma matriceala, sistemul este

Ax = b, (1.41)

A fiind numita matricea coeficientilor, b termenul liber (sau partea dreapta a sis-temului), iar x vectorul necunoscutelor.

Daca termenul liber al sistemului este vectorul nul (b = 0), sistemul este numitomogen.

Prima caracteristica importanta a unui sistem liniar este relatia ıntre m si n:

• cand numarul de ecuatii este mai mare decat numarul de necunoscute (m > n),sistemul (1.41) se numeste supradeterminat;

• cand, dimpotriva, numarul de necunoscute este mai mare (n > m), sistemuleste numit subdeterminat;

• ın cazul unei matrice A patrate (m = n), sistemul (1.41) este determinat.

A gasi solutia sistemului liniar (1.41) ınseamna a calcula un vector x ∈ Rn astfelıncat egalitatea Ax = b sa fie satisfacuta. Desigur, aceasta se poate realiza doardaca sistemul are ıntr-adevar (cel putin) o solutie. Daca nu are, vom atribui o nouasemnificatie notiunii de ”solutie”, astfel ıncat sistemul sa aiba cel putin una. Dacaexista mai multe solutii, va trebui selectata, ıntr-un anume fel, una singura care vafi calculata.

Conditiile ın care sistemul (1.41) are solutie si ın care aceasta este unica suntbine cunoscute din algebra liniara.

Teorema 1.2 Sistemul liniar (1.41) are solutie daca si numai daca b ∈ ImA.

Daca ImA = Rm, adica A este epica (are liniile independente), atunci sistemul

(1.41) are solutie pentru orice termen liber b ∈ Rm si reciproc.

Demonstratia este imediata prin definitia lui ImA. ♦

Page 65: metode de calcul numeric matriceal. algoritmi fundamentali

1.9. SISTEME DE ECUATII LINIARE 51

-y2

y3

y1

ImA

1b 6∈ ImA

HHHH

HHYb ∈ ImA

6

Fig. 1.10: ImA si posibili b pentru exemplul 1.2

Exemplul 1.2 Daca A =

1 01 10 1

, atunci ImA este planul y2 = y1 + y3. Daca

b = [b1 b2 b3]T este astfel ıncat b2 = b1 + b3, atunci sistemul Ax = b are solutie

deoarece conditia din teorema 1.2 este ındeplinita. Altfel, sistemul nu are solutie(vezi figura 1.10). ♦

Cand solutia exista, unicitatea ei rezulta din

Teorema 1.3 1) Daca x0 ∈ Rn este o solutie particulara a sistemului liniar (1.41),

atunci multimea tuturor solutiilor sistemului este varietatea liniara

x0 + KerA = x = x0 + z | z ∈ KerA.

2) Solutia x este unica daca si numai daca KerA = 0, adica matricea A estemonica (are coloanele independente).

Demonstratie. Daca Ax0 = b, atunci z = x − x0 satisface Az = 0, deci z ∈ KerA;reciproc, Az = 0 implica A(x0 + z) = b. ♦

Exemplul 1.3 Daca A =

[1 1 00 1 1

]

si b =

[21

]

, atunci x0 =

110

este

solutie particulara pentru Ax = b. Pe de alta parte, KerA este dreapta descrisa dex1 + x2 = 0x2 + x3 = 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,

Page 66: metode de calcul numeric matriceal. algoritmi fundamentali

52 CAPITOLUL 1. ALGORITMI ELEMENTARI

-

x2

x3

x19

•O

P

@@R

x0

KerAx+ KerA

6

:x

Fig. 1.11: Solutiile (x0 – solutie particulara, x – solutie generala) sistemului dinexemplul 1.3

si deci (vezi figura 1.11),

x+ KerA =

y =

1 + α1− αα

| α ∈ R

.

Corolar 1.1 Cand matricea A este patrata (A ∈ Rn×n), atunci urmatoarele afir-matii sunt echivalente:

i) ImA = Rn, i.e. sistemul (1.41) admite solutie unica pentru orice b ∈ Rn;ii) KerA = 0;iii) A este inversabila.Daca sistemul are solutie, aceasta se poate scrie

x = A−1b. (1.42)

Daca sistemul este omogen, atunci solutia unica este x = 0.

Trebuie subliniat ca (1.42) nu este o formula adecvata calculului numeric alsolutiei sistemului Ax = b. Vom vedea ın capitolul 2 metode numerice eficiente siprecise pentru a face acest lucru.

Cand sistemul (1.41) nu are solutie, este convenabil sa definim pseudosolutia x∗

ca vectorul care minimizeaza o norma a reziduului r = b−Ax. Este evident ca dacab ∈ ImA, atunci aceasta pseudosolutie devine solutie adevarata a sistemului.

Cand sistemul (1.41) are mai multe solutii, o posibilitate de a selecta una dintreele este de a defini solutia normala x∗ de ”lungime” minima, lungimea fiind definitaprintr-o norma adecvata.

Vom reveni asupra acestor definitii ın capitolul 3, acolo unde vom prezenta sialgoritmi de calcul al solutiilor astfel definite.

Page 67: metode de calcul numeric matriceal. algoritmi fundamentali

1.9. SISTEME DE ECUATII LINIARE 53

Determinantul. Fie o matrice patrata A ∈ Rn×n; determinantul matricei A

este un numar real, notat det(A), pe care ıl vom defini recursiv. Daca Anot= a ∈ R,

atunci det(A) = a. Pentru A ∈ Rn×n,

det(A) =

n∑

j=1

(−1)j+1 a1j det(A1j),

unde A1j ∈ R(n−1)×(n−1) este matricea obtinuta din A prin eliminarea liniei 1 si

coloanei j.Cateva proprietati importante ale determinantului sunt:1. det(I) = 1;2. det(αA) = αndet(A), ∀α ∈ R;3. det(AT ) = det(A);4. det(AB) = det(A) · det(B).O matrice A ∈ Rn×n pentru care det(A) 6= 0 se numeste nesingulara. Se poate

demonstra ca notiunea de nesingularitate este echivalenta cu cea de inversabili-tate. Sa notam de acum ca ın rezolvarea numerica a sistemului determinat Ax = bnesingularitatea matricei A nu se verifica prin calculul determinantului, ci prin altemijloace, mult mai eficiente si sigure, dupa cum se va vedea ın capitolul 2. De aceeamai 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 elementelesale diagonale sunt nenule.

Algoritmii pentru rezolvarea sistemelor triunghiulare sunt foarte simpli, deoarecenecunoscutele pot fi calculate, ıntr-o ordine precizata, prin substitutie numerica.

Sa consideram ıntai un sistem inferior triunghiular, Lx = b, unde L ∈ Rn×n, cu

lij = 0 pentru i < j, lii 6= 0, i ∈ 1 : n, si b ∈ Rn. Prima ecuatie este l11x1 = b1, dincare

x1 = b1 / l11. (1.43)

In general, daca se cunosc x1, x2, . . . , xi−1, se poate rezolva a i-a ecuatie,

i−1∑

j=1

lijxj + liixi = bi,

pentru a obtine

xi =

bi −i−1∑

j=1

lijxj

/ lii. (1.44)

Formulele (1.43) si (1.44) definesc un algoritm pentru calculul solutiei sistemuluiLx = b, cunoscut ca metoda substitutiei ınainte.

Algoritmul 1.16 (LTRIS – Calculul solutiei unui sistem inferiortriunghiular) (Se dau L ∈ R

n×n, inferior triunghiulara, inversabila, sib ∈ Rn. Se calculeaza solutia x a sistemului Lx = b.)

Page 68: metode de calcul numeric matriceal. algoritmi fundamentali

54 CAPITOLUL 1. ALGORITMI ELEMENTARI

1. x← b2. Pentru i = 1 : n

1. Pentru j = 1 : i− 11. xi ← xi − lijxj

2. xi ← xi / lii

Comentarii. Bucla Pentru interioara se poate ınlocui cu un apel la produsulscalar DOT(L(i, 1 : i− 1), x(1 : i− 1)). Fiecare executie a buclei Pentru i necesita2(i− 1) flopi ın 2.1.1, pentru calculul sumei din (1.44), si 1 flop pentru ımpartireadin 2.2. In total, sunt necesari NLTRIS =

∑ni=1 (2(i− 1) + 1) = n(n− 1) + n = n2

flopi si MLTRIS = n(n+ 1)/2 + 2n+ 1 ≈ n2/2 locatii de memorie (pentru elementeın virgula mobila). Daca vectorul b nu este necesar ulterior, solutia x poate fimemorata ı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 proprietati se obtine daca schimbam ordinea celor douabucle, ceea ce revine la a parcurge matricea L pe coloane, nu pe linii. Substitutiadecurge acum astfel: dupa calculul lui x1 cu (1.43), se actualizeaza valorile celorlaltenecunoscute xi, i = 2 : n (initializate cu bi), cu termenul li1x1 care contribuie lasumele din (1.44); se poate calcula acum x2, dupa care se actualizeaza din nourestul necunoscutelor.

Algoritmul 1.17 (LTRIS – versiunea pe coloane) (Se dauL ∈ Rn×n, inferior triunghiulara, inversabila, si b ∈ Rn. Se calculeazasolutia x a sistemului Lx = b.)

1. x← b2. Pentru j = 1 : n

1. xj ← xj / ljj

2. Pentru i = j + 1 : n1. xi ← xi − lijxj

Comentarii. Se observa ca bucla Pentru interioara se poate ınlocui cu un apel laSaxpy(−x(j), L(j + 1 : n, :), x(j + 1 : n)). ♦

Datorita erorilor numerice, executia algoritmului LTRIS nu produce x = L−1b,ci o solutie aproximativa x. Se poate demonstra ca acest x satisface

(L+ F )x = b, cu |fij | ≤ nεM |lij |+ O(ε2M ), (1.45)

adica x este solutia unui sistem cu matricea coeficientilor usor perturbata fatade L. Asadar algoritmul LTRIS este numeric stabil. (Acesta este un rezultat tipicde analiza inversa a erorilor.) Practica numerica arata o acuratete a algoritmuluiLTRIS mult superioara celei indicate de (1.45).

Pentru a rezolva sistemul superior triunghiular (nesingular) Ux = b, undeU ∈ R

n×n este o matrice superior triunghiulara, cu uii 6= 0, i ∈ 1 : n, si b ∈ Rn, sa

observam ca ultima ecuatie are forma unnxn = bn, iar de aici

xn = bn/unn. (1.46)

Page 69: metode de calcul numeric matriceal. algoritmi fundamentali

1.9. SISTEME DE ECUATII LINIARE 55

Mai mult, daca xn, xn−1, . . . , xi+1, sunt deja calculate, atunci, din a i-a ecuatie,

uiixi +n∑

j=i+1

uijxj = bi,

se obtine

xi =

bi −n∑

j=i+1

uijxj

/uii. (1.47)

Din formulele (1.46) si (1.47), care definesc asa numita substitutie ınapoi, obtinemdirect algoritmul urmator.

Algoritmul 1.18 (UTRIS – Calculul solutiei unui sistem superiortriunghiular) (Se dau U ∈ Rn×n, superior triunghiulara, inversabila, sib ∈ Rn. Se calculeaza solutia x a sistemului Ux = b.)

1. x← b2. Pentru i = n : −1 : 1

1. Pentru j = i+ 1 : n1. xi ← xi − uijxj

2. xi ← xi/uii

Perfect analog cu algoritmul 1.17 avem versiunea pe coloane a UTRIS.

Algoritmul 1.19 (UTRIS – versiunea pe coloane) (Se dauU ∈ Rn×n, superior triunghiulara, inversabila, si b ∈ Rn. Se calculeazasolutia x a sistemului Ux = b.)

1. x← b2. Pentru j = n : −1 : 1

1. xj ← xj/ujj

1. Pentru i = 1 : j − 11. xi ← xi − uijxj

Comentarii. Ca si ın cazul inferior triunghiular, efortul de calcul esteNUTRIS = n2

flopi, iar memoria ocupata MUTRIS ≈ n2/2 locatii ın virgula mobila. Vom apelaacest algoritm prin x = UTRIS(L, b). Si pentru algoritmul UTRIS este valabilao relatie de genul (1.45), i.e. algoritmul de mai sus este numeric stabil. Rezolvareasistemelor triunghiulare este o operatie de nivel 2. ♦

AA. Sisteme triunghiulare cu parte dreapta multipla. Se spune despreun sistem de forma AX = B, cu A ∈ Rn×n, B ∈ Rn×p (rezultand X ∈ Rn×p), cup > 1, ca este un sistem cu parte dreapta multipla. Desigur, a rezolva AX = B estematematic echivalent cu a calcula X = A−1B. Partitionand X si B pe coloane,rezolvarea sistemului AX = B se poate reduce rezolvarea a p sisteme de forma(1.41), Axj = bj , j ∈ 1 : p.

Consideram A inferior triunghiulara. Prezentam o varianta bloc de rezolvare asistemului AX = B, adecvata calculatoarelor cu memorie ierarhica. Partitionamsistemul astfel

Page 70: metode de calcul numeric matriceal. algoritmi fundamentali

56 CAPITOLUL 1. ALGORITMI ELEMENTARI

A11 0 . . . 0A21 A22 . . . 0...

.... . . 0

Am1 Am2 . . . Amm

X1

X2

...Xm

=

B1

B2

...Bm

, (1.48)

ın care Aij ∈ Rr×r, iar Bi, Xi ∈ Rr×p. Evident, blocurile diagonale Aii sunt inferiortriunghiulare. Se presupune ca r divide n si fie m = n/r.

Sistemul (1.48) se rezolva ın mod analog cu sistemul inferior triunghiular cu osingura parte dreapta, tratat mai sus. Bloc linia i a sistemului (1.48) conduce la orelatie asemanatoare cu (1.44):

i∑

j=1

AijXj = Bi =⇒ AiiXi = Bi −i−1∑

j=1

AijXj, (1.49)

din care se poate deduce un algoritm similar cu LTRIS (prin substitutie ınainte).Pe un calculator cu memorie ierarhica (figura 0.4c), A, B si X sunt stocate ınmemoria principala MP. Alegem r astfel ıncat blocurile Aij , Xj si Bi sa poata fistocate simultan ın memoria rapida MR (deci r2 + 2rp < dim(MR)). Algoritmulurmator se bazeaza pe ideea aducerii acestor blocuri ın MR si apoi a efectuariicalculelor din (1.49).

Algoritmul 1.20 (Se dau A ∈ Rn×n, inferior triunghiulara, in-versabila, si B ∈ Rn×p. Se rezolva sistemul AX = B. Se utilizeazavariabilele C, D, Z ın MR.)

1. Pentru i = 1 : m1. D ← Bi

2. Pentru j = 1 : i− 11. C ← Aij , Z ← Xj

2. D ← D − CZ3. C ← Aii

4. rezolva sistemul triunghiular cu p.d.m. CZ = D(aplicand de p ori algoritmul LTRIS pentruCzj = dj , j ∈ 1 : p)

5. Xi ← Z

Comentarii. Toate operatiile aritmetice, ın numar de pn2 (de p ori mai multedecat pentru algoritmul LTRIS aplicat unui sistem Axj = bj), se efectueaza cuoperanzi din MR. Instructiunile 1.1, 1.2.1, 1.3, 1.5 reprezinta transferuri ıntre MPsi MR; numarul acestor transferuri este de

m∑

i=1

i−1∑

j=1

(r2 + rp) + r2 + rp

≈ pn2

2r+n2

2,

sensibil mai mic decat ın cazul ın care operanzii s-ar fi aflat ın MP (atunci ar fi fostaproximativ 2pn2 accesuri la MP).

Page 71: metode de calcul numeric matriceal. algoritmi fundamentali

1.9. SISTEME DE ECUATII LINIARE 57

Rezolvarea sistemelor triunghiulare cu parte dreapta multipla face parte dingrupul operatiilor de nivel 3. ♦

AA. Inversarea matricelor triunghiulare. Fie L ∈ Rn×n o matrice inferiortriunghiulara; presupunem ca L este inversabila, adica lii 6= 0, i ∈ 1 : n. Pentru acalcula X = L−1, utilizam egalitatea evidenta

LX = In,

pe care o partitionam pe coloane

Lxj = ej , j ∈ 1 : n, (1.50)

xj = Xej fiind cea de-a j-a coloana a matricei X . Sistemul inferior triunghiular(1.50) poate fi rezolvat ın mod eficient prin adaptarea algoritmului LTRIS la formaparticulara a termenului drept. Intr-adevar, sistemul (1.50) poate fi partitionatastfel: [

L(j)11 0

L(j)21 L

(j)22

][x′jx′′j

]

=

[0e′′j

]

, (1.51)

unde L(j)11 este submatricea de dimensiune (j − 1)× (j − 1) din coltul stanga sus al

matricei L sie′′j = [1 0 . . . 0]T ∈ R

n−j+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 , relatia (1.52)

devine

x′j = 0,

L(j)22 x

′′j = e′′j .

(1.53)

Aceasta relatie stabileste un fapt important, dat de

Propozitia 1.5 Inversa unei matrice inferior triunghiulare nesingulare este infe-rior triunghiulara.

In concluzie, matricele inferior triunghiulare inversabile formeaza grup ın raportcu ınmultirea matriceala.

Din (1.53) poate fi dedus un algoritm de calcul al inversei unei matrice nesingu-lare, avand la baza urmatoarea schema de calcul:

L−1 1. Pentru j = 1 : n1. Daca j > 1 atunci x′j = 0

2. x′′j = LTRIS(L(j)22 , e

′′j )

Se poate observa ca inversa calculata poate fi memorata ın aceeasi zona dememorie ca matricea L. Explicitand rezolvarea sistemului inferior triunghiular,obtinem

Page 72: metode de calcul numeric matriceal. algoritmi fundamentali

58 CAPITOLUL 1. ALGORITMI ELEMENTARI

Algoritmul 1.21 (LINV – Calculul inversei unei matrice inferiortriunghiulare) (Se da L ∈ Rn×n, inferior triunghiulara si inversabila. Secalculeaza pe loc ın L inversa acesteia.)

1. Pentru j = 1 : n1. ljj ← xjj = 1 / ljj

2. Pentru i = j + 1 : n

1. lij ← xij = −(∑i−1

k=j likxkj

)

/ lii

Comentarii. Numarul de operatii necesar este

NLINV = n+n−1∑

j=1

n∑

i=j+1

2(i− j) ≈ n3

3.

Memoria necesara este MLINV ≈ n2/2 locatii ın virgula mobila. Se vede acum carezolvarea sistemului liniar Lx = b folosind relatia x = L−1b (adica LINV) esteineficienta ın comparatie cu algoritmul direct LTRIS. ♦

Pentru a calcula inversa unei matrice superior triunghiulare nesingulareU ∈ Rn×n, trebuie rezolvata ecuatia matriceala UX = In, sau, echivalent, celen ecuatii liniare

Uxj = ej , j = 1 : n, (1.54)

unde xj este coloana j a matricei X = U−1.Utilizand partitia

[

U(j)11 U

(j)12

0 U(j)22

][x′jx′′j

]

=

[e′j0

]

, (1.55)

unde U(j)11 este submatricea de dimensiune j × j din coltul stanga sus a lui U si

e′j = [0 0 . . . 0 1]T ∈ Rj , si urmand o cale asemanatoare celei parcurse pentru inver-sarea matricelor inferior triunghiulare, se obtin analoagele relatiei (1.53), propozitiei1.5 si algoritmului LINV. Avem:

U(j)11 x

′j = e′j ,

x′′j = 0.(1.56)

Propozitia 1.6 Inversa unei matrice superior triunghiulare nesingulare este supe-rior triunghiulara.

Asadar matricele superior triunghiulare inversabile formeaza grup ın raport cuınmultirea.

Daca sistemele (1.56) sunt rezolvate ın ordine inversa (pentru j = n, n−1, . . . , 1),se poate vedea cu usurinta ca elementele matricei inverse se pot memora peste celeale matricei originale, pe masura ce sunt calculate. Vom obtine deci urmatorulalgoritm.

Page 73: metode de calcul numeric matriceal. algoritmi fundamentali

1.10. VALORI SI VECTORI PROPRII 59

Algoritmul 1.22 (UINV – Calculul inversei unei matrice superiortriunghiulare) (Se da U ∈ Rn×n, superior triunghiulara si inversabila.Se calculeaza pe loc ın U inversa acesteia.)

1. Pentru j = n : −1 : 11. ujj ← xjj = 1/ujj

2. Pentru i = j − 1 : −1 : 1

1. uij ← xij = −(∑j

k=i+1 uikxkj

)

/uii

Comentarii. Ca ın cazul inferior triunghiular, NUINV ≈ n3/3 si MUINV ≈ n2/2.Algoritmii de inversare a matricelor triunghiulare sunt numeric stabili. ♦

1.10 Valori si vectori proprii

Fie A ∈ Cn×n. Numarul λ ∈ C se numeste valoare proprie a matricei A daca existaun vector v ∈ Cn, v 6= 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, α 6= 0.Asadar, vectorii proprii sunt determinati numai ca directie, nu si ca marime.

Teorema 1.4 Fie A ∈ Cn×n. Scalarul λ ∈ C este valoare proprie a matricei Adaca si numai daca matricea λI − A este singulara. Mai mult, matricea A areexact n valori proprii (numarand separat valorile proprii multiple), care coincid cuzerourile polinomului caracteristic

p(λ) = det(λIn −A). (1.58)

Daca A ∈ Rn×n, valorile proprii apar ın perechi complex conjugate (iar vectorii

proprii asociati acestor perechi pot fi alesi complex conjugati).

Demonstratie. Daca λ este valoare proprie a matricei A, atunci exista un vectorv 6= 0 astfel ıncat Av = λv, deci (λIn − A)v = 0 si ın consecinta λIn − A estesingulara. Reciproc, daca pentru un λ ∈ C matricea λIn −A este singulara, atunciexista v ∈ Cn, v 6= 0, astfel ıncat (λIn − A)v = 0, adica Av = λv si deci λ estevaloare proprie a matricei A.

Deoarece λIn−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 fundamentalaa 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 coeficienti reali si atuncizerourile sale complexe apar ın perechi complex conjugate (pentru vectori proprii,vezi problema 1.28). ♦

Ca o consecinta directa a faptului ca valorile proprii sunt radacinile ecuatieidet(λIn − A) = 0, sa observam ca daca A este diagonala sau triunghiulara, atuncivalorile sale proprii sunt chiar elementele diagonale.

Page 74: metode de calcul numeric matriceal. algoritmi fundamentali

60 CAPITOLUL 1. ALGORITMI ELEMENTARI

Notam prin

λ(A) = λ1, λ2, . . . , λn = λ ∈ C | det(λI −A) = 0 (1.59)

multimea valorilor proprii ale matricei A ∈ Cn×n (cu repetarea valorilor propriimultiple). Multimea λ(A) se numeste spectrul matricei A.

Transformari de asemanare. Suntem interesati de transformarile care con-serva spectrul unei matrice date; se observa ca valorile proprii nu sunt conservateın urma premultiplicarii sau postmultiplicarii cu o alta matrice.

Doua matrice A,B ∈ Cn×n sunt numite asemenea daca exista o matrice nesin-gulara T ∈ Cn×n astfel ıncat

B = TAT−1. (1.60)

T se numeste transformare de asemanare. Daca T este unitara (ortogonala, ın cazulreal), atunci A si B sunt ortogonal asemenea.

Teorema 1.5 Doua matrice asemenea A,B ∈ Cn×n au acelasi spectru, adicaλ(A) = λ(B). Mai mult, daca T este matricea de transformare din (1.60) si dacavA este vector propriu al matricei A corespunzator valorii proprii λ ∈ λ(A), atuncivectorul

vB = TvA (1.61)

este vector propriu al matricei B, corespunzator aceleiasi valori proprii.

Demonstratie. 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 vA este vector propriu al matricei A corespunzator valoriiproprii λ, atunci AvA = λvA, sau TAT−1TvA = λTvA, de unde BvB = λvB si deci(1.61) este adevarata. ♦

Matrice simple. O matrice A ∈ Cn×n care are un set complet de n vectoriproprii liniar independenti se numeste simpla. Acesta este cazul generic si toto-data cel ın care proprietatile spectrale ale matricelor sunt mai ”vizibile”. Se poatedemonstra ca daca matricea A are n valori proprii distincte, atunci ea este simpla.

Teorema 1.6 Fie A ∈ Cn×n o matrice simpla si V ∈ Cn×n matricea ale careicoloane sunt vectorii proprii ai lui A. Atunci

V −1AV = Λ ∈ Cn×n (1.62)

este o matrice diagonala.

Demonstratie. V = [v1 v2 . . . vn] si Avj = λjvj , j ∈ 1 : n, unde λj sunt valorileproprii ale lui A. Atunci

AV = [Av1 Av2 . . . Avn] = [λ1v1 λ2v2 . . . λnvn] =

Page 75: metode de calcul numeric matriceal. algoritmi fundamentali

1.10. VALORI SI VECTORI PROPRII 61

= [v1 v2 . . . vn] diag(λ1, λ2, . . . , λn) = V Λ.

Deoarece vectorii vj , j ∈ 1 : n, sunt liniar independenti, matricea V este nesingularasi (1.62) este adevarata. ♦

Asadar o matrice simpla poate fi diagonalizata peste C printr-o transformare deasemanare. Nu aceasta este si abordarea numerica a problemei, care va fi discutatape larg ın capitolul 4.

Subspatii invariante. Fie A ∈ Cn×n si un subspatiu S ⊂ Cn; spunem ca Seste A-invariant daca Av ∈ S, ∀v ∈ S. (Definitia este identica pentru A ∈ Rn×n,S ⊂ Rn.)

Se observa usor ca daca S are o baza formata din vectori proprii ai matricei A,atunci S este A-invariant. Reciproca acestei afirmatii nu este, ın general, adevarata.

AA. Calculul vectorilor proprii ai matricelor triunghiulare. FieU ∈ Rn×n o matrice superior triunghiulara. Asa cum am observat mai sus, valorilesale proprii sunt λi = uii, i ∈ 1 : n. Dorim acum sa calculam vectorii proprii.

1. Consideram ıntai cazul ın care valorile proprii sunt distincte doua cate doua.Fie T = λjI−U ; vectorul propriu vj va fi calculat rezolvand sistemul liniar Tvj = 0,care poate fi partitionat

T11 y T13

0 wT

T33

v′jvjj

v′′j

= 0 ⇔

T11v′j + vjjy + T13v

′′j = 0

wT v′′j = 0T33v

′′j = 0

, (1.63)

unde v′j ∈ Rj−1, v′′j ∈ Rn−j . Valorile proprii fiind distincte, T11 si T33 sunt nesin-

gulare. Din (1.63), T33v′′j = 0, si deci v′′j = 0. Ecuatia wT v′′j = 0 este ıntotdeauna

satisfacuta iar vjj poate avea o valoare nenula oarecare, sa zicem vjj = 1. In fine,sistemul superior triunghiular T11v

′j = −y are solutie unica, care se poate calcula

cu algoritmul UTRIS.Vectorii proprii astfel calculati sunt liniar independenti, deoarece matricea

V = [v1 v2 . . . vn] este superior triunghiulara unitate; rezultatul e natural, deoareceU este simpla. Directiile vectorilor proprii sunt unic definite, marimile lor fiind alesearbitrar prin constrangerea vjj = 1.

2. Daca exista valori proprii multiple, atunci T va avea mai multe valori di-agonale nule. Putem alege ın continuare, ın (1.63), v′′j = 0, vjj = 1. Acum ınsa,T11 poate fi singulara, deci se pune problema daca sistemul superior triunghiularT11v

′j = −y are solutie. Procedand prin substitutie ınapoi, presupunem ca vjj = 1,

vj−1,j , . . . , vi+1,j au fost calculate si scriem ecuatia i a acestui sistem

tiivij = βij , cu βij = −tij −j−1∑

k=i+1

tikvkj . (1.64)

Daca tii 6= 0, evident ca ın (1.64) vij = βij / tii si substitutia poate continua. Dacatii = 0, sunt doua variante: fie βij = 0, si atunci vij din (1.64) poate avea o valoarearbitrara, de exemplu vij = 1, si substitutia continua; fie βij 6= 0, si atunci (1.64)nu este satisfacuta, deci sistemul (1.63) nu are solutie vj ; ın acest caz, matricea Ueste defectiva, adica nu are n vectori proprii liniar independenti.

Page 76: metode de calcul numeric matriceal. algoritmi fundamentali

62 CAPITOLUL 1. ALGORITMI ELEMENTARI

Consideratiile de mai sus conduc la urmatorul algoritm general, ın care matriceaT = λj − U nu se formeaza explicit

Algoritmul 1.23 (TRV – Calculul vectorilor proprii ai unei ma-trice superior triunghiulare) (Se da U ∈ Rn×n, superior triunghiulara.Se calculeaza vectorii proprii ai matricei U ın matricea V ; coloanele nuledin V desemneaza cazurile de defectivitate.)

1. V ← 02. Pentru j = 1 : n

1. vjj ← 12. Pentru i = j − 1 : −1 : 1

1. β ← uij +∑j−1

k=i+1 uikvkj

2. Daca uii 6= ujj atunci % tii 6= 01. vij ← β/(ujj − uii)

altfel daca β = 0 atunci

2. vij ← 1altfel % β 6= 03. vkj ← 0, cu k = i+ 1 : j4. treci la urmatorul j

Comentarii. Instructiunile 2.2.2.1, 2.2.2.2, 2.2.2.3 implementeaza cele trei cazuriposibile ın rezolvarea ecuatiei (1.64); ın 2.2.2.3 se refac zerourile din coloana ja matricei V , pentru a se marca necalcularea unui vector propriu. Numarul deoperatii este de cel mult n3/3 flopi.

Deoarece calculul valorii β este afectat de erori numerice, decizia β = 0 seimplementeaza efectiv printr-un test de genul |β| < cεM , unde c > 1 este o constantamica. In unele programe de calcul, cazurile de defectivitate sunt pur si simpluocolite; atunci cand uii = ujj , se ia fortat ın 2.2.2.1 ujj −uii = εM si se lucreaza casi cum matricea U are avea valori proprii distincte. Se obtin astfel ıntotdeauna nvectori proprii distincti; ın cazurile de defectivitate, vectorii proprii corespunzatoriaceleiasi valori proprii sunt aproape (cu o aproximatie de ordinul preciziei de calcul)coliniari. ♦

Cazul matricelor inferior triunghiulare se trateaza analog si e lasat ca exercitiu.

1.11 Rutinele BLAS

Am prezentat ın sectiunile anterioare algoritmi simpli adecvati calculatoarelor cumemorie ierarhica: 1.15 pentru ınmultirea de matrice si 1.20 pentru rezolvareasistemelor triunghiulare cu parte dreapta multipla. Pentru majoritatea problemelor,ınsa, algoritmii sunt complicati si efortul gasirii unei idei de adaptare poate fi consi-derabil; programatorul ar fi obligat sa cunoasca detalii arhitecturale si ale sistemuluide operare pentru calculatorul ın cauza. In plus, programul realizat ar functionadoar pe tipul respectiv de calculator, transferul pe un altul implicand rescriereapartiala.

Pentru a usura sarcina programatorului si pentru a realiza portabilitatea, aaparut ideea scrierii unor biblioteci de rutine fundamentale, putine la numar, dar

Page 77: metode de calcul numeric matriceal. algoritmi fundamentali

1.11. RUTINELE BLAS 63

S – real simpla precizie C – complex simpla precizieD – real dubla precizie Z – complex dubla precizie

GE - generala GB - generala bandaSY - simetrica SB - simetrica banda SP - simetrica ımpachetatHE - hermitica HB - hermitica banda HP - hermitica ımpachetatTR - triunghiulara TB - triungh. banda TP - triungh. ımpachetat

Tabelul 1.1: Conventii de nume ın BLAS: tipuri de date si structuri de matrice

implementate foarte eficient pe majoritatea calculatoarelor (de catre programatoriprofesionisti). Atunci, un program obisnuit va folosi cat mai mult aceste rutine, sicat mai putin alt gen de operatii; eficienta este asigurata, datorita adecvarii rutinelorde baza la arhitectura, iar efortul de programare este redus, datorita numaruluiredus al rutinelor.

Astfel s-au nascut (ıncepand din 1973, pana ın 1989) bibliotecile BLAS (BasicLinear Algebra Subroutines – rutine de baza ın algebra liniara), care s-au impus caun standard unanim acceptat si sunt implementate pe marea majoritate a calcula-toarelor de performanta. Exista trei nivele BLAS, ın fapt trei biblioteci distincteal caror continut trateaza operatii asemanatoare din punct de vedere al datelorimplicate:

• nivel 1: dedicat operatiilor vectoriale, de genul Saxpy sau DOT, care necesitaO(n) flopi. BLAS-1 este adecvat calculatoarelor vectoriale.

• nivel 2: dedicat operatiilor matrice-vector, de tipul Gaxpy sau rezolvare desisteme triunghiulare, care necesita O(n2) flops. Si BLAS-2 are aplicabilitateın special pe calculatoare vectoriale.

• nivel 3: operatii matrice-matrice, ca ınmultirea de matrice sau rezolvarea desisteme triunghiulare cu parte dreapta multipla, care necesita O(n3) flops.BLAS-3 este eficient ındeosebi pe calculatoare cu memorie ierarhica.

Prezentam ın continuare cateva din rutinele BLAS, insistand asupra nivelului 3,deoarece calculatoarele cu memorie ierarhica sunt tot mai raspandite.

Conventii de nume. Scrise initial ın FORTRAN, numele rutinelor sunt foartescurte (cel mult sase caractere) si de aceea greu de ınteles fara explicatii asupraconventiilor utilizate pentru stabilirea lor. In tabelul 1.1, prima litera a numeluiunei rutine indica tipul datelor, iar urmatoarele doua (numai pentru nivelele 2 si3), structura matricelor argumente ale functiei.

In fine, ultimele trei (uneori doua) litere — tot pentru nivelele 2 si 3 — codificaoperatia executata, dupa cum se va vedea imediat.

BLAS 1. Prezentam ın tabelul 1.2 cele mai importante rutine ale nivelului 1 alBLAS, fara a preciza argumentele lor, ci numai operatia realizata; ca si pana acum,x, y sunt vectori ın Rn sau Cn, iar α scalar. Prima litera a numelui, care arata tipuldatelor, este precizata ın ultima coloana.

Page 78: metode de calcul numeric matriceal. algoritmi fundamentali

64 CAPITOLUL 1. ALGORITMI ELEMENTARI

Nume Operatie PrefixexSWAP x↔ y S, D, C, ZxSCAL x← αx S, D, C, ZxCOPY x← y S, D, C, ZxAXPY y ← αx + y S, D, C, ZxDOT dot← xT y S, DxDOTU dot← xT y C, ZxDOTC dot← xHy C, ZxNRM2 nrm2← ‖x‖2 S, D, C, Z

Tabelul 1.2: Rutine din BLAS 1

Deoarece argumentele functiilor sunt asemanatoare, exemplificam cu un apeltipic:

SAXPY(N, ALFA, X, INCX, Y, INCY)

INCX reprezinta distanta, ın memorie, ıntre doua elemente succesive ale vectoru-lui al carui prim element se gaseste la adresa X. Argumentul INCX permite utilizareaca vectori, ın SAXPY, atat a coloanelor cat si a liniilor unei matrice. Sa presupunemca o matrice A este memorata ıntr-un tablou m × n, ın ordinea coloanelor (adicaa11, a21, . . . , am1, a12, . . . ). Atunci coloana j este reprezentata astfel: X este adresaelementului a1j (adica A+mjd, unde d este numarul de octeti necesari memorariiunui element), iar INCX = 1. Pentru a reprezenta linia i a matricei A, luam X adresaelementului ai1 (adica A+ id), iar INCX = m.

BLAS 2. Nivelul 2 al BLAS contine rutine pentru trei operatii: produsulmatrice-vector, rezolvarea sistemelor triunghiulare si produsul exterior, ın diversevariante pe care le enumeram ın continuare.

Rutinele care executa ınmultire matrice-vector de forma y ← αAx + βy aunumele de tipul xyyMV, ın care primele trei litere sunt cele din tabelul 1.1 (toatecombinatiile 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 operatiaA← αxyT +A, unde A este o matrice.

Nu dam un exemplu de apel, deoarece descrierea matricelor se face ca la rutinelede 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 BLASnivel 3 ın [?]. Ele sunt putine la numar, deoarece munca de creare a unei rutineoptime este dificila; chiar daca rutinele rezolva probleme relativ simple, arhitecturacomplicata implica folosirea aproape exclusiva a limbajului de asamblare; pe uncalculator CRAY, s-a ajuns chiar la 100 000 linii de program pentru o, ın aparentabanala, ınmultire de matrice.

Operatiile implementate de rutinele BLAS nivel 3 sunt esentialmente ın numarde doua: ınmultirea de matrice, ın cateva variante, si rezolvarea de sisteme triunghiu-lare cu parte dreapta multipla. Numele rutinelor sunt deja intrate ın uzul curent si

Page 79: metode de calcul numeric matriceal. algoritmi fundamentali

1.11. RUTINELE BLAS 65

?

6

M

?

6

- 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 prezentamodul efectiv de apel decat pentru prima rutina prezentata.

In cele ce urmeaza, A, B, C sınt matrice oarecare, cu dimensiuni oarecare,dar adecvate operatiilor, sau simetrice si patrate, T este o matrice triunghiulara,superior sau inferior, iar α si β sınt scalari.

1. xGEMM (GEneral Matrix Multiplication) – ınmultirea matrice-matrice, ın cazulgeneral. Modul complet de apel este:

xGEMM(TRANSA, TRANSB, M, N, K, ALFA, A, LDA, B, LDB, BETA, C, LDC)

Operatiile efectuate de rutina sınt prezentate ın tabelul urmator; C este ıntot-deuna de dimensiune m× n.

TRANSA = ’N’ TRANSA = ’T’TRANSB = ’N’ C ←− αAB + βC C ←− αATB + βC

A este m× k, B este k × n A este k ×m, B este k × nTRANSB = ’T’ C ←− αABT + βC C ←− αATBT + βC

A este m× k, B este n× k A este k ×m, B este n× k

Argumentele rutinei devin acum mai clare: TRANSA si TRANSB arata daca ma-tricele A, B se transpun sau nu; M, N, K sunt dimensiunile efective ale matricelor;LDA, LDB, LDC contin dimensiunea principala a variabilelor ın care sunt stocatematricele, presupuse memorate pe coloane. Semnificatia acestor variabile dimen-sionale este mai clara ın figura 1.12. Elementele de pe aceeasi linie se afla la distantaLDA ın memorie. Se mai poate observa ca patru variabile (analog cu A, M, K, LDA)sunt suficiente pentru utilizarea oricarei submatrice a matricei din figura.

Rutina acopera toate variantele de ınmultire a doua matrice, operatia de bazafiind C ← αAB + βC; transpunerea nu este lasata utilizatorului, deoarece poatefi mare consumatoare de timp daca se executa explicit (ın xGEMM nu se ıntamplaasa); la fel, ınmultirea matrice-scalar. Cum toate celelalte rutine BLAS nivel 3 auargumente de apelare asemanatoare, vom prezenta ın continuare doar operatia debaza implementata.

2. xSYMM (SYmetric Matrix Multiplication) – ınmultire matrice-matrice, cu unadin matrice simetrica:

Page 80: metode de calcul numeric matriceal. algoritmi fundamentali

66 CAPITOLUL 1. ALGORITMI ELEMENTARI

C ← αAB + βC. (1.65)

3. xSYRK (SYmmetric Rank-K update) – actualizare de rang k a unei matricesimetrice; A are dimensiune n× k.

C ← αAAT + βC. (1.66)

De obicei, k < n; de aici numele rutinei, AAT avand rang ≤ k.4. xSYR2K – actualizare de rang 2k a unei matrice simetrice:

C ← αABT + αBAT + βC. (1.67)

5. xTRMM (TRiangular Matrix Multiplication) – ınmultire matrice-matrice, cuuna dintre matrice triunghiulara:

B ← αTB. (1.68)

Evident, exista si varianta ın care T este la dreapta; de asemenea, T poate fi inferiorsau superior triunghiulara.

6. xTRSM (TRiangular system Solver, with Multiple right hand term) – cal-culeaza solutia unui sistem liniar triunghiular, cu parte dreapta multipla (TX = B):

X ← αT−1B. (1.69)

Si pentru aceasta rutina exista versiuni ın care necunoscuta este ın stanga (de genulXT = B); T este fie superior, fie inferior triunghiulara.

Ca pentru orice standard, alegerea setului de mai sus poate parea mai mult saumai putin arbitrara; principala justificare a alegerii este numarul mare de algoritmidin algebra liniara care folosesc rutine din setul propus.

Vom prezenta ın cursul acestei lucrari si algoritmi scrisi astfel ıncat marea ma-joritate a operatiilor sa apara ın executia unor rutine BLAS de nivel 3. Pentru acuantifica eficienta lor, introducem ponderea operatiilor de nivel 3 prin raportul

P3(n) =N3(n)

Ntotal(n). (1.70)

Ntotal(n) reprezinta numarul total de flopi necesari executiei algoritmului, iar N3(n)numarul de flopi executati ın rutinele din BLAS-3; ele depind (cel putin) de dimen-siunea problemei n.

Pe un calculator cu memorie ierarhica, un algoritm este cu atat mai bun cu catP3(n) este mai apropiata de 1; evident, P3(n) ≤ 1. Motivul este clar: pe un astfelde calculator, operatiile din rutinele BLAS-3 se executa mai rapid decat celelaltedeoarece memoria rapida este utilizata optim.

Page 81: metode de calcul numeric matriceal. algoritmi fundamentali

1.12. PROBLEME 67

1.12 Probleme

P 1.1 Demonstrati ca un subspatiu liniar ın Rn este un spatiu vectorial.

P 1.2 Scrieti algoritmi pentru calculul normelor 1 si ∞ ale unui vector x ∈ Rn.

P 1.3 (Cauchy-Buniakowski-Schwarz) Demonstrati ca |xT y| ≤ ‖x‖2‖y‖2, ∀x, y ∈ Rn.

P 1.4 Gasiti vectori liniar independenti x, y ∈ Rn care sa satisfaca ‖x+y‖p = ‖x‖p+‖y‖p,

pentru p = 1, 2,∞.

P 1.5 Demonstrati (1.6) pentru n = 2, apoi ın cazul general.

P 1.6 (Ortogonalizare Gram-Schmidt) Fie b1, . . . , bp o baza a unui subspatiu S ⊂ Rn.

Sa se gaseasca o baza ortogonala a1, . . . , ap a lui S procedand prin inductie: a1 = b1 siak+1 =

Pk

i=1 αikai + bk+1. (Evident, baza devine ortonormala prin normalizare.)

P 1.7 Fie x ∈ Rm si y ∈ R

n doi vectori, si A = xyT ∈ Rm×n produsul lor exterior.

Demonstrati ca rangA = 1.

P 1.8 Fie matricele A ∈ Rn1×n2 , B ∈ R

n2×n3 , C ∈ Rn3×n4 . Sugerati un algoritm de

calcul al produsului ABC.

P 1.9 Demonstrati ca maxi,j |aij | ≤ ‖A‖2 ≤√

mn maxi,j |aij |, ∀A ∈ Rm×n.

P 1.10 Demonstrati (1.29) si gasiti matrice pentru care inegalitatile (fie cele de majorare,fie cele de minorare) devin egalitati.

P 1.11 Fie B o submatrice a matricei A. Aratati ca ‖B‖p ≤ ‖A‖p.P 1.12 Demonstrati ca: 1. ‖A‖2 = max‖x‖2=1,‖y‖2=1 |yT Ax|; 2. ‖AT ‖2 = ‖A‖2;3. ‖AT A‖2 = ‖A‖22.P 1.13 Demonstrati ca daca A ∈ R

n×n 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

n×n o matrice strict inferior triunghiulara. Demonstrati ca Ln = 0.

P 1.15 Fie A,B ∈ Rn×n doua matrice banda, prima de latime p, a doua de latime q.

Demonstrati ca AB este o matrice banda de latime p + q si scrieti un algoritm pentrucalculul acestui produs.

P 1.16 Scrieti un algoritm pentru calculul produsului dintre o matrice inferior triunghiu-lara si una superior triunghiulara.

P 1.17 Aratati ca algoritmul 1.14 de ınmultire de matrice inferior triunghiulare se poateexecuta pe loc ın A. Cum trebuie modificat pentru a se putea executa pe loc ın B ?

P 1.18 Aratati ca submatricele lider principale ale unor matrice triunghiulare, Hessen-berg, simetrice sunt triunghiulare, Hessenberg, respectiv simetrice. Este afirmatia valabilapentru matrice ortogonale ?

P 1.19 Presupunem ca dispuneti de un algoritm general de rezolvare a sistemelor liniare.Indicati un mod eficient de rezolvare a sistemului Ax = b atunci cand A, partitionata caın (1.31), este patrata si bloc superior triunghiulara.

P 1.20 Demonstrati ca numarul de operatii N(n) al algoritmului Strassen, respectandrecurenta (1.38), este

N(n) =2n3

0 + 6n20

nlog 70

nlog 7 − 6n20.

Page 82: metode de calcul numeric matriceal. algoritmi fundamentali

68 CAPITOLUL 1. ALGORITMI ELEMENTARI

P 1.21 Daca A ∈ Rn×n este simetrica pozitiv definita, demonstrati ca ‖x‖A =

√xT Ax

este o norma vectoriala. (Indicatie: matricele simetrice sunt ortogonal diagonalizabile.)

P 1.22 Fie A ∈ Rn×n, simetrica pozitiv definita. Demonstrati ca A este inversabila si ca

A−1 este pozitiv definita.

P 1.23 a. Este clar ca o matrice triunghulara si simetrica este diagonala. Cum este omatrice triunghiulara si antisimetrica ?

b. Demonstrati ca o matrice triunghiulara si ortogonala este diagonala.c. Puteti extinde rezultatul ın cazul matricelor triunghiulare si normale ?

P 1.24 Scrieti algoritmi eficienti pentru rezolvarea sistemului Ax = b, cu A ∈ Rn×n si

b ∈ Rn, ın cazurile:

a. A inferior bidiagonala, adica aij = 0 pentru i < j sau i > j + 1.b. A inferior triunghiulara si banda de latime p (aij = 0 pentru i < j sau i > j + p).c. A superior bidiagonala.d. A superior triunghiulara si banda de latime p.

P 1.25 Adaptati algoritmii LINV si UINV pentru inversarea matricelor inferior, respec-tiv superior bidiagonale.

P 1.26 Propuneti algoritmi de rezolvare a sistemelor inferior (superior) triunghiulare,folosind operatiile vectoriale DOT sau Saxpy.

P 1.27 Prezentati un algoritm de rezolvare a sistemului inferior triunghiular Lx = b,stiind ca matricea L este memorata compact, pe linii (i.e. sunt memorate doar elementeledin triunghiul inferior, ın ordinea l11, l21, l22, l31 etc. Dar daca L este memorata pecoloane ?

P 1.28 Fie A ∈ Rn×n si x = u + iv ∈ C

n un vector propriu al sau, cu u, v ∈ Rn, v 6= 0.

Demonstrati ca:a. u− iv este vector propriu al matricei A.b. Vectorii u si v sunt liniar independenti iar subspatiul generat de ei ın R

n esteA-invariant.

P 1.29 Daca matricea A ∈ Rn×n are spectrul λ(A) = λ1, . . . , λn, atunci

tr(A) =Pn

i=1 λi, iar detA =Qn

i=1 λi. Puteti generaliza ?

P 1.30 Fie A ∈ Rn×n, simetrica pozitiv definita. Demonstrati ca toate valorile proprii

ale matricei A sunt (reale si) pozitive.

Page 83: metode de calcul numeric matriceal. algoritmi fundamentali

Capitolul 2

Rezolvarea sistemelor de

ecuatii liniare

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

Ax = b, (2.1)

unde A ∈ Rn×n este o matrice inversabila, iar b ∈ Rn este un vector dat. Asa cumam vazut ın sectiunea 1.9, ın virtutea conditiei de inversabilitate, sistemul (2.1) areo solutie unica x ∈ Rn.

In practica numerica actuala se folosesc doua categorii principale de metodenumerice sigure pentru determinarea acestei solutii:

• Metode directe, bazate pe reducerea sistemului (2.1), printr-o secventa finitade transformari elementare, la unul sau doua sisteme triunghiulare, care serezolva utilizand procedurile de substitutie cunoscute din sectiunea 1.9 (al-goritmii LTRIS si UTRIS). Din aceasta categorie fac parte metodele deeliminare gaussiana si de factorizare compacta LU , care sunt recomandatepentru sisteme de dimensiuni medii, sa zicem n < 500, dar aceasta limitadepinde de puterea calculatorului pe care rezolvam sistemul.

• Metode iterative, bazate pe construirea recursiva a unui sir de vectori careconverge catre solutia sistemului (2.1). Aceste metode sunt recomandate pen-tru sisteme de dimensiuni foarte mari, sau/si atunci cand matricea A are ostructura speciala, eventual rara.

Acest capitol este dedicat prezentarii celor mai importante metode directe derezolvare a sistemelor liniare.

Deoarece ın reducerea sistemului (2.1) la forma triunghiulara transformarilematricei A sunt primordiale, ın primele patru sectiuni ale capitolului vom trataaceste transformari ca subiect de sine statator. Algoritmii descrisi vor fi utilizatiın sectiunea 2.5 pentru rezolvarea efectiva a unui sistem (2.1), de forma generala.Ca probleme conexe, ın sectiunea 2.6 vor fi prezentati algoritmi de calcul al in-versei si determinantului unei matrice. Urmatoarele doua sectiuni sunt dedicate

69

Page 84: metode de calcul numeric matriceal. algoritmi fundamentali

70 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

analizei conditionarii unui sistem liniar si respectiv stabilitatii numerice a algo-ritmilor prezentati. De asemenea, sunt descrise unele metode de ımbunatatire aacuratetii solutiei numerice obtinute. In fine, ultimele sectiuni ale capitolului seocupa de cazuri particulare de sisteme liniare cu structura — banda, bloc, simetricesi pozitiv definite — care apar frecvent ın practica.

2.1 Transformari elementare

Transformarile matricei A necesare pentru rezolvarea sistemului (2.1) se pot descrieconcis si elegant ın termeni de operatii matriceale, mai precis ca produs ıntre Asi anumite matrice elementare. (In loc de produs sau ınmultire, vom vorbi despreaplicarea asupra lui A a matricei de transformare corespunzatoare.)

Definitia 2.1 O matrice inferior triunghiulara elementara (ITE) de ordin n si in-dice k este o matrice de forma

Mk = In −mkeTk , (2.2)

unde

mk = [0 0 . . . 0 µk+1,k . . . µnk ]T (2.3)

este un vector avand primele k componente nule, iar ek este vectorul unitate deindice k.

Din motive ce vor fi evidente ulterior, Mk se mai numeste transformare ele-mentara sau gaussiana, mk se numeste vector Gauss, iar scalarii µik se numescmultiplicatori (gaussieni).

Structura unei matrice elementare inferior triunghiulare de ordinul n si indice keste

Mk =

1 0 . . . 0 . . . 00 1 . . . 0 . . . 0

. . . . . .0 0 . . . 1 . . . 00 0 . . . −µk+1,k . . . 0

. . . . . .. . . 0

0 0 . . . −µnk . . . 1

.

Notam de acum faptul ca o matrice ITE este complet definita de vectorul mk

din (2.3); ın orice algoritm, matricea Mk nu se memoreaza integral, ci doar prinvectorul mk, i.e. prin multiplicatorii µik, i = k + 1 : n. Principalele proprietati aleunei astfel de matrice sunt rezumate ın urmatoarea propozitie.

Propozitia 2.1 a) O matrice ITE este inversabila si

M−1k = In +mke

Tk . (2.4)

Page 85: metode de calcul numeric matriceal. algoritmi fundamentali

2.1. TRANSFORMARI ELEMENTARE 71

b) Fie x ∈ Rn un vector dat, iar Mk o matrice ITE precizata. Atunci vectorultransformat y = Mkx are elementele

(Mkx)i =

xi, pentru i = 1 : k,xi − µikxk, pentru i = k + 1 : n.

(2.5)

c) Fie x ∈ Rn. Daca xk 6= 0, atunci exista o matrice ITE Mk astfel ıncatvectorul transformat y = Mkx are ultimele n− k componente nule, mai precis

(Mkx)i =

xi, pentru i = 1 : k,0, pentru i = k + 1 : n.

(2.6)

Daca xk = 0, atunci pentru orice Mk

Mkx = x. (2.7)

Demonstratie. a) Evident, det(Mk) = 1, adica Mk este inversabila. Mai mult,

Mk(In +mkeTk ) = (In −mke

Tk )(In +mke

Tk ) = In −mk(eT

kmk)eTk = In

deoarece, din (2.3), eTkmk = 0. Deci (2.4) este adevarata.

b) Utilizand (2.2), obtinem

Mkx = (In −mkeTk )x = x−mke

Tk x = xi − xkmk.

Scriind relatia de mai sus pe componente si tinand seama de (2.3), obtinem (2.5).c) Tinand seama de (2.5) si alegand

µik = xi/xk, i = k + 1 : n, (2.8)

rezulta (Mkx)i = 0, pentru i = k + 1 : n. Daca xk = 0, atunci (2.5) conduce directla (2.7). De observat ca, daca xk 6= 0, atunci matricea ITE definita de vectorulGauss cu elementele din (2.8) este unica matrice ITE de indice k care introducezerouri ın ultimele n− k componente ale vectorului x. ♦

Dupa cum vom vedea ın sectiunea urmatoare, proprietatile (2.6) si (2.7) suntcruciale ın reducerea unei matrice la forma triunghiulara.

Similar se introduce notiunea de matrice superior triunghiulara elementara (STE)sau transformare elementara ”retrograda”, ın care vectorul mk are ultimele k com-ponente nule. Propunem cititorului formularea si demonstrarea analoagei propo-zitiei 2.1.

Vom introduce acum notiunea de matrice de permutare, care permite descriereaconcisa a interschimbarilor de linii sau coloane ın termeni de operatii matriceale.

Definitia 2.2 O matrice Pij ∈ Rn×n obtinuta din matricea unitate In prin inter-schimbarea a doua coloane (sau linii) i si j, adica o matrice de forma (aici i < j):

Pij = [e1 e2 . . . ei−1 ej ei+1 . . . ej−1 ei ej+1 . . . en] =

Ii−1

0 1Ij−i−1

1 0In−j

Page 86: metode de calcul numeric matriceal. algoritmi fundamentali

72 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

ın care toate elementele nefigurate sunt nule, se numeste (matrice de) permutareelementara (PE).

Daca (i1, i2, . . . , in) este o permutare a multimii 1 : n, atunci matriceaP = [ei1 ei2 . . . ein

] este o matrice de permutare. Desigur, un produs de matriceelementare de permutare este o matrice de permutare si, reciproc, orice matrice depermutare se poate exprima ca produs de matrice PE.

Proprietatile matricelor elementare de permutare sunt expuse ın urmatoareapropozitie, a carei demonstratie e evidenta.

Propozitia 2.2 a) O PE este ortogonala si simetrica, deci P−1ij = Pij , iar

detPij = −1.

b) Premultiplicarea unei matrice A cu PE Pij interschimba linia i cu linia j dinA, adica:

eTk (PijA) =

eTkA, pentru k 6= i, j,eT

j A, pentru k = i,

eTi A, pentru k = j.

c) Postmultiplicarea unei matrice A cu PE Pij interschimba coloana i cu coloanaj din A, adica:

(APij)ek =

Aek, pentru k 6= i, j,Aej , pentru k = i,Aei, pentru k = j.

2.2 Triangularizare prin eliminare gaussiana

Fie A ∈ Rn×n (cazul A ∈ C

n×n este identic) o matrice nu neaparat inversabila.Eliminarea gaussiana este o metoda de reducere a matricei A la forma superiortriunghiulara prin aplicarea la stanga lui A a unei secvente Mk, k = 1 : n − 1,de matrice ITE, fiecare aleasa astfel ıncat sa anuleze elementele subdiagonale ıncoloana corespunzatoare ak a matricei A.

Pentru prezentarea metodei avem nevoie de doua rezultate cu caracter tehnic,a caror demonstratie e lasata cititorului.

Propozitia 2.3 Fie A ∈ Rn×n. a) Daca L ∈ Rn×n este inferior triunghiulara,atunci 1

(LA)[k] = L[k]A[k].

b) Daca Li ∈ Rn×n, i = 1 : p, sunt matrice inferior triunghiulare, atunci

(L1L2 . . . LpA)[k] = L[k]1 L

[k]2 . . . L[k]

p A[k].

Urmatoarea teorema stabileste conditiile ın care este posibila reducerea uneimatrice la forma triunghiulara, utilizand transformari ITE.

1Reamintim ca A[k] def= A(1 : k, 1 : k) este submatricea lider principala de ordin k a matricei A.

Page 87: metode de calcul numeric matriceal. algoritmi fundamentali

2.2. TRIANGULARIZARE PRIN ELIMINARE GAUSSIANA 73

Teorema 2.1 Daca matricea A ∈ Rn×n satisface conditia

(i) submatricele lider principale A[k], k = 1 : n− 1, sunt nesingulare,

atunci exista o matrice inferior triunghiulara unitate M astfel ıncat matricea

MA = U

este superior triunghiulara. Daca A este nesingulara, atunci U este nesingulara.

Demonstratia este constructiva, adica descrie o procedura pentru reducerea efectivaa matricei A la forma superior triunghiulara U . Procedura consta ın n− 1 pasi.

Pasul 1. Fie A1 = A si a1 = Ae1 prima sa coloana. Prin ipoteza, A[1]1 = A[1] =

= a11 6= 0. Din propozitia 2.1, exista o matrice ITE M1 astfel ıncat

(M1a1)i =

a11, pentru i = 1,0, pentru i = 2 : n,

adica matricea A2 = M1A1 are toate elementele subdiagonale ale primei coloaneegale cu zero:

A2 =

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

Ak = Mk−1 . . .M2M1A

este superior triunghiulara ın primele k − 1 coloane, i.e. are toate elementele sub-diagonale ale acestor coloane egale cu zero. Aplicand propozitia 2.3, obtinem

A[k]k = M

[k]k−1 . . .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 conditiei (i) din

enuntul teoremei avem

det(A[k]k ) =

k∏

i=1

a(k)ii = det(A[k]) 6= 0,

adica elementul a(k)kk , numit pivot, este nenul. Consideram partitionarea pe coloane

a matricei Ak:Ak = [ a

(k)1 a

(k)2 . . . a

(k)k . . . a(k)

n ].

Putem utiliza acum propozitia 2.1 pentru a conchide ca exista o matrice ITE Mk

astfel ıncat (Mka(k)k )i = 0, pentru i = k + 1 : n. Mai mult, premultiplicarea cu

Mk a matricei Ak nu altereaza primele k − 1 coloane si ın particular zerourile deja

Page 88: metode de calcul numeric matriceal. algoritmi fundamentali

74 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

introduse la pasii anteriori, deoarece a(k)kj = 0, pentru j = 1 : k − 1 (vezi propozitia

2.1, punctul c). Prin urmare matricea

Ak+1 = MkAk (2.9)

este superior triunghiulara ın primele k coloane.

Astfel, procedura de introducere a zerourilor subdiagonale, ınceputa la pasul 1si continuata pana la pasul n− 1 (inclusiv), are ca rezultat matricea

Udef= An = Mn−1Mn−2 . . .M1A, (2.10)

evident superior triunghiulara. Mai mult, deoarece produsul matriceal conservastructura inferior triunghiulara unitate (vezi propozitia 1.2), matricea

M = Mn−1Mn−2 . . .M1

este inferior triunghiulara unitate iar, daca A este nesingulara, atunci si U rezultanesingulara, ca produs a doua matrice nesingulare. ♦

Demonstratia de mai sus furnizeaza o procedura de triangularizare a unei ma-trice, cunoscuta sub numele de eliminare gaussiana. Procedura este bazata peurmatoarea schema, ın care calculele se desfasoara pe loc ın tabloul A

ElG 1. Pentru k = 1 : n− 11. Se calculeaza matricea ITE Mk (adica multiplicatorii µik,i = k+ 1 : n), astfel ıncat (MkA)i = 0, pentru i = k+ 1 : n

2. Se calculeaza A←MkA

La pasul 1.1, multiplicatorii gaussieni µik sunt calculati conform (2.8) prin

µik = a(k)ik /a

(k)kk , i = k + 1 : n, (2.11)

si pot fi memorati pe pozitiile elementelor anulate. Prin instructiunea 1.2 a schemeide mai sus, toate rezultatele intermediare sunt depuse ın spatiul de memorie ocupatde matricea A; vezi si figura 2.1.

La pasul 1.2, transformarea A←MkA este echivalenta cu calculul aj ←Mkaj ,pentru toate coloanele aj = Aej ale matricei A. Transformarea poate fi efectuataeficient tinand cont ca primele k−1 coloane ale matricei A nu sunt afectate. Coloanak este modificata prin anularea elementelor subdiagonale. Pentru restul submatricei,tinand seama de propozitia 2.1b, coloana transformata are elementele

aij ← (Mkaj)i = ((In −mkeTk )aj)i = aij − µikakj , i = k + 1 : n, (2.12)

unde j = k + 1 : n. Relatiile (2.11) si (2.12) ımpreuna cu schema de calcul ElGdefinesc algoritmul de eliminare gaussiana detaliat ın continuare. Conditia de ter-

minare corecta a algoritmului este ca numerele a(k)kk , k = 1 : n− 1, numite elemente

pivot, sa fie nenule, adica submatricele lider principale A[k], k = 1 : n − 1, alematricei initiale, sa fie nesingulare.

Page 89: metode de calcul numeric matriceal. algoritmi fundamentali

2.2. TRIANGULARIZARE PRIN ELIMINARE GAUSSIANA 75

u11 u12 . . . u1k u1,k+1 . . . u1n

µ21 u22 . . . u2k u2,k+1 . . . u2n

. . . . . .µk1 µk2 . . . ukk uk,k+1 . . . ukn

µ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

u11 u12 . . . u1k . . . u1n

µ21 u22 . . . u2k . . . u2n

. . . . . .µk1 µk2 . . . ukk . . . ukn

. . . . . .

. . . . . .µn1 µn2 . . . µnk . . . unn

Dupa pasul k In final

Fig. 2.1: Continutul matricei A dupa pasul k al eliminarii gaussiene si la terminareaexecutiei algoritmului

Algoritmul 2.1 (G – Eliminare gaussiana) (Se da A ∈ Rn×n, cusubmatricele lider principale A[k], k = 1 : n − 1, nesingulare. Se cal-culeaza matricea superior triunghiulara U si matricele ITE M1, . . . ,Mn−1, astfel ıncat U = Mn−1Mn−2 . . .M1A. Matricea U se memoreazaın triunghiul superior al lui A, inclusiv diagonala, iar multiplicatoriigaussieni µik care definesc transformarileMk se memoreaza ın triunghiulinferior al matricei A, pe pozitiile elementelor anulate.)

1. Pentru k = 1 : n− 11. Pentru i = k + 1 : n

1. aik ← µik = aik/akk

2. Pentru j = k + 1 : n1. Pentru i = k + 1 : n

1. aij ← aij − µikakj

O forma vectoriala a eliminarii gaussiene se poate deduce imediat din cea demai sus, prin ınlocuirea buclelor 1.1 si 1.2.1 cu operatiile corespunzatoare: scalare,respectiv Saxpy (aceasta din urma putand fi dedusa din (2.12), care se mai scrieMkaj = aj − akjmk). Avem

Algoritmul 2.2 (G – varianta vectoriala)

1. Pentru k = 1 : n− 11. A(k + 1 : n, k)← mk = 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)mk

Comentarii. In oricare dintre cele doua forme de mai sus, algoritmul necesita

NG =

n−1∑

k=1

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

2+ 2

n(n− 1)(2n− 1)

6≈ 2n3

3,

Page 90: metode de calcul numeric matriceal. algoritmi fundamentali

76 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

operatii ın virgula mobila (flopi), iar memoria ocupata este de MG = n2 locatii(elemente ın virgula mobila). ♦

Algoritmul G poate fi utilizat pentru rezolvarea sistemului liniar Ax = b atuncicand A are toate submatricele lider principale nesingulare (inclusiv A[n] = A).Intr-adevar, sistemul Ax = b are aceeasi solutie ca sistemul superior triunghiular

Ux = Mn−1Mn−2 . . .M1b,

ın care matricea U este furnizata de algoritmul G. Acest sistem triunghiular poatefi rezolvat cu algoritmul UTRIS.

Semnificatia operatiilor din algoritmul G este imediata; introducerea de zero-uri subdiagonale ın coloana k ınseamna eliminarea necunoscutei xk din ecuatiilek+1 : n; buclele 1.2 si 1.2.1 reprezinta scaderea din ecuatiile i = k+1 : n a ecuatieik ınmultite, pe rand, cu multiplicatorii µik, cu scopul de a elimina xk din fiecareecuatie i.

Totusi, nesingularitatea submatricelor lider principale ale matricei A nu este oconditie necesara pentru existenta si unicitatea solutiei sistemului (2.2). De aceea,algoritmul G trebuie modificat astfel ıncat sa produca rezultatul dorit si atuncicand unele submatrice lider principale sunt singulare, dar A este nesingulara.

2.3 Strategii de pivotare

Daca o submatrice lider principalaA[k] este singulara, atunci, la pasul k al procedurii

de eliminare gaussiana, pivotul a(k)kk este nul; deci, conform propozitiei 2.1c, nu exista

nici o matrice ITEMk care sa anuleze, prin premultiplicare, elementele subdiagonaleale coloanei k din Ak. Modificarea algoritmului G recomandata pentru a evitaaceasta dificultate consta ıntr-o interschimbare de linii (sau/si coloane), care aduceın pozitia pivotului un element nenul. Un alt motiv pentru permutarea de linii sicoloane este asigurarea stabilitatii numerice a procesului de calcul. O explicatieintuitiva este ca, atunci cand un proces matematic nu poate fi definit pentru oanumita valoare ”critica” a unui parametru (de exemplu A[k] singulara), existasanse mari ca procesul numeric corespunzator sa fie instabil atunci cand parametrulefectiv este ın vecinatatea valorii critice. In cazul nostru, trebuie evitati pivotiimici (ın modul), corespunzatori cazului ın care submatricele lider principale sunt”aproape” singulare; astfel se ımbunatateste stabilitatea numerica a algoritmului.

2.3.1 Pivotare partiala

Vom modifica algoritmul G dupa cum urmeaza. La pasul k al procedurii de trian-gularizare a matricei A ∈ Rn×n (vezi demonstratia teoremei 2.1), se alege ca pivotprimul element maxim ın modul din coloana k. Presupunand ca acest element

se gaseste ın linia ik si este nenul, i.e. a(k)ikk 6= 0, interschimbarea liniilor k si ik,

obtinuta matriceal prin ınmultirea la stanga a lui Ak cu PE Pkik, va muta a

(k)ikk ın

pozitia (k, k), astfel ıncat acest element devine noul pivot. Pentru a evita alterareastructurii matricei obtinute pana la pasul k (superior triunghiulara ın primele k− 1coloane), trebuie sa alegem ik ≥ k. Vezi figura 2.2.

Page 91: metode de calcul numeric matriceal. algoritmi fundamentali

2.3. STRATEGII DE PIVOTARE 77

Ak =

u11 . . . u1k . . . u1n

0. . . . . .

a(k)kk . . . a

(k)kn

0 . . .

a(k)ikk . . . a

(k)ikn

0 . . .

a(k)nk . . . a

(k)nn

PkikAk =

u11 . . . u1k . . . u1n

0. . . . . .

a(k)ikk . . . a

(k)ikn

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 PkikAk, noul pivot este a

(k)ikk si are o valoare ”buna”

(suficient de mare, ın modul)

Pentru simplitate, vom nota matricea Pikk cu Pk. Pasul k al algoritmului G

devine

1. Se determina cel mai mic (primul) ik ≥ k astfel ıncat |aikk| = maxi=k:n |aik|.2. Se interschimba liniile ik si k, adica A← PkA.

3. Se determina matricea ITE Mk astfel ıncat (MkA)ik = 0, i = k + 1 : n.

4. Se aplica transformarea A←MkA.

Astfel la pasul k are loc transformarea

A← Ak+1 = MkPkAk, (2.13)

unde matricea Tk = MkPk se numeste transformare elementara stabilizata.Procesul global, cunoscut sub numele de eliminare gaussiana cu pivotare partiala,

conduce ın cele din urma la matricea superior triunghiulara

Udef= An = Mn−1Pn−1Mn−2Pn−2 . . .M1P1A. (2.14)

Aceasta egalitate afirma ca orice matrice A este echivalenta la stanga cu o ma-trice superior triunghiulara, iar matricea de transformare poate fi un produs detransformari elementare stabilizate.

Algoritmul corespunzator este prezentat ın continuare.

Algoritmul 2.3 (GPP – Eliminare gaussiana cu pivotare partiala)(Se da A ∈ Rn×n, nesingulara. Se calculeaza matricea superior triun-ghiulara U , matricele ITE M1, . . . , Mn−1 si PE P1, . . . , Pn−1 astfelıncat (2.14) sa fie satisfacuta. Matricea U se memoreaza ın triunghiulsuperior al lui A, inclusiv diagonala, iar multiplicatorii gaussieni µik

care definesc matricele Mk se memoreaza ın triunghiul inferior al luiA. Intregii ik care definesc PE Pk, sunt memorati ıntr-un vector p dedimensiune n− 1, cu elementele p(k) = ik, pentru k = 1 : n− 1.)

Page 92: metode de calcul numeric matriceal. algoritmi fundamentali

78 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

1. Pentru k = 1 : n− 11. Se determina cel mai mic ik ∈ k : n astfel ıncat|aikk| = maxi=k:n |aik|.

2. p(k)← ik3. Pentru j = k : n % interschimba liniile k si ik

1. akj ↔ aikj

4. Pentru i = k + 1 : n1. aik ← µik = aik/akk

5. Pentru j = k + 1 : n1. Pentru i = k + 1 : n

1. aij ← aij − µikakj

Comentarii. Operatiile suplimentare necesare ın algoritmul GPP, fata de algorit-mul G, apar numai ın cautarea pivotului si constau ın comparatiile necesare gasiriimaximului din instructiunea 1.1; numarul de comparatii este

n−1∑

k=1

(n− k + 1) ≈ n2/2≪ 2n3/3,

deci pivotarea partiala nu este costisitoare (relativ la numarul de operatii aritme-tice). Necesarul de memorie este MGPP = n2. ♦

Un rezultat important referitor la algoritmul GPP este dat de

Teorema 2.2 Daca A ∈ Rn×n este nesingulara, atunci algoritmul GPP se vaexecuta complet iar matricea superior triunghiulara U rezultata ın final, vezi (2.14),este nesingulara.

Demonstratie. Algoritmul GPP nu se executa complet daca, la un pas k, ele-mentul pivot aikk = 0. Intr-un astfel de caz, deoarece pivotul este maxim ın modulpe coloana (sub diagonala), toate elementele aik, i = k : n, sunt nule, deci matricea

Ak este singulara (vezi structura matricei Ak, cu A[k]k superior triunghiulara).

Matricele ITE si PE fiind nesingulare, singularitatea matricei

Ak = Mk−1Pk−1 . . .M1P1A

implica A singulara; contradictie. Deci, toti pivotii aikk 6= 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

Proprietati numerice superioare se pot obtine 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 Ak. Primul element cu modul maxim

Page 93: metode de calcul numeric matriceal. algoritmi fundamentali

2.3. STRATEGII DE PIVOTARE 79

Ak =

u11 . . . u1k . . . u1jk. . . u1n

0. . . . . . . . .

a(k)kk . . . a

(k)kjk

. . . a(k)kn

0 . . .

a(k)ikk . . . a

(k)ikjk

. . . a(k)ikn

0 . . .

a(k)nk . . . a

(k)njk

. . . a(k)nn

PkikAkQkjk

=

u11 . . . u1jk. . . u1k . . . u1n

0. . . . . . . . .

a(k)ikjk

. . . a(k)ikk . . . a

(k)ikn

0 . . .

a(k)kjk

. . . a(k)kk . . . a

(k)kn

0 . . .

a(k)njk

. . . 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 aikjk, este mutat ın pozitia pivot

(k, k), prin intermediul a doua interschimbari, una de linii, cealalta de coloane,exprimate matriceal prin ınmultirea lui Ak la stanga, respectiv la dreapta, cu PEPkik

, respectiv Qkjk; vezi figura 2.3.

Notand Pkikcu Pk si Qkjk

cu Qk, pasul k al algoritmului G devine:

1. Se determina cei mai mici ik si jk astfel ıncat |aikjk| = maxi=k:n,j=k:n |aij |.

2. Se interschimba liniile ik si k, adica A← PkA.

3. Se interschimba coloanele jk si k, adica A← AQk.

4. Se determina matricea ITE Mk astfel ıncat (MkA)ik = 0, i = k + 1 : n.

5. Se aplica transformarea A←MkA.

Astfel, la pasul k are loc transformarea

A← Ak+1 = MkPkAkQk, (2.15)

iar procesul global de calcul, cunoscut sub numele de eliminare gaussiena cu pivotarecompleta, conduce la matricea superior triunghiulara

A← Udef= Mn−1Pn−1 . . .M1P1AQ1 . . .Qn−1. (2.16)

Algoritmul rezultat este prezentat ın continuare.

Algoritmul 2.4 (GPC – Eliminare gaussiana cu pivotare completa)(Se da A ∈ Rn×n, nesingulara. Se calculeaza matricea superior triun-ghiulara U , matricele ITE M1, . . . , Mn−1 si PE P1, Q1, . . . , Pn−1,Qn−1, astfel ıncat (2.16) sa fie satisfacuta. Matricea U se memoreazaın triunghiul superior al lui A, inclusiv diagonala, iar multiplicatoriigaussieni µik care definesc matricele Mk se memoreaza ın triunghiul in-ferior al matricei A. Intregii ik si jk, definind PE Pk, respectiv Qk, suntmemorati ın vectorii p, respectiv q, de dimensiune n − 1, astfel ıncatp(k) = ik si q(k) = jk, pentru k = 1 : n− 1.)

Page 94: metode de calcul numeric matriceal. algoritmi fundamentali

80 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

1. Pentru k = 1 : n− 11. Se determina ik ∈ k : n si jk ∈ k : n astfel ıncat|aikjk

| = maxi=k:n,j=k:n |aij |.2. p(k)← ik3. q(k)← jk4. Pentru j = k : n % interschimba liniile k si ik

1. akj ↔ aikj

5. Pentru i = 1 : n % interschimba coloanele k si jk1. aik ↔ aijk

6. Pentru i = k + 1 : n1. aik ← µik = aik/akk

7. Pentru j = k + 1 : n1. Pentru i = k + 1 : n

1. aij ← aij − µikakj

Comentarii. Operatiile suplimentare ce apar ın algoritmul GPC, fata de algorit-mul G, sunt doar cele necesare cautarii pivotului, ca si la pivotarea partiala; acumınsa, numarul de comparatii este

n−1∑

k=1

(n− k + 1)2 =

n∑

k=2

k2 ≈ n3/3;

spre deosebire de pivotarea partiala, pivotarea completa introduce un numar decomparatii de acelasi ordin de marime cu numarul operatiilor aritmetice; aceastapoate conduce la cresterea semnificativa a timpului de executie, de aceea pivotareacompleta trebuie folosita doar atunci cand se doreste o mare siguranta ın calcululrezultatului. Vom prezenta ulterior argumentele care conduc la alegerea strategieide pivotare. Necesarul de memorie este si aici MGPC = n2. ♦

Teorema urmatoare corespunde teoremei 2.2, demonstratia fiind asemanatoare.

Teorema 2.3 Daca A ∈ Rn×n este nesingulara, atunci algoritmul GPC se executacomplet, iar matricea superior triunghiulara rezultata U din (2.16) este nesingulara.

Observatia 2.1 Algoritmii GPP si GPC pot fi modificati cu usurinta pentru aputea triangulariza si matrice singulare.

In GPP, dupa pasul 1.1, trebuie adaugata urmatoarea conditie: daca aikk = 0,adica aik = 0, i = k : n, atunci pentru acest k, instructiunile 1.2 – 1.5 nu trebuieexecutate. In acest caz matricea U = An poate avea elemente diagonale nule

In GPC, daca aikjk= 0, adica aij = 0, i = k : n, j = k : n, atunci algoritmul

se termina la pasul k, deoarece matricea U = Ak este deja superior triunghiulara,mai precis superior trapezoidala, iar rangA = k − 1. Desigur, datorita erorilor derotunjire inerente, gasirea unui pivot nul este un eveniment destul de rar. Deoareceeste dificil de stabilit, ın general, o toleranta de trunchiere ǫ astfel ıncat |aikjk

| < ǫsa fie considerat pivot nul, algoritmul GPC nu se foloseste pentru determinarearangului unei matrice; proceduri mai sigure sunt oferite de algoritmii de factorizareQR cu pivotarea coloanelor si DVS, vezi capitolele 3 si 5. ♦

Page 95: metode de calcul numeric matriceal. algoritmi fundamentali

2.4. FACTORIZARI LU 81

2.4 Factorizari LU

In multe situatii, este convenabil a exprima o matrice data ca produs a doua matricetriunghiulare. Aceasta forma poate fi utilizata pentru a simplifica anumite calculeimplicand matricea respectiva.

Definitia 2.3 Fie A ∈ Rn×n. Daca exista o matrice inferior triunghiularaL ∈ R

n×n si o matrice superior triunghiulara U ∈ Rn×n astfel ıncat

A = LU (2.17)

atunci se spune ca A admite o factorizare (sau descompunere) LU. L si U se numescfactori triunghiulari ai matricei A.

In general, orice exprimare a matricei A ca produs de doua matrice triunghiulare(cu eventuale permutari) se numeste factorizare triunghiulara.

Daca A ∈ Rn×n este o matrice care are o factorizare LU, iar D este o matricediagonala nesingulara, atunci, D−1 fiind de asemenea diagonala, (2.17) poate fiscrisa ın forma

A = LU = LDD−1U = L′U ′, (2.18)

unde L′ = LD este inferior triunghiulara si U ′ = D−1U este superior triunghiulara.Daca D 6= I, atunci factorizarile (2.17) si (2.18) difera si deci factorizarea LU, dacaexista, nu este unica. De aceea este util a se introduce definitia urmatoare.

Definitia 2.4 Fie A ∈ Rn×n. Daca exista matricele L ∈ Rn×n inferior triunghiu-lara unitate, U ∈ Rn×n superior triunghiulara unitate si D ∈ Rn×n diagonala astfelıncat

A = LDU,

atunci expresia de mai sus este numita factorizare LDU a matricei A.

Aratam ın continuare ın ce conditii o factorizare LDU exista si este unica.

Teorema 2.4 O matrice A ∈ Rn×n are o unica factorizare LDU daca si numaidaca submatricele lider principale A[k], k = 1 : n− 1, sunt nesingulare.

Demonstratie. Demonstram aici doar existenta factorizarii LDU, pentru unicitatevezi problema 2.5.

In conditiile enuntate, din teorema 2.1, care constituie baza eliminarii gaussiene,rezulta ca exista M inferior triunghiulara unitate (deci inversabila) astfel ıncatMA = U , cu U superior triunghiulara. Cu notatia L = M−1, matrice inferiortriunghiulara unitate, avem A = LU . Notand acum

D = diag(u11, u22, . . . , unn),U ′ = D−1U,

atunci A = LDU ′, cu L, D, U ′ satisfacand conditiile descompunerii LDU.

Page 96: metode de calcul numeric matriceal. algoritmi fundamentali

82 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII 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, suntnesingulare. ♦

Factorizarile LU utilizate ın practica numerica curenta asociaza matricea dia-gonala D din cu una dintre matricele U , L ale factorizarii LDU. Astfel se obtin,respectiv:

• factorizarea Doolittle A = LU , cu L inferior triunghiulara unitate si U superiortriunghiulara,

• 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 suntunice daca si numai daca submatricele lider principale A[k], k = 1 : n − 1, suntnesingulare. Vom pastra ın continuare aceasta ipoteza, specificand cazurile ın careea 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 ∈ Rn×n, cu detA[k] 6= 0,k = 1 : n− 1, calculeaza factorizarea Doolittle A = LU , cu L inferior triunghiularaunitate si U superior triunghiulara. Factorii L (mai putin elementele diagonale) siU sunt memorati peste A.

Demonstratie. Algoritmul G produce matricele ITE Mk, k = 1 : n − 1, astfelıncat din (2.10) rezulta A = LU , cu L = (Mn−1 . . .M2M1)

−1 si U memorata pesteA. Asadar

L = M−11 M−1

2 . . .M−1n−1.

Dar (vezi propozitia 2.1), M−1k = In +mke

Tk , deci

L = (In +m1eT1 )(In +m2e

T2 ) . . . (In +mn−1e

Tn−1) = In +

n−1∑

k=1

mkeTk + S,

unde S este o suma de matrice de forma

T = . . .mpeTpmqe

Tq . . .

cu p < q. Deoarece eTpmq = 0, pentru orice p < q, obtinem T = 0 si S = 0. Astfel,

L = In +

n−1∑

k=1

mkeTk =

1 0 . . . 0 0µ21 1 . . . 0 0µ31 µ32 . . . 0 0

. . .. . . . . .

µn−1,1 µn−1,2 . . . 1 0µn1 µn2 . . . µn,n−1 1

,

Page 97: metode de calcul numeric matriceal. algoritmi fundamentali

2.4. FACTORIZARI LU 83

deci matricea L este formata chiar din multiplicatorii gaussieni memorati ın A, ınalgoritmul G. ♦

Vom studia acum legatura ıntre algoritmul GPP de eliminare gaussiana cu pi-votare partiala si factorizarile LU.

Teorema 2.6 Triangularizarea (2.14) (Mn−1Pn−1 . . .M1P1A = U) a matriceiA ∈ Rn×n, obtinuta prin algoritmul GPP, este echivalenta cu factorizarea Doolittlea matricei A cu liniile permutate, adica

PA = LU, (2.19)

unde P = Pn−1 . . . P1. In partea subdiagonala, coloana k ∈ 1 : n − 1 a matri-cei L este o permutare a vectorului Gauss corespunzator mk; mai precis, dacahk = Pn−1 . . . Pk+1mk, atunci L(k + 1 : n, k) = hk(k + 1 : n).

Demonstratie. Se poate verifica usor echivalenta dintre (2.14) si

Mn−1 . . . M1PA = U, (2.20)

unde Mn−1 = Mn−1 si, pentru k < n− 1,

Mk = Pn−1 . . . Pk+1MkPk+1 . . . Pn−1 =

= I − Pn−1 . . . Pk+1mkeTk Pk+1 . . . Pn−1 =

= I − Pn−1 . . . Pk+1mkeTk = I − hke

Tk .

In relatiile de mai sus am tinut seama ca Mk = I − mkeTk si P−1

s = Ps; ın plus,

eTk Ps = eT

k , pentru s > k, deoarece Ps este o PE de indici s si t ≥ s. Deci Mk este omatrice ITE definita de vectorul Gauss hk. Deoarece (2.20) si (2.10) sunt analoage,rezulta, ca ın teorema 2.5, ca matricea L = M−1

1 . . . M−1n−1 este inferior triunghiulara

unitate cu coloanele egale ın partea subdiagonala cu vectorii hk, k ∈ 1 : n− 1. Prinurmare relatia (2.19) este satisfacuta. ♦

Expresia vectorului hk arata cum trebuie modificat algoritmul GPP pentru aproduce factorizarea LU cu pivotare (2.19); se observa ca asupra fiecarui vectorGauss mk trebuie aplicate toate permutarile ulterioare Ps, cu s > k. Pentru aimplementa aceasta, modificam instructiunea 1.3 a GPP din ”Pentru j = k : n”ın ”Pentru j = 1 : n”, adica, ceea ce e echivalent cu afirmatia anterioara, fiecarepermutare Pk se aplica si tuturor vectorilor Gauss anteriori mj , cu j ∈ 1 : k − 1.Dupa executia algoritmului GPP astfel modificat, matricele triunghiulare L si Udin (2.19) se vor afla ın A.

Cazul eliminarii gaussiane cu pivotare completa este acum clar si vom lasa de-taliile ca exercitiu pentru cititor (problema 2.8). Modificand algoritmul GPC ınacelasi mod ca pe GPP, se va obtine pe loc ın matricea A o factorizare LU a uneimatrice obtinute din A prin permutari de linii si coloane:

PAQ = LU, (2.21)

unde P , L si U au aceeasi semnificatie (dar nu aceleasi elemente) ca ın teorema2.6, iar Q = Q1 . . . Qn−1 este construita din matricele de permutare elementara dinrelatia (2.16).

Page 98: metode de calcul numeric matriceal. algoritmi fundamentali

84 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

akk . . . akj . . ....aik...

= lkk...lik...

i

1

1

1

0

0

elemente calculate

?

elemente calculate

. . . ukj . . .

k

Fig. 2.4: Stadiu intermediar al factorizarii Crout.

2.4.2 Factorizari LU compacte

Factorizarea Crout poate fi calculata luand ın relatia (2.18) expresia LU ca fiind fac-torizarea Doolittle si D = diag(u11, u12, . . . , unn). Atunci, L′U ′ este descompunereaCrout a matricei A.

Totusi, exista si alte posibilitati de a organiza calculele, care de obicei se numescscheme de factorizare compacta. Vom deduce o astfel de factorizare Crout pe bazaideii de a utiliza direct identitatea A = LU , calculand succesiv cate o coloana dinL si cate o linie din U . Procedura poate fi initializata considerand prima coloana aidentitatii A = LU , i.e.

Ae1 = LUe1 = Le1,

de undeli1 = ai1, i = 1 : n, (2.22)

respectiv prima linie a aceleiasi identitati,

eT1 A = eT

1 LU = l11eT1 U,

adicaa1j = l11u1j , j = 2 : n.

Deoarece l11 = a11 = A[1] 6= 0, din relatia anterioara rezulta

u1j = a1j / l11, j = 2 : n. (2.23)

Presupunem acum ca primele k − 1 coloane din L si primele k − 1 linii din Usunt cunoscute (calculate); vezi figura 2.4. Din identitatea A = LU obtinem

aik =

k−1∑

s=1

lisusk + lik, i = k : n,

ın care singura necunoscuta este scalarul lik. Deci,

lik = aik −k−1∑

s=1

lisusk, i = k : n. (2.24)

Page 99: metode de calcul numeric matriceal. algoritmi fundamentali

2.4. FACTORIZARI LU 85

De asemenea,

akj =

k−1∑

s=1

lksusj + lkkukj , j = k + 1 : n,

ın care acum singura necunoscuta este scalarul ukj . Din propozitia 2.3 rezultaA[k] = L[k]U [k], unde A[k], deci si L[k] sunt nesingulare, adica lkk 6= 0. Asadar,

ukj =

(

akj −k−1∑

s=1

lksusj

)

/ lkk, j = k + 1 : n. (2.25)

Astfel, procedura initiata prin (2.22) si (2.23) poate fi continuata prin (2.24) si(2.25); daca submatricele A[k], k = 1 : n − 1, sunt nesingulare, ceea ce garanteazaca ımpartirea din (2.25) poate fi executata, procedura va calcula complet factoriiL 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 ∈ Rn×n,cu submatricele lider principale A[k], k = 1 : n − 1, nesingulare. Secalculeaza factorizarea Crout A = LU , cu L inferior triunghiulara si Usuperior triunghiulara unitate. Matricele L si U sunt memorate pesteelementele corespunzatoare din A, mai putin elementele diagonale alelui U , egale cu 1.)

1. Pentru k = 1 : n1. Pentru i = k : n

1. aik ← lik = aik −∑k−1

s=1 lisusk

2. Pentru j = k + 1 : n

1. akj ← ukj =(

akj −∑k−1

s=1 lksusj

)

/ lkk

Comentarii. Numarul de operatii ın virgula mobila este NCROUT ≈ 2n3/3 la felca ın algoritmii G, GPP sau GPC, iar memoria ocupata este MCROUT ≈ n2. ♦

Ca si algoritmul G de eliminare gaussiana, algoritmul CROUT esueaza peparcurs daca se obtine un lkk = 0 (ceea ce este echivalent cu A[k] singulara); maimult, valori apropiate de zero ale unui lkk conduc la valori absolute foarte mari aleelementelor matricei U calculate ın instructiunea 1.2.1 precum si la erori numericeinadmisibile ın rezultat.

Pentru a preveni aceasta situatie se introduce pivotarea partiala (pe linii). Spredeosebire de algoritmul G unde, la pasul k, permutarea liniilor se efectua ınainteacelorlaltor operatii, aici permutarea poate avea loc doar dupa calcularea elementelorlik, cu i ∈ k : n, pentru a putea aduce cea mai convenabila valoare ın pozitia (k, k).(Sa observam ca pivotarea completa este acum imposibila, deoarece ar implica an-ticiparea calculelor pentru toata matricea.) Aceasta revine la ınmultirea la stangaa matricei A cu o PE Pkik

, cu ik ≥ k, la fiecare pas k si, global, la o factorizarePA = LU , cu P = Pn−1 . . . P1. Algoritmul corespunzator este urmatorul.

Algoritmul 2.6 (CROUTP – Factorizare Crout cu pivotare par-tiala) (Se da A ∈ Rn×n nesingulara. Se calculeaza factorizarea Crout

Page 100: metode de calcul numeric matriceal. algoritmi fundamentali

86 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

PA = LU , cu L inferior triunghiulara, U superior triunghiulara uni-tate si P = Pn−1 . . . P1 matrice de permutare. Matricele L si U suntmemorate peste elementele corespunzatoare din A, mai putin elementelediagonale ale lui U , egale cu 1. Intregii ik definind PE Pk sunt memoratiıntr-un vector p astfel ıncat p(k) = ik, k = 1 : n− 1.)

1. Pentru k = 1 : n1. Pentru i = k : n

1. aik ← lik = aik −∑k−1

s=1 lisusk

2. Se determina ik ∈ k : n astfel ıncat |likk| = maxi=k:n |lik|3. Pentru j = 1 : n interschimba liniile k si ik

1. akj ↔ aikj

4. Pentru j = k + 1 : n

1. akj ← ukj =(

akj −∑k−1

s=1 lksusj

)

/ lkk

Comentarii. Desigur, numarul comparatiilor efectuate ın instructiunea 1.2 estede ordinul O(n2), adica neglijabil fata de cel al operatiilor aritmetice. ♦

2.4.3 Factorizari LU prin eliminare gaussiana la nivel de bloc

Vom elabora ın continuare un algoritm pentru calculul factorizarii Doolittle a uneimatrice A ∈ Rn×n, folosind cat mai mult operatii din setul BLAS nivel 3, anumeGEMM si TRSM. Abordarea problemei se face ın mod natural prin partitionarea ma-tricelor ın blocuri. Vom prezenta ıntai varianta fara pivotare, deci presupunem casubmatricele A[k] sunt nesingulare, pentru k ∈ 1 : n− 1.

Partitionam matricea A astfel

A =

[A11 A12

A21 A22

] r n− r

︸︷︷︸

r

︸︷︷︸

n−r

, (2.26)

alegerea lui r urmand a fi precizata ulterior.In ideea calculului la nivel de bloc al factorizarii LU, sa ıncepem prin a determina

L11, L21, U11, U12, astfel ıncat sa fie satisfacuta egalitatea:

[A11 A12

A21 A22

]

=

[L11 0L21 In−r

]

·[Ir 00 B

]

·[U11 U12

0 In−r

]

. (2.27)

Din aceasta egalitate, privita pe rand pentru cele patru blocuri componente, se potdeduce usor blocurile dorite din L si U :

1. A11 = L11U11, deci L11 si U11 provin din factorizarea LU la nivel de elementa matricei A11.

2. A21 = L21U11 ⇒ L21 = A21U−111 . Deci, U11 fiind cunoscut de la pasul

anterior, L21 poate fi calculat prin rezolvarea unui sistem superior triunghiularcu parte dreapta multipla.

Page 101: metode de calcul numeric matriceal. algoritmi fundamentali

2.4. FACTORIZARI LU 87

3. A12 = L11U12 ⇒ U12 = L−111 A12. Deci, U12 este solutia unui sistem inferior

triunghiular cu parte dreapta multipla.

4. A22 = L21U12 + B ⇒ B = A22 − L21U12; blocul ”restant” B depinde doarde 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 = L22U22. (2.28)

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

L =

[L11 0L21 L22

]

; U =

[U11 U12

0 U22

]

. (2.29)

Pe scurt, aplicand ın mod repetat pasii 1-4 de mai sus, dimensiunea problemeise reduce de la n la n− r, n− 2r etc. La etapa m (unde n = mr), problema constaın factorizarea LU a unui bloc r× r, factorizarea ıntregii matrice A fiind terminata.Algoritmul de factorizare LU va consta deci dintr-o bucla continand pasii 1-4. Infigura 2.5 sunt reprezentate blocurile de interes pe parcursul unei iteratii.

Algoritmul 2.7 (Gbl – Eliminare gaussiana la nivel de bloc) (Sedau A ∈ Rn×n, cu A[k], k = 1 : n− 1, nesingulare, si r ∈ N astfel ıncatn = mr. Se calculeaza factorizarea Doolittle A = LU , prin operatii lanivel de bloc.)

1. Pentru k = 1 : m1. s← (k − 1)r + 12. f ← kr3. 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)← Z6. Se rezolva sistemul inferior triunghiular

L(s : f, s : f) · Z = A(s : f, f + 1 : n)7. U(s : f, f + 1 : n)← Z8. 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 instructiunea 1.3, factorizarea LU a bloculuiA(s : f, s : f), de dimensiune r × r, trebuie explicitata cu operatii la nivel deelement; ın rest, ın instructiunile 1.4 si 1.6 se foloseste TRSM, iar ın 1.8 GEMM. Dintotalul de 2n3/3 flopi ai algoritmului 2.7 (la fel ca pentru algoritmul G), doar2mr3/3 = 2nr2/3 apar ın factorizarile LU ”mici” din instructiunea 1.3. In acestcaz, ponderea operatiilor de nivel 3 este

P3LU (n, r) =2n3/3− 2nr2/3

2n3/3= 1− r2

n2. (2.30)

Page 102: metode de calcul numeric matriceal. algoritmi fundamentali

88 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

s

f

n

s f n

L

U

BBBBBN

?

deja factorizat

6

curent

curent

HHHHY

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, r2 ≪ n2), pondereaoperatiilor de nivel 3 este apropiata de 1, deci putem estima o buna comportarea algoritmului pe un calculator cu memorie ierarhica. Totusi, alegerea dimensiuniiblocurilor r se face ın urma unui compromis: pe de o parte, din (2.30) e de doritca r sa fie cat mai mic, pe de alta, pentru ca rutinele din BLAS-3 sa fie eficientetrebuie ca r sa fie suficient de mare; valoarea ideala se determina fie din estimariteoretice, fie, mai ales, prin ıncercari experimentale. ♦

Introducerea pivotarii se face relativ simplu, tinandu-se seama ca ın (2.27) apareın plus o matrice de permutare P1:

P1 ·[A11 A12

A21 A22

]

=

[L11 0L21 In−r

]

·[Ir 00 B

]

·[U11 U12

0 In−r

]

. (2.31)

Reducerea calculului factorizarii LU a matricei A la un calcul analog pentrumatricea de dimensiuni mai mici B se face ın felul urmator:

1. Se calculeaza, de exemplu prin eliminare gaussiana, factorizarea LU (rezultatadin (2.31), pentru cele doua blocuri din stanga):

P1 ·[A11

A21

]

=

[L11

L21

]

· U11. (2.32)

(Se aplica algoritmul GPP, chiar daca matricea ın cauza este n× r; cautareapivotului se face pe toata portiunea subdiagonala a unei coloane. Vezi pro-blema 2.9.)

2. Se aplica permutarea restului matricei A (cele doua blocuri din dreapta),obtinandu-se

[A12

A22

]

= P1 ·[A12

A22

]

.

Page 103: metode de calcul numeric matriceal. algoritmi fundamentali

2.4. FACTORIZARI LU 89

3. Din A12 = L11U12 se poate calcula U12 = L−111 A12, prin rezolvarea unui sistem

inferior triunghiular cu parte dreapta multipla (se apeleaza TRSM).

4. Mai ramane B = A22 −L21U12, termenii din dreapta fiind toti deja calculati;deci B se poate obtine ın urma unui apel la GEMM.

Lasam cititorului detalierea ideii algoritmice de mai sus, ca si calculul ponderiioperatiilor de nivel 3; desi acum vor fi mai multe operatii la nivel de element fata decazul factorizarii fara pivotare, totusi numarul lor ramane suficient de mic pentrua putea aprecia algoritmul ca eficient.

2.4.4 Factorizari LU compacte la nivel de bloc

Vom prezenta ın continuare o varianta la nivel de bloc a metodei Crout pentrufactorizarea LU; ne vom ocupa doar de cazul ın care nu se efectueaza pivotare.Rationamentul este absolut identic cu cel la nivel de element. La nivel de bloc,egalitatea A = LU se poate scrie

A11 A12 . . . A1m

A21 A22 . . . A2m

......

. . ....

Am1 Am2 . . . Amm

=

L11 0 . . . 0L21 L22 . . . 0...

.... . .

...Lm1 Lm2 . . . Lmm

·

U11 U12 . . . U1m

0 U22 . . . U2m

......

. . ....

0 0 . . . Umm

,

(2.33)

ceea ce, pentru blocul cu indici i, j, revine la Aij =∑min(i,j)

t=1 LitUtj .Detaliind aceasta relatie, distingem urmatoarele cazuri:

i = j = k ⇒ Akk =

k∑

t=1

LktUtk ⇒ LkkUkk =

(

Akk −k−1∑

t=1

LktUtk

)

. (2.34)

i > j = k ⇒ Aik =

k∑

t=1

LitUtk ⇒ Lik =

(

Aik −k−1∑

t=1

LitUtk

)

U−1kk ; (2.35)

k = i < j ⇒ Akj =

k∑

t=1

LktUtj ⇒ Ukj = L−1kk

(

Akj −k−1∑

t=1

LktUtj

)

. (2.36)

Ordinea ın care se aplica formulele de mai sus este aceeasi ca ın algoritmul lanivel de element: se calculeaza ıntai prima bloc coloana din L si prima bloc linie dinU ; diferenta este ca acum trebuie calculate doua blocuri diagonale, L11 si U11 (ınalgoritmul la nivel de element, u11 = 1); aceasta se face printr-o factorizare CroutLU; 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 : m1. Se calculeaza Lkk si Ukk factorizand LU termenul drept din (2.34)2. Pentru i = k + 1 : m

1. Se calculeaza Lik ca ın (2.35)3. Pentru j = k + 1 : m

1. Se calculeaza Ukj ca ın (2.36)

Page 104: metode de calcul numeric matriceal. algoritmi fundamentali

90 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

Pentru a detalia algoritmul si a-l scrie ın mod cat mai eficient prin apeluri larutine BLAS-3, sa observam ca sumele din relatiile (2.34–2.36) se pot scrie compact;exemplificam doar pentru una dintre sume, cea din (2.35), notand s = (k− 1)r+ 1,f = kr, si = (i− 1)r + 1, fi = ir:

k−1∑

t=1

LitUtk ≡ L(si : fi, 1 : s− 1) · U(1 : s− 1, s : f).

Mai mult, putem scrie compact toate relatiile de tip (2.35), pentru un k fixat, darcu i = k + 1 : m. Mai exact, bucla 1.2 din schema de mai sus se transforma ıntr-osingura atribuire (profitand 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 : s−1) · U(1 : s−1, s : f)] ··U(s : f, s : f)−1

In fine, combinand forma de mai sus cu termenul drept din (2.34), obtinem instruc-tiunea 1.3 din algoritmul detaliat ın continuare (calculele se pot efectua pe loc ınmatricea A, dar, pentru claritate, nu procedam astfel).

Algoritmul 2.8 (CROUTbl – Factorizare Crout la nivel de bloc)(Se dau A ∈ R

n×n si r ∈ N astfel ıncat n = mr. Se calculeaza factori-zarea A = LU , utilizand operatii la nivel de bloc.)

1. Pentru k = 1 : m1. s← (k − 1)r + 12. f ← kr3. A(s : n, s : f)← A(s : n, s : f)− L(s : n, 1 : s−1)·U(1 : s−1, 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, ınmultirile matriceale din instructiunile 1.3 si 1.7 se vorexecuta prin apeluri la GEMM, iar rezolvarile de sisteme triunghiulare din 1.5 si 1.8,prin apeluri la TRSM. Ponderea operatiilor de nivel 3 este aceeasi ca pentru algoritmul2.7, diferenta fiind ca aici se executa mai multe apeluri la GEMM, ceea ce ar puteamari timpul de executie, dar probabil numai ıntr-o masura nesemnificativa.

Algoritmul de mai sus poate calcula si o factorizare LU Doolittle daca ın in-structiunea 1.4 se utilizeaza algoritmul G ın loc de CROUT. ♦

Page 105: metode de calcul numeric matriceal. algoritmi fundamentali

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 instrumentpentru rezolvarea sistemului liniar nesingular Ax = b.

Sa consideram urmatoarea 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, Ueste matricea superior triunghiulara produsa de algoritm, iar p si q sunt vectori deıntregi definind permutarile de linii si, respectiv, coloane. Desi matricele M si U sememoreaza peste A (asa cum am si procedat ın GPP si GPC), vom utiliza sintaxade mai sus pentru claritate.

Rezolvarea sistemelor utilizand GPP. Consideram sistemul liniar Ax = b,cu A nesingulara si utilizam GPP pentru triangularizarea matricei A conformrelatiei (2.14). Doarece toate matricele Mk si Pk sunt nesingulare, sistemul Ax = beste echivalent (are aceeasi solutie) cu sistemul

Mn−1Pn−1 . . .M1P1Ax = Mn−1Pn−1 . . .M1P1b. (2.37)

In consecinta, (2.37) se scrie ın forma

Ux = d,

unde matricea superior triunghiulara U se afla ın A, iar vectorul

d = Mn−1Pn−1 . . .M1P1b, (2.38)

se poate calcula pe loc ın b, utilizand urmatoarea schema de calcul:

b 1. Pentru k = 1 : n− 11. b← Pkb2. b←Mkb

In definitiv, solutia x a sistemului Ax = b se obtine rezolvand (pe loc ın b) sis-temul superior triunghiular Ux = b. Evident, ın acest scop se utilizeaza algoritmulUTRIS, cu sintaxa

x = UTRIS(U, b).

Pentru detalierea schemei facem apel la propozitiile 2.1 si 2.2. Se obtine algo-ritmul de mai jos.

Algoritmul 2.9 (S GPP – Calculul solutiei unui sistem liniar uti-lizand GPP) (Se dau A ∈ Rn×n nesingulara si b ∈ Rn. Se calculeazasolutia x ∈ R

n a sistemului liniar Ax = b, utilizand procedura de elimi-nare gaussiana cu pivotare partiala.)

Page 106: metode de calcul numeric matriceal. algoritmi fundamentali

92 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

1. [M,U, p] = GPP(A)2. Pentru k = 1 : n− 1

1. bk ↔ bp(k)

2. Pentru i = k + 1 : n1. bi ← bi − µikbk

3. x = UTRIS(U, b)

Comentarii. Numarul de operatii este:

NS GPP = NGPP +

n−1∑

k=1

2(n− k) +NUTRIS ≈2n3

3+ n2 + n2 ≈ 2n3

3≈ NGPP,

si deci principalul efort consta ın triangularizarea matricei A. Evident, memorianecesara este MS GPP ≈ n2. ♦

Rezolvarea sistemelor utilizand GPC. Alternativ, dar mai costisitor, putemutiliza GPC, vezi (2.16); ın acest caz, sistemul Ax = b este echivalent cu

Mn−1Pn−1 . . .M1P1AQ1 . . . Qn−1Qn−1 . . . Q1x = Mn−1Pn−1 . . .M1P1b. (2.39)

NotandQn−1 . . .Q1x = y, (2.40)

din (2.16) rezulta ca vectorul y poate fi calculat prin rezolvarea sistemului superiortriunghiular

Uy = d, (2.41)

unde d este vectorul dat de (2.38). In final, din (2.40), si stiind ca Q−1k = Qk,

obtinemx = Q1Q2 . . . Qn−1y. (2.42)

Din relatiile (2.38)–(2.42), rezulta algoritmul urmator.

Algoritmul 2.10 (S GPC – Calculul solutiei unui sistem liniarutilizand GPC) (Se dau A ∈ Rn×n nesingulara si b ∈ Rn. Se cal-culeaza solutia x ∈ R

n a sistemului liniar Ax = b, utilizand procedurade eliminare gaussiana cu pivotare completa.)

1. [M,U, p, q] = GPC(A)2. Pentru k = 1 : n− 1

1. bk ↔ bp(k)

2. Pentru i = k + 1 : n1. bi ← bi − µikbk

3. x = UTRIS(U, b)4. Pentru k = n− 1 : −1 : 1

1. xk ↔ xq(k)

Comentarii. Complexitatea acestui algoritm este asimptotic aceeasi cu cea aalgoritmului GPC. ♦

Page 107: metode de calcul numeric matriceal. algoritmi fundamentali

2.6. CALCULUL INVERSEI SI AL DETERMINANTULUI 93

Observatia 2.2 Eliminarea gaussiana, prezentata aici ıntr-un mod sistematic,este binecunoscuta metoda de calcul manual prin reducere si substitutie. Pivotareape linii corespunde unei reordonari a ecuatiilor ın (2.1), iar pivotarea pe coloanecorespunde unei reordonari a componentelor necunoscutei x. Subliniem ca aceastametoda este cea mai eficienta procedura de rezolvare a sistemelor de ecuatii liniarenesingulare de forma generala. Stabilitatea numerica a acestor algoritmi va fi dis-cutata ulterior. ♦

Este clar ca sistemul Ax = b se poate rezolva si recurgand explicit la factorizareaLU 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, solutia sistemului poate fi gasita dupa urmatoarea schema:

Ax = b 1. A = LU (calculeaza factorizarea LU)2. Se rezolva sistemul inferior triunghiular Ly = b3. Se rezolva sistemul superior triunghiular Ux = y

Efortul de calcul este acelasi ca ın eliminarea gaussiana si partea sa cea maiimportanta se consuma ın procesul de factorizare.

Daca sistemul liniar are parte dreapta multipla, adica este de forma AX = Bcu B ∈ Rn×p, p > 1, atunci X va rezulta de aceeasi dimensiune; sistemul AX = Bpoate fi redus la p sisteme cu parte dreapta simpla, Axj = bj , j = 1 : p, undevectorii bj si xj sunt coloanele j din B, respectiv X . Utilizarea naiva de p ori aalgoritmului S GPP ar conduce la un efort de calcul de pn3/3 flopi, inacceptabilde mare. Dar, deoarece A este aceeasi pentru toate cele p sisteme, factorizarea LUsau, ın general, triangularizarea matricei A, se efectueaza o singura data, ramanandapoi de rezolvat doar sisteme triunghiulare. Ideea algoritmului, ın cazul factorizariiLU, este urmatoarea:

AX = B 1. A = LU (calculeaza factorizarea LU)2. Pentru j = 1 : p

1. Se rezolva sistemul inferior triunghiular Ly = bj2. Se rezolva sistemul superior triunghiular Uxj = y

Numarul de operatii va de numai aproximativ 2n3/3 + 2pn2 flopi, mentinandu-se complexitatea O(n3). Desigur, ın practica este recomandat a se folosi pivotarea,efectuand o factorizare LU de forma PA = LU sau apeland algoritmul GPP.Modificarea corespunzatoare a schemelor de calcul prezentate mai sus este propusacititorului (vezi problema 2.15).

2.6 Calculul inversei si al determinantului

unei matrice

Grupam ın aceasta sectiune doua probleme care au ın comun metoda de rezolvareutilizata — eliminarea gaussiana, precum si recomandarea de a calcula inversa saudeterminantul unei matrice doar atunci cand acestea se doresc explicit. Repetam

Page 108: metode de calcul numeric matriceal. algoritmi fundamentali

94 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII 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, dupacum nu se calculeaza determinantul pentru a testa nesingularitatea unei matrice.

2.6.1 Calculul inversei unei matrice

Daca A ∈ Rn×n este nesingulara, atunci procedura de eliminare gaussiana cu pi-votare partiala se termina cu succes si produce o matrice superior triunghiularanesingulara U astfel ıncat

Mn−1Pn−1 . . .M1P1A = U, (2.43)

unde Mk sunt matrice ITE si Pk sunt matrice elementare de permutare. Din (2.43)rezulta

X ≡ A−1 = U−1Mn−1Pn−1 . . .M1P1,

deci inversa matricei A poate fi calculata astfel

A−1 1. [M,U, p] = GPP(A)2. X = UINV(U)3. Pentru k = n− 1 : −1 : 1

1. X ← XMk

2. X ← XPk

Ne amintim ca ın algoritmul GPP, matricea U si multiplicatorii gaussieni µik,k = 1 : n− 1, i = k+1 : n, notati global cu M ın schema de mai sus, se memoreazapeste matricea A ca ın partea stanga a figurii 2.6. In algoritmul UINV, am vazutca U−1 se poate memora peste U , astfel ca, dupa instructiunea 2 a schemei de maisus, datele sunt memorate ca ın partea dreapta a figurii 2.6.

Pornind de la schema precedenta, vom prezenta un algoritm care calculeazainversa matricei A, folosind minimum de memorie. Pentru aceasta, observam caprimele doua instructiuni necesita memorie aditionala doar pentru vectorul p ∈Rn−1, ın care se memoreaza permutarile de linii din GPP. Analizam acum buclaPentru din instructiunea 3. Prima atribuire, X ← XMk, poate fi detaliata utilizando partitionare pe linii a lui X :

xTi Mk = xT

i (In −mkeTk ) = xT

i − (xTi mk)eT

k (2.44)

= [xi1 xi2 . . . xi,k−1 xik − xTi mk xi,k+1 . . . xin], i = 1 : n.

Se poate observa ca sunt modificate numai elementele de pe coloana k a lui X .

Page 109: metode de calcul numeric matriceal. algoritmi fundamentali

2.6. CALCULUL INVERSEI SI AL DETERMINANTULUI 95

u(−1)1k...

u(−1)kk

µk+1,k

...µnk

× . . . ×

× . . . ×

× . . . ×

. . .

. . .

M

U−1

k

X ← XMkPk

×...××...×

× . . . ×

× . . . ×

× . . . ×

. . .

. . .

M

U−1

k

-

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

A doua instructiune a buclei Pentru, X ← XPk, interschimba coloanele k si ik(ik ≥ k).

Tinand cont de toate aceste consideratii si de ordinea inversa de calcul a coloa-nelor, pasul k al buclei Pentru din schema de mai sus, adica X ← XMkPk, poate fidescris ca ın figura 2.7, unde U−1 si M reprezinta elementele din U−1 si, respectiv,multiplicatorii gaussieni care nu au fost utilizati (si nici modificati) ın executia bucleipana la pasul curent; elementele modificate (parte a lui X) sunt notate prin ×.

Astfel, singura informatie care trebuie salvata consta ın multiplicatorii gaussienidin coloana curenta, µik, i = k + 1 : n, necesari pentru calculul din (2.45).

In acest fel, inversarea matricei A poate fi 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 coloanacurenta.

Algoritmul care implementeaza consideratiile de mai sus este:

Algoritmul 2.11 (INV GPP – Calculul inversei unei matrice) (Seda A ∈ Rn×n nesingulara. Se calculeaza matricea A−1 peste A. Algo-ritmul utilizeaza algoritmii GPP pentru triangularizarea gaussiana siUINV pentru inversarea unei matrice superior triunghiulare.)

1. [M,U, p] = GPP(A) % M si U sunt memorate ın A2. A← X = UINV(U) % doar triunghiul sup. e modificat3. Pentru k = n− 1 : −1 : 1

1. Pentru i = k + 1 : n1. gi ← µik % salveaza multiplicatorii

2. Pentru i = 1 : k1. aik ← aik −

∑nt=k+1 aitgt % relatia (2.45), primele k linii

3. Pentru i = k + 1 : n1. aik ← −

∑nt=k+1 aitgt % relatia (2.45), celelalte linii

4. Daca p(k) 6= k atunci

1. Pentru i = 1 : n % interschimba coloanele k si p(k)1. aik ↔ ai,p(k)

Page 110: metode de calcul numeric matriceal. algoritmi fundamentali

96 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

Comentarii. Numarul de operatii ın virgula mobila este

NINV GPP = NGPP +NUINV +

n−1∑

k=1

2n(n− k) ≈ 2n3

3+n3

3+ n3 = 2n3

si memoria utilizata MINV GPP = n2.Este remarcabil faptul ca inversarea matriceala nu este mai complexa (ca numar

de operatii) decat ınmultirea de matrice. ♦

O acuratete mai buna a matricei inverse calculate se poate obtine utilizandalgoritmul GPC ın locul lui GPP. In acest caz,

Mn−1Pn−1 . . .M1P1AQ1Q2 . . . Qn−1 = U,

si deci

X ≡ A−1 = Q1Q2 . . . Qn−1U−1Mn−1Pn−1 . . .M1P1.

Scrierea algoritmului corespunzator este lasata ın sarcina cititorului.

In practica, acuratetea obtinuta cu INV GPP este suficient de buna pentrumajoritatea aplicatiilor.

Observatia 2.3 Efortul de calcul necesar inversarii unei matrice este de aproxi-mativ trei ori mai mare decat cel pentru rezolvarea unui sistem liniar de aceeasidimensiune. De aceea, de cate ori e posibil, inversarea matriceala trebuie evitatasi ınlocuita de rezolvarea de sisteme liniare. De exemplu, pentru calculul scalaruluireal

α = cTA−1b,

unde A ∈ Rn×n, b, c ∈ Rn, schema recomandata este

cTA−1b 1. Se rezolva sistemul Ax = b % rezulta x = A−1b2. α← cTx

sensibil mai eficienta 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−1L−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 operatii este tot 2n3. Desigur, ın practica este indicat a se folosi ofactorizare LU cu pivotare.

Page 111: metode de calcul numeric matriceal. algoritmi fundamentali

2.7. CONDITIONAREA 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 Mk, k = 1 : n− 1, din (2.43), auelementele diagonale egale cu 1 si deci det(Mk) = 1. Asadar

det(A) = (−1)s det(U) = (−1)sn∏

i=1

uii,

unde s ≤ n− 1 este numarul de PE proprii (adica Pk 6= In) ın (2.43).Algoritmul corespunzator celor de mai sus este:

Algoritmul 2.12 (DET GPP – Calculul determinantului) (Se daA ∈ Rn×n. Se calculeaza detA, utilizand algoritmul GPP.)

1. [M,U, p] = GPP(A)2. det← 13. Pentru k = 1 : n

1. det← det · ukk

4. Pentru k = 1 : n− 11. Daca p(k) 6= k atunci

1. det← −det

Principalul efort de calcul ın algoritmul de mai sus este efectuat ın executiaalgoritmului GPP. Desigur, algoritmul GPC poate fi utilizat ın loc de GPP,obtinandu-se, de regula, o acuratete superioara a rezultatului. Scrierea algoritmuluicorespunzator este propusa cititorului.

Daca este disponibila o factorizare LU a matricei A, atunci det(A) = det(LU) == det(L) · det(U) = (

∏ni=1 lii) (

∏ni=1 uii), ceea ce permite evaluarea imediata a

determinantului.

2.7 Conditionarea sistemelor liniare

Dupa cum am vazut ın capitolul 0, conditionarea unei probleme de calcul, ın cazulnostru rezolvarea sistemului liniar determinat nesingular Ax = b, este cruciala ınaprecierea acuratetii rezultatelor obtinute. Sa consideram o perturbatie a datelorde intrare ale sistemului

(A, b) −→ (A+ ∆A, b+ ∆b) ≡ (A, b),

care va avea ca efect o perturbatie a solutiei x

x −→ x+ ∆x ≡ x, (2.45)

astfel ıncat(A+ ∆A)(x + ∆x) = b+ ∆b. (2.46)

Page 112: metode de calcul numeric matriceal. algoritmi fundamentali

98 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

Consideram doar perturbatii mici, respectand ‖∆A‖ ≪ ‖A‖, ‖∆b‖ ≪ ‖b‖ (unde‖ ·‖ este o norma consistenta oarecare), i.e. efectuam o analiza a sensibilitatii localea solutiei ın raport cu variatia datelor.

Teorema 2.7 Presupunem ca x 6= 0. Eroarea relativa a solutiei (2.45) a sistemuluiperturbat (2.46) este marginita conform relatiei

‖∆x‖‖x‖ ≤ κ(A)

(‖∆A‖‖A‖ +

‖∆b‖‖b‖

)

, (2.47)

undeκ(A) = ‖A−1‖ · ‖A‖ (2.48)

se numeste numar de conditionare (la inversare) al matricei A.

Cu alte cuvinte, erorile relative ‖∆A‖ / ‖A‖ si ‖∆b‖ / ‖b‖ ale datelor de intrarepot fi amplificate de κ(A) ori ın solutie, presupunand ca toate calculele se efectueazaexact (deci indiferent de algoritmul folosit).

Demonstratie. Deoarece Ax = b, din (2.46) rezulta

A ·∆x+ ∆A · x+ ∆A ·∆x = ∆b.

Neglijand produsul ∆A ·∆x (deoarece perturbatiile sunt mici), obtinem

∆x ≈ −A−1 ·∆A · x+A−1 ·∆b.

Utilizand o familie consistenta de norme matriceale ‖ · ‖, din relatia de mai susrezulta

‖∆x‖ ≤ ‖A−1‖ · ‖∆A‖ · ‖x‖+ ‖A−1‖ · ‖∆b‖.Prin urmare, daca x 6= 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 tinut seama ca ‖b‖ = ‖Ax‖ ≤ ‖A‖ · ‖x‖.) ♦

Asadar numarul de conditionare κ(A) definit ın (2.48) furnizeaza o masura aconditionarii problemei rezolvarii unui sistem liniar Ax = b. Un κ(A) mic cores-punde unei bune conditionari, adica unei sensibilitati reduse a solutiei ın raport cuperturbatiile datelor. Vom prezenta ın sectiunea urmatoare un rezultat care permiteaprecierea mai precisa a conditionarii ın functie de valoarea κ(A). Se observa cadoar matricea A determina conditionarea unui sistem, termenul liber b neavandnici un rol; de aceea vorbim de ”conditionarea matricei A” ın loc de ”conditionareasistemului”. Vom atasa un indice notatiei κ(A) atunci cand vom preciza normafolosita ın (2.48); de exemplu, κ∞(A) = ‖A−1‖∞ · ‖A‖∞. Intre norme echivalente,alegerea uneia anume pentru evaluarea lui κ(A) nu este relevanta, ordinul de marimeal rezultatului fiind acelasi; de obicei, dintre normele p se alege κ∞(A) pentru

Page 113: metode de calcul numeric matriceal. algoritmi fundamentali

2.7. CONDITIONAREA SISTEMELOR LINIARE 99

usurinta calculului (vezi mai jos). Sa notam ca κp(A) ≥ 1 si κ2(A) = 1 daca sinumai daca A este ortogonala (demonstrati !).

Este intuitiv faptul ca un sistem este cu atat mai rau conditionat cu cat matriceaA este mai ”aproape” de o matrice singulara. Trebuie subliniat ca masura acesteiapropieri este data de numarul de conditionare si nu de determinantul matricei A.

Exemplul 2.1 Sa consideram matricele D,T ∈ Rn×n

D =

0.10.1

. . .

0.1

, T =

1 −1 . . . −11 . . . −1

. . ....1

.

Fiind diagonala, este evident ca D este bine conditionata; se verifica 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 situatia este contrara: desidet(A) = 1, matricea este rau conditionata pentru ca κ∞(T ) = n2n−1 (U = T−1

este inferior triunghiulara unitate cu elementele uij = 2j−i−1, pentru j > i, deci‖T−1‖∞ = 1 + 2 + 22 + . . .+ 2n−2 = 2n−1 − 1. Pe de alta parte, ‖T ‖∞ = n). ♦

Un mod uzual dar naiv de verificare a posteriori a ”calitatii” solutiei calculatex a unui sistem liniar Ax = b consta ın a calcula norma reziduului r = b−Ax, i.e.

‖r‖ = ‖b− Ax‖si de a conchide ca daca ‖r‖ este ”mic”, atunci x este o solutie precisa. De fapt,aceasta concluzie, corecta pentru matricele bine conditionate, poate sa nu fie (side cele mai multe ori nu este) adevarata daca matricea A este rau conditionata.Intr-adevar, solutia exacta este x = A−1b, astfel ca avem

x− x = A−1b−A−1(b− r) = A−1r,

deci eroarea relativa este marginita conform relatiei

‖x− x‖‖x‖ =

‖A−1r‖‖A−1b‖ ≤

‖A−1‖ · ‖r‖‖A−1r‖ ≤ κ(A)

‖r‖‖A‖ · ‖A−1b‖ ≤ κ(A)

‖r‖‖b‖ ,

pentru orice norma consistenta ‖ · ‖. Astfel, testul ”r este mic” e valid doar dacamatricea A este bine conditionata.

Exemplul 2.2 Matricele Hilbert Hn ∈ Rn×n, definite prin hij = 1/(i+j−1) suntrau conditionate, κ(Hn) crescand foarte repede cu n. De exemplu, κ∞(H3) ≈ 748.Daca luam

x =

8.274.603.23

, b =

11.646 . . .6.475 . . .4.552 . . .

, d =

0.0128−0.0714

0.0689

, x = x+ d,

atunci x este solutia sistemului H3x = b (ın acest exemplu am ales x si am calculatb). Pentru solutia ”aproximativa” x avem

‖b−H3x‖∞‖b‖∞

≈ 1.7 · 10−5,‖x− x‖∞‖x‖∞

≈ 8.6 · 10−3.

Page 114: metode de calcul numeric matriceal. algoritmi fundamentali

100 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

Deci, desi reziduul ‖b −H3x‖ este relativ mic fata de b, eroarea relativa a solutieiaproximative x este mult mai mare, de aproximativ 510 ori, i.e. cu un factor demarime de ordinul lui κ∞(H3). ♦

Estimarea numarului de conditionare

Un algoritm bun de calcul al solutiei sistemului Ax = b indica si cat de sigura estesolutia obtinuta, ın conditiile perturbarii inerente a datelor de intrare. Numarulde conditionare κ∞(A) (se alege norma ∞ doar pentru usurinta calculului) poatefurniza informatii sigure asupra acuratetii solutiei. In continuare, presupunem carezolvarea sistemului se face prin intermediul unei factorizari cu pivotare PA = LU ,de exemplu cu algoritmul GPP modificat dupa cum este sugerat ın sectiunea 2.4.1,dar concluziile pot fi extinse si ın celelalte cazuri.

Calculul exact al κ∞(A), utilizand relatia de definitie, (2.48) este prea costisitor.Daca ‖A‖∞ se obtine simplu ın O(n2) flopi conform (1.28), a calcula ‖A−1‖∞implica o inversare matriceala care necesita de trei ori mai multe operatii decatrezolvarea sistemului, adica inacceptabil de mult. Deoarece κ∞(A) indica numai olimita superioara, si nu valoarea exacta a amplificarii erorii datelor de intrare, nepunem problema estimarii numarului de conditionare cu doar O(n2) operatii.

Cline et al. [?] au propus o metoda eficienta prin care se obtin estimatii de bunacalitate ale normei ‖A−1‖∞. Metoda se bazeaza pe implicatia

Ay = d ⇒ ‖A−1‖∞ = supf 6=0

‖A−1f‖∞‖f‖∞

≥ ‖y‖∞‖d‖∞.

Problema este de a gasi un vector d care conduce la un y suficient de mare ın norma.Consideram cazul simplu ın care A este inferior triunghiulara. Deoarece sistemul

Ay = d se rezolva prin substitutie ınainte (algoritmul LTRIS), elementele lui d nutrebuie precizate toate de la ınceput ci se pot alege convenabil pe masura ce sistemuleste rezolvat. O prima idee consta ın a considera di ∈ 1,−1 (deci ‖d‖∞ = 1) side a alege ın expresia

yi = (di −i−1∑

j=1

aijyj)/aii

acea valoare di care produce cel mai mare |yi|. Schema de calcul poate fi rezumataastfel:

ν ≈ ‖A−1‖∞ 1. Pentru i = 1 : n

1. ζ ←∑i−1j=1 aijyj

2. Daca ζ ≥ 0 atunci di ← −1altfel di ← 1

3. yi ← (di − ζ)/aii

2. ν ← ‖y‖∞

Sunt necesari aproximativ n2 flopi, la fel ca pentru LTRIS.O metoda mai eficienta consta ın a urmari, la pasul i al schemei de mai sus, majo-

rarea ın modul nu numai a lui yi, ci si a tuturor sumelor partiale zki =∑i

j=1 akjyj ,

Page 115: metode de calcul numeric matriceal. algoritmi fundamentali

2.7. CONDITIONAREA SISTEMELOR LINIARE 101

cu k > i, contribuind astfel la majorarea tuturor yk, si deci a lui ‖y‖∞. Putemrealiza aceasta alegand valoarea di = ±1 care corespunde celei mai mari dintresumele

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 di = 1, respectiv di = −1, iar sumele

partiale au valorile z±ki =∑i−1

j=1 akjyj +akiy±i . Algoritmul rezultat pentru estimarea

numarului de conditionare κ∞(A) = ‖A‖∞‖A−1‖∞ este prezentat mai jos; pentruk fixat, sumele zki de mai sus se memoreaza ıntr-un scalar notat ζk.

Algoritmul 2.13 (COND – Estimarea numarului de conditionare)(Se da A ∈ Rn×n, inferior triunghiulara nesingulara. Se calculeaza oestimare κ a lui κ∞(A).)

1. Pentru k = 1 : n1. ζk ← 0

2. Pentru i = 1 : n1. y+

i ← (1 − ζi)/aii

2. y−i ← (−1− ζi)/aii

3. Pentru k = i+ 1 : n1. ζ+

k ← ζk + akiy+i

2. ζ−k ← ζk + akiy−i

4. s+ ← |y+i |+

∑nk=i+1 |ζ+

k |5. s− ← |y−i |+

∑nk=i+1 |ζ−k |

6. Daca s+ ≥ s− atunci

1. yi ← y+i

2. Pentru k = i+ 1 : n1. ζk ← ζ+

k

altfel

3. yi ← y−i4. Pentru k = i+ 1 : n

1. ζk ← ζ−k3. κ← ‖y‖∞‖A‖∞

Executia algoritmului necesita aproximativ 3n2 flopi.Consideram acum cazul general al unei matrice A ∈ Rn×n a carei factorizare

PA = LU este cunoscuta. Numarul de conditionare κ∞(A) se poate estima uti-lizand urmatoarea schema de calcul, a carei justificare depaseste cadrul acesteilucrari.

κ ≈ κ∞(A) 1. Se aplica algoritmul 2.13 pentru a obtine o solutie denorma cat mai mare a sistemului UT y = d

2. Se rezolva sistemele triunghiulare LT r = y, Lv = Pr,Uw = v

3. κ← ‖A‖∞‖w‖∞ / ‖r‖∞

Page 116: metode de calcul numeric matriceal. algoritmi fundamentali

102 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

Algoritmul necesita aproximativ 7n2 flopi si s-a dovedit excelent ın practica,valorile obtinute fiind de regula de cel mult 2-5 ori mai mici decat κ∞(A), ceea ceconstituie o aproximatie acceptabila, mai ales ın situatiile critice cand κ∞(A) arevalori foarte mari.

2.8 Stabilitatea numerica a algoritmilor de

eliminare gaussiana

Vom prezenta ın aceasta sectiune caracterizari ale stabilitatii numerice a algoritmilorde eliminare gaussiana (G, GPP, GPC), precum si modalitati de ımbunatatire arezultatelor numerice obtinute.

Un algoritm de rezolvare a sistemului liniar determinat Ax = b produce o solutiecalculata x afectata de erori numerice. Vectorul x este solutia aceluiasi sistem cudatele perturbate, i.e.

(A+H)x = b. (2.49)

Vom evalua ”marimea” matriceiH pentru algoritmii mentionati, adica vom prezentarezultate ale analizei inverse a erorilor. Evaluarea unor margini superioare pentru‖H‖ este o sarcina dificila, iar marginile au de obicei expresii complicate, de aceeanu va fi prezentata nici o demonstratie. In plus, aceste margini sunt mult mai maridecat erorile numerice ıntalnite ın practica; ele au rolul de a preciza cazurile canderorile pot fi importante, nu de a cuantifica cu precizie aceste erori.

Nu trebuie uitat nici o clipa ca, chiar ın prezenta unor valori ale ‖H‖ foartemici, acuratetea solutiei este asigurata doar daca matricea A este bine conditionata.Altfel, ‖H‖ / ‖A‖ mic poate implica (‖x− x‖) / ‖x‖ mare, indiferent de algoritmulutilizat.

In contextul teoremei 2.1, notam cu Ak si Mk matricele Ak, respectiv Mk, calcu-late efectiv de algoritmul de eliminare gaussiana G. Introducem ın plus urmatoarelenotatii:

βk = maxi,j|a(k)

ij |, k ∈ 1 : n,

γ =maxk=1:n βk

β1.

Numarul real γ este numit factor de crestere, deoarece arata cat de mult crescvalorile elementelor matricei A ın cursul transformarilor efectuate de algoritmul G.

Teorema 2.8 Matricele M1, M2, . . . , Mn−1, An = U calculate ın algoritmul G

satisfacM−1

1 . . . M−1n−1U = A+ E, cu |eij | ≤ nτβ1γεM , (2.50)

cu τ o constanta de ordinul unitatii, independenta de A.

Deoarece procedura de rezolvare a sistemelor triunghiulare prin substitutie estenumeric stabila, majoritatea erorile numerice ın rezolvarea unui sistem Ax = b aparla triangularizarea matricei A. De aceea, matricea H din (2.49) satisface marginisuperioare la nivel de element asemanatoare cu (2.50).

Page 117: metode de calcul numeric matriceal. algoritmi fundamentali

2.8. STABILITATE NUMERICA 103

Se observa ca valoarea marginii din (2.50) este determinata ın special de factorulde 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; asadaracest algoritm este numeric instabil.

• Introducerea pivotarii partiale conduce la γ ≤ 2n−1. Desi teoretic aceastamargine este mare chiar pentru valori modeste ale lui n, totusi algoritmulGPP produce rezultate precise ın marea majoritate a cazurilor uzuale (uneleexceptii sunt prezentate ın [?]); marginea este atinsa numai pentru anumitematrice ”patologice”, special construite ın acest scop; un exemplu este prezen-tat ın problema 2.24. De aceea, GPP poate fi considerat practic stabil.

• In cazul pivotarii complete avem γ ≤ [n · 21 · 31/2 · 41/3 · . . . · n1/(n−1)]1/2.Aceasta margine creste lent cu n si practic se poate considera γ ≤ n, ceea ceınseamna ca algoritmul GPC este neconditionat stabil.

Combinand constatarile de mai sus cu efortul de calcul cerut de algoritmiistudiati, putem conchide ca algoritmul GPP este cel mai recomandat pentru re-zolvarea sistemelor liniare. In cazuri speciale, cand se doreste o siguranta deosebitaa rezultatului, se pot utiliza algoritmul GPC sau metodele prezentate ın continuare.

Pentru ca marginea superioara (2.50) e relativ complicata, sa deducem un rezul-tat euristic, si deci aproximativ, dar cu aplicatii practice clare si imediate. Daca ınrezolvarea sistemului Ax = b se foloseste o strategie de pivotare, atunci γ este sufi-cient de mic; pe de alta parte, β1 ≤ ‖A‖∞, dar de acelasi ordin de marime (ın oricecaz, nβ1 ≥ ‖A‖∞). Atunci (2.50) este esential echivalenta cu afirmatia grosiera

‖E‖∞ ≈ ‖H‖∞ ≈ ‖A‖∞εM . (2.51)

Combinand (2.51) cu (2.47) (ın care ∆A = H , ∆b = 0, ∆x = x − x), se obtineaproximatia

‖x− x‖∞‖x‖∞

≈ κ∞(A) · εM , (2.52)

care conduce la urmatoarea regula de apreciere a acuratetii rezolvarii unui sistem:Daca εM ≈ 10−t si κ∞(A) ≈ 10q, atunci solutia calculata are aproximativ t− q

cifre zecimale corecte (restul de q fiind nesigure).Altfel spus, un numar de conditionare de ordinul 10q antreneaza pierderea a q

cifre semnificative ın solutie. Aceasta constatare subliniaza importanta cunoasteriiunei evaluari a lui κ(A) pentru aprecierea acuratetii solutiei calculate.

2.8.1 Scalarea sistemelor liniare

Fie D1, D2 ∈ Rn×n doua matrice diagonale nesingulare ale caror elemente sunt pu-teri ale bazei de numeratie β a formatului virgula mobila utilizat. Evident, sistemulAx = b este echivalent cu sistemul

D1AD2y = D1b, unde x = D2y. (2.53)

Page 118: metode de calcul numeric matriceal. algoritmi fundamentali

104 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

Transformarea A← D1AD2, b← D1b, prin care sistemul Ax = b se aduce la forma(2.53) se numeste scalare.

Astfel definita, scalarea nu introduce erori numerice, iar costul ei este de O(n2)flopi, deci convenabil. Sunt mai multe considerente care sugereaza ideea de scalaresi strategia de alegere a factorilor de scala D1, D2.

Daca elementele din A sunt de marimi foarte diferite, atunci, marginea din (2.50)fiind aceeasi pentru toate elementele, e posibil ca erorile relative asociate elementeloraij mici (ın modul) sa fie foarte mari. De aceea, un obiectiv al scalarii poate fi acelade a echilibra valorile elementelor matricei A.

Pe de alta parte, (2.52) sugereaza sa alegem D1, D2 astfel ıncat sa minimizamκ∞(D1AD2). Acest obiectiv este dificil de realizat ın general si imposibil cu restrictiade cost impusa; de altfel, nu are sens a optimiza pornind de la o relatie aproximativa.

Tinand seama de cele spuse mai sus precum si de cerinta evidenta ca D1 si D2

sa fie calculate cu O(n2) operatii, s-au impus cateva modalitati de scalare:

• scalare pe linii: D2 = I si D1 se alege astfel ıncat liniile matricei D1A sa aibaaproximativ aceeasi norma ∞.

• echilibrare linii-coloane: D1 si D2 se aleg astfel ıncat fiecare linie si coloanadin D1AD2 sa aiba norma ∞ cuprinsa ın intervalul [1/β, 1] (vezi problema2.26).

De obicei, solutia calculata a sistemului (2.53) astfel scalat este mai precisa decatsolutia calculata a sistemului initial, dar ın general nu exista nici o garantie ın acestsens, de aceea scalarea nu trebuie privita ca panaceu universal ci aplicata ın functiede problema.

2.8.2 Rafinarea iterativa a solutiei calculate

O alta metoda de ımbunatatire a acuratetii solutiei calculate x a sistemului Ax = beste prezentata ın continuare. Presupunem ca sistemul a fost rezolvat folosind unalgoritm cu pivotare partiala si deci ca o factorizare PA = LU este disponibila.

Fie r = b−Ax reziduul corespunzator lui x. Daca notam e = x− x, atunci

Ae = Ax −Ax = b− (b− r) = r. (2.54)

Aceasta egalitate sugereaza sa rezolvam sistemul Ae = r, obtinand solutia e, si apoisa calculam o noua solutie

xnou = x+ e, (2.55)

sperand ca aceasta este mai precisa decat x (daca nu ar exista erori numerice ınrezolvarea sistemului Ae = r, atunci e = e, deci xnou = x). Procedura poate firepetata pentru noua solutie, pana la atingerea unei acurateti multumitoare saupana cand nu se mai obtine o ımbunatatire a acesteia. (Nu discutam aici modali-tatea tehnica de estimare a acuratetii solutiei, care depaseste nivelul acestei lucrari.)

Aparent, asa cum rezulta din (2.52), sistemele Ax = b si Ae = r se rezolvacu acurateti asemanatoare, ın esenta dictate de κ∞(A), iar adunarea solutiilor lorın (2.55) nu ar produce un rezultat mai precis. Se poate ınsa demonstra ca, daca

Page 119: metode de calcul numeric matriceal. algoritmi fundamentali

2.9. SISTEME BANDA 105

κ∞(A)εM ≪ 1, atunci schema de rafinare iterativa sugerata mai sus conduce (deobicei ıntr-un numar foarte mic de iteratii) la solutia aproximativa x satisfacand

‖x− x‖∞‖x‖∞

≤ 2n · cond(A, x) · εM , (2.56)

unde

cond(A, x)def=‖ |A−1| · |A| · |x| ‖∞

‖x‖∞, (2.57)

iar |A| este matricea cu elementele |aij |.Comparand acum (2.52) si (2.56) constatam ca ın general rafinarea iterativa

conduce ıntr-adevar la ımbunatatirea acuratetii solutiei calculate deoarece

cond(A, x) ≤ κ∞(A). (2.58)

(Pentru demonstrarea acestei inegalitati vezi problema 2.25.) Cresterea acuratetiisolutiei este cu atat mai mare cu cat raportul dintre cei doi termeni ai inegalitatii(2.58) este mai mic.

Rafinarea iterativa da rezultate si mai bune daca se calculeaza reziduul r ındubla precizie (utilizand un format virgula mobila cu mai multe cifre semnificativedecat cel utilizat la rezolvarea Ax = b). Mai precis, daca κ∞(A)εM ≪ 1, atunci prinrafinare se obtine ‖x − x‖∞ / ‖x‖∞ ≈ εM , adica cel mai precis rezultat la care sepoate 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 iteratie a schemei de rafinare are forma (beneficiind defactorizarea PA = LU disponibila)

xnou 1. Se calculeaza r = b−Ax (eventual ın dubla precizie)

2. Se rezolva sistemele triunghiulare Ly = Pr, Uz = y3. x← x+ z

Numarul de operatii este de O(n2), deci cateva iteratii au un cost semnificativmai mic decat cel al eliminarii gaussiene. Exista si dezavantaje: trebuie pastrata ocopie a matricei A pentru calculul reziduului, iar implementarea calculelor ın dublaprecizie poate fi dependenta de masina (desi standardul IEEE este respectat pe ma-joritatea calculatoarelor); de aceea, ın bibliotecile actuale, de exemplu LAPACK, seutilizeaza precizia de lucru. O analiza detaliata a erorilor pentru rafinarea iterativapoate fi gasita ın [IX].

2.9 Sisteme banda

In aceasta sectiune vom considera sisteme Ax = b, ın care A ∈ Rn×n este o matricebanda nesingulara, de latime inferioara r si superioara q. Astfel de matrice apardeseori ın practica, de exemplu la solutionarea numerica a ecuatiilor cu derivatepartiale. Vom vedea ın continuare ca aplicarea adecvata a procedurii de eliminaregaussiana poate aduce o mare reducere a numarului de operatii, fata de cazul ma-tricelor oarecare.

Page 120: metode de calcul numeric matriceal. algoritmi fundamentali

106 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

× ×× × ×× × × ×× × × ×× × ×

k=1−→

× ×0 ∗ ×0 ∗ × ×× × × ×× × ×

k=2−→

× ×× ×0 ∗ ×0 ∗ × ×× × ×

k=3−→ . . .

Fig. 2.8: Eliminarea gaussiana aplicata unei matrice banda de latime inferioara 2si superioara 1. S-au notat cu ∗ elementele modificate la pasul respectiv, cu 0 celeanulate, iar cu × cele ramase nemodificate

Teorema 2.9 Daca eliminarea gaussiana (algoritmul G) este aplicata matriceiA ∈ R

n×n banda de latime inferioara r si superioara q, nesingulara si cu A[k] nesin-gulare, k = 1 : n − 1, atunci ın egalitatea (2.10) (Mn−1 . . .M1A = U), matricea Ueste superior triunghiulara banda de latime q, iar matricele ELT Mk = I −mke

Tk

sunt caracterizate de µik = 0, pentru i > k + r (altfel spus, ın factorizarea LUprodusa de algoritmul G, matricea L este inferior triunghiulara banda de latime r).

Pe scurt, ın procedura de eliminare gaussiana fara pivotare, structura banda amatricei A este ereditara, i.e. se transmite ca atare factorilor L, U furnizati deprocedura.

Demonstratie. Figura 2.8 ilustreaza procesul de eliminare gaussiana. Deoareceµi1 = ai1/a11, rezulta µi1 = 0 pentru i > 1 + r. In atribuirea A ← M1A scrisadetaliat

aij ← aij − µi1a1j , pentru i, j = 2 : n,

se observa ca aij ramane nemodificat pentru i > 1+r (deoarece µi1 = 0) si j > 1+q(deoarece a1j = 0). Asadar, se modifica doar blocul A(2 : 1 + r, 1 : 1 + q) (ın primacoloana sunt introduse zerouri subdiagonale) si matricea A, inferior triunghiularaın prima coloana, ramane banda de latime inferioara r si superioara q.

Procesul continua analog pentru k = 2, . . . , n−1, la fiecare pas k modificandu-seblocul A(k + 1 : k + r, k : k + q), ceea ce conduce la structura banda a matriceiU , iar blocul (n − k) × (n − k) dreapta jos pastrandu-si structura banda, ceea ceasigura forma enuntata a matricelor ITE. ♦

Algoritmul rezultat este prezentat ın continuare.

Algoritmul 2.14 (Gb – Eliminare gaussiana pentru matrice banda)(Se da A ∈ Rn×n, banda de latime inferioara r si superioara q, cu A[k]

nesingulare, k = 1 : n−1. Se calculeaza matricea superior triunghiularaU si matricele ITEM1, . . . ,Mn−1 astfel ıncat U = Mn−1Mn−2 . . .M1A.)

1. Pentru k = 1 : n− 11. Pentru i = k + 1 : min(k + r, n)

1. aik ← µik = aik/akk

2. Pentru i = k + 1 : min(k + r, n)

Page 121: metode de calcul numeric matriceal. algoritmi fundamentali

2.9. SISTEME BANDA 107

1. Pentru j = k + 1 : min(k + q, n)1. aij ← aij − µikakj

Lasam cititorului calculul unei formule pentru numarul de operatii; daca r ≪ nsau q ≪ n, acesta este ≪ 2n3/3.

Triangularizarea matricei A conform algoritmului de mai sus permite reducereasistemului Ax = b la sistemul echivalent superior triunghiular Ux = d, cu U bandade latime superioara q. Adaptarea UTRIS la acest caz este imediata, elementelexi calculandu-se prin substitutie ınapoi cu formula

xi =

di −min(i+q,n)∑

j=i+1

uijxj

/uii.

Vom vedea acum ce efect are pivotarea asupra structurii banda.

Teorema 2.10 Daca eliminarea gaussiana cu pivotare partiala (algoritmul GPP)este aplicata matricei A ∈ Rn×n banda de latime inferioara r si superioara q, nesin-gulara, atunci ın egalitatea (2.14) (Mn−1Pn−1 . . .M1P1A = U), matricea U estesuperior triunghiulara banda de latime q + r, iar matricele ITE Mk = I − mke

Tk

sunt caracterizate de µik = 0, pentru i > k + r.

Demonstratia va fi doar schitata, procesul de eliminare fiind ilustrat cu ajutorulfigurii 2.9. Primul pivot este gasit pe linia i1 ∈ 1 : 1 + r, restul elementelor dinprima coloana fiind nule. Permutarea liniilor 1 si i1 (operatia A← P1A) va face cape prima linie elementele nenule sa fie ın coloanele 1 : 1+q+r, ın cel mai defavorabilcaz (i1 = 1+r). Evident, µi1 = ai1/a11, deci µi1 = 0 pentru i > 1+r. In atribuireaA←M1A scrisa detaliat

aij ← aij − µi1a1j , pentru i, j = 2 : n,

aij ramane nemodificat pentru i > 1 + r (deoarece µi1 = 0) si j > 1 + q + r(deoarece a1j = 0). Asadar se modifica doar blocul A(2 : 1 + r, 1 : 1 + q + r).Matricea A ramane banda de latime inferioara r; ın prima linie, A este banda delatime superioara q + r, iar ın liniile 1 + r : n banda de latime superioara q.

Procesul continua asemanator pentru k = 2, . . . , n− 1; dupa A← PkA, ın liniak rezulta akj = 0 pentru j > k + q + r; operatia A ← MkA modifica doar blocul

A(k+1 : k+r, k : k+r+q). In final, U si matricele ITE Mk au structura prezentataın enunt. ♦

Observam ca pivotarea partiala conduce la o matrice U superior triunghiularabanda de latime mai mare decat cea a matricei initiale A. Mai mult, ın factorizarearezultata PA = LU , matricea inferior triunghiulara L nu mai este banda, ca ınlipsa pivotarii; tinand seama de teorema 2.6, deoarece o coloana a matricei L esteo permutare a vectorului mk (ce defineste matricea ITE Mk = I −mke

Tk ), coloana

respectiva are doar r elemente nediagonale nenule, dar ın pozitii ce difera de la cazla caz.

Prezentam mai jos algoritmul sugerat de demonstratia teoremei 2.10.

Page 122: metode de calcul numeric matriceal. algoritmi fundamentali

108 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

× ×× × ×× × × ×× × × ×× × × ×× × ×

P1−→

∗ ∗ ∗ ∗× × ×∗ ∗× × × ×× × × ×× × ×

M1−→

× × × ×0 ∗ ∗ ∗0 ∗ ∗ ∗× × × ×× × × ×× × ×

P2−→

× × × ×∗ ∗ ∗ ∗× × ×∗ ∗ ∗× × × ×× × ×

M2−→

× × × ×× × × ×0 ∗ ∗ ∗0 ∗ ∗ ∗× × × ×× × ×

P3−→ . . .

Fig. 2.9: Eliminarea gaussiana cu pivotare partiala aplicata unei matrice bandade latime inferioara 2 si superioara 1. S-a presupus ca la pasul k se efectueazapermutarea liniilor k (curenta) si k + 2 (cea mai departata posibil de cea curenta)

Algoritmul 2.15 (GPPb – Eliminare gaussiana cu pivotare par-tiala pentru matrice banda) (Se da A ∈ Rn×n, banda de latime infe-rioara r si superioara q, nesingulara. Se calculeaza matricea superiortriunghiulara U , matricele ITE M1, . . . , Mn−1 (memorate peste A)si matricele PE P1, . . . , Pn−1 (memorate ın vectorul p), astfel ıncatU = Mn−1Pn−1 . . .M1P1A.)

1. Pentru k = 1 : n− 11. r1 = min(k + r, n), q1 = min(k + q + r, n)2. Se determina ik ∈ k : r1 astfel ıncat |aikk| = maxi=k:r1

|aik|3. p(k)← ik4. Pentru j = k : q1

1. akj ↔ aikj

5. Pentru i = k + 1 : r11. aik ← µik = aik/akk

6. Pentru i = k + 1 : r11. Pentru j = k + 1 : q1

1. aij ← aij − µikakj

Comentarii. Numarul de operatii este mai mare decat pentru algoritmul 2.14,dar, daca r ≪ n sau q ≪ n, acesta este totusi ≪ 2n3/3. ♦

Lasam cititorului problema scrierii unui algoritm eficient de rezolvare a sistemu-lui Ax = b, atunci cand A are structura banda, utilizand algoritmul 2.15.

In final, precizam ca pivotarea completa distruge structura banda si deci nu esterecomandata ın acest caz.

Page 123: metode de calcul numeric matriceal. algoritmi fundamentali

2.10. SISTEME SIMETRICE 109

Factorizarea Crout aplicata unei matriceA ∈ Rn×n banda de latime inferioara

r si superioara q are proprietati similare cu cele ale eliminarii gaussiane; cititoruleste invitat sa demonstreze afirmatiile urmatoare.

Algoritmul CROUT produce o matrice L inferior triunghiulara banda de latimer si o matrice U superior triunghiulara (unitate) banda de latime q.

Algoritmul CROUTP (cu pivotare partiala) produce o matrice L inferior tri-unghiulara si o matrice U superior triunghiulara (unitate) banda de latime q + r.In plus, fiecare coloana a matricei L are cel mult r elemente nediagonale nenule.

2.10 Sisteme simetrice

Ne ocupam ın aceasta sectiune de rezolvarea sistemului Ax = b, cu A inversabilasi simetrica, ın general de semn nedefinit. Nucleul rezolvarii sistemului este fac-torizarea matricei A, chiar daca eventual ea nu se face explicit. Presupunand camatricea A are factorizare LDU, deoarece A = AT si factorizarea este unica (ınconditiile teoremei 2.4), rezulta imediat ca U = LT . Se pune ıntrebarea cum putemprofita de simetrie pentru a reduce numarul operatiilor de la 2n3/3 (cazul general)la, speram, jumatate, adica n3/3.

Dificultatile 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←M1A,unde M1 = I −m1e

T1 este matricea ITE pentru care (M1A)i1 = 0, i ∈ 2 : n. Ma-

tricea M1A nu este simetrica: prima coloana are elementele subdiagonale nule, ınschimb prima linie are elemente ın general nenule. Totusi submatricea (M1A)2:n,2:n

este simetrica, ceea ce se observa si detaliind instructiunea 1.2.1.1 din algoritmul G(cu k = 1), adica,

aij ← aij − ai1a1j/a11

care se aplica identic si elementului aji = aij

aji ← aji − aj1a1i/a11 = aij − ai1a1j/a11.

Asadar nu este necesara modificarea tuturor elementelor matricei, ci doar a celor din(sa zicem) triunghiul inferior; numarul de operatii se reduce astfel la aproximativjumatate.

Pentru a pastra simetria sunt necesare transformari de congruenta, adica seaplica transformarile ITE de ambele parti ale matricei A. Primul pas al eliminariigaussiene (modificate) va fi acum A ← M1AM

T1 = M1A − (M1A)e1m

T1 ; deoarece

(M1A)e1 = a11e1, se observa ca ınmultirea la dreapta cu MT1 , adica (M1A)MT

1 ,nu afecteaza decat prima linie a matricei M1A (identica cu prima linie a matriceiA), anume introducand zerouri ın toate pozitiile din dreapta diagonalei. Asadar,din punctul de vedere al implementarii, ınmultirea la dreapta cu MT

1 nu necesitacalcule.

Continuand analog pentru celelalte coloane, se obtine echivalentul relatiei (2.10)ın cazul simetric

Ddef= Mn−1 . . .M2M1AM

T1 M

T2 . . .MT

n−1, (2.59)

Page 124: metode de calcul numeric matriceal. algoritmi fundamentali

110 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

unde D este evident o matrice diagonala.Modificand algoritmul G astfel ıncat sa se acceseze doar triunghiul inferior al

matricei A, se obtine factorizarea A = LDLT , cu L = M−11 M−1

2 . . .M−1n−1 inferior

triunghiulara unitate si D memorate peste A:

LDLT 1. Pentru k = 1 : n− 11. Pentru i = k + 1 : n

1. ti ← aik

2. aik ← aik/akk

2. Pentru j = k + 1 : n1. Pentru i = j : n

1. aij ← aij − aiktj

Vectorul auxiliar t se foloseste pentru salvarea elementelor coloanei curente k,egale cu cele de pe linia k ın triunghiul superior, pe pozitiile carora se memoreazamultiplicatorii.

Ca si ın cazul general, chiar daca A este inversabila, se pot obtine pivoti nuli

daca det(A[k]) = 0 pentru un k ∈ 1 : n−1. Un exemplu evident este A =

[0 11 0

]

.

In plus, algoritmul este numeric instabil. De aceea se impune pivotarea.Din pacate, strategiile de pivotare (partiala sau completa) propuse anterior pen-

tru eliminarea gaussiana distrug simetria. O prima idee ar fi de a aplica permutarileelementare de ambele parti ale matricei A, asa cum am procedat si cu transformarileITE; de exemplu, la primul pas, sa se calculeze A← P1AP

T1 . O astfel de permutare

nu poate aduce pe pozitia pivotului decat unul dintre elementele diagonale; exem-plul de mai sus dovedeste ca aceasta strategie poate da gres ın situatii banale.

Factorizarea cvasi-diagonala. Pastrarea simetriei trebuie deci ımbinata cuparticiparea la pivotare a elementelor nediagonale. O posibilitate de realizare aacestui compromis este de a calcula o factorizare LDLT de un tip special, ın carematricea D este cvasi-diagonala 2.

Teorema 2.11 Fie A ∈ Rn×n o matrice inversabila si simetrica. Atunci exis-ta o matrice inferior triunghiulara unitate L ∈ Rn×n, o matrice cvasi-diagonalaD ∈ Rn×n cu blocuri diagonale de dimensiune 1 × 1 sau 2 × 2, si o matrice depermutare P ∈ Rn×n astfel ıncat

PAPT = LDLT . (2.60)

Desigur, matricea D este inversabila. Expresia de mai sus este numita factorizarecvasi-diagonala a matricei A.

Demonstratia este constructiva. Vom descrie modul de calcul al factorizarii cvasi-diagonale fara a preciza strategia de permutare mai mult decat este matematicnecesar demonstratiei. Desigur, ıntr-un algoritm de calcul efectiv matricea de per-mutare P va fi construita pornind de la considerente de stabilitate numerica.

2O idee alternativa, descrisa ın [?], este de a lua D tridiagonala.

Page 125: metode de calcul numeric matriceal. algoritmi fundamentali

2.10. SISTEME SIMETRICE 111

Primul pas al procedurii de factorizare se aplica matricei

P1APT1 =

[E CT

C B

]

, (2.61)

unde E este un bloc s × s, cu s = 1 sau s = 2, iar P1 o matrice de permutare,eventual elementara. Demonstram acum ca daca A este inversabila, atunci existaP1 astfel ıncat E sa fie inversabil; de exemplu, daca a11 6= 0, se poate lua s = 1,P1 = I; daca a11 = 0, exista a1j 6= 0, altfel prima coloana a matricei A este nula,deci A este singulara; ın acest caz, cu s = 2 si P1 permutand liniile 2 si j se obtinedet(E) = −a2

1j 6= 0.Pentru a determina primele s coloane ale factorilor L si D, se utilizeaza o relatie

asemanatoare cu (2.31):

P1APT1 =

[Is 0

CE−1 In−s

] [E 00 B − CE−1CT

] [Is E−1CT

0 In−s

]

(2.62)

Daca s = 1, calculul factorizarii (2.62) este efectuat de schema LDLT . Dacas = 2, atunci CE−1 se poate calcula folosind eliminarea gaussiana cu pivotare (veziproblema 2.30) sau chiar — varianta pe care o adoptam aici pentru simplitate —calculand direct

E−1 =1

det(E)

[e22 −e21−e21 e11

]

(2.63)

si apoi ınmultind C si E−1; evident, blocul B−CE−1CT 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−1CT de dimensiune(n − s) × (n − s), si asa mai departe pana la obtinerea 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 LDLT , e necesaraalocarea unui spatiu suplimentar pentru salvarea temporara, acum ıntr-o matriceT ∈ Rn×2, a elementelor coloanei (coloanelor, daca s = 2) curente.

Algoritmul 2.16 (FCD – Factorizare cvasi-diagonala) (Se daA ∈ Rn×n simetrica si inversabila. Se calculeaza matricea inferior tri-unghiulara unitate L, matricea D ∈ Rn×n cvasi-diagonala, cu blocuri dedimensiune 1 × 1 sau 2 × 2, si matricea de permutare P ∈ Rn×n astfelıncat relatia (2.60) sa fie satisfacuta. Matricele L si D se memoreazapeste A. Modul de calcul al lui P nu este detaliat.)

0. k ← 11. Cat timp k < n

1. Se determina Pk si s.2. Se efectueaza permutarea (simetrica) A← PkAP

Tk

3. Daca s = 1 atunci

1. Pentru i = k + 1 : n1. ti1 ← aik

Page 126: metode de calcul numeric matriceal. algoritmi fundamentali

112 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

2. aik ← aik/akk

altfel

2.

[e11 ·e21 e22

]

← 1akkak+1,k+1−a2

k+1,k

[ak+1,k+1 ·−ak+1,k akk

]

3. Pentru i = k + 2 : n1. ti1 ← aik, ti2 ← ai,k+1

2. aik ← aike11 + ai,k+1e213. ai,k+1 ← ti1e21 + ai,k+1e22

4. Pentru j = k + s : n1. Pentru i = j : n

1. Daca s = 1 atunci

1. aij ← aij − aiktj1altfel

2. aij ← aij − aiktj1 − ai,k+1tj25. k ← k + s

Comentarii. Numarul de operatii este de ordinul n3/3 flopi, iar memoria ocupatade n(n+ 1)/2 + 2n. ♦

Strategii de pivotare. Vom prezenta ın continuare doua strategii de alegerea permutarilor, completand astfel algoritmul FCD cu detalierea instructiunii 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 dininstructiunea 1.2.

Pivotare completa. Spre deosebire de eliminarea gaussiana, la procedura defactorizare cvasi-diagonala pivotarea completa se poate descrie mai usor decat ceapartiala. Matricea P1 si ıntregul s sunt alese conform urmatoarei scheme [?]:

FCDPC1 1. Se alege α ∈ (0, 1)

2. µ0 = maxi,j |aij |, µ1 = maxi |aii|3. Daca µ1 ≥ αµ0 atunci

1. s = 1, se alege P1 astfel ıncat ın (2.61) |e11| = µ1

altfel

2. s = 2, se alege P1 astfel ıncat ın (2.61) |e21| = µ0

Ideea este de a alege un pivot 1 × 1 daca exista un element diagonal suficientde mare ın raport cu elementul de modul maxim µ0 (depasind un prag dictat deconstanta α). Altfel pivotul este

E =

[a11 ar1

ar1 arr

]

, unde |ar1| = µ0. (2.64)

Notand A = B − CE−1CT , se poate demonstra ca (vezi problema 2.31):

|aij | ≤(

1 + 1α

)µ0, daca s = 1,

(

1 + 21−α

)

µ0, daca s = 2.(2.65)

Page 127: metode de calcul numeric matriceal. algoritmi fundamentali

2.10. SISTEME SIMETRICE 113

Constanta α se determina impunand conditia(1 + 1

α

)2=(

1 + 21−α

)

, ceea ce

va conduce la factori de crestere (vezi sectiunea 2.8) asemanatori indiferent de di-mensiunile pivotilor. Se obtine α = (1 +

√17)/8 ≈ 0.64.

Aceasta strategie de pivotare face ca algoritmul FCD sa fie numeric stabil.O analiza inversa a erorilor conduce la o margine similara cu cea din (2.50), cuγ ≤ 3n · [21 ·31/2 ·41/3 · . . . ·n1/(n−1)]1/2; aceasta margine pentru factorul de crestereγ este putin mai mare decat cea pentru eliminarea gaussiana cu pivotare completa(algoritmul GPC).

Costul pivotarii complete este de O(n3) comparatii, la fel ca pentru algoritmulGPC, ceea ce constituie un efort de calcul important. De aceea este interesantagasirea unei strategii de pivotare partiala.

Pivotare partiala. Se poate demonstra ca alegerea pivotului cautand pe o sin-gura coloana (si eventual pe diagonala) nu poate avea succes. Surprinzator, cautandpe doua coloane se poate descrie o strategie de pivotare partiala eficienta (vezi [?]),detaliata de schema (ne ocupam din nou doar de primul pas al factorizarii):

FCDPP1 1. Se alege α ∈ (0, 1)

2. λ = maxi=2:n |ai1| (si |ar1| = λ)3. Daca |a11| ≥ αλ atunci

1. s = 1, P1 = Ialtfel

2. σ = maxi=1:n, i6=r |air|3. Daca |a11|σ ≥ αλ2 atunci

1. s = 1, P1 = Ialtfel daca |arr| ≥ ασ atunci

2. s = 1, se alege P1 astfel ıncat ın (2.61) e11 = arr

altfel

3. s = 2, se alege P1 astfel ıncat ın (2.61) |e21| = λ

Pentru a ıntelege ideea pivotarii, este util a considera matricea

a11 . . . λ . . . . . . . . ....

...λ . . . arr . . . σ . . ....

...... σ...

...

si a observa ca pivotul este a11 sau arr cand s = 1, sau

[a11 ar1

ar1 arr

]

cand s = 2.

Se poate demonstra ca relatia (2.65) ramane ın continuare adevarata, deci se vaalege aceeasi valoare pentru α. Factorul de crestere din (2.50) va fi acum limitat deγ ≤ (1 + 1/α)n−1 ≈ (2.57)n−1, o margine ceva mai larga decat pentru algoritmulGPP. In practica, algoritmul de factorizare cvasi-diagonala cu pivotare partiala

Page 128: metode de calcul numeric matriceal. algoritmi fundamentali

114 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

are o stabilitate numerica satisfacatoare. Cum numarul de comparatii este redusacum la O(n2), pivotarea partiala este de obicei preferata celei complete (la fel cala eliminarea gaussiana).

Utilizarea factorizarii cvasi-diagonale. Factorizarea (2.60) poate fi folositaın modul cel mai simplu pentru rezolvarea sistemelor liniare, redusa la rezolvareaa doua sisteme triunghiulare si a unuia cvasi-diagonal; lasam cititorului detaliile deimplementare.

De asemenea, (2.60) se poate utiliza pentru calculul inversei matricei A, tinandseama ca

A−1 = PTL−TD−1L−1P.

Remarcam faptul ca si matricea A−1 este simetrica.

Cazul complex. In cazul ın care A ∈ Cn×n este hermitica (A = AH), factori-zarea sa cvasi-diagonala are forma (analoaga cu (2.60))

PAPT = LDLH ,

unde P este o matrice de permutare, L ∈ Cn×n este inferior triunghiulara unitate,iar D ∈ Cn×n este bloc diagonala (cu blocuri 1× 1 sau 2× 2) si hermitica.

Algoritmul FCD ısi pastreaza forma generala; trebuie luat ınsa ın considerarefaptul ca ın cazul complex transpunerea este ınsotita si de conjugare. De exemplu,(2.61) devine

P1APT1 =

[E CH

C B

]

, (2.66)

iar E este hermitica, adica, ın cazul 2× 2,

E =

[e11 e21e21 e22

]

.

Instructiunile algoritmului FCD se modifica corespunzator, de exemplu 1.4.1.1.1are forma aij ← aij − aikajk.

2.11 Sisteme simetrice pozitiv definite

Consideram acum sistemul Ax = b, unde matricea A ∈ Rn×n este simetrica sipozitiv definita. Ideea de baza a rezolvarii lui este data de teorema urmatoare.

Teorema 2.12 Pentru orice matrice simetrica si pozitiv definita A ∈ Rn×n, existao unica matrice inferior triunghiulara L ∈ Rn×n, cu elemente diagonale pozitive,astfel ıncat

A = LLT , (2.67)

expresie care este numita factorizare Cholesky (iar L este numit factorul Choleskyal matricei A). Reciproc, daca factorizarea Cholesky exista, atunci A este pozitivdefinita.

Page 129: metode de calcul numeric matriceal. algoritmi fundamentali

2.11. SISTEME SIMETRICE POZITIV DEFINITE 115

Evident, (2.67) se poate scrie sub forma A = RTR, unde R = LT este superiortriunghiulara. De asemenea, factorizarile A = LTL, respectiv A = RRT , se numesctot Cholesky.

Demonstratie. Deoarece A este pozitiv definita atunci, conform propozitiei 1.3,submatricele lider principale A[k], k = 1 : n− 1, sunt pozitiv definite, deci nesingu-lare. Atunci A are o unica factorizare LDU (vezi teorema 2.4), A = L′DU ′ si, dinmotive de simetrie, U ′ = (L′)T . Dar A si D sunt congruente, deci D este pozitivdefinita, adica dii > 0, i = 1 : n. Fie F ∈ R

n×n matricea diagonala definita defii =

√dii, i = 1 : n. Notand L = L′F , prima parte a teoremei este demonstrata

(lii =√dii, i = 1 : n).

Reciproca este evidenta; fie x ∈ Rn nenul, altfel arbitrar; atunci avem xTAx =xTLLTx = ‖LTx‖22 > 0 (deoarece L este nesingulara, LTx 6= 0). ♦

Exista mai multi algoritmi pentru calculul factorizarii Cholesky a unei matricepozitiv definite, care difera doar prin ordinea de efectuare a calculelor. Vom deduceaici 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 = LLT (doar triunghiul inferior stangal lui A este reprezentat, deoarece A este simetrica)

a11

.... . .

ak1 . . . akk

......

. . .

an1 . . . ank . . . ann

=

l11...

. . . 0lk1 . . . lkk

......

. . .

ln1 . . . lnk . . . lnn

l11 . . . lk1 . . . ln1

. . ....

...lkk . . . lnk

0. . .

...lnn

obtinem pentru prima coloana:

a11 = l211 ⇒ l11 =√a11,

ai1 = li1l11 ⇒ li1 = ai1 / l11, i = 2 : n,(2.68)

si deci procesul de calcul poate fi initiat.Acum, presupunand ca primele k−1 coloane din L au fost calculate, identificarea

elementului din pozitia (k, k) ın A = LLT furnizeaza

akk =

k−1∑

j=1

l2kj + l2kk, (2.69)

ın care singura necunoscuta este lkk. Conform teoremei 2.12, daca A este pozitivdefinita, atunci exista un unic lkk pozitiv astfel ıncat (2.69) sa aiba loc. Atunci,

akk −k−1∑

j=1

l2kj > 0 (2.70)

si

lkk =

√√√√akk −

k−1∑

j=1

l2kj . (2.71)

Page 130: metode de calcul numeric matriceal. algoritmi fundamentali

116 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

De asemenea,

aik =

k−1∑

j=1

lij lkj + liklkk, i = k + 1 : n,

ın care, ın ordinea de calcul considerata, singura necunoscuta este lik. Asadar

lik =

aik −k−1∑

j=1

lij lkj

/ lkk, i = k + 1 : n. (2.72)

Formulele (2.68), (2.71) si (2.72) definesc algoritmul de mai jos; pentru concizie,am inclus si primul pas ın bucla de parcurgere a coloanelor. Totodata, acest algoritmeste cel mai bun mijloc de testare a pozitivitatii unei matrice; testul se bazeaza pefaptul ca factorizarea Cholesky a unei matrice poate fi calculata daca si numaidaca matricea este pozitiv definita (teorema 2.12); asadar, daca termenul stang alinegalitatii (2.70) nu este pozitiv, atunci matricea A nu este pozitiv definita.

Algoritmul 2.17 (CHOL – factorizare Cholesky) (Se daA ∈ Rn×n

simetrica. Se stabileste daca A este pozitiv definita si, ın acest caz,se scrie peste triunghiul inferior al lui A matricea L din factorizareaCholesky A = LLT .)

1. Pentru k = 1 : n

1. α← akk −∑k−1

j=1 l2kj

2. Daca α ≤ 0 atunci

1. Tipareste ’A nu este pozitiv definita’2. Stop

3. akk ← lkk =√α

4. Pentru i = k + 1 : n

1. aik ← lik =(

aik −∑k−1

j=1 lij lkj

)

/ lkk

Comentarii. In mod evident, instructiunea 1.4.1 reprezinta o operatie DOT. Oalta ordonare a calculelor, care, ın varianta vectoriala, conduce la operatii Saxpy,este propusa ın problema 2.33. Tot ca exercitiu pentru cititor (problema 2.34)este lasata varianta la nivel de bloc a factorizarii Cholesky, foarte asemanatoarealgoritmilor de factorizare LU la nivel de bloc, prezentati ın sectiunea 2.4.

Algoritmul CHOL necesita aproximativNCHOL = n3/3 flopi si, ın plus, calculula n radacini patrate (care e neglijabil). Memoria necesara este de aproximativMCHOL = n2/2.

Algoritmul este numeric stabil; daca L reprezinta factorul Cholesky calculat,atunci LLT = A+E, unde perturbatia 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 definita se calculeaza cu schema

Ch 1. Se factorizeaza A = LLT cu algoritmul CHOL

2. Se rezolva sistemul inferior triunghiular Ly = b3. Se rezolva sistemul superior triunghiular LTx = y

Page 131: metode de calcul numeric matriceal. algoritmi fundamentali

2.12. RUTINE LAPACK SI MATLAB 117

efectuandu-se de doua ori mai putine operatii decat daca s-ar aplica algoritmul deeliminare gaussiana.

In privinta conditionarii, problema rezolvarii sistemului pozitiv definit Ax = bsatisface inegalitatea (2.47).

Inversa (care este tot simetrica si pozitiv definita) si determinantul unei matricesimetrice pozitiv definite se calculeaza adaptand ideile din sectiunea 2.6 la contextulfactorizarii Cholesky A = LLT .

Matrice banda. Daca A ∈ Rn×n este o matrice simetrica, pozitiv definitasi banda de latime r, atunci factorul Cholesky este inferior triunghiular banda delatime r. Aceasta se poate observa cu usurinta din relatia (2.72), ın care un elementlik depinde de valorile lij aflate la stanga sa pe linia i (i.e. j < k); asadar, li1 = ai1,deci ın prima coloana se mosteneste structura matricei A; daca, pentru un indicede coloana s, avem lij = 0 pentru j = 1 : s− 1, atunci este evident ca lis = ais/lss,

deci structura se mosteneste si ın coloana s. In concluzie, linia i are, ın portiuneasubdiagonala, aceeasi structura ın A si L.

Adaptarea algoritmului CHOL la cazul matricelor banda este un exercitiu re-lativ simplu pe care ıl lasam cititorului (vezi problema 2.36).

Cazul complex. Daca matricea A ∈ Cn×n este hermitica si pozitiv definita,atunci factorizarea sa Cholesky este unica si are forma

A = LLH ,

unde L ∈ Cn×n este inferior triunghiulara, cu elementele diagonale reale si pozi-tive (si A are elementele diagonale reale, fiind hermitica, si pozitive, fiind pozitivdefinita). Factorul Cholesky se poate calcula cu algoritmul CHOL usor modificat,deoarece (2.71) si (2.72) se transforma ın

lkk =

√√√√akk −

k−1∑

j=1

lkj lkj , (2.73)

respectiv

lik =

aik −k−1∑

j=1

lij lkj

/ lkk, i = k + 1 : n. (2.74)

2.12 Rutine LAPACK si MATLAB

Prezentam pe scurt ın continuare rutinele din biblioteca LAPACK si instructiunilesau functiile limbajului MATLAB care rezolva problemele tratate ın acest capitol.

LAPACK (Linear Algebra PACKage) [XV] este o biblioteca de rutine scriseinitial ın FORTRAN dar apelabile din mai multe limbaje de programare. Rutineleimplementeaza ın special algoritmi la nivel de bloc (apeland rutinele BLAS de nivel3) si de aceea ating maximul de performanta pe calculatoare cu memorie ierarhica.Pentru fiecare problema au fost alesi algoritmii cei mai fiabili si rapizi dintre ceicunoscuti, buna parte dintre acestia fiind adaptarea celor din bibliotecile LINPACK

Page 132: metode de calcul numeric matriceal. algoritmi fundamentali

118 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

[XIII] (dedicata ın special rezolvarii sistemelor liniare) si EISPACK [XI,XII] (pentrucalculul valorilor proprii si probleme conexe), cele mai performante si folosite pa-chete de programe de calcul numeric ale anilor ’70–’80. De aceea se poate aprecia caLAPACK 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 conventiile BLAS (vezi sectiunea 1.11),adica au forma xyyzzz, unde x codifica formatul de reprezentare a datelor, yy

reprezinta tipul matricei (vezi tabelul 1.1 pentru cele mai importante tipuri), iarzzz arata operatia executata.

Rutinele LAPACK sunt ımpartite ın trei categorii:

• rutine driver, care rezolva o problema completa, de exemplu aflarea solutieiunui sistem liniar;

• rutine de calcul, care rezolva subprobleme sau completeaza rezolvarea uneiprobleme, de exemplu calculul factorizarii LU sau rafinarea iterativa a solutieiunui sistem liniar;

• rutine auxiliare.

Rezolvarii sistemelor liniare ıi sunt dedicate ın LAPACK doua tipuri de rutinedriver:

1. Driverul simplu, cu numele de forma xyySV, rezolva sistemele (cu partedreapta multipla) AX = B sau ATX = B. De exemplu, xGESV se utilizeaza pentrumatrice A oarecare (implementand eliminarea gaussiana la nivel de bloc), xPOSV seutilizeaza cand matricea A este simetrica pozitiv definita (implementand algoritmulCholesky la nivel de bloc) etc.

2. Driverul expert, cu numele xyySVX, care, ın plus

• scaleaza matricea A daca este necesar;

• estimeaza numarul de conditionare al matricei A;

• rafineaza iterativ solutia.

In contextul rezolvarii de sisteme, rutinele de calcul cele mai importante sunturmatoarele:

1. xyyTRF calculeaza factorizarea PA = LU ın cazul general (yy=GE), factori-zarea Cholesky A = LLT pentru matrice simetrice (hermitice) pozitiv definite(yy=PO), factorizarea cvasi-diagonala PAPT = LDLT pentru matrice sime-trice (hermitice) (yy=SY, yy=HE). In toate cazurile de mai sus exista rutine sipentru matrice banda.

2. xyyTRS utilizeaza rezultatul factorizarii (iesirea rutinei xyyTRF corespunzatoa-re) pentru a calcula solutia unui sistem liniar.

3. xyyEQU scaleaza matricea A.

4. xyyRFS rafineaza iterativ solutia unui sistem liniar.

Page 133: metode de calcul numeric matriceal. algoritmi fundamentali

2.13. PROBLEME 119

5. xyyCON estimeaza inversul numarului de conditionare, adica 1/κ(A).

6. xyyTRI calculeaza inversa unei matrice, utilizand rezultatul factorizarii.

MATLAB (MATrix LABoratory) [XIV] are o interfata mai simpla, dar rutinelesale implementeaza de asemenea algoritmi de mare performanta.

Rezolvarea sistemului liniar (eventual cu parte dreapta multipla) AX = B seface apeland la operatorul de ”ımpartire” la stanga; daca A si B sunt variabilelememorand matricea coeficientilor sistemului si, respectiv, termenul sau drept, atuncisolutia se calculeaza cu A\B. Sistemul (cu necunoscuta la stanga)XA = B se rezolvautilizand operatorul de ”ımpartire” la dreapta, solutia fiind B/A. In ambele cazuri,algoritmul implementat este eliminarea gaussiana cu pivotare partiala, indiferentde tipul matricei.

Factorizarea PA = LU este calculata de functia lu, iar factorizarea Choleskyde functia chol. Nu exista o functie dedicata factorizarii cvasi-diagonale.

Inversa unei matrice se calculeaza cu functia inv, iar determinantul cu det.Reamintim ca ın nici un caz solutia unui sistem AX = B nu se calculeaza cuinv(A)*B.

Pentru calculul numarului de conditionare exista mai multe functii; cond cal-culeaza exact κ2(A), ceea ce necesita mai multe operatii decat rezolvarea sistemuluiliniar Ax = b (algoritmul va fi prezentat ın capitolul 5); rcond estimeaza 1/κ∞(A),utilizand algoritmul din finalul sectiunii 2.7; ın fine, condest estimeaza 1/κ1(A) cuun algoritm neprezentat ın aceasta lucrare.

2.13 Probleme

P 2.1 Descrieti o varianta a eliminarii gaussiene ın care se introduc zerouri ın coloanelelui 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 Scrieti variantele vectoriale ale algoritmilor GPP si GPC, utilizand apeluri lafunctii din biblioteca BLAS 1.

P 2.3 Fie A ∈ Rn×n o matrice strict diagonal dominanta pe coloane, i.e. cu proprietatea

|ajj | >Pn

i=1,i6=j |aij |. Demonstrati ca pivotarea partiala nu este necesara ın procesul deeliminare gaussiana si ca toti multiplicatorii gaussieni sunt subunitari (ın modul).

P 2.4 Fie matricea de transformare elementara Gauss-Jordan Mk = In − mkeTk , definita

de vectorul mk = [µ1k . . . µk−1,k 0 µk+1,k . . . µnk]T .a. Fie x ∈ R

n, cu xk 6= 0. Determinati mk astfel ıncat Mkx = xkek.b. Fie A ∈ R

n×n, avand submatricele lider principale A[k] nesingulare, k = 1 : n− 1.Scrieti un algoritm care, utilizand transformari Gauss-Jordan, diagonalizeaza matricea A,i.e. genereaza M1, M2, . . . , Mn−1 astfel ıncat Mn−1 . . . M2M1A = D, cu D diagonala.Care este numarul de operatii ?

c. Introduceti pivotarea ın algoritmul anterior.

P 2.5 Demonstrati unicitatea factorizarii LDU ın conditiile teoremei 2.4.

P 2.6 Demonstrati ca daca A ∈ Rn×n admite o factorizare LDU unica, atunci subma-

tricele lider principale A[k], k = 1 : n− 1, sunt nesingulare. (Indicatie: utilizati reducereala absurd.)

Page 134: metode de calcul numeric matriceal. algoritmi fundamentali

120 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

P 2.7 Demonstrati ca algoritmul GPP modificat conform descrierii din sectiunea 2.4.1produce o factorizare LU pentru care |lik| ≤ 1, pentru i > k.

P 2.8 Cum trebuie modificat algoritmul GPC aplicat matricei A ∈ Rn×n pentru a furniza

factorizarea LU cu permutari pe linii si pe coloane de forma PAQ = LU ? Demonstratica |ukk| ≥ |ukj |, pentru j > k (ın plus, |lik| ≤ 1, pentru i > k).

P 2.9 Adaptati algoritmul de eliminare gaussiana cu pivotare partiala astfel ıncat sacalculeze factorizarea (2.32).

P 2.10 Scrieti o varianta la nivel de bloc a algoritmului de factorizare Crout cu pivotareCROUTP.

P 2.11 Cum trebuie modificati algoritmii 2.7 si 2.8 astfel ıncat sa functioneze corect siatunci cand dimensiunea n a matricei nu este multiplu al dimensiunii r a blocurilor ?

P 2.12 Prezentati o varianta a algoritmului de rezolvare a sistemelor liniare de formaAx = b prin eliminare gaussiana cu pivotare partiala, fara a memora multiplicatorii.

P 2.13 Fie H ∈ Rn×n o matrice nesingulara superior Hessenberg (hij = 0, pentru

i > j + 1).

a. Daca toate submatricele lider principale ale lui H sunt nesingulare, adaptati algo-ritmul de eliminare gaussiana pentru rezolvarea sistemului liniar Hx = b, unde b ∈ R

n;calculati numarul de operatii.

b. Adaptati algoritmul GPP pentru aceeasi problema.

c. Adaptati algoritmul Crout de factorizare LU.

P 2.14 Se considera doua matrice: H ∈ Rn×n, superior Hessenberg nesingulara, si

R ∈ Rn×n, superior triunghiulara unitate. Prezentati algoritmi eficienti pentru:

a. rezolvarea sistemului liniar HRx = b, cu b ∈ Rn.

b. Atunci cand toate submatricele lider principale ale lui H sunt nesingulare, factori-zarea Crout A = HR poate fi obtinuta 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 = LU .2. Calculeaza U = UR.

Care dintre ele este mai eficienta ?

P 2.15 a. Propuneti un algoritm pentru rezolvarea sistemului liniar Ax = b, undeA ∈ R

n×n este nesingulara si b ∈ Cn, utilizand numai aritmetica reala.

b. Prezentati un algoritm pentru rezolvarea ecuatiei matriceale AX = B, ın careA ∈ R

n×n este nesingulara si B ∈ Rn×m. (Indicatie: utilizati GPP.)

c. Idem, dar pentru ecuatia XA = B, cu A ∈ Rn×n, B ∈ R

m×n.

P 2.16 Se da matricea A ∈ Rn×n nesingulara. Utilizand rezultatul algoritmului de elim-

inare gaussiana cu pivotare partiala (Mn−1Pn−1 . . . M1P1A = U) sau factorizarea LU(PA = LU), scrieti algoritmii pentru rezolvarea sistemelor AT y = c, AT Y = C, undec ∈ R

n, C ∈ Rn×m.

P 2.17 Prezentati un algoritm eficient pentru rezolvarea sistemului liniar Akx = b, undeA ∈ R

n×n este nesingulara, b ∈ Rn si k ∈ N, k > 1.

P 2.18 Daca A,B ∈ Rn×n sunt matrice nesingulare, prezentati un algoritm eficient de

rezolvare a sistemului liniar (AB)kx = c, unde c ∈ Rn.

Page 135: metode de calcul numeric matriceal. algoritmi fundamentali

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 ”decomplexificare”) ın forma

»

A −BB A

– »

xy

=

»

uv

Ce este preferabil: (a) rezolvarea sistemului Cz = w cu operatii complexe sau (b) rezolvareasistemului decomplexificat cu operatii reale ?

P 2.20 Se presupune ca A ∈ Rn×n are o factorizare LU si ca L si U sunt cunoscuti.

Prezentati un algoritm care calculeaza elementul din pozitia (i, j) a matricei A−1, cuaproximativ (n− j)2 + (n− i)2 flopi.

P 2.21 Detaliati algoritmii de calcul al inversei unei matrice A ∈ Rn×n si al det(A),

utilizand eliminarea gaussiana cu pivotare completa.

P 2.22 Se dau A ∈ Rn×n, B ∈ R

n×r, C ∈ Rr×n, D ∈ R

r×r, matricele A si D fiindinversabile. Fie A+ = A+BD−1C (actualizare de rang r a matricei A). Cazuri particulare:1 A, D simetrice pozitiv definite, C = BT ; 2 r = 1, adica A+ = A + bcT /δ (actualizarede rang 1).

a. Demonstrati ca are loc formula (Sherman-Morrison-Woodbury):

A−1+ = A−1 − A−1BD−1

+ CA−1, unde D+ = D + CA−1B.

b. Scrieti un algoritm de calcul al matricei A−1+ , presupunand A−1 cunoscuta (actu-

alizarea inversei). Considerati cazurile particulare 1 si 2. Evaluati numarul de operatii.

c. Se considera matricea H =

»

A BC −D

. Demonstrati ca

H−1 =

»

A−1+ A−1BD−1

+

D−1+ CA−1 −D−1

+

.

P 2.23 Fie u, v ∈ Rn doi vectori nenuli si matricea A = In + uvT .

a. Prezentati un algoritm eficient pentru calculul determinantului matricei A. Candeste A nesingulara ?

b. Daca A este nesingulara si b ∈ Rn, scrieti un algoritm eficient pentru rezolvarea

sistemului liniar Ax = b.

P 2.24 Matricea A ∈ Rn×n 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

.

Demonstrati ca ın algoritmul GPP nu se efectueaza nici o permutare si ca γ = 2n−1.

P 2.25 Fie A ∈ Rn×n si x ∈ R

n. Demonstrati inegalitatea cond(A,x) ≤ κ∞(A) (relatia(2.58)).

Page 136: metode de calcul numeric matriceal. algoritmi fundamentali

122 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUATII LINIARE

P 2.26 Se da A ∈ Rn×n. Sa se gaseasca matricele diagonale D1 si D2 astfel ıncat fiecare

linie si coloana din D1AD2 sa aiba norma ∞ egala cu 1. (Impunandu-se restrictia caelementele matricelor D1 si D2 sa fie puteri ale bazei de numeratie β, sa se construiascaD1 si D2 astfel ıncat liniile si coloanele lui D1AD2 sa aiba norma ∞ cuprinsa ın intervalul[1/β, 1].)

P 2.27 Fie B =

»

A 0R A

, cu A,R ∈ Rn×n, nesingulare, R superior triunghiulara. Se

presupune ca factorizarea LU a lui A exista si este cunoscuta (A = LU).a. Scrieti un algoritm pentru calculul factorizarii LU a lui B, B = LU .b. Propuneti un algoritm pentru rezolvarea sistemului liniar Bx = d, ın care d ∈ R

2n.Calculati numarul de operatii pentru ambii algoritmi.

P 2.28 Fie A ∈ R2n×2n o matrice nesingulara cu toate submatricele lider principale nesin-

gulare, de forma A =

»

A1 A2

A3 A4

, cu A1, A2, A3, A4 ∈ Rn×n si A3 superior triunghiulara.

a. Scrieti un algoritm pentru rezolvarea sistemului liniar Ax = b, cu b ∈ R2n.

b. Aceeasi problema, dar presupunand doar ca A este nesingulara.

P 2.29 Fie A ∈ Rn×n o matrice nesingulara tridiagonala (aij = 0, pentru i > j + 1 sau

i < j − 1).a. Adaptati algoritmul de eliminare gaussiana la acest tip de matrice.b. Prezentati un algoritm care rezolva sistemul Ax = b, cu b ∈ R

n.c. Daca matricea A este simetrica si pozitiv definita, adaptati algoritmul de factorizare

Cholesky pentru A.

P 2.30 Detaliati o procedura de calcul al matricei F = CE−1 din (2.62), pentru cazuls = 2, utilizand eliminarea gaussiana cu pivotare partiala.

P 2.31 Demonstrati relatia (2.65) (care margineste cresterea elementelor matricei sime-trice A ın timpul executiei algoritmul FCD, de factorizare cvasi-diagonala cu pivotarecompleta).

P 2.32 Detaliati 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 Scrieti un algoritm de calcul al factorului Cholesky L al unei matrice A ∈ Rn×n

pozitiv definite, ın care elementele lui L sa fie calculate prin operatii Saxpy (si nu DOT,ca ın algoritmul CHOL). Indicatie: algoritmul este asemanator eliminarii gaussiene.

P 2.34 Scrieti o varianta la nivel de bloc a algoritmului de factorizare Cholesky a uneimatrice simetrice pozitiv definite.

P 2.35 Fie A ∈ Rn×n o matrice nesingulara inferior bidiagonala, si T = AAT . Prezentati

un algoritm eficient pentru calculul factorizarii Cholesky a matricei T (demonstrati ıntaica T este simetrica si pozitiv definita).

P 2.36 Adaptati algoritmul CHOL pentru factorizarea matricelor simetrice pozitiv de-finite banda de latime r.

P 2.37 Daca matricea A ∈ Rn×n este simetrica si pozitiv definita, propuneti un algo-

ritm pentru factorizarea Cholesky A = RRT , unde R este superior triunghiulara si areelementele diagonale pozitive.

P 2.38 Fie A ∈ Rn×n o matrice simetrica si pozitiv definita. Scrieti un algoritm de calcul

al factorizarii A = LDLT , cu L inferior triunghiulara unitate si D diagonala. (A = LDLT

mai este numita factorizare Cholesky ”fara radical”.)

Page 137: metode de calcul numeric matriceal. algoritmi fundamentali

Capitolul 3

Problema celor mai mici

patrate

In acest capitol vom prezenta principalele metode numerice de rezolvare a sistemelorde ecuatii liniare

Ax = b, (3.1)

ın care matricea A ∈ Rm×n si vectorul b ∈ Rm sunt date, iar m 6= n, adicanumarul ecuatiilor este diferit de cel al necunoscutelor. Intrucat, de regula, unsistem supradeterminat (cu m > n) nu are solutii, iar un sistem subdeterminat (cum < n) nu are solutie unica, pentru a asigura buna formulare a problemei de calcul,ın prima situatie trebuie sa redefinim, iar ın a doua trebuie sa precizam notiuneade ”solutie” a sistemului (3.1).

In cazul m > n, o reformulare naturala a problemei (3.1) consta ın a cere deter-minarea unei solutii aproximative a sistemului (3.1), adica a unui vectorx∗ ∈ Rn astfel ıncat reziduul corespunzator r∗ = b − Ax∗ sa fie, ıntr-un anumitsens, cat mai mic. (Altfel spus, vectorul b trebuie sa fie aproximat cat mai bineprintr-o combinatie liniara a coloanelor lui A.) Intr-o exprimare mai precisa, aceastaınseamna ca x∗ trebuie sa minimizeze functia

ρ(x) = ν(b−Ax), (3.2)

unde ν(·) este o norma pe Rm, aleasa ın mod adecvat.In cazul m < n, un criteriu natural de selectie a unei singure solutii x∗ ∈ Rn a

sistemului (3.1) impune ca aceasta sa fie, ıntr-un anumit sens, cat mai ”economica”,de exemplu sa aiba o ”lungime”, adica o norma, cat mai mica. Altfel spus, x∗ trebuiesa minimizeze functia

φ(x) = µ(x)|Ax=b, (3.3)

unde µ(·) este o norma pe Rn 1.

1Notatia din (3.3) spune ca φ este restrictia normei µ pe multimea X a solutiilor sistemului(3.1). Desigur, pentru ca problema minimizarii functiei φ sa aiba sens, este necesar sa presupunemca sistemul liniar (3.1) are cel putin o solutie, i.e. b ∈ ImA.

123

Page 138: metode de calcul numeric matriceal. algoritmi fundamentali

124 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Subliniem din start ca alegerea normelor din (3.2) si (3.3) depinde de naturaproblemei considerate si, ın acelasi timp, determina specificul metodelor de calculutilizate pentru rezolvarea ei. (De exemplu, ın cazul normelor ‖ · ‖1 sau ‖ · ‖∞se obtin probleme de programare liniara, care se rezolva prin metodele expuse ıncapitolul 2, vezi [X]).

In acest capitol vom considera ca normele ν si µ coincid cu norma euclidiana‖ · ‖ = ‖ · ‖2, iar terminologia utilizata va fi urmatoarea.

1. In cazul m ≥ n problema de minimizare

‖b−Ax∗‖ = minx∈Rn

‖b−Ax‖ (3.4)

a normei euclidiene a reziduului r = b − Ax se numeste problema (liniara) acelor mai mici patrate (CMMP), iar solutia ei x∗ este, prin definitie, pseudo-solutia sistemului (3.1) ın sensul CMMP. Vectorul b∗ = Ax∗ constituie ceamai buna aproximare a lui b printr-o combinatie liniara a coloanelor matriceiA, i.e. pe ImA, iar reziduul de norma minima r∗ = b−Ax∗ reprezinta eroareade aproximare optimala.

2. In cazul m ≤ n solutia problemei de minimizare cu restrictii liniare

‖x∗‖ = minAx=b

‖x‖ (3.5)

este, prin definitie, solutia normala ın sensul CMMP (i.e. solutia de normaeuclidiana minima) a sistemului (3.1).

Problemele de tip CMMP enuntate mai sus apar sub diverse forme (inclusiv cudate complexe) ın multe aplicatii care, de exemplu, vizeaza aproximarea functiilor,prelucrarea statistica a datelor experimentale, modelarea si identificarea sistemelordinamice, prelucrarea semnalelor etc.

Exemplul 3.1 Consideram un proces descris printr-o dependenta functionalay = f0(u), cunoscuta doar partial din date experimentale constand ıntr-o multimede perechi intrare-iesire (ui, yi), unde yi = f0(ui), i = 1 : m.

Se pune problema gasirii unei expresii analitice aproximative f pentru functiaf0, sub forma unei combinatii liniare cu coeficientii c1, c2, . . . , cn a n functii dateg1, g2, . . . , gn, i.e.

f(u) =n∑

j=1

cjgj(u),

astfel ıncat erorile de aproximare (sau reziduurile)

ri = yi − f(ui), i = 1 : m,

evaluate ın punctele date (ui, yi), sa fie cat mai mici.In cazul tipic m > n, formularea ın sens CMMP a problemei de aproximare

considerate mai sus consta ın determinarea coeficientilor cj , j = 1 : n, astfel ıncateroarea medie patratica

‖r‖2 =

m∑

i=1

r2i =

m∑

i=1

yi −n∑

j=1

cjgj(ui)

2

(3.6)

Page 139: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 125

sa fie minima.

Introducand matricea A ∈ Rm×n cu elementele aij = gj(ui), i = 1 : m,j = 1 : n, precum si vectorii b = [ y1 y2 . . . ym ]T ∈ Rm si x = [ c1 c2 . . . cn ]T ∈ Rn,problema minimizarii lui (3.6) se scrie evident sub forma sintetica (3.4). ♦

Exemplul 3.2 In problemele de identificare si estimare a parametrilor, relatiiledin exemplul anterior apar scrise sub forma

yi =n∑

j=1

cjgj(ui) + ri, i = 1 : m,

ın care acum reziduurile ri reprezinta erori (sau zgomote) de masura si, ın consecinta,au o descriere statistica. Se poate arata ca, ın anumite conditii standard, estimarileoptimale ale parametrilor x = [c1 . . . cn]T sunt solutii ale problemei CMMP (3.6)cu exact aceleasi date A, b ca mai sus. In general, probleme de modelare sistemicaextrem de complicate admit o dubla interpretare, ca probleme de aproximare sau deestimare, si ın consecinta se trateaza ın spiritul principiului CMMP. Pentru detaliisi aplicatii specifice, cititorul poate consulta [?, ?]. ♦

Teoria problemelor CMMP este intim legata de geometria spatiului euclidianRm, ın special de notiunea de ortogonalitate, care – dupa cum vom vedea mai de-parte – da un sens (geometric) clar si extrem de intuitiv problemelor de minimizareformulate mai sus. In mod corespunzator, practica numerica actuala recomandarezolvarea acestor probleme prin metode directe de triangularizare a matricei A,bazate pe utilizarea transformarilor ortogonale 2.

De aceea, ın primele sectiuni ale acestui capitol, vom introduce transformarileortogonale utilizate ın calcule si vom descrie procedurile corespunzatoare de trian-gularizare ortogonala. Pe aceasta baza, ın continuare vom prezenta procedurile derezolvare a problemelor CMMP de tip (3.4) si (3.5), insistand totodata asupra unoraspecte practice importante privind conditionarea problemelor considerate precumsi stabilitatea numerica a algoritmilor de calcul propusi.

3.1 Transformari ortogonale

In aceasta sectiune vom defini cele doua tipuri de transformari ortogonale utilizateın calculul numeric si vom descrie proprietatile lor importante.

3.1.1 Reflectori

Consideram spatiul Rm cu produsul scalar (x, y) = yTx si notam cu ‖x‖ = (xTx)1/2

norma euclidiana indusa. Amintim ca o matrice U ∈ Rm×m se numeste ortogonaladaca UTU = Im.

2Aici este esential faptul ca norma euclidiana considerata ın (3.4) si (3.5) este invarianta ın

raport cu grupul transformarilor ortogonale. In legatura cu aceste notiuni, cititorul este invitat saconsulte capitolul 1.

Page 140: metode de calcul numeric matriceal. algoritmi fundamentali

126 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Definitia 3.1 Fie u ∈ Rm un vector normat, i.e. ‖u‖ = 1. O matrice U ∈ R

m×m

de formaU = Im − 2uuT (3.7)

se numeste reflector elementar de ordinul m sau transformare Householder 3.

Se constata imediat ca orice reflector elementar U este o matrice simetrica siortogonala. Intr-adevar, produsul exterior uuT este evident o matrice simetrica, iarın virtutea conditiei de normare, ‖u‖2 = uTu = 1, avem

UTU = U2 =(Im − 2uuT

) (Im − 2uuT

)= Im − 4uuT + 4u(uTu)uT = Im.

Asadar, un reflector elementar este o transformare involutiva, i.e. coincide cu pro-pria sa inversa.

In cele ce urmeaza vom fixa un ıntreg k ∈ 1 : m− 1 si vom considera ca vectorulu 6= 0 din (3.7), nu neaparat normat, are primele k−1 componente nule, i.e. ui = 0,i = 1 : k − 1. Pentru precizare, ın acest caz vom scrie

Uk = Im −uuT

β, β

def=

1

2‖u‖2 (3.8)

undeu = [ 0 . . . 0 uk . . . um ]T (3.9)

si vom spune ca Uk este un reflector de ordin m si indice k. Vectorul u se numestevector Householder, iar β este factorul de normare corespunzator. (Uneori, ın loc deβ se utilizeaza scalarul τ = β−1. Vom reveni asupra acestei chestiuni ın sectiuneaurmatoare.) Observam ca datorita zerourilor din (3.9) matricea Uk are structura

Uk =

[Ik−1 0

0 U1

]

, (3.10)

ın care U1 este evident un reflector de ordin m− k + 1 si indice 1.Reflectorii Uk cu structura precizata mai sus au doua proprietati importante 4.

AA. Fiind dati un reflector Uk si un vector x ∈ Rm, aplicarea transformariiUk, i.e. calculul vectorului transformat y = Ukx, se face simplu, observand ca

Ukx = (Im −uuT

β)x = x− u(uTx)

β= x− νu, (3.11)

unde, evident

ν =uTx

β. (3.12)

Relatia (3.11) scrisa pe componente (unde amintim ca ui = 0, i = 1 : k − 1)arata ca premultiplicarea cu Uk nu modifica primele k−1 componente ale lui x. Deaceea, transformarea y = Ukx se efectueaza avantajos pe loc ın x, conform schemeix← y = Ukx. Considerand ca reflectorul Uk este definit de vectorul u ∈ Rm precumsi de scalarul β, procedura de calcul este urmatoarea.

3Transformarile de tip (3.7) au fost introduse ın calculul numeric de A. Householder ın 1958.De regula, mai departe vom omite calificativul ”elementar”.

4La fel ca ın capitolul 1, sigla AA indica expunerea unor aspecte algoritmice semnificative.

Page 141: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 127

0-u

H

(uTx)u-

−νu

xUkx

*

HHHH

HHHH

HHHHY

Fig. 3.1: Efectul aplicarii unui reflector U asupra unui vector x, ın R2

Algoritmul 3.1 (Se dau un reflector Uk si un vector x ∈ Rm. Seaplica transformarea x← Ukx).

1. ν = (∑m

i=k uixi) /β.2. xi ← xi − νui, pentru i = k : m

Comentarii. In esenta, la pasul 1 se calculeaza un produs scalar (de exemplu,utilizand functia DOT), iar la pasul 2 se face o actualizare de tip Saxpy a lui x(functiile DOT si Saxpy au fost definite ın capitolul 1). De fiecare data se opereazaasupra unor vectori de dimensiune m − k + 1. Prin urmare, numarul de operatiinecesar este aproximativ Nop = 4(m− k). ♦

Semnificatia geometrica a transformarii (3.11) rezulta din figura 3.1, unde pentruclaritate am considerat m = 2 si ‖u‖ = 1, deci ν = 2uTx (vezi (3.12)), iar (uTx)ueste proiectia ortogonala a lui x pe directia lui u. In general, transformarea Uk

reprezinta simetria (”reflexia”) ın raport cu hiperplanul H (”oglinda”) care treceprin origine si are vectorul normal u.

In practica, algoritmul 3.1 apare extrem de frecvent.• Aplicarea transformariiB = UkA, unde A ∈ Rm×n este o matrice cu n coloane,

iar Uk actioneaza la stanga, se face partitionand A pe coloane. Avem

A = [a1 a2 . . . an] ⇒ UkA = [Uka1 Uka2 . . . Ukan],

deci calculul se poate desfasura pe loc ın tabloul A, utilizand algoritmul 3.1 pentruactualizarea fiecarei coloane a matricei A.

% Se aplica transformarea A← UkA1. Pentru j = 1 : n

1. aj ← Ukaj

Conform celor spuse mai sus, premultiplicarea cu Uk nu modifica primele k − 1linii ale matricei A. Mai precis, partitionand A conform cu Uk din (3.10), avem

A =

[BC

]

⇒ UkA =

[B

U1C

]

.

Page 142: metode de calcul numeric matriceal. algoritmi fundamentali

128 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Pe de alta parte, ın forma compacta, similara cu (3.11), avem evident

UkA = (Im −uuT

β)A = A− uvT , unde v =

ATu

β.

Altfel spus, matricea transformata B = UkA este o modificare de rang 1 a lui A.• Aplicarea transformarii C = AUk, unde acum A ∈ R

l×m are m coloane,iar Uk actioneaza la dreapta, se face partitionand A pe linii si observand ca, ın

virtutea simetriei lui Uk, avem AUk = (UkAT )

T. Prin urmare, asupra coloanelor

lui AT , adica a liniilor lui A, are loc aceeasi transformare ca mai sus. In particular,postmultiplicarea cu Uk nu modifica primele k − 1 coloane ale matricei A.

AA. In calculul numeric generarea reflectorilor se face ın scopul introduceriide zerouri ıntr-un vector. Pe scurt, fiind dat un vector x ∈ R

m, putem determinaun reflector Uk de forma (3.8) astfel ıncat ultimele m− k componente ale vectoruluitransformat sa fie nule, i.e. (Ukx)i = 0, pentru i = k+ 1 : m. Formularea precisa aacestui fapt esential trebuie retinuta.

Propozitia 3.1 Fixam un ıntreg k ∈ 1 : m− 1 si fie x ∈ Rm un vector astfel ıncat

σ2 def=

m∑

i=k

x2i 6= 0. (3.13)

Vectorul Householder u ∈ Rm avand componentele

ui =

0, pentru i = 1 : k − 1xk + σ, pentru i = kxi, pentru i = k + 1 : m

(3.14)

precum si scalarul

βdef=

1

2‖u‖2 = σuk (3.15)

definesc un reflector Uk de ordin m si indice k astfel ıncat

(Ukx)i =

xi, pentru i = 1 : k − 1−σ, pentru i = k0, pentru i = k + 1 : m.

(3.16)

Demonstratie. Intr-adevar, datorita alegerii (3.14), avem

β =1

2

m∑

i=k

u2i =

1

2

(

(xk + σ)2 +

m∑

i=k+1

x2i

)

= σ2 + xkσ = σuk,

deci (3.15) are loc. Mai departe, din (3.12) rezulta

ν =

∑mi=1 uixi

β=xk(xk + σ) +

∑mi=k+1 x

2i

β=σ2 + xkσ

β= 1.

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

Page 143: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 129

Relatiile (3.13)–(3.15) furnizeaza un algoritm aproape complet pentru calcululreflectorului Uk cu proprietatea ceruta. Constanta σ este determinata, mai putinsemnul, de faptul ca Uk este o matrice ortogonala, deci ‖Ukx‖ = ‖x‖ (vezi (3.13) si(3.16)). Pentru a evita pierderea de cifre semnificative la calculul componenteiuk = xk + σ, semnul lui σ se alege acelasi cu cel al lui xk. (Mentionam caaceasta alegere este esentiala pentru stabilitatea numerica a algoritmului rezultat.)Consideratiile de mai sus pot fi rezumate astfel.

Algoritmul 3.2 (Se dau un ıntreg k ∈ 1 : m − 1 si un vectorx ∈ Rm cu proprietatea (3.13). Se determina un reflector Uk astfelıncat (Ukx)i = 0, pentru i = k + 1 : m.)

1. σ = sgn(xk) ·(∑m

i=k x2i

)1/2

2. uk = σ + xk; ui = xi, pentru i = k + 1 : m3. β = σuk

% Vectorul transformat4. xk = −σ; xi = 0, pentru i = k + 1 : m

Comentarii. Subliniem ınca o data ca reflectorul Uk nu se formeaza niciodataca matrice, ci este complet definit numai prin intermediul vectorului u (ale caruiprime k− 1 componente sunt nule) precum si al scalarului β. Ultimele componenteui, i = k + 1 : m, ale lui u se memoreaza natural pe pozitiile elementelor anulatedin x, dupa aplicarea transformarii (vezi pasii 2 si 4). Componenta uk si scalarulβ se memoreaza separat. Numarul de operatii necesar este Nop ≈ 2(m− k) (plus oextragere de radical), vezi pasul 1. ♦

Implementarea 5 algoritmului 3.2 tine seama de urmatoarele considerente speci-fice.

1. Pentru a evita eventualele depasiri ın virgula mobila, posibile daca elementelexi, i = k : m, au valori absolute foarte mari sau foarte mici, calculul normeieuclidiene de la pasul 1 se asociaza cu scalarea vectorului corespunzator, e.g. prinraportare la M = maxi=k:m |xi|. (Pentru indicatii mai precise, vezi sectiunea 3.1.2.)

2. Daca ın situatia de la punctul 1 rezulta M = 0 sau σ = 0, i.e. toatecomponentele xi, i = k : m, ale vectorului dat x sunt deja nule, atunci convenimsa consideram Uk = Im si sa semnalam aceasta situatie punand β = 0. (Matriceaunitate Im este ortogonala si poate fi asimilata cu un reflector ”impropriu”). Aceeasiconventie se adopta daca algoritmul 3.2 este apelat pentru k = m.

3. Deoarece vectorul Householder u este esential determinat numai ca directie,la pasul 2 se poate face scalarea acestuia, e.g. luand

2′. uk = 1 +xk

σ; ui =

xi

σ, i = k + 1 : m.

Se vede usor ca ın acest caz rezulta β = uk, deci organizarea procedurala a calculelorse simplifica, ın particular se memoreaza separat un singur numar 6. (Crestereanumarului de operatii este fara importanta.) Rezumand cele de mai sus, obtinem

5Convenim ca functia sgn : R → R utilizata ın algoritmii ce urmeaza este definita de

sgn(x) =

−1, daca x < 01, daca x ≥ 0

. Atragem atentia ca utilizarea unor functii sgn predefinite ın di-

verse limbaje de nivel ınalt (pentru care de regula sgn(0) = 0) poate conduce la rezultate eronate.6Alternativ, u poate fi scalat astfel ıncat uk = 1. Aceasta posibilitate va fi discutata mai

departe.

Page 144: metode de calcul numeric matriceal. algoritmi fundamentali

130 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

% Forma implementabila a algoritmului 3.2.1. β = 02. Daca k < m

1. σ =(∑m

i=k x2i

)1/2

2. Daca σ 6= 01. σ ← sgn(xk)σ2. xi ← ui = xi/σ, pentru i = k : m3. β ← uk = 1 + xk

% Componenta k a vectorului transformat4. xk = −σ

Pe scurt, la pasul 2.1 are loc calculul normei, careia mai departe i se atribuiesemnul corespunzator, iar la pasul 2.2.2 are loc scalarea vectorului Householder u.Componentele ui, i = k + 1 : m, care constituie partea esentiala a vectorului u, sememoreaza pe pozitiile corespunzatoare din x. In final, se calculeaza si se memo-reaza separat scalarul β = uk, iar componenta de indice k a vectorului transformateste returnata pe pozitia corespunzatoare xk, vezi (3.16).

Observatia 3.1 In unele aplicatii apar reflectori modificati Uk, de forma (3.8), ıncare, spre deosebire de (3.9), vectorul Householder u are ultimele k− 1 componentenule, i.e.

u = [u1 . . . um−k+1 0 . . . 0 ]T . (3.17)

In consecinta, matricea Uk are acum structura

Uk =

[

U1 00 Ik−1

]

, (3.18)

deci, ın procesul de aplicare a transformarii x ← Ukx, premultiplicarea cu Uk

nu modifica ultimele k − 1 componente ale lui x. De asemenea, este clar ca prinalegerea adecvata a vectorului Householder u, putem genera un reflector modificatUk astfel ıncat primele m− k componente ale vectorului transformat sa fie nule, i.e.(Ukx)i = 0, i = 1 : m − k. Scrierea algoritmilor de transformare si generare areflectorilor modificati, perfect similari cu algoritmii 3.1 si 3.2 stabiliti anterior, estepropusa ca exercitiu. ♦

Proceduri de calcul cu reflectori

In problemele de calcul numeric relativ simple, algoritmii 3.1 si 3.2 (ultimul, subforma sa implementabila) pot fi utilizati ca atare. In practica profesionala, cal-culele se organizeaza procedural, exploatand faptul ca algoritmii mentionati suntvectorizati ın mod natural.

Pentru ınceput, observam ca, ın acord cu (3.10), partea ”activa” a unui reflectorUk de indice k este ıntotdeauna un reflector de indice 1 care actioneaza asupra unuivector de dimensiune adecvata. De aceea, ın continuare vom considera k = 1.

AA. Fie x ∈ Rm un vector dat. Generarea unui reflector U1 astfel ıncat (U1x)i =0, i = 2 : m, adica

U1x = −σe1, (3.19)

se face utilizand forma implementabila a algoritmului 3.2 ın care punem k = 1.

Page 145: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 131

x1

x2

...xm

U1−→

−σu2

...um

x1

...xk−1

xk

xk+1

...xm

Uk−→

x1

...xk−1

−σuk+1

...um

Fig. 3.2: Efectul aplicarii procedurii RFG asupra vectorului x ∈ Rm; ın stanga,β = RFG(x); ın dreapta, β = RFG(x(k : m))

RFG % Se da x ∈ Rm. Se genereaza un reflector U1 cu proprie-tatea (3.19) si se aplica transformarea. Partea esentiala ui,i = 2 : m, a vectorului Householder u se memoreaza pepozitiile corespunzatoare din x. La aplicarea ulterioara atransformarii se considera u1 = β.

1. β = 02. Daca m > 1 atunci

1. σ = ‖x‖ % NRM2

2. Daca σ 6= 0 atunci

1. Daca x1 6= 0 atunci σ ← sgn(x1)σ2. xi ← ui = xi/σ, pentru i = 1 : m % SCAL

3. β ← u1 = 1 + x1

4. x1 ← −σ

Comentarii. La pasul 2.1 nu am explicitat modul de calcul al normei euclidienepentru a aminti necesitatea scalarii lui x. La pasul 2.2.2 are loc scalarea lui u, spe-cifica procedurii RFG. Avand ın vedere considerente de eficienta, la pasii mentionatise recomanda utilizarea procedurilor NRM2 si SCAL din BLAS. Observam ca dacavectorul dat x este nul sau are o singura componenta, atunci algoritmul returneazaβ = 0, ceea ce, conform conventiei adoptate anterior, ınseamna ca U1 = Im.

Modul de apel al procedurii de generare (evidentiind argumentele de intrare siiesire) este [u, β, x] = RFG(x). Pentru a sublinia ca, dupa cum am spus, parteaesentiala ui, i = 2 : m, a vectorului Householder este returnata ın x, mai departevom nota

β = RFG(x),

ın care x apare ca tablou de intrare/iesire. In consecinta, executia instructiunilorβ = RFG(x), respectiv β = RFG(x(k : m)), are efectul indicat ın figura 3.2. ♦

AA. Fie acum U1 un reflector dat, generat de RFG, iar x ∈ Rm un vectorarbitrar. Aplicarea transformarii

x← U1x (3.20)

Page 146: metode de calcul numeric matriceal. algoritmi fundamentali

132 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Transformare Functie Mod de apel Apel ”rapid” Obs.Reflector

U1def= (u, β)x ∈ Rm

U1x = −σe1x← U1x

[u, β, x] = RFG(x)

x = RF(u, β, x)

β = RFG(x)

RF(u, β, x)u1 = β

Reflectormodificat

U1def= (u, β)x ∈ R

m

U1x = −σem

x← U1x

[u, β, x] = mRFG(x)

x = mRF(u, β, x)

β = mRFG(x)

mRF(u, β, x)um = β

Tabelul 3.1: Proceduri de calcul cu reflectori

se face avand ın vedere algoritmul 3.1 precum si conventia specifica de memorarea vectorului Householder u. Notand α = −ν si tinand seama ca u1 = β, vectorultransformat poate fi calculat efectuand numai adunari si ınmultiri.

RF % Se dau un reflector U1 generat de RFG si un vectorx ∈ Rm. Se aplica transformarea x← U1x.

1. Daca β 6= 0 atunci

1. t = u1

2. u1 = β3. α = −(

∑mi=1 uixi)/β % DOT

4. xi ← xi + αui, pentru i = 1 : m % SAXPY

5. u1 = t

Comentarii. Deoarece β = 0 semnaleaza ca U1 = Im, transformarea se aplicaefectiv numai daca β 6= 0. Prima componenta u1 a lui u nu este alterata, deoareceea contine informatii despre vectorul transformat ın procesul de generare a reflec-torului.

Modul de apel al procedurii este x = RF(u, β, x). Deoarece transformarea seefectueaza ıntotdeauna pe loc ın x, vom scrie simplu RF(u, β, x). ♦

Procedurile de calcul cu reflectori modificati se scriu similar. De exemplu, gene-rarea unui reflector (modificat) U1 astfel ıncat (U1x)i = 0, i = 1 : m− 1, adica

U1x = −σem,

se face ınlocuind pur si simplu x1 cu xm ın RFG. (Desigur, acum partea esentialaa vectorului Householder u este ui, i = 1 : m − 1, iar um = β.) Scrierea detaliataa procedurilor de generare si aplicare a reflectorilor modificati, notate mai departemRFG si respectiv mRF, este propusa cititorului ca exercitiu.

Procedurile de calcul cu reflectori sunt prezentate sintetic ın tabelul 3.1.Subliniem ca, ın general, procedurile de generare si aplicare a reflectorilor apar

ın perechi, modificarea conventiei de memorare a vectorului Householder din RFG

antrenand dupa sine o modificare corespunzatoare ın RF.Ilustram utilizarea procedurilor prin doua exemple simple, dar extrem de im-

portante pentru ıntreaga expunere ulterioara.

Page 147: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 133

Exemplul 3.3 Se da o matrice A ∈ Rm×n. Vom determina un reflector

U1 ∈ Rm×m astfel ıncat elementele subdiagonale din prima coloana a matriceiB = U1A sa fie nule; apoi, vom calcula matricea transformata A← B = U1A.

Deoarece transformarea se aplica la stanga, partitionam A pe coloane. Notandaj = A(:, j), j = 1 : n, trebuie sa avem U1a1 = −σe1, deci U1 se determina aplicandprocedura RFG primei coloane a1 a matricei A. Totodata are loc si transformareaacestei coloane, i.e. scalarul −σ este returnat pe prima pozitie a11. In continuaretransformarea celorlalte coloane aj , j = 2 : n, se face aplicand repetat proceduraRF. Prin urmare, rezultatul dorit se obtine pe loc ın A utilizand algoritmul

QR1 1. β = RFG(A(:, 1))

2. Pentru j = 2 : n1. RF(A(:, 1), β, A(:, j)).

Desigur, reflectorul U1 obtinut la pasul 1 poate fi aplicat mai departe unei altematrice, atata timp cat partea esentiala A(2 : m, 1) a vectorului Householder uprecum si scalarul β sunt disponibili. De exemplu, daca C ∈ Rl×m, atunci trans-formarea la dreapta C ← CU1 se efectueaza partitionand C pe linii, i.e.

1. Pentru i = 1 : l1. RF(A(:, 1), β, C(i, :)).

Exemplul 3.4 Se da o matrice A ∈ Rm×n. Vom determina un reflectorZ1 ∈ R

n×n astfel ıncat elementele nediagonale din prima linie a matricei B = AZ1

sa fie nule; apoi vom calcula matricea transformata A← B = AZ1.Deoarece transformarea se aplica la dreapta, partitionam A pe linii. Rationand

la fel ca mai sus, algoritmul de calcul este

LQ1 1. β = RFG(A(1, :))

1. Pentru i = 2 : m1. RF(A(1, :), β, A(i, :)).

Pentru a evidentia avantajele organizarii procedurale, propunem cititorului sascrie detaliat algoritmii de calcul stabiliti mai sus, ınlocuind apelurile la procedurileRFG si RF cu secventele de instructiuni ”scalare” corespunzatoare. Avand ınvedere expunerea ulterioara, mentionam ca acesti algoritmi efectueaza prima etapade triangularizare a matricei A prin transformari ortogonale la stanga si respectivla dreapta (vezi sectiunile 3.3 si 3.6).

3.1.2 Rotatii

Dupa cum se stie, ın cazul m = 2 o rotatie (plana) de unghi θ se reprezinta prinmatricea

P =

[cos θ − sin θsin θ cos θ

]

. (3.21)

In cazul general m ≥ 2, vom adopta urmatoarea definitie.

Page 148: metode de calcul numeric matriceal. algoritmi fundamentali

134 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Definitia 3.2 Fixam doi ıntregi i 6= k ∈ 1 : m. O matrice Pki ∈ Rm×m de forma

Pki =

Ik−1

c sIi−k−1

−s cIm−i

, unde c2 + s2 = 1 (3.22)

se numeste rotatie de ordinul m ın planul (k, i) sau transformare Givens 7.

Se constata imediat ca orice rotatie Pki este o matrice ortogonala.Rotatiile Pki cu structura precizata mai sus au doua proprietati importante.

AA. Fiind date o rotatie Pki si un vector x ∈ Rm, aplicarea transformarii Pki,i.e. calculul vectorului transformat y = Pkix, se face extrem de simplu. Din (3.22)se vede ca Pki modifica numai elementele lui x cu aceiasi indici, deci calculele sedesfasoara avantajos pe loc ın x, utilizand urmatoarea procedura.

Algoritmul 3.3 (Se dau o rotatie Pki si un vector x ∈ Rm. Seaplica transformarea x← Pkix).

1. t = xk

2. xk = ct+ sxi

3. xi = cxi − stNumarul de operatii necesar este Nop = 6.Aplicarea transformarii B = PkiA, unde A ∈ Rm×n este o matrice cu n coloane,

se face utilizand algoritmul 3.3 pentru actualizarea fiecarei coloane.

% Se aplica transformarea A← PkiA1. Pentru j = 1 : n

1. aj ← Pkiaj

Aplicarea transformarii C = APTki se face similar, partitionand A pe linii.

In legatura cu algoritmul 3.3, este important sa retinem ca, spre deosebire dereflectori, rotatiile nu sunt matrice simetrice. Mai precis, transformarea x ← PT

kixdifera de transformarea x← Pkix, considerata mai sus, prin semnul scalarului s.

AA. La fel ca ın cazul reflectorilor, generarea rotatiilor vizeaza introducerea dezerouri ıntr-un vector. Mai precis, fiind dat un vector x ∈ Rm, putem determinao rotatie Pki astfel ıncat componenta i a vectorului transformat sa fie nula, i.e.(Pkix)i = 0.

Propozitia 3.2 Fixam doi ıntregi i 6= k ∈ 1 : m si fie x ∈ Rm un vector astfelıncat

r2def= x2

k + x2i 6= 0. (3.23)

7Desi cunoscute din secolul trecut si utilizate de Jacobi, Rotatiile au fost introduse ın calcululnumeric de W. Givens ın 1954. Structura (3.22) corespunde cazului i > k, iar ın (3.21) avemP = P12 cu c = cos θ, s = − sin θ. Subliniem ca, ın acceptiunea noastra, o rotatie este definita dedoua numere reale c, s, satisfacand conditia c2 + s2 = 1. Evident, ın acest fel se evita utilizareaın calcule a functiilor trigonometrice.

Page 149: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 135

Numerele realec =

xk

r, s =

xi

r(3.24)

definesc o rotatie Pki de ordin m ın planul (k, i) astfel ıncat

(Pkix)l =

xl, pentru l 6= k, ir, pentru l = k0, pentru l = i.

(3.25)

Demonstratia este imediata observand ca avem

[c s−s c

] [xk

xi

]

=

[r0

]

, (3.26)

precum si c2 + s2 = 1. ♦

Precizand (deocamdata arbitrar) semnul lui r, relatiile (3.23) si (3.24) conducla urmatorul algoritm de calcul al rotatiei Pki cu proprietatea ceruta.

Algoritmul 3.4 (Se dau i 6= k ∈ 1 : m si un vector x ∈ Rm. Secalculeaza o rotatie Pki astfel ıncat (Pkix)i = 0).

1. r =√

x2k + x2

i

2. c = xk/r, s = xi/r% vectorul transformat3. xk = r; xi = 0

Numarul de operatii necesar este Nop = 6.

Semnificatia geometrica a rotatiei Pki calculate de algoritmul 3.4 apare ın figura3.3, unde m = 2, k = 1, i = 2.

Implementarea algoritmului 3.4 tine seama de urmatoarele considerente.1. La pasul 1 se recomanda scalarea componentelor xk si xi, de exemplu prin

ımpartire la N = |xk|+ |xi|.2. Daca N = 0 sau r = 0, i.e. ambele componente xk si xi sunt deja nule,

atunci se ia Pki = Im, 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 xk si xi sa aiba acelasi semn.Aceasta conventie, adoptata ın BLAS, nu este importanta ın sine, dar are avan-

tajul de a permite reconstructia numeric stabila a parametrilor c, s, dintr-un singurnumar z. (Desigur, ın acest fel devine posibila memorarea rotatiei Pki pe pozitiaelementului xi anulat prin aplicarea transformarii la pasul 3). Precizarile necesarevor fi facute mai departe.

Observatia 3.2 Retinem ca, desi rotatiile sunt transformari considerabil maisimple decat reflectorii, ele sunt ın acelasi timp si mai putin eficiente decat acestia,ıntrucat o rotatie permite anularea unei singure componente a vectorului transfor-mat. (Tocmai de aceea rotatiile se utilizeaza mai ales ın probleme cu date struc-turate, asupra carora ele au un efect de ”rezolutie fina” a zerourilor.)

In caz de nevoie, un efect similar cu al reflectorului Uk determinat de algoritmul3.2 poate fi obtinut utilizand o secventa de rotatii, e.g.

Page 150: metode de calcul numeric matriceal. algoritmi fundamentali

136 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

-1

62

>x

-P12x

r

x2

x1

Fig. 3.3: Efectul aplicarii unei rotatii P12 asupra unui vector x ∈ R2

Pk = Pkm . . . Pk,k+2Pk,k+1, (3.27)

ın care rotatiile Pki se determina succesiv (aplicand algoritmul 3.4) pentru a anulacomponentele corespunzatoare xi, i = k + 1 : m. (Scrierea algoritmului de calculeste propusa ca exercitiu.) Alternativ, ın acelasi scop poate fi utilizata secventa

Pk = Pk,k+1Pk+1,k+2 . . . Pm−1,m, (3.28)

ın care rotatiile Pki anuleaza aceleasi componente ın ordine inversa, adica xi,i = m : −1 : k + 1.

Mentionam ca ın practica se utilizeaza frecvent secvente de rotatii disjuncte careau proprietati numerice mai bune, vezi problemele 3.14 si 3.22 8. ♦

Proceduri de calcul cu rotatii

In continuare dam cateva indicatii privind organizarea procedurala a calculelor curotatii 9. Deoarece partea activa a unei rotatii Pki de forma (3.22) este evident orotatie plana ce actioneaza asupra unui vector x ∈ R2, ın continuare vom consideram = 2 si vom nota P12 = P .

AA. Fie x ∈ R2 un vector dat. Generarea unei rotatii P astfel ıncat (Px)2 = 0,adica [

c s−s c

] [x1

x2

]

=

[r0

]

, (3.29)

se face tinand seama de indicatiile de implementare ce ınsotesc algoritmul 3.4.

ROTG % Se da x ∈ R2. Se genereaza o rotatie P cu proprietatea(3.29) si se aplica transformarea. Totodata, pe pozitia ele-mentului anulat x2 se returneaza scalarul z, pe baza caruiaeste posibila reconstructia numeric stabila a parametrilorc, s.

1. r = ‖x‖2. Daca r = 0 atunci

8Doua rotatii Pki, Plj se numesc disjuncte daca toti indicii sunt diferiti.9Subliniem ca, ıntrucat opereaza asupra unor vectori cu doua componente, procedurile de calcul

cu rotatii sunt de tip scalar.

Page 151: metode de calcul numeric matriceal. algoritmi fundamentali

3.1. TRANSFORMARI ORTOGONALE 137

1. c = 1, s = 0altfel

2. Daca |x2| ≥ |x1| atunci1. r ← sgn(x2)r

altfel

2. r ← sgn(x1)r3. c = x1/r, s = x2/r4. x1 = r% calculul lui z5. Daca c = 0 atunci

1. z = 1altfel daca |x2| ≥ |x1| atunci2. z = 1/c

altfel

3. z = s6. x2 = z

Modul de apel al procedurii de generare este [c, s, x1, x2] = ROTG(x1, x2).

AA. Fie acum P o rotatie data, generata de ROTG, iar x ∈ R2 un vector

arbitrar. Aplicarea transformarii

x← Px (3.30)

se face direct numai daca parametrii c, s sunt disponibili ca atare; ın caz contrar, ınprealabil are loc reconstructia lor pe baza scalarului z, utilizand secventa urmatoare.

Page 152: metode de calcul numeric matriceal. algoritmi fundamentali

138 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Transformare Functie Mod de apel Apel ”rapid” Obs.

Rotatie Px = re1 [c, s, a, b] = ROTG(a, b) [c, s] = ROTG(a, b)a← rb← z

Pdef= (c, s)

x =

[ab

] x← Px

x← PTx

[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 rotatii. (N.B. Semnificatia lui z este precizataın text)

% Reconstructia perechii (c, s).1. Daca z = 1 atunci

1. c = 0, s = 1altfel daca |z| > 1 atunci

2. c = 1/z, s =√

1− c2altfel

3. s = z, c =√

1− s2

Procedura de transformare propriu-zisa coincide ın esenta cu algoritmul 3.3.

ROT % Se aplica transformarea x← Px.1. t = x1

2. x1 ← ct+ sx2

3. x2 ← cx2 − st

Modul de apel al procedurii este [x1, x2] = ROT(c, s, x1, x2).Procedurile de calcul cu rotatii sunt prezentate sintetic ın tabelul 3.2. (Si ın

cazul rotatiilor, ca si al reflectorilor, mai departe vom utiliza notatiile proceduraleprescurtate indicate ın penultima coloana a tabelului.)

3.2 Transformari unitare

In aceasta sectiune vom prezenta principalele transformari unitare utilizate ın cal-culele cu matrice complexe. Avand ın vedere ca proprietatile structurale ale acestortransformari sunt aceleasi cu proprietatile similare ale transformarilor ortogonaledescrise ın sectiunea anterioara, expunerea va fi orientata ın principal asupra as-pectelor procedurale specifice.

3.2.1 Reflectori complecsi

Consideram spatiul complex Cm cu produsul scalar (x, y) = yHx si norma euclidiana

‖x‖ = (xHx)1/2 = (

m∑

i=1

|xi|2)1/2.

Page 153: metode de calcul numeric matriceal. algoritmi fundamentali

3.2. TRANSFORMARI UNITARE 139

&%'$

-

6

0

Γ9

τ = 1β = 2

‖u‖2

Re

Im

r r rFig. 3.4: Cercul Γ ın planul complex

Amintim ca o matrice Q ∈ Cm×m se numeste unitara daca QHQ = Im.Fie u ∈ C

m un vector Householder, u 6= 0. Consideram matrice complexe deforma

U1not= QH

1 = Im −uuH

β, (3.31)

respectivQ1 = Im − τuuH , (3.32)

unde β si τ sunt doi parametri legati prin relatia τ = β−1. Avem

QH1 Q1 = (Im − τuuH)(Im − τuuH) = Im − (τ + τ )uuH + |τ |2u(uHu)uH ,

deci matricea Q1 este unitara daca si numai daca

2Reτ = |τ |2‖u‖2, (3.33)

i.e. scalarul τ apartine cercului Γ din planul complex care trece prin origine si areraza egala cu 1/‖u‖2 (vezi figura 3.4). Pe de alta parte, matricea Q1 este hermiticadaca si numai daca τ ∈ R. Asociind cele doua proprietati, pentru τ = 0 obtinemQ1 = Im, iar pentru

τ =1

β=

2

‖u‖2 , (3.34)

din (3.31) sau (3.32) obtinem reflectorii hermitici care constituie generalizarea di-recta a reflectorilor reali din (3.8).

Pentru toate celelalte valori τ ∈ Γ (τ 6= 0 si τ 6= 2/‖u‖2), matricele de forma(3.32) sunt unitare si de aceea se numesc (abuziv dar comod) reflectori complecsi.Subliniem ca, ın aceasta acceptiune mai larga, reflectorii complecsi nu sunt her-mitici, deci necesita o manipulare relativ mai atenta decat omologii lor reali (acum

U1not= QH

1 6= Q1 !).

AA. Fie x ∈ Cm un vector dat. Vom determina un reflector Q1 astfel ıncat(QH

1 x)i = 0, i = 2 : m, i.e.QH

1 x = −σe1, (3.35)

unde σ ∈ C este un scalar ınca nedeterminat. Deoarece matricea Q1 este unitaratrebuie sa avem ‖QH

1 x‖ = ‖x‖, deci modulul lui σ este fixat, mai precis |σ| = ‖x‖.Din considerente de stabilitate numerica, vom alege

σ =x1

|x1|‖x‖ (3.36)

Page 154: metode de calcul numeric matriceal. algoritmi fundamentali

140 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

sau

σ = sgn(Rex1)‖x‖. (3.37)

(Retinem ca ın primul caz σ ∈ C, iar ın al doilea σ ∈ R.)In continuare scriem ca de obicei

QH1 x = (Im −

uuH

β)x = x− νu, (3.38)

unde

ν =uHx

β. (3.39)

Prin urmare, relatia (3.35) are loc daca si numai daca u = (x + σe1)/ν, sau pecomponente

u1 =x1 + σ

ν; ui =

xi

ν, i = 2 : m. (3.40)

De asemenea, trebuie sa avem

β =uHx

ν=

(xH + σeT1 )x

|ν|2 =‖x‖2 + σx1

|ν|2 ,

unde, conform celor spuse mai sus, ‖x‖2 = |σ|2, deci

β =σ

ν

x1 + σ

ν. (3.41)

Pentru a determina complet reflectorul U1 cu proprietatea (3.35) ramane saprecizam valoarea parametrului de scalare ν 6= 0 din (3.40) si (3.41).

a) Daca luam ν = 1 si alegem σ din (3.36) (sau din (3.37)), atunci obtinemanalogul complex al algoritmului 3.1.

b) Pe de alta parte, daca dorim simplificarea relatiei (3.41), atunci sunt posibiledoua alegeri, i.e. ν = σ si ν = x1 + σ, care conduc la

u1 = 1 +x1

σ; ui =

xi

σ, i = 2 : m

β = u1

(3.42)

si respectiv

u1 = 1; ui =xi

x1 + σ, i = 2 : m

τ = 1 +x1

σ, (β =

1

τ).

(3.43)

In practica numerica actuala se ıntalnesc doua versiuni de implementare a rela-tiilor de calcul stabilite mai sus.• In LINPACK [XIII] se asociaza relatiile (3.36) si (3.42). In consecinta, para-

metrul β = u1 rezulta real, deci reflectorul obtinut este hermitic, QH1 = Q1. In

schimb, prima componenta a vectorului transformat

x1 ← −σ

Page 155: metode de calcul numeric matriceal. algoritmi fundamentali

3.2. TRANSFORMARI UNITARE 141

este complexa. Procedura de generare a reflectorului hermitic Q1 difera de proce-dura reala RFG numai prin modul de calcul al lui σ, vezi (3.36).•• In LAPACK [XV] se asociaza relatiile (3.37) si (3.43). Instrumentul fun-

damental de lucru este acum reflectorul complex Q1, ın care parametrul τ rezultacomplex; ın schimb faptul ca u1 = 1 si σ ∈ R poate fi exploatat avantajos ın multesituatii concrete. Procedura de generare a reflectorului Q1 este urmatoarea.

CRFG % Se da x ∈ Cm. Se genereaza un reflector complexQ1 cu pro-prietatea (3.35) si se aplica transformarea. Componenteleui, i = 2 : m, ale vectorului Householder u se memoreazape pozitiile corespunzatoare din x. La aplicarea ulterioaraa transformarii se considera u1 = 1.

1. τ = 02. Daca m > 1 atunci

1. σ = ‖x‖2. Daca σ 6= 0 atunci

1. Daca Re(x1) 6= 0 atunci σ ← sgn(Rex1)σ2. xi ← ui = xi/(x1 + σ), pentru i = 1 : m3. τ ← (x1 + σ)/σ4. x1 ← −σ

Comentarii. Calculul normei euclidiene la pasul 2.1 se poate face utilizand functiacomplexa CNRM2 din BLAS 1. ♦

AA. Fie acum x ∈ Cm un vector arbitrar, iar Q1 un reflector dat. Aplicareatransformarilor

x← QH1 x, x← Q1x (3.44)

se face tinand seama de relatiile (3.38), (3.39) precum si de tipul reflectorului con-siderat.• Daca Q1 este un reflector hermitic, atunci cele doua transformari (3.44) co-

incid, iar procedura corespunzatoare difera de procedura reala RF numai prin uti-lizarea produsului scalar complex la pasul 1.1, vezi (3.39).•• Daca Q1 este un reflector complex, generat de procedura CRFG, atunci se

tine seama ca prima componenta u1 = 1 a vectorului Householder nu este memorataca atare. Scrierea procedurii de transformare corespunzatoare primei relatii (3.44),de exemplu notata CRF, este propusa ca exercitiu.

Procedurile de calcul cu reflectori complecsi sunt prezentate ın tabelul 3.3 10.La fel ca ın cazul real, tipic procedura CRFG se utilizeaza pentru a introduce

zerouri ıntr-o anumita coloana a unei matrice A, iar procedura CRF se utilizeazapentru a transforma ın mod corespunzator celelalte coloane.

Presupunand ca tabloul A e dimensionat adecvat, ın general exista patru tipuride transformari posibile, doua la stanga (QA si QHA) si doua la dreapta (AQ siAQH). In primul caz A se partitioneaza pe coloane si fiecarei coloane i se aplicatransformarea corespunzatoare. In al doilea caz A se partitioneaza pe linii. 11

10Procedurile de calcul cu reflectori complecsi modificati, e.g. CmRFG etc. se scriu similar cucazul real. Detaliile sunt lasate ın sarcina cititorului interesat.

11Pentru a acoperi toate aceste situatii cu o singura procedura CLARF, ın LAPACK (ca si ın

Page 156: metode de calcul numeric matriceal. algoritmi fundamentali

142 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Transformare Functie Mod de apel Apel ”rapid” Obs.Reflectorcomplex

QH1 x = −σe1 [u, τ, x] = CRFG(x) τ = CRFG(x)

τ ∈ C

σ ∈ R

Q1def= (τ, u)

x ∈ Cm

x← QH1 x

x← Q1x

x = CRF(u, τ, x)

x = CRF(u, τ , x)

CRF(u, τ, x)

CRF(u, τ , x)

Tabelul 3.3: Proceduri de calcul cu reflectori complecsi. Procedurile de calcul cureflectori hermitici sunt similare cu RFG si RF

3.2.2 Rotatii complexe

Consideram spatiul complex C2 cu norma euclidiana ‖x‖ = (|x1|2 + |x2|2)1/2.O rotatie complexa este o matrice de forma

P =

[c s−s c

]

, (3.45)

ın care parametrii c, s satisfac relatia

|c|2 + |s|2 = 1. (3.46)

Se verifica usor ca matricea P este unitara, i.e. PHP = I2.

AA. Fie x ∈ C2 un vector dat. Vom determina o rotatie complexa P astfelıncat [

c s−s c

] [x1

x2

]

=

[r0

]

, (3.47)

unde r este un scalar astfel ıncat |r| = ‖x‖. O analiza simpla arata ca aici, ca si ıncazul reflectorilor complecsi, sunt posibile doua optiuni.• Putem alege r complex, e.g.

r =x1

|x1|‖x‖, (3.48)

si ın acest caz obtinem

c =|x1|‖x‖ , s =

x1

|x1|x2

‖x‖ , (3.49)

deci parametrul c rezulta real pozitiv. Procedura de calcul este urmatoarea.

CROTG % Se da x ∈ R2. Se genereaza o rotatie complexa P cu pro-prietatea (3.47) si se efectueaza transformarea.

1. Daca |x1| = 0 atunci

1. c = 0, s = 1

BLAS3) se utilizeaza optiunile TRANS si SIDE, vezi sectiunea 1.11. Subliniem ca urmarirea acestordetalii, aparent pur tehnice, este esentiala pentru asigurarea corectitudinii si optimizarea calcula-torie a algoritmilor de calcul obtinuti.

Page 157: metode de calcul numeric matriceal. algoritmi fundamentali

3.3. TRIANGULARIZAREA ORTOGONALA 143

Transformare Functie Mod de apel Apel ”rapid” Obs.Rotatie

complexaPx = re1 [c, s, a, b] = CROTG(a, b) [c, s] = CROTG(a, b)

c ∈ R

r ∈ C

Pdef= (c, s)

x =

[ab

] x← Px

x← PHx

[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 rotatii complexe

2. x1 ← r = x2, x2 = 0altfel

3. α = x1 / |x1|4. ρ = ‖x‖5. c = |x1| / ρ, s = αx2 / ρ6. x1 ← r = αρ, x2 = 0

•• Alternativ, putem alege r real, de exemplu

r = sgn(Rex1)‖x‖ (3.50)

si ın acest caz ambii parametri

c =x1

r, s =

x2

r(3.51)

rezulta complecsi. (Mentionam ca ın practica se ıntalnesc ambele optiuni (3.48) si(3.50), implementate sub diverse forme relativ sofisticate.)

AA. Fie acum P o rotatie complexa data, generata de CROTG, iar x ∈ C2 unvector arbitrar. Procedura de transformare

x← Px, (3.52)

de exemplu notata CROT, se scrie cu usurinta ın maniera algoritmului 3.3, dar,desigur, tinand seama de forma actuala (3.45) a lui P .

Procedurile de calcul cu rotatii complexe sunt prezentate sintetic ın tabelul 3.4.

3.3 Triangularizarea ortogonala

In aceasta sectiune vom descrie principalele proceduri de triangularizare a uneimatrice A ∈ Cm×n prin transformari unitare de echivalenta la stanga. In cazul realA ∈ R

m×n, ın acelasi scop se utilizeaza transformari ortogonale. Pentru conciziaexpunerii vom considera ambele cazuri ın paralel.

Teorema 3.1 Oricare ar fi A ∈ Cm×n, exista o matrice unitara U

not= QH ∈ C

m×m

astfel ıncat matriceaUA = R, respectiv QHA = R (3.53)

Page 158: metode de calcul numeric matriceal. algoritmi fundamentali

144 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

este superior triunghiulara.

In cazul real A ∈ Rm×n, matricea de transformare U = QT poate fi aleasa reala

si ortogonala, deci R rezulta reala.

Pe scurt, orice matrice este unitar echivalenta (la stanga) cu o matrice superiortriunghiulara. A doua relatie arata ca A poate fi scrisa sub forma unui produsA = QR, undeQ este unitara, iar R este superior triunghiulara. In calculul numeric,aceasta relatie se numeste factorizare QR, de aceea procedurile de calcul stabilitepe baza relatiei fundamentale (3.53) vor fi notate cu sigla QR. (Asupra factorizariiQR vom reveni pe larg ın sectiunea urmatoare.)

Demonstratia va fi constructiva, conducand la o procedura de triangularizareortogonala a matricei A utilizand reflectori sau rotatii. Pentru precizare, ın cele ceurmeaza alegem prima posibilitate.

In cazul real, ne referim la faptele stabilite ın sectiunea 3.1.1 si pentru claritateconsideram succesiv doua situatii cu semnificatii structurale distincte.

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

U = QT = Un . . . U2U1,

unde reflectorii Uk ce se determina prin metodele cunoscute pentru a introducezerourile necesare ın coloanele corespunzatoare ak, k = 1 : n, ale matricei A.In consecinta, procedura de triangularizare are n etape. Notam A1 = A, undeA = [a1 a2 . . . an].

Etapa 1. Daca elementele ai1, i = 2 : m, nu sunt toate nule, atunci conformpropozitiei 3.1, exista un reflector U1 ∈ Rm×m de ordinul m si indice 1, astfel ıncat

(U1a1)i = 0, i = 2 : m.

In virtutea acestui fapt, matricea transformata

A2 = U1A1 = [U1a1 U1a2 . . . U1an] =

r11 r12 . . . r1n

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 superiortriunghiulara ın prima coloana. Daca ai1 = 0 pentru i = 2 : m, atunci luampur si simplu U1 = Im si trecem la etapa urmatoare. (Matricea unitate Im esteortogonala !)

Etapa k, k = 2 : n. Presupunem ca dupa desfasurarea primelor k − 1 etape aleprocedurii am obtinut matricea

Ak = Uk−1 . . . U2U1A

Page 159: metode de calcul numeric matriceal. algoritmi fundamentali

3.3. TRIANGULARIZAREA ORTOGONALA 145

superior triunghiulara ın primele k − 1 coloane, i.e.

Ak = [a(k)1 . . . a

(k)k . . . a(k)

n ] =

r11 r12 . . . r1,k−1 r1k . . . r1n

r22 . . . r2,k−1 r2k . . . r2n

. . ....

......

rk−1,k−1 rk−1,k . . . rk−1,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

reflector Uk ∈ Rm×m de ordinul m si indice k, astfel ıncat

(Uka(k)k )i = 0, i = k + 1 : m.

(Altfel, luam Uk = Im si trecem la etapa urmatoare.) Tinand cont de faptul caorice reflector de indice k nu modifica un vector ale carui ultime m−k+1 elementesunt nule (vezi (3.11), unde ν = 0), rezulta ca matricea

Ak+1 = UkAk = [Uka(k)1 . . . Uka

(k)k . . . Uka

(k)n ]

are primele k − 1 coloane nemodificate, iar ın coloana k elementele subdiagonalesunt nule; prin urmare Ak+1 este superior triunghiulara ın primele k coloane. Deasemenea, deoarece reflectorul este de indice k, primele k− 1 linii ale lui Ak ramannemodificate.

Asadar, procedura de anulare a elementelor subdiagonale poate fi initializata,ca ın etapa 1, si, o data pornita, poate fi continuata, ca ın etapa k. Astfel, candm > n, dupa n etape, obtinem matricea

Rdef= An+1 = UnUn−1 . . . U2U1A =

[R′

0

]

, (3.54)

unde R′ ∈ Rn×n este superior triunghiulara de ordin n.

In cazul m ≤ n, procedand similar, dupa m−1 etape obtinem matricea superiortrapezoidala

Rdef= Am = Um−1 . . . U2U1A = [R′ S ], (3.55)

unde R′ ∈ Rm×m este superior triunghiulara de ordin m, iar S ∈ Rm×(n−m) esteun bloc dreptunghiular fara particularitati de structura.

Demonstratia teoremei ın cazul real este ıncheiata.In cazul complex rationamentul este identic, iar detaliile pot fi completate cu

usurinta de cititorul interesat prin referire la sectiunea 3.2.1. ♦

Observatia 3.3 Atat enuntul cat si demonstratia teoremei 3.1 au un caracterprocedural, ın sensul ca matricea R rezultata ın urma procesului de triangularizare

Page 160: metode de calcul numeric matriceal. algoritmi fundamentali

146 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

nu trebuie sa fie neaparat superior triunghiulara. De exemplu, ın cazul m = n, ma-tricea A poate fi adusa la forma inferior triunghiulara utilizand reflectorii modificatidin observatia 3.1. Aceasta posibilitate va fi discutata ın finalul sectiunii urmatoare.De asemenea, transformarile unitare de echivalenta pot fi aplicate la dreapta matri-cei A, dupa cum vom arata ın sectiunea 3.6. In toate cazurile, tehnica de lucru esteaceeasi, iar alegerea procedurii de triangularizare adecvate este dictata de structuraproblemei considerate. ♦

A. Proceduri de triangularizare cu reflectori

Procedura de triangularizare ortogonala degajata pe parcursul demonstratiei demai sus este similara cu procedura de eliminare gaussiana, cunoscuta din capitolulanterior, si, la fel ca aceasta, se poate desfasura pe loc ın tabloul A, astfel ıncat ınfinal matricea R sa fie memorata ın triunghiul superior al lui A.

In cazul real, relatiile (3.54) si (3.55) conduc la urmatoarea schema de calcul.

QR RF % Triangularizarea matricei A utilizand reflectori

1. Pentru k = 1 : min (m− 1, n)1. Se determina Uk a.ı. (UkA)ik = 0, i = k + 1 : m2. A← UkA.

Daca matricea A este monica, i.e. are coloane independente, atunci la fiecareetapa elementele aik, i = k : m, ale matricei curente A nu sunt toate nule. Inconsecinta, pentru a determina reflectorul Uk (adica vectorul Householder uk siscalarul βk), la pasul 1.1 se utilizeaza algoritmul 3.2, aplicat vectorului x = A(:, k).(Componentele nenule ale vectorilor Householder uk vor fi notate uik, i = k : m.)Pentru calculul transformarii de la pasul 1.2 se utilizeaza algoritmul 3.1 aplicatvectorilor x = A(:, j), j = k + 1 : n. Combinand ideile de mai sus, rezulta imediat

% Versiunea primara a algoritmului de triangularizare cu reflectori1. Pentru k = 1 : min (m− 1, n)

% se determina transformarea Uk

1. σ = sgn(akk) ·(∑m

i=k a2ik

)1/2

2. ukk = akk + σ; uik = aik, pentru i = k + 1 : m3. βk = σukk

% se aplica Uk

4. Pentru j = k + 1 : n1. ν = (

∑mi=k uikaij) /βk

2. aij ← aij − νuik, pentru i = k : m% coloana k5. akk = −σ; aik = 0, pentru i = k + 1 : m

Comentarii. Algoritmul necesita aproximativ NQR = 2(mn2 − n3/3) operatii,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, atunciNQR = (4/3)n3 este dublu fata de algoritmul de eliminare gaussiana. ♦

Page 161: metode de calcul numeric matriceal. algoritmi fundamentali

3.3. TRIANGULARIZAREA ORTOGONALA 147

In general, fie acum A ∈ Cm×n o matrice oarecare. Pentru uniformizarea scrierii,

ın cazul m ≤ n completam sirul de transformari din (3.55) cu Umdef= Im. De aseme-

nea, notam s = min(m,n), precum si Uk = QHk , unde Qk sunt reflectorii com-

plecsi (ın particular hermitici) utilizati pentru anularea elementelor subdiagonale laetapele k = 1 : s. Cu aceste notatii, relatiile (3.54) si (3.55) pot fi scrise ımpreunasub forma (3.53), unde

U = QH = QHs . . .QH

2 QH1 , (3.56)

iar schema de triangularizare devine

QR % Schema generala de triangularizare QR

1. Pentru k = 1 : s1. Se genereaza QH

k a.ı. (QHk A)ik = 0, i = k + 1 : m

2. A← QHk A.

• In cazul real sau ın cazul utilizarii reflectorilor hermitici de forma (3.31) avemQH

k = Qk, iar implementarea schemei QR are la baza procedurile RFG si RF dintabelul 3.1. Componentele uik, i = k + 1 : m, ale vectorilor Householder uk sememoreaza natural pe pozitiile elementelor anulate, iar scalarii βk se memoreazaıntr-un vector suplimentar, ca ın urmatoarea diagrama corespunzatoare situatiei dedupa pasul k

r11 r12 . . . r1k r1,k+1 . . . r1n

u21 r22 . . . r2k r2,k+1 . . . r2n

.... . .

......

...uk1 uk2 . . . rkk rk,k+1 . . . rkn

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

(k+1)k+1,n

......

......

...

um1 um2 . . . umk a(k+1)m,k+1 . . . a

(k+1)mn

[β1 β2 . . . βk

]

Algoritmul rezultat se redacteaza astfel.

Algoritmul 3.5 (QR – triangularizare ortogonala cu reflectori her-mitici) (Se da A ∈ Cm×n. Se efectueaza triangularizarea ortogonala amatricei A, i.e. QHA = R, unde QH = Qs . . . Q2Q1, iar Qk sunt reflec-tori hermitici. Partea esentiala uk(k + 1 : m) a vectorilor Householderuk se memoreaza pe pozitiile corespunzatoare A(k + 1 : m, k). La apli-carea ulterioara a transformarilor se tine seama ca ukk = β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 : s1. βk = 02. Daca k < m atunci

1. σ = ‖A(k : m, k)‖

Page 162: metode de calcul numeric matriceal. algoritmi fundamentali

148 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

2. Daca σ 6= 0 atunci

1. Daca akk 6= 0 atunci σ ← akk

|akk|σ

2. aik ← uik = aik/σ, pentru i = k : m3. βk ← ukk = 1 + akk

4. Pentru j = k + 1 : n1. α = − (

∑mi=k uikaij) /βk

2. aij ← aij + αuik, pentru i = k : m% elementul diagonal5. akk = −σ

Comentarii. In cazul real, algoritmul 3.5 necesita NQR operatii 12 si este numericstabil, dupa cum vom arata ın sectiunea 3.8. Modul de apel este [A, β] = QR(A),unde β este vectorul real cu componentele βk, k = 1 : s, iar A apare ca tabloude intrare-iesire. Subliniem ca algoritmul 3.5 nu calculeaza explicit reflectorii Qk

din (3.56), si cu atat mai putin matricea de transformare QH , ci doar memoreaza(extrem de economic) toate elementele necesare pentru definirea acestora. ♦

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 operatii. In acest sens

fie matricea A+ =

[RC

]

, ın care blocul lider R ∈ Cn×n este deja superior tri-

unghiular, iar C ∈ C(m−n)×n este un bloc dat cu l = m − n ≥ 1 linii. Schema detriangularizare ortogonala este

QHA+ =

[R+

0

]

, QH = QHn . . .QH

2 QH1 ,

ın care Qk sunt reflectori definiti de vectorii Householder

uk = [0 . . . 0 ukk 0 . . . 0 un+1,k . . . umk]T .

La fiecare etapa, elementele βk = ukk si uik, i = n + 1 : m, se determina ca ınalgoritmul 3.5 pentru a anula elementele corespunzatoare din coloana k a bloculuiC. In plus, datorita structurii suplimentare de zerouri, aplicarea transformarii lasanemodificate liniile i = k + 1 : n ale matricei A+, deci conserva structura supe-rior triunghiulara a blocului lider. In consecinta, numarul de operatii se reduce la2(m− n)n2. Detaliile de implementare si analiza unor cazuri particulare semnifica-tive sunt propuse ın problema 3.20. ♦

•• In cazul utilizarii reflectorilor 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, notand N = mn2 − n3/3, algoritmul 3.5 cere N adunari complexe si Nınmultiri complexe. Deoarece o adunare complexa este echivalenta cu 2 adunari (reale), iar oınmultire complexa este echivalenta cu doua adunari si patru ınmultiri, algoritmul 3.5 cere 4Nadunari si 4N ınmultiri, adica 8N (sau 4NQR) operatii reale (flopi).

Page 163: metode de calcul numeric matriceal. algoritmi fundamentali

3.4. FACTORIZAREA QR 149

CQR % Algoritmul de triangularizare ortogonala cu reflectori com-plecsi, i.e. QHA = R, unde QH = QH

s . . . QH2 Q

H1 .

1. Pentru k = 1 : s1. τ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 cucomponentele τk, k = 1 : s.

B. Proceduri de triangularizare cu rotatii

Procesul de triangularizare definit prin relatia (3.53) poate fi implementat alternativutilizand rotatii.

De exemplu, ın cazul real, pentru anularea elementelor subdiagonale se utilizeazasecvente de rotatii Pk de forma (3.26), ın care la fiecare etapa k rotatiile Pki sedetermina utilizand algoritmul 3.4 pentru a introduce zerourile necesare ın pozitiilecorespunzatoare aik, i = k + 1 : m, ale matricei curente A. Actualizarea coloanelorurmatoare se face utilizand algoritmul 3.3.

Procedura de triangularizare se poate desfasura pe loc ın tabloul A, utilizandurmatoarea schema de calcul.

QR ROT % Triangularizarea matricei A utilizand rotatii

1. Pentru k = 1 : min (m− 1, n)1. Pentru i = k + 1 : m

1. Se determina Pki astfel ıncat (PkiA)ik = 02. A← PkiA

Detaliile de justificare precum si scrierea algoritmului ın forma sa implementabilasunt propuse ca exercitii. Mentionam ca numarul de operatii efectuat aici este dublufata de algoritmul similar care utilizeaza reflectori, de aceea acesta din urma esteın general preferabil. In cazul complex, schema de mai sus ramane valabila, cumentiunea ca rotatiile Pki se calculeaza ca ın sectiunea 3.2.2.

3.4 Factorizarea QR

In aceasta sectiune vom utiliza procedurile de triangularizare ortogonala stabiliteın sectiunea anterioara pentru a construi factorizarea QR a unei matrice A ∈ Cm×n

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

]nm− n (3.57)

unde matricea

Q = Q1Q2 . . . Qn (3.58)

Page 164: metode de calcul numeric matriceal. algoritmi fundamentali

150 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

este unitara iar R este superior triunghiulara ca ın (3.54). (In particular, dacam = n atunci R = R′.) Partitionand Q conform cu R, i.e.

Q = [ Q′

︸︷︷︸

n

Q′′

︸︷︷︸

m−n

], (3.59)

din (3.57) deducem

A = Q′R′, (3.60)

unde acum Q′ are coloanele ortogonale, pe scurt Q′HQ′ = In, iar R′ este patrata.Am demonstrat astfel prima parte a urmatorului rezultat fundamental.

Teorema 3.2 Orice matrice A ∈ Cm×n cu m ≥ n poate fi scrisa sub forma (3.60),unde Q′ ∈ Cm×n are coloane ortogonale, iar R′ ∈ Cn×n este superior triunghiulara.Prin definitie, relatia (3.60) constituie factorizarea QR a matricei A. Daca Aeste monica, atunci R′ rezulta inversabila si reciproc. In acest caz, factorizareaQR este unica daca ın plus impunem conditia ca factorul triunghiular R′ sa aibaelemente diagonale (reale si) pozitive.

Demonstratie. Pentru a demonstra a doua afirmatie, sa ne amintim ca matriceaA este monica daca si numai daca Ax 6= 0, oricare ar fi x ∈ Cn, x 6= 0, decixHAHAx = ‖Ax‖2 > 0 pentru orice x 6= 0, adica matricea hermitica G = AHAeste pozitiv definita. Atunci, conform teoremei de factorizare Cholesky, exista sieste unica matricea R1 superior triunghiulara cu elemente diagonale pozitive astfelıncat G = RH

1 R1. Fie Q1 = AR−11 . Avem

QH1 Q1 = R−H

1 AHAR−11 = R−H

1 RH1 R1R

−11 = In,

adica Q1 are coloanele ortogonale, si ın plus A = Q1R1. Prin urmare, unicitateafactorizarii QR rezulta din unicitatea factorizarii Cholesky, i.e. daca R′ satisfaceconditia din enunt atunci R′ = R1 si Q′ = Q1. (Conditia ca elementele diagonaleale lui R′ sa fie pozitive poate fi ıntotdeauna satisfacuta, dar, de obicei, nu prezintainteres ın practica.) ♦

Observatia 3.4 In general, matricea hermitica pozitiv semidefinita G = AHAse numeste gramian al (coloanelor) matricei A. Demonstratia teoremei 3.2 arataca daca matricea A este monica, atunci factorul triunghiular R′ al lui A coincideın esenta cu factorul Cholesky R1 al lui G. In principiu, acest rezultat extrem deimportant poate fi exploatat ın doua sensuri.

a) Factorizarea QR a matricei A poate fi determinata relativ economic efectuandın prealabil factorizarea Cholesky a matricei G. Schema de calcul, dedusa directdin demonstratia teoremei amintite, este urmatoarea

QR Ch 1. Se formeaza G = AHA

2. Se calculeaza R1 efectuand factorizarea Cholesky G = RH1 R1

3. Se calculeaza Q1 = AR−11 rezolvand sistemul supe-

rior triunghiular Q1R1 = A

Page 165: metode de calcul numeric matriceal. algoritmi fundamentali

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, rezultatala pasul 1 prin ”ridicarea la patrat” a lui A, este rau conditionata, vezi mai departepropozitia 3.5. In consecinta, rezultatele calculate la pasii 2 si 3 sunt afectate de eroristraine de problema si eventual catastrofale, independent de calitatea algoritmilorutilizati. Ca regula generala, formarea gramianului G = AHA trebuie sistematicevitata ın favoarea operarii directe asupra matricei date A.

b) O serie de probleme de calcul, vizand de exemplu actualizarea unor factorizariLU sau Cholesky, pot fi reformulate ın termenii unei factorizari QR echivalente sirezolvate ın consecinta aplicand procedurile numeric stabile bazate pe utilizareatransformarilor ortogonale. Spre deosebire de abordarea de la punctul a), aceastaidee, care constituie baza unei ıntregi familii de metode de calcul, traditional numite”de radacina patrata”, este larg aplicata ın practica. ♦

Exemplul 3.6 Pentru a ilustra ideea de baza a algoritmilor de radacina patrata,fie G = RHR o matrice hermitica pozitiv definita al carei factor Cholesky supe-rior triunghiular R ∈ Cn×n este cunoscut. Problema de actualizare a factorizariiCholesky consta ın a calcula factorul Cholesky R+ al matricei modificate

G+ = G+ CHC,

ın care C ∈ Cl×n este o matrice data. In particular, daca l = 1, i.e. C = cT esteun vector linie, atunci G+ este o modificare de rang 1 a lui G.

Aceasta problema poate fi rezolvata extrem de simplu, fara a forma explicit G+,observand ca

G+ = RHR+ CHC = [RH CH ]

[RC

]

= AH+A+,

i.e. G+ este gramianul matricei A din exemplul 3.5. In consecinta, factorul Choleskycautat R+ poate fi determinat efectuand triangularizarea ortogonala a matricei A+,construite direct cu elementele date R si C.

O idee asemanatore se aplica pentru a efectua actualizarea factorizarii Choleskyın cazul unei modificari de rang 2, i.e.

G+ = G+ dcH + cdH + ccH ,

unde c, d ∈ Cn sunt doi vectori (coloana) dati. ♦

Daca matricea A este monica, atunci factorul ortogonal Q′ al lui A are osemnificatie geometrica remarcabila. Din (3.60) rezulta

ynot= Ax = Q′(R′x), ∀x ∈ C

n, (3.61)

unde R′ este superior triunghiulara inversabila. Prin urmare, coloanele matricelor

A si Q′ genereaza acelasi subspatiu liniar S not= ImA. Mai precis, prin ipoteza A are

coloanele independente, deci constituie o baza a lui S, iar prin constructie Q′ arecoloanele ortogonale, deci constituie o baza ortogonala a lui S. Proiectorul ortogonalpe S este P1 = A(AHA)−1AH sau, mai simplu, P1 = Q′Q′H . (Prin calcul direct

Page 166: metode de calcul numeric matriceal. algoritmi fundamentali

152 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

-

6

q1

q2

q3

S⊥

S

Fig. 3.5: Baze ortogonale pentru ImA si KerAH . Q = [q1 q2 | q3], m = 3, n = 2

se verifica usor ca P 21 = P1 si PH

1 = P1, iar faptul ca ImP1 = S este evident.Echivalenta celor doua expresii ale lui P1 rezulta din (3.60).)

In mod similar, matricea Q′′ ∈ Cm×(m−n) (care, ın (3.59), completeaza Q′ panala o matrice unitara Q), constituie o baza ortogonala a subspatiului complementarS⊥ = KerAH . Proiectorul ortogonal pe S⊥ este P2 = Q′′Q′′H si, ın plus, avemP1 + P2 = Im.

Pe scurt, partitia (3.59) a matricei unitare Q corespunde descompunerii ortogo-nale fundamentale

Cm = ImA⊕KerAH , (3.62)

furnizand baze ortogonale pentru ambele subspatii. Cazulm = 3, n = 2 este ilustratın figura 3.5. In consecinta, orice vector b ∈ Cm se scrie unic sub forma b = b1 + b2,unde bi = Pib, i = 1 : 2, sunt proiectiile 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 = Q1Q2 . . . Qm este unitara, iar R este superior trapezoidala ca ın (3.55).Utilizand partitia conforma A = [A′ B] obtinem 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′)−1S. Altfel spus, ıntre coloanele matricei A existarelatia B = A′X , unde X = (R′)−1S este solutia sistemului triunghiular R′X = S,prin urmare matricea

N =

[−XIm−n

]

constituie o baza (neortogonala) a subspatiului N not= KerA ∈ Cn. (Se constata

imediat ca A este epica si AN = 0.)Trebuie ınsa sa observam ca, ın absenta unei strategii adecvate de pivotare a

coloanelor, conditia de inversabilitate mentionata mai sus nu este ındeplinita, astfel

Page 167: metode de calcul numeric matriceal. algoritmi fundamentali

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 evidentiaza clarimportanta factorizarii QR, ın continuare ne vom concentra atentia asupra as-pectelor procedurale privind calculul si aplicatiile practice ale acestei factorizari.

3.4.1 Acumularea transformarilor

In cazul m ≥ n, factorizarea QR a matricei A poate fi determinata utilizand pro-cedurile de triangularizare ortogonala stabilite ın sectiunea anterioara. Intr-adevar,ın urma executiei acestor proceduri, factorul triunghiular R′ se obtine ca atare ıntriunghiul superior al matricei A iar, ın acord cu relatiile (3.58) si (3.59), factorulortogonal Q′ poate fi calculat sub forma

Q′ = Q

[In0

]

= Q1Q2 . . .Qn

[In0

]

, (3.65)

aplicand urmatoarea schema caracteristica de acumulare a transformarilor.

GQR % Acumularea primelor n coloane Q′ ale matriceiQ = Q1Q2 . . . Qn, m ≥ n.

1. Q′ =

[In0

]

2. Pentru k = n : −1 : 11. Q′ ← QkQ

Cu referire la algoritmul 3.5, implementarea schemei GQR este simpla. Tinandseama de particularitatile de structura ale matricei Q′ si utilizand elementele defi-nitorii ale transformarilor Qk, memorate ın triunghiul inferior strict al matricei Aprecum si ın vectorul β, procesul de calcul poate fi organizat astfel ıncat Q′ sarezulte 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 matriceiQ = Q1Q2 . . .Qs, unde Qk sunt reflectori hermitici. Se presupunem ≥ n.)

1. Pentru j = 2 : n1. aij = 0, pentru i = 1 : j − 1

2. Pentru k = n : −1 : 11. Daca βk 6= 0 atunci

1. akk ← ukk = βk

2. Pentru j = k + 1 : n1. α = − (

∑mi=k uikaij) /βk

2. aij ← aij + αuik, 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 justifica avand ın vedere ca, ın general, un anumit algoritm de calcul trebuiesa manevreze un numar cat mai mic de tablouri de lucru.

Page 168: metode de calcul numeric matriceal. algoritmi fundamentali

154 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

% coloana k3. aik ← −aik, i = k : m4. akk = 1 + akk

altfel

5. aik = 0, pentru i = k + 1 : m6. akk = 1

Comentarii. In cazul real, algoritmul 3.6 necesita NQR operatii, care (la fel caın algoritmul 3.5) se consuma pentru actualizarea coloanelor la pasul 2.1.2. Modulde apel este A = GQR(A, β). Retinem ca determinarea explicita a factorizariiQR a matricei A prin apelarea succesiva a procedurilor QR si GQR necesita ıntotal 2NQR operatii, deci este relativ costisitoare. Pentru utilizare ın capitoleleurmatoare, sintaxa unei astfel de proceduri de factorizare QR este [Q,R] = FQR(A)(lasam cititorului micile detalii de implementare). ♦

In contextul procedurii de triangularizare CQR, care utilizeaza reflectori complecsi,schema de acumulare GQR ramane evident valabila. Implementarea ei ”directa”, bazatape aplicarea la pasul 2 a procedurii de transformare CRF pentru actualizarea coloanelorlui Q′, este extrem de simpla.

GCQR % Acumularea primelor n coloane Q′ ale matricei Q = Q1Q2 . . . Qn,m ≥ n, unde Qk sunt reflectori complecsi.

1. Pentru j = 1 : n1. qij = 0, pentru i = 1 : m2. qjj = 1

2. Pentru k = n : −1 : 11. Pentru j = 1 : n

1. CRF(A(k : m,k), τk, Q(k : m, j))

Subliniem ınsa ca procedura GCQR ın forma scrisa mai sus este neeficienta deoarecenu exploateaza structura speciala a matricei Q′ care, pe masura aplicarii transformarilorla pasul 2, se ”umple” progresiv, ıncepand cu ultima coloana. (Un calcul simplu arataca, ın cazul m = n, algoritmul GCQR necesita Nop = 2n3 operatii complexe, adica cu50% mai mult decat algoritmul 3.6.) Modificarile necesare pentru a corecta acest defect,permitand totodata formarea lui Q′ pe loc ın tabloul A, pot fi aduse de catre cititorulinteresat, eventual dupa o analiza comparativa cu algoritmul 3.6.

Matricea Q′′, care completeaza Q′ pana la o matrice unitara, poate fi calculatasub forma

Q′′ = Q

[0

Im−n

]

= Q1Q2 . . . Qn

[0

Im−n

]

, (3.66)

utilizand o schema de acumulare similara, dar mai putin eficienta. (Evident, acumtabloul A trebuie extins cu m− n coloane necesare pentru a memora Q′′.)14

In final, subliniem ca formarea matricelor Q′, Q′′ sau Q prin acumularea trans-formarilor este relativ costisitoare. De aceea, ın contextul aplicatiilor considerateın acest capitol, se recomanda evitarea acestui calcul ın favoarea utilizarii formeifactorizate (3.58) a matricei Q, furnizata ca atare de algoritmii de triangularizareQR.

14 In cazul m < n, cu referire la (3.64), calculul matricei Q se poate face apeland direct proceduraGQR sub forma A(:, 1 : m) = GQR(A(:, 1 : m), β). Dupa executie, rezultatul dorit Q suprascrieblocul lider A′ al matricei A.

Page 169: metode de calcul numeric matriceal. algoritmi fundamentali

3.4. FACTORIZAREA QR 155

3.4.2 Aplicarea transformarilor

In practica, matricea unitara QH generata sub forma (3.56) de procedurile de tri-angularizare ortogonala aplicate matricei A, se utilizeaza pentru a transforma ınmod adecvat o alta matrice data B. Ca regula generala, cele patru tipuri de trans-formari posibile, doua la stanga (QHB si QB) si doua la dreapta (BQ si BQH), seefectueaza pe loc ın B fara a forma explicit matricele QH sau Q.

Aplicarea transformarilor

B ← QHB = QHs . . . QH

2 QH1 B (3.67)

siB ← QB = Q1Q2 . . . QsB (3.68)

se face partitionand B pe coloane.In cazul (3.67), schema de calcul este evident urmatoarea.

MQR % Aplicarea transformarii B ← QHB, unde Q = Q1Q2 . . . Qs.

1. Pentru k = 1 : s1. B ← QH

k B

Cu referire la algoritmul 3.5, implementarea schemei MQR are la baza o pro-cedura de tip RF pentru actualizarea fiecarei coloane a matricei B. Desigur, lapasul 1.1, transformarea se aplica efectiv numai daca βk 6= 0, utilizand vectorulHouseholder uk memorat ın A(k : m, k).

Algoritmul 3.7 (MQR) (Se da B ∈ Cm×p. Utilizand iesirea algo-ritmului 3.5, se aplica transformarea B ← QHB, unde Q = Q1Q2 . . .Qs,iar Qk sunt reflectori hermitici.)

1. Pentru k = 1 : s1. Daca βk 6= 0 atunci

1. t = akk

2. akk ← ukk = βk

3. Pentru j = 1 : p1. α = − (

∑mi=k uikbij) /βk

2. bij ← bij + αuik, pentru i = k : m4. akk = t

Comentarii. In cazul real cu m ≥ n, algoritmul 3.7 necesita Nop = pNm operatii,unde am notat cu Nm = 2n(2m− n) numarul de operatii necesar pentru a aplicatransformarea (3.67) unui vector b cu m componente. ♦

In contextul procedurii de triangularizare CQR, schema MQR se implementeaza astfel.

MCQR % Aplicarea transformarii B ← QHB, unde Q = Q1Q2 . . . Qs, iarQk sunt reflectori complecsi.

1. Pentru k = 1 : s1. Pentru j = 1 : p

1. CRF(A(k : m,k), τk, B(k : m, j))

Page 170: metode de calcul numeric matriceal. algoritmi fundamentali

156 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

In cazul (3.68) se procedeaza analog. Daca Qk sunt reflectori hermitici, atuncialgoritmul rezultat difera de algoritmul 3.7 numai prin ordinea de aplicare a trans-formarilor. Avand ın vedere simplificarea redactarii unor proceduri ulterioare, vompresupune ca ambele transformari (3.67) si (3.68) pot fi efectuate apeland o singuraprocedura, al carei mod de apel este B = MQR(TRANS, A, β,B), unde TRANSeste 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 exercitiu usor.

Aplicarea transformarilor la dreapta B ← BQ si B ← BQH se face partitionandB pe linii si tinand seama de precizarile facute ın finalul sectiunii 3.2.1. Scriereaprocedurii corespunzatoare, de exemplu notata MQRd, este propusa ca exercitiu.(La nevoie, cele doua proceduri MQR si MQRd pot fi reunite ıntr-una singuraintroducand 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, GQR si MQR, apar ıntotdeauna ıntriplete, orice modificare a procedurii fundamentale de triangularizare QR, ın ceeace priveste calculul si memorarea transformarilorQk, k = 1 : s, antrenand dupa sinemodificari corespunzatoare ın procedurile asociate GQR si MQR. Avand ın vedererecomandarile facute ın finalul sectiunii precedente, procedura de acumulare GQR

se utilizeaza numai ın caz de stricta necesitate. Aproape ıntotdeauna, obiectiveleurmarite prin calcul pot fi atinse utilizand procedura de transformare MQR careopereaza 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 procedurilorbloc de factorizare LU, descrise ın sectiunea 2.4. La fel ca acolo, utilizarea acestuitip de proceduri este indicata pe calculatoarele cu memorie ierarhica.

Pentru precizare, ın continuare ne vom referi la procedura CQR care efectueazatriangularizarea matricei A, partitionata pe coloane, utilizand reflectori complecsi.Dupa cum am vazut, aceasta procedura este bogata ın operatii vectoriale, iar efortulprincipal de calcul se consuma la pasul 1.2 pentru actualizarea coloanelor urmatoare.Avand ın vedere accelerarea acestui proces pe seama reducerii numarului de apelurila memoria principala, procedura bloc opereaza asupra matricei A partitionate ınblocuri de coloane, cu scopul de a efectua operatiile indicate utilizand procedurilede ınmultire matriceala (la nivel de bloc) de tip GEMM din BLAS 3.

Consideram A ∈ Cm×n cu m ≥ n si n = νnb, unde nb e dimensiunea comuna ablocurilor (de coloane), iar ν este numarul total de blocuri. Procedura de triangu-larizare la nivel de bloc are ν etape. (Pentru simplitate, ın continuare indicele deetapa va fi omis.)

La prima etapa, are loc triangularizarea primului bloc al matricei A, efectuandtransformarea A← QH

b A. In consecinta, se considera partitia A = [Ab B], unde

Ab = A(1 : m, 1 : nb), B = A(1 : m,nb + 1 : n) (3.69)

si se procedeaza astfel:

Page 171: metode de calcul numeric matriceal. algoritmi fundamentali

3.4. FACTORIZAREA QR 157

Bl1 1. Se genereaza Qb a.ı. QHb Ab = Rb este superior triunghiulara

2. Se formeaza Qb

3. Se aplica transformarea B ← QHb B

Evident, la pasul 1 se aplica procedura uzuala CQR blocului Ab. Matricea Qb

rezultata este de formaQb = Q1Q2 . . . Qnb

, (3.70)

unde Qi = Im − τiuiuHi sunt reflectorii complecsi determinati pentru a introduce

zerouri subdiagonale ın coloanele i = 1 : nb ale blocului Ab. Problema consta ıngasirea unei forme de reprezentare a lui Qb la pasul 2, adecvate accelerarii executieipasului 3 15.

La o etapa ulterioara l ∈ 2 : ν, matricea curenta A este superior triunghiularaın primele k − 1 coloane, unde k = (l − 1)nb + 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 efectuandtransformarea A← QH

b A, unde

Qb = QkQk+1 . . .Qk+nb−1,

iar fiecare reflector Qi are o structura de tip (3.10), deci

Qb =

[Ik−1 0

0 Qb

]

.

In consecinta, se considera partitia A = [Ab B], unde acum

Ab = A(k : m, k : k + nb − 1), B = A(k : m, k + nb : n),

si se aplica procedura Bl1 cu noile date. Matricea Qb rezultata este de forma

Qb = Q1Q2 . . . Qnb,

iar problemele de calcul la pasii 2 si 3 sunt aceleasi ca mai sus.Pentru precizare, ın continuare ne vom referi la partitia (3.69) si vom descrie

cele doua tipuri de reprezentari structurate ale matricelor Qb de tip (3.70), utilizate

15Procedurile uzuale de tip vectorial, expuse ın sectiunile anterioare, nu satisfac acest deziderat.Aplicarea succesiva a transformarilor Qi, i = 1 : nb, ın maniera MQR, este eficienta (numarulde operatii este 2nb(2m − nb)(n − nb)) dar nu conduce la operatii matriceale implementabile ınBLAS 3. Pe de alta parte, formarea explicita a matricei Qb prin acumularea transformarilorın maniera GQR este costisitoare, totodata Qb rezulta nestructurata, deci produsul matricealB ← QH

bB cere 2m2(n − nb) operatii, unde tipic, m ≫ nb, adica cu un ordin mai mult decat

este necesar. In plus, un asemenea mod de lucru cere un spatiu considerabil pentru memorareamatricei Qb.

De aceea, ın practica, se utilizeaza reprezentari speciale ale matricelor de tip Qb care poartanumele de reflectori bloc si care vor fi descrise ın continuare.

Page 172: metode de calcul numeric matriceal. algoritmi fundamentali

158 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

ın practica. (Indicele b va fi omis.) Aceste reprezentari se numesc reflectori bloc, iarelementele lor definitorii se construiesc exploatand relatia recurenta

Q = Q1, Q← Q+ = QQi, i = 2 : nb.

a. Reprezentarea WY este de forma QH = I −WY H , respectiv

Q = I − YWH , (3.71)

unde W,Y ∈ Cm×nb sunt doua matrice ce urmeaza a fi determinate.Initial avem Q = I − τ1u1u

H1 , deci putem lua

W = u1, Y = τ1u1.

Mai departe putem scrie

Q+ = QQi = (I − YWH)(I − τiuiuHi ) =

= I − YWH − τi(I − YWH)uiuHi =

= I −[Y zi

][WH

uHi

]

=

= I − Y+WH+ ,

deciW+ = [W ui], Y+ = [Y zi],

unde zi = τi(I − YWH)ui. Matricea W , formata prin alaturarea vectorilor House-holder ui, este produsa si memorata ca atare de catre procedura CQR pe pozitiilesubdiagonale din tabloul Ab. (Intrucat primele i − 1 componente ale vectorilorHouseholder ui sunt nule, iar uii = 1, W este chiar inferior trapezoidala unitate.)In consecinta, reprezentarea WY este complet definita de tabloul Y , a carui proce-dura de formare (vezi pasul 2 al schemei Bl1) este urmatoarea.

% Formarea lui Y1. Y (:, 1) = τ1u1

2. Pentru i = 2 : nb

1. Y (:, i) = (τiui)− Y (WH(τiui))

La pasul 3 al procedurii Bl1, reflectorul bloc ın reprezentarea WY se aplicamatricei B conform schemei

B ← QHB = (I −WY H)B = B −W (Y HB), (3.72)

respectiv

1. N = Y HB2. B ← B −WN

Ambele produse se efectueaza utilizand GEMM si cer 4mnb(n− nb) operatii. Sin-gurul neajuns al reprezentarii WY consta ın necesitatea formarii tabloului de lucrusuplimentar Y de dimensiune m× nb, relativ mare.

Page 173: metode de calcul numeric matriceal. algoritmi fundamentali

3.4. FACTORIZAREA QR 159

b. Reprezentarea W2T sau triunghiulara este de forma QH = I−WTHWH ,respectiv

Q = I −WTWH (3.73)

unde, dupa cum vom vedea, W este acelasi ca mai sus, iar T ∈ Cnb×nb rezulta

superior triunghiulara.Initial avem Q = I − τ1u1u

H1 , deci putem lua

W = u1, T = τ1.

Mai departe putem scrie

Q+ = QQi = (I −WTWH)(I − τiuiuHi ) =

= I −WTWH − τiuiuHi +W (τiTW

Hui)uHi =

= I −[W ui

][T ti0 τi

] [WH

uHi

]

=

= I −W+T+WH+

deci avem

W+ = [W ui], T+ =

[T ti0 τi

]

,

unde ti = −τiT (WHui).Procedura de formare a tabloului triunghiular T , care defineste complet repre-

zentarea W2T, este urmatoarea.

% Formarea lui T1. T (1, 1) = τ12. Pentru i = 2 : nb

1. T (1 : i− 1, i) = −τiT (WHui)2. T (i, i) = τi

La pasul 3 al procedurii Bl1, reflectorul bloc ın reprezentarea W2T se aplicamatricei B conform schemei

B ← QHB = (I −WTWH)B = B −WT (WHB), (3.74)

respectiv

1. N = WHB2. N ← THN3. B ← B −WN

O analiza simpla arata ca ın acest caz este suficient un singur tablou de lucru dedimensiune nb × n, relativ mica. In primele nb coloane ale acestuia se formeaza T ,iar ın coloanele urmatoare se depune produsul intermediar N = WHB. (Subliniemca blocurile T utilizate ın etapele succesive ale procedurii de triangularizare nu sememoreaza, ci se formeaza pe masura ce sunt necesare.) Numarul de operatii este(4m+nb)nb(n−nb). Cresterea numarului de operatii este compensata de memorareamai compacta a reprezentarii triunghiulare.

Combinand ideile de mai sus, procedura de triangularizare ortogonala la nivelde bloc poate fi rezumata astfel.

Page 174: metode de calcul numeric matriceal. algoritmi fundamentali

160 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

CQR Bl % Triangularizare la nivel de bloc, utilizand reflectori complecsi.

1. Pentru k = 1 : nb : min(n,m)1. f = min(k + nb − 1, n)2. Ab = A(k : m, k : f)3. τ(k : f) = CQR(Ab)4. A(k : m, k : f) = Ab

5. Daca f < n atunci

% Formarea lui T1. T (k, k) = τk2. Pentru i = k + 1 : f

1. T (k : i− 1, i) = −τiT (WHui)2. T (i, i) = τi

% aplicarea transformarii3. B = A(k : m, f + 1 : n)4. N = WHB5. N ← THN6. B ← B −WN7. A(k : m, f + 1 : n) = B

In redactarea de mai sus, Ab este tabloul de lucru din memoria rapida ın carese efectueaza triangularizarea blocului curent, iar B si N sunt blocurile utilizate deGEMM ın procesul de aplicare a transformarii. (In caz de necesitate, blocul B poatefi tratat sub forma partitionata.) Amintim ca tabloul W este format si memoratca atare ın triunghiul strict inferior al blocului Ab obtinut la pasul 1.3. Evident, ıncazul nb = 1 procedura de mai sus se reduce la CQR. Instructiunile 1.2, 1.4, 1.5.3si 1.5.7 efectueaza transferul datelor ıntre memoria principala si cea rapida.

In final, subliniem ca procedurile de acumulare si transformare GCQR siMCQR pot fi de asemenea reformulate la nivel de bloc, procedand ın esenta ca lapasul 1.5 al algoritmului de mai sus.

3.4.4 Alte metode de ortogonalizare

Factorizarea QR a unei matrice monice A ∈ Cm×n poate fi calculata utilizand pro-cedurile de ortogonalizare de tip Gram-Schmidt, care constituie analogul schemelorcompacte Crout si Doolittle, cunoscute din sectiunea 2.4.

Considerand relatia A = Q′R si partitionand A si Q′ pe coloane, putem scrie

[a1 . . . aj . . . an] = [q1 . . . qj . . . qn]

r11 . . . r1j . . . r1n

. . ....

...rjj . . . rjn

. . ....rnn

.

Egaland primele coloane avem

a1 = q1r11,

Page 175: metode de calcul numeric matriceal. algoritmi fundamentali

3.4. FACTORIZAREA QR 161

unde vectorul q1 este normat, i.e. ‖q1‖ = 1, deci r11 = ‖a1‖ si q1 = a1/r11. Ingeneral avem

aj = q1r1j + . . .+ qj−1rj−1,j + qjrjj ,

unde qk ⊥ qj , deci qHk aj = rkj , k = 1 : j − 1, iar qj este si el normat, deci

rjj = ‖aj −j−1∑

k=1

qkrkj‖.

Procedura de ortogonalizare Gram-Schmidt astfel obtinuta este urmatoarea.

GS % Procedura Gram-Schmidt (schema jk)1. Pentru j = 1 : n

1. qj = aj

2. Pentru k = 1 : j − 11. rkj = qH

k qj3. qj ← qj −

∑j−1k=1 qkrkj

4. rjj = ‖qj‖5. qj ← qj/rjj

Prin rearanjarea buclelor procedurii GS si actualizarea coloanei curente qj ime-diat dupa calculul unui coeficient rkj , se obtine procedura de ortogonalizare Gram-Schmidt modificata.

MGS % Procedura Gram-Schmidt modificata (schema kj)1. Pentru k = 1 : n

1. qk = ak

2. Pentru k = 1 : n1. rkk = ‖qk‖2. qk ← qk/rkk

3. Pentru j = k + 1 : n1. rkj = qH

k qj2. qj ← qj − qkrkj

Aici este important sa subliniem ca, desi cele doua proceduri sunt echivalente dinpunct de vedere matematic, iar numarul de operatii este acelasi ın ambele cazuri,NGS = 2mn2, totusi performantele lor numerice sunt diferite. Procedura GS estenumeric instabila atat ca mijloc de calcul al factorizarii QR cat si ca metoda derezolvare a problemei CMMP. In schimb, procedura MGS furnizeaza o factorizareQR satisfacatoare (ın sensul ca, de regula, vectorii calculati qj rezulta ortogonaliın precizia de lucru) si constituie totodata un algoritm numeric stabil pentru re-zolvarea problemei CMMP. De aceea, ın multe situatii, procedura MGS (imple-mentata ıngrijit) poate constitui o alternativa viabila fata de perechea QR, GQR,relativ mai costisitoare.

Page 176: metode de calcul numeric matriceal. algoritmi fundamentali

162 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

3.4.5 Factorizarea QL

In unele aplicatii matricea A este adusa la forma inferior triunghiulara ın raport cudiagonala secundara care ıncepe din coltul dreapta-jos, i.e.

QHA = L, (3.75)

unde lij = 0, i < m − n + j, j = 1 : n, iar Q este unitara. (Pentru simplitate ampresupus m ≥ n.)

Procesul de triangularizare parcurge coloanele ın ordine inversa, ıncepand cuultima si anuleaza elementele situate deasupra diagonalei secundare utilizand reflec-tori modificati. Notand reflectorii cu indicele coloanei ın care se pastreaza vectoriiHouseholder corespunzatori, putem scrie

QH = QH1 Q

H2 . . . QH

n , (3.76)

iar procedura de calcul poate fi rezumata astfel.

QL % Schema de triangularizare QL, cazul m ≥ n1. Pentru k = n : −1 : 1

1. Se genereaza Qk a.ı. (QHk A)ik = 0, i = 1 : m− n+ k − 1

2. A← QHk A

La pasul 1.1 se utilizeaza o procedura de tip mRFG (vezi tabelul 3.1), iar lapasul 1.2 se modifica numai primele m− n+ k elemente din coloanele j = 1 : k− 1,utilizand procedura corespunzatoare mRF.

Aplicatiile procedurii de triangularizare QL sunt perfect similare cu aplicatiiledescrise mai sus ale procedurii QR (vezi problemele 3.42, 3.43).

3.5 Rezolvarea problemei CMMP

Revenim acum la problema (3.4) din sectiunea introductiva a acestui capitol si, pen-tru generalitate, consideram versiunea ei complexa. Fie A ∈ C

m×n o matrice data sib ∈ Cm un vector arbitrar. Problema CMMP consta ın determinarea pseudosolutieix∗ ∈ Cn a sistemului Ax = b astfel ıncat norma euclidiana a reziduului r = b−Axsa fie minima, i.e.

‖b−Ax∗‖ = minx∈Cn

‖b−Ax‖. (3.77)

In primul rand, vom stabili conditiile ın care problema (3.77) este bine definita,i.e. are o solutie unica.

Teorema 3.3 Oricare ar fi vectorul b ∈ Cm, problema (3.77) are o solutie unicadaca si numai daca matricea A ∈ Cm×n este monica, i.e. m ≥ n si rangA = n.

In acest caz, pseudosolutia ın sensul CMMP a sistemului Ax = b poate fi scrisaın forma

x∗ = A+b, (3.78)

ın care matricea A+ ∈ Cn×m este prin definitie pseudoinversa lui A si are expresia

A+ = (ATA)−1AT (3.79)

Page 177: metode de calcul numeric matriceal. algoritmi fundamentali

3.5. REZOLVAREA PROBLEMEI CMMP 163

Demonstratie. Vom stabili pe rand a) existenta si b) unicitatea pseudosolutiei x∗.a) Pentru a demonstra existenta, nu e necesar sa presupunem ca matricea A

este monica. Consideram subspatiul S = ImA si fie S⊥ = KerAH complementulsau ortogonal ın C

m. Vectorul b poate fi scris ın mod unic sub forma b = b1 + b2,unde b1 ∈ S si b2 ∈ S⊥ sunt proiectiile ortogonale ale lui b pe S si respectiv S⊥.Avem

r = b−Ax = b2 + (b1 −Ax), (3.80)

unde b1 ∈ S, Ax ∈ S implica b1 − Ax ∈ S, deci b2 si b1 − Ax sunt ortogonali,∀x ∈ Cn, vezi figura 3.6. Aplicand teorema lui Pitagora obtinem

‖b−Ax‖2 = ‖b1 −Ax+ b2‖2 = ‖b1 −Ax‖2 + ‖b2‖2 ≥ ‖b2‖2, ∀x ∈ Cn. (3.81)

Intrucat b1 ∈ S = ImA, exista (cel putin) un x∗ ∈ Cn astfel ıncat

Ax∗ = b1, (3.82)

iar din (3.81) se vede ca orice astfel de x∗ are proprietatea (3.77) si reciproc.Existenta pseudosolutiei x∗ este demonstrata.

Relatia (3.82) arata ca cea mai buna aproximare b∗ = Ax∗ a lui b pe S = ImAcoincide cu proiectia ortogonala b1, deci b∗ = b1 exista ıntotdeauna si este unicdeterminata oricare ar fi A. Aceasta afirmatie constituie lema proiectiei ortogonalesi reprezinta generalizarea unui fapt binecunoscut din geometria elementara. Pescurt (vezi (3.77) si figura 3.6), distanta minima de la un punct b la un subspatiuS este lungimea (euclidiana) a perpendicularei duse din b pe S.

Consideratiile geometrice de mai sus pot fi exprimate analitic. Notandr∗ = b − Ax∗, din (3.80) si (3.82) se vede ca r∗ = b2, unde b2 ∈ S⊥ = KerAH ,deci AHr∗ = 0. Prin urmare avem

[Im AAH 0

] [r∗

x∗

]

=

[b0

]

, (3.83)

de unde, eliminand r∗ ıntre cele doua ecuatii, rezulta

AHAx∗ = AHb. (3.84)

b) Din (3.82), pseudosolutia x∗ e unic determinata daca si numai dacaA(x − x′) = 0 implica x = x′, adica KerA = 0, sau, echivalent, A este monica.In acest caz, gramianul G = AHA este o matrice pozitiv definita, deci inversabila(vezi demonstratia teoremei 3.2), iar din (3.84) rezulta imediat (3.78) si (3.79). ♦

Observatia 3.5 Sistemul liniar (3.83), de ordin m+n, se numeste sistemul extinsasociat problemei CMMP. Matricea acestui sistem este hermitica de semn nedefinitsi are o structura particulara remarcabila. Prin rezolvarea acestui sistem putemcalcula atat pseudosolutia x∗ cat si reziduul de norma minima r∗. Procedurile decalcul corespunzatoare vor fi expuse mai jos 16.

16 In principiu, sistemul extins poate fi rezolvat utilizand procedurile de factorizare cvasi-diagonala descrise ın sectiunea 2.10, dar acestea nu sunt eficiente ın cazul de fata deoarece nuexploateaza structura speciala a sistemului considerat (vezi problema 3.52).

Page 178: metode de calcul numeric matriceal. algoritmi fundamentali

164 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

SSSSo

CCCCCCCCCCCCO

1

XXXXXXXXz

6

S = ImA

b2

b

b1

Ax

b−Ax

b1 −Ax

T = S⊥

Fig. 3.6: Lema proiectiei ortogonale

Sistemul liniar (3.84), de ordin n, se numeste sistemul de ecuatii normale, pescurt sistemul normal asociat problemei CMMP. Daca matricea A e monica, grami-anul G este o matrice hermitica pozitiv definita, iar pseudosolutia x∗ coincide cusolutia sistemului normal. La fel ca ın observatia 3.4, aceasta echivalenta poate fiexploatata ın doua sensuri.

a) Pseudosolutia x∗ a sistemului Ax = b poate fi determinata prin rezolvareasistemului normal asociat. Schema de calcul este urmatoarea:

S Ch 1. Se formeaza c = AHb2. Se formeaza G = AHA3. Se efectueaza factorizarea Cholesky G = RH

1 R1

4. Se calculeaza x∗ rezolvand succesiv sistemeletriunghiulare RH

1 y = c si R1x∗ = y.

Trebuie ınsa sa subliniem ca, la fel ca ın observatia 3.4, aceasta metoda (desirelativ economica si extrem de compacta) nu este recomandabila din punct de vederenumeric, deoarece matricea G = AHA este rau conditionata. Cu precautie, ea poatefi avuta ın vedere, ın special daca m ≫ n, iar economia de memorie realizata prinformarea lui G constituie un obiectiv esential.

b) Solutiile unor sisteme liniare cu matrice pozitiv definite avand structura degramian pot fi determinate aplicand ideea algoritmilor de radacina patrata bazatipe utilizarea transformarilor unitare (vezi observatia 3.4). Acest mod de lucru,frecvent utilizat ın practica actuala, este ilustrat prin problema 3.46. ♦

3.5.1 Calculul pseudosolutiei

Avand ın vedere teorema 3.3, peste tot mai departe vom presupune ca matriceaA ∈ Cm×n este monica.

Page 179: metode de calcul numeric matriceal. algoritmi fundamentali

3.5. REZOLVAREA PROBLEMEI CMMP 165

Rezolvarea problemei CMMP se poate face utilizand informatia furnizata dealgoritmul de triangularizare ortogonala QR, i.e.

QHA =

[R′

0

]nm− n , QH = QH

n . . . QH2 Q

H1 , (3.85)

unde Q este unitara, iar R′ este superior triunghiulara inversabila. Aplicand trans-formarea QH ambilor membri ai sistemului Ax = b si notand

QHb = d, d =

[d′

d′′

]nm− n , (3.86)

obtinem sistemul unitar echivalent

[R′

0

]

x =

[d′

d′′

]nm− n . (3.87)

In general, ın (3.87) avem d′′ 6= 0, deci sistemul dat Ax = b este incompatibil.Pentru a determina pseudosolutia x∗, consideram reziduul r = b − Ax. Din

(3.87) rezulta

QHr =

[d′ −R′xd′′

]

, (3.88)

unde matricea QH este unitara, deci ‖r‖ = ‖QHr‖. Prin urmare

‖r‖2 = ‖QHr‖2 = ‖d′ −R′x‖2 + ‖d′′‖2 ≥ ‖d′′‖2, ∀x ∈ Cn. (3.89)

Efectuand minimizarea ın raport cu x indicata ın (3.77) obtinem

R′x∗ = d′, (3.90)

deci solutia ın sens CMMP a sistemului supradeterminat Ax = b coincide cu solutiasistemului superior triunghiular nesingular reprezentat de primele n ecuatii din(3.87) 17. Pe scurt, avem

x∗ = [(R′)−1 0]QHb (3.91)

sau echivalentx∗ = (R′)−1Q′Hb. (3.92)

Procedural, solutia problemei CMMP (3.77) este determinata de relatiile (3.86)si (3.90). Tinand cont de structura lui QH din (3.85), se vede usor ca transformarile(3.86) pot fi efectuate (pe loc ın b), utilizand o procedura de tip MQR. Schema decalcul astfel obtinuta este urmatoarea

SQR % Calculul pseudosolutiei x = A+b

1. Pentru k = 1 : n1.b← QH

k b2. Se rezolva sistemul triunghiular R′x = b(1 : n)

17Rationamentul de mai sus constituie o noua demonstratie, de data aceasta constructiva, ateoremei 3.3. Relatiile (3.80-3.82) si (3.88-3.90) se corespund ın mod evident.

Page 180: metode de calcul numeric matriceal. algoritmi fundamentali

166 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Cu referire la algoritul 3.5, care utilizeaza reflectori hermitici, implementareaschemei SQR are loc astfel.

Algoritmul 3.8 (SQR – problema liniara a celor mai mici patrate)(Se da un vector b ∈ Cm. Utilizand iesirea algoritmului 3.5, se calculeazaın x solutia ın sens CMMP a sistemului liniar Ax = b. Se presupune camatricea A este monica.)

% se aplica transformarile vectorului b1. Pentru k = 1 : n

1. t = akk

2. akk ← ukk = βk

3. α = − (∑m

i=k uikbi) /βk

4. bi ← bi + αuik, pentru i = k : m5. akk = t

% calculul solutiei problemei CMMP2. Pentru k = n : −1 : 1

1. xk = (bk −∑n

j=k+1 akjxj)/akk

Comentarii. In cazul real, algoritmul 3.8 necesita Nop = Nm + n2 = 4mn− n2

operatii. Modul de apel este x = SQR(A, β, b). Retinem ca determinarea pseudo-solutiei prin apelarea succesiva a procedurilor QR si SQR necesita asimptotic NQR

operatii, 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 pseudosolutiei.

1. Pentru k = 1 : s1. CRF(A(k : m, k), τk, b(k : m))

2. x = UTRIS(A(1 : n, :), b(1 : n))

Pe baza informatiilor furnizate de schema SQR, putem calcula usor si reziduulde norma minima r∗ = b−Ax∗, obtinand astfel solutia completa a sistemului extins(3.83). Din (3.88) si (3.90) obtinem imediat

r∗ = Q

[0d′′

]

, (3.93)

ın care d′′ are semnificatia din (3.86). Prin urmare, avand ın vedere ca vectorultransformat b← d = QHb a fost deja calculat la pasul 1, r∗ poate fi obtinut (pe locın b) completand schema SQR cu secventa

3. b(1 : n) = 04. Pentru k = n : −1 : 1

1. b← Qkb

Page 181: metode de calcul numeric matriceal. algoritmi fundamentali

3.5. REZOLVAREA PROBLEMEI CMMP 167

In rezumat, fiind date matricea A si vectorul b, calculul pseudosolutiei x∗ asistemului Ax = b si al reziduului de norma minima r∗ consta ın triangularizareaortogonala a matricei A, urmata de aplicarea schemei SQR completata asa cum amspus mai sus. Utilizand procedurile cunoscute QR, MQR si UTRIS, algoritmulde 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) = 04. b = MQR(′nu′, A, β, b)

Subliniem ca la pasul 2 pseudosolutia x∗ nu se calculeaza pe locul membruluidrept b, tocmai avand ın vedere utilizarea acestui spatiu la pasii 3 si 4 pentrumemorarea lui r∗. Deseori ın practica, pentru aprecierea gradului de incompati-bilitate a sistemului Ax = b, este suficient calculul normei ρ = ‖r∗‖. Evident,avem ρ = ‖b(n + 1 : m)‖, unde b este vectorul transformat obtinut la pasul 1 alprocedurilor SQR sau CMMP.

3.5.2 Calculul proiectiilor

In numeroase aplicatii prezinta interes calculul proiectiilor ortogonale b1 si b2 aleunui vector b pe subspatiile S = ImA si respectiv S⊥ = KerAH .

Din demonstratia teoremei 3.5 (vezi figura 3.6) a rezultat ca proiectia b2 a lui b peS⊥ coincide cu reziduul de norma minima r∗, deci se calculeaza aplicand proceduraCMMP din care pasul 2 se omite 18.

In mod similar proiectia b1 a lui b pe S, care coincide cu vectorul de cea maibuna aproximatie b∗ = Ax∗, are expresia

b∗ = Q

[d′

0

]

, (3.94)

deci se calculeaza aplicand aceeasi procedura CMMP ın care pasul 3 se ınlocuiestecu

3′. b(n+ 1 : m) = 0.

Subliniem ca, pentru siguranta calculului, proiectiile b1 = b∗ si b2 = r∗ sedetermina ıntotdeauna utilizand relatiile (3.86), (3.93) si (3.94), ın care au loc numaitransformari ortogonale. In special, nu se recomanda utilizarea relatiilor ”evidente”b∗ = Ax∗ si r∗ = b−Ax∗ sau b1 + b2 = b, aparent mai simple, deoarece acestea dinurma pot conduce la erori catastrofale de anulare prin scadere. De asemenea, esteesential sa retinem ca determinarea proiectiilor precum si calculul pseudosolutieise efectueaza operand direct asupra vectorului b, fara a forma explicit proiectoriiortogonali P1, P2 sau pseudoinversa A+.

18Tocmai ın virtutea acestei semnificatii geometrice remarcabile, reziduul r∗ = b−Ax∗ poate ficalculat fara a determina ın prealabil pseudosolutia x∗. In general, toate calculele se fac utilizandexclusiv informatiile obtinute la pasii 0 si 1 ai procedurii CMMP, fara nici o referire la dateleinitiale A, b care, de altfel, au si fost distruse.

Page 182: metode de calcul numeric matriceal. algoritmi fundamentali

168 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

3.5.3 Problema CMMP cu membru drept multiplu

Fie acum A ∈ Cm×n o matrice data si B ∈ Cm×p o matrice arbitrara cu p coloane,unde p ≥ 1. Problema rezolvarii ın sensul CMMP a sistemului cu membru dreptmultiplu AX = B consta ın determinarea pseudosolutiei X∗ ∈ Cn×p astfel ıncatnorma Frobenius a reziduului matriceal R = B −AX sa fie minima, pe scurt

‖B −AX∗‖F = minX∈Cn×p

‖B −AX‖F . (3.95)

Analiza acestei probleme este simpla. Partitionand matricele B, X si R pecoloane, cu notatii clare putem scrie rj = bj −Axj , j = 1 : p. Pe de alta parte, prindefinitia normei Frobenius avem

‖R‖2F =

p∑

j=1

‖rj‖2. (3.96)

In consecinta, problema de minimizare (3.95) este echivalenta cu p probleme CMMPde tip (3.77), avand aceeasi matrice A si membri drepti diferiti, i.e.

‖bj −Ax∗j‖ = minx∈Cn

‖bj −Ax‖, j = 1 : p. (3.97)

Prin urmare, daca matricea A este monica, atunci conform teoremei 3.3 fiecareproblema (3.97) are o solutie unica x∗j = A+bj, j = 1 : p, iar matriceaX∗ = [x∗1 . . . x∗p], rezultata prin agregarea acestora constituie solutia unica

X∗ = A+B (3.98)

a problemei (3.95).Procedural, pseudosolutia X∗ ∈ Cn×p se calculeaza simplu, efectuand o sin-

gura data triangularizarea ortogonala a matricei A si aplicand apoi repetat algo-ritmul de rezolvare SQR fiecarei coloane B(:, j), j = 1 : p, a matricei B. Dacaın plus se doreste calculul reziduului de norma Frobenius minima R∗ = B − AX∗,atunci se aplica procedura CMMP ın care vectorul b se ınlocuieste peste tot cu ma-tricea B. Desigur, ın acest nou context pot fi aplicate avantajos (pe calculatoarelecu memorie ierarhica) procedurile bloc de triangularizare ortogonala si aplicare atransformarilor, expuse ın sectiunea 3.4.4.

3.5.4 Calculul pseudoinversei

Matricea pseudoinversa A+, definita prin (3.78) are multe proprietati interesantesi, ın principiu, poate fi calculata ın multe feluri.

In primul rand, utilizand relatia (3.79), constatam imediat ca

1 A+A = In2 AA+ = (AA+)H .

Prima relatie afirma ca A+ este o inversa la stanga a matricei A; ın particular,rangA+ = n, deci A+ este epica. A doua relatie, ın combinatie cu prima, arata

Page 183: metode de calcul numeric matriceal. algoritmi fundamentali

3.5. REZOLVAREA PROBLEMEI CMMP 169

ca matricea hermitica P1 = AA+ coincide cu proiectorul ortogonal pe subspatiulS = ImA. Prin urmare, relatiile 1 si 2 determina unic matricea A+ cu expresia(3.79). Din nefericire, (3.79) este improprie din punct de vedere numeric, deoareceimplica inversarea gramianului G = AHA.

In al doilea rand, punand B = Im din (3.98) gasim X∗ = A+. Prin urmare,avand ın vedere (3.95), A+ este solutia unica a problemei de minimizare

‖Im −AA+‖F = minX∈Cn×m

‖Im −AX‖F . (3.99)

Nici aceasta constatare, desi teoretic extrem de interesanta, nu are ınsa utilitatecalculatorie. Determinarea lui A+ prin rezolvarea sistemului AX = Im utilizandprocedura CMMP este evident neeficienta, deoarece aplicarea transformarilor de lapasul 1 nu tine seama de structura speciala a membrului drept B = Im.

In sfarsit, din (3.78), prin identificare cu (3.91), (3.92) rezulta

A+ = [(R′)−1 0]QH , respectiv A+ = (R′)−1Q′H , (3.100)

ın care apar direct elementele factorizarii QR a matricei A. In consecinta, A+

poate fi calculata efectuand triangularizarea ortogonala a matricei A si utilizandinformatia astfel obtinuta pentru a explicita oricare dintre relatiile (3.100).

a) In primul caz se calculeaza inversa matricei triunghiulare R′ si apoi se aplicatransformarea QH la dreapta inversei extinse cu zerouri, utilizand o procedura detip MQRd.

b) In al doilea caz se acumuleaza matricea Q′ utilizand procedura GQR si apoise rezolva sistemul superior triunghiular R′A+ = Q′H 19.

Detaliile de implementare precum si analiza algoritmilor de calcul astfel obtinutisunt propuse cititorului ca exercitii.

Intrucat matricea A+ este rareori necesara ca atare ın calcule, iar formarea saexplicita este costisitoare, ın practica se recomanda evitarea determinarii lui A+ ınfavoarea rezolvarii ın sens CMMP a unui sistem AX = B definit ın mod adecvat. Oobservatie similara este valabila relativ la proiectorii P1 si P2. Calculul proiectiilorse face direct, dupa cum am aratat ın sectiunea 3.5.2.

3.5.5 Alte metode de rezolvare a problemei CMMP

Calculul pseudosolutiei x∗ a sistemului Ax = b se poate face utilizand factorizareaQR a matricei furnizata de procedura Gram-Schmidt modificata din sectiunea 3.4.4.Pe scurt, avem A = Q′R′, unde ambele matrice Q′ si R′ sunt formate explicit deprocedura MGS, iar relatia (3.92) spune ca x∗ = (R′)−1Q′Hb. Partitionand Q′ pecoloane, schema de calcul este urmatoarea.

SMGS % Calculul pseudosolutiei.1. Pentru j = 1 : n

1. xj ← dj = qHj b

2. Se rezolva sistemul triunghiular R′x = d′

19Amintim ca procedura GQR calculeaza Q′ pe loc ın A. Prin urmare, matricea Y = (A+)H

poate fi obtinuta tot ın A, rezolvand sistemul inferior triunghiular Y (R′)H = Q′.

Page 184: metode de calcul numeric matriceal. algoritmi fundamentali

170 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Numarul de operatii este Nop = 2mn+ n2, prin urmare calculul pseudosolutieiprin apelarea succesiva a procedurilor MGS si SMGS cere asimptotic NGS > NQR

operatii.

Desigur, procedura de triangularizare ortogonala este mai economica deoarecenu formeaza explicit matricea Q′, totusi simplitatea procedurii MGS este uneoriatractiva. Realmente neplacuta aici este absenta matricei de completare Q′′ pecare procedura MGS nu o poate calcula. In consecinta, calculul reziduului de normaminima nu se poate face acum decat pe baza relatiei r∗ = b−Ax∗, ceea ce necesitapastrarea 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 apropiati, atunci calculullui r∗ este amenintat de erori catastrofale si, de aceea, trebuie efectuat lucrand ındubla precizie (vezi sectiunea 2.7).

3.6 Sisteme liniare subdeterminate

Rezolvarea sistemelor liniare subdeterminate necesita o procedura specifica de tri-angularizare ortogonala la dreapta, pe care o vom expune ın prima parte a acesteisectiuni. In continuare vom construi factorizarea LQ corespunzatoare, iar ın finalvom prezenta procedura de rezolvare a problemelor CMMP de tip (3.5).

3.6.1 Triangularizarea ortogonala la dreapta

Propozitia 3.3 Oricare ar fi A ∈ Cm×n, exista o matrice unitara V H not

= Z ∈Cn×n astfel ıncat matricea

AV H = L, respectiv AZ = L, (3.101)

este inferior triunghiulara.

In cazul real A ∈ Rm×n, matricea de transformare V T = Z poate fi aleasa (realasi) ortogonala, deci L rezulta reala.

Pe scurt, orice matrice A este unitar echivalenta la dreapta cu o matrice inferiortriunghiulara. Prima relatie arata ca A poate fi scrisa sub forma unui produsA = LV , unde V este unitara, iar L este inferior triunghiulara. In calculul numerico relatie de acest tip se numeste factorizare LQ, de aceea procedurile de calculstabilite pe baza relatiei fundamentale (3.101) vor fi notate cu sigla LQ.

Demonstratia rezulta imediat aplicand teorema 3.1 matricei B = AH .Intr-adevar, daca V AH = R este superior triunghiulara, atunci are loc (3.101),unde L = RH este evident inferior triunghiulara 20. ♦

Avand ın vedere ca operatia de transpunere si conjugare este costisitoare, ınpractica profesionala se opereaza direct asupra matricei date A ∈ Cm×n. Notam cade obicei s = min(m,n) si fie Zk reflectorii utilizati ın scopul anularii elementelor

20Corespondenta A→ AH se numeste dualitate, iar rezultatele si relatiile asociate prin aceastacorespondenta se numesc duale. De exemplu, relatiile (3.53) si (3.101) sunt duale.

Page 185: metode de calcul numeric matriceal. algoritmi fundamentali

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 = Z1Z2 . . . Zs (3.102)

iar schema de triangularizare este urmatoarea

LQ % Schema generala de triangularizare LQ

1. Pentru k = 1 : s1. Se genereaza Zk a.ı. (AZk)kj = 0, j = k + 1 : n2. A← AZk.

• In cazul real sau ın cazul utilizarii reflectorilor hermitici (Zk = ZHk ), compo-

nentele vkj , j = k + 1 : n, ale vectorilor Householder vk se memoreaza natural pepozitiile elementelor anulate. Algoritmul rezultat poate fi redactat astfel.

Algoritmul 3.9 (LQ – triangularizare ortogonala la dreapta cu re-flectori hermitici) (Se da A ∈ Cm×n. Se efectueaza triangularizareaortogonala la dreapta a matricei A, i.e. AZ = L, unde Z = Z1Z2 . . . Zs,iar Zk sunt reflectori hermitici. Partea esentiala vk(k+1 : n) a vectorilorHouseholder vk se memoreaza pe pozitiile corespunzatoareA(k, k + 1 : n).La aplicarea ulterioara a transformarilor se tine seama ca vkk = βk,k = 1 : s. Elementele nenule ale matricei inferior triunghiulare Lsuprascriu elementele corespunzatoare din triunghiul inferior al matri-cei A.)

1. Pentru k = 1 : s1. βk = 02. Daca k < n atunci

1. σ = ‖A(k, k : n)‖2. Daca σ 6= 0 atunci

1. Daca akk 6= 0 atunci σ ← akk

|akk|σ

2. akj ← vkj = akj/σ, pentru j = k : n3. βk ← vkk = 1 + akk

4. Pentru i = k + 1 : m

1. α = −(∑n

j=k aijvkj

)

/βk

2. aij ← aij + αvkj , pentru j = k : n% elementul diagonal5. akk = −σ

Comentarii. In cazul real algoritmul 3.9 necesita NLQ = 2nm2 −m3/3 operatiisi este numeric stabil, dupa cum vom arata ın sectiunea 3.8. Modul de apel este[A, β] = LQ(A), unde β este vectorul real cu componentele βk, k = 1 : s, iar Aapare ca tablou de intrare-iesire. ♦

•• In cazul utilizarii reflectorilor complecsi, detaliile sunt propuse cititorului caexercitiu.

Page 186: metode de calcul numeric matriceal. algoritmi fundamentali

172 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

3.6.2 Factorizarea LQ

In aceasta sectiune construim factorizarea LQ a unei matrice A ∈ Cm×n de forma

generala.In cazul m ≤ n, relatiile (3.101) si (3.102) pot fi scrise sub forma

A = LV, L = [ L′︸︷︷︸

m

0︸︷︷︸

n−m

], (3.103)

unde matricea

V = ZHm . . . ZH

2 ZH1 (3.104)

este unitara, iar L′ este inferior triunghiulara de ordin m. Partitionand V = ZH

conform cu L, i.e.

V =

[V ′

V ′′

]mn−m , Z = [ Z ′

︸︷︷︸

m

Z ′′︸︷︷︸

n−m

] (3.105)

din (3.103) deducem

A = L′V ′, (3.106)

unde evident V ′ = Z ′H are liniile ortogonale, i.e. V ′V ′H = Im.

Propozitia 3.4 Orice matrice A ∈ Cm×n cu m ≤ n poate fi scrisa sub forma(3.106), unde V ′ ∈ Cm×n are liniile ortogonale, iar L′ ∈ Cm×m este inferiortriunghiulara. Prin definitie, relatia (3.106) constituie factorizarea LQ a ma-tricei A. Daca A este epica, atunci L′ rezulta inversabila si reciproc.

Demonstratia ultimei afirmatii este evidenta. Mai mult, daca A este epica,atunci matricea hermitica G = AAH este pozitiv definita, prin urmare considerandfactorizarea Cholesky G = L1L

H1 si definind V1 = L−1

1 A, putem stabili cu usurintaunicitatea factorizarii LQ, ın care factorul triunghiular L′ are elementele diagonalepozitive. ♦

In general, matricea hermitica pozitiv semidefinitaG = AAH se numeste gramianal (liniilor) lui A. Observatia 3.4 se reformuleaza corespunzator ın noul context.

Daca matricea A este epica, atunci matricea Z ′′ din (3.105) are o semnificatiegeometrica remarcabila. Din (3.101) sau (3.103) rezulta AZ = [L′ 0], unde Z arestructura (3.105), deci

AZ ′′ = 0. (3.107)

Mai mult, Z ′′ ∈ Cn×(n−m) are coloanele ortogonale, deci constituie o baza ortogonalaa subspatiului N = KerA. Proiectorul ortogonal pe N este P2 = Z ′′Z ′′H .

In mod similar, matricea Z ′ ∈ Cn×m (care, ın (3.105), completeaza Z ′′ panala o matrice ortogonala) constituie o baza ortogonala a subspatiului complementarN⊥ = ImAH . Proiectorul ortogonal pe S este P1 = AH(AAH)−1A sau mai simpluP1 = Z ′Z ′H . Pe scurt, partitia (3.105) corespunde descompunerii ortogonale

Cn = ImAH ⊕KerA. (3.108)

Page 187: metode de calcul numeric matriceal. algoritmi fundamentali

3.6. SISTEME LINIARE SUBDETERMINATE 173

Acumularea transformarilor

In cazul m ≤ n, factorizarea LQ a matricei A poate fi determinata utilizand pro-cedura de triangularizare ortogonala la dreapta din sectiunea anterioara. Factorultriunghiular L′ se obtine ca atare ın triunghiul inferior al matricei A, iar factorulortogonal V ′ poate fi calculat sub forma

V ′ = [Im 0]V = [Im 0]ZHm . . . ZH

2 ZH1 , (3.109)

aplicand urmatoarea schema evidenta de acumulare a transformarilor.

GLQ % Acumularea primelor n linii V ′ ale matricei V = ZH , m ≤ n.

1. V ′ = [In 0]2. Pentru k = m : −1 : 1

1. V ′ ← V ′ZHk

Cu referire la algoritmul 3.9, calculul poate fi organizat pe loc ın tabloul A,iar procedura poate fi scrisa cu usurinta de cititorul interesat. Mentionam ınsa caformarea explicita a matricelor V ′ sau Z ′, Z ′′ etc. este de regula contraindicata.Aproape ıntotdeauna forma factorizata (3.102) este suficienta.

Aplicarea transformarilor

La fel ca ın sectiunea 3.4, matricea unitara Z generata de algoritmul de triangu-larizare LQ aplicat matricei A se utilizeaza pentru a transforma adecvat o altamatrice data B.

Aplicarea transformarii

B ← ZB = Z1Z2 . . . ZsB (3.110)

se face partitionand B pe coloane:

MLQ % Aplicarea transformarii B ← ZB, unde Z = Z1Z2 . . . Zs.

1. Pentru k = s : −1 : 11. B ← ZkB

Procedand ın acelasi spirit, toate rezultatele din sectiunea 3.4 pot fi reformulateın contextul factorizarii LQ. Stabilirea versiunii la nivel de bloc a procedurii detriangularizare la dreapta precum si a procedurilor de ortogonalizare Gram-Schmidtsunt propuse cititorului ca exercitii.

Factorizarea RQ

In unele aplicatii matricea A este adusa la forma superior triunghiulara ın raportcu diagonala secundara care ıncepe din coltul dreapta-jos, i.e.

AZ = R, (3.111)

unde rij = 0, j < n −m+ i, i = 1 : m, iar Z este unitara. (Pentru simplitate ampresupus m ≤ n.)

Page 188: metode de calcul numeric matriceal. algoritmi fundamentali

174 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

Procesul de triangularizare la dreapta parcurge liniile ın ordine inversa, ıncepandcu ultima si anuleaza elementele situate la stanga diagonalei secundare utilizandreflectori modificati. Notand reflectorii cu indicele liniei ın care se pastreaza vectoriiHouseholder corespunzatori, putem scrie

Z = Zm . . . Z2Z1, (3.112)

iar procedura de calcul poate fi rezumata astfel.

RQ % Schema de triangularizare RQ, cazul n > m

1. Pentru k = m : −1 : 11. Se genereaza Zk a.ı. (AZk)kj = 0, j = 1 : n−m+ k − 12. A← AZk

La pasul 1.1 se utilizeaza o procedura de tip mRFG (vezi tabelul 3.1), iar lapasul 1.2 se modifica numai primele n −m + k elemente din liniile i = 1 : k − 1,utilizand procedura corespunzatoare mRF.

Aplicatiile procedurii de triangularizare RQ sunt perfect similare cu aplicatiiledescrise mai sus ale procedurii LQ.

3.6.3 Rezolvarea sistemelor subdeterminate

Revenim acum la problema (3.5) din sectiunea introductiva a acestui capitol. FieA ∈ Cm×n si b ∈ Cn. Problema consta ın determinarea solutiei normale a sistemuluiAx = b, i.e. a unui vector x∗ ∈ Cn astfel ıncat

‖x∗‖ = minAx=b

‖x‖. (3.113)

Conditiile de existenta si unicitate ale solutiei normale pot fi formulate astfel.

Teorema 3.4 Oricare ar fi b ∈ Rm, problema (3.113) are o solutie unica daca sinumai daca A este epica, i.e. m ≤ n si rangA = m.

In acest caz, solutia normala x∗ a sistemului Ax = b poate fi scrisa ın forma

x∗ = A+b, (3.114)

ın care matricea A+ este prin definitie (pseudo)inversa normala a lui A si areexpresia

A+ = AT (AAT )−1. (3.115)

Demonstratia rezulta usor (cel putin ın cazul real) utilizand metodele clasice deminimizare cu restrictii (problema (3.113) este extrem de simpla). Noi vom procedadirect, stabilind pe rand a) unicitatea si b) existenta globala a solutiei x∗.

a) Pentru a demonstra unicitatea, nu e necesar sa presupunem ca matricea Aeste epica, ci doar ca

b ∈ ImA, (3.116)

i.e. multimea X a solutiilor sistemului Ax = b nu e vida. Desigur, ın limbajgeometric, X este planul (sau varietatea liniara) de ecuatie Ax = b. Mai precis,

Page 189: metode de calcul numeric matriceal. algoritmi fundamentali

3.6. SISTEME LINIARE SUBDETERMINATE 175

-

:

N = KerA

x2

x

x∗ = x1N⊥ 0

”planul”Ax = b

Fig. 3.7: Forma generala a solutiilor sistemului subdeterminat Ax = b

teorema 1.3 din capitolul 1 afirma ca X = x0 + KerA, unde x0 este o solutie par-ticulara. In consecinta, conform lemei proiectiei ortogonale, solutia x∗ a problemei(3.113) coincide cu piciorul perpendicularei din origine pe planul X si ca atare esteunic determinata, vezi figura 3.7.

La fel ca ın demonstratia teoremei 3.3, aceste consideratii geometrice pot fiexprimate analitic. Planul X este paralel cu subspatiul N = KerA, deci x∗ ⊥ KerAsau x∗ ∈ N⊥ = ImAH , i.e. exista (cel putin) un y∗ ∈ Cm astfel ıncat x∗ = AHy∗.(In interpretare variationala, y∗ este vectorul multiplicatorilor Lagrange asociatirestrictiilor egalitate Ax = b din (3.113).) In definitiv avem

[In AH

A 0

] [x∗

−y∗]

=

[0b

]

, (3.117)

de unde, eliminand x∗ rezulta

AAHy∗ = b, x∗ = AHy∗. (3.118)

b) Existenta globala a lui x∗ este asigurata, i.e. (3.116) are loc oricare ar fib ∈ Cm, daca si numai daca A este epica. In acest caz, matricea G = AAH estepozitiv definita deci inversabila, iar (3.114) si (3.115) rezulta din (3.118). ♦

Observatia 3.6 Sistemul extins (3.117) si sistemul normal (3.118) au o semnificatiesimilara cu cea a sistemelor (3.83) si respectiv (3.84) din observatia anterioara. Siaici gramianul G = AAH este o matrice rau conditionata, astfel ıncat, ın general,calculul solutiei normale prin rezolvarea sistemului (3.118) nu este recomandabil. ♦

Calculul solutiei normale

Rezolvarea problemei de minimizare cu restrictii (3.113) se poate face utilizandinformatiile furnizate de algoritmul de triangularizare ortogonala

AZ = [L′ 0], Z = Z1Z2 . . . Zm, (3.119)

Page 190: metode de calcul numeric matriceal. algoritmi fundamentali

176 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

unde Z este unitara, iar L′ este inferior triunghiulara inversabila. Notam

x = Zu, u =

[u′

u′′

]mn−m (3.120)

si scriem sistemul Ax = b sub forma echivalenta

[L′ 0]

[u′

u′′

]

= b, (3.121)

Relatia de mai sus arata ca, ın procesul de minimizare din (3.113), vectorul u′ = u′∗

este fixat prin

Lu′∗ = b, (3.122)

iar u′′ este liber.Pentru a determina solutia normala x∗, consideram (3.120), unde Z este orto-

gonala, deci ‖Zu‖ = ‖u‖. Avem

‖x‖2 = ‖Zu‖2 = ‖u′∗‖2 + ‖u′′‖2 ≥ ‖u′∗‖2. (3.123)

Efectuand minimizarea ın raport cu u′′, obtinem evident

u′′∗ = 0. (3.124)

Prin urmare solutia normala este

x∗ = Z

[(L′)−1b

0

]

, (3.125)

sau

x∗ = Z ′(L′)−1b. (3.126)

Tinand seama de structura matricei Z din (3.119), se vede usor ca transformarea(3.125) poate fi efectuata pe loc ın x utilizand o procedura de tip MLQ. Schema decalcul este urmatoarea

SLQ % Calculul solutiei normale x = A+b

1. Se rezolva sistemul triunghiular L′x(1 : m) = n2. x(m+ 1 : n) = 03. Pentru k = m : −1 : 1

x← Zkx

Cu referire la algoritmul 3.9, care utilizeaza reflectori hermitici, implementareaschemei de mai sus are loc astfel.

Algoritmul 3.10 (SLQ – rezolvarea sistemelor subdeterminate) (Seda un vector b ∈ Cm. Utilizand iesirea algoritmului 3.9, se calculeazasolutia normala x a sistemului liniar Ax = b. Se presupune ca matriceaA este epica.)

Page 191: metode de calcul numeric matriceal. algoritmi fundamentali

3.7. CONDITIONAREA PROBLEMELOR CMMP 177

% se rezolva sistemul inferior triunghiular (3.122)1. Pentru k = 1 : m

1. xk = (bk −∑k−1

j=1 akjxj)/akk

% calculul solutiei normale2. x(m+ 1 : n)← 03. Pentru k = m : −1 : 1

1. t = akk

2. akk = βk

3. α← −(∑n

j=k vkjxj

)

/βk

4. Pentru j = k : n1. xj ← xj + αvkj

5. akk = t

Calculul proiectiilor (pe ImAH si KerA), rezolvarea sistemelor subdeterminatecu membru drept multiplu precum si calculul pseudoinversei normale A+ se facadaptand ın mod corespunzator metodologia din sectiunea 3.5. Desigur, acum A+

este o inversa la dreapta a lui A, i.e. AA+ = I.

3.7 Conditionarea problemelor CMMP

In aceasta sectiune prezentam cateva rezultate privind sensibilitatea solutiilor pro-blemelor de calcul abordate anterior ın raport cu variatia datelor de intrare 21.

3.7.1 Preliminarii

Consideram sistemul liniar

Ax = b, (3.127)

unde A ∈ Rm×n este o matrice data, iar b ∈ Rn este un vector arbitrar. Notamr = rangA si presupunem ca matricea A este de rang maxim, i.e. r = s, undes = min(m,n) 22. In consecinta, conform teoremelor 3.5 si 3.6, sistemul (3.127) areo solutie ın sens CMMP unica

x∗ = A+b, (3.128)

unde matricea A+ are expresii diferite dupa cum m ≥ n sau m ≤ n.

Avand ın vedere concizia expunerii, ın cele ce urmeaza vom adopta o terminolo-gie precum si notatii cat mai uniforme. Vom spune ca A+ este inversa (ın sens

21Deoarece aceasta tematica are un caracter pur matematic, i.e. nu vizeaza calitatea algoritmilorde calcul, pe parcurs vom utiliza formulele cele mai convenabile pentru scopul propus.

22O proprietate P definita pe Rm×n se numeste tipica daca este generica si structural stabila,adica are loc ”aproape peste tot” (ın afara unei varietati algebrice) si se conserva oricare ar fimicile variatii ale (elementelor) matricei considerate.

De exemplu, ın cazul m = n, proprietatea de inversabilitate este generica (are loc peste totın afara varietatii definite de ecuatia detA = 0) si structural stabila (daca detA 6= 0, atuncidet(A + E) 6= 0, oricare ar fi perturbatia E suficient de mica). Pe scurt, matricele inversabile sunttipice ın Rn×n. Similar, matricele de rang maxim sunt tipice ın Rm×n.

Page 192: metode de calcul numeric matriceal. algoritmi fundamentali

178 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

CMMP a) matricei A si vom defini numarul de conditionare (la inversare) al lui Aprin

κ(A) = ‖A‖‖A+‖, (3.129)

unde ‖ · ‖ = ‖ · ‖2 este norma spectrala, indusa de norma (vectoriala) euclidiana‖x‖ = (xTx)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 definitia cunos-cuta a lui κ(A) din sectiunea 2.7 23.

Direct din (3.129) si (3.130),

(i) daca matricea A este ortogonala, atunci κ(A) = 1, i.e. matricele ortogonalesunt perfect conditionate la inversare.

Pe de alta parte, norma euclidiana precum si norma spectrala sunt ortogonalinvariante, deci

(ii) transformarile ortogonale nu modifica conditionarea datelor, i.e. avemκ(A) = κ(QTAZ), oricare ar fi matricele ortogonale Q si Z.

Proprietatile remarcabile (i) si (ii) explica folosirea intensiva a matricelor or-togonale ın calculul numeric. (Aceleasi proprietati de invarianta apar si ın normaFrobenius ‖ · ‖F , care este si ea ortogonal invarianta. Numarul de conditionareevaluat folosind aceasta norma este notat κF (A).)

Revenim acum la sistemul (3.127), ın care prin ipoteza matricea A este de rangmaxim si facem urmatoarele precizari.• In cazul m ≥ n matricea A este monica, iar A+ = (ATA)−1AT este epica.

Evident, avem A+A = In, deci A+ este o inversa la stanga a lui A, dar AA+ 6= Im,mai precis P1 = AA+ si P2 = Im − P1 sunt proiectorii (ortogonali) pe subspatiileS = ImA si respectiv S⊥ = KerA. De asemenea, este adevarat ca ‖A‖2 = ‖ATA‖sau, pe scurt,

‖A‖2 = ‖G‖, (3.131)

unde matricea simetrica G = ATA este gramianul (coloanelor) matricei A.•• In cazul m ≤ n matricea A este epica, iar A+ = AT (AAT )−1 este monica.

Evident, acum avem AA+ = Im, deci A+ este o inversa la dreapta a lui A, iarP1 = A+A si P2 = Im − P1 sunt proiectorii pe subspatiile N⊥ = ImAT si respectivN = KerA. De asemenea, are loc relatia (3.131), unde matricea G = AAT estegramianul (liniilor) matricei A.

Putem acum formula concis primele noastre rezultate.

Propozitia 3.5 Daca A ∈ Rm×n este de rang maxim, atunci

κ(G) = κ2(A), (3.132)

unde G este gramianul matricei A.

23Acolo am evaluat κ(A) utilizand normele ‖ · ‖1 sau ‖ · ‖∞, relativ mai simple. In acelasi scop,aici vom utiliza norma spectrala, care, dupa cum stim din capitolul 1, este ortogonal invarianta.Anticipand rezultate din capitolul 5, precizam ca ın general norma spectrala ‖A‖ coincide cuvaloarea singulara maxima a matricei A, notata de obicei σ1, iar numarul de conditionare esteκ(A) = σ1/σr ≥ 1, unde σr este cea mai mica valoare singulara nenula a lui A.

Page 193: metode de calcul numeric matriceal. algoritmi fundamentali

3.7. CONDITIONAREA PROBLEMELOR CMMP 179

Demonstratie. Notam cu H gramianul lui A+. In cazul m ≥ n, A+ este epica,deci

H = A+(A+)T = (ATA)−1ATA(ATA)−1 = (ATA)−1 = G−1.

Aplicand acum (3.131) lui A+ gasim

‖A+‖2 = ‖H‖ = ‖G−1‖, (3.133)

deci (3.132) rezulta direct, utilizand definitia lui κ(G) precum si relatiile (3.131) si(3.133). Cazul m ≤ n este similar; desigur acum H = (A+)TA+. ♦

Propozitia 3.6 Daca A ∈ Rm×n este de rang maxim, atunci matricea A = A+Eare aceeasi proprietate, oricare ar fi perturbatia E astfel ıncat

‖E‖ < κ−1(A)‖A‖. (3.134)

Demonstratie. In cazul m ≥ n putem scrie A = (Im + EA+)A, unde, conformunui rezultat cunoscut, matricea Im +EA+ este inversabila daca ‖EA+‖ < 1. Darıntotdeauna avem ‖EA+‖ ≤ ‖E‖ · ‖A+‖. Prin urmare, daca (3.134) are loc, atunciA si A sunt echivalente (la stanga), deci A rezulta monica o data cu A. In cazulm ≤ n scriem A = A(In +A+E) si rationam similar. ♦

Propozitia 3.5 arata ca sistemele normale (3.84) si (3.118) 24 sunt mult mairau conditionate decat sistemul dat (3.127) si explica de ce determinarea solutieix∗ prin rezolvarea acestor sisteme este ıntotdeauna contraindicata din punct devedere numeric. Propozitia 3.6 arata ca solutia x∗ este robusta, i.e. continua safie bine definita chiar daca matricea A a sistemului (3.127) sufera perturbatii Erelativ importante. Conform relatiei (3.134), aceste perturbatii sunt strict limitateın norma numai de κ(A). Pentru orientare, daca κ(A) = 103, atunci κ(G) = 106,deci la rezolvarea ın simpla precizie (i.e. cu t = 7 cifre zecimale semnificative) asistemului normal se pierd aproape toate cifrele semnificative. Pe de alta parte, daca‖A‖ ≈ 1, atunci perturbatiile admisibile ın A sunt numai de ordinul ‖E‖ < 10−3.

Concluziile obtinute mai sus subliniaza importanta deosebita a numarului deconditionare κ(A) pentru caracterizarea din punct de vedere numeric a problemei(3.127). In continuare vom preciza aceste concluzii, efectuand analiza cantitativa asensibilitatii (locale) a solutiei x∗ ın raport cu perturbatiile datelor. In consecinta,vom considera sistemul perturbat

(A+ E)x = b+ f, (3.135)

ın care perturbatiile 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∗ solutia ın sens CMMP a sistemului perturbat (3.136), problema

de analiza a sensibilitatii consta pe scurt ın a evalua diferenta ∆x = x∗ − x∗.24A caror matrice este evident G = AT A, respectiv G = AAT .

Page 194: metode de calcul numeric matriceal. algoritmi fundamentali

180 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

>b

θ

r∗ = b2

b1 = Ax∗

Fig. 3.8: θ este unghiul dintre vectorul b si subspatiul ImA

3.7.2 Sensibilitatea pseudosolutiei

Consideram sistemul (3.127) ın care presupunem ca A ∈ Rm×n este monica, iarAT b 6= 0.

Teorema 3.5 Sensibilitatea relativa a pseudosolutiei x∗ 6= 0 a sistemului (3.127)ın raport cu perturbatiile (3.136) poate fi evaluata acoperitor prin

‖x∗ − x∗‖‖x∗‖ ≤ (κ2(A)tgθ + κ(A))ǫA +

κ(A)

cos θǫb, (3.137)

unde θ are semnificatia din figura 3.8.

Demonstratie. Conform teoremei 3.5, pseudosolutia x∗ = x∗ + ∆x a sistemuluiperturbat (3.135) satisface relatia

(AT + ET )(A+ E)(x∗ + ∆x) = (AT + ET )(b + f).

Desfacand parantezele si tinand seama ca ATAx∗ = AT b, obtinem

(ATE + ETA)x∗ + (ATA)∆x = ET b+AT f + . . . ,

unde + . . . indica termeni neglijabili ın prima aproximatie, ca produs a doua can-titati mici. Prin urmare putem scrie

∆x = (ATA)−1ET (b−Ax∗)−A+Ex∗ +A+f, (3.138)

unde evident ATA = G este gramianul lui A, iar b − Ax∗ = r∗ este reziduul denorma minima. Evaluand ın norma ambii membri ai relatiei (3.138), gasim

‖∆x‖ ≤ ‖G−1‖ · ‖E‖ · ‖r∗‖+ ‖A+‖ · ‖E‖ · ‖x∗‖+ ‖A+‖ · ‖f‖,

de unde, tinand seama de relatiile (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 b1 = Ax∗, deci ‖b1‖ ≤ ‖A‖ · ‖x∗‖, iar din figura 3.8 se vede ca

‖r∗‖‖b1‖

= tgθ,‖b‖‖b1‖

=1

cos θ.

Page 195: metode de calcul numeric matriceal. algoritmi fundamentali

3.7. CONDITIONAREA PROBLEMELOR CMMP 181

Demonstratia este terminata. ♦

Observatia 3.7 Putem obtine usor o evaluare mai fina decat (3.137), tinandseama ca ın (3.138) perturbatiile E si f actioneaza diferentiat. In acest scop scriemE = E1 + E2, unde Eα = PαE, α = 1 : 2, sunt proiectiile (coloanelor) luiE pe subspatiile S si respectiv S⊥. Avem A+E = A+E1 (deoarece A+P2 == A+(I − AA+) = 0) precum si ET r∗ = ET

2 r∗ (deoarece r∗ = P2b iar P2 este

proiector ortogonal, i.e. P 22 = P2 si PT

2 = P2). In mod similar avem f = f1 + f2,unde fα = Pαf , α = 1 : 2, iar A+f = A+f1. Prin urmare, relatia (3.138) poate fiscrisa sub forma echivalenta, dar mai precisa

∆x = G−1ET2 r

∗ −A+E1x∗ +A+f1, (3.139)

unde E1, E2 si f1 apar acum ca perturbatii independente, iar f2 a disparut. Prinurmare, daca ın locul relatiei (3.136) consideram ca pentru α = 1 : 2 avem

‖PαE‖ ≤ ǫAα‖A‖, ‖Pαf‖ ≤ ǫbα‖b‖, (3.140)

atunci concluzia teoremei este

‖x∗ − x∗‖‖x∗‖ ≤ κ(A)

(

ǫA1 +ǫb1

cos θ

)

+ κ2(A) tgθ ǫA2 . (3.141)

Mai departe vom utiliza relatiile (3.137) si (3.141) sub forma relativ mai simpla

‖x∗ − x∗‖‖x∗‖ ≤ ǫ1κ(A) + ǫ2κ

2(A)tgθ, (3.142)

unde, ın acord cu (3.140), ǫα, α = 1 : 2, reprezinta estimari (ın norma spectrala)ale perturbatiilor datelor A si b la nivelul subspatiilor S si S⊥. ♦

In esenta, relatia (3.142) arata ca, din punctul de vedere al sensibilitatii pseudo-solutiei x∗, exista doua clase distincte de probleme CMMP, avand caracteristicinumerice net diferite.• Prima clasa contine problemele CMMP ”aproape” compatibile, la care reziduul

r∗ este mic ın norma fata de membrul drept b, deci θ ≈ 0. In acest caz, al doileatermen din (3.142) este neglijabil, deci practic sensibilitatea locala a pseudosolutieix∗ este proportionala cu numarul de conditionare κ(A) al lui A. In particular, dacam = n, atunci avem exact r∗ = 0 si θ = 0, iar (3.142) se reduce la relatia (2.47)stabilita ın sectiunea 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 norma fata de membrul drept b 25. In acest caz aldoilea termen din (3.142) este evident dominant, deci practic sensibilitatea localaa pseudosolutiei x∗ este proportionala cu patratul numarului de conditionare κ(A).Aceste probleme, specific de tip CMMP, sunt considerabil mai dificile din punct devedere numeric decat cele din prima clasa si necesita luarea unor masuri specialede precautie (vezi sectiunea urmatoare).

25Aceasta situatie poate fi usor detectata ın practica calculand ‖b‖ si ρ = ‖r∗‖, vezi comentariilela algoritmul 3.8. Subliniem ca ın acest caz sensibilitatea pseudosolutiei x∗ depinde nu numai dematricea A a sistemului (3.127) ci si de membrul drept b (prin intermediul lui θ).

Page 196: metode de calcul numeric matriceal. algoritmi fundamentali

182 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

In orice caz, relatia (3.142) subliniaza ca elementul determinant ın stabilireasensibilitatii pseudosolutiei este numarul de conditionare κ(A), de aceea ın practicase recomanda insistent evaluarea lui κ(A) ın cursul procesului de calcul. Desigur,daca am efectuat triangularizarea ortogonala QTA = R a lui A, atunci, beneficiindde invarianta ortogonala a normei spectrale, avem

κ(A) = κ(R), (3.143)

deci κ(A) poate fi estimat extrem de simplu, utilizand estimatorul de conditie pentrumatrice triunghiulare descris ın sectiunea 2.7. Acelasi rezultat poate fi obtinutaplicand procedura de triangularizare ortogonala cu pivotarea coloanelor, descrisaın sectiunea 3.9. In acest caz, o (sub)evaluare a lui κ(A) poate fi obtinuta prin simplainspectie, sub forma κ(A) = r11/rnn, unde rkk, k = 1 : n, sunt elementele diagonaleale factorului triunghiular R, dispuse pe diagonala ın ordine descrescatoare.

Pe de alta parte, reexaminand formula fundamentala (3.142), este util sa retinemca influenta perturbatiilor E si f asupra pseudosolutiei x∗ depinde de localizareaacestora ın raport cu subspatiile S si S⊥. De exemplu, daca ImE ⊂ ImA, atunci evi-dent E2 = P2E = 0, deci sensibilitatea lui x∗ este dictata de κ(A) (iar nu de κ2(A)),chiar daca reziduul r∗ este important. In unele aplicatii, aceste circumstante pot firealizate printr-o ”filtrare” prealabila adecvata a datelor de intrare, dar discutareaacestor tehnici depaseste scopurile expunerii de fata. In alta ordine de idei, esteevident ca perturbatiile inerente datorate erorilor de rotunjire actioneaza ın gen-eral aleator si ın orice caz nediferentiat ın raport cu S si S⊥, astfel ıncat de faptdependenta de κ2(A) nu poate fi niciodata eliminata complet ın situatiile practice,indiferent de masurile de precautie luate.

In rezumat, sensibilitatea pseudosolutiei este determinata de conditionarea ma-tricei A precum si de clasa θ a problemei CMMP considerate. De asemenea, eadepinde de tipul structural al perturbatiilor considerate.

3.7.3 Sensibilitatea solutiei normale

Consideram sistemul (3.127) ın care presupunem ca matricea A ∈ Rm×n este epica,iar b 6= 0.

Teorema 3.6 Sensibilitatea relativa a solutiei normale x∗ 6= 0 a sistemului (3.127)poate fi evaluata acoperitor prin

‖x∗ − x∗‖‖x∗‖ ≤ ǫ1κ(A), unde ǫ1 = 2ǫA + ǫb. (3.144)

Demonstratie. Procedam ca ın demonstratia teoremei 3.5. Conform cu teorema3.4, solutia normala x∗ = x∗ + ∆x a sistemului perturbat (3.135) satisface relatiile

(A+ E)(x∗ + ∆x) = b+ f, x∗ + ∆x = (AT + ET )(y∗ + ∆y),

unde Ax∗ = b si x∗ = AT y∗. Prin urmare, ın prima aproximatie avem

A∆x+ Ex∗ = f, ∆x = AT ∆y + ET y∗.

Page 197: metode de calcul numeric matriceal. algoritmi fundamentali

3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 183

Eliminand ∆y ıntre aceste relatii si notand A+ = AT (AAT )−1, obtinem

∆x = (In −A+A)ET y∗ −A+Ex∗ +A+f, (3.145)

unde y∗ = (AAT )−1b = (A+)Tx∗, iar ın paranteza din membrul drept recunoastemproiectorul ortogonal P2 = In −A+A pe subspatiul N = KerA. Deoarece P2 este omatrice simetrica cu valorile proprii 0 si 1, avem ‖P2‖ = 1. In consecinta, evaluandın norma ambii membri ai relatiei (3.145), gasim 26

‖∆x‖ ≤ ‖E‖ · ‖A+‖ · ‖x∗‖+ ‖A+‖ · ‖E‖ · ‖x∗‖+ ‖A+‖ · ‖f‖,

de unde, tinand seama de (3.136), rezulta (3.145). ♦

Observatia 3.8 Considerand proiectiile Eα = EPα, α = 1 : 2, ale liniilor matriceiE pe subspatiile N⊥ si N si procedand ca ın observatia 3.7, putem si aici scrie maiprecis

∆x = (In −A+A)ET2 y

∗ −A+E1x∗ +A+f. (3.146)

Avand ınsa ın vedere structura extrem de simpla a relatiei (3.145), utilitatea prac-tica a acestei precizari este aici limitata. ♦

In esenta, relatia (3.144) spune ca sensibilitatea locala a solutiei normale x∗ esteproportionala cu numarul de conditionare κ(A) al matricei A.

Avand ın vedere ca, ın ipoteza teoremei 3.6, sistemele subdeterminate suntıntotdeauna compatibile, relatia (3.144) poate fi considerata caz particular al relatiei(3.137), ın care r∗ = 0, deci θ = 0. Observam totusi ca demonstratiile celor douateoreme se bazeaza pe relatii diferite, iar coeficientul 2 din (3.144) nu apare ın(3.137). Prin urmare, apelul la (3.137) ofera mai curand o confirmare intuitiva,decat o justificare ferma a relatiei (3.144). In rest, implicatiile practice ale relatiei(3.144) sunt similare cu cele cunoscute din sectiunea 2.7.

In rezumat, sensibilitatea solutiei normale este dictata numai de conditionareamatricei A. In acest sens, problema rezolvarii sistemelor subdeterminate este relativsimpla.

3.8 Stabilitatea numerica a algoritmilor de

triangularizare ortogonala

In aceasta sectiune oferim cateva informatii de baza privind stabilitatea numerica aalgoritmilor de calcul prezentati anterior ın acest capitol. De asemenea, sprijiniti peanaliza sensibilitatii problemelor de calcul din sectiunea precedenta, facem catevaconsideratii privind acuratetea solutiilor calculate si descriem o procedura de ra-finare iterativa a acestor solutii.

26Amintim ca, ın norma spectrala avem ıntotdeauna ‖A‖ = ‖AT ‖.

Page 198: metode de calcul numeric matriceal. algoritmi fundamentali

184 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

3.8.1 Stabilitatea numerica a algoritmilor fundamentali

In general, analiza stabilitatii numerice a algoritmilor de calcul din acest capitol nuprezinta dificultati de esenta, ci numai obstacole pur tehnice. In principiu, ıncepandcu algoritmii de baza 3.1-3.4, ıntregul proces de calcul se reduce la o succesiunedeterminata de operatii aritmetice elementare, inclusiv extrageri de radical, pentrucare erorile de rotunjire sunt de ordinul εM ≈ 10−t, unde t este precizia de lucru,adica numarul de cifre zecimale semnificative, vezi capitolul 0. Prin urmare, efectul(cumulat al) acestor erori asupra rezultatelor obtinute ın urma unui proces de calculliniar poate fi apreciat utilizand parametrul generic

γcm = cmεM , (3.147)

unde m reprezinta numarul de operatii efectuate, iar c este o constanta de ordinulunitatii, ın general diferita de la caz la caz. Aici este esential sa subliniem ca ıntreagatehnica de analiza inversa a erorilor consta ın a converti acest efect direct al erorilorde rotunjire asupra solutiei calculate ın perturbatii echivalente la nivelul datelor.In consecinta, algoritmul analizat este (invers) numeric stabil daca solutia calculatacoincide cu solutia exacta a problemei de calcul cu datele ”putin” perturbate 27.

Rezultatele analizei pot fi sintetizate astfel. (Pentru demonstratii si rezultateaditionale, vezi [IX].)

1. Fie x ∈ Rm 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 semnuluilui σ de la pasul 2.2.1.

2. Fie x ∈ Rm un vector dat, U1 un reflector definit de vectorul Householderu, iar y = U1x. Vectorul transformat y, calculat de procedura RF, utilizand unvector Householder aproximativ u de tip (3.148) satisface relatia

y = (U1 + ∆U)x, unde ‖∆U‖F ≤ γcm. (3.149)

In continuare, utilizand rezultatele fundamentale 1 si 2, se poate demonstraafirmatia urmatoare. (Vezi schema de calcul MQR din sectiunea 3.4.)

3 Fie A ∈ Rm×n o matrice data, QT = Us . . . U2U1 o secventa de s reflectoridefiniti de vectorii Householder uk, k = 1 : s, iar B = QTA. Matricea transformataB, calculata utilizand schema de calcul

1. B = A2. Pentru k = 1 : s

1. B ← UkB

cu vectori Householder aproximativi uk de tip (3.148), satisface relatia

B = QT (A+ ∆A), unde ‖∆A‖F ≤ sγcm‖A‖F . (3.150)

27Peste tot mai departe notiunea de stabilitate numerica a unui algoritm concret va fi ınteleasaın acest sens, deci este implicit legata de o anume problema de calcul precizata.

Page 199: metode de calcul numeric matriceal. algoritmi fundamentali

3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 185

Pe scurt, algoritmul de aplicare a unei secvente de reflectori este (invers) numericstabil, iar perturbatia echivalenta relativa la nivelul matricei date A este

ǫA = sγcm, (3.151)

unde s este lungimea secventei, m este ordinul reflectorilor iar c este o constanta deordinul unitatii.

Pe baza proprietatii generale 3 se poate demonstra ca

4 Algoritmul de triangularizare ortogonala QR este numeric stabil. Mai precis,daca R este matricea superior triunghiulara calculata (ın cazul m ≥ n), atunciexista o matrice ortogonala Q astfel ıncat

QT (A+ ∆A) = R, unde ‖∆A‖F ≤ nγcm‖A‖F . (3.152)

O afirmatie similara este valabila relativ la algoritmul LQ de triangularizare ortog-onala la dreapta precum si la toti algoritmii de calcul derivati (cum ar fi GQR,MQR, SQR etc.). Subliniem ca, ın ultima instanta, toate procedurile mentionatesunt de tip 3, unde parametrii s = min(m,n) sim iau valori adecvate. In consecinta

5 Procedurile SQR (respectiv CMMP) si SLQ, care calculeaza pseudosolutia sirespectiv solutia normala x∗ a sistemului Ax = b, sunt numeric stabile. Perturbatiileechivalente 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 utilizeazareflectori bloc, respectiv rotatii 28.

3.8.2 Acuratetea solutiilor calculate

Vom combina acum rezultatele privind sensibilitatea solutiilor de tip CMMP, sta-bilite ın sectiunea 3.7, cu estimarile perturbatiilor echivalente la nivelul datelor, in-troduse de procedurile de calcul analizate mai sus. In acest fel vom obtine evaluari apriori ale acuratetei solutiilor calculate, i.e. ale abaterilor relative ale acestor solutiifata de solutiile exacte.• Consideram problema calculului pseudosolutiei x∗ a sistemului (3.127), ın care

matricea A este monica. Daca rezolvam aceasta problema utilizand proceduraSQR, bazata pe algoritmul de triangularizare ortogonala QR, atunci ın virtuteastabilitatii numerice inverse a acestei proceduri, pseudosolutia calculata x∗ coin-cide cu solutia exacta a problemei (3.127) cu datele perturbate ın acord cu (3.153).Aplicand teorema 3.5 (vezi relatiile (3.137)) conchidem ca

‖x∗ − x∗‖‖x∗‖ ≤ ǫ1κ(A) + ǫ2κ

2(A)tgθ, (3.155)

28 In cazul secventelor de rotatii disjuncte, estimarea (3.151) este independenta de lungimeasecventei [IX].

Page 200: metode de calcul numeric matriceal. algoritmi fundamentali

186 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

unde

ǫ1not= ǫA + ǫb

cos θ = nγcm(1 + 1cos θ ),

ǫ2not= ǫAtgθ = nγcmtgθ.

(3.156)

Relatia (3.155) arata ca ın final acuratetea solutiei calculate x∗ depinde atat deconditionarea κ(A) si clasa θ ale problemei CMMP considerate, cat si de nivelulerorilor ǫα, α = 1 : 2, introduse de algoritmul folosit pentru rezolvarea ei. Conformrelatiilor (3.155) si (3.136), acest nivel este determinat de dimensiunile m, n aleproblemei precum si de precizia de lucru εM continuta implicit de parametrul genericγcm (vezi (3.147)).

In general, evaluarile de tip (3.155), (3.156) sunt extrem de acoperitoare, dartotodata au marele merit de a sublinia ca ın situatiile dificile (care, dupa cum amvazut, pot fi detectate relativ usor ın practica) sunt necesare actiuni suplimentare(vizand e.g. lucrul ın dubla precizie, rafinarea iterativa a solutiei calculate x∗ etc.),chiar daca aceasta se obtine utilizand un algoritm numeric stabil cum este SQR.

•• Consideram acum problema, relativ mai simpla, a calculului solutiei normalex∗ a sistemului (3.127), ın care matricea A este epica. Conform relatiilor (3.154) si(3.144), solutia normala calculata x∗ satisface o relatie de forma

‖x∗ − x∗‖‖x∗‖ ≤ ǫ1κ(A), (3.157)

undeǫ1

not= 2ǫA + ǫb = mγcm. (3.158)

Mentionam ca, ın practica, acuratetea solutiei calculate ın acest mod se dovedestede 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 ınsectiunea 2.8, scalarea acestui sistem consta ın ınlocuirea sa cu sistemul echivalent

D1AD2x = D1b, (3.159)

ın care D1 si D2 sunt matrice inversabile (ın particular diagonale sau triunghiulare)alese ın mod adecvat.

Matricea D2 realizeaza scalarea coloanelor lui A, iar introducerea ei se reduce laschimbarea de variabila x = D2x. Prin urmareD2 nu altereaza pseudosolutia ın sensCMMP a sistemului considerat, mai precis daca x∗ este pseudosolutia sistemuluiscalat, atunci pseudosolutia sistemului initial poate fi recuperata utilizand relatiax∗ = D2x

∗.Din contra, matricea D1, care realizeaza scalarea liniilor lui A, atrage dupa sine

modificarea normei din Rm ın raport cu care se formuleaza problema CMMP si decia pseudosolutiei corespunzatoare. Intr-adevar, notand cu r = D1b−D1Ax reziduulsistemului scalat, avem r = D1r, deci

‖r‖2 = rTSrnot= ‖r‖2S , S = DT

1 D1,

Page 201: metode de calcul numeric matriceal. algoritmi fundamentali

3.8. STABILITATEA ALGORITMILOR DE TRIANGULARIZARE 187

ın care ‖ · ‖S este noua norma determinata de alegerea matricei D1. ProblemaCMMP ın raport cu norma ‖ · ‖S se numeste problema CMMP ponderata, iarrezolvarea ei se face aplicand sistemului scalat tehnicile de calcul expuse ante-rior. Subliniem ca pseudosolutia x∗ astfel obtinuta nu coincide cu pseudosolutiax∗ a problemei CMMP ın norma standard (corespunzatoare alegerii D1 = Im).In consecinta, scalarea pe linii ın problemele CMMP la care se doreste calcululpseudosolutiei x∗ este interzisa. Pe de alta parte, ın multe probleme, alegerea luiD1 este impusa de tipul zgomotelor de masura asociate problemei CMMP (veziexemplul 3.2), iar ın acest context matricea S are o semnificatie statistica precisa.

In problemele care privesc rezolvarea ın sens CMMP a sistemelor subdetermi-nate Ax = b, ın care matricea A este epica, situatia se inverseaza. Matricea D1

realizeaza o simpla scalare (pe linii) a sistemului de restrictii Ax = b si ca atare estepermisa ıntotdeauna. Din contra, matricea D2 modifica norma din Rn consideratala definirea solutiei normale, mai precis

‖x‖2 = xTTxnot= ‖x‖2T , T = D−T

2 D−12 ,

de aceea scalarea pe coloane a sistemelor subdeterminate la care se doreste calcululsolutiei normale ın raport cu norma standard este interzisa.

Din punctul de vedere al calculului numeric, alegerea matricelor de scalare D1,D2 urmareste echilibrarea sistemului ın sensul uniformizarii nivelului de eroareın elementele matricei A. In acest scop se recomanda evaluarea erorilor initialeE = [ǫij ] care afecteaza elementele lui A precum si determinarea matricelor D1, D2

astfel ıncat elementele matricei scalate D1ED2 sa aiba acelasi ordin de marime ǫ.(Daca matricea A este cunoscuta exact, atunci se poate lua ǫij = εMaij .) Pentrudetalii vezi [XIII].

3.8.4 Rafinarea iterativa a solutiei CMMP

Consideram din nou problema CMMP (3.127), ın care matricea A este monica.Pentru simplitate, ın continuare omitem indicele superior ∗, notand solutiile ın sensCMMP x∗ si x∗ cu x si respectiv x.

Presupunem ca am obtinut solutia aproximativa x, utilizand procedura CMMP,bazata pe algoritmul de triangularizare ortogonala

A← QTA =

[R1

0

]

, QT = Un . . . U2U1. (3.160)

In general, problema rafinarii iterative a solutiei aproximative x consta ın con-structia recurenta a unui sir xk, k = 0, 1, 2, . . ., convergent (ın precizia de lucru)catre solutia exacta x a problemei de calcul considerate.

In cazul m = n, stim din sectiunea 2.8 ca un pas al procesului de rafinare sedesfasoara conform urmatoarei scheme de principiu. (Pentru simplitate, omitemindicele de iterare k.)

% Se da x. Se determina aproximatia urmatoare x+.1. Se calculeaza reziduul r = b−Ax2. Se determina corectia ∆x rezolvand sistemul A∆x = r3. Se actualizeaza aproximatia x← x+ = x+ ∆x

Page 202: metode de calcul numeric matriceal. algoritmi fundamentali

188 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

In cazul m > n, schema de mai sus este, ın principiu, aplicabila ca atare sistemu-lui (3.127), dar ea se dovedeste eficienta numai daca acest sistem este aproape com-patibil, i.e. θ ≈ 0 (vezi discutia din sectiunea 3.7.2). In caz contrar, influenta rezidu-ului asupra solutiei este determinanta (ın acord cu relatiile (3.137) si (3.138)), decirafinarea iterativa trebuie sa se faca corectand simultan evolutia ambelor marimi.Altfel spus, ın problemele specific CMMP, cu reziduu mare, schema de corectieprezentata mai sus trebuie aplicata nu sistemului dat (3.127), ci sistemului extins(3.83).

In consecinta, presupunand data o solutie aproximativa (x, r) a sistemului extins,ın primul rand vom calcula reziduul corespunzator

[st

]

=

[b0

]

−[Im AAT 0

] [rx

]

, (3.161)

iar apoi vom determina corectiile ∆r si ∆x rezolvand sistemul[Im AAT 0

] [∆r∆x

]

=

[st

]

. (3.162)

Desigur, ın acest scop vom folosi triangularizarea ortogonala (3.160) a matricei A,deja calculata ın urma aplicarii procedurii CMMP, iar solutia (∆r,∆x) va fi obtinutaın locul membrului drept (s, t).

Pentru a vedea cum este posibil acest lucru, consideram prima ecuatie (3.162),i.e. ∆r + A∆x = s, pe care o premultiplicam cu QT , vezi (3.160). NotandQT ∆r = z, efectuand pe loc ın s transformarea

s← QT s (3.163)

si utilizand pentru vectorii z si s partitii adecvate, putem scrie[z1z2

]

+

[R1

0

]

∆x =

[s1s2

]

,

de unde deducem imediat

R1∆x = s1 − z1, z2 = s2. (3.164)

In continuare, pentru a determina z1 si ∆x, consideram a doua ecuatie (3.148),i.e. AT ∆r = t. Aici avem ∆r = Qz, iar din (3.160) rezulta ATQ = [RT

1 0], deci

RT1 z1 = t. (3.165)

Acum este clar ca dezideratele formulate mai sus relativ la rezolvarea sistemuluiextins (3.162) pot fi realizate procedand ın ordinea (3.163), (3.165), (3.164), dupacare ∆r rezulta utilizand relatia

∆r = Q

[z1z2

]

. (3.166)

In rezumat, schema de calcul pentru un pas al procesului de rafinare iterativaaplicat sistemului extins (3.83) este urmatoarea.

Page 203: metode de calcul numeric matriceal. algoritmi fundamentali

3.9. DESCOMPUNEREA ORTOGONALA COMPLETA 189

% Se dau (r, x). Se determina aproximatia urmatoare(r, x)← (r+, x+) = (r, x) + (∆r,∆x) .

% se calculeaza reziduul (3.161)1. s = (b −Ax)− r2. t = −AT r% se rezolva sistemul extins (3.162)3. s← QT s4. z1 = R−T t5. s1 ← s1 − z16. t← ∆x = R−1s17. s1 = z18. s← ∆r = Qs% se actualizeaza aproximatia9. r ← r+ = r + ∆r10. x← x+ = x+ ∆x

Implementarea schemei se face de regula lucrand ın precizie mixta. Reziduul(s, t) se calculeaza ın precizie dubla, apoi se rotunjeste la precizia de lucru ın care sefac restul calculelor. Conditia de oprire a algoritmului este ‖∆x‖∞, ‖∆r‖∞ ≤ cεM ,sau efectuarea unui numar maxim de iteratii. Practic, schema e utila atunci candproblema nu este prea rau conditionata. Pentru amanunte consultati [?].

3.9 Descompunerea ortogonala completa

Procedurile de triangularizare ortogonala prezentate ın sectiunile anterioare con-stituie instrumente eficiente si numeric stabile de rezolvare a problemelor de tipCMMP cu matrice A ∈ Cm×n de rang maximal, r = s. (Peste tot mai departe vomnota r = rangA, iar s va avea semnificatia obisnuita s = min(m,n).) In aceastasectiune vom considera cazul general r ≤ s si vom descrie un set de proceduri (di-recte), capabile sa determine rangul efectiv al matricei A ın prezenta erorilor derotunjire si sa utilizeze aceasta informatie.

Subliniem ca, ın general, determinarea rangului unei matrice A cu mijloacede calcul numeric presupune luarea unei decizii inerent afectate de riscuri privindstructura lui A. Totodata, aceasta decizie influenteaza decisiv si ireversibil ıntregulproces de calcul ulterior. Avand ın vedere reducerea riscurile mentionate, actual-mente se considera ca cel mai sigur instrument de determinare a rangului este des-compunerea valorilor singulare (DVS), care va fi prezentata pe larg ın capitolul 5.(Constructia acestei descompuneri are la baza tehnici iterative de determinare a va-lorilor proprii, care vor fi dezvoltate ın capitolul urmator.) Din aceasta perspectiva,procedura (directa) de triangularizare ortogonala completa prezentata ın continuareapare ca fiind relativ elementara si ca atare se aplica ın situatiile ın care simplitateaprimeaza iar deciziile de rang nu sunt critice. In esenta, procedura se desfasoara ıntrei etape.

In prima etapa are loc triangularizarea ortogonala a matricei date A, utilizando strategie adecvata de pivotare (permutare) a coloanelor, cu scopul de a evidentia

Page 204: metode de calcul numeric matriceal. algoritmi fundamentali

190 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

ın coltul dreapta-jos al factorului triunghiular R partea neglijabila, corespunzatoareeventualului defect de rang.

In a doua etapa are loc determinarea rangului prin ”trunchierea” lui R, adicaprin identificarea si eliminarea partii sale neglijabile. Desigur, ıntr-un calcul ideal cuprecizie infinita, aceasta parte se anuleaza exact, dar ın calculul practic acest lucrunu se realizeaza niciodata datorita (i) erorilor initiale cu care elementele matricei Aau fost calculate sau determinate experimental si reprezentate ın calculator precumsi (ii) erorilor de rotunjire comise pe parcursul procesului de calcul. Prin urmare,ın realitate, este ıntotdeauna necesara corectarea fortata a rezultatului calculat Rsi tocmai acest lucru se face prin trunchierea mentionata. Desigur, ın acest scopeste necesar un criteriu de decizie, care ın principiu este formulat de utilizator ınfunctie de situatia concreta precum si de obiectivele urmarite prin calcul. Indicatiimai precise vor fi date la momentul potrivit.

In a treia etapa (ın anumite situatii, facultativa) matricea superior trapezoidalaramasa dupa trunchierea lui R este adusa la forma superior triunghiulara printr-oprocedura de tip RQ (vezi sectiunea 3.6.2).

Trecem acum la descrierea succinta a etapelor procedurii de triangularizare com-pleta, dupa care vom prezenta cateva aplicatii ale acesteia ın legatura cu problemagenerala CMMP.

3.9.1 Triangularizarea ortogonala cu pivotarea coloanelor

Teorema 3.7 Fie A ∈ Cm×n. Exista o matrice unitara U = QH ∈ Cm×m precumsi o matrice de permutare Π astfel ıncat matricea

QHAΠ = R (3.167)

este superior triunghiulara, iar pentru fiecare k = 1 : s sunt satisfacute conditiile

|rkk|2 ≥min(j,m)∑

i=k

|rij |2, j = k + 1 : n. (3.168)

In consecinta, |r11| ≥ |r22| ≥ . . . ≥ |rss|, i.e. elementele diagonale ale matricei Rsunt ordonate descrescator.

Relatia (3.167) afirma 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 modnecesar rkk = 0, k = r + 1 : s, deci ın virtutea relatiilor (3.168) ultimele m− r liniiale lui R sunt nule. In consecinta,

Corolar 3.1 Dupa o permutare convenabila Π a coloanelor sale, orice matriceA ∈ Cm×n de rang r este echivalenta (la stanga) cu o matrice superior trapezoidala,i.e.

QHAΠ =

[T0

]

, (3.169)

unde T = R(1 : r, :), iar blocul lider T (:, 1 : r) este inversabil. In consecinta, primeler coloane ale matricei AΠ sunt independente.

Page 205: metode de calcul numeric matriceal. algoritmi fundamentali

3.9. DESCOMPUNEREA ORTOGONALA COMPLETA 191

Avand ın vedere ca situatia din corolar nu poate fi realizata exact, ın continuarene vom concentra atentia asupra conditiilor (3.168). Problema determinarii ranguluiva fi discutata ulterior.

Demonstratia teoremei 3.7. Procedura de triangularizare ortogonala cu pivotareare s etape. Fie A1 = A. Vom determina matricea unitara

QH = QHs . . . QH

2 QH1 (3.170)

procedand ca ın sectiunea 3.3 (vezi demonstratia teoremei 3.1), dar actionand lafiecare etapa k = 1 : s asupra unei matrice AkΠk, cu coloanele permutate ın scopulsatisfacerii conditiei (3.168).

Tinand seama de invarianta normei euclidiene ın raport cu transformarile unitare(3.170), aceasta ınseamna ca la etapa k, ın pozitia pivot (adica ın coloana k) trebuiesa se gaseasca acea coloana j ≥ k a tabloului curentAk pentru care norma euclidianaa vectorului Ak(k : m, j) este maxima. Pe scurt, notand

ρ(k)j = ‖Ak(k : m, j)‖, j = k : n, (3.171)

strategia de pivotare a coloanelor este

1. Se determina cel mai mic jk astfel ıncat ρ(k)jk

= maxj=k:n ρ(k)j

2. Daca jk 6= k1. Ak(:, k)↔ Ak(:, jk).

Dupa permutare, procedura de triangularizare continua ca de obicei, i.e. are locgenerarea reflectorului QH

k care anuleaza elementele subdiagonale din coloana k siaplicarea sa coloanelor urmatoare. Astfel se obtine tabloul transformat

Ak+1 = QHk (AkΠk), (3.172)

asupra caruia se va opera similar la etapa urmatoare. In final, matricea R = As+1

este superior triunghiulara si satisface (3.168). ♦

Avand ın vedere implementarea eficienta a procedurii descrise, tinem seama deinvarianta 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 fi evitat, uti-lizand ın schimb relatiile 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 urmatoareischeme de principiu.

29Subliniem ca desi scrierea (3.174) evita depasirile superioare, totusi utilizarea ei nu este lipsita

de riscuri daca |a(k+1)kj

| si ρ(k)j au valori apropiate. In acest caz, pentru siguranta se recomanda

recalcularea normelor ρ(k+1)j , j = k + 1 : n, vezi [XIII, pag. 9.17].

Page 206: metode de calcul numeric matriceal. algoritmi fundamentali

192 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

QRP % Schema de triangularizare ortogonala cu pivotarea coloanelor

% initializarea normelor1. Pentru j = 1 : n

1. ρj = ‖A(:, j)‖2. Pentru k = 1 : s

% strategia de pivotare1. Se determina cel mai mic jk a.ı. ρjk

= maxj=k:n ρj

2. Daca jk 6= k1. A(:, k)↔ A(:, jk)2. ρjk

↔ ρk

% procedura de triangularizare ortogonala3. Se determina QH

k a.ı. (QHk A)ik = 0, i = k + 1 : m

4. A← QHk A

% actualizarea normelor

5. ρj ← ρj

1−(

|akj |ρj

)2

, pentru j = k + 1 : n

In ceea ce priveste permutarile de coloane, ele pot fi memorate ıntr-un vector πastfel ıncat πk = jk, k = 1 : s, la fel ca ın procedurile de eliminare gaussiana dincapitolul 2. Pentru a putea identifica direct pozitia ın tabloul initial A a coloanelormatricei (permutate) AΠ, aici vom aplica o conventie de memorare diferita. Vec-torul π este initializat cu indicii coloanelor lui A ın ordinea naturala, iar continutulsau este actualizat dupa fiecare permutare de coloane efectuata. Forma finala aprocedurii de triangularizare se obtine aplicand algoritmul 3.5 la pasii 2.3, 2.4 siplasand instructiunea 2.5 la locul potrivit.

Algoritmul 3.11 (QRP) (Se da A ∈ Cm×n. Se efectueaza tri-angularizarea ortogonala cu pivotarea coloanelor a matricei A utilizandreflectori hermitici, i.e. QHAΠ = R, vezi algoritmul 3.5. Permutarilede coloane se memoreaza ın vectorul π astfel ıncat daca ın final πk = j,atunci coloana k a lui AΠ a fost coloana j a lui A.)

Page 207: metode de calcul numeric matriceal. algoritmi fundamentali

3.9. DESCOMPUNEREA ORTOGONALA COMPLETA 193

1. Pentru j = 1 : n % initializarea normelor1. ρj = ‖A(:, j)‖2. πj = j

2. Pentru k = 1 : s1. Se determina cel mai mic jk a.ı. ρjk

= maxj=k:n ρj

2. Daca jk 6= k % pivotare1. A(:, k)↔ A(:, jk)2. ρjk

↔ ρk

3. πjk↔ πk

3. βk = 0 % triangularizare4. Daca k < m atunci

1. σ = ‖A(k : m, k)‖2. Daca σ 6= 0

1. Daca akk 6= 0 atunci σ ← akk

|akk|σ

2. aik ← uik = aik/σ, pentru i = k : m3. βk ← ukk = 1 + akk

4. Pentru j = k + 1 : n1. α = − (

∑mi=k uikaij) /βk

2. aij ← aij + αuik, pentru i = k : m% actualizarea normei

3. ρj ← ρj

1−(

|akj |ρj

)2

5. akk = −σComentarii. Pe parcursul procesului de calcul, normele ρj se memoreaza ın βj ,fiind suprascrise pe masura ce nu mai sunt necesare; pentru claritate, nu am maiindicat explicit acest lucru.

Modul de apel al procedurii este [A, β, π] = QRP(A). ♦

Daca matriceaA este monica, atunci aplicatiile algoritmului 3.11 sunt similare cuaplicatiile algoritmului 3.5. In plus, dupa cum am mentionat ın sectiunea anterioara,ordonarea coloanelor lui A ın acord cu (3.168) permite estimarea rapida (ca ordin demarime) a numarului de conditionare 30 κ(A) = |r11| / |rnn|. Daca matricea A esteepica, atunci din nou ın virtutea ordonarii (3.168), blocul lider R′ din (3.63) rezultaın mod necesar inversabil, deci constructia unor baze pentru subspatiile N = KerAsi N⊥ = ImAH precum si determinarea unei solutii particulare a sistemului Ax = bse poate face aproape prin inspectie.

De aceea, mai departe ne vom concentra atentia asupra cazului general ın carematricea A nu este de rang maxim.

3.9.2 Determinarea rangului

Aplicam procedura QRP matricei date A si consideram matricea superior triun-ghiulara calculata

QHAΠ = R. (3.175)

30Tipic, aceasta relatie furnizeaza o subevaluare de 2–3 ori mai mica decat valoarea adevarataκ(A).

Page 208: metode de calcul numeric matriceal. algoritmi fundamentali

194 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

In cazul m ≥ n, R are structura

Rnot=

R1 R12

0 R2

0 0

r n− r m− n

︸︷︷︸

r

︸︷︷︸

n−r

(3.176)

ın care elementele satisfac relatiile (3.168), blocul lider R1 este superior triunghiularinversabil, dar blocul R2 nu rezulta nul datorita erorilor de calcul inerente. Pentru adetermina rangul r al matricei A, trebuie sa efectuam corect trunchierea factoruluitriunghiular R, punand

R2 = 0, (3.177)

ın acord cu (3.169), ın care evident matricea superior trapezoidala ramasa este

T = [R1 R12]. (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 nivelde element sa fie de acelasi ordin de marime ǫ (vezi sectiunea 3.8.3). In acest caz,prin definitie, rangul numeric (sau efectiv) al lui A este primul ıntreg k ∈ 1 : s astfelıncat

|rk+1,k+1| ≤ ǫ|r11|. (3.179)

Mai departe, vom presupune mereu ca rangul numeric determinat ın acord cucriteriul de decizie (3.179) coincide cu rangul ”adevarat” r al lui A 31. Subliniemca, ın urma acestei trunchieri ”corecte”, se recupereaza forma superior trapezoidala(3.169), iar numarul de conditionare al matricei A (de rang r ≤ s) poate fi estimatca fiind

κ(A) =|r11||rrr|

< ǫ−1. (3.180)

Relatia (3.169) are cateva aplicatii specifice extrem de importante. NotandQ′ = Q(:, 1 : r) primele r coloane ale matricei unitare Q = Q1Q2 . . . Qs, din (3.169)obtinem imediat factorizarea QR cu pivotarea coloanelor

AΠ = Q′T. (3.181)

In virtutea structurii lui T , matricea Q′ constituie o baza ortogonala a subspa-tiului 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 algoritmul3.11). Altfel spus, o data cu determinarea rangului, ın (3.181) a avut loc selectia

31Realizarea practica a acestei coincidente este conditionata de alegerea judicioasa a toleranteiǫ. (Valoarea ǫ = 0 nu este interzisa, dar de obicei conduce la decizia r = s.) Pe de alta parte,gradul de siguranta al deciziei de rang poate fi nesatisfacator, mai ales daca modulele rkk scaduniform, fara sa ınregistreze vreun ”salt” semnificativ. In asemenea situatii dificile se recomandadeterminarea rangului pe baza descompunerii valorilor singulare, vezi capitolul 5.

Page 209: metode de calcul numeric matriceal. algoritmi fundamentali

3.9. DESCOMPUNEREA ORTOGONALA COMPLETA 195

unui set de r coloane liniar independente ale matricei initiale A, iar Q′ constituie”versiunea” lor ortogonalizata. In mod corespunzator, matricea Q′′ = Q(:, r+1 : n)constituie o baza ortogonala a subspatiului complementar S⊥ = KerAH. (Vomfolosi sintaxa [Q,R, π] = FQRP(A) pentru apelul procedurii de calcul al factorizariiQR cu pivotarea coloanelor; implementarea este lasata cititorului, cu mentiunea caacumularea transformarilor ortogonale este identica cu aceea din algoritmul GQR.)

Pe de alta parte, considerand gramianul G = AHA si tinand seama de (3.181),ın care matricea Q′ are coloanele ortogonale, deducem

ΠTGΠ = THT. (3.182)

Aceasta relatie se numeste factorizare Cholesky cu pivotare si afirma ca, dupao permutare congruenta a liniilor si coloanelor sale, orice matrice hermitica pozitivsemidefinita G de rang r admite o factorizare Cholesky ın care factorul superiortrapezoidal T are structura (3.178) 32.

In multe situatii constatarile de mai sus prezinta un interes intrinsec. Avand ınvedere abordarea problemei generale CMMP, descriem ın continuare ultima faza aprocedurii de triangularizare ortogonala completa.

3.9.3 Triangularizarea ortogonala completa

Corolar 3.2 Fie A ∈ Cm×n, de rang r ≤ s. Exista doua matrice unitareU = QH ∈ Cm×m si Z = V H ∈ Rn×n precum si o matrice de permutare Π astfelıncat matricea

QHAΠZ = S (3.183)

are structura

S =

[S′ 00 0

] r m− r

︸︷︷︸

r

︸︷︷︸

n−r

(3.184)

ın care blocul lider S′ ∈ Cr×r este superior triunghiular inversabil.

Demonstratia este simpla. Consideram matricea superior trapezoidala T din(3.178) si o aducem la forma triunghiulara utilizand transformari unitare la dreapta.Aceasta etapa se numeste compresie si poate fi efectuata ın multe feluri. De exem-plu, aplicand o procedura de tip RQ (vezi sectiunea 3.6.2), obtinem

TZ = [S1 0], (3.185)

ın care S1 este superior triunghiulara iar

Z = Zr . . . Z2Z1. (3.186)

Acum relatiile (3.183) si (3.184) rezulta aplicand Z la dreapta ın (3.169) si tinand

seama de (3.185). Evident, matricea S′ not= S1 rezulta inversabila, transformarile

32Subliniem ca aceasta factorizare poate fi calculata direct, aplicand matricei G proceduraCHOLDC din LINPACK [XIII].

Page 210: metode de calcul numeric matriceal. algoritmi fundamentali

196 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

unitare Q si Z au expresiile (3.168) si respectiv (3.186), iar Π este permutareaprodusa de procedura QRP. ♦

Cu referire la o matrice superior trapezoidala oarecare A ∈ Cm×n cu m < n,schema de triangularizare RQ este urmatoarea.

TZRQ % Schema de compresie la dreapta, cazul m < n

1. Pentru k = m : −1 : 11. Se determina Zk a.ı. (AZk)kj = 0, j = m+ 1 : n2. A← AZk

Desigur, liniile lui A sunt parcurse ın ordine inversa, ıncepand cu ultima, iaranularea elementelor are ın vedere conservarea structurii preexistente de zerouri.In consecinta, reflectorii Zk sunt de tipul celor din exemplul 3.5, dar aici vectoriiHouseholder sunt notati vk, iar partea lor esentiala vkj , j = m+1 : n, este memoratape pozitiile elementelor anulate din liniile luiA, la fel ca ın algoritmul 3.9. Procedurarezultata din combinarea acestor idei se redacteaza astfel.

Algoritmul 3.12 (TZRQ) (Se da A ∈ Cm×n superior trapezoidalacu m < n. Se efectueaza compresia la dreapta a matricei A utilizand oprocedura de tip RQ cu reflectori hermitici, i.e. A← AZ = [R 0], undeZ = Zm . . . Z2Z1, iar R rezulta superior triunghiulara. Partea esentialavkj , j = m + 1 : n, a vectorilor Householder se memoreaza pe pozitiilecorespunzatoare A(k,m + 1 : n) din tabloul A. La aplicarea ulterioaraa transformarilor se tine seama ca vkk = βk, k = 1 : m.)

1. Pentru k = m : −1 : 11. βk = 0

1. σ =(

|akk|2 +∑n

j=m+1 |akj |2)1/2

2. Daca σ 6= 01. Daca akk 6= 0 atunci σ ← akk

|akk|σ

2. akj ← vkj = akj/σ, pentru j = k,m+ 1 : n3. βk ← vkk = 1 + akk

4. Pentru i = 1 : k − 1

1. α = −(

aikvkk +∑n

j=m+1 aijvkj

)

/βk

2. aij ← aij + αvkj , pentru j = k,m+ 1 : n5. akk = −σ

Comentarii. In cazul real, algoritmul cere 2m2(n −m) operatii. Modul de apeleste [A, β] = TZRQ(A). ♦

In sinteza ıntregii expuneri de pana acum, procedura de triangularizare ortogo-nala completa, corespunzatoare relatiilor (3.183) si (3.184), este urmatoarea.

QRX % Procedura de triangularizare ortogonala completa a matri-cei A ∈ Cm×n; ǫ este o toleranta data, utilizata la deter-minarea rangului.

% triangularizarea ortogonala cu pivotarea coloanelor1. [A, β, π] = QRP(A)

Page 211: metode de calcul numeric matriceal. algoritmi fundamentali

3.9. DESCOMPUNEREA ORTOGONALA COMPLETA 197

% trunchierea si determinarea rangului2. k = 13. Cat timp k ≤ s si |akk| > ǫ|a11|

1. k ← k + 14. r = k − 1% compresia la dreapta5. [A(1 : r, :), γ] = TZRQ(A(1 : r, :))

Modul de apel este [r, A, β, π, γ] = QRX(A, ǫ). Subliniem ca toata informatiadespre transformarile unitare Q si Z, generate la pasii 1 si 5, este memorata (extremde compact) ın tabloul A.

3.9.4 Descompunerea ortogonala completa

Pentru a facilita expunerea, notam X = ΠZ si scriem relatiile (3.183) si (3.184) subforma

A = Q

[S′ 00 0

]

XH . (3.187)

Partitionand Q si X conform cu S, obtinem

A = Q′S′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.Relatia (3.188) constituie descompunerea ortogonala completa a matricei

A ∈ Cm×n si reprezinta, ın cazul general r ≤ s = min(m,n), echivalentul fac-torizarilor QR si LQ (sau RQ), specifice 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 pretios de rezolvare a numeroase problemede calcul, ın general inabordabile prin metode ”clasice”, de tip Cholesky sau Gram-Schmidt. In plus, performantele numerice ale algoritmilor bazati pe aceasta de-scompunere sunt apropiate de performantele algoritmilor similari, derivati pe bazadescompunerii valorilor singulare din capitolul 5.

Aplicatiile descompunerii ortogonale complete sunt extrem de variate (vezi pro-blemele 3.61–3.63, precum si capitolul 5). Ne vom multumi aici sa mentionam ca,la fel ca ın sectiunile 3.4 si 3.6.2, matricele Q′ si Q′′ = Q(:, r + 1 : m) constituiebaze ortogonale pentru subspatiile descompunerii Cm = ImA ⊕ KerAH , iar ma-tricele X ′ si X ′′ = X(:, r + 1 : n) joaca un rol similar relativ la descompunereaCn = ImAH ⊕ KerA. Vom insista mai mult numai asupra problemei generaleCMMP, care constituie pentru noi un subiect inedit.

3.9.5 Problema generala CMMP

Consideram sistemul liniar Ax = b, ın care A ∈ Cm×n este o matrice data, nuneaparat de rang maxim, iar b ∈ Cm este un vector arbitrar. Problema generala

Page 212: metode de calcul numeric matriceal. algoritmi fundamentali

198 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

CMMP, pe scurt CMMPX, consta ın determinarea pseudosolutiei normale a sis-temului Ax = b, i.e. a unui vector x∗ ∈ Cn astfel ıncat

‖x∗‖ = minx∈X ∗

‖x‖, (3.189)

unde X ∗ este multimea pseudosolutiilor cu proprietatea (3.77). Teorema urmatoarearata ca problema CMMPX este ıntotdeauna bine formulata.

Teorema 3.8 Oricare ar fi vectorul b ∈ Cm, problema CMMPX are o solutie unicax∗ ∈ Cn. Pseudosolutia normala a sistemului Ax = b poate fi scrisa sub forma

x∗ = A+b, (3.190)

unde, prin definitie, matricea A+ ∈ Cn×m este pseudoinversa normala (sau Moore-Penrose) a lui A.

Demonstratie. Conform partii a) a teoremei 3.3, sistemul Ax = b are ıntotdeaunapseudosolutii care satisfac sistemul Ax = b1, unde b1 ∈ S = ImA, vezi (3.82).Conform partii a) a teoremei 3.4, acest sistem are ıntotdeauna o solutie normalaunica x∗ ∈ N⊥ = ImAH . Altfel spus, restrictia lui A la N⊥, vazuta ca aplicatieliniara A de la N⊥ la S este inversabila. Inversa A−1 : S → N⊥, prelungita cu 0pe S⊥, constituie pseudoinversa A+ a lui A. ♦

Pseudosolutia normala x∗ a sistemului Ax = b, poate fi determinata utilizandinformatia furnizata de procedura de triangularizare ortogonala completa

QHAΠZ =

[S′ 00 0

]

, (3.191)

ın care matricele Q si ΠZ sunt unitare, iar S′ este superior triunghiulara inversabilade ordin r = rangA. Aplicand transformarea QH ambilor membri ai sistemului sinotand

QHb =

[d′

d′′

]

, x = ΠZ

[u′

u′′

]

, (3.192)

obtinem sistemul ortogonal echivalent[S′ 00 0

] [u′

u′′

]

=

[d′

d′′

]

. (3.193)

La fel ca ın sectiunea 3.5.1, pentru a determina pseudosolutiile consideramreziduul

QHr =

[d′ − S′u′

d′′

]

, (3.194)

ın care matricea Q este unitara, deci minimul normei ‖r‖ = ‖QHr‖ se atinge pentruS′u′∗ = d′. In continuare, la fel ca ın sectiunea 3.6.3, din (3.192), ın care matriceaΠZ este unitara, rezulta u′′∗ = 0. Prin urmare, pseudosolutia normala a sistemuluiAx = b este unic determinata prin relatia

x∗ = ΠZ

[(S′)−1d′

0

]

, (3.195)

Page 213: metode de calcul numeric matriceal. algoritmi fundamentali

3.10. RUTINE LAPACK SI MATLAB 199

sau

x∗ = ΠZ

[(S′)−1 0

0 0

]

QHb, (3.196)

din care expresia pseudoinversei A+ este evidenta.Exploatand forma factorizata a transformarilor unitare QH si Z, schema de

calcul al pseudosolutiei normale se stabileste imediat.

SQRX % Calculul pseudosolutiei normale x = A+b

1. Pentru k = 1 : s1. b = QH

k b2. Se rezolva sistemul triunghiular S′x(1 : r) = b(1 : r) % r = rangA3. x(r + 1 : n) = 04. Pentru k = 1 : r

x← Zkx5. x← Πx

Detalierea procedurii de permutare, necesare la pasul 5 pentru plasarea compo-nentelor lui x pe pozitiile naturale, precum si completarea schemei SQRX ın scopulobtinerii reziduului de norma minima r∗ = b − Ax∗ sau a vectorului de cea maibuna aproximatie b∗ = Ax∗ sunt propuse cititorului ca exercitii.

3.10 Rutine LAPACK si MATLAB

Primele implementari profesionale si de larga circulatie ale procedurilor de triangu-larizare ortogonala au fost rutinele xQRDC si xQRSL din LINPACK, care corespund(ca organizare si tip de reflectori) procedurilor QRP (algoritmul 3.11) si CMMP dinsectiunile 3.9 si, respectiv, 3.5.

In LAPACK procedurile de calcul sunt mai diversificate.Pentru fiecare dintre cele 4 scheme de triangularizare standard zz = (’QR’, ’QL’,

’LQ’ sau ’RQ’) 33 exista cate trei rutine de calcul, care efectueaza triangularizareapropriu-zisa, acumularea si aplicarea transformarilor; numele rutinelor se obtinadaugand literele ’F’, ’G’ si respectiv ’M’ la combinatia zz. Rutinele opereaza cumatrice 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 sectiunile 3.3 si 3.4. (Amintim ca ın LAPACK se opereaza cu reflectori ın scriereaQ1 = I − τuuH , vezi sectiunea 3.2.) Numele celorlalte rutine se formeaza analog.

Pentru calculul descompunerii ortogonale complete din sectiunea 3.9 se utilizeazarutinele xGEQPF si xTZRQF, care corespund schemelor QRP, respectiv TZRQ din text.

Rezolvarea problemelor de tip CMMP de rang maxim, relativ la sistemele Ax = bsau AHx = b se efectueaza cu driverul xGELS, iar pentru rezolvarea problemei gene-rale CMMP se utilizeaza driverul expert xGELSX. (Primul reuneste versiunile blocale schemelor SQR si SLQ din sectiunile 3.5 si 3.6, iar al doilea corespunde schemeiSQRX din sectiunea 3.9.) Un al treilea driver (xGELSS) utilizeaza descompunereavalorilor singulare.

33Pentru conventiile de compunere a numelor rutinelor LAPACK, a se revedea sectiunea 2.12.

Page 214: metode de calcul numeric matriceal. algoritmi fundamentali

200 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

In MATLAB, functia qr realizeaza triangularizarea ortogonala (ın diverse ver-siuni) a matricei A. Organizarea riguroasa a spatiului de memorie (specifica imple-mentarilor LINPACK si LAPACK) este de regula sacrificata ın favoarea unei ma-nipulari mai comode de catre utilizator, dar performantele numerice sunt aceleasi.Apelul R = qr(A) calculeaza factorul superior triunghiular R returnand totodata,ın partea inferioara a aceluiasi tablou, vectorii Householder corespunzatori reflec-torilor Q1, . . . , Qn. 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 6= n se face utilizandcomanda x=A\b, unde \ este operatorul de ımpartire la stanga. (Daca m > n,atunci x este pseudosolutia sistemului Ax = b, iar daca m < n, atunci x este osolutie particulara a aceluiasi sistem.)

3.11 Probleme

P 3.1 In planul R2 se da vectorul x = [3 4]T si se considera reflectorul elementar

U = I − 2uuT , unde ‖u‖ = 1.a. Fie u = e1. Sa se construiasca vectorul transformat y = Ux si sa se reprezinte grafic

transformarea. Ce modificari apar daca u = e2 ?b. Sa se determine vectorul Householder normat u astfel ıncat Ux = ρe1. Cate solutii

exista ? Cat rezulta ρ ?c. Explicati de ce ın calcule este mai bine sa presupunem ca vectorul u nu este neaparat

normat, introducand scalarul β ca ın (3.8). Rezolvati din nou punctul b aplicand algoritmul3.2 si observand ca ρ = −σ. Justificati alegerea semnului lui σ recomandata ın text. Cese ıntampla daca x = [3 10−5] ?

d. Aplicati ın acest caz simplu indicatiile de implementare ce ınsotesc algoritmul3.2. Aratati cum se face scalarea vectorului Householder u = [u1 u2]

T astfel ıncat saobtinem u1 = β, respectiv u1 = 1. Verificati ca ın fiecare caz are loc transformarea doritaUx = −σe1.

e. Ilustrati grafic diversele situatii semnificative ıntalnite la punctele b–d.

P 3.2 Rezolvati problema anterioara ın R3, considerand de exemplu vectorii x = [3 4 0]T

sau x = [3 4 5]T .

P 3.3 Fie x, y ∈ Rm doi vectori dati. In ce conditii exista un scalar ρ si un reflector U

astfel ıncat Ux = ρy ? Ce restrictii apar daca impunem conditia suplimentara ρ = 1 ?Scrieti algoritmii de generare a reflectorului U ın cele doua situatii.

P 3.4 Fie x ∈ Rm un vector dat, x 6= 0.

a. Sa se determine un reflector U astfel ıncat prima coloana Ue1 a lui U sa fie unmultiplu scalar de x, i.e. Ue1 = ρx. Cat trebuie sa fie ρ ? Cate solutii exista ?

b. Ce semnificatie geometrica au celelalte coloane Uej , j = 2 : m, ale lui U ?c. Scrieti 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. Reformulati ın mod avantajos punctele a–c de mai sus ın cazul ın care vectoruldat x are primele k − 1 componente nule, i.e. xi = 0, i = 1 : k − 1. Precizati structuralui U precum si structura bazei ortogonale B astfel obtinute. Ilustrati grafic constructia,considerand m = 3, k = 2.

e. Reveniti la punctul a si ıncercati sa determinati U astfel ıncat Uem = ρx. Ce seschimba la punctele b–d ?

Page 215: metode de calcul numeric matriceal. algoritmi fundamentali

3.11. PROBLEME 201

P 3.5 Fie x ∈ Rm un vector dat, x 6= 0.

a. Sa se construiasca m − 1 vectori liniar independenti yj astfel ıncat xT yj = 0,j = 2 : m.

b. Cum se construiesc vectorii de la punctul a daca ın plus ei trebuie sa fie ortogonalidoi cate doi, i.e. yT

i yj = 0, i 6= j ? (Indicatie. Asimiland xT cu o matrice cu o singuralinie, problema consta ın a construi o baza ortogonala a subspatiului N = KerxT , i.e. omatrice Y ∈ R

m×(m−1) cu coloane ortogonale astfel ıncat xT Y = 0. Se tine seama depunctul b al problemei anterioare.)

c. Utilizand rezultatele de la punctele a si b, descrieti multimea tuturor solutiilorecuatiei xT y = 1. Ilustrati grafic situatia ın cazul m = 2, considerand de exemplu x = e1

si x = [3 4]T .

d. Determinati solutia normala y∗ a ecuatiei xT y = 1. Aratati ca y∗ este de formaαx si precizati interpretarea geometrica a lui y∗. (Indicatie. Orice vector y ∈ R

m poate fiscris unic sub forma y = αx +

Pm

i=2 βiyi, unde yi, i = 2 : m, sunt vectorii de la punctelea sau b.)

e. Scrieti algoritmii de calcul ce rezolva punctele b si d. Ce simplificari apar daca‖x‖ = 1 ?

P 3.6 Se dau doi vectori x, y ∈ Rm, x 6= 0.

a. Determinati pseudosolutia α∗ a sistemului αx = y, astfel ıncat norma euclidiana a

reziduului ρ(α)not= ‖y − αx‖ sa fie minima. Evaluati r∗ = y − α∗x si ρ(α∗) = ‖r∗‖.

b. Scrieti algoritmul de calcul corespunzator si gasiti interpretarea geometrica a vec-torilor y∗ = α∗x si r∗.

c. Reluati punctul a presupunand ca xi = 0, i = 2 : m. Ce simplificari apar ? Putetirealiza aceasta conditie aplicand o transformare adecvata T ambilor vectori dati x si y ?Cum trebuie sa fie T pentru ca functia ρ(α) sa ramana neschimbata (”invarianta”) ?

P 3.7 Considerati un reflector U = I − 2uuT , ‖u‖ = 1.

a. Calculati detU .

b. Determinati valorile si vectorii proprii ai lui U .

c. Determinati n vectori vi, i = 1 : n, astfel ıncat Uvi = ei si Uei = vi, i = 1 : n.

Observatie. In general, se numeste reflector elementar (nu neaparat ortogonal) oricematrice U ∈ R

m×m de forma U = Im − 2uvT , ın care u, v ∈ Rm sunt doi vectori astfel

ıncat vT u = 1. Multe dintre proprietatile reflectorilor (ortogonali) considerate mai sus sepastreaza (sau se reformuleaza adecvat) ın acest cadru mai general.

P 3.8 Aratati ca orice matrice de permutare elementara este un reflector.

P 3.9 Fie S ∈ Rm×m o matrice simetrica pozitiv definita, arbitrara dar fixata. Se

considera spatiul vectorial Rm cu produsul scalar (x, y)S = yT Sx si norma euclidiana

‖x‖2S = (x, x)S. Doi vectori x, y ∈ Rm se numesc S-ortogonali daca (x, y)S = 0. Matricea

A se numeste S-simetrica daca (y, Ax)S = (Ay, x)S, ∀x, y ∈ Rm, adica SA = AT S sau

A = S−1AT S. Matricea U ∈ Rm×m se numeste S-ortogonala daca pastreaza produsul

scalar (·, ·)S, i.e. (Ux, Uy)S = (x, y)S, ∀x, y ∈ Rm, adica UT SU = S.

a. Sa se arate ca orice matrice S-ortogonala este asemenea cu o matrice ortogo-nala. Sa se deduca de aici ca, ın general, dupa o transformare de coordonate convenabila,proprietatile geometrice ale spatiului R

m dotat cu produsul scalar (·, ·)S se reduc la pro-prietatile euclidiene ”uzuale”.

b. Sa se defineasca notiunea de S-reflector elementar si sa se studieze principaleleproprietati ale acestui tip de transformari. Cum se implementeaza avantajos algoritmii degenerare si aplicare a reflectorilor S-ortogonali ?

Page 216: metode de calcul numeric matriceal. algoritmi fundamentali

202 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

P 3.10 Pastram aceeasi terminologie ca ın problema anterioara chiar daca matricea si-metrica (inversabila) S este de semn nedefinit. In particular, fie S = J , unde

J =

»

Ip 00 −Iq

, p + q = m. (3.197)

Observatie. Spatiul Rm cu produsul scalar ”nedefinit” (·, ·)J se numeste spatiu pseu-

doeuclidian (sau spatiu hiperbolic) de signatura (p, q). Multimea vectorilor din Rm cu

proprietatea

‖x‖2J = 0 ⇔p

X

i=1

x2i −

mX

i=p+1

x2i = 0 (3.198)

se numeste con izotrop 34.a. Fie x ∈ R

m un vector dat, iar U un J-reflector de forma

U = Im − uuT J

β, β =

1

2‖u‖2J . (3.199)

Sa se scrie algoritmul de aplicare a transformarii x ← y = Ux si sa se verifice prin calculdirect ca ‖Ux‖J = ‖x‖J .

b. Fie x ∈ Rm un vector dat. Sa se stabileasca ın ce conditii exista un J-reflector de

forma (3.199) astfel ıncatUx = −σe1, σ ∈ R− 0 (3.200)

si sa se scrie algoritmul de generare a lui U . Discutie.c. Fie S o matrice simetrica inversabila. Sa se stabileasca ın ce conditii S admite

factorizari de forma S = RT JR sau S = LT JL, ın care R si L sunt matrice superior,respectiv inferior triunghiulare. Sa se scrie algoritmii de factorizare Cholesky ”cu semn”,corespunzatori celor doua relatii de mai sus.

d. Aratati ca daca exista doua matrice patrate A si B (nu neaparat triunghiulare)astfel ıncat S = AT JA = BT JB, atunci exista o matrice J-ortogonala Q astfel ıncatB = QA. Altfel spus, oricare doi factori ”cu semn” ai lui S sunt J-ortogonal echivalenti.

P 3.11 In planul R2 se da vectorul x = [3 4]T si se considera rotatia plana P = P12 cu

parametrii c, s.a. Fie c =

√3/2, s = 1/2. Sa se calculeze vectorul transformat y = Px si sa se

reprezinte grafic transformarea.b. Sa se determine c, s astfel ıncat Px = re1. Cate solutii exista ? Cat rezulta r ?

P 3.12 Fie x, y ∈ Rm doi vectori dati. In ce conditii exista un scalar ρ si o rotatie Pki

astfel ıncat Pkix = ρy ?

P 3.13 Fie P o rotatie plana. Calculati detP si determinati valorile si vectorii proprii aimatricei P .

P 3.14 Fie x ∈ Rm un vector dat.

a. Scrieti algoritmii de generare a unei secvente de rotatii P astfel ıncat Px = re1.Analizati diversele variante posibile.

b. Acelasi enunt, utilizand o grupare convenabila a rotatiilor ın secvente de rotatiidisjuncte (vezi observatia 3.2).

P 3.15 Se da o matrice A ∈ Rm×m. Sa se scrie algoritmii de aplicare a transformarilor

A← PA si A← AP T , unde P sunt secventele de rotatii generate ın problema 3.14.34Cel mai simplu exemplu este planul Lobacevski R2 cu p = 1, q = 1. Spatiul Minkovsky din

teoria relativitatii este R4 cu p = 1, q = 3. In acest caz (3.198) se numeste con de lumina, iartransformarile J-ortogonale formeaza grupul Poincare al lui R4.

Page 217: metode de calcul numeric matriceal. algoritmi fundamentali

3.11. PROBLEME 203

P 3.16 O matrice P de forma

P =

»

c −s−s c

, c2 − s2 = 1

se numeste rotatie hiperbolica (plana) 35.a. Aratati 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 conditii exista o rotatie hiperbolica astfel ıncatPx = re1, respectiv Px = re2 ? Scrieti algoritmul de generare a lui P si discutatiaplicabilitatea lui practica 36.

P 3.17 In planul C2 se da vectorul x = [1 + i 2 + i]T .

a. Sa se determine un reflector complex Q astfel ıncat Qx = −σe1.b. Sa se determine o rotatie complexa P astfel ıncat Px = re1.

P 3.18 Formulati si rezolvati versiunile complexe ale problemelor anterioare 3.3–3.10 si3.12–3.14, semnaland ın fiecare caz modificarile de notatie si de terminologie introduse.

P 3.19 Demonstrati ca orice matrice ortogonala se poate exprima ca produs de reflectorielementari.

P 3.20 Scrieti algoritmul de triangularizare ortogonala a matricei A+ =

»

RC

, ın care

blocul R este superior triunghiular de ordin n, iar C ∈ R(m−n)×n este un bloc oarecare.

Evaluati numarul de operatii. Precizati ce simplificari apar ın urmatoarele cazuri

a. m− n = 1, i.e. C = cT este un vector linie;b. R este superior bidiagonala, respectiv superior Hessenberg;c. C este superior triunghiulara.

P 3.21 Cum procedati daca blocul lider R al matricei A+ din problema precedenta esteinferior triunghiular ? Scrieti algoritmul corespunzator.

P 3.22 Scrieti algoritmul de triangularizare cu rotatii a unei matrice A ∈ Rm×n, utilizand

diverse strategii de anulare a elementelor subdiagonale (vezi problema 3.14).

P 3.23 Scrieti algoritmul de triangularizare cu rotatii a unei matrice A ∈ Rn×n a) superior

Hessenberg, b) tridiagonale.

In al doilea caz, presupuneti ca A este memorata ımpachetat (prin trei vectori). Cedificultati apar ın ceea ce priveste memorarea informatiei generate de algoritm ?

P 3.24 Fie R ∈ Rn×n o matrice superior triunghiulara, iar b, c ∈ R

n doi vectori. Scrietiun algoritm eficient de triangularizare a matricei A+ = R + bcT , i.e. QT A+ = R+, undeR+ este superior triunghiulara.

Fie k ∈ 1 : n − 1. Cum procedati daca ultimele n − k elemente ale vectorului b suntnule ?

P 3.25 Cum procedati ın problema precedenta daca A+ = R + BCT , unde B, C ∈ Rn×p,

cu p > 1 ?

P 3.26 Se considera relatia P+ = AT PA + CT C, unde A ∈ Rn×n si C ∈ R

l×n sunt douamatrice date, iar P = RT R este o matrice pozitiv definita al carei factor Cholesky superiortriunghiular R este cunoscut. Scrieti o procedura (de tip radacina patrata) care calculeazafactorul Cholesky R+ al matricei P+, fara a forma explicit P+.

35Denumirea se justifica observand ca putem ıntotdeauna considera c = chξ, s = −shξ.36Observati ca rotatia hiperbolica este o transformare simetrica.

Page 218: metode de calcul numeric matriceal. algoritmi fundamentali

204 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

P 3.27 Ce simplificari apar ın problema precedenta daca A este superior Hessenberg, iarC = cT este un vector linie avand numai ultima componenta nenula ?

P 3.28 Fie A ∈ Rm×n monica, cu m > n. Utilizand informatia furnizata de algoritmul de

triangularizare cu reflectori Un . . . U2U1A = R, scrieti algoritmul de acumulare a primelorp coloane ale matricei Q = U1U2 . . . Un, unde p ∈ 1 : m este un ıntreg dat. Calculatinumarul de operatii ın functie de p. Cum memorati rezultatul ? Discutati cazul ın carematricea A nu este neaparat monica.

P 3.29 Aceeasi problema ca mai sus, utilizand algoritmul de triangularizare ortogonalacu rotatii.

P 3.30 Fie Q matricea din problema 3.28. Precizati care dintre schemele urmatoarerealizeaza mai eficient acumularea lui Q si de ce.

1. Q = Im 1. Q = Im

2. Pentru k = 1 : n 2. Pentru k = n : −1 : 11. Q← QUk 1. Q← UkQ

P 3.31 a. Construiti reprezentarile WY si W2T ale reflectorilor bloc Q = U1U2 . . . Unb,

considerand relatia de recurenta

1. Q = Unb

2. Pentru k = nb − 1 : −1 : 11. Q← UkQ

Ce diferente apar fata de solutia adoptata ın sectiunea 3.4.3 ?b. Scrieti reprezentarea W2T sub forma Q = I −WS−1W T , unde S−1 = T . Precizati

structura si scrieti procedura de constructie a matricei S. Care dintre cele doua forme dereprezentare este preferabila si de ce ?

P 3.32 Fie A ∈ Rm×n (m > n) o matrice superior Hessenberg. Prezentati algoritmi

pentru:a. calculul factorizarii QR a matricei A;b. rezolvarea sistemului liniar supradeterminat Ax = b, cu b ∈ R

m dat.c. Cum procedati daca A este banda de latime inferioara p > 1 ?Utilizati reflectori si rotatii. Comparati cele doua versiuni.

P 3.33 Aceeasi problema, cand A ∈ Rm×n este inferior Hessenberg, repectiv banda de

latime inferioara p.

P 3.34 Fie A ∈ Rm×n, m > n, o matrice de rang n a carei factorizare QR este cunoscuta,

i.e. A = QR, Q ∈ Rm×m, R ∈ R

m×n. Fie A+ = [A y], cu y ∈ Rm. Prezentati algoritmi

pentrua. calculul factorizarii QR a matricei A+;b. rezolvarea sistemului A+x+ = b, cu b ∈ R

m dat.c. Stabiliti o relatie ıntre pseudosolutiile x∗

+ si x∗ ale sistemelor A+x+ = b, respectivAx = b.

d. Considerati cazul general A+ = [A Y ], cu Y ∈ Rm×p.

P 3.35 Fie A ∈ Rm×n, m ≥ n, o matrice de rang n a carei factorizare QR este cunoscuta.

Fie A+ =

»

zT

A

, cu z ∈ Rn dat. Aratati ca coloanele lui A+ sunt liniar independente.

Prezentati algoritmi pentrua. calculul factorizarii QR a matricei A+.

Page 219: metode de calcul numeric matriceal. algoritmi fundamentali

3.11. PROBLEME 205

b. rezolvarea sistemului A+x+ = b+, unde b+ =

»

δb

, cu b ∈ Rm si δ ∈ R dati.

c. Stabiliti o relatie ıntre pseudosolutiile x∗+ si x∗ ale sistemelor A+x+ = b+, respectiv

Ax = b.

d. Considerati cazul general A+ =

»

ZA

, cu Z ∈ Rp×n.

P 3.36 Scrieti algoritmi eficienti de aplicare a transformarilor B ← QT B si B ← QB,unde Q este matricea din problema 3.28 iar B ∈ R

m×p este superior sau inferior triun-ghiulara. Evaluati numarul de operatii ın cele patru situatii.

P 3.37 Aceeasi problema ca mai sus, pentru transformarile la dreapta, B ← BQ siB ← BQT .

P 3.38 Fie B ∈ Rm×p o matrice data, iar Q = Q1Q2 . . . Qn matricea din problema 3.28.

Scrieti algoritmul de aplicare a transformarilor B ← QT B si B ← QB la nivel de bloc.

P 3.39 Aceeasi problema ca mai sus, pentru transformarile la dreapta, B ← BQ siB ← BQT .

P 3.40 In conditiile problemei 3.28, scrieti un algoritm pentru calculul vectorului y = Ax,cu x ∈ R

n dat. (N.B. Matricea A a fost distrusa ın urma executiei algoritmului detriangularizare.)

P 3.41 In conditiile problemei 3.28, scrieti algoritmi pentru

a. rezolvarea sistemului AT Ax = c, cu c ∈ Rn dat;

b. calculul inversei H = (AT A)−1;

c. calculul scalarului α = cT (AT A)−1c, c ∈ Rn.

P 3.42 Scrieti procedurile GQL si MQL de acumulare si aplicare a transformarilor gene-rate de algoritmul de triangularizare QL.

P 3.43 Scrieti algoritmul de triangularizare ortogonala QL la nivel de bloc.

P 3.44 Fie A ∈ Rm×n o matrice monica. Scrieti procedurile de ortogonalizare GS si

MGS care calculeaza factorizarea A = Q′′L′′, unde Q′′ are coloanele ortogonale, iar L′′

este inferior triunghiulara.

P 3.45 Rezolvati problemele 3.24-3.26 ınlocuind peste tot matricele superior triunghiulareR si R+ cu matrice inferior triunghiulare. Reformulati ın acelasi spirit problema 3.27.

P 3.46 a. Sa se scrie un algoritm eficient de rezolvare a sistemului

(G + CT C)x+ = c + CT y,

ın care G = RT R este o matrice simetrica pozitiv definita al carei factor Cholesky superiortriunghiular R este cunoscut, iar matricea C ∈ R

l×n precum si vectorii c ∈ Rn, y ∈ R

l

sunt dati. Stabiliti o relatie ıntre x+ si solutia x a sistemului Gx = c.

b. Aceeasi problema ca mai sus, pentru sistemul A+x+ = d, unde A+ este matriceadin problemele 3.24, 3.25 iar d ∈ R

n un vector dat.

P 3.47 Fie A ∈ Rm×n monica. Scrieti algoritmul de calcul al pseudosolutiei sistemului

Ax = b cu b ∈ Rm dat, utilizand informatia furnizata de algoritmul de triangularizare

ortogonala QL.

Page 220: metode de calcul numeric matriceal. algoritmi fundamentali

206 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

P 3.48 Scrieti 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×(n−m) este o matriceoarecare. Precizati ce modificari 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.Observatie. Evident, aceasta problema reprezinta o simpla formulare ”prin dualitate” a

problemei 3.20. Propunem cititorului ca, procedand ın mod similar, sa obtina si sa rezolvedualele problemelor 3.21–3.47 (sau ale celor mai interesante dintre acestea), comentand ınfiecare caz paralelismele observate.

P 3.49 Fie A ∈ Rm×n o matrice de rang maxim.

a. Discutati existenta si unicitatea inverselor la stanga (dreapta) ale matricei A. Putetidescrie printr-o formula multimea acestor inverse ?

b. Evaluati expresiile ‖Im − AA+‖F si ‖In − A+A‖F . Ce se schimba daca mai susınlocuim norma Frobenius cu norma spectrala ?

P 3.50 a. Fie A ∈ Rm×n o matrice monica, iar b ∈ R

m, c ∈ Rn doi vectori dati.

Utilizand informatia furnizata de algoritmul de triangularizare ortogonala QT A = R,scrieti o procedura care rezolva (ın sensul CMMP) ambele sisteme Ax = b si AT 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 multipluAX = B si AT Y = C, ın care B si C sunt doua matrice date, dimensionate corespunzator.

P 3.51 Fie A ∈ Rm×n cu m 6= n. Scrieti algoritmii de triangularizare prin eliminare

gaussiana MA = U , respectiv AN = L si indicati cateva aplicatii. Ce strategii de pivotarerecomandati ın fiecare caz ?

P 3.52 Fie H =

»

Im A

AH 0

, cu A = Q

»

R′

0

monica (Q ∈ Cm×m, R′ ∈ R

n×n).

a. Aratati ca factorizarea cvasi-diagonala a matricei H este de forma THT H = J ,unde

J =

2

6

6

6

4

J1

. . .

Jn

Im−n

3

7

7

7

5

, Jk =

»

1 11 0

, k = 1 : n.

b. Aratati ca H este inversabila si

H−1 =

»

P2 (A+)H

A+ −G−1

,

unde G = AHA, A+ = (AHA)−1AH , P2 = I − AA+. Cat este detH ?

c. Formulati rezultatele a si b pentru H =

»

In AH

A 0

, cu A epica.

P 3.53 Considerati functia patratica F : Rn → R definita prin

F (x) =1

2xT Gx− xT c,

unde G ∈ Rn×n este o matrice simetrica pozitiv definita, iar c ∈ R

n.a. Scrieti conditiile necesare de minim si aratati ca F are un punct de minim unic

x∗ ∈ Rn care satisface sistemul Gx∗ = c. (Indicatie: ∂F

∂xi= 0, i = 1 : n.)

b. Scrieti un algoritm care calculeaza x∗ si ρnot= F (x∗).

Page 221: metode de calcul numeric matriceal. algoritmi fundamentali

3.11. PROBLEME 207

P 3.54 Fie A ∈ Rm×n, b ∈ R

m. De asemenea, fie S ∈ Rm×m si T ∈ R

n×n doua matricepozitiv definite. Considerati functia patratica

F (x) = ‖b− Ax‖2S + ‖x‖2T ,

unde notatiile sunt cele din problema 3.9.a. Aratati ca F are un punct de minim unic x∗ si scrieti un algoritm care calculeaza

x∗ si ρ = F (x∗).b. Analizati separat problema CMMP ponderata, ın care F (x) = ‖b − Ax‖2S. (Aici S

se numeste traditional matrice pondere.)

P 3.55 Considerati problema de minimizare cu restrictii liniare

F (x∗) = minAx=b

F (x),

unde F este functia patratica din problema 3.53, matricea A ∈ Rm×n este epica, iar

b ∈ Rm.

a. Scrieti conditiile necesare de minim utilizand metoda multiplicatorilor Lagrange.Puteti arata ca problema considerata are solutie unica ? Analizati cazul general ın carematricea G nu este neaparat pozitiv definita.

b. Scrieti un algoritm care calculeaza x∗ si ρ = F (x∗).

P 3.56 Fie A ∈ Rm×n monica, B ∈ R

m×p epica si b ∈ Rm. Rezolvati problema CMMP

generalizata

‖y∗‖2 = minAx+By=b

‖y‖2.

Observatie. Daca p = m si B = Im, atunci evident y = rnot= b − Ax, deci se obtine

problema CMMP din sectiunea 3.5.

P 3.57 Fie A ∈ Rm×n monica, C ∈ R

l×n epica si b ∈ Rm, d ∈ R

l. Rezolvati problemaCMMP cu restrictii liniare

‖b− Ax∗‖ = minCx=d

‖b − Ax‖.

P 3.58 Considerati vectorul de permutari π produs de algoritmul 3.11 si fie x ∈ Rn.

Scrieti procedurile de permutare pe loc x← Πx si x← ΠT x.

P 3.59 Se dau doi vectori b ∈ Rm si c ∈ R

n. Scrieti algoritmi de determinare a proiectiilorortogonale ale acestor vectori pe subspatiile descompunerilor ortogonaleR

m = ImA ⊕ KerAT si respectiv Rn = ImAT ⊕ KerA, utilizand informatia furnizata

de procedura de triangularizare ortogonala QRX.

P 3.60 a. Cu notatiile din sectiunea 3.9.5, aratati ca matricea

Xnot= A+ = ΠZ

»

(S′)−1 00 0

QH

satisface conditiile (Moore-Penrose) 1 AXA = X, 2 XAX = X, 3 AX = (AX)H ,4 XA = (XA)H .

b. Precizati ce forma iau aceste conditii daca A este monica (epica).c. Demonstrati ca 5 (A+)H = (AH)+, 6 (A+)+A = A, 7 A+ = (AHA)+AH ,

8 A+ = AH(AAH)+.d. Puteti indica o metoda de calcul al pseudoinversei unei matrice hermitice (vezi

proprietatile 7 si 8) fara a utiliza triangularizarea ortogonala completa ?e. Tinand seama de forma factorizata a matricelor Q si Z, scrieti un algoritm pentru

calculul pseudoinversei A+.

Page 222: metode de calcul numeric matriceal. algoritmi fundamentali

208 CAPITOLUL 3. PROBLEMA CELOR MAI MICI PATRATE

P 3.61 a. Aratati ca orice matrice A ∈ Cm×n poate fi scrisa sub oricare din formele

(i) A = Q′C, (ii) A = BV ′, unde Q′ are coloanele ortogonale, C este epica, respectiv Beste monica, iar V ′ are liniile ortogonale.

b. Scrieti algoritmi pentru determinarea factorizarilor (i) si (ii).c. Aratati ca A+ = C+(Q′)H , respectiv A+ = (V ′)HB+.d. Scrieti algoritmi pentru calculul pseudoinversei normale a sistemului Ax = b, cu

b ∈ Rm dat, utilizand factorizarile (i) si (ii).

P 3.62 O matrice A ∈ Cm×n se numeste (ad-hoc) pseudounitara (sau partial izometrica)

daca exista doua matrice cu coloane ortogonale U ∈ Cm×r si V ∈ C

n×r astfel ıncatA = UV H .

a. Ce structura au gramienii G1 = AHA si G2 = AAH ? Interpretare geometrica.b. Aratati ca A+ = V UH .c. Aratati ca o matrice A ∈ C

m×n este pseudounitara daca si numai daca A+ = AH .d. Cum se poate testa faptul ca o anumita matrice data A ∈ C

m×n este 1) monica,2) epica, 3) pseudounitara, 4) proiector ortogonal ?

P 3.63 Fie A ∈ Cm×n.

a. Scrieti un algoritm de triangularizare ortogonala la dreapta cu pivotarea liniilor, i.e.ΠAZ = L, unde L rezulta inferior triunghiulara. Precizati strategia de pivotare utilizata.

b. Indicati cateva aplicatii posibile ale acestui algoritm si explicati de ce ın practicaalgoritmul QRP din sectiunea 3.9 este ıntotdeauna suficient.

P 3.64 Fie A ∈ Rm×n, B ∈ R

m×p monice.a. Explicati de ce ın general matricea M = [A B] nu este monica. Aratati ca

ImM = ImA + ImB.b. Efectuati triangularizarea ortogonala completa a matricei M , i.e.

QHMΠZ =

»

S′ 00 0

, unde S este inversabila de ordin r = rangM . Ce semnificatie

geometrica au r si Q ?c. Notam S = ImA, T = ImB. Utilizand rezultatele de la punctul b, precizati cum

poate fi verificata conditia ST T = ∅.d. Idem, indicati o baza ortogonala pentru subspatiul (S + T )⊥.e. Cum se schimba concluziile de la punctele b–d daca matricele initiale nu sunt

neaparat monice ?

Pentru exemplificare, fie A =

2

4

100

3

5, B =

2

4

1 10 10 0

3

5. Cine sunt S , T si S + T ?

P 3.65 Fie A ∈ Rm×n, C ∈ R

l×n epice.

a. Explicati de ce ın general matricea N =

»

AC

nu este epica. Aratati ca

KerN = KerAT

KerC.b. Formulati ”prin dualitate” si rezolvati punctele b–d din problema precedenta.c. Fie x ∈ R

n. Scrieti algoritmul de calcul al proiectiilor ortogonale ale lui x pesubspatiile N si N⊥, unde N = KerA

T

KerC.

Pentru exemplificare, fie A = [1 0 0], C =

»

1 0 01 1 0

. Cine sunt KerA, KerC si

KerAT

KerC ?

Page 223: metode de calcul numeric matriceal. algoritmi fundamentali

Capitolul 4

Calculul valorilor sivectorilor proprii

Valorile si vectorii proprii joaca un rol fundamental ın descrierea matematica a unorcategorii foarte largi de procese tehnice, economice, biologice etc. Astfel, proprietatiesentiale (cum este, e.g. stabilitatea) ale modelelor matematice cunoscute sub denu-mirea de sisteme dinamice se exprima ın raport cu valorile proprii ale unor matrice.In acest context, calculul cat mai eficient si mai exact al valorilor si vectorilor propriise impune cu necesitate.

Cadrul cel mai natural de abordare a problemei este cel al matricelor complexe,ın care caz valorile si vectorii proprii sunt, ın general, numere complexe, respectivvectori complecsi. Totusi, majoritatea problemelor tehnice conduc la necesitateacalculului valorilor si vectorilor proprii pentru matrice reale. Desi valorile propriisi vectorii proprii asociati ai unei matrice reale pot fi numere complexe, respectivvectori complecsi, calculul cu numere complexe este sensibil mai putin eficient si,din acest motiv, ın cazul datelor initiale reale, dezvoltarile procedurale vor urmariutilizarea, practic exclusiva, a calculului cu numere reale.

4.1 Formularea problemei

4.1.1 Valori si vectori proprii

Valorile si vectorii proprii pentru o matrice patrata A ∈ ICn×n sunt notiuni introduseın capitolul 1 ın contextul prezentarii unor algoritmi de calcul elementari (sectiunea1.10). Problema determinarii valorilor si vectorilor proprii poate fi apreciata ca fiindsimpla numai pentru matrice cu structura triunghiulara, caz care a si fost tratat ıncapitolul mentionat (v. algoritmul 1.23).

Cu riscul de a ne repeta, reluam cateva definitii si rezultate fundamentale intro-duse ın § 1.10 cu dezvoltarile corespunzatoare necesare abordarii problemei ın cazulgeneral.

209

Page 224: metode de calcul numeric matriceal. algoritmi fundamentali

210 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Definitia 4.1 Fie o matrice A ∈ ICn×n. Un numar λ ∈ IC se numeste valoareproprie a matricei A, daca exista un vector nenul x ∈ ICn astfel ıncat

Ax = λx. (4.1)

Un vector x 6= 0 care satisface (4.1) se numeste vector propriu al matricei A asociatvalorii proprii λ.

Valorile proprii ale matricei A ∈ ICn×n, conform teoremei 1.13, sunt zerourilepolinomului caracteristic

p(λ) = det(λIn −A), (4.2)

care este un polinom de gradul n cu coeficienti complecsi 1. In consecinta, oricematrice A ∈ ICn×n are exact n valori proprii complexe, nu neaparat distincte.

Daca matricea este reala, atunci polinomul caracteristic are coeficientii reali sivalorile proprii complexe apar ın perechi complex-conjugate 2. Daca x = u+iv ∈ ICn

cu u, v ∈ IRn, este un vector propriu asociat valorii proprii λ = α + iβ, α, β ∈ IR,β 6= 0, a unei matrice reale, atunci x = u− iv este un vector propriu asociat valoriiproprii λ = α− iβ (verificati!).

Ordinul de multiplicitate ni al radacinii λi a polinomului caracteristic se numestemultiplicitate algebrica a valorii proprii respective. Daca ni = 1 valoarea proprie λise numeste simpla.

Multimea

λ(A) = λ1, λ2, ..., λn = λ ∈ IC | det(λI −A) = 0 (4.3)

a valorilor proprii ale unei matrice A ∈ ICn×n se numeste spectrul matricei A, iarnumarul real nenegativ

ρ(A) = max(|λ1|, |λ2|, ..., |λn|) (4.4)

se numeste raza spectrala a matricei A. Deci, ın planul complex IC, valorile propriiale unei matrice A sunt situate ın discul ınchis de raza ρ(A) cu centrul ın origine.

Se poate arata imediat ca valorile proprii ale unei matrice A ∈ ICn×n satisfacrelatiile

n∑

i=1

λi =

n∑

i=1

aiidef= tr(A),

n∏

i=1

λi = det(A), (4.5)

unde tr(A) este, prin definitie, urma matricei A. In particular, o matrice estesingulara daca si numai daca are (cel putin) o valoare proprie nula.

Vectorii proprii introdusi prin definitia 4.1 sunt denumiti uneori vectori propriila dreapta ai matricei A si satisfac sistemul liniar omogen singular

(λIn −A)x = 0. (4.6)

Deci, fiecarei valori proprii ıi corespunde cel putin un vector propriu. Vectorii propriiasociati valorilor proprii distincte sunt liniar independenti.

1Ecuatia p(λ) = 0 se numeste ecuatie caracteristica a matricei A.2 O multime de numere (reale si complexe) ın care numerele complexe apar ın perechi complex-

conjugate va fi numita ın continuare multime simetrica.

Page 225: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 211

In acest context, vectorii proprii la stanga sunt vectorii nenuli y ∈ ICn ce satisfacconditia

yHA = λyH , (4.7)

unde H reprezinta operatorul cumulat de transpunere si conjugare. Aplicand ope-ratorul H relatiei (4.7) obtinem

AHy = λy, (4.8)

i.e. vectorii proprii la stanga ai matricei A asociati valorii proprii λ sunt vectoriproprii (la dreapta) ai matricei AH asociati valorii proprii λ ∈ λ(AH). De aicirezulta

λ(AH) = λ(A), (4.9)

adica valorile proprii ale matricei AH sunt conjugatele valorilor proprii ale matriceiA.

Intrucat det(λIn − A) = det(λIn − AT ) matricele A si AT au acelasi polinomcaracteristic si, deci, aceleasi valori proprii dar vectorii proprii, ın general, difera.Cum un vector propriu y al matricei AT asociat valorii proprii λ satisface AT y = λysau yTA = λyT vectorii proprii reali ai matricei AT sunt vectori proprii la stangaai matricei A.

Daca xi este un vector propriu al matricei A asociat valorii proprii λi, vectorulyi = αxi este, de asemenea, un vector propriu al matricei A asociat aceleiasi valoriproprii λi, oricare ar fi α ∈ IC, α 6= 0. Mai mult, este clar ca multimea vectorilorproprii asociati unei valori proprii λi ımpreuna cu vectorul nul din ICn formeazasubspatiul liniar Vi = Ker(λiIn − A) ⊂ ICn numit subspatiul propriu asociat valoriiproprii λi. Dimensiunea νi = dimVi a subspatiului propriu, i.e. numarul de vectoriproprii liniar independenti asociati lui λi, se numeste multiplicitate geometrica avalorii proprii λi. Este evident ca

νi ≤ ni. (4.10)

4.1.2 Subspatii invariante

Subspatiile proprii sunt subspatii A-invariante ın sensul definitiei urmatoare(v. si § 1.10).

Definitia 4.2 Fie o matrice A ∈ ICn×n. Un subspatiu liniar V ⊂ ICn se numestesubspatiu invariant al matricei A sau, pe scurt, subspatiu A-invariant daca

AV ⊂ V i.e. Ax ∈ V , ∀x ∈ V . (4.11)

Cum IRn ⊂ ICn, pot exista subspatii A-invariante ın IRn pentru matrice A complexe.De asemenea, pentru matrice A reale pot exista subspatii A-invariante care nu suntın IRn. Dintre proprietatile subspatiilor A-invariante amintim urmatoarele.

Page 226: metode de calcul numeric matriceal. algoritmi fundamentali

212 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Propozitia 4.1 Fie matricea A ∈ ICn×n.1. Daca x1, x2, . . . , xp sunt vectori proprii ai matricei A, atunci subspatiul

S = Im[x1 x2 . . . xp ] ⊂ ICn este A-invariant.2. Daca S este un subspatiu A-invariant cu dimS = p si coloanele matricei

(monice) V = [ v1 v2 . . . vp ] ∈ ICn×p formeaza o baza a lui S, atunci exista o matriceB ∈ ICp×p astfel ıncat

AV = V B. (4.12)

Mai mult, avem

λ(B) ⊂ λ(A). (4.13)

(Matricea B se numeste restrictia matricei A la subspatiul A-invariant S si senoteaza B = A|S.)In particular, orice subspatiu A-invariant nenul (i.e. p ≥ 1) contine un vectorpropriu al matricei A. Reciproc, daca are loc o relatie de forma (4.12), atunci ImVeste un subspatiu A-invariant.

3 Complementul ortogonal T = S⊥ ın ICn al subspatiului A-invariant S este unsubspatiu AH-invariant.

In cazul real un subspatiu A-invariant generat de vectori proprii reali este, evi-dent, real. Daca x1,2 = v1 ± iv2, v1, v2 ∈ IRn, sunt vectori proprii asociati uneiperechi de valori proprii complex conjugate λ1,2 = α ± iβ, α, β ∈ IR, β 6= 0,atunci vectorii v1, v2 sunt liniar independenti si S = Im [ v1 v2 ] este un subspatiuA-invariant. Mai mult, daca are loc o relatie de forma (4.12), unde coloanele luiV ∈ IRn×p formeaza o baza a unui subspatiu A-invariant S ⊂ IRn, atunci restrictiaB ∈ IRp×p a lui A la S satisface (4.13) cu λ(B) o multime simetrica. In sfarsit,complementul ortogonal T = S⊥ ın IRn al subspatiului A-invariant real S este unsubspatiu AT -invariant.

Demonstratie. Proprietatea 1 este evidenta. Pentru a arata 2 sa observamca Avj ∈ S, de unde rezulta Avj = V bj, j = 1 : p, i.e. (4.12) este adevarata.Daca z ∈ ICp este un vector propriu al matricei B, i.e. Bz = µz, asociat valoriiproprii µ ∈ λ(B), atunci din (4.12) avem AV z = µV z. Cum z 6= 0 iar V estemonica, rezulta y = V z 6= 0, i.e. y este un vector propriu al lui A continut ınS. In consecinta, S contine un vector propriu al matricei A si avem µ ∈ λ(A),deci (4.13) este adevarata. Acum, daca are loc o relatie de forma (4.12), atunciAV z = V Bz = V w ∈ ImV, ∀ z ∈ ICp, i.e. ImV este A-invariant. 3. Fie x ∈ S,y ∈ T doi vectori arbitrari. Atunci Ax ∈ S si, deci, yHAx = (AHy)

Hx = 0. Cum

x ∈ S este arbitrar, rezulta AHy ⊥ S, respectiv AHy ∈ T , i.e. T este AH -invariant.In cazul real, din A(v1 ± iv2) = (α± iβ)(v1 ± iv2) rezulta

Av1 = αv1 − βv2Av2 = βv1 + αv2

, i.e. AV = V B cu B =

[α −ββ α

]

. (4.14)

Daca v1, v2 sunt liniar dependenti, atunci v2 = γv1 cu γ 6= 0 si din (4.14) rezultaβ(1 + γ2)v1 = 0. Cum β 6= 0, obtinem v1 = 0, de unde v2 = 0 si x1,2 = 0, ceeace contrazice definitia vectorilor proprii. Celelalte afirmatii se demonstreaza similarcazului complex. 3

Page 227: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 213

Exemplul 4.1 Se considera matricea

A =1

6

5 25 9−1 −5 −90 24 24

care are polinomul caracteristic

p(λ) = det(λI3 −A) = λ3 − 4λ2 + 6λ− 4

si valorile proprii λ1 = 2, λ2,3 = 1± i. Vectorii

x1def= v1 =

−1−12

, x2,3def= v2 ± i v3 =

5−12

± i

22−2

sunt vectori proprii ai matricei A asociati valorilor proprii λ1 si, respectiv, λ2,3. FieV1 = v1 si V23 = [ v2 v3 ]. Avem urmatoarele relatii de tipul (4.12) (verificati!):

AV1 = V1B1 cu B1 = 2, AV23 = V23B23 cu B23 =

[1 1−1 1

]

si, prin urmare, S1 = ImV1 si S23 = ImV23 (vezi fig.4.1) sunt subspatii A-invariante,

:

CCCCW

@@

@I

-

6

+

CCCCCCCCC

CCCCCCCCC

@@

@@

@@@

@@

@@

0 1

2

3IR3

v1 v2

v3

S1=ImV1

S23=ImV23

Fig. 4.1: Vectori proprii si subspatii A-invariante pentru matricea A din exemplul4.1.

iar B1 = A|S1 si B23 = A|S23 sunt restrictii ale matricei A la cele doua subspatii(sunt aceste restrictii unic determinate?). Propunem cititorului sa calculeze com-plementele ortogonale ın IR3 ale celor doua subspatii si sa verifice ca aceste subspatiisunt AT -invariante. 3

Problema de calcul care face obiectul acestui capitol este determinarea valorilorsi vectorilor proprii ai unei matrice date. Desi pentru calculul unei valori proprii

Page 228: metode de calcul numeric matriceal. algoritmi fundamentali

214 CAPITOLUL 4. VALORI SI VECTORI PROPRII

sau al unui grup de valori proprii pot fi utilizate tehnici specifice, ne vom concentrademersul nostru, ın principal, asupra problema de calcul al ıntregului spectru. Pro-blema calculului vectorilor proprii va fi tratata ın subsidiar, tinand seama si defaptul ca ın multe aplicatii calculul explicit al vectorilor proprii poate fi (si este binesa fie) evitat.

4.1.3 Matrice asemenea

Urmand metodologia generala de reducere a unei probleme de calcul la alte proble-me mai simple, utilizata si ın capitolele precedente, suntem interesati sa evidentiemtransformarile matriceale care conserva spectrul unei matrice date.

Asa cum s-a specificat si ın § 1.10, valorile proprii sunt conservate de trans-formarile de asemanare definite mai jos.

Definitia 4.3 Doua matrice A,B ∈ ICn×n se numesc asemenea daca exista o ma-trice nesingulara T ∈ ICn×n astfel ıncat

B = T−1AT. (4.15)

Daca matricea de transformare T este unitara, atunci matricele A si B se numescunitar asemenea. In cazul real, daca matricea de transformare T este ortogonala,matricele A si B se numesc ortogonal asemenea.

Intr-adevar, conform teoremei 1.14, daca matricele A,B ∈ ICn×n satisfac o relatiede forma (4.15), i.e. sunt asemenea, atunci ele au acelasi spectru 3

λ(A) = λ(B) (4.16)

si daca x este un vector propriu al matricei A asociat valorii proprii λ ∈ λ(A),atunci vectorul

y = T−1x (4.17)

este un vector propriu al matricei B, asociat aceleiasi valori proprii.

In dezvoltarile din aceasta lucrare vom insista asupra cazului generic al matri-celor de ordin n care admit un set (complet) de n vectori proprii liniar independenti.Asa cum s-a demonstrat ın teorema 1.15, ın acest caz, utilizand ın (4.15) ca matricede transformare T = X , unde X este o matrice avand drept coloane n vectoriproprii liniar independenti ai matricei A, obtinem o matrice diagonala:

X−1AX = Λ = diag (λ1, λ2, ..., λj , ..., λn ) ∈ ICn×n. (4.18)

Astfel de matrice se numesc diagonalizabile (peste IC). Daca o matrice n× n are nvalori proprii distincte, atunci este diagonalizabila dar reciproca nu este, ın general,adevarata 4.

3 De remarcat faptul ca transformarile uzuale cum ar fi multiplicarile cu matrice (la stanga

sau la dreapta) altereaza spectrul matricei date. In particular, operatiile elementare cu linii saucoloane, inclusiv permutarile, pot modifica valorile si vectorii proprii.

4 O matrice cu toate valorile proprii simple (i.e. distincte) se numeste cu spectru simplu, iarmatricele care admit seturi complete de vectori proprii liniar independenti sunt cunoscute subdenumirea de matrice simple. In acest din urma caz multiplicitatile algebrice ale valorilor propriidistincte coincid cu multiplicitatile lor geometrice. Evident, matricele cu spectru simplu suntsimple dar nu si reciproc.

Page 229: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 215

In cazul general, structura ”fina” a unei matrice, care poate fi dezvaluita printransformari de asemanare corespunzatoare, este data de asa numita forma canonicaJordan. Desi forma canonica Jordan joaca un rol esential ın analiza matriceala,continand maximum de informatie structurala privitor la o matrice data, totusirolul ei ın calculul numeric este mult diminuat de sensibilitatea structurii Jordan laperturbatii numerice ın elementele matricei initiale, perturbatii inerente ın calculeefectuate pe un calculator datorita reprezentarii informatiei numerice ın virgulamobila. Acesta este motivul pentru care ın toate dezvoltarile numerice se preferao structura mult mai robusta si anume forma Schur reala sau complexa prezentataıntr-una din sectiunile urmatoare 5.

4.1.4 Valorile proprii ale matricelor simetrice si hermitice

Prezentam ın continuare cateva rezultate referitoare la valorile si vectorii propriipentru matricele hermitice (simetrice). Matricele hermitice (simetrice) se ıntalnescın numeroase aplicatii si prezinta particularitati remarcabile.

Definitia 4.4 Fie A ∈ ICn×n. Matricea A se numeste normala daca

AHA = AAH . (4.19)

In cazul real, matricea A ∈ IRn×n este normala daca

ATA = AAT . (4.20)

In acest context reamintim ca matricea A se numeste hermitica daca AH = Asi simetrica daca AT = A. De asemenea, o matrice A ∈ ICn×n se numeste unitaradaca AHA = In si ortogonala daca ATA = In.

Se constata imediat ca matricele hermitice si cele unitare sunt matrice normale.Matricele hermitice au proprietatea ca elementele simetrice fata de diagonala prin-cipala sunt complex conjugate, i.e. aij = aji, i, j ∈ 1 : n, deci elementele diagonaleale matricelor hermitice sunt reale. O matrice hermitica reala este simetrica. Omatrice unitara reala este ortogonala. Prin urmare matricele reale simetrice sauortogonale sunt normale. Exista matrice normale care nu sunt nici simetrice nici

ortogonale, de exemplu A =

[1 −11 1

]

.

Prezentam ın continuare cateva rezultate fundamentale, urmand ca aspectelespecifice legate de calculul efectiv al valorilor si vectorilor proprii pentru matricehermitice (simetrice) sa fie date ın doua sectiuni distincte (§ 4.8 si § 4.9), iar celelegate de conditionare si stabilitate ın § 4.10 si § 4.11.Teorema 4.1 O matrice n×n complexa A este normala daca si numai daca admiteun set complet de n vectori proprii ortogonali, adica exista o matrice unitara Q ∈∈ ICn×n ale carei coloane sunt vectori proprii ai matricei A astfel ıncat

QHAQ = Λ = diag(λ1, λ2, . . . , λn) ∈ ICn×n. (4.21)

5 Algoritmii de reducere la forma canonica Jordan, prezentati ın unele lucrari de matematica(vezi, e.g. [ XVI ]) nu prezinta interes practic decat ın contextul unor medii de calcul exact. Pentrudetalii privitoare la aspectele numerice si algoritmice ale calculului formei canonice Jordan, vezisectiunea 4.7.

Page 230: metode de calcul numeric matriceal. algoritmi fundamentali

216 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Altfel spus, matricele normale sunt matricele unitar diagonalizabile (peste IC).In cazul real, matricea A este normala daca si numai daca satisface aceleasi

conditii, i.e. este unitar diagonalizabila.

Demonstratie.Presupunem ca matricea A este normala. Demonstram mai ıntai urmatorul

rezultat preliminar.

Lema 4.1 Daca S este un subspatiu simultan A-invariant si AH-invariant, atunciA si AH admit un vector propriu comun x continut ın S 6. Daca Ax = λx atunciAHx = λx.

Subspatiul S fiind A-invariant, ın conformitate cu propozitia 4.1, punctul 2, existaun vector propriu x al matricei A (i.e. care satisface Ax = λx, x 6= 0) continut ın

S. Din (4.19) rezulta imediat ca A(AH)k= (AH)

kA. Deci A(AH)

kx = λ(AH)

kx,

k = 0, 1, 2, . . ., i.e. yk = (AH)kx 6= 0 sunt vectori proprii ai matricei A asociati

aceleiasi valori proprii λ. Cum subspatiul S este si AH -invariant rezulta ca totivectorii yk sunt continuti ın S. Fie p ıntregul pentru care y0, y1, . . . , yp−1 suntliniar independenti, iar yp este o combinatie liniara a acestora. Atunci, subspatiulS ′ = ImY ⊂ S, unde Y = [ y0 y1 . . . yp−1 ] este A-invariant (conform propozitiei4.1, punctul 1) si, fiind generat de vectori proprii asociati aceleiasi valori proprii,orice vector nenul din S ′ este vector propriu al lui A. Pe de alta parte, S ′ estesi AH -invariant ıntrucat ∀x = Y u ∈ S avem AHx = AHY u = Y v ∈ S ′. Inconsecinta, conform propozitiei 4.1, 2, exista o matrice B astfel ıncat AHY = Y B,de unde rezulta AHY z = Y Bz = µY z pentru orice vector propriu z al ei asociatvalorii proprii µ ∈ λ(B). Prin urmare, notand x = Y z avem AHx = µx cu µ ∈∈ λ(B) ⊂ λ(AH). Altfel spus, exista un vector propriu al matricei AH continutın S ′. Cum toti vectorii nenuli din S ′ sunt vectori proprii ai lui A, am aratat camatricea normala A si matricea AH au (cel putin) un vector propriu comun continutın S ′, deci si ın S. Mai mult, din Ax = λx si AHx = µx cu acelasi x 6= 0, avem

λ‖x‖2 = λxHx = xHAx = (AHx)Hx = (µx)

Hx = µ‖x‖2, de unde rezulta µ = λ.

Demonstratia lemei este completa.Vom construi acum un set complet de vectori proprii ortogonali ai matricei

normale A.Pasul 1. Spatiul ICn fiind simultan A- si AH -invariant, conform lemei de mai susmatricele A si AH admit un vector propriu comun x1 care poate fi normat:

Ax1 = λ1x1, AHx1 = λ1x1, ‖x1‖ = 1.

Subspatiul S1 = Im[x1 ] este simultan A-invariant si AH -invariant. Conform pro-pozitiei 4.1, 3 complementul sau ortogonal T1 = S⊥1 ın ICn este, de asemenea,simultan A- si AH -invariant. In consecinta matricele A si AH admit un vectorpropriu (normat) comun x2 ∈ T1, i.e. ortogonal cu x1:

Ax2 = λ2x2, AHx2 = λ2x2, ‖x2‖ = 1, x2 ⊥ x1.6 Un rezultat mai general este urmatorul: doua matrice care comuta admit un vector propriu

comun (v. exercitiul 4.7).

Page 231: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 217

Pasul k. Presupunem ca am construit un set de k < n vectori proprii ortogonalix1, x2, . . . , xk ai matricei normale A (si, simultan, ai matricei AH). SubspatiulSk = Im[x1 x2 . . . xk ] este simultan A-invariant si AH -invariant. Cu aceleasi argu-mente, complementul sau ortogonal Tk = S⊥k ın ICn este, de asemenea, simultan A-

si AH -invariant. In consecinta, matricele A si AH admit un vector propriu (normat)comun xk+1 ∈ T1, i.e. ortogonal cu x1, x2, . . . , xk:

Axk+1 = λk+1xk+1, AHxk+1 = λk+1xk+1, ‖xk+1‖ = 1, xk+1 ⊥ Sk.

Procesul recurent de constructie a vectorilor proprii ortogonali conduce dupa k == n−1 pasi la determinarea unui set ortogonal complet de vectori proprii ai matriceiA si, simultan, ai matricei AH . Notand cu Q matricea vectorilor proprii, implicatiadirecta este demonstrata.

Reciproc, presupunem ca matricea A admite un set complet de vectori proprii

ortogonali xi, i ∈ 1 : n, respectiv o matrice unitara Qdef= X = [x1 x2 · · · xn ] de

vectori proprii. Avem

XHAX = Λ = diag(λ1, λ2, . . . , λn) ∈ ICn×n,

de unde rezultaXHAHX = Λ.

Din ultimele doua relatii avem ΛΛ = ΛΛ = XHAAHX = XHAHAX , i.e. AAH == AHA si teorema este complet demonstrata. 3

Observatia 4.1 Demonstratia prezentata mai sus evidentiaza, printre altele, urma-toarele proprietati suplimentare ale matricelor normale:

1 Daca A este normala, atunci matricele A si AH au aceiasi vectori proprii.2 Daca S este un subspatiu A-invariant, atunci si complementul sau ortogonal

ın ICn este A-invariant. 3

Teorema 4.2 O matrice n × n complexa A este hermitica daca si numai dacaadmite un set complet de n vectori proprii ortogonali si toate valorile proprii suntreale adica exista o matrice unitara Q, ale carei coloane sunt vectori proprii, astfelıncat

QHAQ = Λ = diag(λ1, λ2, . . . , λn) ∈ IRn×n. (4.22)

Altfel spus, matricele hermitice sunt matricele unitar diagonalizabile cu spectru real.In cazul real matricea A este simetrica daca si numai daca admite un set complet

de n vectori proprii ortogonali reali si toate valorile proprii sunt reale adica existao matrice ortogonala Q, ale carei coloane sunt vectori proprii, astfel ıncat

QTAQ = Λ = diag(λ1, λ2, . . . , λn) ∈ IRn×n, (4.23)

i.e. matricele reale simetrice 7 sunt matricele ortogonal diagonalizabile cu spectrureal.

7 Matricele complexe simetrice sunt matrice cu multe proprietati esential diferite de cele alematricelor hermitice sau ale matricelor reale simetrice (vezi [ I ], [ II ] si exercitiul 4.31).

Page 232: metode de calcul numeric matriceal. algoritmi fundamentali

218 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Demonstratie. Matricele hermitice fiind normale, conform teoremei precedentesunt unitar diagonalizabile, i.e. are loc (4.21). Acum, din AH = A rezulta ca ΛH =Λ, i.e. spectrul este real. In cazul real aceasta are drept consecinta faptul ca vectoriiproprii sunt reali. Reciproc, din (4.22) rezulta ΛH = Λ, i.e. QHAQ = QHAHQ, deunde obtinem AH = A. 3

Faptul ca matricele hermitice (ın cazul real, simetrice) au spectrul real si suntunitar (ortogonal) diagonalizabile are implicatii majore asupra tehnicilor de calcul alvalorilor proprii, asigurand o complexitate relativ redusa a algoritmilor si o precizieridicata a rezultatelor. Pentru dezvoltarea algoritmilor de calcul se vor dovedi utilerezultatele prezentate ın continuare. Formularea rezultatelor si demonstratiile vorfi prezentate pentru matricele hermitice, particularizarea pentru matricele realesimetrice (care se reduce, ın esenta, la ınlocuirea multimii IC cu multimea IR sia operatorului hermitic H cu operatorul de transpunere T ) fiind lasata ın sarcinacititorului.

Fie matricea hermitica A ∈ ICn×n si functia reala de n variabile complexe

µ : IC \ 0 → IR definita de µ(x) =xHAx

xHx. Vom fi interesati de extremele functiei

µ. Pentru determinarea acestora, observam mai ıntai ca µ(x) = µ(αx) pentru totiα nenuli din IC. In consecinta, este suficient sa ne rezumam la vectorii x de normaeuclidiana unitara, i.e. sa consideram functia

µ : S → IR, x 7→ µ(x) = xHAx, (4.24)

unde

S =x ∈ ICn ‖x‖2 = xHx = 1

(4.25)

este sfera de raza unitara din ICn. Vom considera ca spectrul λ(A) = λ1, λ2, . . . , λnal matricei A este ordonat descrescator, i.e.

λ1 ≥ λ2 ≥ . . . ≥ λn, (4.26)

si fie qj ∈ ICn, j = 1 : n un set complet de vectori proprii, de norma euclidianaunitara, ai matricei A, asociati valorilor proprii λj . Vom nota

Q =[q1 q2 · · · qn

], Q′

k = Q( : , 1 : k), Q′′k = Q( : , k + 1 : n). (4.27)

Avem urmatorul rezultat.

Teorema 4.3 Valorile extreme absolute ale functiei µ definite ın (4.24), (4.25) suntdate de

M = maxx ∈ S

xHAx = λ1, m = minx ∈ S

xHAx = λn. (4.28)

Mai mult, daca Wk = ImQ′′k este subspatiul A-invariant asociat valorilor proprii

λj, j = k + 1 : n, atunci

maxx ∈ S ∩Wk

xHAx = λk+1. (4.29)

Page 233: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 219

Demonstratie. Conform teoremei 4.2, matricea Q este unitara, A = QΛQH undeΛ = diag(λ1, λ2, . . . , λn) si, prin urmare,

µ(x) = xHAx = yHΛy =

n∑

k=1

λk|y(k)|2, y = QHx = [ y(1) y(2) · · · y(n) ]T .

(4.30)Cum vectorii x si y din (4.30) se afla ıntr-o relatie biunivoca, iar transformarileunitare conserva norma euclidiana, rezulta ca extremele functiei µ coincid cu ex-tremele functiei ν : S → IR, ν(y) = yHΛy. Din faptul ca vectorii y sunt de normaunitara, i.e.

∑nj=1 |y(j)|2 = 1, rezulta

ν(y) = λ1 −n∑

j=2

(λ1 − λj)|y(j)|2 =n−1∑

j=1

(λj − λn)|y(j)|2 + λn. (4.31)

Intrucat sumele din relatia (4.31) sunt, datorita (4.26), nenegative, iar valoareanula a acestor sume se poate realiza, e.g. pentru y(j) = 0, j = 2 : n ın primulcaz si j = 1 : n − 1 ın cel de al doilea, avem egalitatile (4.28). Daca valorileproprii maxima, respectiv minima, sunt simple, atunci valorile extreme ale functieiν se ating pentru vectorii y de forma y1 = [ y(1) 0 · · · 0 ]T = eiθ1e1, respectivyn = [ 0 · · · 0 y(n) ]T = eiθnen, cu θ1, θn ∈ IR. Prin urmare, cele doua extreme alefunctiei µ se ating pentru vectorii x de forma x1 = eiθ1q1 si, respectiv xn = eiθnqn.Daca λ1 are multiplicitatea s, iar λn multiplicitatea t, atunci maximul se atingepentru orice vector x de norma unitara din Vs = ImQ′

s, i.e. subspatiul A-invariantasociat valorilor proprii λj , j = 1 : s, iar minimul se atinge pentru orice vector denorma unitara din Wn−t.

Pentru cea de a doua parte a teoremei, daca x ∈ Wk = V⊥k atunci xHQ′

k = 0 siy = QHx = [ 0 · · · 0 y(k+1) · · · y(n) ]T . Prin urmare,

µ(x) = ν(y) = λk+1 −n∑

j=k+2

(λk+1 − λj)|y(j)|2, (4.32)

de unde, cu aceleasi argumente ca mai sus, se obtine (4.29). 3

Rezultatul urmator prezinta o interesanta caracterizare minimax a valorilor pro-prii ale unei matrice hermitice (ın cazul real, simetrice) si este util prin consecintelesale. Notam, generic, cu V subspatiile liniare ale spatiului ICn si cuW = V⊥ comple-mentele lor ortogonale ın ICn. De asemenea, vom nota cu VS = V ∩ S si, respectiv,WS =W ∩ S, multimile vectorilor de norma euclidiana unitara din V si W .

Teorema 4.4 (Courant – Fisher) Daca matricea hermitica A ∈ ICn×n are valorileproprii ordonate ca ın (4.26) atunci pentru toti k ∈ 1 : n avem

λk = maxdimV = k

minx ∈ VS

xHAx = mindimV = k

maxx ∈ WS

xHAx 8. (4.33)

8 Intrucat oricarui subspatiu n − k dimensional din ICn ıi corespunde un complement or-togonal k dimensional, ultimul termen al egalitatilor (4.33) poate fi scris si ın forma λk == mindimV = n− k maxx ∈ VS x

HAx.

Page 234: metode de calcul numeric matriceal. algoritmi fundamentali

220 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Demonstratie. Fie V un subspatiu arbitrar de dimensiune k si vj , j = 1 : k, o baza

a lui V . Fie, de asemenea, wj , j = 1 : n − k, o baza a lui W . Notam cu V ∈ ICk,

respectiv W ∈ ICn−k, matricele vectorilor care formeaza bazele celor doua subspatiicomplementare. Conform teoremei precedente

λn ≤ xHAx ≤ λ1 (4.34)

pentru toti x din S, i.e. functia µ este marginita pe compactul VS si, ın consecinta,ısi atinge marginile pe aceasta multime. La fel ca ın demonstratia teoremei prece-dente, fie y = QHx, unde Q este o matrice unitara de vectori proprii, ordonaticonform (4.26). Avem, evident, ‖y‖ = ‖x‖ si x = Qy ∈ V daca si numai daca esteortogonal pe W , i.e.

WHx =WHQy = 0. (4.35)

Intrucat W este monica, factorizarea QR a matricei W = QHW = Q

[R0

]

are

matricea superior triunghiulara R ∈ IC(n−k)×(n−k) nesingulara. In consecinta, (4.35)devine

[RH 0

]QHy = 0. (4.36)

Notand zdef= QHy relatia (4.36) impune z(1 : n−k) = 0. Notand, ınca o data,

udef= z(n−k +1 : n) ∈ ICk si tinand seama de faptul ca transformarile unitare

conserva norma euclidiana, din (4.35), (4.36) rezulta ca x = Qy = QQz = Qu, undeQ = QQ( : , n−k+1 : n), apartine multimii VS daca si numai daca ‖u‖ = 1, faranici o alta restrictie asupra lui u. Acum, putem alege u astfel ıncat y(1 : k−1) = 0.Intr-adevar, y = Q( : , n−k+1 : n)u si orice solutie normata (i.e. de norma euclidianaunitara) a sistemului subdeterminat Q(1 : k−1, , n−k+1 : n)u = 0 asigura satisfacereaacestei conditii. Cu aceasta alegere a lui u, pentru vectorul corespunzator x din VS ,avem

µ(x) = xHAx = yHΛy = λk −n∑

j=k+1

(λk − λj)|y(j)|2 ≤ λk, (4.37)

unde am tinut seama de faptul ca∑n

j=k |y(j)|2 = ‖y‖2 = 1 si de ordonarea des-crescatoare a valorilor proprii. Natural, din (4.37) rezulta

minx ∈ VS

xHAx ≤ λk (4.38)

si, cum subspatiul V , de dimensiune k, era arbitrar, inegalitatea (4.38) are loc ıntoate subspatiile de aceeasi dimensiune sau, altfel spus,

maxdimV = k

minx ∈ VS

xHAx ≤ λk. (4.39)

Ramane sa aratam ca aceasta margine este atinsa efectiv. Aceasta se ıntampla ınsubspatiul A-invariant asociat primelor k valori proprii din secventa (4.26). Intr-adevar, fie V = ImQ′

k si x = Q′kz cu ‖z‖ = 1. Rezulta ‖x‖ = 1, i.e. x ∈ VS si

µ(x) = xHAx =k−1∑

j=1

(λj − λk)|z(j)|2 + λk ≥ λk, (4.40)

Page 235: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 221

de unde, ın acest subspatiu,

minx ∈ VS

xHAx ≥ λk (4.41)

egalitatea obtinandu-se pentru z = [ 0 · · · 0 1 ]T . Prima egalitate din (4.33) estedemonstrata. Demonstratia celei de a doua egalitati (4.33) urmeaza aceleasi idei.Intrucat dimW = n− k, exista un vector x ∈ WS astfel ıncat vectorul y = QHx arecomponentele k+1 : n nule (demonstrati!). Pentru aceasta alegere a lui x avem orelatie de forma (4.40)

µ(x) = xHAx = yHΛy =

k−1∑

j=1

(λj − λk)|y(j)|2 + λk ≥ λk, (4.42)

de unde rezultamax

x ∈ WSxHAx ≥ λk. (4.43)

Cum subspatiul (n−k)-dimensionalW a fost arbitrar, rezulta ca inegalitatea (4.43)are loc ın toate subspatiile de aceasta dimensiune sau, altfel spus,

mindimV = k

maxx ∈ WS

xHAx ≥ λk. (4.44)

Adaugand faptul ca marginea din (4.44) se atinge efectiv ın subspatiulW = ImQ′′k,

cea de a doua egalitate (4.33), si o data cu ea ıntreaga teorema, sunt completdemonstrate. 3

Teorema Courant – Fisher este importanta, ın contextul calculatoriu al aces-tei lucrari, prin consecintele sale, dintre care cateva sunt prezentate ın continuare.

Notam A[k] def= A(1 : k, 1 : k) submatricele lider principale de ordinul k ale matri-

cei hermitice A ∈ ICn×n, care sunt la randul lor, evident, hermitice. Presupunem

ca spectrele λ(A[k]) = λ[k]1 , λ[k]2 , . . . , λ

[k]k (evident, reale) ale submatricelor lider

principale sunt, si ele, ordonate descrescator, i.e.

λ[k]1 ≥ λ

[k]2 ≥ . . . ≥ λ

[k]k . (4.45)

Teorema 4.5 (Teorema de separare) Valorile proprii ale submatricelor lider prin-cipale de ordinul k ale unei matrice hermitice separa valorile proprii ale subma-tricelor lider principale de ordinul k + 1, i.e.

λ[k+1]1 ≥ λ[k]1 ≥ λ

[k+1]2 ≥ λ[k]2 ≥ . . . ≥ λ

[k]k−1 ≥ λ

[k+1]k ≥ λ[k]k ≥ λ

[k+1]k+1 , (4.46)

pentru toti k ∈ 1 : n−1.

Demonstratie. Este suficient sa consideram cazul k = n−1. Pentru simplificarea

notatiilor, fie λ′idef= λ

[n−1]i , i = 1 : n−1. Cu aceste notatii, este suficient sa dovedim

inegalitatileλi ≥ λ′i ≥ λi+1, i = 1 : n− 1. (4.47)

Page 236: metode de calcul numeric matriceal. algoritmi fundamentali

222 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Avem, evident,

xHA[n−1]x =[xH 0

]A

[x0

]

, ∀x ∈ ICn−1. (4.48)

Pe aceasta baza, ıntre multimile

Mi=µ ∈ IR µ = maxx∈WS

xHAx, W ⊂ ICn, dimW = n−i, (4.49)

M′i=µ′ ∈ IR µ′=maxx∈WS

xHA[n−1]x, W ⊂ ICn−1, dimW = n−1−i,

(4.50)exista relatiile

Mi ⊆M′i ⊆Mi+1, (4.51)

de unde rezultaminMi+1 ≤ minM′

i ≤ minMi, (4.52)

inegalitati care, ın baza teoremei Courant-Fisher, sunt echivalente cu (4.47). Teo-rema este demonstrata. 3

O relatie dintre valorile proprii a doua matrice hermitice si valorile proprii alesumei lor, utila ın aprecierea influentei perturbatiilor numerice hermitice, este dataın teorema urmatoare.

Teorema 4.6 Daca matricele hermitice A,E ∈ ICn×n au spectrele ordonate des-crescator, atunci, cu notatii evidente, avem

λk(A) + λ1(E) ≥ λk(A+ E) ≥ λk(A) + λn(E) (4.53)

pentru toti k ∈ 1 : n.

Demonstratie. Conform teoremei Courant-Fisher

λk(A+ E) = mindimV = k

maxx ∈ WS

xH(A+ E)x ≤

≤ mindimV = k

( maxx ∈ WS

xHAx+ maxx ∈ WS

xHEx) ≤

≤ mindimV = k

( maxx ∈ WS

xHAx+ λ1(E)) = λk(A) + λ1(E). (4.54)

Pentru a demonstra a doua inegalitate (4.53) avem, similar,

λk(A+ E) = maxdimV = k

minx ∈ VS

xH(A+ E)x ≥

≥ maxdimV = k

( minx ∈ VS

xHAx+ minx ∈ VS

xHEx) ≥

≥ maxdimV = k

( minx ∈ VS

xHAx+ λn(E)) = λk(A) + λn(E). (4.55)

Teorema este demonstrata. 3

In sfarsit, cu notatiile utilizate ın teorema 4.8, formulam urmatorul rezultatutil, de asemenea, ın evaluarea influentelor perturbatiilor numerice asupra valorilorproprii ale matricelor hermitice.

Page 237: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 223

Teorema 4.7 (Wielandt – Hoffmann) Daca matricele A,E ∈ ICn×n sunt hermitice,atunci

n∑

j=1

(λj(A+ E)− λj(A))2 ≤ ‖E‖2F , (4.56)

unde ‖E‖F =√∑n

i=1 |eii|2 + 2∑n

i=2

∑i−1j=1 |eij |2 =

√∑ni=1 λ

2i (E) este norma Fro-

benius a matricei E.

Demonstratie. Pentru demonstratie se poate consulta [ IV ]. 3

Un rezultat remarcabil, de o factura aparte, se refera la inertia unei matrice.Inertia unei matrice hermitice A ∈ ICn×n se defineste prin tripletul (n−, n0, n+)unde n− este numarul valorilor proprii negative, n0 este numarul valorilor propriinule si, respectiv, n+ este numarul valorilor proprii pozitive ale matricei A. Deasemenea, se spune ca doua matrice (hermitice) A,B ∈ ICn×n sunt congruente dacaexista o matrice nesingulara T ∈ ICn×n astfel ıncat B = THAT . Rezultatul, datoratlui Sylvester, are urmatorul enunt.

Teorema 4.8 Doua matrice hermitice congruente au aceeasi inertie.

Demonstratie. Fie A ∈ ICn×n hermitica, B = THAT cu T nesingulara si λk(A)o valoare proprie nenula a matricei A. Presupunem ca spectrele matricelor A si Bsunt ordonate descrescator. Conform teoremei Courant-Fisher avem

λk(B) = maxdimV = k

minx ∈ VS

xHBx ≥ minx ∈ VS

xHBx = minx ∈ V∗

xHBx

xHx, (4.57)

unde V este orice subspatiu particular de dimensiune k, iar V∗ = V \ 0. Con-siderand V = ImT−1Q′

k, cu Q′k definit ın (4.27), avem x ∈ V∗ daca si numai daca

x = T−1Q′kz cu z ∈ ICk, z 6= 0. Pe de alta parte, matricea R

def= TTH este her-

mitica, pozitiv definita (i.e. xHRx > 0, ∀x 6= 0) si, prin urmare, are spectrul real sipozitiv (demonstrati!) aceleasi proprietati avandu-le si matricea R−1 = T−HT−1.Cu aceste precizari, pentru toti x ∈ V∗, avemxHBx = xHTHQΛAQ

HTx = zHdiag (λ1(A), λ2(A), . . . , λk(A))z

xHx = zHQ′Hk R−1Q′

kz,, (4.58)

de unde, tinand seama de ordonarea valorilor proprii, rezulta

xHBx ≥ λk(A)zHzλmin(R

−1)zHz ≤ xHx ≤ λmax(R−1)zHz.

(4.59)

Cu aceste inegalitati, din (4.57), obtinem

λk(B) ≥ λk(A)

λmax(R−1), daca λk(A) > 0

λk(B) ≥ λk(A)

λmin(R−1), daca λk(A) < 0.

(4.60)

Page 238: metode de calcul numeric matriceal. algoritmi fundamentali

224 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Schimband rolul matricelor A si B, cu un rationament analog obtinem urmatoarelecorespondente ale relatiilor (4.60)

λk(B) ≤ λmax(R)λk(A), daca λk(A) > 0

λk(B) ≤ λmin(R)λk(A), daca λk(A) < 0.(4.61)

In concluzie, ın toate cazurile, αλk(A) ≤ λk(B) ≤ βλk(A) cu α > 0, β > 0, i.e.λk(A) si λk(B) au acelasi semn. Rezulta ca A si B au aceeasi inertie. 3

In contextul acestui paragraf este natural sa introducem matricele antihermitice,respectiv antisimetrice ın cazul real.

Definitia 4.5 Matricea A ∈ ICn×n se numeste antihermitica daca

AH = −A. (4.62)

In cazul real, matricea A ∈ IRn×n se numeste antisimetrica daca

AT = −A. (4.63)

O matrice antihermitica are elementele diagonale pur imaginare. Este usor de ob-servat ca daca matricea complexa A este antihermitica, atunci matricea B = −iAeste hermitica. In consecinta, A este unitar diagonalizabila si are toate valorileproprii pur imaginare. Matricele antihermitice sunt normale.

In cazul real, o matrice antisimetrica are elementele diagonale nule. Daca Aeste antisimetrica, atunci B = −iA este o matrice complexa hermitica. Rezultaca A este unitar diagonalizabila si are toate valorile proprii pur imaginare. Cum,ın aceasta situatie, valorile proprii apar ın perechi complex conjugate rezulta ca omatrice antisimetrica de ordin impar are, ın mod necesar, o valoare proprie nula,i.e. este singulara. Evident, o matrice antisimetrica este normala.

Ultimul rezultat pe care ıl prezentam se refera la valorile si vectorii proprii pentrumatricele unitare si ortogonale.

Teorema 4.9 O matrice n×n complexa A este unitara daca si numai daca admiteun set complet de n vectori proprii ortogonali si toate valorile proprii sunt de modulunitar, adica este unitar diagonalizabila cu spectru unitar, respectiv exista o matriceunitara Q ∈ ICn×n astfel ıncat

QHAQ = Λ = diag(λ1, λ2, . . . , λn) cu |λi| = 1, ∀ λi. (4.64)

In cazul real matricea A este ortogonala daca si numai satisface aceleasi conditii,i.e. este unitar diagonalizabila cu spectru unitar.

Demonstratie. O matrice unitara A ∈ ICn×n fiind normala, conform teoremei4.1, este unitar diagonalizabila, i.e. exista o matrice unitara Q ∈ ICn×n astfel ıncatQHAQ = Λ = diag(λ1, λ2, . . . , λn), de unde rezulta A = QΛQH . In plus, dinAHA = In obtinem ΛΛ = In, i.e. λjλj = |λj |2 = 1, de unde rezulta |λj | = 1,j = 1 : n. Deci toate valorile proprii sunt de modul unitar, i.e. pot fi scrise subforma λj = eiθj , cu θj ∈ IR, j = 1 : n. Reciproc, daca avem QHAQ = Λ, cu Q

Page 239: metode de calcul numeric matriceal. algoritmi fundamentali

4.1. FORMULAREA PROBLEMEI 225

unitara si Λ diagonala cu elementele diagonale de modul unitar, atunci prin calculdirect rezulta imediat AHA = In, i.e. A este unitara. In cazul real demonstratiaeste identica cu singura mentiune suplimentara ca alaturi de orice valoare propriecomplexa λj = eiθj ∈ IC \ IR apare si conjugata ei λj = e−iθj . 3

Observatia 4.2 Este simplu de constatat ca daca o matrice complexa A estenormala, hermitica sau unitara, atunci orice matrice B unitar asemenea cu A areaceleasi proprietati. Similar, ın cazul real, proprietatile de normalitate, simetrie siortogonalitate sunt conservate de transformarile ortogonale de asemanare. Aceastainvarianta explica utilizarea exclusiva a transformarilor unitare (ortogonale) ın de-mersul calculatoriu legat de valorile si vectorii proprii. 3

Incheiem acest paragraf cu precizarea ca principala proprietate comuna a celortrei tipuri de matrice mentionate mai sus, indusa de proprietatea de normalitate,consta ın faptul ca toate admit seturi complete de vectori proprii ortogonali, faptcare le confera o perfecta conditionare a spectrelor de valori proprii (v. § 4.10).

4.1.5 Localizarea valorilor proprii

In finalul acestei sectiuni introductive vom prezenta cateva rezultate privitoare lalocalizarea valorilor proprii ın planul complex, rezultate utile atat prin ele ınsele catsi ın contextul stabilirii initializarilor pentru diverse metode iterative de calcul saual analizei sensibilitatii valorilor proprii la perturbatii ın matricea data.

Unele din cele mai cunoscute rezultate ın aceasta privinta sunt oferite de teo-remele urmatoare.

Teorema 4.10 Oricare ar fi matricea A ∈ ICn×n si ‖·‖ o familie arbitrara de normeconsistente avem

ρ(A) ≤ ‖A‖. (4.65)

Demonstratie. Din proprietatea de consistenta a familiei de norme pentru oriceλ ∈ λ(A) si vector propriu asociat x cu ‖x‖ = 1 avem |λ| = ‖λx‖ = ‖Ax‖ ≤≤ ‖A‖‖x‖ = ‖A‖, de unde rezulta (4.65) 9. 3

Teorema 4.11 (Gershgorin) Valorile proprii ale unei matrice A ∈ ICn×n sunt si-tuate ın domeniul D din planul complex definit de

D =

n⋃

i=1

Di, (4.66)

9 Exista si un rezultat, datorat lui Householder (v. exercitiul 4.32), care arata ca pentruorice ε > 0 exista o norma consistenta ‖ · ‖ astfel ıncat ‖A‖ ≤ ρ(A) + ε, relatie care, ımpreunacu (4.65), permite aproximarea oricat de buna a razei spectrale a unei matrice cu ajutorul uneinorme a acesteia. Din pacate, aceasta norma este o norma speciala care depinde de A si ε, astfelca rezultatul mentionat are o valoare ın primul rand teoretica.

Page 240: metode de calcul numeric matriceal. algoritmi fundamentali

226 CAPITOLUL 4. VALORI SI VECTORI PROPRII

unde Di sunt discurile

Di = z ∈ IC | |z − aii| ≤n∑

j=1

j 6=i

|aij |, i = 1 : n, (4.67)

numite discuri Gershgorin.

Demonstratie. Fie x un vector propriu asociat valorii proprii λ ∈ λ(A). Atuncilinia i a relatiei Ax = λx se scrie

(λ− aii)xi =n∑

j=1

j 6=i

aijxj , (4.68)

de unde rezulta |λ − aii||xi| ≤∑n

j=1

j 6=i|aij ||xj |. Alegand linia i astfel ıncat |xi| =

= maxk=1:n(|xk|) 6= 0, rezulta

|λ− aii| ≤n∑

j=1

j 6=i

|aij ||xj ||xi|≤

n∑

j=1

j 6=i

|aij |, (4.69)

i.e. λ ∈ Di. 3

Daca o linie a matricei A are elementele extradiagonale nule, atunci elementuldiagonal este o valoare proprie a matricei A, iar discul Gershgorin corespunzatorliniei respective se reduce la punctul aii. De asemenea, se poate arata [ I ] ca dacam discuri Gershgorin formeaza o multime disjuncta de multimea celorlalte n −mdiscuri, atunci exact m valori proprii se gasesc situate ın reuniunea celor m discuri.In particular, un disc disjunct de celelalte contine exact o valoare proprie 10.

-

6

&%'$

Reλ

Imλ

×××

λ1

λ2

λ3

-

6

&%'$

Reλ

Imλ

×××

λ1

λ2

λ3

a) b)

Fig. 4.2: Utilizarea discurilor Gershgorin ”pe linii” (a) si ”pe coloane” (b) pentrulocalizarea valorilor proprii ai matricei din exemplul 4.2.

10 Discurile Gershgorin (4.67) ar putea fi denumite discuri-linie ıntrucat sunt construite cuajutorul liniilor matricei date. Cum transpusa matricei are acelasi spectru, aplicand teorema4.11 matricei transpuse obtinem o localizare a valorilor proprii ın reuniunea discurilor Gershgorindefinite pe coloane. Evident, o localizare mai buna se obtine intersectand cele doua domenii.

Page 241: metode de calcul numeric matriceal. algoritmi fundamentali

4.2. FORMA SCHUR 227

Exemplul 4.2 Consideram matricea

A =

1 0 11 5 0−1 1 −1

pentru care cele trei discuri Gershgorin sunt D1 de centru 1 si raza 1, D2 de centru 5si raza 1 siD3 de centru -1 si raza 2 (v. fig. 4.2), iar valorile proprii sunt λ1 = 5.0394,λ2,3 = −0.0197 ± 0.4450i. Raza spectrala este deci ρ(A) = 5.0394, inferioara e.g.normei ‖A‖F = 5.5678. 3

Teorema lui Gershgorin este utila, de exemplu, pentru deciziile de neglijare a ele-mentelor extradiagonale la o precizie fixata a valorilor proprii calculate ın tehnicilede diagonalizare iterativa prin transformari de asemanare. Generalizari ale teoremei4.11 fac obiectul exercitiilor 4.40 si 4.41. Alte rezultate privind localizarea valorilorproprii se pot gasi ın [ I ], [ II ].

4.2 Forma Schur

Transformarile de asemanare unitare, respectiv ortogonale ın cazul real, prezintamarele avantaj de a conserva conditionarea spectrului de valori proprii ale uneimatrice date (v. § 4.10). De aceea vom fi interesati ın utilizarea lor exclusiva pentrudeterminarea valorilor proprii. Pe de alta parte, structurile canonice, cum esteforma Jordan, nu se pot obtine, ın general, prin astfel de transformari 11. Rezultatulprincipal al acestui paragraf arata ca orice matrice este unitar asemenea cu o matricetriunghiulara, numita forma Schur. In acest fel este posibila evidentierea valorilorproprii ale unei matrice (elementele diagonale ale formei sale Schur), utilizand osecventa de transformari unitare de asemanare.

4.2.1 Forma Schur (complexa)

Calculul valorilor proprii ale unei matrice este intim legat de calculul vectorilorproprii asociati. Daca λ ∈ λ(A) este cunoscuta, atunci vectorul propriu asociat esteo solutie nenula a unui sistem liniar omogen. Daca se cunoaste un vector propriu xal matricei A, atunci valoarea proprie asociata poate fi calculata cu relatia

xHAx

xHx=xHλx

xHx= λ (4.70)

care, pentru x de norma euclidiana unitara, i.e. ‖x‖ = 1, devine

λ = xHAx. (4.71)

Intrucat valorile proprii sunt radacinile unei ecuatii algebrice, calculul lor pentrumatrice de ordin superior lui patru, ın absenta cunoasterii vectorilor proprii, este

11 Matricele normale, care sunt unitar diagonalizabile (v. teorema 4.10), nu constituie un cazgeneric.

Page 242: metode de calcul numeric matriceal. algoritmi fundamentali

228 CAPITOLUL 4. VALORI SI VECTORI PROPRII

ın mod necesar un proces (iterativ) infinit, aceeasi situatie aparand si la calcululvectorilor proprii fara a se cunoaste valorile proprii asociate.

De aceea, una din ideile aflate la baza asigurarii eficientei tehnicilor de calcula valorilor si vectorilor proprii este exploatarea rezultatelor partiale prin reduce-rea corespunzatoare a dimensiunii problemei. In sprijinul aplicarii acestei idei vinurmatoarele rezultate.

Propozitia 4.2 Fie A ∈ ICn×n si X ⊂ ICn un subspatiu A-invariant p-dimensionaldat printr-o baza ortogonala x1, x2, . . . , xp. Atunci exista o matrice unitara Q ∈∈ ICn×n cu Q( : , j) = xj, j = 1:p, astfel ıncat

QHAQ =

[S11 S12

0 S22

]

, (4.72)

cu S11 ∈ ICp×p.In cazul real, i.e. A ∈ IRn×n si X ⊂ IRn, matricea Q poate fi reala (i.e. ortogo-

nala), iar matricea reala QTAQ are structura (4.72).

Demonstratie. Fie Q( : , 1 : p) = Xdef= [x1 x2 · · · xp ] si Y ∈ ICn×(n−p) o baza

ortogonala a complementului ortogonal Y = X⊥ al lui X ın ICn. Atunci matriceaQ = [X Y ] este unitara. Conform propozitiei 4.1, punctul 2, exista o matriceS11 ∈ ICp×p cu λ(S11) ⊂ λ(A) astfel ıncat AX = XS11, i.e. X

HAX = S11. In plusY HAX = Y HXS11 = 0. In consecinta avem

S=QHAQ=

[XH

Y H

]

A[X Y

]=

[XHAX XHAYY HAX Y HAY

]

=

[S11 S12

0 S22

]

(4.73)unde, evident, S12 = XHAY , S22 = Y HAY . q.e.d.

In cazul real, conform aceleiasi propozitii 4.1, toate subspatiile implicate ındemonstratia de mai sus sunt ın IRn, iar matricea Q este ortogonala. Evident, ınacest caz spectrul matricei S11 este o submultime simetrica a spectrului matricei A.Demonstratia este completa. 3

Observatia 4.3 Calculul matricei unitare de asemanareQ este conditionat esentialde cunoasterea unei baze V = [ v1 v2 · · · vp ] a subspatiului A-invariant X . In acestcaz, constructia unei baze ortogonale X a lui X si a unei completari ortogonale Yse poate face dupa recomandarile din capitolul 3. Concret, daca

V = Q

[R1

0

]

este factorizarea QR (complexa) a matricei V , unde Q ∈ ICn×n este unitara, iarR1 ∈ ICp×p este nesingulara, atunci X = Q( : , 1 : p), Y = Q( : , p +1 : n) suntcele doua baze ortogonale cautate, iar Q este matricea de transformare unitara deasemanare din (4.72). 3

Pentru p = 1 baza V a subspatiului A-invariant din propozitia 4.2 se reducela un vector propriu x de norma unitara asociat valorii proprii λ. In acest cazpropozitia 4.2 se particularizeaza ın urmatoarea lema.

Page 243: metode de calcul numeric matriceal. algoritmi fundamentali

4.2. FORMA SCHUR 229

Lema 4.2 (Deflatie unitara) Fie A ∈ ICn×n si λ ∈ λ(A). Atunci exista o matriceunitara Q ∈ ICn×n astfel ıncat

QHAQ =

[λ S12

0 S22

]

. (4.74)

Conform observatiei 4.3, matricea de transformare poate fi Q = UH1 , unde U1 este

reflectorul (complex) care anuleaza elementele 2 : n ale vectorului propriu x asociatvalorii proprii λ.

Aplicarea consecventa a lemei 4.2 ne conduce la urmatorul rezultat important.

Teorema 4.12 (Forma Schur) Oricare ar fi matricea A ∈ ICn×n exista o matriceunitara Q ∈ ICn×n astfel ıncat matricea

QHAQ = S, (4.75)

este superior triunghiulara. Elementele diagonale ale matricei S sunt valorile pro-prii ale matricei A si pot fi dispuse ın orice ordine predeterminata.

Matricea S se numeste forma Schur (FS) a matricei A, iar coloanele matriceide transformare Q se numesc vectori Schur ai matricei A asociati formei Schur S.

Demonstratie. Pasul 1. Conform lemei 4.2, daca λ1 ∈ λ(A), atunci exista omatrice unitara Q1 astfel ıncat

S1 = QH1 AQ1 =

λ1 S

(1)12

0 S(1)22

,

realizandu-se o deflatie ın prima coloana.Pasul k. Presupunem ca ın primii k − 1 pasi am realizat triangularizarea ın

primele k − 1 coloane prin transformari unitare de asemanare

Sk−1 = QHk−1 . . . Q

H2 Q

H1 AQ1Q2 . . . Qk−1 =

S(k−1)11 S

(k−1)12

0 S(k−1)22

,

unde S(k−1)11 ∈ IC(k−1)×(k−1) este superior triunghiulara. Vom aplica lema 4.2 pentru

a realiza deflatia ın coloana k. Pentru aceasta, daca λk ∈ λ(S(k−1)22 ), atunci exista

o matrice unitara Qk astfel ıncat

QHk S

(k−1)22 Qk =

[

λk S(k)12

0 S(k)22

]

.

Acum, matricea

Qk =

[Ik−1 0

0 Qk

]

∈ ICn×n

Page 244: metode de calcul numeric matriceal. algoritmi fundamentali

230 CAPITOLUL 4. VALORI SI VECTORI PROPRII

este unitara si

Sk = QHk Sk−1Qk =

[

S(k)11 S

(k)12

0 S(k)22

]

este superior triunghiulara ın primele k coloane.Procesul de triangularizare prin transformari unitare de asemanare, initiat con-

form pasului 1 si continuat conform celor prezentate la pasul k, produce dupan− 1 pasi matricea superior triunghiulara

S = QHAQ,

unde matriceaQ = Q1Q2 . . . Qn−1, (4.76)

este unitara ca produs de matrice unitare.Evident, ordinea elementelor diagonale ale matricei S poate fi aleasa ın mod

arbitrar prin selectarea corespunzatoare a vectorilor proprii ın aplicarea lemei 4.2.Demonstratia este completa. 3

Incheiem paragraful subliniind faptul ca orice matrice patrata este unitar aseme-nea cu o matrice superior triunghiulara. Daca matricea A este reala, dar are si valoriproprii complexe, atunci forma Schur S este complexa ca si matricea de transforma-re Q. In acest caz se spune ca S este forma Schur complexa (FSC) a matricei A.

4.2.2 Forma Schur reala

In majoritatea aplicatiilor ın care este necesar calculul valorilor proprii, matricea areelementele reale. In aceste situatii este mult mai eficienta utilizarea unei aritmeticireale. Pentru aceasta, perechile de valori proprii complexe si perechile de vectoriproprii asociati (care, dupa cum s-a mai precizat, pot fi considerati, la randul lor, subforma unor vectori complex conjugati) trebuie si pot fi tratate ın mod unitar, ıntr-oaritmetica reala, prin intermediul unor blocuri matriceale 2 × 2, respectiv al unorsubspatii A-invariante reale. Corespondentul formei Schur din cazul complex devineo matrice cvasi-superior triunghiulara ın care perechile de valori proprii complexconjugate sunt evidentiate prin blocuri diagonale 2× 2, numita forma Schur reala.

In acest context vom formula si, ın masura ın care apar aspecte noi, vom demon-stra corespondentele ”reale” ale lemei 4.2 si teoremei 4.12.

Lema 4.3 (Deflatie ortogonala) Fie A ∈ IRn×n.a) Daca λ ∈ λ(A) ∩ IR, atunci exista o matrice ortogonala Q ∈ IRn×n astfel ıncat

QTAQ =

[λ S12

0 S22

]

. (4.77)

b) Daca λ1,2 = α± iβ ∈ λ(A), β 6= 0, atunci exista o matrice ortogonala Q ∈ IRn×n

astfel ıncat

QTAQ =

[S11 S12

0 S22

]

, (4.78)

Page 245: metode de calcul numeric matriceal. algoritmi fundamentali

4.2. FORMA SCHUR 231

undeS11 ∈ IR2×2, cu λ(S11) = λ1, λ2. (4.79)

Demonstratie. Prima parte a lemei se demonstreaza la fel cu lema 4.2 considerando matrice ortogonala Q a carei prima coloana este un vector propriu de normaeuclidiana unitara asociat valorii proprii λ. Pentru a doua parte a lemei consideramvectorii proprii x1,2 = v1 ± iv2 asociati valorilor proprii complex conjugate λ1,2 siY = [ y1 y2 ] ∈ IRn×2 o baza ortogonala a subspatiului liniar A-invariant S = ImV ,

unde V = [ v1 v2 ] ∈ IRn×2 si Z ∈ IRn×(n−2) o baza ortogonala a complementuluiortogonal T = S⊥ a lui S ın IRn 12. Evident, matricea Q = [Y Z ] este ortogonala.Pe de alta parte, ıntrucat vectorii v1 si v2 sunt liniar independenti (vezi propozitia4.1), exista o matrice nesingulara P ∈ IR2×2 astfel ıncat V = Y P . In consecinta,

din (4.14) avem AV = V B cu B =

[α −ββ α

]

. Rezulta

AY = AV P−1 = V BP−1 = Y S11,

unde

S11 = P

[α −ββ α

]

P−1. (4.80)

si, deci,

A1 = QTAQ =

[Y T

ZT

]

A[Y Z

]=

[Y TAY Y TAZ

0 ZTAZ

]

=

[S11 S12

0 S22

]

,

(4.81)punandu-se ın evidenta blocul diagonal de ordinul 2 real S11 avand valorile propriicomplexe λ1,2. 3

Calculul matricei ortogonale de asemanare Q din lema de mai sus este conditio-nat esential de cunoasterea unui vector propriu (real) x asociat valorii proprii realeevidentiate respectiv a partii reale si a celei imaginare a unui vector propriu asociatunei valori proprii complexe. Altfel spus, posibilitatea deflatiei este conditionata decunoasterea subspatiului A-invariant corespunzator.

Procedand ca ın demonstratia teoremei 4.12, i.e. efectuand deflatia matriceiA pentru valorile proprii reale, respectiv pentru perechile de valori proprii com-plexe, prin aplicarea sistematica a lemei de mai sus, pana la epuizarea ıntreguluispectru si cumuland transformarile ortogonale partiale, obtinem urmatorul rezultatimportant.

Teorema 4.13 (Forma Schur reala) Oricare ar fi matricea reala A ∈ IRn×n, existao matrice ortogonala Q ∈ IRn×n astfel ıncat

QTAQ = S =

S11 S12 · · · S1p

0 S22 · · · S2p

· · · · · · · · · · · ·0 0 · · · Spp

, (4.82)

12 Pentru constructia acestor baze vezi observatia 4.3.

Page 246: metode de calcul numeric matriceal. algoritmi fundamentali

232 CAPITOLUL 4. VALORI SI VECTORI PROPRII

unde Sii ∈ IR1×1 sau Sii ∈ IR2×2 si toate blocurile diagonale 2×2 au valorile propriicomplexe. Avem, evident,

λ(A) = λ(S) =

p⋃

i=1

λ(Sii). (4.83)

Matricea cvasi-superior triunghiulara S se numeste forma Schur reala (FSR) a ma-tricei A, iar coloanele matricei de transformare Q se numesc vectori Schur ai ma-tricei A asociati formei Schur reale S.

Evident, ordinea pasilor de deflatie fiind arbitrara, forma Schur reala a uneimatrice poate avea blocurile diagonale ın orice ordine predeterminata.

Conform (4.83) valorile proprii reale ale unei matrice pot fi determinate prinsimpla inspectie a elementelor diagonale ale formei sale Schur reale, iar cele complexese pot calcula prin rezolvarea ecuatiilor caracteristice (de gradul 2) ale blocurilordiagonale ale acesteia.

Procedura de deflatie sugereaza o tehnica de calcul a valorilor proprii ale uneimatrice prin reducerea acesteia la forma Schur (reala). Din pacate, punerea ınevidenta a fiecarei valori proprii necesita cunoasterea unui vector propriu asociat,care, la randul sau, nu poate fi calculat direct fara a cunoaste valoarea proprierespectiva. De aceea, procedura de deflatie trebuie sa fie completata cu o metodade calcul a unui vector propriu fara cunoasterea valorii proprii asociate.

Metodele cele mai folosite de calcul iterativ al unui vector propriu sunt cunoscutesub denumirile de metoda puterii si metoda puterii inverse.

4.3 Metoda puterii. Metoda puterii inverse

In aceasta sectiune vom prezenta doua modalitati de constructie recurenta a unorsiruri de vectori convergente, ın conditii precizate, catre un vector propriu al uneimatrice date. Aceste metode se bazeaza pe urmatorul rezultat simplu, a caruidemonstratie face obiectul exercitiului 4.11.

Lema 4.4 Fie o matrice A ∈ ICn×n cu spectrul

λ(A) = λ1, λ2, ..., λn . (4.84)

Atunci matricele Ak, k ∈ IN∗, A−µIn, µ ∈ IC, si, ın cazul ın care A este nesingulara,A−1 au aceiasi vectori proprii cu matricea A si spectrele

λ(Ak) = λk1 , λk2 , ..., λkn , (4.85)

λ(A− µIn) = λ1 − µ, λ2 − µ, ..., λn − µ , (4.86)

λ(A−1) =

1

λ1,1

λ2, ...,

1

λn

. (4.87)

Page 247: metode de calcul numeric matriceal. algoritmi fundamentali

4.3. METODA PUTERII. METODA PUTERII INVERSE 233

4.3.1 Metoda puterii

Consideram o matrice A ∈ ICn×n care are o valoare proprie dominanta, i.e. o valoareproprie de modul strict superior modulelor tuturor celorlalte. Numerotam valorileproprii ale matricei A ın ordinea descrescatoare a modulelor

|λ1| > |λ2| ≥ |λ3| ≥ ... ≥ |λn|. (4.88)

Fie y(0) ∈ ICn un vector de norma euclidiana unitara a carui proiectie ortogonalape ”directia” vectorului propriu x1 asociat valorii proprii dominante λ1 ∈ λ(A) estenenula, i.e. xH1 y

(0) 6= 0. Generic, un vector aleator normat satisface o astfel deconditie. Daca A este o matrice simpla, i.e. exista o baza a spatiului ICn formatadin vectorii proprii x1, x2, ..., xn ai acesteia, atunci y(0) poate fi descompus, ın modunic, ın raport cu acesta baza

y(0) =n∑

i=1

γixi, (4.89)

undeγ1 6= 0. (4.90)

Daca definim sirul vectorial (y(k))k∈IN prin

y(k) = ρkAy(k−1), k = 1, 2, · · · (4.91)

cu initializarea y(0) si ρk un factor de normare definit de

ρk =1

‖Ay(k−1)‖ , (4.92)

atunci, folosind inductia, este usor de aratat ca

y(k) = ρkAky(0), (4.93)

unde ρk este un factor de normare cumulat ρk = 1/‖Aky(0)‖. Din (4.89), (4.93) silema 4.2 rezulta

y(k) = ρk

n∑

i=1

Akxi = ρk

n∑

i=1

γiλki xi = ρkλ

k1

(

γ1x1 +n∑

i=2

γi(λiλ1

)kxi

)

. (4.94)

Utilizand (4.88) obtinem∣∣∣λi

λ1

∣∣∣ < 1, i = 2 : n, de unde rezulta

limk→∞

(λiλ1

)k

= 0, i = 2 : n, (4.95)

silimk→∞

y(k) = γx1, (4.96)

ın care γ este un scalar nenul astfel ıncat ‖γx1‖ = 1. Prin urmare, sirul vectorialconstruit cu schema de calcul

Page 248: metode de calcul numeric matriceal. algoritmi fundamentali

234 CAPITOLUL 4. VALORI SI VECTORI PROPRII

MP 1. Pentru k = 1, 2, . . .

1. Se calculeaza vectorul y(k) = Ay(k−1)

2. y(k) ← y(k)/‖y(k)‖bazata pe relatia de recurenta (4.91), care defineste metoda puterii, este convergentcatre vectorul propriu (4.95) asociat valorii proprii dominante a matricei A. Vitezade convergenta este determinata de raportul |λ2/λ1|, fiind cu atat mai mare cu catacest raport este mai mic. In consecinta, metoda este eficienta ın cazul matricelorcare au o valoare proprie net dominanta si o structura cu multe elemente nule (ınvederea unei implementari eficiente a produsului Ay(k−1)).

Pentru oprirea iterarii este necesar un criteriu care sa asigure o precizie de cal-cul impusa. Avand ın vedere faptul ca un vector propriu de norma unitara estedeterminat pana la o multiplicare cu un numar de modul unitar (i.e. eiθ cu θ ∈ IRın cazul complex si ±1 ın cazul real), un criteriu posibil este asigurarea unei co-linearitati impuse ıntre vectorii calculati la doi pasi consecutivi. Cum, ın cazul

complex unghiul dintre doi vectori u si v este definit de φ(u, v) = arccosvHu

‖u‖ · ‖v‖iar ın cazul real de φ(u, v) = arccos

vTu

‖u‖ · ‖v‖ , conditia de oprire a iterarii poate fi

ek = |1− |(y(k))Hy(k−1)| | < tol, respectiv ek = |1− |(y(k))T y(k−1)| | < tol,(4.97)

unde tol este o toleranta prescrisa (vezi si exercitiul 4.48). Introducand si abandonuliterarii la atingerea unui numar maxim de iteratii, obtinem urmatorul algoritm.

Algoritmul 4.1 (Metoda puterii) (Data o matrice A ∈ ICn×n, unnivel de toleranta tol ∈ IR, tol > 1, si un numar maxim admismaxiter deiteratii, algoritmul calculeaza un vector propriu unitar y asociat valoriiproprii dominante a matricei date sau tipareste un mesaj daca obiectivulnu a fost atins ın numarul de iteratii admis.)

1. Se alege aleator un vector y ∈ ICn.

2. y ← y/‖y‖3. i = 0, e = 1

4. Cat timp e > tol

1. Daca i > maxiter atunci

1. Tipareste ’S-a atins numarul maxim de iteratii fara a sefi obtinut nivelul prescris al tolerantei.’

2. Stop

2. z = Ay

3. z ← z/‖z‖4. e = |1− |zHy| |5. y ← z

6. i← i+ 1

Page 249: metode de calcul numeric matriceal. algoritmi fundamentali

4.3. METODA PUTERII. METODA PUTERII INVERSE 235

Comentarii. Avand ın vedere simplitatea relatiei de recurenta, metoda puteriise poate dovedi atractiva daca se cunoaste apriori existenta unei valori proprii netdominante. In caz contrar, viteza de convergenta poate fi nesatisfacatoare, iar ıncazul absentei unei valori proprii dominante sirul poate fi divergent. De aceea,folosind rezultatele lemei 4.4, trebuie realizate transformari ale matricei A care,fara a afecta vectorii proprii, sa creeze o astfel de valoare proprie (net) dominanta.O posibilitate este de a utiliza o ”deplasare” µ (eventual variabila µk) a spectruluimatricei A astfel ıncat matricea A−µIn sa aiba o valoare proprie (net) dominanta.In acest caz schema de calcul pentru o iteratie a metodei puterii cu deplasare devine

MP’ 1. Pentru k = 1, 2, . . .

1. Se calculeaza vectorul y(k) = (A− µk)y(k−1).

2. y(k) ← y(k)/‖y(k)‖.Din nefericire, determinarea deplasarii µk efectiv utile nu este deloc simpla, mo-tiv pentru care aceasta idee este folosita ın paragraful urmator pentru rezolvareaaceleiasi probleme ıntr-un context modificat. 3

4.3.2 Metoda puterii inverse

Presupunem din nou ca matricea A ∈ ICn×n este simpla avand valorile proprii λi,i = 1:n (nu neaparat ıntr-o ordine anumita) si vectorii proprii asociati xi, i = 1 : n.Fie µ 6∈ λ(A) o aproximatie a lui λ1. Atunci, conform lemei 4.4, matricea (µIn−A)−1

are valorile proprii (µ− λi)−1, i = 1 : n, si aceiasi vectori proprii cu cei ai matriceiA. Prin urmare, daca alegem un vector initial y(0) nedefectiv ın raport cu x1, i.e.satisfacand (4.89) si (4.90), putem defini, utilizand metoda puterii pentru matricea(µIn −A)−1, sirul de vectori unitari

y(k) = ρk(µI −A)−1y(k−1), k = 1, 2, ... (4.98)

unde ρk este un factor scalar de normare. Acum, daca deplasarea µ este mult maiapropiata de λ1 decat de λi, i = 2 : n, atunci |(µ − λ1)−1| va fi mult mai maredecat |(µ− λi)−1|, i = 2 : n, i.e.,

maxi=2:n |(µ− λi)−1||(µ− λ1)−1| ≪ 1, (4.99)

si, ın consecinta sirul (y(k)) este foarte rapid convergent catre γx1.Relatia de recurenta (4.98) defineste metoda puterii pentru matricea (µIn−A)−1

si este cunoscuta sub denumirea de metoda puterii inverse cu deplasare pentrumatricea A. Desigur, pentru calculul iteratiei (4.98) nu se inverseaza matriceaµIn − A ci se rezolva sistemul liniar corespunzator, conform urmatoarei scheme decalcul, definitorie pentru o iteratie a metodei puterii inverse.

MPI 1. Pentru k = 1, 2, . . .

1. Se rezolva sistemul (µIn −A)y(k) = y(k−1) ın raport cu y(k).2. y(k) ← y(k)/‖y(k)‖.

Page 250: metode de calcul numeric matriceal. algoritmi fundamentali

236 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Rezolvarea sistemului liniar din schema de mai sus necesita un efort de calcul apre-ciat la ≈ n3/3 operatii scalare ın virgula mobila de tipul α∗β+γ, ceea ce reprezintaun pret foarte ridicat pentru o singura iteratie a procesului de calcul al unui singurvector propriu. Din fericire, cel mai adesea metoda se aplica unor matrice avandstructura superior Hessenberg ceea ce reduce numarul de operatii la ≈ n2 pentruo iteratie. Utilizarea unei deplasari constante µ asigura convergenta catre vectorulpropriu asociat valorii proprii dominante a matricei (A−µIn)−1, i.e. asociat valoriiproprii a matricei A celei mai apropiate de deplasarea µ.

In continuare prezentam o versiune importanta a metodei puterii inverse careutilizeaza o deplasare µk variabila cu pasul k si optimala ıntr-un sens precizat.Conform celor aratate mai sus, deplasarea care asigura cea mai mare viteza deconvergenta este egala ”cu cea mai buna” aproximatie a unei valori proprii a matriceiA, disponibila la pasul respectiv. O modalitate cu excelente rezultate practice esteaceea ın care aceasta aproximatie se obtine rezolvand, ın sens CMMP, sistemulsupradeterminat

y(k−1)µk = Ay(k−1) (4.100)

de n ecuatii cu necunoscuta scalara µk, sistem obtinut prin ”actualizarea”, pentrupasul curent, a relatiei asimptotice y(∞)µ∞ = Ay(∞), care este chiar relatia dedefinitie a valorilor si vectorilor proprii. Pseudosolutia ın sens CMMP a sistemului(4.100) (vezi cap. 3) este asa numitul cat Rayleigh al perechii (A, y(k−1)) definit de

µk =(y(k−1))HAy(k−1)

‖y(k−1)‖2 = (y(k−1))HAy(k−1). (4.101)

Avand ın vedere faptul ca aceasta aproximare este din ce ın ce mai buna rezulta caviteza de convergenta a sirului (y(k))

k∈IN este din ce ın ce mai ridicata. Concret, sepoate demonstra ca are loc asa-numita convergenta patratica, i.e. exista o constantaτ astfel ıncat

‖y(k+1) − γx1‖ ≤ τ‖y(k) − γx1‖2. (4.102)

Criteriile practice de trunchiere a sirului construit prin metoda puterii inverse suntaceleasi cu cele utilizate ın cadrul algoritmului 4.1. Cu aceste precizari prezentamalgoritmul de implementare a metodei puterii inverse cu deplasarile (4.101).

Algoritmul 4.2 (Metoda puterii inverse cu deplasare Rayleigh)(Data o matrice A ∈ ICn×n, un nivel de toleranta tol ∈ IR, tol < 1, si unnumar maxim admismaxiter de iteratii, algoritmul calculeaza un vectorpropriu unitar y al matricei date sau tipareste un mesaj daca obiectivulnu a fost atins ın numarul admis de iteratii.)

1. Se alege aleator un vector y ∈ ICn.

2. y ← y/‖y‖3. i = 0, e = 1

4. Cat timp e > tol

1. Daca i > maxiter atunci

1. Tipareste ’S-a atins numarul maxim de iteratii fara a sefi obtinut nivelul prescris al tolerantei.’

Page 251: metode de calcul numeric matriceal. algoritmi fundamentali

4.3. METODA PUTERII. METODA PUTERII INVERSE 237

2. Stop

2. µ = yHAy

3. Se rezolva sistemul liniar (µIn −A)z = y

4. z ← z/‖z‖5. e = |1− |zHy| |6. y ← z

7. i← i+ 1

Comentarii. Metoda puterii inverse cu deplasare variabila data de catul Rayleighreprezinta cea mai buna cale de calcul al unui vector propriu al unei matrice. Con-vergenta patratica este foarte rapida (dupa cum se poate vedea si din exemplul

4.3). Astfel, e.g. daca ‖y(0) − γx1‖ ≤ ε si τ = 1, atunci ‖y(k) − γx1‖ ≤ ε2k

.Simultan cu calculul vectorului propriu, algoritmul calculeaza si valoarea proprieasociata, data de valoarea finala a deplasarii µ. In vederea obtinerii unei eficientesporite, este utila transformarea prealabila a matricei date la o forma (e.g., formasuperior Hessenberg) care sa aiba ca efect reducerea efortului de calcul necesarpentru rezolvarea sistemului liniar de la instructiunea 4.3. 3

Metoda puterii Metoda puterii inverse

k ek λ(k)1 ek µk = λ

(k)1

0 1.0000000000000 2.0000000000000 1.0000000000000 2.00000000000001 0.1055728090001 3.2000000000000 0.1322781687254 2.94117647058822 0.0262710088797 3.1481481481482 0.2003991735561 3.00451597555663 0.0026194296043 2.8921933085502 0.0000155353785 3.00001698086884 0.0006379322733 3.0572569906791 0.0000000000709 3.00000000017175 0.0002519147863 2.9922635151170 0.0000000000000 3.00000000000006 0.0000549638856 2.99451408581357 0.0000060060669 3.00606986282678 0.0000014882055 2.99742077556749 0.0000006272018 3.0004545082285...

......

23 0.00000000000000 3.0000000351815

Tabelul 4.1: Rezultate numerice privind evolutia erorii de pas ek si aproximatiei

curente λ(k)1 = (y(k))HAy(k) a valorii proprii dominante din exemplul 4.3.

Exemplul 4.3 Se considera matricea companion

A =

2 3 2 −61 0 0 00 1 0 00 0 1 0

,

Page 252: metode de calcul numeric matriceal. algoritmi fundamentali

238 CAPITOLUL 4. VALORI SI VECTORI PROPRII

avand valorile proprii (exacte)

λ1 = 3, λ2,3 = −1± i, λ4 = 1.

Un vector propriu exact asociat valorii proprii dominante λ1 = 3 si, respectiv,vectorul propriu normat calculat pe baza valorii exacte sunt (verificati!)

x1 =

99933311137

, x1 =

x1‖x1‖

=

0.942880899288930.314293633096310.104764544365440.03492151478848

.

Evolutia erorii curente ek din (4.97) si a aproximatiei curente λ1k a valorii propriidominante, calculate cu metoda puterii si metoda puterii inverse ın variantele algo-ritmice 4.1 si 4.2, sunt prezentate ın tabelul 4.1, unde au fost utilizate initializareay(0) = [ 1 0 0 0 ]T pentru vectorul propriu si toleranta de 1.0 × 10−15. Se verificafaptul ca, ın aceleasi conditii initiale, convergenta metodei puterii inverse este multmai rapida. Mai mult, valoarea proprie si vectorul propriu asociat (vezi tabelul4.2), calculate ın aceleasi conditii de oprire a iterarii (i.e. cu aceeasi toleranta) sunt

Metoda puterii Metoda puterii inverse

y(23) =

0.942880897934870.314293636088020.104764548805740.03492151110188

y(5) =

0.942880899288930.314293633096310.104764544365440.03492151478848

Tabelul 4.2: Vectorii proprii calculati pentru datele din exemplul 4.3.

sensibil mai precise ın cazul metodei puterii inverse (nu se constata nici o diferentaın cele 15 cifre semnificative utilizate la afisare fata de valoarea considerata exacta).3

In conformitate cu cele prezentate ın aceasta sectiune, problema calculului va-lorilor si vectorilor proprii 13 se poate rezolva astfel:

1. Se calculeaza un vector propriu, utilizand metoda puterii sau me-toda puterii inverse.

2. Se calculeaza valoarea proprie asociata, utilizand catul Rayleigh.3. Se aplica procedura de deflatie, punand ın evidenta valoarea pro-

prie calculata si reducand dimensiunea problemei.4. Daca nu s-au calculat toate valorile proprii se revine la pasul 1.

Aceasta procedura este elegant exprimata, ıntr-o forma implicita, ın cadrul unuialgoritm performant, cunoscut ın literatura de specialitate sub denumirea de algo-ritmul QR.

13 In cadrul procedurii de deflatie, este vorba de vectorii proprii ai matricei (reduse) curentecare, de la al doilea pas, nu mai sunt vectori proprii ai matricei initiale. Totusi acesti vectoriproprii pot servi, ulterior, la calculul vectorilor proprii ai matricei initiale (vezi exercitiul 4.49).

Page 253: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 239

4.4 Algoritmul QR

Algoritmul QR este, ın esenta, o procedura de deflatie iterativa care construieste(recurent) un sir de matrice unitar asemenea cu matricea initiala, sir care, ın conditiiprecizate, este convergent catre forma Schur. In cazul real se poate impune utilizareaexclusiva a aritmeticii reale. In aceasta situatie termenii sirului sunt matrice orto-gonal asemenea, iar limita sa este o forma Schur reala a matricei initiale.

In vederea minimizarii efortului de calcul, ıntr-o faza preliminara, matricea dataeste adusa, prin transformari de asemanare ce implica un numar (teoretic) finitsi (practic) rezonabil de mic de operatii, la cea mai apropiata structura posibilade forma Schur (reala). Aceasta structura este forma superior Hessenberg 14. Incontinuare, structura Hessenberg este conservata de recurenta fazei iterative a algo-ritmului. In acest fel, se obtine o importanta reducere a complexitatii unei iteratiiQR, fapt esential ın economia algoritmului.

Performantele deosebite ale algoritmului QR se explica atat prin deciziile teore-tice – cum sunt cele referitoare la maximizarea vitezei de convergenta – cat siprin numeroase decizii ”tehnice” de gestionare structurala optima pe parcursuldesfasurarii calculului.

In vederea unei prezentari mai clare si mai concise a algoritmilor din aceastasectiune vom folosi o serie de proceduri dezvoltate ın capitolul 3. Sintaxa utilizatasi o descriere succinta a acestor proceduri sunt date ın tabelul 4.3 15. Precizamca, daca ın apelul acestor proceduri, unii dintre parametrii de iesire au acelasinume cu unii dintre parametrii de intrare, atunci suprascrierea are loc ın interiorulprocedurii respective, cu efecte benefice corespunzatoare pentru economia spatiuluide memorie necesar. De asemenea, pentru a crea posibilitatea unor comparatiicorecte a complexitatilor, numarul asimptotic de operatii aritmetice dat ın tabeleste cel corespunzator operatiilor cu numere reale 16.

14Reamintim ca matricea H ∈ ICn×n este ın forma superior Hessenberg daca hij = 0, ∀ i > j+1.15 Atragem atentia ca, din dorinta de a prezenta cat mai unitar si mai limpede algoritmii

din capitolele 4, 5 si 6, procedurile din tabelul 4.3 au denumirile si sintaxele posibil diferite decele introduse ın capitolul 3. Evident, pentru o implementare performanta a acestor proceduri(acuratete maxima, memorare optima etc.) vor fi urmate recomandarile date ın capitolul 3. Facem,de asemenea, precizarea ca reflectorii complecsi utilizati ın algoritmii din capitolele 4, 5 si 6 sunt, ınexclusivitate, reflectori hermitici. Acolo unde utilizarea reflectorilor nehermitici ofera o alternativade calcul viabila (cum este cazul unor algoritmi din capitolul 5), versiunile respective fac obiectulunor exercitii.

16 In cadrul algoritmilor care opereaza cu numere complexe evaluarea numarului asimptotic deoperatii aritmetice s-a realizat cu urmatoarele corespondente:Operatie cu numere complexe Operatii cu numere reale

adunare/scadere 2ınmultire 6ımpartire 11.

Totusi, chiar cu acceptarea aritmeticii complexe, acolo unde economia de efort de calcul este evi-denta, evaluarea s-a facut considerandu-se ca s-au utilizat explicit operatiile aritmetice cu numerereale. Astfel, de exemplu, pentru un vector x ∈ ICn, ‖x‖22 se calculeaza cu expresia ‖x‖22 =

= ‖Rex‖22 + ‖Imx‖22 si nu folosind ‖x‖22 = xHx =∑n

i=1xixi, realizandu-se un efort de 4n flopi

ın loc de 7n flopi. Precizam, de asemenea, ca evaluarile numarului de operatii nu includ operatiiconexe cum ar fi scalarea.

Page 254: metode de calcul numeric matriceal. algoritmi fundamentali

240 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Sintaxa Intrari Iesiri Descriere Nop

b ∈ IRn Calculul unui reflector real[ b, u, β] = Hr(a) a ∈ IRn u ∈ IRn U1 = In − uuT /β astfel 2n

β ∈ IR ıncat (b = U1a)(2 : n) = 0.

b ∈ ICn Calculul unui reflector com-[ b, u, β] = Hc(a) a ∈ ICn u ∈ ICn plex U1 = In − uuH/β astfel 4n

β ∈ IR ıncat (b = U1a)(2 : n) = 0.

u ∈ IRn Inmultirea la stanga a ma-B = Hrs(u, β, A) β ∈ IR B ∈ IRn×m tricei A cu reflectorul real 4nm

A ∈ IRn×m U1 = In − uuT /β, i.e.B = U1A.

A ∈ IRm×n Inmultirea la dreapta a ma-B = Hrd(A, u, β) u ∈ IRn B ∈ IRm×n tricei A cu reflectorul real 4mn

β ∈ IR U1 = In − uuT /β, i.e.B = AU1.

u ∈ ICn Inmultirea la stanga a ma-B = Hcs(u, β,A) β ∈ IR B ∈ ICn×m tricei A cu reflectorul com- 14nm

A ∈ ICn×m plex U1 = In − uuH/β,i.e. B = U1A.

A ∈ ICm×n Inmultirea la dreapta a ma-B = Hcd(A,u, β) u ∈ ICn B ∈ ICm×n tricei A cu reflectorul com- 14mn

β ∈ IR plex U1 = In − uuH/β,i.e. B = AU1.

b ∈ IR2 Calculul unei rotatii reale P ,[ b, c, s] = Gr(a) a ∈ IR2 c ∈ IR de ordinul 2, astfel ıncat 6

s ∈ IR (b = P T a)(2) = 0.

b ∈ IC2 Calculul unei rotatii comple-[ b, c, s] = Gc(a) a ∈ IC2 c ∈ IR xe P , de ordinul 2, astfel ıncat 18

(b = PHa)(2) = 0.

c ∈ IR Inmultirea la stanga a matri-B = Grs(c, s, A) s ∈ IR B ∈ IR2×m cei A cu P T , i.e. B = P TA, 6m

A ∈ IR2×m unde P este o rotatie realade ordinul 2.

A ∈ IRm×2 Inmultirea la dreapta a ma-B = Grd(A, c, s) c ∈ IR B ∈ IRm×2 tricei A cu rotatia reala de 6m

s ∈ IR ordinul 2 P , i.e. B = AP .

c ∈ IR Inmultirea la stanga a matri-B = Gcs(c, s, A) s ∈ IC B ∈ IC2×m cei A cu PH , i.e. B = PHA, 26m

A ∈ IC2×m unde P este o rotatie comple-xa de ordinul 2.

A ∈ ICm×2 Inmultirea la dreapta a ma-B = Gcd(A, c, s) c ∈ IR B ∈ ICm×2 tricei A cu rotatia complexa 26m

s ∈ IC P de ordinul 2, i.e. B = AP .

Tabelul 4.3: Proceduri utilizate pentru scrierea algoritmilor din capitolele 4, 5 si6. Evaluarea numarului asimptotic de opertii Nop s-a efectuat ın flopi cu numerereale, pentru operatiile cu numere complexe utilizandu-se echivalarile din nota desubsol alaturata. Nu au fost incluse eventuale operatii de scalare pentru evitareadepasirilor ın format virgula mobila.

Page 255: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 241

4.4.1 Reducerea la forma superior Hessenberg

Este binecunoscuta teorema conform careia rezolvarea ecuatiilor algebrice generalede grad superior lui patru nu este posibila printr-o secventa finita de operatii arit-metice (inclusiv extrageri de radical). Intrucat calculul valorilor proprii este echiva-lent cu rezolvarea ecuatiei caracteristice, deducem ca nu exista un algoritm di-rect care sa reduca o matrice data, de ordin superior lui patru, la o forma mai”apropiata” de forma Schur decat forma Hessenberg si care, ın acelasi timp, saconserve valorile proprii.

Posibilitatea reducerii unei matrice A ∈ ICn×n la forma superior Hessenberg, cuconservarea valorilor proprii, este data de urmatorul rezultat.

Teorema 4.14 Oricare ar fi matricea A ∈ ICn×n, exista o matrice unitara Q ∈∈ ICn×n, calculabila printr-o secventa finita de operatii aritmetice, astfel ıncat ma-tricea

H = QHAQ (4.103)

este superior Hessenberg.In cazul real matricele H si Q sunt reale, i.e. matricea Q este ortogonala.

Demonstratie. Vom da o demonstratie constructiva bazata pe urmatoarea schemade calcul

HQ 1. Pentru k = 1 : n− 2

1. Se calculeaza un reflector elementar (complex) Uk+1

astfel ıncat (UHk+1A)(k + 2 : n, k) = 0.

2. A← UHk+1A

3. A← AUk+1

care suprascrie matricea A cu matricea

A← H = UHn−1 · · ·UH

3 UH2 AU2U3 · · ·Un−1. (4.104)

Notand

Q = U2U3 · · ·Un−1 (4.105)

avem QH = UHn−1 · · ·UH

3 UH2 si, ın consecinta, (4.104) poate fi scrisa ın forma

(4.103). Ramane de aratat ca schema de calcul de mai sus creaza efectiv o structurasuperior Hessenberg. Vom aplica un procedeu bazat pe inductie finita.

Pasul 1. Exista un reflector elementar (complex) U2 de ordinul n astfel ıncat(UH

2 A)(3 :n, 1) = 0 (vezi cap. 3), care realizeaza structura superior Hessenberg ınprima coloana. Matricea U2 are structura

U2 =

[1 0

0 U2

]

. (4.106)

Prin urmare, postmultiplicarea matricei UH2 A cu U2 nu modifica prima coloana a lui

UH2 A, i.e. zerourile create ın prima coloana a lui UH

2 A sunt conservate ın UH2 AU2.

Page 256: metode de calcul numeric matriceal. algoritmi fundamentali

242 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Pasul k. Presupunem ca ın cadrul primilor k − 1 pasi (k < n− 1) am obtinuto matrice avand o structura superior Hessenberg ın primele k − 1 coloane:

A← Akdef= UH

k · · ·UH2 AU2 · · ·Uk. (4.107)

Acum, exista un reflector elementar Uk+1 astfel ıncat (UHk+1A)(k + 2:n, k) = 0, i.e.

premultiplicarea cu UHk+1 creeaza structura superior Hessenberg ın coloana k fara

sa afecteze structura de zerouri din primele k − 1 coloane. Mai mult, structura

Uk+1 =

[Ik 0

0 Uk+1

]

(4.108)

a reflectorului utilizat la acest pas, ne asigura, de asemenea, ca postmultiplicareacu Uk+1 nu afecteaza nici una din primele k coloane ale matricei (UH

k+1Ak).Prin urmare, schema de calcul prezentata la ınceputul demonstratiei realizeaza

reducerea matricei date la forma superior Hessenberg prin transformarea unitarade asemanare (4.104).

In cazul real demonstratia este identica cu precizarea ca transformarea ortogo-nala de asemanare este un produs de reflectori reali. Caracterul finit al calcululuieste evident. 3

Utilizand procedurile din tabelul 4.3, demonstratia de mai sus conduce imediatla urmatorul algoritm.

Algoritmul 4.3 (HQc – Reducerea la forma superior Hessenberg)(Date o matrice A ∈ ICn×n si o matrice unitara Q ∈ ICn×n, algoritmulcalculeaza o secventa de reflectori (complecsi) U2, U3, · · ·, Un−1 astfelıncat matricea transformata A ← H = UH

n−1 · · ·UH3 U

H2 AU2U3 · · ·Un−1

este ın forma superior Hessenberg. Optional se calculeaza actualizareamatricei de transformare, i.e. Q ← QU2U3 · · ·Un−1. Optiunea se ex-prima prin intermediul unei variabile logice opt de tipul sir de caracterece poate lua valorile ′da′ sau ′nu′. Daca opt = ′nu′, matricea Q ramanenemodificata.)

1. Pentru k = 1 : n− 2

1. [A(k + 1 : n, k), u, β ] = Hc(A(k + 1 : n, k))

2. A(k + 1 : n, k + 1 : n) = Hcs(u, β,A(k + 1 : n, k + 1 : n))

3. A(1 : n, k + 1 : n) = Hcd(A(1 : n, k + 1 : n), u, β)

4. Daca opt = ′da′ atunciQ(1 : n, k + 1 : n) = Hcd(Q(1 : n, k + 1 : n), u, β)

Comentarii. Pentru apelul algoritmului HQc va fi utilizata sintaxa generala

[H,V ] = HQc(A,Q, opt),

care exprima posibilitatea de a memora rezultatele ın alte tablouri decat cele initialedesi calculele se fac cu suprascrierea interna a matricei initiale si a matricei detransformare. Sintaxa propusa mai sus se poate dovedi utila ın asigurarea unei

Page 257: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 243

prezentari clare a procedurilor care utilizeaza algoritmul HQc. De exemplu, apelul[A,U ] = HQc(A, In,

′da′) calculeaza, pe loc, reducerea la forma Hessenberg sicreeaza matricea de transformare din (4.104).

In cazul real reflectorii utilizati vor fi reali si, ın consecinta, matricea Hessen-berg rezultata va fi reala. Intrucat aceasta particularizare se obtine pur si simpluınlocuind identificatorii procedurilor ”complexe” cu cei ai procedurilor ”reale” core-spunzatoare, ne marginim sa precizam sintaxa de apel cu care aceasta varianta vafi folosita ın continuare:

[H,V ] = HQr(A,Q, opt).

Complexitatea algoritmului este O(n3), executia sa implicand Nop ≈ 10n3/3operatii cu numere complexe ın format virgula mobila. Acumularea matricei detransformare necesita N

op ≈ 4n3/3 operatii suplimentare. Algoritmul HQ este nu-meric stabil, i.e. matricea superior Hessenberg calculata ıntr-o aritmetica ın virgulamobila este o matrice exact unitar (ortogonal) asemenea cu o matrice usor pertur-bata A+ E, unde matricea de perturbatie E satisface conditia ‖E‖ ≤ p(n)εM‖A‖,cu p(n) o functie cu crestere ”modesta” de dimensiunea n a problemei. 3

Observatia 4.4 Pentru obtinerea formei Hessenberg se pot utiliza si transformaride asemanare neunitare (neortogonale). Intr-adevar, folosind transformari gaussieneelementare stabilizate MkPk, k = 2 : n − 1, unde Mk este o matrice inferior tri-unghiulara elementara, iar Pk este o matrice de permutare elementara (v. cap.2),determinate corespunzator pentru anularea elementelor k + 1 : n din coloana k − 1a matricei curente, matricea

H =Mn−1Pn−1 . . .M2P2AP2M−12 . . . Pn−1M

−1n−1

va fi superior Hessenberg. O implementare ıngrijita a secventei de transformari demai sus conduce la un efort de calcul redus la jumatate fata de cel necesar pen-tru executia algoritmului HQ. Detaliile algoritmului fac obiectul exercitiului 4.50.Anumite retineri existente ın utilizarea acestei solutii sunt datorate unor posibileinstabilitati numerice (a caror existenta este dovedita teoretic, dar care apar foarterar ın practica) precum si unor dificultati ın analiza erorilor, dificultati induse defaptul ca transformarile neunitare (neortogonale) nu conserva conditionarea valo-rilor proprii. 3

4.4.2 Faza iterativa a algoritmului QR

Etapa iterativa a algoritmului QR utilizeaza, ıntr-o maniera implicita, metodeleputerii si puterii inverse pentru reducerea unei matrice la forma Schur (reala). Desiimplementarile profesionale ale algoritmului QR utilizeaza, ın exclusivitate, dinmotive de eficienta calculatorie (ın cazul matricelor reale), varianta cu deplasareimplicita cu pas dublu, din ratiuni pedagogice vom prezenta si variantele cu de-plasare explicita.

Page 258: metode de calcul numeric matriceal. algoritmi fundamentali

244 CAPITOLUL 4. VALORI SI VECTORI PROPRII

A. Algoritmul QR cu deplasare explicita

Presupunem ca matriceaH ∈ ICn×n are o structura superior Hessenberg. AlgoritmulQR cu deplasare explicita construieste un sir de matrice

H = H1, H2, · · · , Hk, Hk+1, · · · (4.109)

pe baza relatiei de recurenta

Hk − µkIn = QkRk

Hk+1 = RkQk + µkIn, k = 1, 2, · · · , H1 = H, (4.110)

unde scalarul µk, denumit deplasare, este folosit pentru asigurarea convergentei. Inprima relatie (4.110) matricea Hk − µkIn este factorizata QR, i.e. scrisa sub formaunui produs dintre matricea unitara Qk si matricea superior triunghiulara Rk (vezicap.3). In relatia a doua din (4.110) matricea succesor Hk+1 se obtine ınmultindmatricele Qk si Rk ın ordine inversa si anuland deplasarea prin adunarea matriceiµkIn. Sirul (4.109), generat de (4.110), este denumit sirul QR. Corespunzator,tranzitia Hk → Hk+1 se numeste un pas sau o transformare QR.

Principalele proprietati ale sirului QR sunt date de urmatoarea propozitie.

Propozitia 4.3 a) Daca matricea initiala H1 = H a sirului matriceal QR estesuperior Hessenberg, atunci toate matricele sirului au aceeasi structura. Altfel spus,structura Hessenberg este invarianta la transformarile QR.

b) Toate matricele sirului QR sunt unitar asemenea si, prin urmare, au acelasispectru de valori proprii.

In cazul real afirmatiile de mai sus raman valabile daca ın locul operatoruluihermitic, de transpunere si conjugare, se utilizeaza operatorul de transpunere.

Demonstratie. a) Daca Hk din (4.110) este o matrice superior Hessenberg, aceeasistructura o are si matricea Hk−µkIn. Algoritmul de factorizare QR (v. cap.3) apli-cat matricei superior Hessenberg Hk−µkIn produce o matrice unitara Qk superiorHessenberg 17. Intrucat Rk este superior triunghiulara rezulta ca matricea unitaraQk este, de asemenea, superior Hessenberg. Cum produsul dintre o matrice superiortriunghiulara si o matrice superior Hessenberg este o matrice superior Hessenberg(verificati!) rezulta ca RkQk este superior Hessenberg si, evident, aceeasi structurao are si matricea Hk+1. Prin inductie, daca H1 = H este superior Hessenberg,atunci toate matricele Hk, k = 2, 3, ... sunt matrice superior Hessenberg.b) Din prima relatie (4.110) avem

Rk = QHk (Hk − µkIn), (4.111)

care, introdusa ın cea de a doua relatie (4.110), conduce la

Hk+1 = QHk (Hk − µkIn)Qk + µkIn = QH

k HkQk, (4.112)

17 Daca µk 6∈ λ(Hk) (care este cazul curent), atunci matricea superior triunghiulara Rk estenesingulara si matricea Qk este, ın mod necesar, superior Hessenberg.

Page 259: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 245

i.e. Hk+1 si Hk sunt unitar asemenea si au acelasi spectru. Aplicand (4.112) ınmod repetat obtinem

Hk = QHk−1Q

Hk−2 · · ·QH

1 H1Q1 · · ·Qk−2Qk−1 = QHk HQk, (4.113)

unde

Qk = Q1Q2 · · ·Qk−1 (4.114)

este o matrice unitara (ca produs de matrice unitare). Prin urmare, toate matriceledin sirul QR sunt unitar asemenea si, ın consecinta, au acelasi spectru. Transfor-marea unitara cumulata (4.114) poate fi construita recurent cu relatia

Qk+1 = QkQk, k = 1, 2, · · · , Q1 = In. (4.115)

Propozitia este demonstrata. 3

In continuare, vom arata ca, prin alegerea adecvata a deplasarilor µk, k == 1, 2, . . ., ın afara unor situatii patologice (vezi exemplul 4.4), sirulQR este conver-gent catre forma Schur (reala). Mai precis, vom arata ca, ın primul rand, elementulextradiagonal al ultimei linii a matricei Hk se anuleaza asimptotic pentru k → ∞.Mai mult, generic, toate elementele subdiagonale, cu viteze diferite, au tendinta deanulare. Argumentele sunt urmatoarele.

(i) Cu o alegere adecvata a deplasarilor µk, sirul QR implementeaza, ıntr-oforma implicita, o versiune a metodei puterii inverse cu deplasare Rayleigh si, ınconsecinta, asigura o convergenta patratica a ultimei coloane a matricei de trans-formare cumulate Qk catre un vector propriu al matricei HH ceea ce are ca efectanularea asimptotica a elementului Hk(n, n− 1).

Pentru a justifica aceasta afirmatie observam mai ıntai faptul ca din relatiile(4.111), (4.113) si (4.115) rezulta

Rk = QHk (QH

k HQk−µkIn) = QHk Q

Hk (H−µkIn)Qk = QH

k+1(H−µkIn)Qk, (4.116)

de unde

RkQHk = QH

k+1(H − µkIn). (4.117)

Putem scrie acum dependenta dintre ultimele coloane q(k+1)n si q

(k)n ale matricelor

Qk+1 si, respectiv, Qk. Intr-adevar, prin transpunerea si conjugarea relatiei (4.117)se obtine

QkRHk = (HH − µkIn)Qk+1, (4.118)

unde µk este conjugata deplasarii µk. Intrucat RHk este inferior triunghiulara, ega-

litatea ultimelor coloane din (4.118) conduce la

r(k)nn q(k)n = (HH − µkIn)q

(k+1)n (4.119)

sau, daca µk 6∈ λ(H),

q(k+1)n = r(k)nn (H

H − µkIn)−1q(k)n , (4.120)

Page 260: metode de calcul numeric matriceal. algoritmi fundamentali

246 CAPITOLUL 4. VALORI SI VECTORI PROPRII

unde r(k)nn este conjugatul lui r

(k)nn . Relatia (4.120) defineste iteratia puterii inverse

pentru determinarea unui vector propriu al matricei HH . In continuare vom arataca daca ultima coloana a matricei unitare de transformare este un vector propriu almatricei HH atunci elementele extradiagonale ale ultimei linii ale matricei H se a-nuleaza, similar cu procedura standard de deflatie. Pentru aceasta reamintim faptulca valorile proprii ale matricei HH sunt conjugatele valorilor proprii ale matricei Hsi consideram transformarea unitara definita de matricea

Q =[

Q vn], (4.121)

cu vn un vector propriu al matricei HH , i.e.

HHvn = λnvn, cu λn ∈ λ(H). (4.122)

Atunci, din (4.121) si (4.122) avem

vHn HQ = λnvHn Q = 0,

vHn Hvn = λnvHn vn = λn,

(4.123)

de unde rezulta

QHHQ =

[

QH

vTn

]

H[

Q vn]=

[QHHQ QHHvnvHn HQ vHn Hvn

]

=

[

H hH

0 λn

]

.

(4.124)

Viteza patratica de convergenta a vectorului coloana q(k)n din (4.120) catre un vector

propriu al matricei HH poate fi obtinuta alegand pentru deplasarea µk valoarea(4.101) a catului Rayleigh

µk =(q

(k)n )HHH q

(k)n

(q(k)n )H q

(k)n

= (q(k)n )HHH q(k)n = eTn QHk H

HQken = eTnHHk en = h(k)nn ,

respectiv,µk = h(k)nn . (4.125)

Alegerea (4.125) a deplasarii originii garanteaza o rata excelenta de convergen-ta a sirului QR catre forma Schur ın ultima linie, i.e. de anulare asimptotica a

elementului h(k)n,n−1. Cand elementul h

(k)n,n−1 satisface o conditie de forma

|h(k)n,n−1| < tol(|h(k)n−1,n−1|+ |h(k)nn |), (4.126)

unde tol este un nivel prescris de toleranta, putem considera ca h(k)n,n−1 este numeric

neglijabil si ıl putem anula efectiv. Astfel h(k)nn devine o valoare proprie calculata a

lui H . Dupa aceasta operatie, dimensiunea problemei s-a redus cu o unitate.

(ii) Sirul QR implementeaza simultan o versiune a metodei puterii cu de-plasare. Astfel, ın acelasi timp, sirul QR pune asimptotic ın evidenta, chiar dacacu o viteza mai redusa, si alte valori proprii pe diagonala matricei curente a sirului.

Page 261: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 247

Intr-adevar, din (4.116), avem

Qk+1Rk = (H − µkIn)Qk. (4.127)

Egalitatea primelor coloane ale matricelor din (4.121) conduce la

Qk+1r(k)1 = (H − µkIn)q

(k)1 , (4.128)

unde q(k)1 = Qke1 este prima coloana a matricei Qk si r

(k)1 = Rke1 este prima

coloana a matricei Rk. Intrucat Rk este superior triunghiulara, avem r(k)1 = r

(k)11 e1

si, deci, (4.128) poate fi scrisa ın forma echivalenta

q(k+1)1 =

1

r(k)11

(H − µkIn)q(k)1 , (4.129)

care exprima recurenta ce defineste metoda puterii pentru calculul unui vector pro-priu al matricei H , utilizand un parametru scalar de deplasare µk. Conform celoraratate ın sectiunea 4.3, daca µk evolueaza astfel ıncat matricea H − µkIn are ovaloare proprie dominanta atunci prima coloana a matricei unitare de transformareQk converge catre un vector propriu asociat acestei valori proprii. In conformitatecu procedura de deflatie (vezi sectiunea 4.2) prima coloana a matricei QH

k HQk = Hk

converge catre prima coloana a formei Schur a lui A, i.e. elementul subdiagonal dinprima coloana a lui H se anuleaza asimptotic. Viteza de convergenta depinde deevolutia modulului raportului primelor doua valori proprii (enumerate ın ordineadescrescatoare a modulelor) ale matricei H − µkIn.

Avand ın vedere faptul ca cele doua procese de deflatie au loc simultan si ca,odata luata decizia de neglijare a elementelor subdiagonale suficient de mici, di-mensiunea problemei de calcul scade, o experienta numerica destul de consistentaa condus la evaluarea ca, ın mod obisnuit, pentru calculul unei valori proprii a uneimatrice Hessenberg sunt suficiente, ın medie, 1.5-2 iteratii QR. Aceasta viteza deconvergenta exceptionala se datoreaza faptului, constatat experimental, ca o data cuelementele subdiagonale din ultima linie si prima coloana, toate celelalte elementesubdiagonale au tendinta de anulare asimptotica.

Pe de alta parte, asa cum s-a precizat, sirul QR nu converge ıntotdeauna, exi-stand situatii ın care elementele subdiagonale, inclusiv cel de pe pozitia (n, n−1),nu se anuleaza asimptotic. In practica numerica astfel de situatii sunt rare, ”pato-logice”, si se pot lua masuri care sa le faca extrem de rare. Prezentam ın continuareun astfel de caz.

Exemplul 4.4 Se considera matricea H ∈ IR4×4 ın forma superior Hessenberg

H =

0 0 0 11 0 0 00 1 0 00 0 1 0

,

avand valorile proprii (exacte), ordonate arbitrar,

λ1 = −1, λ2,3 = ±i, λ4 = 1.

Page 262: metode de calcul numeric matriceal. algoritmi fundamentali

248 CAPITOLUL 4. VALORI SI VECTORI PROPRII

µ1 = 0.001

k h(k)21 h

(k)32 h

(k)43

1 1.00000000000000 1.00000000000000 1.000000000000002 0.99999900000088 0.99999999999950 0.999999499998873 0.99999800000800 0.99999999999800 0.99999799999200...

......

...11 0.89589063292443 0.99770241027003 0.8608566488751312 0.74524339988451 0.99080233083311 0.4832365262644513 0.58630453030022 0.99453900211462 0.0471972548941114 0.44579447911603 0.99846792286246 0.0000362530753915 0.32803260297652 0.99959510209257 0.0000000000000216 0.23685107105612 0.99989584829055 0.00000000000000...

......

...25 0.01069551270948 0.99999999959102 0...

......

...50 0.00000184648291 1.00000000000000 0...

......

...100 0.00000000000006 1.00000000000000 0

Tabelul 4.4: Rezultate numerice pentru exemplul 4.4 privind evolutia elementelor

subdiagonale h(k)i+1,i, i = 1 : 3, ale matricelor Hk cu initializarea µ1 = 0.001 6= 0 a

deplasarii.

Page 263: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 249

Se observa ca H este o matrice ortogonala (de permutare). De asemenea nu estegreu de vazut ca sirul QR construit cu relatiile (4.110) cu deplasarile (4.125) lasamatricea H nemodificata, i.e.

Hk = H, k = 1, 2, . . .

Intr-adevar, fie H1def= H . Avem µ1 = h44 = 0, deci H1 − µ1I4 = H1. Cum H1

este ortogonala, o factorizare QR a lui H1 se obtine pentru Q1 = H1 si R1 = I4.Rezulta H2 = H1 si, prin inductie, se obtine relatia de mai sus pentru toti k.

Evolutia elementelor subdiagonale h(k)i+1,i, i = 1 : 3, ale matricelor Hk pentru

initializarea µ1 = 0.001 6= 0 a deplasarii este prezentata ın tabelul 4.4, iar pentruinitializarea ”recomandata” µ1 = 2 6= 0 a deplasarii este prezentata ın tabelul 4.5,din care se poate observa viteza diferita de anulare asimptotica a elementelor h43

µ1 = 2

k h(k)21 h

(k)32 h

(k)43

1 1.00000000000000 1.00000000000000 1.000000000000002 0.91651513899117 0.98169181562325 −0.808689828521623 0.78445125612917 0.97895246315181 −0.345957662307254 0.63665525316291 0.99162466881300 −0.015317732032155 0.49164479289711 0.99761224919910 −0.000001229204486 0.36518170914743 0.99936015720678 −0.00000000000000...

......

...25 0.00053197970928 1.00000000000000 0...

......

...50 0.00000009183752 1.00000000000000 0...

......

...100 0.000000000000000 1.00000000000000 0

Tabelul 4.5: Rezultate numerice pentru exemplul 4.4 privind evolutia elementelor

subdiagonale h(k)i+1,i, i = 1 : 3, ale matricelor Hk cu initializarea µ1 = 2 6= 0 a

deplasarii.

si h21 si evidentierea valorilor proprii reale λ1 si λ4 ın pozitiile diagonale 11 si 44.Iterand de un numar suficient de ori cititorul interesat va avea confirmarea faptuluica limita sirului QR construit cu una din initializarile date pentru µ este

Hk −→ H∞ =

−1 0 0 00 0 −1 00 1 0 00 0 0 1

.

Faptul ca elementul h(k)32 nu se anuleaza asimptotic se datoreaza utilizarii exclusive

Page 264: metode de calcul numeric matriceal. algoritmi fundamentali

250 CAPITOLUL 4. VALORI SI VECTORI PROPRII

a aritmeticii reale si alegerii µk = h(k)44 , a deplasarii pentru toti k ≥ 2. Modul ın

care se gestioneaza ıntreaga structura a matricei Hk este tratat mai departe. 3

Observatia 4.5 Situatiile de genul celor evidentiate ın exemplul 4.4 se pot se-siza prin supravegherea elementului hn,n−1 si daca, dupa un numar convenit deiteratii 18 modulul sau nu scade sub o toleranta impusa, se intervine, de obicei prinrenuntarea, pentru un singur pas, la deplasarea data de (4.125). In literatura despecialitate (vezi [ X ]) exista unele recomandari pentru alegerea acestei deplasarimodificate, bazate pe o bogata experienta numerica dar lipsite de o justificare teo-retica corespunzatoare. Daca o astfel de masura nu da rezultate, ın general serenunta la continuarea calculului 19. Detaliile vor fi precizate ın descrierea algorit-milor. 3

In concluzie, algoritmul QR cu deplasare explicita este definit, ın esenta, derecurenta (4.110), cu alegerea (4.125) a deplasarii. Avandu-se ın vedere structurasuperior Hessenberg a tuturor matricelor sirului QR, pentru factorizarea QR serecomanda utilizarea rotatiilor. In consecinta, un pas simplu QR cu deplasareexplicita (fara acumularea transformarii) consta ın efectuarea urmatoarelor calcule,pe loc, ın spatiul de memorie al matricei H .

1. µ = hnn

2. H ← H − µIn3. Pentru j = 1 : n− 1

1. Se determina rotatia plana (complexa) Pj,j+1 astfelıncat (PH

j,j+1H)j+1,j = 0.

2. H ← PHj,j+1H

4. Pentru j = 1 : n− 1

1. H ← HPj,j+1

5. H ← H + µIn

Matricea de transformare curenta este data de

Qk = P12P23 · · ·Pn−1,n,

iar completarea algoritmului cu acumularea transformarilor (care se face numai ıncaz de necesitate) este lasata ın sarcina cititorului.

Complexitatea unui pas QR cu deplasare explicita aplicat unei matrice superiorHessenberg este O(n2) algoritmul de mai sus necesitand N ≈ 6n2 flopi (complecsi).

PasulQR de mai sus se ajusteaza la dimensiunea curenta a problemei, pe masurace se pun ın evidenta valorile proprii calculate. O modalitate concreta de gestionarea valorilor proprii calculate va fi prezentata ın cadrul algoritmului QR cu deplasareimplicita.

18 Valorile uzuale sunt ın jurul lui 10.19 Numarul de iteratii la care se ia decizia de ”lipsa de convergenta” si de oprire a calculului

este, uzual, ıntre 20 si 30.

Page 265: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 251

B. Strategia pasilor dubli

In cazul matricelor reale se poate impune utilizarea exclusiva a unei aritmetici reale.Daca matricea are si valori proprii complex conjugate alegerea recomandata mai suspentru deplasarea µk nu mai poate asigura convergenta procesului de evidentiere avalorilor proprii. Asa cum s-a vazut ın demonstratia lemei 4.3, pentru evidentiereaunui bloc 2×2 al formei Schur reale, deflatia se face cu ajutorul unei baze ortogonale(reale) a subspatiului A-invariant generat de partea reala si cea imaginara a perechiide vectori proprii asociati. Aceasta a condus la ideea comasarii a doi pasi consecutiviQR ıntr-unul singur 20 si a utilizarii unei perechi de deplasari complex conjugatecare, ın pasul dublu, apar ın combinatii reale.

Concret, fie H ∈ IRn×n o matrice superior Hessenberg si doi pasi consecutiviQR cu deplasare explicita

Hk − µkIn = QkRk

Hk+1 = RkQk + µkIn,

Hk+1 − µk+1In = Qk+1Rk+1

Hk+2 = Rk+1Qk+1 + µk+1In, (4.130)

care pot fi contrasi ın transformarea directa Hk −→ Hk+2, numita pas dublu QR.Intr-adevar, pasul k produce matricea Hk+1 = QH

k HkQk astfel ıncat factorizareaQR din cadrul pasului k + 1 poate fi scrisa sub forma QH

k HkQk − µk+1In =

= Qk+1Rk+1. Inmultind aceasta relatie la stanga cu Qk, la dreapta cu Rk si uti-lizand factorizarea QR din cadrul pasului k, rezulta ca un pas dublu QR este descrisde

(Hk − µkIn)(Hk − µk+1In) = QkQk+1Rk+1Rk

Hk+2 = (QkQk+1)THkQkQk+1

, (4.131)

si implica efectuarea urmatoarelor calcule:

1. Se calculeaza matriceaMdef= H2

k−skHk+pkIn, unde sk = µk+µk+1

si pk = µkµk+1.

2. Se calculeaza factorizarea QR a matricei M , i.e. M = QR, undeQ = QkQk+1 si R = RkRk+1.

3. Hk+2 = QTHkQ.

Deplasarile µk si µk+1 se aleg, ın concordanta cu cele discutate mai sus, egale cuvalorile proprii ale blocului 2× 2 din coltul din dreapta jos al matricei Hk:

Hk(n−1 : n, n−1 : n) =

[

h(k)n−1,n−1 h

(k)n−1,n

h(k)n,n−1 h

(k)n,n

]

. (4.132)

Important este faptul ca, ın schema de calcul aferenta unui pas dublu QR, celedoua valori proprii apar sub forma de suma si produs:

sk = µk + µk+1 = h(k)n−1,n−1 + h

(k)n,n

pk = µkµk+1 = h(k)n−1,n−1h

(k)n,n − h(k)n−1,nh

(k)n,n−1

, (4.133)

20 Se poate imagina si o comasare a mai multi pasi QR ın cadrul unei strategii a pasilor”multipli”. O astfel de solutie este utilizata ın LAPACK [XV ] pentru procedurile bloc de calculal valorilor proprii.

Page 266: metode de calcul numeric matriceal. algoritmi fundamentali

252 CAPITOLUL 4. VALORI SI VECTORI PROPRII

care sunt reale chiar daca cele doua deplasari individuale sunt complexe.

Strategia pasului dublu QR nu se aplica ınsa ın forma explicita de mai susıntrucat implementarea schemei de calcul prezentate conduce la o reducere sensi-bila a eficientei. Intr-adevar, complexitatea unui pas simplu QR este O(n2) si la feleste si complexitatea a doi pasi simpli QR ın timp ce numarul de operatii necesarpentru executia unui pas dublu QR, datorita calculului explicit al matricei M , estede ordinul O(n3). Aceasta ınseamna ca forma explicita a pasului dublu QR nu esteoptimala. Refacerea complexitatii la O(n2) este posibila (dar nu apare ın mod sim-plu), iar varianta de calcul este cunoscuta sub denumirea de varianta cu deplasareimplicita si este utilizata ın toate implementarile profesionale ale algoritmului QRpentru matrice reale.

C. Ideea algoritmului QR cu deplasare implicita

Scopul fundamental al dezvoltarii variantei cu deplasare implicita a algoritmuluiQR este reducerea complexitatii unui pas dublu QR aplicat unei matrice realeın forma superior Hessenberg la nivelul complexitatii a doi pasi simpli QR. Desi,principial, exista toate motivele ca acest lucru sa fie posibil, aspectele tehnice suntdeparte de a fi triviale. Algoritmul QR cu deplasare implicita dateaza din anul1961 si a fost propus de J.G.F. Francis [ 26 ] si V.N. Kublanovskaia [ 39 ].

Conform celor prezentate mai sus referitor la pasul dublu QR, matricele Hk

si Hk+2 = QTkHkQk au structura superior Hessenberg si sunt ortogonal asemenea.

Sansele de a gasi o cale alternativa de calcul a matricei succesor Hk+2 si, eventual,a matricei de transformare asociate, sunt legate nemijlocit de evidentierea gradelorde libertate existente. Avand ın vedere aceasta observatie, suntem interesati deconditiile ın care transformarea care defineste un pas QR este unica sau poate firestransa la o clasa bine precizata.

Pentru ınceput, observam ca, ın general, matricea unitara Qk care definesterelatia de asemanare dintre matricele superior Hessenberg Hk si Hk+1 din sirul QRnu este unica. Intr-adevar, fie V ∈ ICn×n o matrice unitara arbitrara. Aplicareaalgoritmului HQc matricei V HHkV conduce la obtinerea unei matrice superiorHessenberg unitar asemenea cu Hk si care depinde de alegerea lui V .

Restrangerea transformarilor la o clasa de transformari, ”echivalente” din punc-tul de vedere al convergentei catre forma Schur, va fi facuta pentru matricele supe-rior Hessenberg ireductibile 21 definite mai jos.

Definitia 4.6 O matrice n × n complexa sau reala H superior Hessenberg se nu-meste ireductibila daca are toate elementele subdiagonale nenule, i.e.

hj+1,j 6= 0, j ∈ 1 : n−1. (4.134)

Pentru matricele superior Hessenberg ireductibile prezentam teorema urma-toare.

21 Problema calculului valorilor proprii ale unor matrice superior Hessenberg reductibile sereduce la calculul valorilor proprii ale unor matrice superior Hessenberg ireductibile de dimensiunimai mici (vezi mai departe).

Page 267: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 253

Teorema 4.15 Fie matricea A ∈ ICn×n si matricele unitare U ∈ ICn×n si V ∈ ICn×n

astfel ıncat matriceleH = UHAU, G = V HAV (4.135)

sunt ambele superior Hessenberg ireductibile. Daca matricele U si V au aceeasiprima coloana, i.e.

Ue1 = V e1, (4.136)

atunciUej = eiθjV ej , θj ∈ IR, j = 2 : n, (4.137)

i.e. exista o matrice diagonala unitara D = diag(1, δ2, . . . , δn) cu δj = eiθj , j = 2:n,astfel ıncat

H = DHGD. (4.138)

In cazul real, i.e. A ∈ IRn×n si matricele U ∈ IRn×n si V ∈ IRn×n ortogonale,conditia (4.136) implica Uej = ±V ej, j = 2 : n, i.e. matricea diagonala din (4.138)este ortogonala avand δj ∈ −1, 1 , j = 2 : n. Daca elementele subdiagonalecorespondente ale matricelor G si H din (4.135) au acelasi semn, atunci (4.136)implica U = V , i.e transformarea este unic determinata.

Observatia 4.6 Avand ın vedere obiectivele urmarite, putem afirma ca, ın condi-tiile teoremei 4.15, matricele H si G sunt esential aceleasi. Intr-adevar, este usorde constatat ca |hij | = |gij | (ın cazul real aceasta ınseamna hij = ± gij) pentru totii si j si, prin urmare, ”distanta” (ın norma Frobenius) pana la forma Schur ”ceamai apropiata” a celor doua matrice poate fi considerata aceeasi. 3

Demonstratia teoremei 4.15. Fie Wdef= V HU si W = [w1 w2 · · · wn ] partitia sa

pe coloane. Atunci, din (4.136), rezulta w1 = We1 = e1, iar din (4.135) avemGW =WH relatie care, scrisa pe coloane, devine

Gwj =WH(:, j) =

j∑

k=1

wkhkj + wj+1hj+1,j , j = 1 : n− 1.

Intrucat hj+1,j 6= 0, obtinem urmatoarea exprimare a coloanei j + 1 a matricei Wın functie de coloanele precedente

wj+1 =1

hj+1,j(Gwj −

j∑

k=1

wkhkj),

expresie care, cu initializarea w1 = e1, probeaza faptul ca matriceaW este superiortriunghiulara. Cum o matrice unitara triunghiulara este ın mod necesar diagonalacu toate elementele diagonale de modul unitar (vezi exercitiul 4.20), rezulta wj == Wej = eiθjej , j = 2 :n, si, deci, ın (4.138) matricea diagonala D este chiar W ,

i.e. avem Ddef= W . Relatiile (4.137) sunt o consecinta imediata a relatiei (4.138).

In cazul real demonstratia este aceeasi daca se tine seama de faptul ca operatia deconjugare nu are efect si ca singurele numere reale de modul unitar sunt −1 si 1.Fie δ1 = 1. Atunci elementele diagonale ale matricei D se determina cu relatia de

recurenta δi =gi,i−1

hi,i−1δi−1 de unde rezulta ca, daca gi,i−1 si hi,i−1 au acelasi semn,

atunci δi = 1, i = 2:n, i.e. D = In. 3

Page 268: metode de calcul numeric matriceal. algoritmi fundamentali

254 CAPITOLUL 4. VALORI SI VECTORI PROPRII

D. Un pas QR cu deplasare implicitapentru matrice complexe

Teorema 4.15 reprezinta fundamentul teoretic pentru variantele cu deplasare im-plicita ale algoritmului QR. Ideea centrala a acestora consta ın asigurarea conditieica prima coloana a matricei de transformare cumulate aferente unui pas QR sacoincida cu prima coloana a matricei de transformare de la varianta cu deplasareexplicita corespunzatoare, simultan cu minimizarea numarului de operatii aritme-tice, prin exploatarea eficienta a structurilor de zerouri ale matricelor implicate.

Concret, pentru implementarea unui pas simplu QR cu deplasare implicita seprocedeaza ın felul urmator:

1. Se calculeaza prima coloana q(k)1 a matricei Qk din (4.110) ce de-

fineste transformarea unitara aferenta unui pas simplu QR cu de-plasare explicita.

2. Se determina o matrice unitara U1 astfel ıncat prima sa coloana sa

fie q(k)1 , i.e. U1e1 = q

(k)1 .

3. Se calculeaza matricea B = UH1 HkU1 (a carei structura nu mai

este superior Hessenberg).

4. Se reface structura superior Hessenberg, aplicand algoritmul HQcmatricei B: [Hk+1, Qk+1] = HQc(B, Qk, opt). Transformarile im-plicate de aceasta reducere nu afecteaza prima coloana a matriceide transformare cumulate.

Aceasta schema de calcul defineste un pasQR cu deplasare implicita. Daca matriceaHk este ireductibila, atunci rezultatul Hk+1 al aplicarii schemei de calcul de maisus va fi esential acelasi, ın sensul observatiei 4.6, cu cel dat de un pas QR cudeplasare explicita. Pentru ca procedura cu deplasare implicita sa nu fie inferioara,din punctul de vedere al eficientei, celei cu deplasare explicita, trebuie exploatatecorespunzator avantajele structurale date de forma Hessenberg a matricelor initialasi finala. Detaliile unei implementari eficiente sunt prezentate ın continuare.

Fie, pentru simplificarea notatiilor, Hknot= H matricea curenta a sirului QR,

presupusa ireductibila, Hk+1not= H ′ matricea succesor, µk

not= µ etc. (i.e. renuntam

la indicele k). Aceste notatii se justifica si prin faptul ca atat matricea H ′ cat simatricea intermediara B pot suprascrie matricea H , i.e. toate calculele aferenteunui pas simplu QR cu deplasare implicita se pot desfasura pe loc, ın tabloul H .

Urmand etapele din schema de calcul de mai sus avem urmatoarele particu-laritati.

1. Presupunem ca µ = hnn 6∈ λ(H), i.e. matricea H − µIn este nesingulara.

Prin urmare matricea superior triunghiulara Rknot= R din (4.110) este, de asemenea,

Page 269: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 255

nesingulara, iar prima coloana a matricei de transformare Qknot= Q este

q1 = Qe1 =1

r11

h11 − µh210...0

. (4.139)

Numim vectorul

w =

[h11 − µh21

]

∈ IC2 (4.140)

vector de deplasare implicita aferent unui pas QR.

2. Matricea unitara U1 de la instructiunea 2 a schemei de calcul de mai suspoate fi un reflector (complex) sau, si mai simplu, datorita structurii vectorului q1din (4.139), o rotatie (complexa) U1 = P12, astfel calculata ıncat

UH1 q1 = ±‖q1‖e1. (4.141)

In ambele situatii, structura matricei U1 este

U1 =

[

U1 00 In−2

]

, (4.142)

cu U1 ∈ IC2×2. Vom opta pentru utilizarea rotatiilor, asadar elementele definitoriic1 si s1 ale rotatiei P12 se obtin cu ajutorul functiei Gc ın cazul complex, respectivGr ın cel real (vezi tabelul 4.3) aplicate vectorului de deplasare implicita w.

3. Datorita structurii (4.142) a matricei U1 alterarea formei Hessenberg princalculul matricei B de la instructiunea 3 are loc numai ın pozitia (3, 1).

4. Matricea B avand un singur element nenul ce altereaza forma superiorHessenberg, pentru asigurarea eficientei se impune adaptarea algoritmului HQcla aceasta situatie structurala. Concret, putem utiliza o transformare unitara deasemanare definita de o secventa de rotatii (complexe) care elimina elementul nenuldin afara structurii Hessenberg prin ”deplasarea” lui de-a lungul unui traseu paralelcu diagonala principala. Schema de calcul este urmatoarea:

1. Pentru i = 2 : n−11. Se calculeaza rotatia (complexa) Pi,i+1 astfel ıncat

(PHi,i+1B)(i+1, i−1) = 0.

2. B ← PHi,i+1B. % Se anuleaza elementul (i+1, i−1).

3. B ← BPi,i+1. % Pentru i < n−1 apare un element nenulın pozitia (i+2, i).

Pentru exemplificare prezentam evolutia structurala a matricei B ın cazul n = 5.In diagramele structurale de mai jos zerourile nou create au fost marcate cu ∅, iaralterarile de zerouri de la transformarea curenta au fost marcate cu +. Incadrarile

Page 270: metode de calcul numeric matriceal. algoritmi fundamentali

256 CAPITOLUL 4. VALORI SI VECTORI PROPRII

marcheaza liniile si/sau coloanele afectate de transformarea curenta.

H ← B = UH1 HU1 =

× × × × ×× × × × ×+ × × × ×0 0 × × ×0 0 0 × ×

,

H ← PH23H =

× × × × ×× × × × ×∅ × × × ×0 0 × × ×0 0 0 × ×

,

H ← HP23 =

××000

× ×× ×× ×+ ×0 0

× ×× ×× ×× ×× ×

,

H ← PH34H =

× × × × ×× × × × ×0 × × × ×0 ∅ × × ×0 0 0 × ×

,

H ← HP34 =

× ×× ×0 ×0 00 0

× ×× ×× ×× ×+ ×

×××××

,

H ← PH45H =

× × × × ×× × × × ×0 × × × ×0 × × × ×0 0 ∅ × ×

,

H ← HP45 =

× × ×× × ×0 × ×0 0 ×0 0 0

× ×× ×× ×× ×× ×

.

Calculul elementelor definitorii ci si si ale rotatiei Pi,i+1 se face cu functiaGc, iarcalculul economic al produselor PH

i,i+1B si BPi,i+1 exploateaza structura (aproape)

Page 271: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 257

Hessenberg a matricei B. Varianta adaptata a algoritmului HQc data de schemade calcul de mai sus calculeaza matricea superior Hessenberg

H ← H ′= PHn−1,n · · ·PH

34PH23BP23P34 · · ·Pn−1,n =

= PHn−1,n · · ·PH

23PH12HP12P23 · · ·Pn−1,n = QH

k HQk, (4.143)

i.e. matricea succesor a lui H din sirul QR cu pasi simpli.Din ratiuni de organizare judicioasa a algoritmului QR si, mai ales, a algorit-

mului de ordonare a formei Schur (vezi sectiunea 4.6), vom introduce un algoritmdistinct de calcul al vectorului de deplasare implicita asociat unui pas simplu QR.

Algoritmul 4.4 (VD1 – Calculul vectorului de deplasare implicitapentru un pas simplu QR) (Data o matrice superior Hessenberg ire-ductibila H ∈ ICn×n, algoritmul calculeaza vectorul w ∈ IC2 de deplasareimplicita pentru un pas simplu QR.)

1. µ = hnn

2. w =

[h11 − µh21

]

Comentarii. Sintaxa de apel a acestui algoritm va fi

w = VD1(H),

iar executia sa implica efectuarea unei singure operatii cu numere complexe. 3

Cu aceste precizari putem prezenta algoritmul de implementare a unui pas sim-plu QR cu deplasare implicita. Sunt utilizate proceduri prezentate ın tabelul 4.3.

Algoritmul 4.5 (IT QR1 – Un pas simplu QR cu deplasare im-plicita) (Date o matrice superior Hessenberg ireductibila H ∈ ICn×n sivectorul de deplasare implicita w ∈ IC2, algoritmul suprascrie matriceaH cu matricea succesorH ← H ′ = QkHQ

Hk din sirul QR. De asemenea,

algoritmul furnizeaza vectorii c ∈ IRn−1 si s ∈ ICn−1 ale caror elemente(ci, si) definesc rotatiile Pi,i+1 utilizate.)

1. % Calculul si aplicarea rotatiei P12

1. [w, c1, s1 ] = Gc(w)

2. H(1 : 2, :) = Gcs(c1, s1, H(1 : 2, :))

3. H(1 : min(3, n), 1 : 2) = Gcd(H(1 : min(3, n), 1 : 2), c1, s1)

2. % Refacerea structurii HessenbergPentru i = 2 : n− 1

1. [H(i : i+1, i− 1), ci, si ] = Gc(H(i : i+1, i−1))2. H(i : i+1, i : n) = Gcs(ci, si, H(i : i+1, i : n))

3. H(1 : min(i+2, n), i : i+1) == Gcd(H(1 : min(i+2, n), i : i+1), ci, si).

Page 272: metode de calcul numeric matriceal. algoritmi fundamentali

258 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Comentarii. Vom utiliza urmatoarea sintaxa de apel a algoritmului de mai sus

[H, c, s ] = IT QR1(H,w).

Complexitatea unui pas simplu QR este O(n2) ın ambele variante de utilizare adeplasarii. Concret, pentru executia algoritmului 4.5 sunt necesari Nop ≈ 6n2 flopicomplecsi, carora le corespund Nop ≈ 26n2 flopi reali, la care se adauga cele n − 1extrageri de radical.

Preferinta pentru varianta cu deplasare implicita este justificata de o anumeomogenitate a demersului de calcul al valorilor proprii, tinand seama de faptul caın cazul matricelor reale aceasta varianta se impune cu necesitate. 3

E. Algoritmul QR pentru matrice complexe

Algoritmul QR pentru matrice complexe 22 se obtine prin iterarea algoritmului4.5, anularea efectiva a elementelor subdiagonale devenite neglijabile si exploatareastructurala a acestor anulari ın vederea obtinerii unei eficiente maxime.

Pentru deciziile de anulare a elementelor subdiagonale criteriul uzual este deforma (4.126), i.e.

|hi+1,i| < tol (|hii|+ |hi+1,i+1|), (4.144)

unde scalarul tol defineste nivelul de toleranta si are, ın mod obisnuit, un ordinde marime comparabil cu eroarea de reprezentare din formatul virgula mobila almasinii tinta. Acest criteriu ısi gaseste o fundamentare, ın sensul asigurarii uneierori de evaluare a valorilor proprii de ordinul de marime al tolerantei tol, maiales ın situatiile ın care are loc o scalare prealabila a matricei date (vezi § 4.4 H).De asemenea, avand ın vedere faptul ca testul (4.144) are o pondere importanta ıneconomia algoritmului, efectuadu-se la fiecare iteratie pentru toate elementele subdi-agonale ale submatricei superior Hessenberg ireductibile curente, ın cazul matricelorcomplexe se obtine un spor semnificativ de eficienta daca se utilizeaza criteriul

|Rehi+1,i|+ |Imhi+1,i| < tol (|Rehii|+ |Im hii|+ |Rehi+1,i+1|+ |Imhi+1,i+1|),(4.145)

practic echivalent cu criteriul (4.144).Pentru monitorizarea evolutiei structurale a matricelor din sirul QR, la fiecare

iteratie, dupa anularea elementelor subdiagonale hi+1,i, care satisfac conditia din(4.145), se va determina cel mai mic ıntreg p si cel mai mare ıntreg q astfel ıncatmatricea Hessenberg curenta sa aiba structura

H =

H11 H12 H13

0 H22 H23

0 0 H33

pn− p− q q

, (4.146)

22 Algoritmul ce urmeaza se poate aplica, evident, si matricelor reale, cu conditia acceptariiefectuarii operatiilor aritmetice cu numere complexe. Cum o operatie elementara cu numere com-plexe implica ıntre doua si unsprezece operatii cu numere reale, utilizarea acestui algoritm pentrumatrice reale este ineficienta. De aceea, ın cazul real se utilizeaza algoritmul 4.10 care opereazanumai cu date reale.

Page 273: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 259

cu H11 ∈ ICp×p, H22 ∈ IC(n−p−q)×(n−p−q) superior Hessenberg ireductibila si H33 ∈∈ IRq×q superior triunghiulara. Astfel, elementele diagonale ale blocului H33 repre-zinta valori proprii deja evidentiate 23, iar iteratia QR se va aplica, de fapt, numaiblocului H22

H22 ← H ′22 = QH

22H22Q22, (4.147)

echivalenta cu aplicarea transformarii (4.110) cu

Q = diag(Ip, Q22, Iq). (4.148)

Aceasta transformare afecteaza celelalte blocuri ale matricei H din (4.146) ın felulurmator:

H ← H ′ = QHHQ =

H11 H12Q22 H13

0 QH22H22Q22 QH

22H23

0 0 H33

. (4.149)

Algoritmul QR se termina ın momentul ın care se anuleaza toate elementelesubdiagonale, i.e. q devine n− 1.

Asa cum s-a aratat ın exemplul 4.4, exista situatii ın care algoritmul QR, cudeplasarile utilizate ın pasul QR cu deplasare implicita din algoritmul 4.4, nu esteconvergent. Conform recomandarilor din observatia 4.5, ın marea majoritate aacestor situatii convergenta poate fi restabilita modificand, pentru o singura iteratie,modul de calcul al vectorului de deplasare implicita. Pentru constatarea lipsei deconvergenta sau a unei rate de convergenta prea reduse vom contoriza iteratiileefectuate pentru evidentierea valorii proprii din pozitia curenta (n− q, n− q) (vezi(4.146)). Daca dupa 10 sau 20 iteratii elementul subdiagonal (n− q, n− q − 1) nusatisface conditia (4.145), vectorul w de deplasare implicita (4.140) va fi calculatfolosind deplasarea empirica, recomandata e.g. ın [ X ],

µ = |Rehn−q,n−q−1|+ |Rehn−q−1,n−q−2|+ i (|Imhn−q,n−q−1|+ |Imhn−q−1,n−q−2|),(4.150)

unde i este unitatea imaginara. Daca nici aceasta dubla masura nu asigura oviteza de convergenta satisfacatoare, fapt apreciat prin efectuarea a ınca 10 iteratiifara satisfacerea conditiei (4.145) de catre elementul (n − q, n − q − 1), atunci sedeclara esecul rezolvarii problemei de calcul al valorilor proprii ale matricei date.Mentionam ca desi, teoretic, o astfel de posibilitate nu este exclusa, practic ea nuapare decat pentru date special create ın acest scop.

Utilizand sintaxele de apel mentionate ale algoritmilor 4.4 si 4.5 precum si aleprocedurilor din tabelul 4.3, algoritmul QR cu pasi simpli, cu deplasari implicite,se scrie astfel.

Algoritmul 4.6 (QR1 – Algoritmul QR cu pasi simpli, cu deplasariimplicite) (Date o matrice A ∈ ICn×n, o matrice unitara Q ∈ ICn×n

si un nivel de toleranta tol pentru anularea elementelor subdiagonale,algoritmul calculeaza forma Schur A ← S = QHAQ a matricei A (si,deci, valorile proprii ale matricei A care sunt elementele diagonale ale

23 Alte valori proprii evidentiate se pot gasi printre elementele diagonale ale blocului H11.

Page 274: metode de calcul numeric matriceal. algoritmi fundamentali

260 CAPITOLUL 4. VALORI SI VECTORI PROPRII

lui S). Toate calculele se efectueaza pe loc, ın locatiile de memorie aletabloului A. Optional, se acumuleaza transformarile ın matricea unitaraQ← QQ. Optiunea se exprima cu ajutorul variabilei logice opt de tipulsir de caractere care poate lua valorile ′da′ sau ′nu′. Daca nu se doresteacumularea transformarilor, matricea Q ramane nemodificata.)

1. Daca n = 1 atunci return

2. % Reducerea la forma Hessenberg

1. [A,Q ] =HQc(A,Q, opt)

3. % Faza iterativa

1. p = 0, q = 0, cont it = 0

2. Cat timp q < n

1. % Anularea elementelor subdiagonale neglijabile

1. Pentru i = p+ 1 : n− q − 1

1. Daca |Re ai+1,i|+ |Im ai+1,i| << tol (|Re aii|+|Imaii|+|Reai+1,i+1|+|Imai+1,i+1|)atunci ai+1,i = 0

2. % Determinarea lui q

1. Cat timp an−q,n−q−1 = 01. q ← q + 12. % Terminarea normala a algoritmului

Daca q = n− 1 atunci return.3. cont it = 0

3. % Terminarea prin esec a algoritmului1. Daca cont it > 30 atunci

1. Tipareste ’S-au consumat 30 iteratii QR pentruevidentierea unei valori proprii fara a se atingeacest obiectiv. Este posibil ca, pentru aceste datede intrare, algoritmul QR sa nu fie convergent.’

2. Return.

4. % Determinarea lui p

1. p = n− q − 1

2. Cat timp ap+1,p 6= 01. p← p− 12. Daca p = 0 atunci break

5. % Iteratia curenta

1. k = p+1, l = n−q2. w = VD1(A(k : l, k : l))

3. % Calculul deplasarii implicite modificate1. Daca cont it = 10 sau cont it = 20 atunci

1. µ = |Rehl,l−1|+ i |Imhl,l−1|2. Daca l > k + 1 atunci

µ = µ+ |Rehl−1,l−2|+ i |Imhl−1,l−2|3. w = [hkk − µ hk+1,k ]

T

Page 275: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 261

4. [A(k : l, k : l), c, s ] = IT QR1(A(k : l, k : l), w)

5. Daca k > 1 atunci

1. Pentru i = 1 : l−k1. A(1 :p, p+i : p+i+1) =

= Gcd(A(1 :p, p+i : p+i+1), ci, si).

6. Daca l < n atunci1. Pentru i = 1 : l−k

1. A(p+i : p+i+1, l+1 : n) == Gcs(ci, si, A(p+i : p+i+1, l+1 : n))

7. cont it← cont it+ 1

6. Daca opt = ′da′ atunci

1. Pentru i = 1 : l−k1. Q(:, p+i : p+i+1) = Gcd(Q(:, p+i : p+i+1), ci, si)

Comentarii. Algoritmul implementeaza ideile expuse ın prezentarea teoretica pre-mergatoare, iar comentariile incluse asigura, speram, transparenta necesara pentruidentificarea lor. Mentionam suplimentar ca, pentru contorizarea iteratiilor, a fostutilizata variabila ıntreaga cont it care se reinitializeza la zero ori de cate ori se a-nuleaza un nou element subdiagonal. De asemenea, s-a utilizat instructiunea break

(de iesire fortata din cicluri de tip pentru sau cat timp) pentru ıncadrarea in-dexarilor ın limitele permise de dimensiunile matricelor. Vom apela ın continuareacest algoritm utilizand sintaxa

[S,Q] = QR1(A,Q, tol, opt).

In aspectele sale esentiale, algoritmul de mai sus sta la baza tuturor programelorprofesionale de calcul al valorilor proprii ale unei matrice complexe. Utilizarea luipentru calculul formei Schur a unei matrice reale este posibila 24, dar este mai putineficienta ın raport cu varianta special elaborata pentru aceasta situatie si prezentataın continuarea acestui capitol.

Datorita procesului iterativ complexitatea algoritmului depinde de datele de in-trare precum si de toleranta practicata. Pentru un nivel de toleranta de ordinulde marime al erorilor de reprezentare 25, evaluarile experimentale converg catreaprecierea ca, ın medie, doua iteratii sunt suficiente pentru a pune ın evidenta ovaloare proprie. In aceasta situatie, pentru matrice de ordin superior (de exemplun > 100), se poate aprecia ca algoritmul QR1 are o complexitate O(n3). Evaluareade mai sus este corecta pentru matrice de dimensiuni medii si mari. In exem-plele academice sau aplicatiile studentesti apar, de regula, matrice de ordin redus

24 Pentru probleme de mica dimensiune diferenta de eficienta nu este decisiva astfel ca acestalgoritm poate fi folosit cu succes. Atragem ınsa atentia ca procedura Gc de calcul a unei rotatiicomplexe (vezi capitolul 3) aplicata unui vector real calculeaza de fapt o rotatie reala astfel ıncatpentru date reale acest algoritm va lucra exclusiv cu numere reale privite ca numere complexe sinu va fi capabil sa reduca blocurile diagonale 2 × 2 cu valori proprii complexe. Pentru a depasiacest impas se poate proceda, de exemplu, ca ın algoritmul special destinat cazului real (vezi maideparte) prin identificarea unor astfel de situatii si monitorizarea blocurilor diagonale sau prinintroducerea unor deplasari implicite modificate cu parte imaginara nenula.

25 In pachetele comerciale de programe acest nivel de toleranta este practicat uzual si nu poatefi modificat de utilizator.

Page 276: metode de calcul numeric matriceal. algoritmi fundamentali

262 CAPITOLUL 4. VALORI SI VECTORI PROPRII

(e.g. ın jurul lui n = 10), pentru care numarul mediu de iteratii necesar pentruevidentierea unei valori prorii este ceva mai mare (din experienta noastra didac-tica apreciem acest numar la 3-4). Aceasta se explica prin faptul ca, simultan cuelementele subdiagonale din ultima linie si prima coloana, toate elementele subdia-gonale ale blocului iterat au tendinta de anulare asimptotica astfel ıncat, la matricede dimensiuni mai mari, ultima faza a procesului iterativ este extrem de rapida.

Evaluari mai fine sunt date la varianta reala.Utilizarea exclusiva a transformarilor unitare confera algoritmului QR1 o foarte

buna stabilitate numerica. Aspectele cantitative ale acestei aprecieri calitative a al-goritmuluiQR1, precum si specte suplimentare referitoare la conditionarea valorilorproprii sunt prezentate ın sectiunile § 4.10 si § 4.11. 3

F. Un pas dublu QR cu deplasare implicitapentru matrice reale

In cazul matricelor reale un spor important de eficienta se obtine utilizand o arit-metica reala si strategia pasilor dubli QR. La fel ca ın cazul pasului simplu, unpas dublu QR cu deplasare implicita are ca baza teoretica aceeasi teorema 4.15. Siaici, ideea centrala consta ın asigurarea coincidentei primei coloane a matricei detransformare cumulate aferente unui pas dublu QR cu prima coloana a matricei detransformare cumulate de la doi pasi simpli consecutivi din varianta cu deplasareexplicita. Reducerea efortului de calcul la nivelul a doi pasi cu deplasare explicita sebazeaza esential pe minimizarea numarului de operatii aritmetice, prin exploatareaeficienta a structurilor de zerouri ale matricelor implicate.

Concret, un pas dublu QR cu deplasare implicita consta din urmatoarele trans-formari.

1. Se calculeaza prima coloana q(k)1 a matricei Q = QkQk+1 ce de-

fineste transformarea ortogonala aferenta unui pas dublu QR cudeplasare explicita.

2. Se determina o matrice ortogonala U1 astfel ıncat prima sa coloana

sa fie q(k)1 , i.e. U1e1 = q

(k)1 .

3. Se calculeaza matricea B = UT1 HkU1 (a carei structura nu mai este

superior Hessenberg).

4. Se reface structura superior Hessenberg aplicand algoritmul HQmatricei B: [Hk+2, U ] = HQ(B). Transformarile implicate de acea-sta reducere nu afecteaza prima coloana a matricei de transformarecumulate.

Daca matricea Hk este ireductibila atunci rezultatul Hk+2 al aplicarii schemei decalcul de mai sus va fi esential acelasi, ın sensul observatiei 4.5, cu cel dat de un pasdublu QR cu deplasare explicita. Mai mult, schema de mai sus este determinantmai eficienta decat varianta cu deplasare explicita. Intr-adevar, exploatand cores-punzator avantajele structurale date de forma Hessenberg a matricelor initiala sifinala se poate reduce complexitatea pasului dublu de la O(n3) la O(n2), ceea ce ıneconomia ıntregului algoritm este esential. Detaliile sunt prezentate ın continuare.

Page 277: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 263

Consideram si aici, pentru simplificarea notatiilor, Hknot= H matricea curenta a

sirului QR, presupusa ireductibila, iar Hk+2not= H ′ matricea succesor ın varianta

cu utilizarea pasilor dubli. Urmand etapele din schema de calcul de mai sus avemurmatoarele particularitati.

1. Fara a reduce generalitatea, presupunem ca matricea superior triunghiulara

RkRk+1not= R este nesingulara. Atunci prima coloana a matricei de transformare

QkQk+1not= Q este

q1 = Qe1 =1

r11

h211 + h12h21 − sh11 + ph21(h11 + h22 − s)

h21h320...0

, (4.151)

unde sknot= s si pk

not= p sunt scalari reali definiti ın (4.133). Similar cu cazul pasului

simplu, numim

w =

h211 + h12h21 − sh11 + ph21(h11 + h22 − s)

h21h32

∈ IR3 (4.152)

vector de deplasare implicita aferent pasului dublu QR.2. Matricea ortogonala U1 de la instructiunea 2 a schemei de calcul de mai sus

poate fi un reflector (real) astfel calculat ıncat

UT1 q1 = U1q1 = ±‖q1‖e1. (4.153)

Datorita structurii vectorului q1 din (4.151), structura matricei U1 este

U1 =

[

U1 00 In−3

]

(4.154)

cu U1 ∈ IR3×3 reflector elementar (real) de ordinul 3.3. Datorita structurii (4.154) a matricei U1, alterarea formei Hessenberg prin

calculul matricei B de la instructiunea 3 are loc numai ın pozitiile (3, 1), (4, 1) si(4, 2).

4. Matricea B avand numai trei elemente nenule ce altereaza forma superiorHessenberg, sporul de eficienta se obtine prin adaptarea algoritmuluiHQr la aceastasituatie structurala. Concret, se evita operatiile de adunare si ınmultire cu zerouri,tinandu-se seama de urmatoarea structura

Ui =

Ii−1 0 0

0 Ui 00 0 In−i−2

, i = 2 : n−2, Un−1 =

[In−2 0

0 Un−1

]

(4.155)

a reflectorilor Ui, i = 2 : n−1, utilizati ın cadrul algoritmuluiHQr, unde Ui ∈ IR3×3

si Un−1 ∈ IR2×2 sunt reflectori elementari de indice 1.Schema de calcul este urmatoarea:

Page 278: metode de calcul numeric matriceal. algoritmi fundamentali

264 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. Pentru i = 2 : n−21. Se calculeaza reflectorul elementar Ui cu structura (4.155)

astfel ıncat (UTi B)(i+1 : i+2, i−1) = 0.

2. B ← UTi B. % Se anuleaza elementele (i+1 : i+2, i−1).

3. B ← BUi. % Pentru i < n−2 sunt alterate zerouriledin pozitiile (i+3, i : i+1).

2. % Ultima transformare1. Se calculeaza reflectorul elementar Un−1 astfel ıncat

(UTn−1B)(n, n−2) = 0.

2. B ← UTn−1B. % Se anuleaza elementul (n, n−2).

3. B ← BUn−1.

In acest fel, eliminarea elementelor nenule care altereaza structura Hessenberg serealizeaza prin ”deplasarea” lor de-a lungul unor trasee paralele cu diagonala prin-cipala.

Pentru exemplificare prezentam evolutia structurala a matricei B ın cazul n = 5.Si aici zerourile nou create au fost marcate cu ∅, alterarile de zerouri au fostevidentiate cu +, iar ıncadrarile indica liniile si/sau coloanele afectate de trans-formarea curenta.

H ← B = UT1 HU1 =

× × × × ×× × × × ×+ × × × ×+ + × × ×0 0 0 × ×

,

H ← UT2 H =

× × × × ×× × × × ×∅ × × × ×∅ + × × ×0 0 0 × ×

,

H ← HU2 =

××000

× × ×× × ×× × ×+ × ×+ + ×

×××××

,

H ← UT3 H =

× × × × ×× × × × ×0 × × × ×0 ∅ × × ×0 ∅ + × ×

,

Page 279: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 265

H ← HU3 =

× ×× ×0 ×0 00 0

× × ×× × ×× × ×× × ×+ × ×

,

H ← UT4 H =

× × × × ×× × × × ×0 × × × ×0 0 × × ×0 0 ∅ × ×

,

H ← HU4 =

× × ×× × ×0 × ×0 0 ×0 0 0

× ×× ×× ×× ×× ×

.

Si ın aceasta varianta adaptata a algoritmului HQr, atat matricea succesorH ′ cat si matricea intermediara B pot suprascrie matricea H , i.e. toate calculeleaferente unui pas dublu QR cu deplasare implicita se pot desfasura pe loc, ın tabloulmatricei H .

Din aceleasi ratiuni de organizare corespunzatoare a algoritmului QR pentrumatrice reale si, mai ales, a algoritmului de ordonare a formei Schur reale (vezisectiunea 4.6), vom introduce si aici un algoritm distinct de calcul al vectorului dedeplasare implicita asociat unui pas dublu QR.

Algoritmul 4.7 (VD2 – Calculul vectorului de deplasare implicitapentru un pas dublu QR) (Data o matrice superior Hessenberg H ∈∈ IRn×n, algoritmul calculeaza vectorul w ∈ IR3, de deplasare implicitapentru un pas dublu QR.)

1. s = hn−1,n−1 + hnn

2. p = hn−1,n−1hnn − hn−1,nhn,n−1

3. w =

h211 + h12h21 − sh11 + ph21(h11 + h22 − s)

h21h32

Comentarii. Sintaxa de apel a acestui algoritm va fi

w = VD2(H),

iar complexitatea sa este, evident, O(1). 3

Cu aceste precizari putem prezenta algoritmul de implementare a unui pas dubluQR cu deplasare implicita.

Page 280: metode de calcul numeric matriceal. algoritmi fundamentali

266 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Algoritmul 4.8 (IT QR2 – Pas dublu QR cu deplasare implicita)(Date o matrice superior Hessenberg ireductibila H ∈ IRn×n si vectorulde deplasare implicita w ∈ IR3, algoritmul suprascrie matricea H cu ma-tricea succesor H ← H ′ = QTHQ din sirul QR. Algoritmul furnizeaza,de asemenea, elementele definitorii semnificative ale reflectorilor utili-zati, i.e. elementele definitorii ale blocurilor reflector 3× 3 ın matriceleV ∈ IR3×(n−1) si b ∈ IRn−1.)

1. % Calculul si aplicarea reflectorului U1

1. [w, V ( : , 1), b1] = Hr(w)

2. H(1 :3, :) = Hrs(V (:, 1), b1, H(1 :3, :))

3. H(1 :min(4, n), 1:3) = Hrd(H(1 :min(4, n), 1:3), V (:, 1), b1)

2. % Refacerea formei superior Hessenberg

1. Pentru i = 2 : n− 2

1. [H(i : i+2, i−1), V (:, i), bi ] = Hr(H(i : i+2, i−1))2. H(i : i+2, i : n) = Hrs(V ( : , i), bi, H(i : i+2, i : n))

3. H(1 : min(i+3, n), i : i+2) == Hrd(H(1 : min(i+3, n), i : i+2), V (:, i), bi)

3. % Ultimul pas

1. [H(n−1 : n, n−2), V (1 :2, n−1), bn−1 ] == Hr(H(n−1 : n, n−2))

2. H(n−1 : n, n−1 : n) == Hrs(V (1 :2, n−1), bn−1, H(n−1 : n, n−1 : n))

3. H(:, n−1 : n) = Hrd(H(:, n−1 : n), V (1 :2, n−1), bn−1).

Comentarii. Vom utiliza urmatoarea sintaxa de apel a algoritmului de mai sus

[H,V, b ] = IT QR2(H,w).

Complexitatea unui pas dublu QR realizat de algoritmul 4.8 este O(n2). Con-cret, pentru executia algoritmului sunt necesari Nop ≈ 24n2 flopi (reali) la care seadauga cele n− 1 extrageri de radical. Subliniem faptul ca aceasta solutie este ceamai eficienta implementare cunoscuta a iteratiilor QR pentru matricele reale, fiindutilizata ın toate programele profesionale de calcul al valorilor proprii.

Algoritmul 4.8 nu calculeaza actualizarea matricei de transformare curente Qdar ofera, prin matricea V si vectorul b, informatia necesara pentru un eventualcalcul al acesteia. 3

G. Algoritmul QR pentru matrice reale

Algoritmul QR pentru matrice reale 26 se obtine prin iterarea algoritmului 4.8,anularea efectiva a elementelor subdiagonale devenite neglijabile si exploatarea

26 Algoritmul ce urmeaza se poate aplica si pentru calculul valorilor proprii ale matricelorcomplexe (mai mult, ın unele pachete profesionale de calcul numeric asa se si procedeaza).

Intr-adevar, daca C ∈ ICn×n se scrie C = A+ iB cu A, B ∈ IRn×n, atunci este usor de aratat ca

Page 281: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 267

structurala a acestor anulari ın vederea obtinerii unei eficiente maxime. Dupaepuizarea procedurii de iterare se obtine o matrice cvasisuperior triunghiulara, or-togonal asemenea cu matricea initiala, cu blocurile diagonale de dimensiune celmult 2 × 2. Pentru obtinerea unei forme Schur reale a matricei initiale, algoritmulse completeaza cu reducerea la forma superior triunghiulara a blocurilor diagonale2× 2 care au valori proprii reale.

Aspectele tehnice, pe care le trecem succint ın revista mai jos, sunt similare cucele din cazul complex.

Pentru deciziile de setare la zero a elementelor subdiagonale se utilizeaza criteriuldat de relatia (4.144).

Similar cu algoritmul 4.6, pentru monitorizarea evolutiei structurale a matricelordin sirul QR, la fiecare iteratie, dupa anularea elementelor subdiagonale care satis-fac conditia (4.144), se va determina cel mai mic ıntreg p si cel mai mare ıntreg qastfel ıncat matricea Hessenberg curenta sa aiba structura (4.146) cu H11 ∈ ICp×p,

H22 ∈ IC(n−p−q)×(n−p−q) superior Hessenberg ireductibila si H33 ∈ IRq×q cvasi-superior triunghiulara (i.e. cu blocurile diagonale de dimensiune cel mult 2 × 2).Astfel, blocurile diagonale ale submatricei H33 au valori proprii pe care le con-sideram ”deja evidentiate” (alte valori proprii evidentiate se pot gasi printre valorileproprii ale blocurilor diagonale de dimensiune cel mult 2× 2 ale submatricei H11),iar iteratia QR se va aplica, de fapt, numai submatricei H22 (v. (4.146)-(4.148)).Aceasta transformare afecteaza celelalte blocuri ale matricei H din (4.146) ca ınrelatia (4.149).

Faza iterativa a algoritmului QR se termina ın momentul ın care ordinul sub-matricei H22 scade la cel mult 2, i.e. q devine mai mare sau egal cu n− 2.

Supravegherea convergentei procesului iterativ se efectueaza similar cu cazulcomplex, cu urmatoarele aspecte specifice:

– aprecierea convergentei se face la nivelul evidentierii unui bloc diagonal ıncoltul din dreapta jos al submatricei H22 (ın 10 sau 20 de iteratii pentru modificareamodului de calcul al vectorului de deplasare implicita, respectiv 30 de iteratii pentrurenuntarea la continuarea calculului);

– pentru calculul vectorului de deplasare implicita w modificat ın (4.152) se vorutiliza urmatoarele relatii empirice pentru suma si produsul deplasarilor µ1 si µ2

s = 1.5 (|hn−q,n−q−1|+ |hn−q−1,n−q−2|)p = (|hn−q,n−q−1|+ |hn−q−1,n−q−2|)2, (4.156)

valorile si vectorii proprii ale matricei C se pot exprima ın functie de valorile si vectorii proprii ale

matricei F =

[A −BB A

]

∈ IR2n×2n. Concret, fiecarei valori proprii complexe λk a matricei C,

cu xk = uk+ivk (uk, vk ∈ IRn) vector propriu asociat, ıi corespund valorile proprii λk si conjugata

ei λk, ale matricei reale F , cu vectorii proprii asociati de forma

[ukvk

]

− i

[ −vkuk

]

si, respectiv,[ukvk

]

+ i

[ −vkuk

]

, iar fiecarei valori proprii reale λk, cu vectorul propriu asociat notat identic,

i.e. xk = uk + ivk cu uk, vk ∈ IRn, a matricei C, ıi corespunde o valoare proprie dubla λk si doi

vectori proprii asociati

[ukvk

]

si

[ −vkuk

]

ai matricei reale F . Daca se calculeaza numai valorile

proprii ale matricei F nu se poate deduce prin mijloace simple care din valorile proprii complexconjugate ale matricei F apartin spectrului lui C.

Page 282: metode de calcul numeric matriceal. algoritmi fundamentali

268 CAPITOLUL 4. VALORI SI VECTORI PROPRII

recomandate ın [ X ].La terminarea cu succes a fazei iterative, triangularizarea blocurilor diagonale

2 × 2 cu valori proprii reale se poate face aplicand procedura standard de deflatie.Daca G ∈ IR2×2 are valorile proprii reale, i.e.

∆ = (g11 − g22)2 + 4g12g21 ≥ 0, (4.157)

atunci

x1 =

[λ1 − g22g21

]

(4.158)

este un vector propriu asociat valorii proprii λ1 ∈ λ(G) data de

λ1 =g11 + g22 + sgn(g11 + g22)

√∆

2. (4.159)

Atunci rotatia P ∈ IR2×2, care asigura satisfacerea conditiei (PTx1)(2) = 0, areprima coloana coliniara cu x1 si, conform lemei 4.3, realizeaza triangularizareaurmarita

G = PTGP =

[λ1 g120 λ2

]

. (4.160)

Daca blocul diagonal ce trebuie triangularizat, pe care ıl notam generic cu G, seafla ın pozitia definita de liniile si coloanele k si k + 1, atunci rezultatul dorit seobtine aplicand matricei date o transformare ortogonala de asemanare definita dematricea diag(Ik−1, P, In−k−1).

In vederea unei scrieri mai concise a algoritmuluiQR cu deplasare implicita pen-tru matrice reale, prezentam aici un algoritm preliminar care proceseaza perecheabloc-diagonala 2× 2 aflata ın pozitia (k, k + 1).

Algoritmul 4.9 (TRID2 – Triangularizarea unui bloc diagonal2 × 2) (Data o matrice S ∈ IRn×n ın forma cvasisuperior triunghi-ulara si ıntregul k ∈ 1 : n− 1 algoritmul testeaza daca submatriceaS(k : k+1, k : k+1) are valorile proprii reale si, ın caz afirmativ, cal-culeaza triangularizarea ortogonala a blocului diagonal vizat, rezultatulsuprascriind matricea S. De asemenea, algoritmul returneaza elementeledefinitorii c si s ale rotatiei reale calculate. In caz contrar matriceaS ramane nemodificata si, pentru identificarea acestei situatii, se re-turneaza c = 1, s = 0.)

1. c = 1, s = 0

2. β = sk,k+sk+1,k+1, γ = sk,ksk+1,k+1−sk,k+1sk+1,k, ∆ = β2−4γ.3. Daca ∆ ≥ 0 atunci

1. λ = (β + sgn(β)√∆)/2

2. x =

[λ− sk+1,k+1sk+1,k

]

3. [x, c, s ] = Gr(x)

4. S(1 : k+1, k :k+1) = Grd(S(1 : k+1, k :k+1), c, s)

Page 283: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 269

5. S(k :k+1, k :n) = Grs(c, s, S(k : k+1, k :n))

6. S(k+1, k) = 0 % Zeroul calculat devine un zero efectiv.

Comentarii. Sintaxa de apel a acestui algoritm va fi

[S, c, s ] = TRID2(S, k),

iar complexitatea sa este O(n). 3

Cu precizarile de mai sus, algoritmul QR standard cu pasi dubli cu deplasariimplicite pentru calculul formei Schur reale se scrie astfel.

Algoritmul 4.10 (QR2 – Algoritmul QR cu pasi dubli, cu deplasariimplicite) (Date o matrice A ∈ IRn×n, o matrice ortogonala Q ∈ IRn×n

si un nivel de toleranta tol pentru anularea elementelor subdiagonale,algoritmul calculeaza forma Schur reala a matricei A ← S = QTAQ.Toate calculele se efectueaza pe loc, ın locatiile de memorie ale tablouluiA. Optional, se acumuleaza transformarile prin actualizarea matriceiortogonale Q, i.e. Q ← QQ. Optiunea se exprima prin intermediulvariabilei logice opt de tip sir de caractere care poate lua valorile ’da’

sau ’nu’. Daca opt = ′nu′, matricea Q ramane nemodificata.)

1. Daca n = 1 atunci return

2. % Reducerea la forma Hessenberg

1. [A,Q ] =HQr(A,Q, opt)

3. % Faza iterativa

1. p = 0, q = 0, cont it = 0

2. Cat timp q < n

1. % Anularea elementelor subdiagonale neglijabile

1. Pentru i = p+ 1 : n− q − 11. Daca |ai+1,i| ≤ tol(|aii|+ |ai+1,i+1|) atunci

1. ai+1,i = 0

2. % Determinarea lui q1. continua = ′da′

2. Cat timp continua = ′da′

1. Daca q ≥ n− 2 atunci break

2. Daca an−q,n−q−1 = 0atunci

1. q ← q + 12. cont it = 0

altfel

1. Daca an−q−1,n−q−2 = 0atunci

1. q ← q + 22. cont it = 0

altfel continua = ′nu′.

Page 284: metode de calcul numeric matriceal. algoritmi fundamentali

270 CAPITOLUL 4. VALORI SI VECTORI PROPRII

3. % Terminarea normala a fazei iterative

1. Daca q ≥ n− 2 atunci break

4. % Terminarea prin esec a algoritmului1. Daca cont it > 30 atunci

1. Tipareste ’S-au consumat 30 iteratii QR pentruevidentierea unui bloc diagonal fara a se atingeacest obiectiv. Este posibil ca, pentru aceste datede intrare, algoritmul QR sa nu fie convergent.’

2. Return

5. % Determinarea lui p

1. p = n− q − 1

2. Cat timp ap+1,p 6= 01. p = p− 12. Daca p = 0 atunci break

6. % Iteratia curenta

1. k = p+1, l = n−q2. w = VD2(A(k : l, k : l))

3. % Calculul deplasarii implicite modificate1. Daca cont it = 10 sau cont it = 20 atunci

1. s = 1.5 (|al,l−1|+ |al−1,l−2|)2. p = (|al,l−1|+ |al−1,l−2|)2

3. w =

a2kk + ak,k+1ak+1,k − sakk + pak+1,k(akk + ak+1,k+1 − s)

ak+1,kak+2,k+1

4. [A(k : l, k : l), V, b ] = IT QR2(A(k : l, k : l), w)

5. t = 3

6. Pentru i = 1 : l−k1. Daca i = l − k atunci t = 22. r = min(p+i+2, l)3. Daca k > 1 atunci

1. A(1 : p, p+i : r) == Hrd(A(1 : p, p+i : r), V (1 : t, i), bi)

4. Daca l < n atunci

1. A(p+i : r, l+1 : n) == Hrs(V (1 : t, i), bi, A(p+i : r, l+1 : n))

7. cont it = cont it+ 1

7. Daca opt =’da’ atunci

1. t = 3

2. Pentru i = 1 : l−k1. Daca i = l − k atunci t = 22. r = min(p+i+2, l)3. Q(:, p+i : r) = Hrd(Q(:, p+i : r), V (1 : t, i), bi))

Page 285: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 271

4. % Triangularizarea blocurilor diagonale 2×2 cu valori proprii reale

1. k = 1

2. Cat timp k < n

1. Daca ak+1,k = 0 atunci k = k + 1,altfel

1. [A, c, s ] =TRID2(A, k)

2. Daca opt =’da’ si c 6= 1 atunci

1. Q( : , k :k+1) = Grd(Q( : , k :k+1), c, s)

3. k = k + 2

Comentarii. In aspectele sale esentiale, algoritmul de mai sus sta la baza tu-turor programelor profesionale de calcul al valorilor proprii ale unei matrice reale.Precizarile referitoare la aspectele de organizare a algoritmului facute la variantacomplexa raman valabile. Sintaxa de utilizare a algoritmului de mai sus va fi

[A,Q] = QR2(A,Q, tol, opt).

Acceptand evaluarea conform careia sunt suficiente, ın medie, doua iteratiipentru a pune ın evidenta o valoare proprie, algoritmul necesita un numar deNA

op = 30n3 flopi fara acumularea transformarilor, NQop = 16n3 flopi suplimen-

tari pentru calculul vectorilor Schur, i.e. al matricei ortogonale Q. Putem, deci,considera ca pentru matrice de ordin superior (e.g. n > 100) algoritmul QR2 are ocomplexitate O(n3).

Si aici, utilizarea exclusiva a transformarilor ortogonale confera algoritmuluiQR2 o foarte buna stabilitate numerica. Pentru aspecte suplimentare, referitoarela conditionarea valorilor proprii si stabilitatea numerica a algoritmului de mai sus,vezi sectiunile § 4.10 si § 4.11. 3

H. Permutare si echilibrare

Implementarile profesionale ale algoritmului QR contin o faza de prelucrari preli-minare efectuate asupra matricei A care urmaresc doua obiective:

– a) cresterea eficientei prin evidentierea eventualelor valori proprii ”izolate”utilizand exclusiv transformari de asemanare definite de matrice de permutare (decifara efectuarea de operatii aritmetice);

– b) ımbunatatirea conditionarii spectrului de valori proprii prin transformaride asemanare diagonale si, ın acest mod, asigurarea unei acurateti superioare arezultatelor.

Permutare

Daca matricea A ∈ ICn×n are toate elementele extradiagonale ale liniei sau coloaneii nule, atunci elementul diagonal (i, i) este o valoare proprie a matricelor AT si Asi, fapt esential, ei este un vector propriu al matricei AT , respectiv A, asociat ei.De aceea, elementul diagonal (i, i) poate fi adus ın pozitia (1,1) sau (n,n) printr-o

Page 286: metode de calcul numeric matriceal. algoritmi fundamentali

272 CAPITOLUL 4. VALORI SI VECTORI PROPRII

”deflatie de permutare”, i.e. printr-o transformare de asemanare definita de o matri-ce de permutare elementara P1i

27, respectiv Pin. Evident, acest proces poate con-tinua examinand matricea ramasa A(2 : n, 2 : n) sau A(1 : n− 1, 1 : n− 1). Pentrua sistematiza procesul de cautare si permutare vom deplasa mai ıntai liniile cuelementele extradiagonale nule ın jos (i.e. pe ultima linie a matricei ramase curente)conform schemei prezentate mai jos. Pentru claritate, utilizam instructiunea ”breaki” pentru iesirea fortata din ciclul ”pentru i = ...”, variabila de indexare i ramanandcu valoarea avuta ın momentul iesirii din ciclu.

1. Pentru l = n : −1 : 1

1. Pentru i = l : −1 : 1

1. Daca elementele extradiagonale ale liniei i ale matricei A(1 : l, 1 : l)sunt nule atunci

1. Se permuta liniile i si l ale matricei A

2. Se permuta coloanele i si l ale matricei A

3. break i

altfel daca i = 1 (i.e. nu exista nici o linie a matricei A(1 : l, 1 : l)cu toate elementele extradiagonale nule) atunci

1. break l

Se obtine o matrice avand structura

A = PT1 AP1 =

[A11 A12

0 A22

]

, (4.161)

cu A11 ∈ ICl×l fara nici o linie cu toate elementele extradiagonale nule si A22 superiortriunghiulara. Matricea de permutare P1 cumuleaza toate permutarile efectuate.

Procedand similar cu matricea A11 prin deplasarea coloanelor cu toate ele-mentele extradiagonale nule spre stanga (i.e., la fiecare pas, ın prima coloana amatricei ”ramase”) se obtine ın final o matrice cu structura

A = PTAP =

A11 A12 A13

0 A22 A23

0 0 A33

, (4.162)

cu A11, A33 superior triunghiulare si A22 fara nici o linie si nici o coloana cu toateelementele extradiagonale nule. Matricea de permutare P cumuleaza permutarileefectuate.

Elementele diagonale ale matricelor A11 si A33 sunt valori proprii ale matricei Acare au fost puse ın evidenta fara a efectua nici o operatie aritmetica. Pentru aflareacelorlalte valori proprii algoritmul QR se aplica numai blocului A22. Daca pe langacalculul valorilor proprii se urmareste si calculul vectorilor proprii, atunci trebuieretinuta matricea de permutare P (de obicei, ın forma factorizata, prin retinerea

27 Amintim ca matricea de permutare elementara Pij se obtine din matricea unitate prin per-mutarea liniilor (sau coloanelor) i si j. Premultiplicarea (postmultiplicarea) unei matrice cu Pij

are ca efect permutarea liniilor (coloanelor) i si j.

Page 287: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 273

elementelor definitorii ale permutarilor elementare). Transformarile efectuate dealgoritmul QR aplicat blocului A22 definite A22 ← S22 = QH

22A22Q22 vor actionasi asupra blocurilor A12 si A23, i.e. vom efectua A12 ← A12Q22 si, respectiv,A23 ← QH

22A23.Algoritmul de reducere la forma (4.162), ın care este utilizata instructiunea

break avand semnificatia precizata mai sus, este urmatorul.

Algoritmul 4.11 (Π – Evidentierea, prin permutari, a valorilorproprii izolate) (Data matricea A ∈ ICn×n, algoritmul calculeaza o ma-trice de permutare P astfel ıncat matricea A = PTAP sa aiba struc-tura (4.162) avand blocurile A11 = A(1 : k− 1, 1 : k− 1) si A33 == A(l+1:n, l+1:n) superior triunghiulare iar blocul A22 = A(k : l, k : l)nu are nici o linie si nici o coloana cu toate elementele extradiagonalenule. Matricea A suprascrie matricea A, iar permutarile elementaresunt memorate prin elementele vectorului p ∈ INn, p (i) 6= i avanddrept semnificatie faptul ca linia (si coloana) i a fost permutata culinia (respectiv, coloana) p (i). Ordinea de aplicare a permutarilor estep (n), p (n− 1), . . . , p (l + 1), p (1), p (2), . . . , p (k − 1).)

1. p = [ 0 0 . . . 0 ]

2. Pentru l = n : −1 : 1

1. Pentru i = l : −1 : 1

1. Daca A(i, j) = 0, j = 1 : l, j 6= i, atunci

1. A(i, :)↔ A(l, :)

2. A(1 : l, i)↔ A(1 : l, l)

3. p (l) = i

4. break i

altfel daca i = 1 atunci

1. break l

3. Pentru k = 1 : l

1. Pentru j = k : l

1. Daca A(i, j) = 0, i = k : l, i 6= j, atunci

1. A(j, k : n)↔ A(k, k : n)

2. A(1 : l, j)↔ A(1 : l, k)

3. p (k) = j

4. break j

altfel daca j = l atunci

1. break k

Comentarii. Vom utiliza ın continuare urmatoarea sintaxa pentru apelarea algo-ritmului de permutare de mai sus:

[A, p, k, l ] = Π(A),

unde semnificatia parametrilor este evidenta.

Page 288: metode de calcul numeric matriceal. algoritmi fundamentali

274 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Trebuie precizat ca algoritmul Π nu pune ın evidenta, ın cazul general, toatevalorile proprii ”izolate”, i.e. care s-ar putea obtine fara a efectua calcule aritmetice.Astfel, daca matricea initiala are, e.g. structura

A =

× × × × × ×× × × × × ×0 0 × × × ×0 0 0 × × ×0 0 0 0 × ×0 0 0 0 × ×

,

unde elementele marcate × sunt nenule, aceasta nu va fi modificata de algoritmulde mai sus (ıntrucat nu are nici o linie si nici o coloana cu toate elementele extra-diagonale nule) desi se vede clar ca elementele (3, 3) si (4, 4) sunt valori proprii.Obtinerea prin transformari de asemanare cu permutari a structurii bloc (4.162)nu mai este posibila ın acest caz pentru ca vectorii proprii asociati valorilor propriiremarcate au o structura mai complexa. 3

Echilibrare

Asa cum vom vedea ın § 4.10, conditionarea spectrului de valori proprii ale uneimatrice A este dependenta de ‖A‖F si este de dorit ca aceasta norma sa fie catmai mica. Pe de alta parte, toate transformarile efectuate ın diversele variante alealgoritmului QR sunt unitare (ortogonale) deci, printre altele, asigura conservareaconditionarii spectrului. Se ridica ın mod natural problema daca, ıntr-o faza pre-liminara, aceasta conditionare nu ar putea fi ımbunatatita aplicand transformari deasemanare neunitare (neortogonale).

Din motive de eficienta, ın practica numerica s-a pus numai problema unei pre-procesari a matricei A ın sensul reducerii initiale a normei ‖A‖F prin transformaride asemanare definite de matrice diagonale, i.e. a determinarii matricei diagonaleD = diag(d1, d2, . . . , dn), astfel ıncat ‖D−1AD‖F sa fie minima 28.

Fie D⊂ IRn×n multimea tuturor matricelor diagonale nesingulare de ordinul n.Procesul de minimizare a normei ‖D−1AD‖F are la baza urmatoarele rezultate [ X ].

1. Pentru orice matrice ireductibila 29 A ∈ IRn×n 30 exista o matrice Ac ∈∈ IRn×n astfel ıncat ‖Ac‖F = infD∈D‖D−1AD‖F .

2. Se poate construi recurent un sir de matrice (Ak), diagonal asemenea cu A,astfel ıncat A∞ = limk→∞ Ak = Ac.

3. Matricea Ac este echilibrata ın sensul ca normele euclidiene ale liniilor sicoloanelor cu acelasi indice sunt egale, i.e. ‖Ac(k, :)‖ = ‖Ac(:, k)‖, ∀ k ∈ 1 : n.

4. Oricare ar fi matricea diagonala nesingularaD0 sirurile (Ak) si (Bk) asociatematricelor initiale A si, respectiv, B = D−1

0 AD0 au aceeasi limita Ac.Aceste rezultate teoretice nu pot fi utilizate ca atare ıntr-o operatie de pre-

conditionare a unei matrice ıntrucat ınsesi aceste calcule sunt afectate de erorile de

28 Evident, pot fi utilizate si alte norme matriceale consistente.29 O matrice A ∈ IRn×n (sau A ∈ ICn×n), n ≥ 2 se numeste ireductibila daca nu exista nici o

matrice de permutare P astfel ıncat PTAP =

[B C0 D

]

cu B ∈ IRr×r, 1 ≤ r < n.

30 Cazul matricelor complexe se trateaza analog.

Page 289: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 275

rotunjire si, ın consecinta, se obtine o matrice cu un spectru mai robust dar, posibil,deja afectat de erori de nivel inadmisibil.

Tinand seama de aceste observatii, algoritmii de preconditionare utilizati ınpractica au drept obiectiv concret o echilibrare cat mai buna a normelor euclidieneale liniilor si coloanelor cu acelasi indice prin utilizarea unor matrice de transfor-mare diagonale care permit efectuarea unor calcule exacte ın formatul virgula mobila(FVM) al masinii tinta. Pentru aceasta fie β baza de numeratie a FVM utilizat 31 siDβ ⊂ D multimea matricelor diagonale de forma D = diag(βσ1 , βσ2 , . . . , βσn ), σi ∈∈ ZZ, i = 1 : n. Intrucat calculul matricei D−1AD implica numai operatii deınmultire si ımpartire, aceste calcule se efectueaza exact 32 si preconditionarea ma-tricei este efectiv utila pentru ımbunatatirea preciziei valorilor si vectorilor propriicalculati.

Pentru prezentarea algoritmului de echilibrare consideram matricea A ∈ IRn×n

si scriemA = AD +A0, unde AD = diag(A), (4.163)

i.e. A0 este matricea elementelor extradiagonale ale lui A. Se constata imediat capentru orice matrice D ∈ D avem

D−1AD = AD +D−1A0D, (4.164)

i.e. elementele diagonale nu sunt afectate de transformarile diagonale de asemanare.Prin urmare, pentru reducerea normei lui D−1AD este suficient sa actionam numaiasupra matricei A0. Vom presupune ın continuare ca matricea A0 nu are nici o liniesi nici o coloana nule 33.

Reducerea ‖D−1A0D‖F se face iterativ construind sirul Ak, k = 0, 1, 2, . . . ,printr-o relatie recurenta de forma

Ak+1 = D−1k AkDk, (4.165)

cu Dk ∈ Dβ astfel calculat ıncat ‖Ak+1‖F sa fie cat mai mica. Vom efectua aceastaminimizare descompunand matricea Dk ıntr-un produs de matrice diagonale ele-mentare

Dk = Dk1Dk2 · · ·Dkn, (4.166)

cu Dki = diag(1, 1, . . . , dki, . . . , 1) cu dki = βσki (pe pozitia diagonala (i, i)) simaximizand scaderea de norma

δkidef= ‖Aki‖F 2 − ‖Ak,i+1‖F 2, (4.167)

unde Aki = D−1k,i−1 · · ·D−1

k2 D−1k1 AkDk1Dk2 · · ·Dk,i−1, i = 0 : n − 1, Ak0 = Ak,

Akn = Ak+1. Pentru aceasta fie, pentru ınceput, dki = ν o variabila reala si

31 Uzual β = 2, dar se ıntalnesc si situatii cu β = 10 sau β = 16.32 Daca α = (m, e) este reprezentarea ın FVM a numarului real α, unde m este mantisa iar e

exponentul, atunci α ∗ βσ = (m, e + σ) si α/βσ = (m, e − σ) deci este afectat numai exponentulcare, fiind ıntreg, se calculeaza exact. Daca se utilizeaza un limbaj de programare de nivel ınalteste posibil sa fie necesar ca portiunile de cod pentru efectuarea acestor operatii sa fie scrise ınlimbaj de asamblare.

33 In caz contrar se foloseste algoritmul de permutare Π si preconditionarea se aplica uneimatrice de ordin redus.

Page 290: metode de calcul numeric matriceal. algoritmi fundamentali

276 CAPITOLUL 4. VALORI SI VECTORI PROPRII

ρki = ‖Aki(i, :)‖, κki = ‖Aki(:, i)‖ normele liniei, respectiv a coloanei i a matriceiAki, singurele afectate de transformarea definita de Dki. (Datorita ipotezei camatricea A0 nu are linii sau coloane nule avem ρkiκki 6= 0). Atunci diferenta din(4.167), ca functie de ν, are expresia

δki(ν) = ‖Aki‖F 2 − ‖Ak,i+1‖F 2= ρ2ki + κ2ki − (

ρ2kiν2

+ κ2kiν2) (4.168)

si este maxima pentru

ν∗ =

√ρkiκki

. (4.169)

Acum, consideram dki = βσki cel mai apropiat de valoarea de mai sus a lui ν∗, i.e.acel σki ıntreg (unic determinat) pentru care

βσki− 12 < ν∗ ≤ βσki+

12 (4.170)

sau, echivalent,

β2σki−1 <ρkiκki≤ β2σki+1. (4.171)

Calculul efectiv al lui σdef= σki, pentru µ

def=

ρkiκki

> 0 dat, se poate face eficient

observand caβ2σ−1 < µ ≤ β2σ+1 ⇐⇒ µ ≤ β2σ+1 < µβ2, (4.172)

observatie care conduce la urmatoarea schema de calcul.

σ 1. σ = 02. ν = 13. α = β4. Cat timp α < µ

1. σ ← σ + 12. ν = νβ3. α = αβ2

5. Cat timp α ≥ µβ2

1. σ ← σ − 1

2. ν =ν

β

3. α =α

β2

De retinut ca toate calculele din schema de mai sus se pot efectua exact (i.e.instructiunile 4.2, 4.3, 5.2, 5.3 contin operatii aritmetice care se efectueaza, esential,ın numere ıntregi), iar dupa executia lor avem α = β2σ+1 si ν = βσ, cea maiapropiata valoare de acest tip de valoarea optima ν∗.

Pentru a se evita cicluri, posibile datorita formei speciale a elementelor ma-tricelor diagonale de transformare, modificarea efectiva a unei perechi linie-coloanai are loc numai atunci cand valoarea relativa a lui δ de la un pas elementar estesuperioara unei tolerante tol impuse, i.e.

δki(dki) = ρ2ki + κ2ki − (ρ2kid2ki

+ κ2kid2ki) > tol(ρ2ki + κ2ki) (4.173)

Page 291: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 277

sau

(ρkidki

)2+ (κkidki)

2 < γ(ρ2ki + κ2ki)) (4.174)

unde γ = 1− tol. Valoarea recomandata ın [ X ] pentru tol este 0.05, respectiv 0.95pentru γ.

Procesul de iterare se opreste atunci cand la pasul curent k nu are loc modificareanici unei perechi linie-coloana.

Rezulta urmatorul algoritm.

Algoritmul 4.12 (ECH – Echilibrare) (Date matricea A ∈ ICn×n

si baza β a sistemului de numeratie, algoritmul calculeaza matricea dia-gonala D, avand ca elemente diagonale numai puteri ıntregi ale bazei β,astfel ıncat matricea A = D−1AD sa aiba norma Frobenius minima ınraport cu toate transformarile de acest tip. Matricea A suprascrie A, iarputerile σi ale bazei β, care definesc elementele diagonale D(i, i) = βσi ,sunt memorate ın vectorul s ∈ ZZn.)

1. Pentru i = 1 : n

1. si = 0

2. η = β2

3. final = ′nu′

4. Cat timp final = ′nu′

1. final = ′da′

2. Pentru i = 1 : n

1. ρ =∑n

j=1

j 6=i|aij |2, κ =

∑nj=1

j 6=i|aji|2

2. µ =ρ

κ3. ν = 1

4. α = β

5. σ = s(i)

6. Cat timp α < µ

1. σ ← σ + 1

2. ν = νβ

3. α = αη

7. Cat timp α ≥ µη1. σ ← σ − 1

2. ν =ν

β

3. α =α

η

8. Dacaρ

ν2+ κν2 < 0.95(ρ+ κ) atunci

1. s(i) = σ

2. A(i, :)← A(i, :)

ν, A(:, i)← A(:, i)ν

3. final = ′nu′.

Page 292: metode de calcul numeric matriceal. algoritmi fundamentali

278 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Comentarii. Apelul algoritmului se poate face cu sintaxa

[A, s ] = ECH(A, β).

Variabila logica final este utilizata pentru sesizarea aparitiei unui pas ın care nuare loc modificarea nici unei perechi linie-coloana si a stabili astfel terminarea al-goritmului.

In unele implementari profesionale ale algoritmului, pentru reducerea efortu-lui de calcul, ın locul echilibrarii normelor euclidiene ale liniilor si coloanelor, seefectueaza o echilibrare a normelor ‖ · ‖1 ale acestora. Tinand seama de faptulca ‖z‖ ≤ ‖z‖1 ≤

√n‖z‖, o echilibrare a normelor ‖ · ‖1 are drept consecinta si o

echilibrare, considerata corespunzatoare ın aplicatiile curente, a normelor euclidi-ene. Intr-un astfel de caz, instructiunea 4.2.1 se modifica adecvat.

Avandu-se ın vedere caracterul iterativ, complexitatea algoritmului nu poatefi evaluata exact. Totusi, ıntrucat majoritatea calculelor se fac practic cu numereıntregi, se poate aprecia ca ponderea eventualei utilizari a algoritmului de echilibrareın calculul valorilor proprii este putin semnificativa. 3

Permutare si echilibrare

Algoritmii de permutare si echilibrare se utilizeaza de obicei ın tandem, situatieın care apar detalii tehnice interesante. Dintre acestea, semnalam posibilitateamemorarii permutarilor elementare si a elementelor definitorii ale matricei diagonaleD de echilibrare ın cadrul aceluiasi vector de ıntregi. Intr-adevar, dupa evidentiereavalorilor proprii izolate, echilibrarea se efectueaza numai asupra blocului diagonalmedian A22 = A(k : l, k : l), i.e.

A← D−1PTAPD =

A11 A12D22 A13

0 D−122 A22D22 D−1

22 A23

0 0 A33

. (4.175)

Prin urmare, pentru memorarea elementelor diagonale se poate utiliza portiuneadin vectorul destinat memorarii permutarilor neafectata de acestea. Tandemul per-mutare echilibrare poate fi descris ın felul urmator:

Algoritmul 4.13 (ΠECH – Permutare si echilibrare) (Date ma-tricea A ∈ ICn×n si baza de numeratie β, algoritmul calculeaza ma-tricea de permutare P si matricea diagonala D22 (prin puterile bazei βcare dau valorile elementelor diagonale ale lui D22) astfel ıncat matriceaA obtinuta ın (4.175) sa aibe submatricele A(1 : k − 1, 1 : k − 1) siA(l+1 : n, l+1 : n) superior triunghiulare iar submatricea A(k : l, k : l)echilibrata. Permutarile sunt memorate ın subvectorii d(1 : k − 1) sid(l + 1 : n) iar puterile bazei care definesc elementele diagonale alematricei D22 ın subvectorul d(k : l).)

1. [A, d, k, l ] = Π(A)

2. Daca l > k

1. [A(k : l, k : l), d(k : l) ] = ECH(A(k : l, k : l), β)

Page 293: metode de calcul numeric matriceal. algoritmi fundamentali

4.4. ALGORITMUL QR 279

2. Pentru i = k : l

1. ci = 1

2. Pentru j = 1 : |di|1. Daca di > 0 atunci

1. ci = ciβ

altfel

1. ci =ciβ

3. Daca l < n

1. Pentru i = k : l

1. A(i, l + 1 : n)← A(i, l + 1 : n)/ci

4. Daca k > 1

1. Pentru j = k : l

1. A(1 : k − 1, j)← A(1 : k − 1, j)cj

Comentarii. Apelul algoritmului se va face cu sintaxa

[A, d, k, l ] = ΠECH(A, β).

Evident, calculele de la instructiunile 4 si 5 se pot efectua exact. Daca portiunilede interes se codifica ın limbaj de asamblare, atunci calculul efectiv al numerelor cinu este necesar, operatiile de la instructiunile 4 si 5 realizandu-se prin modificareaexponentilor.

Complexitatea algoritmului este dictata esential de valorile parametrilor k sil, dar aprecierea ca ponderea sa ın economia unui algoritm de calcul al valorilorproprii este putin semnificativa ramane valabila. 3

4.4.3 Programe principale (”driver”-e)

Utilizarea algoritmilor prezentati ın aceasta sectiune ın cadrul unor programe de cal-cul al valorilor si vectorilor proprii (vezi si sectiunea urmatoare) se poate face ın di-verse variante, ın raport cu tipul datelor initiale si al obiectivelor concrete urmarite.Desi o astfel de ıntreprindere nu prezinta dificultati de principiu, prezentam, totusi,o exemplificare pentru urmatoarea situatie concreta:

• date initiale: o matrice reala A ∈ IRn×n, baza β a sistemului de numeratie aFVM utilizat si toleranta tol pentru aprecierea elementelor neglijabile;

• obiective: calculul formei Schur reale, acumularea tuturor transformarilor sicalculul partilor reale si complexe ale tuturor valorilor proprii.

Admitem ın continuare, pentru simplificare, ca o multime de tipulM = n1 : n2, cun2 < n1, este vida si ca orice operatie care implica (cel putin) o multime vida nuse executa. O solutie posibila pentru problema formulata, incluzand permutarea siechilibrarea, este urmatoarea.

Page 294: metode de calcul numeric matriceal. algoritmi fundamentali

280 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. [A, d, l, k ] = ΠECH(A, β)

2. T = In

3. % Acumularea transformarilor din faza de permutare

1. Pentru j = n : −1 : l + 1

1. T (: , j)↔ T (: , dj)

2. Pentru j = 1 : k − 1

1. T (: , j)↔ T (: , dj)

4. % Acumularea transformarilor din faza de echilibrare

1. Pentru j = k : l

1. c = 1

2. Pentru i = 1 : |dj |1. Daca dj > 0 atunci

1. c = cβ

altfel

1. c =c

β3. T (: , j)← T (: , j)c

5. % Aplicarea algoritmului QR pentru matrice reale

1. [A(k : l, k : l), Q ] = QR2(A(k : l, k : l), Il−k+1, tol,′da′)

2. A(1 : k − 1, k : l) = A(1 : k − 1, l : k)Q

3. A(k : l, l+ 1 : n) = QTA(k : l, l+ 1 : n)

4. T ( : , k : l) = T ( : , k : l)Q

6. % Calculul vectorilor cu partile reale si imaginare ale valorilor proprii

1. Pentru i = 1 : k − 1

1. λre(i) = aii, λim(i) = 0

2. i = k

3. Cat timp i < l

1. Daca ai+1,i 6= 0 atunci

1. ∆ = (aii − ai+1,i+1)2 + 4ai,i+1ai+1,i

2. λre(i) = (aii + ai+1,i+1)/2, λim(i) =√−∆/2

3. λre(i+ 1) = λre(i), λim(i+ 1) = −λim(i)4. i← i+ 2

altfel

1. λre(i) = aii, λim(i) = 0

2. i← i+ 1

Page 295: metode de calcul numeric matriceal. algoritmi fundamentali

4.5. CALCULUL VECTORILOR PROPRII 281

4. Pentru i = l + 1 : n

1. λre(i) = aii, λim(i) = 0

Acest program calculeaza matricea de transformare nesingulara (dar nu ın modnecesar ortogonala) T ∈ IRn×n si matricea A ← S ∈ IRn×n ın forma Schur reala,astfel ıncat A← S = T−1AT , precum si toate valorile proprii. El poate fi completatcu calculul vectorilor proprii, al unor baze pentru subspatii invariante etc., problemetratate ın alte sectiuni ale capitolului.

4.5 Calculul vectorilor proprii

Este important de precizat ca ın multe aplicatii (cum este, e.g. calculul subspatiilorinvariante) vectorii proprii pot fi ınlocuiti cu succes de catre vectorii Schur.

Daca se doreste totusi determinarea explicita a vectorilor proprii xi, i ∈ I ⊂ 1:n,ai unei matrice n×n A date, acestia pot fi calculati ın urmatoarele doua modalitatifolosite curent.

a) Daca numarul vectorilor proprii ce trebuie calculati depaseste 25 de procentedin numarul total, atunci se recomanda urmatoarea schema de calcul:

VP 1 1. Se calculeaza forma Schur (reala), utilizand algoritmul QR corespunza-tor, cu acumularea transformarilor, i.e. se calculeaza matricea (cvasi-)superior triunghiulara S si matricea unitara (ortogonala) Q astfel ıncatS = QHAQ.

2. Se calculeaza vectorii proprii vi ai matricei S, asociati valorilor propriide interes, prin rezolvarea sistemelor liniare omogene corespunzatoare.

3. Vectorii proprii xi ai matricei initiale A se calculeaza cu relatiaxi = Qvi.

In cadrul acestei scheme singura problema netratata exhaustiv pana acum estecalculul vectorilor proprii ai formelor Schur (reale).

b) Daca numarul vectorilor proprii ce trebuie calculati este relativ mic, atuncise considera mai economica urmatoarea schema de calcul:

VP 2 1. Se determina, utilizand algoritmul HQ, forma superior HessenbergH = QHAQ, a matricei A, cu acumularea transformarilor Q.

2. Se calculeaza valorile proprii de interes, cel mai adesea prin executiafazei iterative a algoritmului QR corespunzator, fara acumulareatransformarilor.

3. Se calculeaza vectorii proprii wi ai matricei H , asociati valorilor propriide interes, prin cateva iteratii (teoretic, datorita cunoasterii valorilorproprii, ıntr-o singura iteratie) ale metodei puterii inverse.

4. Vectorii proprii xi ai matricei initiale A se calculeaza cu relatiaxi = Qwi.

Page 296: metode de calcul numeric matriceal. algoritmi fundamentali

282 CAPITOLUL 4. VALORI SI VECTORI PROPRII

In cadrul acestei scheme singura problema care necesita o tratare suplimentara esteaplicarea metodei puterii inverse ın contextul unei cunoasteri (aproape exacte) avalorilor proprii asociate.

Prezentam succint unele aspecte importante referitoare la cele doua problemesemnalate mai sus.

4.5.1 Calculul vectorilor proprii ai formelor Schur

Consideram matricea n × n A complexa sau reala. Presupunem obtinute formaSchur (reala) S si, implicit, valorile proprii ale matricei A, precum si vectorii Schurdefiniti de coloanele matricei de transformare unitara (ortogonala) cumulate Q.

In cazul complex, matricea S ∈ ICn×n este superior triunghiulara, iar elementelesale diagonale sunt valorile proprii ale matricei S. Calculul vectorilor proprii pentrumatricele triunghiulare a fost tratat ın capitolul 1 (algoritmul 1.23 – TRV).

In cazul real, forma Schur reala S este o matrice cvasi-superior triunghiulara.Fie structura

S =

S11 S12 S13

0 S22 S23

0 0 S33

(4.176)

a matricei S, unde vom considera, pe rand, ca blocul S22 este un scalar, respectivo matrice 2 × 2 cu valori proprii complex conjugate, iar matricele S11 ∈ IRn1×n1 ,S33 ∈ IRn3×n3 sunt cvasi-superior triunghiulare. In primul caz, daca λ = S22 este ovaloare proprie distincta a matricei S, atunci orice vector de forma

u = α

u110

, (4.177)

unde u1 este solutia sistemului liniar cvasi-superior triunghiular

(S11 − λIn1)u1 = −S12 (4.178)

si α un scalar real nenul, este vector propriu asociat valorii proprii λ = S22. In cel deal doilea caz, vectorii proprii asociati perechii de valori proprii complex conjugateα ± iβ ale blocului S22 se pot considera, la randul lor, ca doi vectori complexconjugati u± iv, u, v ∈ IRn. Pentru a ramane ın limitele utilizarii aritmeticii reale,ın practica numerica se obisnuieste calculul exclusiv al vectorilor reali u si v casolutie nenula a sistemului omogen, singular, 2n-dimensional

[S − αIn βIn−βIn S − αIn

] [uv

]

=

[00

]

. (4.179)

Presupunem ca perechea de valori proprii α ± iβ este distincta si consideram opartitie conforma

u =

u1u2u3

, v =

v1v2v3

, (4.180)

Page 297: metode de calcul numeric matriceal. algoritmi fundamentali

4.5. CALCULUL VECTORILOR PROPRII 283

a partilor reala u si imaginara v ale vectorilor proprii asociati. Intrucat matricea[S33 − αIn3

βIn3

−βIn3S33 − αIn3

]

este nesingulara rezulta u3 = 0, v3 = 0. Acum, daca

vectorii bidimensionali u2 si v2 formeaza o solutie nenula a sistemului liniar omogen,singular, real, de patru ecuatii cu patru necunoscute,

[S22 − αI2 βI2−βI2 S22 − αI2

] [u2v2

]

=

[00

]

, (4.181)

atunci u1, v1 se calculeaza rezolvand, cu mijloacele clasice, sistemul liniar nesingular

[S11 − αIn1

βIn1

−βIn1S11 − αIn1

] [u1v1

]

= −[S12u2S12v2

]

. (4.182)

Pentru calculul unei solutii nenule a sistemului liniar omogen (4.181) se constatausor ca, de exemplu, vectorul nenul u2 ∈ IR2 poate fi ales arbitrar, e.g. u2 = [ 1 0 ]T ,caz ın care vectorul v2 ∈ IR2 se obtine rezolvand sistemul liniar, nesingular, de douaecuatii

(S22 − αI2)v2 = βu2. (4.183)

Cu aceste precizari putem prezenta urmatorul algoritm de calcul al vectorilor propriiale unei matrice ın forma Schur reala.

Algoritmul 4.14 (VPS – Calculul vectorilor proprii ai unei ma-trice ın forma Schur reala) (Data matricea S ∈ IRn×n, ın forma Schurreala, cu valori proprii distincte, algoritmul calculeaza un set de vectoriproprii ai matricei S. Vectorii proprii xj , asociati valorilor proprii realeλj = sjj sunt situati ın coloanele j ale matricei X , i.e. xj = X( : , j).Pentru valorile proprii complex conjugate corespunzatoare blocului di-agonal S(j : j + 1, j : j + 1), vectorii proprii asociati xj,j+1 = uj ± ivjsunt obtinuti prin calculul vectorilor reali uj si vj care se memoreaza ıncoloanele j si j+1 ale matricei X , i.e. uj = X( : , j) si vj = X( : , j+1).)

1. Daca n = 1 atunci

1. X = 1

2. Return

2. j = 1

3. Cat timp j < n

1. Daca sj+1,j = 0 atunci

1. X(j + 1 : n, j) = 0

2. xjj = 1

3. Daca j > 1 atunci

1. Se rezolva sistemul cvasisuperior triunghiular(S(1 :j−1, 1:j−1)−sjjIj−1)X(1 :j−1, j) = −S(1 :j−1, j)

4. j ← j + 1

altfel

Page 298: metode de calcul numeric matriceal. algoritmi fundamentali

284 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. α = (sjj + sj+1,j+1)/2

2. β =√

−(sjj − sj+1,j+1)2 − 4sj+1,jsj,j+1/2

3. X(j + 2 : n, j : j + 1) = 0

4. xj,j = 1, xj+1,j = 0

5. Fie S22 = S(j : j + 1, j : j + 1).Se rezolva sistemul nesingular de doua ecuatii(S22 − αI2)X(j : j + 1, j + 1) = βX(j : j + 1, j)

6. Daca j > 1 atunci

1. Fie S11 = S(1 :j−1, 1:j−1), S12 = S(1 :j−1, j :j+1)

si F =

[S11 − αIj−1 βIj−1

−βIj−1 S11 − αIj−1

]

.

Se rezolva sistemul nesingular

F

[X(1 : j−1, j)

X(1 : j−1, j + 1)

]

=

[−S12X(j :j+1, j)−S12X(j :j−1, j+1)

]

7. j ← j + 2

4. Daca j = n atunci

1. xjj = 1

2. Se rezolva sistemul cvasisuperior triunghiular(S(1 :j−1, 1:j−1)− sjjIj−1)X(1 :j−1, j) = −S(1 :j−1, j)

Comentarii. Sintaxa de apel a algoritmului este

X = VPS(S).

In cadrul algoritmului nu are loc o verificare a faptului ca matricea S este ın formaSchur reala. De asemenea, utilizarea matricei vectorilor proprii X se poate facenumai ın conjunctie cu structura blocurilor diagonale ale matricei S, care trebuiecunoscuta pentru a putea forma vectorii proprii asociati valorilor proprii complexconjugate. 3

Calculul vectorilor proprii asociati valorilor proprii multiple ridica dificultatisimilare celor evidentiate ın cazul matricelor triunghiulare (v. cap. 1). Intr-o astfelde situatie, ın algoritmul VPS, sistemele liniare ce se rezolva devin singulare sitrebuie luate masuri speciale pentru a evita ımpartirile cu 0 sau cu numere foartemici. O cale de urmat este utilizata ın algoritmul de calcul al vectorilor propriipentru matrice triunghiulare prezentat ın capitolul 1. O alta cale, utilizata, deexemplu, ın [ X ], ınlocuieste diferentele λi − λj , apreciate ca fiind nule, cu εM‖S‖,erorile introduse de o astfel de decizie fiind de nivelul erorilor de calcul. In oricecaz, calculul vectorilor proprii asociati valorilor proprii apropiate ridica problemedatorita relei conditionari a sistemelor liniare mentionate.

4.5.2 Calculul vectorilor proprii ai matricelorsuperior Hessenberg

In cazul ın care numarul vectorilor proprii care se calculeaza este inferior procen-tului de 25%, ın practica numerica s-a format convingerea ca este mai avantajoasa

Page 299: metode de calcul numeric matriceal. algoritmi fundamentali

4.5. CALCULUL VECTORILOR PROPRII 285

schema de calcul VP 2 , care presupune acumularea transformarilor numai ın fazadirecta (neiterativa) a algoritmuluiQR si aplicarea metodei puterii inverse matriceisuperior Hessenberg rezultata ın aceasta faza 34. De aceea consideram util sa sem-nalam unele dificultati ce pot aparea la rezolvarea unor sisteme (de tip Hessenberg)aproape singulare.

Fie A ∈ ICn×n si H = QHAQ matricea superior Hessenberg obtinuta, e.g. cu al-goritmulHQ. Reamintim ca metoda puterii inverse (v. § 4.3) de calcul al unui vectorpropriu al matricei H consta ıntr-un proces iterativ bazat pe relatia de recurenta

(H − µIn)zk+1 = ρkzk, k = 0, 1, . . . , z0 arbitrar, (4.184)

unde ρk este un factor scalar de normare. Spre deosebire de cazul curent, aicivom presupune ca deplasarea µ este o valoare proprie calculata a matricei H (si,ın limitele preciziei de calcul, a matricei A). Notam cu λ1 valoarea proprie exactaa matricei H a carei aproximatie este µ. Admitand ca µ a fost calculata cu unalgoritm numeric stabil (cum este, e.g. algoritmul QR) rezulta ca µ este o va-loare proprie exacta a matricei G = H + E unde E este o matrice de perturbatiede norma spectrala ”mica”, i.e. satisfacand ‖E‖ ≤ ǫ‖H‖, unde ǫ are ordinul demarime al erorilor de reprezentare (v. § 4.11). Daca, ın plus, λ1 este o valoare bineconditionata (v. § 4.10) atunci

η = λ1 − µ (4.185)

este si ea de ordinul de marime al lui ǫ‖H‖. Presupunand ca matriceaH este simpla,i.e. exista vectorii proprii wi, i = 1 : n, care formeaza o baza a lui ICn, si scriind

z0 =

n∑

i=1

γiwi, (4.186)

rezulta

zk = ρk(γ1w1 + ηkn∑

i=2

γi(λi − µ)k

wi), (4.187)

unde ρk este un factor cumulat de normare. Daca γ1 nu este neglijabila (ceea ce esteo ipoteza plauzibila) si λ1 este o valoare proprie simpla si ”suficient de bine separatade celelalte”, i.e. |λi − µ| ≫ |η|, i = 2 : n (ceea ce nu este ıntotdeauna adevarat),atunci zk devine coliniar cu w1, cu precizia formatului virgula mobila, practic ıntr-osingura iteratie, cu toate ca sistemul (4.184) este aproape singular si, deci, posibilrau conditionat. Daca ınsa λ1 nu este simpla, sau nu este suficient de departede celelalte sau este rau conditionata, atunci analiza de mai sus nu poate garantaacuratetea rezultatului, chiar daca se executa mai multe iteratii. Pentru a depistaastfel de situatii si pentru a le depasi, ın [ X ] se propune determinarea unui factorde crestere definit dupa cum urmeaza. Fie z vectorul propriu de norma euclidianaunitara (i.e. ‖z‖2 = zHz = 1) calculat cu metoda puterii inverse. Consideramreziduul

r = Hz − µz. (4.188)

34Renuntarea completa la acumularea transformarilor si aplicarea, dupa determinarea valorilorproprii, a metodei puterii inverse matricei initiale se considera a fi o procedura mai putin avanta-joasa.

Page 300: metode de calcul numeric matriceal. algoritmi fundamentali

286 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Relatia anterioara poate fi scrisa si sub forma

(H − rzH)z = µz. (4.189)

Avem ‖rzH‖ = ‖r‖ si, daca norma ‖r‖ a reziduului este mica (e.g. de ordinulde marime al lui εM‖H‖), atunci z este un vector propriu al unei matrice foarteusor perturbate fata de H , ceea ce este tot ce se poate spera ıntr-o aritmeticaaproximativa. Pentru evaluarea normei reziduului r se procedeaza astfel. Fie z0vectorul initial avand ‖z0‖ = 1 si y solutia sistemului

(H − µIn)y = z0, (4.190)

i.e. rezultatul primei iteratii a metodei puterii inverse fara normarea acestuia.Atunci definind vectorul succesor al lui z0 prin normarea lui y, i.e.

z1 =y

‖y‖ , (4.191)

obtinem

(H − µIn)z1 =1

‖y‖z0. (4.192)

Prin urmare, cu cat ‖y‖ este mai mare cu atat norma reziduului definit ın (4.188)este mai mica. De aceea putem defini ‖y‖ drept factor de crestere si cere ca acestasa fie superior unei valori impuse. Mecanismul de realizare a acestui deziderat estemodificarea initializarii z0 si reluarea primei iteratii (ın locul continuarii iteratiilorcare nu ofera sansa ımbunatatirii rezultatului). In [ X ] este propusa o strategie demodificare a initializarii. Pentru detalii recomandam consultarea referintei citate.

Incheiem acesta sectiune semnaland faptul ca, ın majoritatea aplicatiilor, vectoriiproprii pot fi supliniti cu succes de catre vectorii Schur, al caror calcul, apeland ınexclusivitate la transformari unitare (ortogonale), este mult mai fiabil.

4.6 Forma Schur ordonata.Calculul subspatiilor invariante

Asa cum s-a aratat ın sectiunea 4.1, conceptul de subspatiu invariant al unei matrice,introdus prin definitia 4.2, este intim legat de valorile si vectorii proprii ale matriceirespective si joaca un rol fundamental ın tratarea operatoriala a spatiilor liniare ICn

sau IRn. In sens larg, subspatiile invariante sunt subspatii generate de vectori pro-prii. In contextul problemelor de calcul numeric abordate ın prezenta lucrare, acestconcept a fost folosit pentru a demonstra posibilitatea reducerii, prin transformariunitare (ortogonale) de asemanare, a unei matrice la forma Schur (propozitia 4.2 silemele 4.2, 4.3).

Reciproc, cunoasterea formei Schur si a vectorilor Schur asociati permite cal-culul subspatiilor invariante asociate unor grupuri precizate de valori proprii alematricei initiale. Mai precis, prin calculul subspatiilor invariante vom ıntelege aicideterminarea unor baze ortonormale pentru acestea.

Page 301: metode de calcul numeric matriceal. algoritmi fundamentali

4.6. CALCULUL SUBSPATIILOR INVARIANTE 287

Fie o matrice A ∈ ICn×n, S = QHAQ o forma Schur a acesteia si urmatoarelepartitii ale matricelor S si Q

S =

k︷︸︸︷

n−k︷︸︸︷

[S11 S12

0 S22

] kn− k , Q =

k︷︸︸︷

n−k︷︸︸︷

[Q1 Q2

]. (4.193)

AvemAQ1 = Q1S11 (4.194)

i.e., conform propozitiei 4.1, V = ImQ1 este un subspatiu A-invariant, subspatiupe care ıl asociem, ın mod natural, cu setul de valori proprii λ(S11) ⊂ λ(A), undeS11 = A|S este restrictia lui A la V . Altfel spus, coloanele matricei Q1 = Q( : , 1 : k)formeaza o baza ortonormala a subspatiului A-invariant asociat valorilor proprii alematricei A date de primele k elemente diagonale ale matricei S.

In cazul real, consideratiile de mai sus raman valabile cu singurul amendamentca subspatiile invariante reale ale unei matrice reale se asociaza ıntotdeauna unorseturi simetrice de valori proprii 35, fapt indus de posibilitatea unor partitii de forma(4.193) unde, de data aceasta, S este ın forma Schur reala.

Tinand seama de cele de mai sus, un subspatiu A-invariant este complet definitde un set de valori proprii, iar calculul sau se reduce, ın definitiv, la obtinerea uneiforme Schur S = QHAQ ın care setul de valori proprii precizat coincide cu spec-trul de valori proprii al submatricei lider principale de dimensiune corespunzatoare.O data obtinuta aceasta forma Schur, baza cautata este data de primele coloaneale matricei de transformare Q. Prin urmare, dupa aplicarea algoritmului QR siobtinerea unei prime forme Schur, ın care elementele (blocurile, ın cazul real) di-agonale nu au o ordine predeterminata, calculul unui subspatiu invariant se reducela ordonarea elementelor diagonale (i.e. aducerea ın primele pozitii diagonale avalorilor proprii vizate), prin transformari unitare (ortogonale) de asemanare, siactualizarea matricei de transformare Q.

Avandu-se ın vedere faptul ca, datorita structurii (cvasi)superior triunghiularea matricei S, permutarea a doua elemente (blocuri) neadiacente nu este posibilaprintr-o transformare elementara (rotatie sau reflector) fara alterarea structurii,mecanismul de ordonare a formei Schur consta dintr-o secventa de permutari deelemente (blocuri) diagonale adiacente.

4.6.1 Ordonarea formei Schur

In cazul complex forma Schur este triunghiulara astfel ca este suficient sa stabilimo procedura de permutare a doua elemente diagonale adiacente (vecine). Pentruaceasta, consideram mai ıntai o matrice superior triunghiulara de ordinul doi S ∈∈ IC2×2 cu valorile proprii distincte, i.e. s11 6= s22. Fie x2 un vector propriu unitaral matricei S asociat valorii proprii λ2 = s22, i.e. (exercitiu pentru cititor),

x2 = eiθy

‖y‖ , unde y =

[s12

s22 − s11

]

, (4.195)

35 Reamintim ca prin set simetric ıntelegem o multime numerica ın care elementele complexeapar ın perechi complex conjugate.

Page 302: metode de calcul numeric matriceal. algoritmi fundamentali

288 CAPITOLUL 4. VALORI SI VECTORI PROPRII

si unde, fara a reduce generalitatea, putem considera θ = 0, i.e. x2 = y/‖y‖.Conform lemei de deflatie unitara 4.2, o transformare de asemanare S′ = PHSP ,ın care matricea unitara P are ca prima coloana vectorul propriu x2, va evidentia,ın pozitia 11 a matricei S′ valoarea proprie asociata vectorului propriu x2, i.e. s22,conservand, ın acelasi timp, zeroul din pozitia 21. Concret, daca P ∈ IC2×2 esterotatia (complexa) care asigura

(PHy)(2) = 0, (4.196)

unde y este vectorul definit ın (4.195), obtinem (ınca un exercitiu pentru cititor)

S′ = PHSP =

[s22 s120 s11

]

. (4.197)

S-a realizat astfel permutarea celor doua valori proprii.Pentru o matrice superior triunghiulara S de ordinul n permutarea valorilor

proprii adiacente skk si sk+1,k+1 se realizeaza folosind transformarea unitara deasemanare S′ = QHSQ cu

Q = diag(Ik−1, P, In−k−1), (4.198)

unde transformarea definita de matricea de ordinul doi P asigura permutarea valo-rilor proprii ale matricei S(k : k+1, k : k+1).

Rezumand cele prezentate mai sus, rezulta urmatoarea schema de calcul

P 11 c 1. Daca skk 6= sk+1,k+1 atunci

1. Se calculeaza vectorul y din (4.195).2. Se calculeaza rotatia P astfel ıncat (PHy)(2) = 0.3. S ← diag(Ik−1, P

H , In−k−1)S4. S ← S diag(Ik−1, P, In−k−1)

iar algoritmul corespunzator, bazat pe procedurile din tabelul 4.3, este prezentat ıncontinuare.

Algoritmul 4.15 (P11c – Permutarea a doua valori proprii adia-cente) (Date o matrice S ∈ ICn×n ın forma Schur, matricea de transfor-mare initiala Q ∈ ICn×n si ıntregul k ∈ 1 : n−1, algoritmul suprascriematricea S cu matricea S′ = QHSQ care realizeaza permutarea valorilorproprii skk, sk+1,k+1 si actualizeaza matricea de transformare Q.)

1. Daca skk 6= sk+1,k+1 atunci

1. y =

[sk,k+1

sk+1,k+1 − skk

]

2. [ y, c, s ] = Gc(y)

3. skk ↔ sk+1,k+1

4. Daca k > 1 atunci

1. S(1 : k−1, k : k+1) = Gcd(S(1 : k−1, k, k+1), c, s)

5. Daca k < n− 1 atunci

Page 303: metode de calcul numeric matriceal. algoritmi fundamentali

4.6. CALCULUL SUBSPATIILOR INVARIANTE 289

1. S(k : k+1, k+2 : n) = Gcs(c, s, S(k : k+1, k+2 : n))

6. Q(:, k : k+1) = Gcd(Q(:, k : k+1), c, s)

Comentarii. Sintaxa de apel a algoritmului de mai sus va fi

[S,Q ] = P11c(S,Q, k).

Complexitatea unei permutari a doua valori proprii vecine distincte este O(n),numarul asimptotic de flopi (reali) fiind Nop = 52n (independent de k). 3

Din momentul ın care dispunem de procedura de permutare a doua valori pro-prii ınvecinate, algoritmul de ordonare a formei Schur se reduce, ın esenta, laun algoritm de sortare a unei multimi bazat pe interschimbarea elementelor adi-acente. Vom prezenta mai ıntai cazul unei ordonari totale care dispune valorileproprii ale unei forme Schur S a matricei A ın ordinea impusa de o permutare dataπ = i1, i2, . . . , in a multimii 1 : n, ın sensul ca elementul diagonal aflat initialın pozitia (k, k) va fi plasat ın final ın pozitia (ik, ik). Prin actualizarea matriceiunitare de transformare Q, se calculeaza bazele ortogonale pentru subspatiile A-invariante asociate unor grupuri impuse de valori proprii. Concret, coloanele 1 : kale matricei actualizate, i.e. Q(: , 1 :k), formeaza o baza a subspatiului A-invariantVk asociat setului de valori proprii Λk = λi = sii | i = 1 : k (ın numerotareafinala). Prezentam un algoritm de ordonare bazat pe o procedura de sortare prinselectie. Invitam cititorul sa elaboreze alte variante care sa aibe la baza algoritmide sortare alternativi.

Algoritmul 4.16 (FSC ORD – Ordonarea formei Schur) (Dateo matrice S ∈ ICn×n ın forma Schur, matricea unitara Q ∈ ICn×n si per-mutarea π = i1, i2, . . . , in, algoritmul suprascrie matricea S cu ma-tricea unitar asemenea S′ = QHSQ care are s′ik,ik = skk si actualizeazaın mod corespunzator matricea de transformare Q.)

1. Pentru k = 1 : n−11. muta =’nu’

2. l = k

3. Pentru j = k+1 : n

1. Daca ij < il atunci

1. l = j

2. muta =’da’

4. Daca muta =’da’ atunci

1. Pentru j = (l − 1) : −1 : k

1. [S,Q ] = P11c(S,Q, j)

2. ij ↔ ij+1

Comentarii. Sintaxa naturala de apel a algoritmului prezentat este

[S,Q ] = FSC ORD(S,Q, π).

Page 304: metode de calcul numeric matriceal. algoritmi fundamentali

290 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Complexitatea unei ordonari este dictata esential de natura permutarii. Cazurilelimita sunt permutarea identica, pentru care nu se face nici o operatie aritmetica, siinversiunea, pentru care se efectueaza C2

n = n(n+1)/2 apelari ale procedurii P11ccare conduc la o complexitate O(n3).

De multe ori este mai comod ca ın locul permutarii π sa utilizam permutareainversa σ = π−1 = j1, j2, . . . , jn. In acest caz, algoritmul suprascrie matricea Scu matricea unitar asemenea S′ = QHSQ care are s′kk = sjk,jk . O varianta a unuiastfel de algoritm de ordonare arata astfel.

FSC ORD −1 1. Pentru k = 1 : n−11. Daca k 6= jk atunci

1. Pentru i = (jk − 1) : −1 : k1. [S,Q ] = P11c(S,Q, i)

2. Pentru i = k+1 : n1. Daca ji < jk atunci ji = ji + 1.

Dupa executia acestui algoritm coloanele 1 : k ale matricei de transformare actua-lizate, i.e. Q(: , 1 : k), formeaza o baza ortonormala a subspatiului A-invariant Vkasociat setului de valori proprii Λk = λi = sii | i ∈ j1, j2, . . . , jk (ın numerotareainitiala). Observatiile de mai sus privitoare la complexitate raman valabile.

Algoritmul de mai sus realizeaza o ordonare totala a perechilor diagonale. Dacase urmareste exclusiv constructia unei baze unitare pentru un subspatiu A-invariantk-dimensional (k < n), este suficienta o ordonare partiala constand ın aducerea, pecaile cele mai ”scurte”, a valorilor proprii vizate ın primele k pozitii diagonale. Ovarianta posibila pentru rezolvarea acestei probleme este urmatoarea. Presupunemca dorim constructia unei baze ortonormale a subspatiului A-invariant asociat valo-rilor proprii si1i1 , si2i2 , . . ., sikik . Fara a reduce generalitatea, putem considera cai1 < i2 < . . . < ik. Aducerea celor k elemente diagonale ale matricei S ın primele kpozitii diagonale se face cu urmatorul algoritm simplu.

FSC ORD p 1. Pentru j = 1 : k−11. Daca ij > j atunci

1. Pentru l = (ij − 1) : −1 : j1. [S,Q ] = P11c(S,Q, l)

Incheiem aici comentariile la algoritmul 4.16 si consideratiile privitoare la ordonareaformei Schur complexe cu mentiunea ca aceste aspecte vor fi ıntalnite si la ordonareaformei Schur reale. 3

4.6.2 Ordonarea formei Schur reale

In cazul real vom considera partitia bloc dictata de dimensiunile lk×lk cu lk ∈ 1, 2,k = 1 : p, ale blocurilor diagonale ale formei Schur reale S = QTAQ a matriceiA ∈ IRn×n

S =

S11 S12 · · · S1p

0 S22 · · · S1p

......

. . ....

0 0 · · · Spp

. (4.199)

Page 305: metode de calcul numeric matriceal. algoritmi fundamentali

4.6. CALCULUL SUBSPATIILOR INVARIANTE 291

Problema calculului subspatiilor A-invariante reale asociate unor seturi simetricede valori proprii revine la ordonarea corespunzatoare a blocurilor diagonale aleformei Schur reale. In acest scop este necesar sa stim sa permutam doua blocuridiagonale adiacente. Permutarea a doua blocuri vecine 1 × 1 se face cu algoritmulP11c, cu singura mentiune ca toate transformarile utilizate sunt reale. Intrucatscrierea variantei reale a algoritmului se rezuma la ınlocuirea siglei c cu sigla r ınidentificatorii procedurilor, ne marginim sa introducem sintaxa de utilizare

[S,Q ] = P11r(S,Q, k),

cu mentiunea ca aici k reprezinta linia (si coloana) pe care se afla primul dintre celedoua blocuri 1× 1 ce se permuta.

Ramane sa aratam cum se pot permuta, prin transformari ortogonale de asema-nare, doua blocuri diagonale vecine din care cel putin unul are ordinul 2.

Consideram acum matricea de ordinul 3 sau 4

S =

[S11 S12

0 S22

]

, (4.200)

unde, prin urmare, cel putin unul din blocurile diagonale S11, S22 este 2 × 2. Inprincipiu, putem aplica ideile utilizate la elaborarea algoritmului P11, i.e. calcululunei baze ortogonale a subspatiului invariant asociat valorilor proprii ale matriceiS22 si aplicarea lemei de deflatie ortogonala, solutie propusa cititorului. Aici vomurma o cale echivalenta care utilizeaza algoritmulQR cu deplasare implicita. Avandın vedere faptul ca matricea S din (4.200) este deja ın forma Schur reala rezulta caputem determina deplasarea (ın forma implicita) exacta care, utilizata ın algoritmulQR2 pune ın evidenta, ın pozitia (2, 2), blocul cu valorile proprii dorite, ın cazulnostru, ın vederea permutarii, cu valorile proprii ale matricei S11. Cunoastereaexacta a deplasarii face ca, teoretic, sa fie suficienta o singura iteratie QR pentruobtinerea rezultatului dorit. In practica, daca nivelul de toleranta practicat este deordinul de marime al erorilor de rotunjire, este posibil sa fie necesare cateva (doua-trei) iteratii pentru a putea considera elementele blocului (2, 1) neglijabile. Deasemenea, ıntrucat algoritmul QR cu deplasare implicita actioneaza corect numaiasupra matricelor ın forma Hessenberg ireductibila este necesar mai ıntai un pas QRartificial, cu un vector de deplasare implicita aleator, care sa altereze structura Schurreala a matricei S ın sensul obtinerii formei Hessenberg ireductibile. In consecinta,toate cele trei tipuri de permutare se vor supune urmatoarei scheme de calcul.

P ij

1. Se determina elementele definitorii exacte pentru vectorul de deplasareimplicita (i.e. valoarea proprie daca primul bloc este 1× 1, respectiv sumasi produsul valorilor proprii ın cazul cand primul bloc este 2× 2).

2. Se executa un pas QR cu un vector de deplasare implicita fixat aleator

(e.g. alegerea w = [ 1 1 1 ]Tda bune rezultate).

3. Se aplica algoritmul QR cu deplasarea implicita exacta (i.e. calculata cuelementele de la punctul 1).

Page 306: metode de calcul numeric matriceal. algoritmi fundamentali

292 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Pentru matricea n×n din (4.199) permutarea blocurilor adiacente Srr si Sr+1,r+1

ale formei Schur reale S ∈ IRn×n se obtine folosind transformarea ortogonala deasemanare S′ = QTSQ definita de

Q = diag(Ik−1, Q, Is), (4.201)

unde transformarea definita de matricea Q, de ordinul 2, 3 sau 4, asigura permutareablocurilor diagonale ale matricei

S =

[Srr Sr,r+1

0 Sr+1,r+1

]

, (4.202)

si unde k este pozitia diagonala a elementului 11 al blocului diagonal Srr, iar s esteordinul cumulat al blocurilor diagonale r+2 : p.

Vom implementa schema de calcul de mai sus ıntr-un algoritm care va trata toatecazurile dimensionale. Pentru aceasta vom utiliza rezultatele stabilite si procedurileelaborate ın acest capitol.

Pentru o ıntelegere mai lesnicioasa a algoritmului facem urmatoarele precizari:– localizarea blocurilor diagonale ale matricei S care vor fi permutate se face

prin pozitia diagonala k a elementului 11 al primului bloc diagonal si ordinele i si jale celor doua blocuri;

– elementele definitorii ale vectorilor de deplasare implicita exacta ın vedereapermutarii blocurilor diagonale ale submatricei (4.202) sunt deplasarea µ = skk ıncazul ın care i = 1 si, respectiv, suma si produsul deplasarilor exacte σ = µ1+µ2 == skk + sk+1,k+1 si π = µ1µ2 = skksk+1,k+1 − sk+1,ksk,k+1 ın cazul ın care i = 2;dupa efectuarea unui pas dublu QR cu deplasare aleatoare, vectorii de deplasareexacta, ın cele doua cazuri, vor fi

wexact =

skk − µsk+1,k

0

si, respectiv,

wexact =

s2kk + sk,k+1sk+1,k − σskk + πsk+1,k(skk + sk+1,k+1 − σ)

sk+1,ksk+2,k+1

,

vezi (4.140), (4.152);– vom renunta la apelarea algoritmului QR2 si vom adapta ideile acestuia la

situatia concreta existenta; pentru aprecierea ca neglijabile a elementelor subdiago-nale vom utiliza toleranta tol, uzual de ordinul de marime al erorilor de reprezentare;

– actualizarea blocurilor nediagonale de pe bloc-liniile si bloc-coloanele afectate,conform relatiei (4.201), se va face utilizand elementele definitorii ale reflectorilorimplicati memorate ın tablourile de lucru V si b.

Cu convingerea ca pentru cititorul interesat nu va fi greu sa identifice ideilementionate mai sus, prezentam acest algoritm.

Algoritmul 4.17 (Pr – Permutarea a doua blocuri diagonale adi-acente) (Date o matrice S ∈ IRn×n ın forma Schur reala, matricea de

Page 307: metode de calcul numeric matriceal. algoritmi fundamentali

4.6. CALCULUL SUBSPATIILOR INVARIANTE 293

transformare initiala Q ∈ IRn×n, ıntregul k care marcheaza pozitia ele-mentului 11 al primului bloc diagonal, precum si ordinele i, j ∈ 1, 2ale celor doua blocuri diagonale, algoritmul suprascrie matricea S cumatricea S′ = QTSQ care realizeaza permutarea blocurilor diagonalementionate si actualizeaza matricea de transformare Q.)

1. Daca i = 1 si j = 1 atunci

1. [S,Q ] = P11r(S,Q, k)

2. Return

2. Daca i = 1 si j = 2 atunci

1. l = k + 2

2. µ = skk

3. w = [ 1 1 1 ]T

4. [S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), w)

5. Daca k > 1 atunci

1. S(1 : k − 1, k : l) = Hrd(S(1 : k − 1, k : l), V (:, 1), b(1))

2. S(1 : k − 1, k + 1 : l) == Hrd(S(1 : k − 1, k + 1 : l), V (1 : 2, 2), b(2))

6. Daca l < n atunci

1. S(k : l, l+ 1 : n) = Hrs(V (:, 1), b(1), S(k : l, l+ 1 : n))

2. S(k + 1 : l, l+ 1 : n) == Hrs(V (1 : 2, 2), b(2), S(k + 1 : l, l+ 1 : n))

7. Q(:, k : l) = Hrd(Q(:, k : l), V (:, 1), b(1))

8. Q(:, k + 1 : l) = Hrd(Q(:, k + 1 : l), V (1 : 2, 2), b(2))

9. Cat timp |sk+2,k+1| ≥ tol(|sk+1,k+1|+ |sk+2,k+2|)1. wexact = [ skk − µ sk+1,k 0 ]

T

2. [S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), wexact)

3. Daca k > 1 atunci

1. S(1 : k − 1, k : l) = Hrd(S(1 : k − 1, k : l), V (:, 1), b(1))

2. S(1 : k − 1, k + 1 : l) == Hrd(S(1 : k − 1, k + 1 : l), V (1 : 2, 2), b(2))

4. Daca l < n atunci

1. S(k : l, l+ 1 : n) = Hrs(V (:, 1), b(1), S(k : l, l+ 1 : n))

2. S(k + 1 : l, l+ 1 : n) == Hrs(V (1 : 2, 2), b(2), S(k + 1 : l, l+ 1 : n))

5. Q(:, k : l) = Hrd(Q(:, k : l), V (:, 1), b(1))

6. Q(:, k + 1 : l) = Hrd(Q(:, k + 1 : l), V (1 : 2, 2), b(2))

10. sk+2,k+1 = 0 % anularea efectiva a elementului neglijabil

11. Return

3. Daca i = 2 atunci

1. l = k + 1 + j

Page 308: metode de calcul numeric matriceal. algoritmi fundamentali

294 CAPITOLUL 4. VALORI SI VECTORI PROPRII

2. σ = skk + sk+1,k+1

3. π = skksk+1,k+1 − sk+1,ksk,k+1

4. w = [ 1 1 1 ]T

5. [S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), w)

6. Daca k > 1 atunci

1. Pentru q = 1 : i+ j − 2

1. S(1 : k − 1, k + q − 1 : k + q + 1) == Hrd(S(1 : k+ q− 1, k+ q− 1 : k+ q+1), V (:, q), b(q))

2. S(1 : k − 1, l− 1 : l) == Hrd(S(1 : k− 1, l− 1 : l), V (1 : 2, i+ j− 1), b(i+ j− 1))

7. Daca l < n atunci

1. Pentru q = 1 : i+ j − 2

1. S(k + q − 1 : k + q + 1, l+ 1 : n) == Hrs(V (:, q), b(q), S(k + q − 1 : k + q + 1, l+ 1 : n))

2. S(l − 1 : l, l+ 1 : n) == Hrs(V (1 : 2, i+ j − 1), b(i+ j − 1), S(l− 1 : l, l+1 : n))

8. Pentru q = 1 : i+ j − 2

1. Q(:, k + q − 1 : k + q + 1) == Hrd(Q(:, k + q − 1 : k + q + 1), V (:, q), b(q))

9. Q(:, l− 1 : l) == Hrd(Q(:, l − 1 : l), V (1 : 2, i+ j − 1), b(i+ j − 1))

10. r = k + j − 1

11. Cat timp |sr+1,r| ≥ tol(|sr,r|+ |sr+1,r+1|)

1. wexact =

s2kk + sk,k+1sk+1,k − σskk + πsk+1,k(skk + sk+1,k+1 − σ)

sk+1,ksk+2,k+1

2. [S(k : l, k : l), V, b ] = IT QR2(S(k : l, k : l), wexact)

3. Daca k > 1 atunci

1. Pentru q = 1 : i+ j − 21. S(1 : k − 1, k + q − 1 : k + q + 1) == Hrd(S(1 : k − 1, k + q − 1 : k + q + 1), V (:, q), b(q))

2. S(1 : k − 1, l− 1 : l) == Hrd(S(1 : k−1, l−1 : l), V (1 : 2, i+j−1), b(i+j−1))

4. Daca l < n atunci

1. Pentru q = 1 : i+ j − 21. S(k + q − 1 : k + q + 1, l+ 1 : n) == Hrs(V (:, q), b(q), S(k + q − 1 : k + q + 1, l+ 1 : n))

2. S(l − 1 : l, l+ 1 : n) == Hrs(V (1 : 2, i+j−1), b(i+j−1), S(l−1 : l, l+1 : n))

5. Pentru q = 1 : i+ j − 2

1. Q(:, k + q − 1 : k + q + 1) == Hrd(Q(:, k + q − 1 : k + q + 1), V (:, q), b(q))

Page 309: metode de calcul numeric matriceal. algoritmi fundamentali

4.6. CALCULUL SUBSPATIILOR INVARIANTE 295

6. Q(:, l−1: l) = Hrd(Q(:, l−1: l), V (1 :2, i+j−1), b(i+j−1))

12. sr+1,r = 0 % anularea efectiva a elementului neglijabil

13. Return

Comentarii. Sintaxa de apel naturala a algoritmului de mai sus este

[S,Q ] = Pr(S,Q, k, i, j, tol).

Numarul de operatii necesar depinde, evident, de tipul blocurilor permutate dar nudepinde de pozitia acestora. Asimptotic, ın toate cazurile complexitatea algoritmu-lui se ıncadreaza totusi ın categoria O(n). 3

Dispunand de procedura de mai sus, de permutare a doua blocuri diagonaleadiacente, algoritmul de ordonare a formei Schur reale este, ın esenta, identic cu celde ordonare a formei Schur complexe. Pentru un plus de claritate, facem, si aici,cateva precizari:

– structura blocurilor diagonale ale matricei S ın FSR va fi memorata ın vectorulstrbl, i.e. strbl(k), k = 1 : p, este ordinul blocului diagonal k al matricei S la mo-mentul curent al procesarii; structura initiala este unul din parametrii de intrare;

– pentru localizarea blocurilor diagonale ale matricei S vom utiliza vectorul lcblcare va contine pozitiile elementelor 11 ale acestora, i.e. lcbl(k), k = 1 : p, estelinia (si coloana) elementului 11 al blocului diagonal k al matricei S de la momentulcurent al procesarii.

Rezulta urmatorul algoritm.

Algoritmul 4.18 (FSR ORD – Ordonarea formei Schur reale)(Date o matrice S ∈ IRn×n ın forma Schur reala (4.199), matricea detransformare initiala Q ∈ IRn×n, numarul p al blocurilor diagonale,vectorul strbl ∈ INp al ordinelor blocurilor diagonale si permutareaπ = i1, i2, . . . , ip, algoritmul suprascrie matricea S cu matricea or-

togonal asemenea S′ = QTSQ avand s′ikik = skk si actualizeaza, ın modcorespunzator, matricea de transformare Q.)

1. Pentru k = 1 : (p− 1)

1. muta =’nu’

2. l = k

3. Pentru j = (k + 1) : n

1. Daca ij < il atunci

1. l = j

2. muta =’da’

4. Daca muta =’da’ atunci

1. Pentru j = (l − 1) : −1 : k

1. lcbl(1) = 1

2. Pentru i = 2 : j

1. lcbl(i) = lcbl(i− 1) + strbl(i− 1)

Page 310: metode de calcul numeric matriceal. algoritmi fundamentali

296 CAPITOLUL 4. VALORI SI VECTORI PROPRII

3. [S,Q ] = Pr(S,Q, lcbl(j), strbl(j), strbl(j + 1), tol)

4. ij ↔ ij+1

5. strbl(j)↔ strbl(j + 1)

Comentarii. Sintaxa de apel a algoritmului de mai sus este

[S,Q ] = FSR ORD(S,Q, p, strbl, π, tol).

La fel ca ın cazul complex, volumul de calcul necesar pentru ordonare este dictatesential de natura permutarii. In cazul cel mai defavorabil, cand permutarea este oinversiune si toate blocurile sunt 2× 2, se efectueaza 1

2p(p+1) permutari de blocuri2× 2 adiacente care conduc la o complexitate de O(n3).

In cazul ın care se prefera utilizarea permutarii inverse σ = π−1 = j1, j2, . . . , jpse poate utiliza o schema de calcul FSR ORD−1 , similara cu FSC ORD−1 ,prezentata ın comentariile la algoritmul 4.16.

Si aici, daca se urmareste exclusiv constructia unei baze unitare pentru unsubspatiu A-invariant asociat unui set simetric de valori proprii definite de k blocuridiagonale (k < p), este suficienta o ordonare partiala. Adaptarea algoritmului la

aceasta situatie este similara cu cea din cazul complex (vezi schema FSC ORD p ),

si este propusa ca exercitiu cititorului. 3

4.7 Forma bloc-diagonala

Forma Schur S a unei matrice reale sau complexe A, ımpreuna cu matricea orto-gonala sau unitara Q utilizata pentru obtinerea acesteia, joaca un rol fundamentalın rezolvarea multor probleme concrete care au o legatura mai mult sau mai putindirecta cu conceptele de valori si vectori proprii. Exista ınsa si probleme 36 ın careeste necesara o descompunere suplimentara a formei Schur, descompunere care saofere informatii structurale cu semnificatie mai profunda.

Precizam, de la ınceput, ca transformarile de asemanare unitare (ortogonale, ıncazul real) si-au epuizat potentele ın evidentierea formei Schur (ordonate) si oricealte transformari structurale suplimentare, cu conservarea spectrului, fac apel, ınmod necesar, la transformari de asemanare neunitare (neortogonale).

Posibilitatile de constructie a asa numitei forme bloc-diagonale a unei matricepatrate sunt intim conexate cu existenta si calculul solutiilor unor ecuatii matricealeSylvester asociate. De aceea, consacram paragraful urmator acestei probleme.

4.7.1 Ecuatia matriceala Sylvester

Consideram date matricele A ∈ ICm×m, B ∈ ICn×n si C ∈ ICm×n. Ecuatia matricealaliniara

AX −XB = C, (4.203)

36 Amintim, ın acest sens, problemele de descompunere spectrala a sistemelor dinamice liniareın care se urmareste obtinerea unor submatrice ”decuplate” cu spectre avand proprietati specifice.De asemenea, forma bloc diagonala este utila ın calculul functiilor de matrice.

Page 311: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 297

cu matricea necunoscutelor X ∈ ICm×n, se numeste ecuatie matriceala Sylvester37 si este echivalenta cu un sistem liniar determinat de mn ecuatii scalare cu mnnecunoscute 38.

Avand ın vedere structurarea matricei coeficientilor acestui sistem ın cele douamatrice de date A si B este interesant si util sa exprimam conditiile de existentasi unicitate ale solutiei ın raport cu aceste matrice si sa gasim metode specifice derezolvare.

Teorema de existenta si unicitate a solutiei are urmatorul enunt.

Teorema 4.16 Ecuatia Sylvester (4.203) admite o solutie X ∈ ICm×n si aceastasolutie este unic determinata daca si numai daca

λ(A) ∩ λ(B) = ∅ 39. (4.204)

Demonstratie. Fie formele Schur 40 S = UHAU si T = V HBV ale matricelor Asi B. Avem A = USUH si B = V TV H , expresii care, introduse ın (4.203), conducla ecuatia

USUHX −XV TV H = C, (4.205)

echivalenta, datorita nesingularitatii matricelor unitare U si V , cu ecuatia (4.203).Notand

Y = UHXV, C = UHCV, (4.206)

ecuatia (4.205) devineSY − Y T = C. (4.207)

Cu aceleasi argumente ca mai sus, ecuatia (4.203) admite o solutie X si aceastasolutie este unic determinata daca si numai daca ecuatia (4.207) admite o solutieY unic determinata. Dar ecuatia matriceala (4.207) poate fi scrisa sub forma unuisistem bloc-inferior triunghiular de mn ecuatii cu mn necunoscute. Intr-adevar,

37 Intr-un context sistemic, ecuatia (4.203) este cunoscuta sub denumirea de ecuatie Sylvester”continua”, context ın care ecuatia Sylvester ”discreta” are forma AXB −X = C.

38 Daca x ∈ ICmn si c ∈ ICmn sunt vectorii definiti, de exemplu, prin concatenarea, ın ordinea na-turala, a coloanelor matricelor X si, respectiv C, atunci sistemul de mn ecuatii si mn necunoscute(4.203) poate fi scris ”explicit” sub forma

(In ⊗ A+ BT ⊗ Im)x = c.

In relatia de mai sus ⊗ este operatorul pentru produsul Kronecker a doua matrice definit ın felul

urmator: daca M ∈ ICp×q si N ∈ ICr×s, atunci Pdef= M ⊗ N ∈ ICpr×qs este matricea avand

structura bloc P = [Pij ]i=1:p, j=1:q cu Pij = mijN .39 Daca (4.204) nu este satisfacuta, atunci ecuatia Sylvester (neomogena) (4.203) poate sa

admita sau sa nu admita solutii (alternativa lui Fredholm) ın raport cu matricea termenilor liberiC. Daca admite solutii, atunci solutia generala este de forma X = Xp + Xo, unde Xp este osolutie particulara a ecuatiei Sylvester neomogene (4.203), iar Xo este solutia generala a ecuatiei

omogene AX −XB = 0. In aceasta situatie, ecuatia omogena are solutia generala Xo dependentade N parametri arbitrari (sau, altfel spus, admite un sistem de N solutii liniar independente). AiciN =

∑p

i=1

∑q

l=1νil cu νil = min(mi, nl) unde mi si, respectiv, nl sunt ordinele celulelor Jordan

ale matricelor A si, respectiv, B care au aceeasi valoare proprie. Pentru detalii se poate consultareferinta [ I ].

40 Daca matricele A si B sunt reale atunci S si, respectiv, T sunt forme Schur complexe aleacestora.

Page 312: metode de calcul numeric matriceal. algoritmi fundamentali

298 CAPITOLUL 4. VALORI SI VECTORI PROPRII

avand ın vedere structura superior triunghiulara a matricelor S si T ecuatia (4.207)se poate scrie ”pe coloane” sub forma

Syj − Y tj = cj , j = 1 : n, (4.208)

unde yj = Y ej , tj = Tej = [ t1j t2j . . . tjj 0 . . . 0 ]T si cj = Cej . Prin urmare,

ecuatiile (4.208) devin

Syj −j∑

k=1

tkjyk = cj , j = 1 : n, (4.209)

care se scriu sub forma matriceala 41

S− t11Im 0 · · · 0−t12Im S− t22Im 0 0

......

. . ....

−t1nIm −t2nIm · · · S− tnnIm

y1y2...yn

=

c1c2...cn

. (4.210)

Acest sistem admite o solutie unica daca si numai daca matricea sistemului estenesingulara, i.e. daca si numai daca matricele S−tjjIm, j = 1 : n, sunt nesingulare,respectiv

sii − tjj 6= 0, i = 1 : m, j = 1 : n. (4.211)

Avand ın vedere faptul ca λ(A) = s11, s22, . . . , smm si λ(B) = t11, t22, . . . , tnnconditia (4.211) este echivalenta cu (4.204). Aceasta observatie ıncheie demonstratiateoremei. 3

Structura bloc-inferior triunghiulara a sistemului (4.210) ımpreuna cu structurasuperior triunghiulara a blocurilor diagonale fac ca rezolvarea sistemului (4.210) safie posibila prin rezolvarea sistemelor

(S − tjjIm)yj = cj +

j−1∑

k=1

tkjyk, j = 1 : n, (4.212)

ın ordinea j = 1, 2, . . . , n, necunoscutele scalare yij calculandu-se, ın ordinea i == n, n− 1, . . . , 2, 1, cu formula

yij =cij +

∑j−1k=1 yiktkj −

∑mk=i+1 sikykj

sii − tjj. (4.213)

Dupa calculul matricei Y , matricea necunoscuta initiala se determina din primarelatie (4.206) cu formula

X = UY V H . (4.214)

Valorificarea algoritmica a partii constructive a demonstratiei teoremei 4.16 ovom face ın doua etape. Mai ıntai vom prezenta un algoritm pentru rezolvareaunei ecuatii Sylvester ”triunghiulare” de tipul (4.207) care va fi apoi folosit ıntr-unalgoritm pentru rezolvarea ecuatiei Sylvester avand forma generala (4.203).

41 Vezi si una din notele de subsol precedente, referitoare la utilizarea produselor Kronecker.

Page 313: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 299

Algoritmul 4.19 (SYLVtri - Rezolvarea ecuatiei Sylvester triun-ghiulare) (Date matricele superior triunghiulare S ∈ ICm×m, T ∈ ICn×n

cu λ(A)∩λ(B) = ∅, precum si matricea C ∈ ICm×n, algoritmul calculeazasolutia Y ∈ ICm×n a ecuatiei Sylvester SY − Y T = C.

1. Pentru j = 1 : n

1. Daca j > 1 atunci

1. Pentru i = 1 : m

1. cij = cij +∑j−1

k=1 yiktkj .

2. Pentru i = m : −1 : 1

1. Daca i < m atunci

1. cij = cij −∑m

k=i+1 sikykj .

2. yij =cij

sii − tjj.

Comentarii. Sintaxa de apel a algoritmului 4.19 este

Y = SYLVtri(S, T, C).

Complexitatea algoritmului este O(n3) (sau O(m3)), numarul de flopi complecsi

fiind N(c)∗ = 1

4 (m2n +mn2) ınmultiri si N

(c)± = 1

4 (m2n +mn2) adunari si scaderi,

echivalat cu evaluarile uzuale la N = 2(m2n +mn2) flopi reali. In cazul real, evi-dent, Nop = 1

2 (m2n +mn2). Algoritmul fiind, ın esenta, o colectie de rezolvari de

sisteme triunghiulare are, cel putin ın parte, proprietatile algoritmilor de rezolvareale acestora. Se poate afirma ca daca spectrele matricelor S si T sunt bine ”sep-arate”, i.e. ın acest caz |sii − tjj | sunt suficient de mari, atunci algoritmul estenumeric stabil. Asupra conceptului de separare a spectrelor se va reveni, ıntr-uncontext mai general, ın sectiunea 4.10. 3

Algoritmul de rezolvare a ecuatiei Sylvester triunghiulare serveste ca baza, con-form celor aratate mai sus, pentru rezolvarea ecuatiei Sylvester generale. Avemurmatorul algoritm.

Algoritmul 4.20 (SYLVc - Rezolvarea ecuatiei matriceale Sylvestercomplexe) (Date matricele A ∈ ICm×m, B ∈ ICn×n, C ∈ ICm×n cu λ(A)∩∩λ(B) = ∅ si toleranta tol, algoritmul calculeaza solutia X ∈ ICm×n aecuatiei Sylvester continue AX − XB = C utilizand algoritmul QR1pentru reducerea matricelor A si B la forma Schur. Se presupune caalgoritmul QR1 se termina normal ın ambele cazuri.)

1. [S, U ] = QR1(A, Im, tol,′da′)

2. [T, V ] = QR1(B, In, tol,′da′)

3. C ← C = UHCV

4. Y = SYLVtri(S, T, C)

5. X = UY V H .

Page 314: metode de calcul numeric matriceal. algoritmi fundamentali

300 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Comentarii. Sintaxa de apel a algoritmului 4.20 este

X = SYLVc(A,B,C).

Complexitatea algoritmului este O(n3). Evident, efortul de calcul cel mai importantse consuma ın executia instructiunilor 1 si 2 de aducere la forma Schur a matricelorA, B si de acumulare a transformarilor (dar nici efortul pentru rezolvarea ecuatieiSylvester triunghiulare si efectuarea produselor matriceale nu poate fi neglijat).Daca numim, ad-hoc, metoda prezentata mai sus varianta Schur-Schur, din motivede asigurare a unei eficiente maxime, se impune analiza alternativelor ın care serenunta la aducerea la forma Schur a ambelor matrice A si B. Astfel, ın asa numitavarianta Hessenberg-Schur numai matricea B este adusa la forma Schur aparandurmatoarele diferente ın raport cu algoritmul 4.20 de mai sus:

– ın instructiunea 1 matricea A este adusa, printr-un algoritm de calcul direct(neiterativ) – algoritmul HQc – la forma superior Hessenberg; ın acest fel se evitafaza iterativa a algoritmului QR1;

– ın compensatie, la instructiunea 3, ın loc de rezolvarea unei ecuatii Sylvestertriunghiulare se rezolva o ecuatie Sylvester Hessenberg-triunghiulara, ceea ce pre-supune rezolvarea a n sisteme de tip Hessenberg, incluzand eliminare gaussiana cueventuala pivotare.

Evaluarile existente apreciaza ca varianta Hessenberg-Schur este cu 30 pana la80 procente mai eficienta. Scrierea explicita a algoritmului Hessenberg-Schur estepropusa cititorului ca exercitiu.

Evident, matricele S si T pot suprascrie matricele A si, respectiv, B dupa cummatricea Y a rezultatelor intermediare si solutia X pot suprascrie matricea C dars-a preferat scrierea de mai sus pentru claritatea prezentarii algoritmului. 3

In cazul uzual, ın care datele de intrare, i.e. matricele A, B si C, sunt realesolutia X este reala si toate calculele se pot efectua ıntr-o aritmetica reala. Pentruaceasta, ın locul formei Schur complexe se utilizeaza reducerea la forma Schur reala.Ne propunem mai ıntai sa rezolvam ecuatia Sylvester

SY − Y T = C, (4.215)

ın care matricele S ∈ IRm×m si T ∈ IRn×n au structuri cvasi-superior triunghiulare(i.e. cu blocurile diagonale de ordin cel mult 2)

S =

S11 S12 · · · S1p

0 S22 · · · S2p

......

. . ....

0 0 · · · Spp

, T =

T11 T12 · · · T1q0 T22 · · · T2q...

.... . .

...0 0 · · · Tqq

, (4.216)

iar C ∈ IRm×n. Algoritmul corespunzator acestei situatii structurale este cunoscutsub denumirea de algoritmul Bartels-Stewart [ 4 ].

Procedura urmareste cu fidelitate ideile din algoritmul 4.19, cu singura de-osebire ca ın locul unor scalari apar blocuri i × j cu i, j ∈ 1, 2. Partitionammatricea necunoscutelor Y = [Yij ]i=1:p, j=1:q si matricea termenilor liberi C == [Cij ]i=1:p, j=1:q conform cu partitiile (4.216) ale matricelor S si T .

Page 315: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 301

In acest fel, corespondentele relatiilor (4.212) sunt ecuatiile bloc

SiiYij − YijTjj = Cij +

j−1∑

k=1

TkjYik −q∑

k=i+1

SikYkj i = 1 : p, j = 1 : q, (4.217)

i.e. ecuatii Sylvester avand matricele Sii si Tjj de dimensiuni 1× 1 sau 2× 2 care,scrise explicit, reprezinta sisteme liniare determinate de ordin 1, 2 sau 4. Termeniiliberi ai acestor sisteme, i.e. matricele din membrul drept al relatiilor (4.218), suntcalculabili daca rezolvarea acestor sisteme se face ın ordinea j = 1, 2, . . . , q, i == p, p− 1, . . . , 1.

Rezulta urmatorul algoritm.

Algoritmul 4.21 (BS – Algoritmul Bartels-Stewart) (Date ma-tricele cvasi-superior triunghiulare S ∈ IRm×m, B ∈ IRn×n cu blocurileindexate ca ın (4.216), astfel ıncat λ(S) ∩ λ(T ) = ∅ si matricea terme-nilor liberi C ∈ IRm×n, partitionata conform cu partitilile matricelorS si T , algoritmul calculeaza solutia Y ∈ IRm×n a ecuatiei SylvesterSY − Y T = C.)

1. Pentru j = 1 : q

1. Daca j > 1 atunci

1. Pentru i = 1 : p

1. Cij = Cij +∑j−1

k=1 YikTkj .

2. Pentru i = p : −1 : 1

1. Daca i < p atunci

1. Cij = Cij −∑p

k=i+1 SikYkj .

2. Se rezolva ecuatia Sylvester SiiYij − YijTjj = Cij (prinscrierea explicita si utilizarea, e.g. a eliminarii gaussiene)

Comentarii. Sintaxa de apel, cu care a algoritmul 4.21 va fi utilizat ın continuare,este

Y = BS(S, T, C).

Complexitatea algoritmului este O(n3), comparabila cu rezolvarea ecuatiei Sylvestertriunghiulare cu algoritmul 4.19. Concret numarul asimptotic de operatii aritmeticece se efectueaza este Nop = 1

2 (m2n +mn2). De asemenea, proprietatile numerice

sunt similare cu cele ale algoritmului 4.19, fiind dependente esential de nivelul deseparare al spectrelor celor doua matrice S si T . 3

Revenim la rezolvarea ecuatiei Sylvester (4.203) avand matricele de date A, Bsi C reale. Fie UTAU = S si V TBV = T formele Schur reale ale matricelor A,respectiv B, unde matricele U ∈ IRm×m si V ∈ IRn×n sunt ortogonale. IntroducandA = USUT si B = V TV T ın (4.203) obtinem ecuatia

SUTXV − UTXV T = UTCV, (4.218)

care poate fi scrisa ın forma (4.215)

SY − Y T = C, (4.219)

Page 316: metode de calcul numeric matriceal. algoritmi fundamentali

302 CAPITOLUL 4. VALORI SI VECTORI PROPRII

unde

Y = UTXV, C = UTCV. (4.220)

Dupa calculul matricei Y cu algoritmul Bartels-Stewart, matricea necunoscuta ini-tiala se determina cu relatia

X = UY V T . (4.221)

Obtinem urmatorul algoritm.

Algoritmul 4.22 (SYLVr – Rezolvarea ecuatiei Sylvester reale)(Date matricele A∈IRm×m, B∈IRn×n, C ∈ IRm×n, cu λ(A)∩λ(B) = ∅,si toleranta tol, algoritmul calculeaza solutia X ∈ IRm×n a ecuatieiSylvester continue AX −XB = C prin reducerea matricelor A si B laforma Schur reala cu algoritmul QR2 si utilizarea algoritmului Bartels-Stewart. Se presupune ca algoritmul QR2 se termina normal ın ambelecazuri.)

1. [S, U ] = QR2(A, Im, tol,′da′)

2. [T, V ] = QR2(A, In, tol,′da′)

3. C ← C = UTCV

4. Y = BS(S, T, C)

5. X = UY V T

Comentarii. Sintaxa de apel, cu care algoritmul 4.22 va fi utilizat ın continuare,este

X = SYLVr(A,B,C).

Pentru alte aspecte, cum sunt aprecierea complexitatii si memorarea economica,vezi comentariile de la algoritmul 4.20. 3

Observatia 4.7 Conditia (4.204), de existenta si unicitate a solutiei ecuatieiSylvester (4.203), sugereaza ideea ca solutia este cu atat mai ”robusta” cu catspectrele matricelor A si B sunt mai bine ”separate”. Masura separarii spectrelormatricelor A si B este data de scalarul

sep(A,B) = minV 6=0

‖AV − V B‖F‖V ‖F

(4.222)

(pentru mai multe detalii vezi § 4.10). Concret, se poate arata [ 54 ] ca solutia X aecuatiei Sylvester (4.203) satisface conditia

‖X‖F ≤‖C‖F

sep(A,B). (4.223)

Deci, daca separarea matricelor A si B este redusa, atunci este posibil ca normaFrobenius a solutiei sa fie mare. 3

Page 317: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 303

4.7.2 Descompunerea bloc-diagonala

Posibilitatea reducerii, prin transformari de asemanare, a unei matrice bloc-tri-unghiulare la o matrice bloc-diagonala are la baza urmatoarea lema.

Lema 4.5 Fie o matrice T ∈ ICn×n 2× 2 superior bloc-triunghiulara

T =

[T11 T120 T22

]

, T11 ∈ ICn1×n1 , T22 ∈ ICn2×n2 , n1 + n2 = n. (4.224)

Daca λ(T11) ∩ λ(T22) = ∅, atunci exista o matrice nesingulara X ∈ ICn×n avandstructura

X =

[In1

X12

0 In2

]

, (4.225)

astfel ıncat

D = X−1TX =

[T11 00 T22

]

. (4.226)

Demonstratie. Este simplu de constatat ca

X−1 =

[In1

−X12

0 In2

]

(4.227)

si, ın consecinta,

D = X−1TX =

[T11 T11X12 −X12T22 + T120 T22

]

. (4.228)

Conform teoremei 4.16, ın conditiile lemei, ecuatia matriceala Sylvester continua

T11X12 −X12T22 + T12 = 0 (4.229)

admite o solutie X12 unic determinata. Utilizand aceasta solutie ın definirea matri-cei X asertiunea lemei este probata evident. 3

Lema 4.5 se generalizeaza imediat ın urmatorul rezultat.

Teorema 4.17 Daca matricea T ∈ ICn×n are o structura q × q superior bloc-tri-unghiulara

T =

T11 T12 · · · T1q0 T22 · · · T2q...

.... . .

...0 0 · · · Tqq

, Tii ∈ ICni×ni ,

q∑

i=1

ni = n, (4.230)

si satisface conditiileλ(Tii) ∩ λ(Tjj) = ∅, ∀ i 6= j, (4.231)

atunci exista o matrice nesingulara X ∈ ICn×n avand structura

X =

In1X12 · · · X1q

0 In2· · · X2q

......

. . ....

0 0 · · · Inq

, (4.232)

Page 318: metode de calcul numeric matriceal. algoritmi fundamentali

304 CAPITOLUL 4. VALORI SI VECTORI PROPRII

astfel ıncat

D = X−1TX =

T11 0 · · · 00 T22 · · · 0...

.... . .

...0 0 · · · Tqq

. (4.233)

Demonstratie. Dovada se obtine imediat prin aplicarea repetata a lemei 4.5 pentrua proba existenta si pentru a calcula submatricele Xij care definesc matricea detransformare X . Procedura are q − 1 pasi.

Pasul 1. Fie partitia

T =

[T11 T120 T22

]

, unde T12 =[T12 · · · T1q

], T22 =

T22 · · · T2q...

. . ....

0 · · · Tqq

.

Din (4.231) rezulta λ(T11) ∩ λ(T22) = ∅. Prin urmare, conform lemei 4.5, transfor-marea definita de T ← T (1) = X−1

1 TX1 cu

X1 =

[

In1X12

0 In−n1

]

,

unde X12 este solutia ecuatiei Sylvester

T11X12 − X12T22 + T12 = 0

asigura anularea blocurilor extradiagonale de pe prima bloc-linie a matricei T .Pasul k. Presupunem ca la primii k − 1 pasi am realizat bloc-diagonalizarea

din primele bloc linii, i.e.

T ← T (k−1) = X−1k−1 · · ·X−1

2 X−11 TX1X2 · · ·Xk−1 =

T11 0 0

0 Tkk Tk,k+1

0 0 Tk+1,k+1

,

unde

T11 =

T11 · · · 0...

. . ....

0 · · · Tk−1,k−1

, Tk,k+1 =

[Tk,k+1 · · · Tkq

],

Tk+1,k+1 =

Tk+1,k+1 · · · Tk+1,q

.... . .

...0 · · · Tqq

.

Din aceleasi motive ca la pasul 1, daca Xk,k+1 este solutia ecuatiei Sylvester

TkkXk,k+1 − Xk,k+1Tk+1,k+1 + Tk,k+1 = 0, (4.234)

Page 319: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 305

atunci matriceaT ← T (k) = X−1

k T (k−1)Xk, (4.235)

unde

Xk =

In10 0

0 InkXk,k+1

0 0 In−n1−nk

, n1 =

k−1∑

i=1

ni, (4.236)

asigura anularea blocurilor extradiagonale de pe bloc-linia k. Prin urmare, proce-dura initiata la pasul 1 poate fi continuata astfel ıncat, dupa q − 1 pasi, matricea

T ← T (q−1) = X−1q−1 · · ·X−1

2 X−11 TX1X2 · · ·Xq−1 = X−1TX (4.237)

este bloc-diagonala, undeX = X1X2 · · ·Xq−1 (4.238)

este o matrice unitar bloc superior triunghiulara (ca produs de matrice unitar blocsuperior triunghiulare). Demonstratia este completa. 3

Conform demonstratiei de mai sus, schema de calcul pentru bloc-diagonalizareaunei matrice bloc superior triunghiulare 42, care satisface conditiile (4.231), esteurmatoarea:

1. X = In2. Pentru k = 1 : q − 1

1. Se calculeaza solutia Xk,k+1 a ecuatiei Sylvester (4.234).2. Se anuleaza blocurile extradiagonale de pe bloc-linia k pe baza

relatiei (4.235).3. X = XXk unde Xk este definita de (4.236).

Aceasta schema de calcul se poate detalia prin rezolvarea ecuatiei Sylvester (4.234)pe blocuri. Intr-adevar, fie partitia

Xk,k+1 =[Xk,k+1 · · · Xkq

],

conforma cu partitia lui Tk,k+1. Atunci ecuatia (4.234) se reduce la setul de ecuatiiSylvester

TkkXkj −XkjTjj =

j−1∑

l=k+1

XklTlj − Tkj , j = k + 1 : q, (4.239)

(unde, pentru j = k + 1 suma se considera nula) care pot fi rezolvate ın ordineaimpusa j = k + 1, k + 2, . . . , q. Acumularea transformarilor, se poate face si ea pemasura ce se calculeaza blocurile. Intrucat bloc-diagonalizarea urmeaza, de obicei,reducerii la forma bloc-triunghiulara si unei eventuale ordonari a blocurilor diago-nale (e.g. calculul formei Schur ordonate), pentru a nu reduce generalitatea vomconsidera ca matricea initiala de transformare este Q, posibil diferita de matriceaunitate. Astfel, acumularea transformarilor consta ın calculul Q← QX .

Rezulta urmatoarea schema de calcul.42 Pentru diagonalizarea matricelor bloc inferior triunghiulare se aplica aceasta procedura ma-

tricei transpuse, dupa care se transpune rezultatul.

Page 320: metode de calcul numeric matriceal. algoritmi fundamentali

306 CAPITOLUL 4. VALORI SI VECTORI PROPRII

BD 1. Pentru k = 1 : q − 11. Pentru j = k + 1 : q

1. Se rezolva ecuatia Sylvester TkkXkj −XkjTjj = −Tkj2. Tkj = 03. Daca k < q − 1 atunci

1. Pentru l = j + 1 : q1. Tkl = Tkl −XkjTjl

2. Pentru i = 1 : q1. Qij = Qij +QikXkj

Algoritmul de implementare al schemei de calcul BD arata astfel.

Algoritmul 4.23 (BDc – Diagonalizarea bloc a unei matrice blocsuperior triunghiulare) (Date matricea bloc superior triunghiulara T ∈∈ ICn×n, avand blocurile diagonale Tii ∈ ICni×ni , i = 1 : q, astfel ıncatλ(Tii)∩ λ(Tjj) = ∅, ∀ i 6= j, matricea de transformare initiala Q ∈ ICn×n

si vectorul nd = [n1 n2 . . . nq] al ordinelor blocurilor diagonale, algo-ritmul calculeaza matricea unitar bloc triunghiulara X ∈ ICm×n astfelıncat T ← X−1TX este bloc-diagonala T = diag(T11, T22, . . . , Tqq) siacumuleaza transformarile actualizand matricea Q: Q← QX . MatriceaX nu se formeaza explicit.)

1. r1 = 1

2. s1 = n1

3. Pentru k = 1 : q − 1

1. rk+1 = rk + nk

2. sk+1 = sk + nk+1

4. Pentru k = 1 : q − 1

1. Pentru j = k + 1 : q

1. Y = SYLV(T (rk :sk, rk :sk), T (rj :sj , rj :sj),−T (rk :sk, rj :sj))

2. T (rk :sk, rj :sj) = 0

3. Daca k < q − 1 atunci

1. Pentru l = j + 1 : q

1. T (rk :sk, rl :sl) = T (rk :sk, rl :sl)− Y T (rj :sj , rl :sl)4. Q( : , rj :sj) = Q( : , rj :sj) +Q( : , rk :sk)Y

Comentarii. Sintaxa de apel pentru algoritmul 4.23 este

[T,Q ] = BD(T,Q, nd).

Pentru simplificarea scrierii algoritmului s-au introdus vectorii de indici initiali (r)si finali (s) ai blocurilor, i.e. astfel ıncat Tij = T (ri : si, rj : sj). Intrucat matriceaX nu se formeaza explicit (ın afara cazului cand Q initial este In) pentru solutiileXkj ale ecuatiilor Sylvester s-a utilizat aceeasi variabila matriceala Y .

Page 321: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 307

Versiunea pentru date initiale reale – s-o numim BDr – este absolut simi-lara, singura diferenta constand ın utilizarea algoritmului SYLVr pentru rezolvareaecuatiilor Sylvester implicate.

Complexitatea algoritmului este O(n3) numarul concret de operatii fiind depen-dent de structura blocurilor diagonale. Daca blocurile diagonale sunt toate 1 × 1,atunci ın cazul real Nop = 2

3n3 flopi, iar ın cazul complex numarul echivalent de

flopi reali este de patru ori mai mare. 3

Observatia 4.8 In majoritatea aplicatiilor calitatea formei boc-diagonale calculatede algoritmul BD este apreciata prin conditionarea κ(X) = ‖X‖ ·‖X−1‖ a matriceide transformare X . Data o matrice T ın forma Schur (reala), se poate formulaproblema unei ordonari prealabile a acesteia si apoi a fixarii blocurilor diagonaleastfel ıncat sa se obtina o conditionare cat mai buna a matricei de transformareX . Consideram, spre exemplificare, cazul a numai doua blocuri diagonale. Dinstructura (4.225) si (4.227) a matricelor X si X−1 avem

κF (X) = ‖X‖F · ‖X−1‖F = n+ ‖X12‖2F .

Prin urmare, conditionarea matricei X este cu atat mai buna cu cat norma solutieiX12 a ecuatiei Sylvester (4.229) este mai mica, i.e. conform observatiei 4.7, sepa-rarea spectrelor blocurilor T11 si T22 este mai mare. Revenind la problema formulatamai sus, ordonarea formei Schur si fixarea blocurilor diagonale trebuie facuta astfelıncat spectrele blocurilor diagonale sa fie cat mai bine separate. 3

4.7.3 Aspecte numerice privitoare la calcululformei canonice Jordan

In cazul general, cea mai simpla structura care poate fi obtinuta, prin transformaride asemanare corespunzatoare, este asa numita forma canonica Jordan definita ınteorema urmatoare.

Teorema 4.18 Oricare ar fi matricea A ∈ ICn×n exista o matrice nesingulara T ∈∈ ICn×n astfel ıncat

J = T−1AT = diag(J1, J2, ... , Jq ), (4.240)

unde blocurile diagonale Jk se numesc celule Jordan si sunt fie scalari Jk = λk, fieau structura

Jk =

λk 1 · · · 0 0

0 λk. . . 0 0

......

. . .. . .

...0 0 · · · λk 10 0 · · · 0 λk

∈ ICnk×nk . (4.241)

Unei valori proprii multiple ıi pot corespunde una sau mai multe celule Jordan.Numarul si dimensiunile celulelor Jordan asociate fiecarei valori proprii sunt unicdeterminate, dar ordonarea blocurilor ın (4.240) poate fi arbitrara.

Page 322: metode de calcul numeric matriceal. algoritmi fundamentali

308 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Demonstratie. Demonstratii complete pot fi gasite ın lucrarile clasice de algebraliniara sau analiza matriceala, cum sunt, de exemplu, [ I ], [ II ]. 3

Desi forma canonica Jordan joaca un rol esential ın analiza matriceala, continandmaximum de informatie structurala privitor la o matrice data, totusi rolul ei ın cal-culul numeric este mult diminuat de sensibilitatea structurii Jordan la perturbatiinumerice ın elementele matricei initiale, perturbatii inerente datorita erorilor dereprezentare a informatiei numerice ıntr-un format virgula mobila. De asemenea,ıncercarile de a calcula forma canonica Jordan a unei matrice presupuse ca avando reprezentare exacta, ıntr-un mediu de calcul aproximativ, prezinta dificultati ma-jore datorita influentelor structurale, posibil decisive, ale erorilor de rotunjire. Dinpacate (sau din fericire) nu s-a putut degaja un concept de forma canonica Jordan”aproximativa” sau, mai bine zis, acest rol poate fi jucat de o structura diagonala,ıntrucat oricat de aproape (ın sensul unei norme matriceale consistente) de o ma-trice cu o structura Jordan oricat de complexa se gasesc matrice cu structura Jordancea mai simpla, i.e. diagonala.

Trebuie subliniat ınsa ca, practic ın toate aplicatiile, forma canonica Jordanpoate fi suplinita cu succes de catre forma Schur, al carei calcul se poate efectua cuo ınalta acuratete.

Privind acum determinarea formei canonice Jordan ca o provocare la adresacalculului numeric, ne propunem sa scoatem ın evidenta, la un nivel mai putinformal, natura dificultatilor ce apar ıntr-o astfel de ıntreprindere.

In primul rand este evident faptul ca o abordare procedurala naturala a construc-tiei formei canonice Jordan a unei matrice A ∈ ICn×n presupune ca o prima etapa,decisiva, calculul formei formei Schur ordonate si, pe aceasta baza, a formei bloc-diagonale (prezentate ın sectiunile precedente) ın care fiecare bloc diagonal core-spunde unei valori proprii distincte a matricei initiale si, prin urmare, are ordinuldat de multiplicitatea algebrica a valorii proprii respective. De asemenea, amintimca, ın cazul complex, blocurile diagonale sunt matrice superior triunghiulare.

In consecinta, problema se reduce, de fapt, la calculul formei canonice Jordan aunui bloc diagonal al formei bloc diagonale, i.e. a unei matrice (utilizam din nounotatiile generice) A ∈ ICn×n de forma

A = λIn +N, (4.242)

unde N ∈ ICn×n este o matrice strict superior triunghiulara. Mai mult, ıntrucatT−1AT = λIn + T−1NT , este suficient sa construim forma canonica Jordan amatricei strict superior triunghiulare N .

FieJ = T−1NT = diag(J1, J2, ... , Jq ), (4.243)

forma canonica Jordan a matricei N , unde celulele Jordan Jk sunt definite, ın acestcaz, de

Jk =

0 1 · · · 0 0

0 0. . . 0 0

......

. . .. . .

...0 0 · · · 0 10 0 · · · 0 0

∈ ICnk×nk . (4.244)

Page 323: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 309

O prima dificultate majora este determinarea ordinelor nk, k = 1 : q, ale celulelor.O modalitate de a face acest lucru pleaca de la urmatoarele observatii: a) J l

k = 0pentru toti l ≥ nk si b) dimKerJ l

k = l, pentru l < nk. Cum

J l = T−1N lT = diag(J l1, J

l2, ... , J

lq ), (4.245)

si

dimKerJ l = dimKerN l =

q∑

i=1

dimKerJ li , (4.246)

rezulta ca, daca putem calcula mldef= dimKerN l pentru l ∈ 1 : n 43, atunci dimen-

siunile ni ale celulelor Jordan pot fi determinate din (4.246) pe baza urmatoarelorconstatari:

a) numarul celulelor Jordan de ordin l sau mai mare este δl = ml − ml−1 (seconsidera m0 = 0), ıntrucat o data ce l a atins valoarea ni, J

li a devenit nula,

i.e. dimKerJ li a atins valoarea maxima ni si nu mai contribuie la variatia sumei la

trecerea la valoarea urmatoare a lui l;b) numarul celulelor Jordan de ordin l este dat de νl = δl − δl+1 (se considera

δlmax+1 = 0).

Exemplul 4.5 Fie n = 8 ordinul matricei strict superior triunghiulare N . Osituatie structurala posibila ce poate fi dedusa din determinarea dimKerN l, pentrutoate valorile de interes ale lui l, este rezumata ın tabelul 4.6. Deci structura Jordana matricei N are o celula scalara, doua celule de ordinul 2 si o celula de ordinul 3.3

l 1 2 3

ml = dimKerN l 4 7 8δl = ml −ml−1 4 3 1νl = δl − δl+1 1 2 1

Tabelul 4.6: Determinarea dimensiunii celulelor Jordan pentru o matrice strictsuperior triunghiulara de ordinul 8

Pentru aplicarea celor aratate mai sus este necesar un mijloc fiabil de deter-minare a dimensiunilor subspatiilor implicate sau, echivalent, de calcul al ranguluiunor matrice. Aici este de fapt punctul critic al procedurii, ıntrucat deciziile derang exact ıntr-un mediu de calcul aproximativ sunt dificile, daca nu imposibile,iar conceptul de rang numeric (i.e. ıntr-un sens, de rang aproximativ, v. cap. 5),singurul instrument de care putem dispune ın conditiile precizate, trebuie utilizatcu multa grija ıntr-o abordare structurala ın care structura este foarte sensibila lavariatiile elementelor.

43 Evident, este suficient sa ne rezumam la l ≤ s, unde s este cel mai mic ıntreg pentru careNs = 0.

Page 324: metode de calcul numeric matriceal. algoritmi fundamentali

310 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Pentru a ıncheia constructiv acest paragraf, vom considera ca fiind exact ran-gul oferit de instrumentele numerice existente si, pentru a apela la proceduri dejafamiliare cititorului, vom folosi ın acest scop triangularizarea unitara (ortogonala)completa 44 (v. cap. 3). Reamintim ca, data o matrice A ∈ ICm×n, procedura detriangularizare unitara completa presupune o triangularizare unitara cu pivotareacoloanelor care calculeaza matricea unitara Q ∈ ICm×m si matricea (ortogonala) depermutare P ∈ IRn×n astfel ıncat

QHAP = R =

[R11 R12

0 0

]

, R11 ∈ ICr×r, (4.247)

unde R11 este superior triunghiulara nesingulara (i.e. r este rangul matricei A),urmata de anularea blocului R12 printr-o transformare unitara (ortogonala) aplicatape dreapta, obtinandu-se

QHAPV = QHAZ = RV =

[R11 00 0

]

, Z = PV. (4.248)

In cele ce urmeaza, vom utiliza variante ale descompunerii (4.248) obtinute prinpermutari suplimentare ale blocurilor. In acest scop vom introduce sintaxa de apel

[R,Q,Z, r ] = QRCij(A),

unde ij marcheaza pozitia blocului triunghiular nesingular R11, indexat ın conti-nuare ın functie de necesitatile contextului. Subliniem ınca o data ca, desi rangulcalculat r este esential dependent de nivelul erorilor de calcul si al tolerantelorpracticate ın procesul de triangularizare, ın cele ce urmeaza acesta va fi consideratexact.

Trecem la constructia formei canonice Jordan a matricei strict superior tri-unghiulare (deci nilpotente) N ∈ ICn×n, si vom presupune N 6= 0 45. Esentaprocedurii de constructie a formei Jordan consta ın urmatoarele etape.

Etapa 1 rezida ın reducerea matricei N la o structura bloc supradiagonala.Pentru a obtine aceasta structura aplicam matricei N procedura de triangularizareunitara (ortogonala) completa [N1, Q1, Z1, r1 ] = QRC12(N). Rezulta

QH1 NZ1 = R =

m1=δ1︷︸︸︷

r1︷︸︸︷

[0 R1

0 0

]r1δ1 , (4.249)

cu R1 ∈ ICr1×r1 nesingulara si

m1 = dimKerN = n− r1 = δ1. (4.250)

44 Un mijloc mai bun de evaluare a rangului este descompunerea valorilor singulare, tratata ıncapitolul 5.

45 Daca N = 0, atunci ea se afla deja ın forma canonica Jordan cu n celule de ordinul 1.

Page 325: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 311

In continuare fie matricea N1, unitar asemenea cu N , definita de

N1 = ZH1 NZ1 = ZH

1 Q1R =

δ1︷︸︸︷

r1︷︸︸︷

[0 K1

0 L1

]δ1r1 , (4.251)

unde, evident, λ(L1) ⊂ λ(N), i.e. blocul L1 are toate valorile proprii nule, respectiveste nilpotent. Putem determina acumm2 = dimKerN2 = dimKerN2

1 . Intr-adevar,

m2 = dimKerN21 = dimKer

[0 K1L1

0 L21

]

=

= m1 + dimKer

[K1L1

L21

]

= m1 + dimKerL1, (4.252)

ıntrucat

[K1L1

L21

]

=

[K1

L1

]

L1, iar matricea

[K1

L1

]

este monica. Daca L1 = 0

se trece la etapa a doua. Daca L1 6= 0 continuam procesul initiat mai sus, prinaplicarea unor transformari similare matricei nilpotente L1, obtinand

N2 = ZH2 L1Z2 =

δ2︷︸︸︷

r2︷︸︸︷

[0 K2

0 L2

]δ2r2 , (4.253)

cu matricea L2 nilpotenta, matricea

[K2

L2

]

monica, m2 = m1 + δ2 si δ2 = r1 − r2.Considerand matricea de transformare unitara

Z2 =

[Im1

0

0 Z2

]

, (4.254)

obtinem

N2 = ZH2 N1Z2 = ZH

2 ZH1 NZ1Z2 =

0 K1Z2

00 K2

0 L2

=

δ1︷︸︸︷

δ2︷︸︸︷

r2︷︸︸︷

0 K12 K13

0 0 K23

0 0 L2

δ1δ2r2

,

(4.255)

ın care matricele K12 si

[K23

L2

]

sunt monice. In aceasta faza putem anula blocul

K13 printr-o transformare de asemanare (neunitara) definita de o matrice de trans-formare de tipul

T2 =

[Iδ1 S0 Ir1

]

, (4.256)

Page 326: metode de calcul numeric matriceal. algoritmi fundamentali

312 CAPITOLUL 4. VALORI SI VECTORI PROPRII

unde S ∈ ICδ1×r1 este o solutie a ecuatiei matriceale 46

S

[K23

L2

]

= K13. (4.257)

Cu aceasta transformare rezulta

N2 = T−12 N2T2 = T−1

2 ZH2 Z

H1 NZ1Z2T2 =

δ1︷︸︸︷

δ2︷︸︸︷

r2︷︸︸︷

0 K12 00 0 K23

0 0 L2

δ1δ2r2

, (4.258)

Acest proces se desfasoara ıntr-un numar s de pasi, unde s este primul ıntregpentru care Ls=0, obtinandu-se, ın finalul acestei etape, o matrice avand o structurabloc supradiagonala

K = Ns = T−1s ZH

s . . . T−12 ZH

2 ZH1 NZ1Z2T2 . . . ZsTs =

=

δ1︷︸︸︷

δ2︷︸︸︷

δ3︷︸︸︷ · · ·

δs︷︸︸︷

0 K12 0 · · · 00 0 K23 · · · 0...

.... . .

. . ....

0 0 0. . . Ks−1,s

0 0 0 · · · 0

δ1δ2...δs−1

δs

, (4.259)

cu toate blocurile Ki−1,i, i = 2 : s, monice. Din dimensiunile δl × δl ale blocurilordiagonale se pot deduce, dupa cum s-a aratat mai sus, numarul νl = δl − δl+1,l = 1 : s, al celulelor Jordan de ordinul l.

Etapa 2 are ca obiect introducerea zerourilor ın blocurile supradiagonaleKi−1,i.Pentru claritate, descriem modalitatea ın care acest obiectiv poate fi atins ın cazulparticular s = 3. Consideram descompunerea unitara completa a blocului K23

[ K23, Q23, Z23, δ3 ] = QRC21(K23), cu care obtinem

K23 = QH23K23Z23 =

[0R23

]δ2 − δ3 = ν2δ3 = ν3

, (4.260)

cu R23 ∈ ICν3×ν3 nesingulara. Acum, cu transformarea de asemanare definita dematricea

T23 =

Iδ1 0 00 Q23 00 0 Z23R

−123

, (4.261)

46 Ecuatia (4.257) are ıntotdeauna (cel putin) o solutie S ıntrucat matricea sistemului

[K23

L2

]

este monica. O solutie poate fi calculata cu mijloacele descrise ın capitolele 2 si 3. De exem-

plu, daca QH

[K23

L2

]

=

[R0

]

este triangularizarea unitara a matricei

[K23

L2

]

, atunci S =

=[R−1K13 Y

]QH , cu Y ∈ ICδ1×δ2 arbitrara, este o astfel de solutie. Pentru Y = 0 se obtine

solutia normala, i.e. de norma Frobenius minima.

Page 327: metode de calcul numeric matriceal. algoritmi fundamentali

4.7. FORMA BLOC-DIAGONALA 313

rezulta

M = T−123 KT23 =

0 K12Q23 0

0 0

[0ν2Iδ3

]

0 0 0

. (4.262)

Continuand ın acelasi mod, consideram descompunerea unitara completa a bloculuiK12 actualizat [ K12, Q12, Z12, δ2 ] = QRC21(K12Q23) si transformarea de asema-nare definita de matricea

T12 =

Q12 0 00 Z12R

−112 0

0 0 Iδ3

. (4.263)

Rezulta

M = T−112 MT12 =

0

[0ν1Iδ2

]

0

0 0

[0ν2Iδ3

]

0 0 0

. (4.264)

In cazul general, procesul descris mai sus, poate fi sintetizat ın urmatoareaschema de calcul.

Pentru i = s : −1 : 2

1. [ Ki−1,i, Qi−1,i, Zi−1,i, δi ] = QRC21(Ki−1,i)

2. Ki−1,i ←[

0νi−1

Iδi

]

3. Daca i > 2 atunci

1. Ki−2,i−1 ← Ki−2,i−1Qi−1,i.

Observatia 4.9 Punerea ın evidenta a matricelor unitate din structura creata cuschema de calcul are ın vedere obtinerea formei canonice Jordan uzuale. Tinandseama ınsa de faptul ca esenta structurala a formei Jordan rezida ın dimensiunilecelulelor Jordan, se poate oferi un plus de informatie daca ın locul matricelor unitatese lasa matricele diagonale construite cu elementele diagonale ale matricelor Ri−1,i

(sau cu valorile singulare (v. cap. 5) ale matricelor Ki−1,i curente). In acest felse poate pune ın evidenta o eventuala fragilitate numerica a unor celule datoratavalorilor ”prea mici” ale unora dintre elementele diagonale amintite. 3

Etapa 3 consta ın transformari de asemanare tip permutare pentru a puneın lumina celulele Jordan de dimensiuni corespunzatoare si pentru eventuala lorordonare. Lasam ın seama cititorului aceasta sarcina.

In concluzie, parcurgand cele trei etape, se obtine forma canonica Jordan J0 amatricei strict superior triunghiulare N . Forma canonica Jordan a matricei initialeA din (4.242) este J = λIn + J0.

Matricea nesingulara care defineste transformarea de asemanare ce evidentiazaforma canonica Jordan se obtine cumuland toate transformarile efectuate pe par-cursul procedurii.

Rezumand cele prezentate mai sus, avem urmatoarea schita a unei posibile pro-ceduri de calcul a formei canonice Jordan.

Page 328: metode de calcul numeric matriceal. algoritmi fundamentali

314 CAPITOLUL 4. VALORI SI VECTORI PROPRII

J 1. Se calculeaza forma Schur (complexa) utilizand algoritmul QR.2. Se ordoneaza forma Schur astfel ıncat valorile proprii apreciate

ca fiind egale sa fie grupate.3. Se calculeaza forma bloc-diagonala astfel ıncat fiecarui bloc sa-i

corespunda o valoare proprie distincta.4. Se calculeaza forma canonica Jordan a fiecarui bloc diagonal

conform indicatiilor din prezenta sectiune.

Subliniem ın final complexitatea sarcinii de a calcula forma canonica Jordan,dependenta critica a structurii obtinute de delicate decizii de rang ce trebuie luate lapasul 4, precum si posibile conditionari nesatisfacatoare sau instabilitati numericeın rezolvarea ecuatiilor matriceale Sylvester din pasul 3, mai ales ın situatia ıncare separarea valorilor proprii considerate distincte este insuficienta. De aceea,ın aplicatiile de calcul numeric, se evita utilizarea formei canonice Jordan. Asacum s-a precizat, din fericire, forma Schur, mult mai robusta, este suficienta pentrurezolvarea practic a tuturor problemelor de interes aplicativ.

4.8 Algoritmul QR simetric

Matricele reale simetrice A = AT ∈ IRn×n apar ın numeroase aplicatii specifice. Inparticular, problema generala a celor mai mici patrate presupune rezolvarea (maimult sau mai putin explicita a) sistemului normal de ecuatii a carui matrice estesimetrica. Mai mult, cazul simetric este important pentru calculul valorilor singulareale unei matrice, problema ce apare ın toate aplicatiile ce fac apel la conceptul derang matriceal.

Din punct de vedere procedural, exploatarea simetriei ın determinarea valorilorsi vectorilor proprii conduce la dezvoltari elegante si la importante simplificari alecalculelor. Algoritmul QR simetric ramane un instrument fundamental pentrucalculul ıntregului spectru al unei matrice simetrice. Totusi, spre deosebire de cazulgeneral, ın care algoritmul QR nu are rival, ın cazul simetric, ın situatii specifice,exista solutii alternative viabile, cele mai importante fiind prezentate ın § 4.9.

Sursa importantelor facilitati de calcul care apar ın cazul simetric se afla ınrezultatul fundamental dat de teorema 4.2 47, conform careia orice matrice simetricaA ∈ IRn×n este ortogonal diagonalizabila, i.e. exista o matrice ortogonala Q ∈IRn×n astfel ıncat

QTAQ = Λ = diag(λ1, λ2, . . . , λn), (4.265)

adica toate matricele simetrice reale sunt simple, au un spectru real λ(A) ∈ IR, iardirectiile proprii, definite de coloanele matricei Q din (4.265), sunt ortogonale douacate doua.

In continuare vom trece ın revista principalele aspecte ale algoritmului QR si-metric. Atat pentru acest algoritm, cat si pentru metodele alternative mentionate,

47 Rezultatele stabilite ın continuare pentru matricele reale simetrice raman valabile, cu miciadaptari, pentru matricele complexe A ∈ ICn×n hermitice. Formularea exacta a unor rezultatesi prezentarea aspectelor algoritmice specifice fac obiectul paragrafului § 4.8.5 precum si al unorexercitii.

Page 329: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 315

se obtine un spor esential de eficienta prin parcurgerea prealabila a fazei directe a al-goritmului QR, i.e. reducerea matricei date la forma superior Hessenberg. Datoritaconservarii simetriei la transformarile ortogonale de asemanare, structura superiorHessenberg obtinuta este, simultan, inferior Hessenberg, i.e. devine o structuratridiagonala.

4.8.1 Reducerea la forma tridiagonala

Baza teoretica a posibilitatii de reducere la forma tridiagonala a unei matrice si-metrice este data de teorema 4.14, care, ın noul context, are urmatorul enunt.

Teorema 4.19 Oricare ar fi matricea simetrica A ∈ IRn×n, exista o matrice orto-gonala Q ∈ IRn×n astfel ıncat matricea

T = QTAQ (4.266)

este tridiagonala, i.e. tij = 0, pentru toti i, j, cu |i− j| > 1.

Demonstratie. Demonstratia se reduce la observatia de mai sus ca, ın conformitate

cu teorema 4.14, exista o matrice ortogonala Q astfel ıncat matricea Tnot= H =

= QTAQ este superior Hessenberg si la faptul ca aceasta matrice este simetricaT T = QTATQ = QTAQ = T . Prin urmare T este, simultan, inferior Hessenberg,i.e. este o matrice tridiagonala. 3

Pentru a elabora un algoritm performant, care sa exploateze eventualele facilitaticalculatorii induse de conservarea simetriei, reamintim schema de calcul care sta labaza reducerii la forma Hessenberg, aceeasi cu schema de calcul pentru reducereala forma tridiagonala.

TQ 1. Pentru k = 1 : n− 2

1. Se calculeaza un reflector elementar Uk+1 astfel ıncat(Uk+1A)(k + 2 : n, k) = 0.

2. A← (Uk+1A)Uk+1 % Se anuleaza A(k + 2 : n, k) si, simultan,datorita conservarii simetriei, se anuleazaA(k, k + 2 : n).

In urma efectuarii calculelor de mai sus matricea A este suprascrisa cu matricea

A← T = QTAQ = Un−1 · · ·U3U2AU2U3 · · ·Un−1, (4.267)

unde, evident,Q = U2U3 . . . Un−1. (4.268)

Consideram acum pasul curent k al procesului de tridiagonalizare descris mai sussi fie

A← T (k) = Uk · · ·U3U2AU2U3 · · ·Uk =

k−1︷︸︸︷

1︷︸︸︷

n−k︷︸︸︷

T(k)11 T

(k)12 0

T(k)21 T

(k)22 T

(k)23

0 T(k)32 T

(k)33

k − 1

1n− k

(4.269)

Page 330: metode de calcul numeric matriceal. algoritmi fundamentali

316 CAPITOLUL 4. VALORI SI VECTORI PROPRII

matricea obtinuta dupa primii k− 1 pasi, partitionata convenabil, ın care T(k)11 este

tridiagonala, simetrica, iar

T(k)21 = (T

(k)12 )

T= [ 0 0 · · · 0 t

(k)k,k−1 ].

Avand ın vedere faptul ca reflectorul elementar Uk+1 are structura

Uk+1 =

[Ik 00 Uk+1

]

, (4.270)

unde

Uk+1 = In−k −uk+1u

Tk+1

βk+1, uk+1 ∈ IRn−k, (4.271)

este un reflector elementar de ordin n − k si indice 1, transformarile efectuate lapasul k au ca efect

A← T (k+1) = Uk+1T(k)Uk+1 =

T(k)11 T

(k)12 0

T(k)21 T

(k)22 T

(k)23 Uk+1

0 Uk+1T(k)32 Uk+1T

(k)33 Uk+1

. (4.272)

Cum

T(k)23 Uk+1 = (Uk+1T

(k)32 )

T= [−σ 0 0 · · · 0 ],

cu σ = sgn(T(k)32 (1, 1))‖T (k)

32 ‖ 48, ramane sa efectuam ın mod eficient calculul ma-tricei simetrice

A(k + 1 : n, k + 1 : n)← T(k+1)33 = Uk+1T

(k)33 Uk+1. (4.273)

Consideram necesar sa precizam aici faptul ca performantele deosebite privindmemoria utilizata si eficienta calculatorie din cazul simetric se datoresc unei ju-dicioase exploatari a proprietatii de simetrie. Astfel, o memorare economica a uneimatrice simetrice se face retinand numai elementele din triunghiul sau inferior sausuperior. De asemenea, cand se cunoaste faptul ca rezultatul unei procesari esteo matrice simetrica, se calculeaza, evident, numai elementele sale din triunghiulinferior sau superior.

In consecinta, ın (4.273) vom calcula, de exemplu, numai elementele din tri-

unghiul inferior al matricei T(k+1)33 . De asemenea, tinand seama de (4.271) si notand,

pentru simplificarea scrierii,

uk+1not= u, β

not= βk+1,

relatia (4.273) devine

T(k+1)33 = (In−k −

uuT

β)T

(k)33 (In−k −

uuT

β) =

48 Pentru calculul reflectorilor si semnificatia notatiilor utilizate, vezi capitolul 3.

Page 331: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 317

= T(k)33 −

uuT

βT

(k)33 − T

(k)33

uuT

β+uuTT

(k)33 uu

T

β2. (4.274)

Notand

v =T

(k)33 u

β∈ IRn−k (4.275)

obtinem

T(k+1)33 = T

(k)33 −uvT−vuT+

uuT vuT

β= T

(k)33 −u(vT−

uTv

2βuT )−(v− u

Tv

2βu)uT. (4.276)

Introducand acum notatia

w = v − uT v

2βu, (4.277)

(4.276) devine

T(k+1)33 = T

(k)33 − uwT − wuT , (4.278)

relatie care, ımpreuna cu (4.275) si (4.277), va fi folosita pentru calculul triunghiului

inferior al matricei A(k + 1 : n, k + 1 : n)←− T (k+1)33 = Uk+1T

(k)33 Uk+1.

Forma tridiagonala simetrica obtinuta constituie punctul de plecare pentru di-verse tehnici iterative de calcul a valorilor proprii. De aceea, ın cele ce urmeaza,vom considera ca matricea tridiagonala A ← T = T T ∈ IRn×n este memorata nu-mai prin elementele sale semnificative, date de componentele vectorilor f ∈ IRn sig ∈ IRn−1 conform scrierii

A← T =

f1 g1 0 · · · 0 0g1 f2 g2 · · · 0 0

0 g2 f3. . . 0 0

......

. . .. . .

. . ....

0 0 0. . . fn−1 gn−1

0 0 0 0 gn−1 fn

. (4.279)

Aplicarea ideilor mentionate mai sus conduce la urmatorul algoritm.

Algoritmul 4.24 (TQ– Reducerea la forma tridiagonala)(Date matricea simetrica A ∈ IRn×n si matricea de transformare initialaQ ∈ IRn×n, algoritmul calculeaza secventa de reflectori U2, U3, · · · , Un−1

astfel ıncat matriceaA← T = Un−1 · · ·U3U2AU2U3 · · ·Un−1 are o struc-tura tridiagonala. Se considera ca A este data numai prin triunghiul sauinferior ın care sunt efectuate calculele curente. Algoritmul extrage vec-torii f ∈ IRn si g ∈ IRn−1, conform (4.279), care definesc matriceatridiagonala rezultata. Optional se actualizeaza matricea de transfor-mare Q← QU2U3 · · ·Un−1. Optiunea se exprima prin intermediul uneivariabile logice opt, de tipul sir de caractere, care poate lua valorile’da’ sau ’nu’. Daca nu se doreste actualizarea, matricea Q ramanenemodificata.)

Page 332: metode de calcul numeric matriceal. algoritmi fundamentali

318 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. Pentru k = 1 : n− 2

1. % Calculul reflectorului elementar Uk+1

1. [A(k + 1 : n, k), u, β ] = Hr(A(k + 1 : n, k))

2. % Calculul A← (Uk+1A)Uk+1 numai ın triunghiul inferior

1. Pentru i = 1 : n− k − 1

1. l = k + i

2. vi=A(l, k+1: l)u(1 : i) +A(l+1: n, l)u(i+1: n−k)

β

2. vn−k =A(n, k + 1 : n) u

β

3. ρ =uT v

2β4. w = v − ρu5. Pentru j = 1 : n− k

1. Pentru i = j : n− k1. A(k + i, k + j)← A(k + i, k + j)− uiwj − wiuj

3. % Acumularea transformarilor

1. Daca opt = ′da′ atunci

1. Q(:, k + 1 : n) = Hrd(Q(:, k + 1 : n), u, β)

2. % Extragerea vectorilor f si g

1. f1 = A(1, 1)

2. Pentru i = 1 : n− 1

1. gi = A(i+ 1, i)

2. fi+1 = A(i+ 1, i+ 1).

Comentarii. Sintaxa de apel a algoritmului TQ va fi

[ f, g,Q ] = TQ(A,Q, opt).

Utilizarea relatiei de calcul (4.276) reduce efortul de calcul la mai putin de jumatateın raport cu cazul nesimetric. Intr-adevar, calculul vectorilor v si w la pasul curentk necesita N1(k) ≈ (n− k)2 flopi si, respectiv N2(k) ≈ (n− k) flopi. Cum de-terminarea elementelor definitorii ale reflectorilor necesita, de asemenea, N3(k) ≈≈ (n− k) flopi, rezulta ca numarul asimptotic de flopi necesari pentru calculultridiagonalizarii este

Nop ≈n−2∑

k=1

N1(k) ≈2

3n3,

fata de 53n

3 flopi necesari pentru reducerea la forma superior Hessenberg ın cazulnesimetric. Acumularea transformarilor, i.e. calculul explicit al matricei de trans-formare Q din (4.274), implica efectuarea a N ′

op ≈ 23n

3 flopi suplimentari 49. Volu-

49 Daca matricea Q initiala este In, se poate obtine o reducere a numarului de operatii ın calcululacumularii transformarilor daca se memoreaza (economic) elementele definitorii ale reflectorilor siacumularea se face ın afara ciclului principal, ın ordine inversa, cu exploatarea structurii de zerouria matricei Q curente.

Page 333: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 319

mul de memorie este M ≈ 3n2/2 locatii, necesar pentru memorarea elementelortriunghiului inferior al matricei A si a elementelor matricei Q 50.

Algoritmul TQ este numeric stabil, i.e. matricea tridiagonala calculata ıntr-oaritmetica ın virgula mobila este o matrice exact ortogonal asemenea cu o ma-trice usor perturbata A + E, unde matricea de perturbatie E satisface conditia‖E‖ ≤ p(n)εM‖A‖, cu p(n) o functie cu crestere ”modesta” de dimensiunea n aproblemei. 3

Observatia 4.10 Spre deosebire de cazul nesimetric ın care reducerea la formasuperior Hessenberg se putea face, suficient de performant, si prin transformaride asemanare neortogonale, aici astfel de transformari altereaza simetria si, prinurmare, nu sunt recomandate. 3

4.8.2 Faza iterativa a algoritmului QR simetric

Etapa iterativa a algoritmului QR simetric beneficiaza de importante simplificaricalculatorii care se datoreaza, ın principal, conservarii simetriei matricei initiale latransformari ortogonale de asemanare si constau ın:

– conservarea structurii tridiagonale la transformarile implicate de iteratiileQR; ın consecinta toate transformarile aferente sirului QR se pot desfasura ınlocatiile de memorie ale vectorului f al elementelor diagonale si ale vectorului g alelementelor subdiagonale ale matricei tridiagonale curente (v. (4.279));

– valorile proprii ale unei matrice simetrice reale fiind reale nu sunt necesaredeplasari complexe si, prin urmare, nu este necesara strategia pasilor dubli.

Vom folosi aceste observatii ın vederea elaborarii unui algoritm QR simetric catmai performant.

A. Algoritmul QR simetric cu deplasare explicita

Presupunem matricea simetrica tridiagonala T ∈ IRn×n data prin vectorii f si g din(4.279). Pentru claritatea expunerii vom utiliza si indexarea obisnuita a elementelormatricei T urmand ca algoritmul sa fie scris exclusiv ın raport cu elementele vecto-rilor f si g.

Algoritmul QR simetric cu deplasare explicita construieste un sir de matricetridiagonale, ortogonal asemenea

T = T1, T2, · · · , Tk, Tk+1, · · · (4.280)

pe baza relatiei de recurentaT − µIn = QRT ← T ′ = RQ+ µIn

, (4.281)

unde T semnifica matricea curenta din sirul (4.280), iar indicele superior ′ mar-cheaza matricea succesor. Deplasarea µ se poate alege ca ın cazul nesimetric

µ = tnn = fn (4.282)

50 Asiguram cititorul ca unele licente minore, cum este utilizarea explicita a doi vectori (v siw) cand sunt suficiente locatiile de memorie ale unuia singur, servesc exclusiv claritatii prezentariialgoritmului.

Page 334: metode de calcul numeric matriceal. algoritmi fundamentali

320 CAPITOLUL 4. VALORI SI VECTORI PROPRII

sau, si mai eficient, egala cu valoarea proprie, ıntotdeauna reala, cea mai apropiatade tnn, a blocului 2× 2 din coltul din dreapta jos al matricei curente T

T (n− 1 : n, n− 1 : n) =

[fn−1 gn−1

gn−1 fn

]

. (4.283)

Deplasarea din cea de a doua varianta, numita deplasare Wilkinson, are expresia(verificati!)

µ =1

2(fn−1 + fn − sgn(fn−1 − fn)

(fn−1 − fn)2 + 4g2n−1 ) (4.284)

si se calculeaza economic si fiabil cu relatiile

α =fn−1 − fn

2, β = g2n−1, µ = fn −

β

α+ (sgnα)√

α2 + β. (4.285)

Se poate arata [ VI ] ca, pentru oricare din deplasarile (4.282) sau (4.284), ın partea”finala” a procesului iterativ se obtine o convergenta cubica a sirului QR simetric(4.280) catre o structura diagonala. Exista, totusi, unele argumente de naturaeuristica ın favoarea deplasarii Wilkinson.

Avandu-se ın vedere structura tridiagonala a tuturor matricelor sirului QR si-metric (4.280), pentru factorizarea QR din (4.281) se recomanda utilizarea rotatiilor.Este usor de constatat ca matricea superior triunghiulara R a acestei factorizari vaavea numai doua supradiagonale nenule. Mai mult, pentru necesitatile de calcul alematricei succesor, conform (4.281), cea de a doua supradiagonala nici nu trebuiecalculata. In consecinta, pentru memorarea elementelor utile sunt suficienti doivectori de dimensiuni n si n− 1 care pot fi vectorul f al elementelor diagonale alematricei T si un vector suplimentar pe care ıl notam cu h. Cu aceste precizari, unpas simplu QR simetric cu deplasare explicita (fara acumularea transformarilor)consta ın efectuarea urmatoarelor calcule.

Algoritmul 4.25 (IT QRsim – Un pas QR simetric cu deplasareWilkinson explicita) (Data o matrice simetrica tridiagonala ireductibilaT ∈ IRn×n prin vectorul f ∈ IRn al elementelor diagonale si vectorulg ∈ IRn−1 al elementelor subdiagonale, algoritmul calculeaza vectoriidefinitorii f si g ai matricei succesor din sirul QR simetric. Toatecalculele se efectueaza pe loc, ın locatiile de memorie ale elementelorvectorilor f si g. Algoritmul furnizeaza, de asemenea, vectorii c si s aleelementelor ce definesc rotatiile utilizate.)

1. % Calculul deplasarii Wilkinson

1. α =fn−1 − fn

2, β = g2n−1, µ = fn −

β

α+ (sgnα)√

α2 + β

2. % T ← T − µIn1. Pentru i = 1 : n

1. fi ← fi − µ

Page 335: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 321

3. % Calculul factorizarii QR a matricei T fara calculul explicit almatricei Q.

1. h1 = g1

2. Pentru i = 1 : n− 1

1. [

[figi

]

, ci, si ] = Gr(

[figi

]

)

2. τ = hi

3. hi = cihi − sifi+1

4. fi+1 = siτ + cifi+1

5. Daca i < n− 1

1. hi+1 = cigi+1

4. % Calculul produsului RQ

1. Pentru i = 1 : n− 1

1. fi = cifi − sihi2. gi = −sifi+1

3. fi+1 = cifi+1

5. % T ← T + µIn

1. Pentru i = 1 : n

1. fi ← fi + µ

Comentarii. Pentru apelul algoritmului de implementare a unui pas QR simetriccu deplasare explicita vom utiliza sintaxa

[ f, g, c, s ] = IT QRsim(f, g).

Matricea de transformare curenta este data de

Q = P12P23 · · ·Pn−1,n, (4.286)

algoritmul furnizand elementele definitorii pentru cele n− 1 rotatii utilizate pentruo eventuala acumulare a transformarilor (care se face numai ın caz de necesitate).In forma de mai sus, executia unui pas QR simetric cu deplasare explicita necesitaun numar Nop ≈ 20n flopi la care se adauga n− 1 extrageri de radical. 3

Exemplul 4.6 Consideram matricea tridiagonala simetrica

T =

1 1 01 2 10 1 1

definita de vectorii f = [ 1 2 1 ]T si g = [ 1 1 ]T si avand valorile proprii exacteλ(T ) = 0, 1, 3 . Iterarea bruta (i.e. fara supravegherea si anularea elementelorneglijabile) a algoritmului IT QRsim conduce la evolutia elementelor vectorilorg si f prezentata ın tabelele 4.7 si 4.8. Se confirma anularea rapida a ultimului

Page 336: metode de calcul numeric matriceal. algoritmi fundamentali

322 CAPITOLUL 4. VALORI SI VECTORI PROPRII

k g(k)1 g

(k)2

0 1.00000000000000 1.000000000000001 0.85065080835204 −0.525731112119132 0.25379174838439 0.067110705175303 0.08564664424607 −0.000006295417174 0.02859558021545 0.000000000000005 0.00953359280112 −0.000000000000006 0.00317792845516 0.000000000000007 0.00105931186244 0...

......

10 0.00003923378367 0...

......

15 0.00000016145590 0...

......

25 0.00000000000273 0

Tabelul 4.7: Date numerice privind evolutia elementelor vectorului g din exemplul4.5.

k f(k)1 f

(k)2 f

(k)3

0 1.00000000000000 2.00000000000000 1.000000000000001 2.61803398874990 1.00000000000000 0.381966011250112 2.96739091997935 1.02821618974253 0.004474718259543 2.99632557546692 1.00367442449350 0.000000000039584 2.99959106278125 1.00040893721875 0.000000000000005 2.99995455427149 1.00004544572851 0.00000000000000...

......

...10 2.99999999923036 1.00000000076964 0.00000000000000...

......

...15 2.99999999999999 1.00000000000001 0.0000000000000016 3.00000000000000 1.00000000000000 0.00000000000000...

......

...25 3.00000000000000 1.00000000000000 0.00000000000000

Tabelul 4.8: Date numerice privind evolutia elementelor vectorului f din exemplul4.5.

Page 337: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 323

element al vectorului g (convergenta cubica!) si evolutia ıntregii matrice T catre ostructura diagonala. 3

La fel ca si ın cazul nesimetric, diminuarea modulului elementelor vectorului gare loc are loc mai rapid la cele doua ”capete” (cel mai rapid ın zona terminala,vezi tabelul 4.7). In cadrul unui algoritm global, iterarea schemei de calcul de maisus se completeaza cu anularea efectiva a elementelor extradiagonale ale matriceicurente T , i.e. ale vectorului g, atunci cand acestea devin inferioare, ın modul, uneitolerante precizate. Prin urmare, pasul QR simetric de mai sus se ajusteaza ladimensiunea curenta a problemei, pe masura ce se pun ın evidenta valorile propriicalculate. O modalitate concreta de gestionare a valorilor proprii calculate va fiprezentata ın cadrul algoritmului QR simetric cu deplasare implicita. Un algoritmde calcul, bazat pe iterarea pasului QR simetric de mai sus, se termina, evident, ınmomentul ın care toate elementele vectorului g au fost declarate nule.

B. Un pas QR simetric cu deplasare implicita

Consideram important sa subliniem de la ınceput faptul ca, spre deosebire de cazulreal nesimetric, aici utilizarea variantei cu deplasare implicita nu aduce un spor deeficienta fata de varianta cu deplasare explicita, astfel ıncat preferinta pentru de-plasarea implicita poate fi justificata numai prin dorinta asigurarii unei omogenitatia tratarii tuturor problemelor de calcul al valorilor proprii ale matricelor reale.

Varianta cu deplasare implicita a algoritmului QR simetric are la baza teorema4.15 conform careia transformarea ortogonala de asemanare definita de un pas QRsimetric cu deplasare explicita pentru o matrice tridiagonala ireductibila (i.e. cutoate elementele subdiagonale nenule)

T ← T ′ = QTTQ (4.287)

este esential determinata, ın sensul observatiei 4.6, de prima coloana a matriceide transformare Q. Similar cazului deplasarii explicite, vom considera matriceaortogonala de transformare Q sub forma secventei de rotatii plane (4.286). IntrucatPj,j+1e1 = e1, j = 2 : n − 1, prima coloana a matricei Q este prima coloana amatricei P12, i.e.

q1 = Qe1 = P12e1 =

c1−s10...0

. (4.288)

La fel ca ın cazul nesimetric, un pas QR simetric cu deplasare implicita va constadin urmatoarele transformari.

1. Se calculeaza prima coloana q1 a matricei de transformare Q dinpasul QR simetric cu deplasare explicita.

2. Se determina rotatia P12 ce satisface (4.288).

3. Se calculeaza matricea T ← PT12TP12 ın care este alterata structura

tridiagonala ın pozitiile (3, 1) si (1, 3) dar se conserva simetria.

Page 338: metode de calcul numeric matriceal. algoritmi fundamentali

324 CAPITOLUL 4. VALORI SI VECTORI PROPRII

4. Se reface structura tridiagonala prin transformari ortogonale deasemanare utilizand o secventa de rotatii plane (o adaptare a algo-ritmului de tridiagonalizare TQ).

In acest fel, se obtine o matrice succesor ortogonal asemenea cu matricea initiala,tridiagonala, simetrica si cu prima coloana a matricei de transformare identica cuprima coloana a matricei de transformare din cadrul pasului QR simetric cu de-plasare explicita. Asa cum am mentionat mai sus, conform teoremei 4.15, dacamatricea T este ireductibila, i.e. vectorul g are toate elementele nenule, atunci ma-tricea succesor T ← T ′ este aceeasi (v. obs. 4.6) cu matricea succesor din cadrulpasului QR cu deplasare explicita.

Pentru a scrie efectiv algoritmul, vom aduce unele precizari privitoare la puncteledin schema de calcul de mai sus.

1. Daca vectorul g are toate elementele nenule, atunci deplasarea µ data derelatia (4.284) nu este valoare proprie a lui T (demonstrati!) si, prin urmare, ma-tricea T −µIn si matricea superior triunghiulara R din (4.281) sunt nesingulare. Inconsecinta, din egalarea primelor coloane ale primei relatii din (4.281), obtinem

q1 =1

r11

t11 − µt210...0

=1

r11

f1 − µg10...0

. (4.289)

Numim, si aici, vectorul

w =

[f1 − µg1

]

∈ IR2 (4.290)

vector de deplasare implicita aferent unui pas simplu QR simetric.

2. Din (4.288) si (4.290) rezulta ca elementele definitorii c1 si s1 ale rotatiei P12

pot fi furnizate de functia Gr (vezi tabelul 4.3) aplicata vectorului w.

3. Se vede imediat ca (PT12TP12)(3, 1) = (PT

12TP12)(1, 3) = −s1g2 6= 0, i.e.aplicarea transformarii ortogonale definite de P12 altereaza structura tridiagonalaa matricei T ın pozitiile mentionate.

4. Pentru refacerea structurii tridiagonale - un invariant al sirului QR simetric- se aplica algoritmul TQ adaptat corespunzator pentru asigurarea unei eficientemaxime. Concret, se utilizeaza o secventa de rotatii care elimina elementele nenuledin afara structurii tridiagonale prin deplasarea lor de-a lungul unor trasee paralelecu diagonala principala conform urmatoarei scheme de calcul.

1. Pentru k = 2 : n− 11. Se calculeaza rotatia Pk,k+1 astfel ıncat (PT

k,k+1T )(k + 1, k − 1) = 0.

2. T ← PTk,k+1T % Se anuleaza elementul (k+1, k−1) si se altereaza

(pentru k < n−1) zeroul din pozitia (k, k+2).3. T ← TPk,k+1 % Se anuleaza automat (datorita simetriei) elemen-

tul (k − 1, k + 1) si se altereaza (pentru k < n−1)zeroul din pozitia (k+2, k).

Page 339: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 325

Pentru exemplificare prezentam evolutia structurala a matricei T ın cazuln=5. La fel ca ın diagramele structurale precedente, si aici semnul ”+” marcheazaelementul nul alterat iar ”∅” elementul anulat la pasul curent. Incadrarile indicaliniile sau coloanele afectate la pasul curent.

T←PT12T =

× × + 0 0× × × 0 0

0 × × × 00 0 × × ×0 0 0 × ×

,

, T←TP12 =

× ×× ×+ ×0 00 0

× 0 0× 0 0× × 0× × ×0 × ×

T←PT23T =

× × × 0 0

× × × + 0∅ × × × 0

0 0 × × ×0 0 0 × ×

, T←TP23 =

××000

× ∅× ×× ×+ ×0 0

0 0× 0× 0× ×× ×

T←PT34T =

× × 0 0 0× × × × 0

0 × × × +0 ∅ × × ×0 0 0 × ×

, T←TP34 =

× ×× ×0 ×0 00 0

0 0× ∅× ×× ×+ ×

00×××

T←PT45T =

× × 0 0 0× × × 0 00 × × × ×0 0 × × ×0 0 ∅ × ×

, T←TP45 =

× × 0× × ×0 × ×0 0 ×0 0 0

0 00 0× ∅× ×× ×

.

Calculul elementelor definitorii ck si sk ale rotatiei Pk,k+1 se face cu proceduraGr (v. tabelul 4.3), iar pentru calculul economic al produselor PT

k,k+1T si TPk,k+1

se renunta la utilizarea procedurilorGrs si Grd pentru a exploata eficient structuratridiagonala si simetria matricei T .

Cu aceste precizari putem prezenta algoritmul de implementare al unui pas QRsimetric cu deplasare Wilkinson implicita.

Algoritmul 4.26 (IT QRsim – Un pas QR simetric cu deplasareWilkinson implicita) (Data o matrice simetrica tridiagonala ireductibilaT ∈ IRn×n prin vectorul f ∈ IRn al elementelor diagonale si vectorulg ∈ IRn−1 al elementelor subdiagonale, algoritmul calculeaza vectoriidefinitorii f si g ai matricei succesor din sirul QR simetric. Toatecalculele se efectueaza pe loc, ın locatiile de memorie ale elementelorvectorilor f si g. Pentru elementul ”ratacitor”, care afecteaza temporarstructura tridiagonala se utilizeaza o variabila scalara locala τ . Algorit-mul furnizeaza, de asemenea, vectorii c si s ale caror elemente definescrotatiile utilizate.)

Page 340: metode de calcul numeric matriceal. algoritmi fundamentali

326 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. % Calculul deplasarii Wilkinson

1. α =fn−1 − fn

2, β = g2n−1, µ = fn −

β

α+ (sgnα)√

α2 + β

2. % Calculul si aplicarea rotatiilor P12 si Pk,k+1, k = 2 : n− 1.

1. Pentru k = 1 : n− 1

1. Daca k = 1 atunci

1. w = [ f1 − µ g1 ]T

2. [w, c1, s1 ] = Gr(w)

altfel

1. [

[gk−1

τ

]

, ck, sk ] = Gr(

[gk−1

τ

]

)

2. µ1 = c2k, µ2 = cksk, µ3 = s2k3. α = 2µ2gk

4. τ1 = µ1fk + µ3f2 − α, τ2 = µ2(fk − fk+1) + (µ1 − µ3)gk

5. fk+1 = µ1fk+1 + µ3fk + α

6. fk = τ1, gk = τ2

7. Daca k < n− 1 atunci

1. τ = −skgk+1 % elementul ”ratacitor”

2. gk+1 = ckgk+1

Comentarii. Avand ın vedere echivalenta performantelor algoritmilor, cu de-plasare explicita si implicita, de implementare a unui pas QR simetric, utilizamaceeasi sintaxa de apel, i.e.

[ f, g, c, s ] = IT QRsim(f, g).

Complexitatea unei iteratii QR simetrice cu deplasare implicita este O(n), pentruexecutia algoritmului 4.26 fiind necesari Nop ≈ 20n flopi, la care se adauga celen − 1 extrageri de radical. Si aici, algoritmul ofera, prin vectorii c si s, informatianecesara pentru o eventuala actualizare a matricei de transformare. 3

Exemplul 4.7 Invitam cititorul sa reia datele de intrare din exemplul precedent sisa itereze pasul QR simetric cu deplasare implicita de mai sus. Va avea satisfactiasa constate ca elementele calculate ale vectorului g coincid ın primele 15 cifre sem-nificative, iar cele ale vectorului f ın primele 14 cifre semnificative cu cele produsede iterarea pasului QR cu deplasare explicita. 3

C. Algoritmul QR simetric pentru matrice reale simetrice

Algoritmul QR simetric se obtine prin iterarea algoritmului 4.26, anularea efectivaa elementelor nediagonale devenite neglijabile si exploatarea structurala a acestoranulari ın vederea obtinerii unei eficiente maxime. Pentru deciziile de anulare efec-tiva a elementelor extradiagonale si monitorizarea evolutiei structurale a matricelor

Page 341: metode de calcul numeric matriceal. algoritmi fundamentali

4.8. ALGORITMUL QR SIMETRIC 327

tridiagonale din sirul QR simetric vom urma ideile folosite la algoritmul QR nesi-metric. Astfel, conditia de anulare a elementelor extradiagonale, i.e. a elementelorvectorului g, este

|gk| ≤ tol(|fk|+ |fk+1|), (4.291)

unde scalarul real tol defineste nivelul de toleranta si are, uzual, un ordin de marimecomparabil cu eroarea de reprezentare din formatul virgula mobila al masinii tinta.De asemenea, pentru gestionarea evolutiei structurale, la fiecare iteratie, dupa anu-larea elementelor vectorului g care satisfac conditia (4.291), se va determina cel maimic ıntreg p si cel mai mare ıntreg q astfel ıncat matricea tridiagonala curenta dinsirul QR simetric sa aiba structura

T =

T11 0 00 T22 00 0 T33

, (4.292)

cu T11 ∈ IRp×p, T22 ∈ IR(n−p−q)×(n−p−q) tridiagonala ireductibila si T33 ∈ IRq×q

diagonala, i.e. g(p+1 : n−q) are toate elementele nenule, iar g(n−q+1 : n−1) = 0.In acest fel, iteratia QR se va aplica de fapt blocului T22

T22 ← T ′22 = QT

22T22Q22, (4.293)

echivalenta cu aplicarea transformarii (4.287) cu

Q = diag(Ip, Q22, Iq). (4.294)

AlgoritmulQR simetric se termina ın momentul ın care se anuleaza toate elementelevectorului g, i.e. q devine n−1. Cu precizarile de mai sus, putem prezenta algoritmulQR simetric.

Algoritmul 4.27 (QRsim– Algoritmul QR simetric cu deplasariWilkinson implicite) (Date o matrice simetrica A ∈ IRn×n, o matriceortogonala Q ∈ IRn×n si un nivel de toleranta tol pentru anularea ele-mentelor extradiagonale, algoritmul calculeaza vectorul f ∈ IRn al valo-rilor proprii ale matricei A si, optional, actualizeaza matricea de trans-formare ortogonala Q. Optiunea se exprima prin intermediul variabileilogice opt care poate lua valorile ’da’ sau ’nu’. Daca nu se doresteacumularea transformarilor, matricea Q se returneaza nemodificata.)

1. % Reducerea la forma tridiagonala1. [ f, g,Q ] =TQ(A,Q)

2. % Faza iterativa

1. p = 0, q = 0

2. Cat timp q < n

1. % Anularea elementelor neglijabilePentru i = p+ 1 : n− q − 1

1. Daca |gi| ≤ tol(|fi|+ |fi+1| atunci gi = 0

Page 342: metode de calcul numeric matriceal. algoritmi fundamentali

328 CAPITOLUL 4. VALORI SI VECTORI PROPRII

2. % Determinarea lui qCat timp gn−q−1 = 0

1. q ← q + 1

3. % Terminarea algoritmuluiDaca q = n− 1 atunci return

4. % Determinarea lui p

1. p = n− q − 1

2. Cat timp gp 6= 01. p← p− 1

5. [f(p+ 1 : n− q), g(p+ 1 : n− q − 1), c, s] ==IT QRsim(f(p+ 1 : n− q), g(p+ 1 : n− q − 1))

6. Daca opt=’da’ atunci

1. Pentru i = 1 : n− p− q1. Q(:, p+ i :p+ i+1) = Grd(Q(:, p+ i :p+ i+1), ci, si)

Comentarii. Sintaxa de apel a algoritmului QR simetric este

[ f,Q ] = QRsim(A,Q, tol, opt).

Algoritmul QR simetric reprezinta cel mai bun instrument numeric de calcul alıntregului spectru al unei matrice simetrice reale. Daca nu se acumuleaza trans-formarile, algoritmul este foarte rapid, numarul de flopi necesar pentru calculultuturor valorilor proprii fiind estimat, ın medie, la Nop = 4n3/3 fara acumula-rea transformarilor si la Nop = 9n3 daca transformarile se acumuleaza. Pen-tru o toleranta de ordinul εM valorile proprii calculate sunt valori proprii ex-acte pentru o matrice simetrica foarte apropiata, algoritmul avand o buna sta-bilitate numerica. Mai mult, spre deosebire de cazul nesimetric, aici se poateafirma ca eroarea absoluta pentru fiecare valoare proprie calculata este mica, i.e.|λi − fi| ≈ tol‖A‖2. Daca se doreste calculul vectorilor proprii, atunci se utilizeazaapelul [ f,Q ] = QRsim(A, In, tol,

′da′). In aceasta situatie xj = Q( : , j) este unvector propriu calculat asociat valorii proprii λj ≈ fj. Acuratetea vectorului propriucalculat este dependenta de separarea valorii proprii asociate de restul spectrului.Algoritmul asigura o foarte buna ortogonalitate a vectorilor proprii calculati. Pen-tru detalii suplimentare asupra stabilitatii numerice a se vedea § 4.11. 3

4.8.3 Algoritmul QR pentru matrice hermitice

Fie C = A + iB cu A,B ∈ IRn×n o matrice hermitica, i.e. CH = C, ceea ceimplica simetria matricei A si antisimetria matricei B. Deci AT = A si BT = −B.Asa cum s-a aratat ın sectiunea 4.1 matricele hermitice au spectrul real si suntunitar diagonalizabile. Pentru calculul valorilor proprii ale unei matrice hermiticecu algoritmul QR, ın practica numerica se ıntalnesc doua abordari.

I. Fie λ ∈ λ(C) si x = u+ iv, cu u, v ∈ IRn, un vector propriu asociat. Atunci

Cx = λx ⇔Au−Bv = λu,Bu+Av = λv,

(4.295)

Page 343: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 329

egalitatile din dreapta scriindu-se compact ın forma

[A −BB A

] [uv

]

= λ

[uv

]

sau

[A −BB A

] [−vu

]

= λ

[−vu

]

. (4.296)

Vectorii

[uv

]

si

[−vu

]

, fiind ortogonali, sunt liniar independenti. In consecinta,

daca λ(C) = λ1, λ2, . . . , λn, atunci matricea simetrica reala Fdef=

[A −BB A

]

are spectrul λ(F ) = λ1, λ1, λ2, λ2, . . . , λn, λn, iar daca w ∈ IR2n este un vectorpropriu al matricei F asociat valorii proprii λk, atunci x = w(1 : n)+ iw(n+1 : 2n)sau y = −w(n + 1 : 2n) + iw(1 : n) este un vector propriu 51 al matricei C asociataceleiasi valori proprii.

Din cele de mai sus rezulta esenta calculatorie a primei abordari care consta ınaplicarea algoritmului QR simetric matricei F . Utilizarea exclusiva a aritmeticiireale face aceasta solutie deosebit de atractiva. Scrierea algoritmului este imediatasi este lasata ın sarcina cititorului.

II. Cea de a doua modalitate de calcul al valorilor proprii ale unei matrice her-mitice utilizata ın practica numerica (de exemplu, ın LAPACK [XV ]) utilizeazao aritmetica ın numere complexe numai ın faza directa a algoritmului QR, i.e.ın faza de reducere la forma tridiagonala. Este posibil ca matricea tridiagonalarezultata sa fie reala astfel ıncat faza iterativa apeleaza exclusiv la o aritmeticareala, procedurile utilizate ın faza iterativa fiind cele descrise ın aceasta sectiune.Posibilitatea obtinerii, prin transformari unitare de asemanare a unei matrice tridi-agonale reale este conditionata de utilizarea unor reflectori complecsi nehermitici(v. cap. 3). Intr-adevar, dat un vector complex x ∈ ICn se poate calcula un astfelde reflector U1 ∈ ICn×n care sa asigure UH

1 x = ρe1 cu ρ un numar real. Notand

cu Ukdef=

[Ik−1 0

0 U1

]

, unde U1 ∈ IC(n−k+1)×(n−k+1) este un reflector de tipul

mentionat, daca U2 este astfel calculat ıncat (UH2 C)(3 : n, 1) = 0, atunci ma-

tricea C ← C1 = UH2 CU2 este hermitica si tridiagonala ın prima linie si prima

coloana. Cum o matrice hermitica are elementele diagonale reale, rezulta ca bloculC1(1 : 2, 1 : 2) este real. Continuand acest proces, ın final matricea

C ← Cn−2 = UHn−1 . . . U

H3 U

H2 CU2U3 . . . Un−1 (4.297)

va fi tridiagonala, simetrica si reala. Scrierea efectiva a algoritmului face obiectulexercitiului 4.58.

4.9 Alte metode de calcul al valorilor propriipentru matrice simetrice

Algoritmul QR simetric ramane un instrument fundamental pentru calculul ıntre-gului spectru al unei matrice simetrice. Totusi, spre deosebire de cazul general,

51 De observat ca y = ix, i.e. vectorii x si y sunt coliniari ın ICn.

Page 344: metode de calcul numeric matriceal. algoritmi fundamentali

330 CAPITOLUL 4. VALORI SI VECTORI PROPRII

nesimetric, ın care algoritmul QR s-a impus definitiv ca fiind fara rival, ın cazulsimetric exista solutii alternative, cu performante comparabile cu cele ale algorit-mului QR. Utilizarea tehnicilor alternative este recomandata mai ales ın situatiiparticulare. Mentionam, ın acest sens, problemele de calcul al unui grup restransde valori proprii sau implementari pe masini cu arhitecturi specifice, e.g. calcula-toarele paralele cu memorie distribuita.

Vom prezenta mai ıntai unele tehnici de calcul al unei valori proprii sau alunui grup redus de valori proprii, cum sunt iterarea catului Rayleigh sau metodabisectiei, iar apoi metodele de tip Jacobi, consacrate calculului ıntregului spectru.Pentru metodele ale caror iteratii conserva structura tridiagonala simetrica, vompresupune parcursa etapa directa, de reducere la forma tridiagonala cu ajutorulalgoritmului TQ. In consecinta, ın aceste situatii, matricea tridiagonala simetricaT ∈ IRn×n se va considera data prin vectorul f ∈ IRn al elementelor diagonale sivectorul g ∈ IRn−1 al elementelor sub- si supradiagonale.

4.9.1 Metoda catului Rayleigh

Asa cum s-a vazut la metoda puterii inverse, de calcul iterativ al unui vector propriu(vezi sectiunea 4.3), fiind cunoscuta aproximatia x 6= 0 a vectorului propriu x asociatvalorii proprii λ a unei matrice T ∈ IRn×n, catul Rayleigh al vectorului x ın raportcu matricea T , definit prin

µ = r(x) =xTT x

xT x, (4.298)

constituie cea mai buna aproximatie, ın sens CMMP, a valorii proprii λ. Aplicandacum un pas al metodei puterii inverse cu deplasarea µ, obtinem o aproximatie si maibuna pentru vectorul propriu asociat lui λ si, pe baza catului Rayleigh din (4.298),o aproximatie superioara pentru ınsusi λ. Altfel spus, adaptand algoritmul 4.2, deimplementare a metodei puterii inverse cu deplasare Rayleigh, la cazul matricelorsimetrice se obtine un mijloc performant de calcul al unei valori proprii (ın general,fara posibilitati de selectie a acesteia) si al unui vector propriu asociat. Invitamcititorul sa faca aceasta adaptare prin exploatarea simetriei ın rezolvarea sistemuluiliniar ce defineste o iteratie a metodei puterii inverse. Precizam ca o prealabilareducere la forma tridiagonala nu se justifica decat daca se urmareste calculul,pe aceasta cale, al mai multor valori si vectori proprii. In [ VI ] se afirma (si sedemonstreaza ıntr-un caz particular) convergenta globala si asimptotic cubica (i.e.extrem de rapida) a algoritmului si se evidentiaza conexiunea cu algoritmul QRsimetric care, ıntr-o forma implicita, uzeaza de aceasta tehnica.

4.9.2 Metoda bisectiei

Metoda bisectiei (sau metoda Givens [ IV ]) este utilizata pentru determinarea uneivalori proprii sau a unui grup relativ redus de valori proprii 52.

Fie matricea tridiagonala simetrica T ∈ IRn×n definita prin vectorul f ∈ IRn

al elementelor diagonale si vectorul g ∈ IRn−1 al elementelor extradiagonale. Pre-

52 Se apreciaza ca metoda poate fi considerata eficienta pentru determinarea a cel mult 40% dinvalorile proprii ale unei matrice.

Page 345: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 331

supunem, de asemenea, ca toate elementele vectorului g sunt nenule 53. In esenta,pentru calculul unei valori proprii, metoda bisectiei consta ın localizarea acesteiaıntr-un interval [α, β ] si reducerea acestui interval, prin ınjumatatire succesiva, cupastrarea valorii proprii ın interval. In acest fel, dupa t ınjumatatiri lungimea inter-

valului devine δ =β − α2t

si, ın consecinta, ıntr-o aritmetica exacta, se poate obtine

orice precizie dorita.Pentru determinarea intervalului initial [α, β ] putem utiliza teorema discurilor

lui Gershgorin, de localizare a ıntregului spectru, conform careia λ(T ) este situatın reuniunea intervalelor

I =n⋃

i=1

λ ∈ IR |λ− fi| ≤ |gi−1|+ |gi|

, (4.299)

unde, pentru simplificarea scrierii, am introdus numerele g0 = 0 si gn = 0. Evident,avem

I ⊆ [α, β ], unde

α = mini ∈ 1 : n

(fi − |gi−1| − |gi|),

β = maxi ∈ 1 : n

(fi + |gi−1|+ |gi|). (4.300)

In continuare, intervalul [α, β ], cu α si β din (4.300), va servi drept initializarepentru orice demers de calcul al valorilor proprii prin metoda bisectiei. Lasand citi-torului sarcina codificarii relatiei (4.300), de calcul a scalarilor α si β, ne marginimsa precizam sintaxa de apel a procedurii respective

[α, β ] = Int(f, g).

Prezentam, ın continuare, cateva rezultate care ne vor permite sa decidem dacao valoare proprie sau un grup de valori proprii se afla sau nu se afla situate ıntr-un

interval dat. Fie T [k] def= T (1 : k, 1 : k) submatricea lider principala de ordinul k a

matricei T definita, evident, de vectorii f [k] def= f(1 : k) si g[k−1] def

= g(1 : k − 1).Definim polinoamele

p0(λ) = 1,

p1(λ) = det(T [1] − λI1) = f1 − λ,pk(λ) = det(T [k] − λIk), k = 2 : n

(4.301)

((−1)kpk(λ) sunt polinoamele caracteristice ale submatricelor T [k]).Pentru k > 2 avem

pk(λ) = det

T [k−1] − λIk−1

0...

gk−1

0 · · · gk−1 fk − λ

=

53 Altfel, problema se sparge ın doua sau mai multe probleme de dimensiune mai mica.

Page 346: metode de calcul numeric matriceal. algoritmi fundamentali

332 CAPITOLUL 4. VALORI SI VECTORI PROPRII

= det

T [k−2] − λIk−2

0 0...

...gk−2 0

0 · · · gk−2

0 · · · 0fk−1− λ gk−1

gk−1 fk − λ

, (4.302)

relatie din care, prin dezvoltare dupa elementele ultimei linii sau ultimei coloane,obtinem

pk(λ) = (fk − λ)pk−1(λ) − g2k−1pk−2(λ). (4.303)

Relatia (4.303), ımpreuna cu initializarile p0(λ) = 1, p1(λ) = f1 − λ din (4.301),permit calculul recurent al polinoamelor pk(λ), k=2:n, si, pentru o valoare fixata µa lui λ, valorile acestor polinoame ın punctul µ. Polinoamele pk(λ), k=0:n, definitemai sus, formeaza asa numitul sir Sturm asociat matricei tridiagonale simetriceireductibile T .

Notam cu λ[k]i , i = 1 : k, valorile proprii ale matricei T [k] (care sunt, simultan,

zerourile polinoamelor pk(λ)) pe care le vom presupune ordonate crescator, i.e. 54

λ[k]1 < λ

[k]2 < . . . < λ

[k]k . (4.304)

Metoda bisectiei are la baza urmatoarele rezultate clasice.

Teorema 4.20 Daca vectorul g are toate elementele nenule, i.e. matricea tridi-agonala, simetrica T , definita de vectorii f si g, este ireductibila, atunci valorileproprii ale matricei T [k−1] separa strict valorile proprii ale matricei T [k], i.e.

λ[k]1 < λ

[k−1]1 < λ

[k]2 < λ

[k−1]2 < . . . < λ

[k]k−1 < λ

[k−1]k−1 < λ

[k]k (4.305)

pentru toti k ∈ 2 : n.

Demonstratie. Conform teoremei 4.5 inegalitatile (4.305) au loc ıntr-o formanestricta. Vom arata ca, ın conditiile teoremei, egalitatile nu pot avea loc. Pre-

supunem, prin absurd, ca exista i astfel ıncat λ[k]i = λ

[k−1]i

def= γ sau λ

[k−1]i =

= λ[k]i+1

def= γ. In ambele cazuri polinoamele pk si pk−1 au pe γ radacina comuna.

Cum toti gj sunt nenuli, din relatiile de recurenta (4.303) rezulta pk(γ) = pk−1(γ) == . . . = p1(γ) = p0(γ) = 0 ceea ce este ın contradictie cu faptul ca p0(γ) = 1. 3

Teorema 4.21 Numarul valorilor proprii ale matricei tridiagonale, simetrice, ire-ductibile T ∈ IRn×n, mai mici decat un numar fixat µ ∈ IR este egal cu numarulν(µ) al schimbarilor de semn din multimea numerica ordonata 55

p(µ) = p0(µ), p1(µ), . . . , pn(µ) , (4.306)

unde pk(λ), k = 0 : n, este sirul Sturm asociat matricei T .

54 O matrice tridiagonala simetrica ireductibila nu are valori proprii multiple (exercitiul 4.63).Evident, daca T este ireductibila, atunci toate submatricele T [k] sunt ireductibile.

55 In cazurile ın care unele din elementele multimii sunt nule (fapt putin probabil ın calculeleefectuate ıntr-o aritmetica aproximativa), convenim ca o pereche ordonata (γ, δ) se consideraschimbare de semn daca γ 6= 0, δ = 0 si nu se considera schimbare de semn daca γ = 0, δ 6= 0.Intr-un astfel de caz ν(µ) este numarul de valori proprii mai mici sau egale cu µ. Doua zerouriconsecutive ın secventa numerica p(µ) nu sunt posibile.

Page 347: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 333

Demonstratie. Vom considera numai cazul generic ın care toti pk(µ) sunt nenuli,lasand ın sarcina cititorului sa analizeze cazurile ın care unele valori pk(µ) suntnule. Pentru demonstratie vom utiliza inductia dupa n. Fie νn(µ) numarul valorilorproprii mai mici decat µ si σn(µ) numarul schimbarilor de semn din sirul (4.306).

Se verifica imediat ca ν1(µ) = σ1(µ). Presupunem ca νk−1(µ) = σk−1(µ)def= l. In

ipoteza ordonarii crescatoare a valorilor proprii ale submatricelor T [k] rezulta ca µ

este situat ın intervalul deschis (λ[k−1]l , λ

[k−1]l+1 ). Acum, datorita separarii stricte a

valorilor proprii ale submatricei T [k] de catre valorile proprii ale lui T [k−1] (teorema4.20), sunt posibile urmatoarele doua situatii

a) µ ∈ (λ[k]l , λ

[k]l+1) sau b) µ ∈ (λ

[k]l+1, λ

[k]l+2). (4.307)

In cazul a) avem νk(µ) = l, iar ın cazul b), evident, νk(µ) = l + 1. Ramane saaratam ca ın cazul a) perechea (pk−1(µ), pk(µ)) nu este schimbare de semn, iar ıncazul b) este schimbare de semn. Conform (4.301) putem scrie

pk−1(µ) =

k−1∏

i=1

(λ[k−1]i − µ), pk(µ) =

k∏

i=1

(λ[k]i − µ). (4.308)

Avand ın vedere situarea lui µ ın raport cu valorile proprii ale celor doua submatrice,

este evident faptul ca sgn(λ[k−1]i − µ) = sgn(λ

[k]i − µ) pentru i = 1 : l precum si

faptul ca sgn(λ[k−1]i − µ) = sgn(λ

[k]i+1 − µ) pentru i = l+ 1 : k − 1. Rezulta

sgn(pk(µ)) = sgn(pk−1(µ)) sgn(λl+1 − µ), (4.309)

de unde obtinem, evident, situatia necesara a semnelor ın cazurile a) si b). Inductiaeste completa. 3

Exemplul 4.8 Consideram matricea tridiagonala T , de ordinul 3, din exemplelenumerice 4.6 si 4.7, definita de vectorii f = [ 1 2 1 ]T si f = [ 1 1 ]T . Spectrulmatricei T este λ(T ) = 0, 1, 3 , iar sirul Sturm asociat

p0(λ) = 1, p1(λ) = −λ+ 1, p2(λ) = λ2 − 3λ+ 1, p3(λ) = −λ3 + 4λ2 − 3λ.

Valorile proprii ale submatricelor lider principale sunt λ(T [1]) = 1 si λ(T [2]) =

=

3−√5

2,

3 +√5

2

, verificandu-se imediat sirurile de inegalitati din (4.305).

Avem, de asemenea,

p(1) = 1, 0, −1, 0 , p(2) = 1, −1, 2, 1 ,

i.e. fiecare din multimile p(1) si p(2) are cate doua schimbari de semn care corespundcu numerele de valori proprii ale matricei T mai mici sau egale cu 1, respectiv maimici decat 2. 3

Utilizarea teoremei 4.21 ridica probleme dificile ın practica [X ] datorita frecven-telor depasiri inferioare si superioare ın format virgula mobila de catre valorile pk(µ)pentru k apropiati de n, chiar pentru un ordin n modest. Acest fenomen apare mai

Page 348: metode de calcul numeric matriceal. algoritmi fundamentali

334 CAPITOLUL 4. VALORI SI VECTORI PROPRII

ales cand matricea are valori proprii apropiate si nu poate fi evitat printr-o scalareprealabila a matricei T initiale.

Pentru depasirea acestor dificultati, ın [ X ] se recomanda utilizarea multimiinumerice

q(µ) = q1(µ), q1(µ), . . . , qn(µ) , unde qi(µ) =pi(µ)

pi−1(µ), i = 1 : n, (4.310)

ale carei elemente pot fi calculate cu relatia recurenta

qi(µ) = fk − µ−g2i−1

qi−1(µ), i = 2 : n, q1(µ) = f1 − µ. (4.311)

Pentru situatiile ın care qk−1 = 0 (sau, ın general, cand apar depasiri inferioare) serecomanda calculul lui qk(µ) cu formula

qi(µ) = fi − µ−|gi−1|εM

, (4.312)

unde εM este epsilon masina al calculatorului utilizat.Evident, numarul de schimbari de semn al multimii p(µ) din (4.306) si, simultan,

numarul ν(µ) al valorilor proprii ale matricei T mai mici decat µ, este egal cunumarul de elemente negative al multimii q(µ). Mai mult, numarul ν[α,β] al valorilorproprii ale matricei T situate ın intervalul [α, β ], este dat de relatia

ν[α,β] = ν(β) − ν(α). (4.313)

Calculul lui ν(µ) pentru un numar µ dat se face cu urmatoarea procedura.

ν(µ) 1. ν = 0

2. q = f1 − µ3. Daca q < 0 atunci ν = 14. Pentru i = 2 : n

1. Daca |q| > εM atunci q ← fi − µ−g2i−1

q

altfel q ← fi − µ−|gi−1|εM

2. Daca q < 0 atunci ν ← ν + 1

In continuare, vom utiliza procedura de mai sus cu sintaxa de apel

ν = ν(f, g, µ).

Vom considera acum problema determinarii unei singure valori proprii, maiprecis a valorii proprii λk, k ∈ 1 : n, din spectrul matricei T , presupus ordonatcrescator, respectiv

λ1 < λ2 < . . . < λk < . . . < λn, (4.314)

unde egalitatile nu sunt posibile ıntrucat T este ireductibila (vezi exercitiul 4.63).Metoda bisectiei pentru calculul valorii proprii λk poate fi rezumata prin urmatoareaschema de calcul.

Page 349: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 335

BISECT k 1. [α, β ] = Int(f, g)2. Cat timp β − α > tol

1. γ =α+ β

22. ν = ν(f, g, γ)3. Daca ν < k atunci α← γ

altfel β ← γ3. λk = γ

Este usor de verificat faptul ca aceasta procedura evalueaza corect, ın limitele fixatede toleranta tol, valoarea proprie λk din (4.314).

Pentru localizarea si calculul unui grup contiguu de valori proprii ale matriceiT din secventa (4.314), fie acesta λk1

, λk1+1, . . . , λk2, k2 ≥ k1, se aplica, ın esenta,

de k2 − k1 + 1 ori procedura de mai sus, cu unele amendamente care conduc laobtinerea unui spor de eficienta. Aceste amendamente urmaresc exploatarea inten-siva a informatiei obtinute ın procesul iterativ de localizare a valorii proprii curentepentru reducerea intervalelor de separare a valorilor proprii care se calculeaza ulte-rior. Concret, vom realiza o actualizare, la fiecare iteratie, a extremitatilor inferioareale intervalelor de localizare a valorilor proprii λi, i = k1 : k2. Pentru aceasta ob-servam ca valoarea ν calculata la instructiunea 2.2 a procedurii de mai sus, permiteaprecierea ca, la iteratia curenta de evaluare a valorii proprii λk, un numar de k− νvalori proprii se gasesc ın intervalul [ γ, λk ]. Prin urmare, daca ν < k1 atunci ınintervalul [ γ, λk ] se gasesc valorile proprii λi, i = k1 : k− 1, iar daca ν ≥ k1 atunciın acest interval se afla valorile proprii λi, i = ν +1 : k− 1. Utilizarea informatiilorde mai sus presupune:

– calculul valorilor proprii ın ordine inversa, i.e. ın ordinea k = k2 : −1 : k1;– introducerea unui vector σ ∈ IRk2−k1+1, al extremitatilor stangi ale inter-

valelor de localizare, ale carui elemente vor fi actualizate, la fiecare iteratie, pe bazaobservatiilor de mai sus.

Utilizand, pentru elementele vectorului σ, o indexare conforma cu cea a valorilorproprii (i.e. σk, k = k1 : k2, este extremitatea stanga a intervalului de localizare avalorii proprii λk), la o iteratie curenta de calcul al lui λk, actualizarea consta ınatribuirile

σi = γ pentru i =

k1 : k − 1, daca ν < k1ν + 1 : k − 1, daca ν ≥ k1. (4.315)

Prezentam direct algoritmul care implementeaza ideile de mai sus.

Algoritmul 4.28 (BISECT – Calculul unui grup de valori propriiprin metoda bisectiei) (Dati vectorii f ∈ IRn si g ∈ IRn−1 care de-finesc matricea tridiagonala, simetrica, ireductibila T ∈ IRn×n precumsi ıntregii k1 < k2 ≤ n si toleranta tol, algoritmul calculeaza valorileproprii λk, k ∈ k1 : k2.)

1. [α, β ] = Int(f, g)

2. % Initializarea vectorului extremitatilor stangi ale intervalelor deseparare si a extremitatii din dreapta pentru λk2

.

Page 350: metode de calcul numeric matriceal. algoritmi fundamentali

336 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. Pentru i = k1 : k21. σi ← α

2. λk2← β

3. % Calculul iterativ al grupului impus de valori proprii

1. Pentru k = k2 : −1 : k1% Calculul valorii proprii curente λk si actualizarea intervalelorde localizare pentru valorile proprii λj , j = k − 1 : −1 : k11. α← σk2. Cat timp β − α > tol

1. γ =α+ β

22. ν = ν(f, g, γ)

3. Daca ν < k atunci

1. α← γ2. Daca ν < k1 si k > k1 atunci

1. Pentru i = k1 : k − 11. σi = γ

altfel

1. Pentru i = ν + 1 : k − 11. σi = γ

altfel β ← γ

3. λk = γ

4. β ← γ

Comentarii. O sintaxa de utilizare naturala a algoritmului este

λ = BISECT(f, g, k1, k2, tol),

unde λ este vectorul valorilor proprii calculate. Desi este dificil de stabilit o com-plexitate corecta a algoritmului datorita, ın primul rand, caracterului sau iterativ,practica a aratat ca algoritmul BISECT, ın varianta prezentata, este sensibil mairapid decat aplicarea repetata a aceleiasi metode pentru fiecare valoare proprie in-dividuala, mai ales atunci cand exista valori proprii multiple sau apropiate. In [ X ]se afirma ca algoritmul poate fi utilizat si pentru calculul valorilor proprii ale uneimatrice tridiagonale nesimetrice T daca elementele nediagonale satisfac conditiati,i+1ti+1,i > 0. In acest scop se utilizeaza datele de intrare fi = tii, i = 1 : n, sigi =

√ti,i+1ti+1,i, i = 1 : n− 1.

Acuratetea rezultatelor este considerata a fi foarte buna, calculul ıntr-un formatvirgula mobila cu baza de numeratie β si un numar t de cifre al mantisei, conducandla un nivel al erorilor absolute de ordinul β−t max(|λmin|, |λmax|), nivel care nu poatefi redus prin cresterea numarului de iteratii [ X ]. 3

4.9.3 Metode Jacobi

Metodele tip Jacobi, de calcul al valorilor proprii ale unei matrice simetrice, suntinferioare din punctul de vedere al eficientei, apreciate prin numarul necesar de

Page 351: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 337

operatii ın format virgula mobila, algoritmului QR simetric. Reınvierea interesuluipentru metodele Jacobi se datoreaza modificarii contextului arhitectural al echipa-mentelor de calcul de ınalta performanta actuale, mai precis dezvoltarii calcula-toarelor paralele. Eficienta unui algoritm paralel se evalueaza pe principii diferite,avandu-se ın vedere efectuarea calculelor simultan de mai multe procesoare. Inacest context, metodele Jacobi devin competitive datorita faptului ca au o structuragranulara, bogata ın actiuni de calcul practic independente, care pot fi executate,ın acelasi timp, de procesoare diferite. Desi prezentarea unor algoritmi paraleli nuface obiectul acestei lucrari, am considerat oportun sa introducem metodele Jacobi,ın variantele lor secventiale, ca punct de plecare, de altfel uzual, pentru dezvoltareavariantelor paralele.

Fie A ∈ IRn×n o matrice simetrica, DA = diag( a11, a22, . . . , ann ) si B = A−DA

matricea elementelor sale extradiagonale. Precizam ca transformarile din cadrulmetodelor Jacobi nu conserva structura tridiagonala astfel ca etapa de reducere laaceasta structura nu este necesara.

In esenta, metodele Jacobi construiesc, iterativ, un sir de matrice, ortogonalasemenea cu matricea initiala, pe baza relatiei de recurenta

Ak+1 = JTk AkJk, , k = 1, 2, . . . , A1 = A, (4.316)

unde Jk sunt rotatii plane, numite, ın acest context, transformari Jacobi, astfelcalculate ıncat sa minimizeze norma Frobenius a matricei curente Bk a elementelorextradiagonale. Acest sir este convergent, ın general mai lent decat sirul QR, catreforma diagonala, care pune ın evidenta valorile proprii ale matricei initiale. Calcululvectorilor proprii este posibil prin acumularea transformarilor.

Pentru simplificarea notatiilor si pentru a evidentia faptul ca toate calculele seefectueaza pe loc, ın locatiile de memorie ale tabloului A, introducem notatiile

Adef= Ak, A′ def

= Ak+1, Bdef= Bk+1 = Ak+1 − diag(Ak+1), J

def= Jk

si

A← B′ def= Bk+1.

In vederea determinarii rotatiei plane J optimale, reamintim parametrii definitoriiai acesteia

J(p, q, θ) =

1. . .

c s. . .

−s c. . .

1

p q

p

q, p < q, c = cos θ, s = sin θ,

(4.317)toate elementele extradiagonale nemarcate ale matricei J fiind nule. Pentru para-metrii p si q fixati, unghiul de rotatie θ optimal este cel care minimizeaza norma

Page 352: metode de calcul numeric matriceal. algoritmi fundamentali

338 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Frobenius a matricei B. Se poate arata (v. exercitiul 4.64) ca valoarea optimalaa lui θ este situata ın intervalul [−π

4 ,π4 ) si asigura anularea elementului aqp si,

simultan, datorita simetriei, a elementului apq. In consecinta, parametrii c si s potfi determinati din aceasta conditie, respectiv, din conditia ca matricea

D =

[d11 d12d21 d22

]

def=

[c s−s c

]T [app apqaqp aqq

] [c s−s c

]

(4.318)

sa fie diagonala. Prin calcul direct obtinem

d11 = appc2 − 2aqpcs+ aqqs

2

d12 = (app − aqq)cs+ apq(c2 − s2) = d21

d22 = apps2 + 2aqpcs+ aqqc

2.(4.319)

Daca apq 6= 0 (altfel J = In), atunci impunand d12 = d21 = 0, din (4.319) rezulta

c2 − s2cs

=aqq − appaqp

. (4.320)

Introducand, acum, notatiile

t =s

c= tgθ, τ =

aqq − app2aqp

, (4.321)

relatia (4.320) se scrie sub forma unei ecuatii de gradul 2 ın t

t2 + 2τt− 1 = 0. (4.322)

Radacina t a acestei ecuatii care corespunde valorilor optimale ale parametrilor c sis trebuie sa asigure satisfacerea conditiei |θ| < π

4 , i.e. |t| < 1. Prin urmare, valorileoptimale ale lui t, c si s se calculeaza cu relatiile

t =sgnτ

|τ |+√1 + τ2

, c =1√

1 + t2, s = ct. (4.323)

Dupa determinarea valorilor optimale ale parametrilor c si s, calculul produsuluiA← JTAJ se poate face economic tinand seama de simetria rezultatului. Evident,ın acest produs vor fi afectate numai liniile si coloanele p si q. La fel ca la algoritmulQR simetric, vom presupune ca matricea A este memorata numai prin triunghiulei inferior. In acest fel elementele afectate sunt cele evidentiate ın figura 4.9.3, iarrelatiile de calcul sunt deja familiare cititorului care a parcurs capitolul 3. Pentruo redactare mai concisa si mai clara a algoritmilor de implementare a metodelorJacobi vom scrie un algoritm pentru implementarea unui pas descris mai sus.

Algoritmul 4.29 (IT J– Iteratie Jacobi) (Date matricea simetricaA ∈ IRn×n, prin triunghiul sau inferior, precum si ıntregii 1 ≤ p << q ≤ n, algoritmul calculeaza parametrii optimali c, s ai rotatiei Jacobisi suprascrie triunghiul inferior al matricei A cu triunghiul inferior almatricei succesor A′ = JTAJ .)

Page 353: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 339

@@@@@@@@

ssp

q

p q

0

O

Fig. 4.3: Elementele afectate de un pas al metodelor de tip Jacobi.

1. Daca aqp = 0 atunci

1. c = 1, s = 0

2. Return

2. % Determinarea parametrilor rotatiei Jacobi

1. τ =aqq − app

2aqp

2. t =sgnτ

|τ |+√1 + τ2

3. c =1√

1 + t2, s = ct

3. % Calculul A← JTAJ numai ın triunghiul inferior

1. ρ = appc2 − 2aqpcs+ aqqs

2

2. aqq ← apps2 + 2aqpcs+ aqqc

2

3. app ← ρ, aqp ← 0

4. Daca p > 1 atunci

1. Pentru j = 1 : p− 1

1. ρ = capj − saqj2. aqj ← sapj + caqj

3. apj ← ρ

5. Daca p < q − 1 atunci

1. Pentru j = p+ 1 : q − 1

1. ρ = sajp + caqj

2. ajp ← cajp − saqj3. aqj ← ρ.

6. Daca q < n atunci

1. Pentru i = q + 1 : n

1. ρ = caip − saiq2. aiq ← saip + caiq

3. aip ← ρ

Page 354: metode de calcul numeric matriceal. algoritmi fundamentali

340 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Comentarii. Sintaxa de apel a algoritmului IT J va fi

[A, c, s ] = IT J(A, p, q),

iar complexitatea sa este O(n), fiind necesari numai Nop ≈ 6n flopi. 3

Parametrii p, q ai transformarii Jacobi ce defineste iteratia curenta se pot deter-mina aplicand strategii diverse. Oricare ar fi strategia aplicata, un element anulatla o iteratie poate deveni nenul la iteratiile ulterioare (acesta este cazul obisnuit),astfel ca, asa cum era de asteptat, procesul de diagonalizare este, teoretic, infinit.Criteriile practice de terminare se refera la situatiile ın care toate elementele extra-diagonale devin, ın valoare absoluta, neglijabile. Dintre criteriile uzuale de aprecierea acestui fapt amintim

n maxi,j∈1:ni6=j

|aij | < tol, (4.324)

sau

‖A− diag(A)‖F < tol‖A‖F , (4.325)

unde scalarul pozitiv tol exprima nivelul de toleranta acceptat, si are, ın modobisnuit, valori de ordinul de marime al erorilor de reprezentare ın formatul vir-gula mobila folosit.

Prezentam ın continuare doua strategii de alegere a parametrilor p si q, cares-au impus ın practica numerica, si algoritmii de calcul corespunzatori.

Metoda Jacobi clasica

In asa numita metoda Jacobi clasica, parametrii p, q se determina astfel ıncat apq safie elementul extradiagonal de modul maxim al matricei curente. Intuitiv, o astfelde alegere ar trebui sa asigure o viteza de convergenta superioara, ceea ce nu esteıntotdeauna adevarat. Algoritmul corespunzator, cu criteriul de terminare de tipul(4.324), arata astfel.

Algoritmul 4.30 (J clasic – Diagonalizare iterativa a unei ma-trice simetrice prin metoda Jacobi clasica) (Date matricea simetricaA ∈ IRn×n, prin triunghiul sau inferior, matricea ortogonala Q ∈ IRn×n

si toleranta tol < 1, algoritmul calculeaza valorile proprii ale matri-cei A prin diagonalizarea iterativa cu rotatii Jacobi care anuleaza, lapasul curent, elementul extradiagonal de modul maxim. Acumulareatransformarilor Jacobi se efectueaza optional. Optiunea se exprima prinintermediul unei variabile logice opt care poate lua valorile ’da’ sau’nu’. Daca opt = ′nu′, matricea Q ramane nemodificata.)

1. µ = 1

2. Cat timp nµ > tol

1. µ = 0

2. Pentru i = 2 : n

1. Pentru j = 1 : i− 1

Page 355: metode de calcul numeric matriceal. algoritmi fundamentali

4.9. METODE ALTERNATIVE 341

1. Daca |aij | > µ atunci

1. µ = |aij |2. p← j3. q ← i

3. [A, c, s ] = IT J(A, q, p)

4. Daca opt = ′da′ atunci

1. Pentru i = 1 : n

1. ρ = cqip − sqiq2. qiq ← sqip + cqiq

3. qip ← ρ.

Comentarii. Sintaxa de apel a algoritmului J clasic va fi

[A,Q ] = J clasic(A,Q, tol, opt),

iar complexitatea sa, pentru n relativ mari poate fi apreciata statistic la O(n3) sila O(n4) pentru n relativ reduse. 3

Metoda Jacobi ciclica

Dezavantajul principal al metodei Jacobi clasice consta ın necesitatea cautarii, lafiecare iteratie, a elementului extradiagonal de modul maxim, o operatie de com-plexitate O(n2) comparatii, ın timp ce complexitatea de calcul a unei iteratii estede numai O(n). De aceea, pentru a se asigura o eficienta sporita, metoda Jacobi ci-clica evita efectuarea comparatiilor prin anularea elementelor extradiagonale ıntr-oordine predeterminata. Avand ın vedere ca elementele anulate pot deveni nenuleıntr-o faza ulterioara a aceleiasi iteratii sau ıntr-o iteratie ulterioara, anularile sereiau, ciclic, pana la satisfacerea criteriului de oprire a iteratiilor.

Presupunand ca operam exclusiv ın triunghiul inferior al matricei A si efectuamanularile pe linii, ın ordinea naturala, i.e. ın cadrul unui ciclu, ın ordinea (2,1),(3,1), (3,2), . . . (n, 1), . . . (n, n− 1), obtinem urmatorul algoritm.

Algoritmul 4.31 (J ciclic – Diagonalizare iterativa a unei matricesimetrice prin metoda Jacobi ciclica) (Date matricea simetrica A ∈∈ IRn×n, prin triunghiul sau inferior, matricea ortogonala Q ∈ IRn×n sitoleranta tol < 1, algoritmul calculeaza valorile proprii ale matricei Aprin diagonalizarea iterativa cu rotatii Jacobi care anuleaza elementeleextradiagonale ciclic, pe linii. Acumularea transformarilor se realizeazaoptional, pe baza optiunii exprimate prin intermediul unei variabile logi-ce opt, care poate lua valorile ’da’ sau ’nu’. Daca opt = ′nu′, matriceaQ ramane nemodificata.)

1. σ =∑n

i=2

∑i−1j=1 a

2ij

2. νA =√

2σ +∑n

i=1 a2ii, νE =

√2σ

3. Cat timp νE > tol ∗ νA1. Pentru q = 2 : n

Page 356: metode de calcul numeric matriceal. algoritmi fundamentali

342 CAPITOLUL 4. VALORI SI VECTORI PROPRII

1. Pentru p = 1 : q − 1

1. [A, c, s ] = IT J(A, p, q)

2. Daca opt = ′da′ atunci

1. Pentru i = 1 : n1. ρ = cqip − sqiq2. qiq ← sqip + cqiq3. qip ← ρ

3. νE =√

2∑n

i=2

∑i−1j=1 a

2ij

Comentarii. Sintaxa de apel a algoritmului J ciclic va fi

[A,Q ] = J ciclic(A,Q, tol, opt),

iar complexitatea sa poate fi apreciata, statistic, la O(n3) daca n este relativ mare.Pentru a mari eficienta, exista versiuni ”cu prag” ale algoritmului J ciclic (v. [ IV ])la care anularea elementelor extradiagonale are efectiv loc numai daca modulul loreste superior unui anumit prag. O reducere progresiva a pragului pe parcursulprocesului iterativ asigura conservarea si chiar o ımbunatatire a proprietatilor deconvergenta. 3

Calculul vectorilor proprii prin intermediul metodelor tip Jacobi se realizeaza,ın esenta, prin acumularea transformarilor. Concret, coloanele matricei de transfor-mare Q obtinute ın urma apelului [A,Q ] = J clasic(A, In,

′da′) sau, respectiv, alapelului [A,Q ] = J ciclic(A, In,

′da′), sunt vectorii proprii ai matricei A initiale,mai precis coloana Q(:, j) este vector propriu asociat valorii proprii ajj din formafinala a matricei A.

Analiza proprietatilor de convergenta [ IV ] a metodei clasice Jacobi a condusla concluzia ca ın faza initiala convergenta poate fi considerata ca liniara, dar pemasura ce numarul iteratiilor creste si elementele extradiagonale scad ın modul,convergenta devine patratica. Metoda Jacobi ciclica are o convergenta patratica.

Desi viteza de convergenta a metodelor tip Jacobi este inferioara celorlaltemetode de calcul al valorilor proprii ale matricelor simetrice (a se vedea convergentaasimptotic cubica a algoritmului QR simetric sau a metodei bisectiei) totusi, pen-tru matrice de dimensiuni mai modeste aceste metode se pot dovedi, datorita sim-plitatii lor, atractive. Metodele Jacobi reprezinta ınsa o alternativa viabila la imple-mentarea pe echipamentele de calcul paralel, unde un grad superior de paralelismpoate compensa viteza mai redusa de convergenta.

4.10 Conditionarea valorilor si vectorilor proprii

Precizia rezultatelor unui calcul cu datele initiale afectate de erori, cum sunt erorilede reprezentare ın format virgula mobila, este esential influentata de sensibilitateaacestor rezultate la variatii ın datele initiale sau, altfel spus, de conditionarea pro-blemei respective (vezi cap. 0). Aprecierea conditionarii se face ın ipoteza unorcalcule exacte, deci este independenta de modul efectiv de calcul. In continuare

Page 357: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 343

ne propunem sa abordam cateva aspecte ale problemei sensibilitatii valorilor sivectorilor proprii la perturbatii ale elementelor matricei.

Aprecierea conditionarii se face, de obicei, prin stabilirea unor margini superioarepentru variatiile valorilor si vectorilor proprii ın raport cu variatiile elementelormatricei date. Chiar daca aceste margini sunt, de cele mai multe ori, supraevaluate,ele ofera o imagine foarte utila asupra unor situatii critice, ın care erorile rezultatelories de sub control. Stabilirea evaluarilor privind sensibilitatea valorilor si vectorilorproprii se bazeaza pe proprietatile de continuitate ale acestora ın raport cu variatiileelementelor matricei. Intrucat aceste proprietati capata un aspect complicat ıncazul valorilor proprii multiple, ne vom margini demersul teoretic ın principal asupramatricelor cu valori proprii distincte, atragand de la ınceput atentia asupra faptuluica valorile proprii multiple sunt semnificativ mai rau conditionate decat cele simple.De asemenea, vom trata distinct cazul matricelor hermitice (ın cazul real, simetrice)care prezinta calitati cu totul remarcabile din acest punct de vedere.

Proprietatile de netezime ale dependentelor valorilor proprii simple si ale vecto-rilor proprii asociati se pot exprima ın felul urmator [ IV ]. Fie matricea A ∈ ICn×n

si o matrice de perturbatie E = ǫG, cu ǫ ∈ IR si G ∈ ICn×n avand ‖G‖ = 1, ar-bitrara dar fixata 56. Daca λ ∈ λ(A) este o valoare proprie simpla si x ∈ ICn unvector propriu asociat, de norma euclidiana unitara (i.e. ‖x‖ = 1), atunci exista ovaloare proprie λ(ǫ) ∈ λ(A+ E) a matricei perturbate F = A+E = A+ ǫG cu unvector propriu asociat x(ǫ) (de asemenea de norma euclidiana unitara) care admiturmatoarele dezvoltari ın serii de puteri ın raport cu ǫ:

λ(ǫ) = λ+ α1ǫ+ α2ǫ2 + . . . ,

x(ǫ) = x+ z1ǫ + z2ǫ2 + . . . ,

(4.326)

convergente ıntr-o vecinatate a punctului ǫ = 0. Evident, avem λ(0) = λ, x(0) = x,iar λ(ǫ) si x(ǫ) sunt functii continue si derivabile ın domeniul de convegenta, ınparticular limǫ→0 λ(ǫ) = λ si limǫ→0 x(ǫ) = x. Intrucat, ın general, ın dezvoltarilede mai sus, α1 6= 0 si z1 6= 0, o prima evaluare a dependentei valorilor proprii simplesi a vectorilor proprii asociati de perturbatiile din elementele matricei este data de

|λ(ǫ)− λ| = O(ǫ),‖x(ǫ)− x‖ = O(ǫ),

(4.327)

utila ın aprecierea conditionarii ın cazul practic al perturbatiilor ”mici”, i.e. alcelor pentru care ǫ2 este ”neglijabil” ın raport cu ǫ. Evaluarile calitative (4.327) sepot aprecia cantitativ prin |α1| si, respectiv, prin ‖z1‖ (sau margini superioare aleacestora), care pot servi drept numere de conditionare pentru valoarea proprie λ sivectorul propriu asociat x.

4.10.1 Conditionarea valorilor si vectorilor propriipentru matrice generale (nehermitice)

A. Conditionarea valorilor proprii

Fie A ∈ ICn×n, λ ∈ λ(A) o valoare proprie simpla a matricei A si x, y ∈ ICn vectoriproprii la dreapta, respectiv la stanga, de norma euclidiana unitara, asociati valorii

56 Daca nu se mentioneaza altfel, norma matriceala ‖ · ‖ este norma spectrala, i.e. ‖ · ‖2.

Page 358: metode de calcul numeric matriceal. algoritmi fundamentali

344 CAPITOLUL 4. VALORI SI VECTORI PROPRII

proprii λ, i.e. avem Ax = λx si, respectiv, yHA = λyH . Consideram, ca maisus, matricea perturbata F = A + E, cu E = ǫG, si λ(ǫ), x(ǫ) definite ın (4.326).Derivand, ın raport cu ǫ, relatia de definitie

(A+ ǫG)x(ǫ) = λ(ǫ)x(ǫ) (4.328)

si facand ǫ = 0 obtinem

Gx+Az1 = α1x+ λz1, unde α1 =dλ(ǫ)

∣∣∣∣ǫ=0

, z1 =dx(ǫ)

∣∣∣∣ǫ=0

. (4.329)

Dar, ıntrucat λ este o valoare proprie simpla, avem yHx 6= 0 (v. exercitiul 4.9).Prin urmare, ınmultind relatia (4.329) la stanga cu yH , obtinem

yHGx+ yHAz1 = α1yHx+ λyHz1,

de unde rezulta

|α1| =|yHGx||yHx| ≤

‖y‖ · ‖G‖ · ‖x‖|yHx| =

1

|yHx| . (4.330)

Numarul

κλdef=

1

|yHx| = maxG ∈ ICn×n

‖G‖ = 1

|α1| (4.331)

(maximul fiind atins pentru G = xyH) defineste sensibilitatea sau numarul deconditionare al valorii proprii simple λ. In literatura de specialitate (v. [ IV ],[ VI ], [ XV ] ) se utilizeaza ınsa curent inversul numarului de conditionare, i.e. asanumitul ”parametru s” definit de

sλdef= |yHx|. (4.332)

Evident, cu cat κλ este mai mare (sλ este mai mic) conditionarea valorii propriisimple este mai rea, erorile din datele initiale putand fi amplificate de pana la κλori. Din punct de vedere geometric, ın cazul real numarul sλ reprezinta cosinusulunghiului ascutit dintre directiile vectorilor proprii la stanga si la dreapta asociativalorii proprii simple λ. Cazul cel mai favorabil apare atunci cand vectorii propriila stanga si la dreapta sunt aceiasi (e.g. matricele normale au toate valorile propriiperfect conditionate, v. teorema 4.1).

Este evident faptul ca sensibilitatea unei valori proprii, definita de parametruls sau de conditionarea κ, se refera la erorile absolute introduse de perturbatiilenumerice ın datele initiale. Prin urmare, erorile relative vor fi cu atat mai mari cucat valorile proprii sunt mai mici ın modul.

Fie Q ∈ ICn×n o matrice unitara oarecare, B = QHAQ si λ ∈ λ(A) = λ(B). Dacax si y sunt vectori proprii la dreapta si, respectiv, la stanga, de norma unitara, aimatricei A, asociati valorii proprii λ, atunci x = QHx si, respectiv, y = QHy suntvectori proprii de norma unitara ai matricei B, asociati aceleiasi valori proprii. Se

Page 359: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 345

constata imediat ca sλ = |yH x| = |yHx| = sλ, i.e. numerele de conditionare alevalorilor proprii simple sunt invariante la transformari unitare de asemanare.

Exemplul 4.9 Fie A =

[λ1 β0 λ2

]

∈ IR2×2, cu λ1 6= λ2. Atunci este usor de

constatat ca

sλ1= sλ2

=|λ1 − λ2|

β2 + (λ1 − λ2)2,

respectiv,

κλ1= κλ2

=

1 +β2

(λ1 − λ2)2.

Daca |β| ≫ |λ1 − λ2|, atunci κλ1= κλ2

≈ |β||λ1 − λ2|

.

In cazul numeric A =

[0.1 1000 0.2

]

, avem κλ1= κλ2

≈ 103. Valorile proprii ale

matricei perturbate F = A+ ǫG =

[0.1 10010−6 0.2

]

, unde ǫ = 10−6 si G =

[0 01 0

]

(cu ‖G‖ = 1), sunt λ1 = 0.0990098 si λ2 = 0.2009902, i.e. o perturbare cu numai10−6 a unui singur element al matricei initiale are ca efect modificari de ordinul a10−3 ale celor doua valori proprii, deci de aproximativ κ ≈ 1000 mai mari.

Expresia de mai sus a numerelor de conditionare sugereaza o justificare a faptu-lui, afirmat deja, ca valorile proprii multiple au o conditionare mai rea decat valorileproprii simple. 3

Atragem atentia asupra faptului ca, desi exemplul de mai sus arata ca sensibili-tatea unei valori proprii poate fi influentata decisiv de ”distanta” de la ea pana larestul spectrului, exista situatii de valori proprii ”bine separate” de restul spectruluisi, ın acelasi timp, foarte rau conditionate. Exemple celebre ın acest sens fac obiectulexercitiilor 4.69 si 4.70.

Numerele κλi(sau sλi

) definesc conditionarea valorilor proprii λi ale unei matriceın raport cu variatii mici dar arbitrare ale tuturor elementelor matricei, i.e. ın raportcu perturbatii nestructurate. Desigur, putem sa formulam problema conditionariivalorilor proprii ın raport cu variatia unui anumit element (v. exercitiul 4.68) sau cuvariatiile elementelor dintr-un grup precizat structural (perturbatii structurate). Incontinuare ne vom ındrepta ınsa atentia ıntr-o directie considerata mai importantaın aplicatii si anume a exprimarii sintetice a conditionarii unui grup de valori propriisau a ıntregului spectru ın raport cu perturbatii nestructurate. In acest scop potfi utilizate teoremele de localizare a spectrului de valori proprii ın planul complex(dintre care amintim teorema lui Gershgorin, vezi teorema 4.11, § 4.1). O altacale este de a defini conditionarea ıntregului spectru printr-o norma a vectoruluiconditionarilor valorilor proprii individuale, i.e.

sΛdef= ‖s‖, κΛ

def= ‖κ‖, (4.333)

undes = [ sλ1

sλ2· · · sλn

]T , κ = [κλ1κλ2

· · · κλn]T , (4.334)

Page 360: metode de calcul numeric matriceal. algoritmi fundamentali

346 CAPITOLUL 4. VALORI SI VECTORI PROPRII

definitie care ar putea fi utilizata si pentru un grup de valori proprii.Pentru definirea conditionarii unui grup de valori proprii vom urma totusi o cale

alternativa care generalizeaza o interpretare interesanta a numerelor de conditionareindividuale definite mai sus. In acest scop vom introduce si utiliza conceptul deproiector spectral. Pentru simplitate, consideram o matrice A ∈ ICn×n cu valoriproprii distincte si fie I = i1, i2, . . . , iq o multime ordonata (i.e. i1 < i2 <. . . < iq) de indici din 1 : n. Notam λI(A) = λi1 , λi2 , . . . , λiq ⊂ λ(A). Fie,acum, UI ⊂ ICn subspatiul A-invariant asociat setului de valori proprii λI(A) siV ⊂ ICn subspatiul A-invariant complementar, asociat setului λJ (A) = λ(A)\λI(A).Intrucat avem ICn = U⊕V , pentru orice vector x ∈ ICn exista vectorii u ∈ U si v ∈ V ,unic determinati, astfel ıncat x = u+ v. Vectorul u se numeste proiectia vectoruluix pe subspatiul U paralela cu subspatiul V , iar vectorul v proiectia vectorului x pesubspatiul V paralela cu subspatiul U . Aplicatia liniara PI : ICn → U se numesteproiectia spectrala asociata setului de valori proprii λI(A), iar pentru o baza fixataa spatiului ICn, matricea PI ∈ ICn×n asociata aplicatiei PI se numeste proiectorspectral pe subspatiul U . Evident, PIx = u, ∀x ∈ ICn si P 2

I = PI .Fie, acum, o matrice U ∈ ICn×q ale carei coloane formeaza o baza a subspatiului

U . Conform propozitiei 4.1, avem AU = UB, unde B ∈ ICq×q este o restrictie amatricei A la subspatiul A-invariant U si λ(B) = λI(A). Similar, fie V ∈ ICn×(n−q)

o matrice ale carei coloane formeaza o baza a subspatiului V si AV = V C. Evident,

matricea T = [U V ] este nesingulara. Consideram partitia T−1 =

[YZ

]

a inversei

matricei T , unde Y ∈ ICq×n si Z ∈ IC(n−q)×n. Avem imediat Y AU = B, Y AV = 0,ZAU = 0 si ZAV = C. Prin urmare, T−1AT = diag(B,C). Mai mult, este simplude vazut ca matricele

PI = UY, PJ = V Z = In − PI (4.335)

sunt proiectorii spectrali pe subspatiile A-invariante U si, respectiv, V .Consideram, ın continuare, o valoare proprie simpla λ ∈ λ(A), un vector propriu

la dreapta x si un vector propriu la stanga y, ambii de norme euclidiene unitare,asociati valorii proprii λ. Subspatiul A-invariant unidimensional U = Imx are drept

complement subspatiul A-invariant n − 1 dimensional V = KeryH , iar Pλ =xyH

yHxeste proiectorul spectral pe subspatiul U . Avem urmatoarea exprimare posibila aconditionarii valorii proprii λ. Intrucat ‖xyH‖ = ‖x‖ · ‖y‖ (demonstrati!), rezulta

sλ =1

‖Pλ‖, respectiv κλ = ‖Pλ‖. (4.336)

Aceste relatii pot fi generalizate, ın modul cel mai natural, la definirea condi-tionarii unor seturi de mai multe valori proprii. Fara a intra ın detalii, vom definiparametrul sI si conditionarea κI a unui set λI ⊂ λ(A) de valori proprii prin

sI =1

‖PI‖, respectiv κI = ‖PI‖, (4.337)

unde PI este proiectorul spectral pe subspatiul A-invariant asociat valorilor propriiλI . La fel ca ın cazul valorilor proprii individuale, sI si κI sunt invariante la trans-formari unitare (ın cazul real, ortogonale) de asemanare. In consecinta, evaluarea

Page 361: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 347

conditionarii unui set λI de valori proprii se poate face ın felul urmator. Fie

S = QHAQ =

[S11 S12

0 S22

]

(4.338)

forma Schur ordonata a matricei A astfel ıncat λI = λ(S11), λ(S11) ∩ λ(S22) = ∅ sisolutia X ∈ ICq×(n−q) a ecuatiei Sylvester

S11X −XS22 = S12. (4.339)

Atunci, asa cum s-a aratat ın § 4.7, transformarea de asemanare definita de ma-

tricea T =

[Iq −X0 In−q

]

conduce la obtinerea matricei cu structura bloc-diagonala

T−1ST = diag(S11, S22), iar proiectorul spectral pe subspatiul S-invariant asociatvalorilor proprii λ(S11), conform (4.335), este

P = T ( : , 1 : q)T−1(1 : q, : ) =

[Iq X0 0

]

. (4.340)

Rezulta

sI =1

‖P‖ =1

1 + ‖X‖2, respectiv κI = ‖P‖ =

1 + ‖X‖2. (4.341)

Avandu-se ın vedere dificultatile legate de calculul normei spectrale, ın pacheteleprofesionale de calcul al valorilor proprii 57, se utilizeaza norme matriceale maiusor de calculat. Astfel, ın LAPACK [XV ], ın locul relatiei (4.341) de calcul alparametrului sI se foloseste expresia

sI =1

1 + ‖X‖2F, (4.342)

care, avandu-se ın vedere relatia dintre norma spectrala si norma Frobenius, da o es-timare care difera de valoarea reala printr-un factor cel mult egal cu

min(q, n− q).

In finalul acestui paragraf prezentam un rezultat important care permite defini-rea conditionarii spectrului unei matrice simple ıntr-un context general.

Teorema 4.22 (Bauer-Fike) Fie o matrice diagonalizabila A ∈ ICn×n si V o ma-trice nesingulara ale carei coloane sunt vectori proprii ai matricei A, i.e. astfel ıncatV −1AV = Λ = diag(λ1, λ2, . . . , λn). Daca E ∈ ICn×n este o matrice de perturbatiesi µ o valoare proprie a matricei perturbate µ ∈ λ(A + E), atunci

e(µ) = minλ∈λ(A)

|λ− µ| ≤ κp(V )‖E‖p, p = 1, 2,∞, (4.343)

unde κp(V ) = ‖V ‖p‖V −1‖p este numarul de conditionare la inversare al matriceiV a vectorilor proprii.

57 O dovada certa de profesionalism este ınsasi posibilitatea oferita utilizatorului de a-si evaluaconditionarea problemelor sale de calcul si, pe aceasta cale, nivelul probabil al erorilor.

Page 362: metode de calcul numeric matriceal. algoritmi fundamentali

348 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Demonstratie. Daca µ ∈ λ(A), atunci minλ∈λ(A) |λ − µ| = 0 si, deci, (4.343)este, evident, satisfacuta. Daca µ 6∈ λ(A), atunci matricele µIn−A si µIn−Λ suntnesingulare, iar matricele µIn−A−E si µIn−Λ−V −1EV sunt singulare. Rezulta camatricea (µIn − Λ)

−1(µIn−Λ−V −1EV ) = In−∆, unde ∆ = (µIn − Λ)

−1V −1EV ,

este singulara, i.e. exista un vector z, cu ‖z‖ = 1, astfel ıncat (In −∆)z = 0. Deaici, cu orice norma matriceala consistenta, obtinem

1 = ‖z‖ = ‖∆z‖ ≤ ‖∆‖ · ‖z‖ = ‖∆‖.

Pe de alta parte, oricare ar fi norma matriceala consistenta ‖ · ‖, care ındeplinesteconditia

‖diag(α1, α2, . . . , αn)‖ = maxi=1:n

(|αi|),

(ın particular ‖ · ‖ = ‖ · ‖p, p = 1, 2,∞) avem

‖∆‖ ≤ ‖(µIn − Λ)−1‖ · ‖V −1EV )‖ ≤

≤ maxi=1:n

|µ− λi|−1‖V −1‖ · ‖E‖ · ‖V ‖ = 1

mini=1:n |µ− λi|κ(V )‖E‖.

Din ultimele doua relatii rezulta

1 ≤ 1

mini=1:n |µ− λi|κ(V )‖E‖,

i.e. (4.343) este adevarata, q.e.d. 3

In primul rand remarcam faptul ca ın demonstratia teoremei Bauer-Fike nu s-autilizat ipoteza unor perturbatii ”mici”, i.e. rezultatul este valabil pentru orice nivelal perturbatiilor.

Interpretande(µ)

‖E‖pca sensibilitate numerica a (numar de conditionare al) valorii

proprii λ pentru care se realizeaza minimul din (4.343) rezulta, pe de o parte, faptulca numarul de conditionare la inversare al matricei vectorilor proprii ai unei matricesimple este o margine superioara pentru numerele de conditionare individuale alefiecarei valori proprii.

Pe de alta parte, putem considera maxµ∈λ(A+E)e(µ) drept influenta matricei deperturbatie E asupra ıntregului spectru a lui A si putem utiliza marginea superioara

κp(V ) a numarului maxµ∈λ(A+E)e(µ)

‖E‖ pentru aprecierea sensibilitatii spectrului ma-

tricei simple A. Intrucat vectorii proprii sunt determinati pana la ınmultirea cu unscalar nenul, pentru a elimina aceasta nedeterminare, definirea conditionarii spec-trului unei matrice diagonalizabile se poate face prin intermediul numarului

κ(p)Λ (A) = min

V ∈VA

κp(V ), (4.344)

unde VA este multimea tuturor matricelor de vectori proprii ai matricei A pentrucare avem V −1AV = Λ.

Page 363: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 349

Pentru p = 2, aceasta caracterizare a conditionarii spectrului de valori proprii alunei matrice simple este ıntr-o conexiune stransa cu cea introdusa ın relatia (4.333).

Intr-adevar, daca V ∈ VA, atunci xi =V ei‖V ei‖

este un vector propriu la dreapta,

de norma euclidiana unitara, asociat valorii proprii λi, iar yi =(eTi V

−1)H

‖V −Hei‖este un

vector propriu unitar la stanga asociat aceleiasi valori proprii. Avem

sλi= |yHi xi| =

|eTi V −1V ei|‖V −Hei‖ · ‖V ei‖

=1

‖V ei‖ · ‖V −Hei‖.

Tinand seama de faptul ca ‖V ei‖ ≤ ‖V ‖ · ‖ei‖ = ‖V ‖ si, analog, ‖V −Hei‖ ≤≤ ‖V −1‖, rezulta

sλi≥ 1

κ2(V ), respectiv κλi

≤ κ2(V )

pentru toti i = 1 : n. Cum V ∈ VA era arbitrara, aceasta ınseamna

‖κ‖∞ = maxi=1:n

(κλi) ≤ κ(2)Λ (A). (4.345)

Pe de alta parte, fie matricele X = [x1 x2 · · · xn ], avand drept coloane

vectori proprii la dreapta de norma euclidiana unitara si Y =

yH1yH2...yHn

, cu vectorii

yi vectori proprii la stanga, de asemenea de norma euclidiana unitara. Atunci,tinand seama de faptul ca yHi xj = 0 pentru toti i 6= j (v. exercitiul 4.8), avemY X = diag(sλ1

, sλ2, . . . , sλn

). Prin urmare, matricea

V = XD = Xdiag(√κλ1

,√κλ2

, . . . ,√κλn

)

apartine multimii VA si V −1 = D−1X−1 = DY . Rezulta

κ(V ) = ‖V ‖ · ‖V −1‖ ≤ ‖V ‖F ‖V −1‖F = ‖XD‖F‖DY ‖F = ‖D‖2F =

n∑

i=1

κλi= ‖κ‖1.

Reunind acest rezultat cu (4.345) putem scrie ın concluzie

‖κ‖∞ ≤ κ(2)Λ (A) ≤ ‖κ‖1. (4.346)

Avand ın vedere rolul determinant al structurii directiilor proprii asupra sensi-bilitatii valorilor proprii, este interesant de vazut ın ce conditii κΛ(A) este minim.In acest sens avem urmatoarea propozitie.

Propozitia 4.4 Valoarea minima a numarului de conditionare (4.342) pentrup = 2 este 1 si este atinsa daca matricea A este normala (ın particular, hermiticasau unitara, iar ın cazul real simetrica sau ortogonala).

Page 364: metode de calcul numeric matriceal. algoritmi fundamentali

350 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Demonstratie. Pentru orice matrice de vectori proprii V ∈ VA avem

κ2(V ) = ‖V ‖ · ‖V −1‖ ≥ ‖V V −1‖ = 1.

Prin urmare si κ(2)Λ (A) ≥ 1. Daca matricea A este normala, atunci este unitar

diagonalizabila, respectiv vectorii proprii sunt ortogonali, i.e. κ2(V ) = 1 pentru

toti V ∈ VA. Rezulta κ(2)Λ (A) = 1. 3

Prin urmare spectrele matricelor normale sunt perfect conditionate.O alta problema foarte importanta este legata de existenta mijloacelor de ımbu-

natatire si de conservare a conditionarii numerice a spectrului de valori propriiale unei matrice date. Intrucat spectrul ınsusi trebuie conservat, aceste mijloace serefera la existenta unor transformari de asemanare astfel ıncat matricea A = TAT−1

sa aiba κΛ(A) ≤ κΛ(A). In acest sens avem urmatorul rezultat.

Propozitia 4.5 Transformarile unitare (ın cazul real, ortogonale) de asemanare

conserva numarul de conditionare κ(2)Λ (A) al spectrului unei matrice.

Demonstratie. Conservarea numarului de conditionare este urmare directa aconservarii normei euclidiene la transformari unitare. Intr-adevar, fie A = UAUH

unde U ∈ ICn×n este unitara, i.e. UHU = UUH = In. Atunci, daca V este o matricearbitrara de vectori proprii liniar independenti ai matricei A, V = UV este o matrice(nesingulara) de vectori proprii a matricei A. Prin urmare, κ2(V ) = ‖V ‖ · ‖V −1‖ == ‖UV ‖ · ‖V −1UH‖ = κ2(V ) de unde rezulta si conservarea numarului de conditio-nare minV ∈VA

κ2(V ), q.e.d. 3

Implicatiile importante ale propozitiei de mai sus constau ın utilizarea, practicexclusiva, a transformarilor unitare (ortogonale) de asemanare ın toti algoritmiide calcul al valorilor proprii (vezi sectiunile precedente). De asemenea, rezultaca o eventuala ameliorare a conditionarii spectrului de valori al unei matrice nueste posibila decat prin recurgerea la transformari de asemanare neunitare, care sarealizeze o ”apropiere” a matricei initiale de o matrice normala. Intrucat o matricenormala este caracterizata, printre altele, de faptul ca este perfect echilibrata, i.e.are normele euclidiene ale liniilor si coloanelor de acelasi indice egale, procedurile deameliorare a conditionarii spectrului unei matrice urmaresc o echilibrare a acesteia,asa cum s-a prezentat ın detaliu ın sectiunea 4.4.

B. Conditionarea vectorilor proprii si a subspatiilor invariante

La fel ca si ın cazul valorilor proprii, din motive de simplitate, ne vom margini laanaliza conditionarii vectorilor proprii asociati valorilor proprii simple. De aseme-nea, precizam de la ınceput ca subspatiile invariante generate de vectori proprii rauconditionati pot avea o conditionare mult mai buna. Acesta si este unul din motiveleprincipale pentru care ın practica numerica nu se recomanda, ın general, calcululexplicit al vectorilor proprii, subspatiile invariante de interes putand fi generatemult mai fiabil, de exemplu, de vectorii Schur.

Fie matricea A ∈ ICn×n cu valorile proprii distincte λk si vectorii proprii asociati,de norma euclidiana unitara, xk, k = 1 : n. Consideram matricea perturbata

Page 365: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 351

F = A + E, cu E = ǫG, ‖G‖ = 1, si λk(ǫ), xk(ǫ) (cu ‖xk‖ = 1) valorile si vectoriiproprii ai matricei perturbate, definiti ca ın (4.326). Adaptand notatiile la noulcontext, relatia (4.329) se poate scrie sub forma

Gxk +Az(k)1 = α

(k)1 xk + λkz

(k)1 , unde α

(k)1 =

dλk(ǫ)

∣∣∣∣ǫ=0

, z(k)1 =

dxk(ǫ)

∣∣∣∣ǫ=0

.

(4.347)Intrucat, ın ipotezele acceptate, vectorii proprii xk, k = 1 : n, formeaza o baza

a spatiului ICn, putem scrie z(k)1 =

∑ni=1 γ

(k)i xi, relatie care, introdusa ın (4.347),

conduce lan∑

i=1i6=k

γ(k)i (λk − λi)xi = (G− αkIn)xk. (4.348)

Inmultind la stanga relatia (4.347) cu yHi , unde yi este vectorul propriu la stangaasociat valorii proprii λi, si tinand seama de faptul ca yHj xi = 0 pentru j 6= i si

yHi xi 6= 0 (v. exercitiile 4.8 si 4.9) obtinem

γ(k)i =

yHi Gxk(λk − λi)yHi xi

, i = 1 : n, i 6= k. (4.349)

Prin urmare, dezvoltarea ın serie (4.326) conduce la urmatoarea evaluare a influenteiperturbatiei asupra vectorului propriu xk:

xk(ǫ) = xk + ǫn∑

i=1i6=k

yHi Gxk

(λk − λi)yHi xixi +O(ǫ2). (4.350)

In sensul celor precizate ın preambulul acestei sectiuni, putem considera

κxk= ‖

n∑

i=1i6=k

yHi Gxk(λk − λi)yHi xi

xi‖ (4.351)

drept numar de conditionare al vectorului propriu xk. Relatia (4.351) arata casensibilitatea unui vector propriu este dependenta esential atat de sensibilitatiletuturor valorilor proprii cat si de distanta (”separarea”) valorii proprii asociate fatade celelalte valori proprii.

Exemplul 4.10 Reluam matricea din exemplul precedent, respectiv consideram

A =

[λ1 β0 λ2

]

∈ IR2×2 cu λ1 6= λ2 si notam δ = λ1 − λ2. Vectorii proprii, de

norma unitara, au expresiile (facand abstractie de semn)

x1 =

[10

]

, x2 =1

β2 + δ2

[β−δ

]

, y1 =1

β2 + δ2

[δβ

]

, y2 =

[01

]

.

Prin urmare, relatiile (4.351) se scriu ın acest caz sub forma

κx1= ‖y

T2 Gx1

δyT2 x2x2‖, κx2

= ‖yT1 Gx2

δyT1 x1x1‖.

Page 366: metode de calcul numeric matriceal. algoritmi fundamentali

352 CAPITOLUL 4. VALORI SI VECTORI PROPRII

In cazul numeric A =

[1.01 0.010 1

]

, avem κλ1= κλ2

=√2, i.e. ambele

valori proprii sunt foarte bine conditionate. Vectorii proprii normati ai matriceineperturbate sunt

x1 =

[10

]

, x2 =1

2

[ √2

−√2

]

≈[

0.70710−0.70710

]

.

Valorile proprii ale matricei perturbate F = A + ǫG =

[1.01 0.0110−3 1

]

, unde ǫ =

= 10−3 si G =

[0 01 0

]

(cu ‖G‖ = 1), sunt λ1 ≈ 1.0109 si λ2 ≈ 0.99908, i.e.

cu perturbari de ordinul de marime al lui ǫ. In schimb, vectorii proprii normati aimatricei perturbate sunt

x1 = x1(10−3) ≈

[0.9958300.091226

]

, x2 = x2(10−3) ≈

[0.67549−0.73737

]

.

Se observa influenta mult mai puternica a perturbatiei asupra vectorilor propriidecat asupra valorilor proprii. De exemplu, x2 are un element fara nici o cifrazecimala corecta desi perturbatia a modificat numai a treia cifra zecimala a unuielement al matricei initiale. Aceasta se datoreste faptului ca vectorul propriu x2este relativ rau conditionat ıntrucat κx2

= 100/√2. 3

Exprimarea conditionarii vectorilor proprii si, mai general, evaluarea erorilor ıncalculul vectorilor proprii prin expresii de genul ‖x−x‖ nu este ıntotdeauna semni-ficativa datorita faptului ca vectorii proprii, chiar normati, nu sunt unic determinati.De exemplu, daca x = −x, i.e. x este un vector propriu exact, avem ‖x−x‖ = 2. Deaceea, este preferabila aprecierea influentei perturbatiilor asupra vectorilor propriiprin evaluarea diferentei unghiulare dintre vectorul exact si cel perturbat, definitaprin

θ(x, x) = arccos|xH x|‖x‖ · ‖x‖ = arccos |xH x|, (4.352)

ultima expresie fiind adevarata ın cazul utilizarii vectorilor normati ‖x‖ = ‖x‖ = 1.Prin definitie, unghiul θ(x, x), introdus ın relatia (4.352), este unghiul ascutit dintredirectiile vectorilor x si x.

Aceasta abordare poate fi extinsa la exprimarea conditionarii subspatiilor in-variante. Fie doua subspatii U ,V ⊂ ICn. Definim diferenta unghiulara sau unghiulascutit dintre subspatiile U si V prin

θ(U ,V) = maxu∈Uu6=0

minv∈Vv 6=0

θ(u, v). (4.353)

Evident, θ(U ,V) = θ(V ,U). Relatia de definitie (4.353) nu permite calculul unghiu-lui dintre doua subspatii dar mijloace pentru a face acest lucru exista 58. Fiind datao matrice A si λI ⊂ λ(A) un set de valori proprii ale acesteia, prin conditionarea

58 O relatie care exprima unghiul dintre doua subspatii si generalizeaza expresia (4.352) a unghiu-

Page 367: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 353

subspatiului A-invariant U asociat setului λI vom ıntelege variatia unghiulara (sauo margine superioara a acesteia) a subspatiului U raportata la nivelul perturbatiilorın elementele matricei A.

Conditionarea subspatiilor invariante este determinata ın mod decisiv de lo-calizarea valorilor proprii asociate. Este ınsa posibil ca un subspatiu generat devectori proprii rau conditionati sa aiba o conditionare foarte buna daca grupulcorespunzator de valori proprii este bine separat de restul valorilor proprii.

Pentru a aborda constructiv aceasta problema introducem cateva notiuni noi.Vom defini mai ıntai separarea dintre spectrele a doua matrice A ∈ ICm×m si B ∈∈ ICn×n. In acest scop, fie aplicatia liniara L : ICm×n → ICm×n definita de L(X) == AX−XB. Distanta (sau separarea) dintre spectrele matricelor A si B se masoaraprin scalarul

sep(A,B)def= min

X 6=0

‖L(X)‖F‖X‖F

= minX 6=0

‖AX −XB‖F‖X‖F

. (4.354)

Intrucat cadrul propus al lucrarii nu ne ofera mijloacele necesare prezentarii pe larga proprietatilor parametrului de separare sep 59, vom sugera semnificatia sa printr-oparticularizare. Fie B = µ ∈ IC o matrice 1 × 1 si A o matrice normala, i.e. unitardiagonalizabila (v. teorema 4.1). Atunci, QHAQ = Λ = diag(λ1, λ2, . . . , λm) cu Qo matrice unitara. Avem

sep(A,B) = minx 6=0

‖(A− µIn)x‖F‖x‖F

= min‖x‖=1

‖(A− µIn)x‖ =

= min‖z‖=1

‖(Λ− µIn)z‖ = mini=1:m

|λi − µ|,

i.e. sep(A,B) este efectiv o distanta dintre µ si spectrul matricei A. In acestcontext, daca B este o matrice de ordinul n si λ(B) = µ1, µ2, . . . , µn definimdistanta absoluta dintre spectrele matricelor A si B prin

gap(A,B)def= min

i=1:mj=1:n

|λi − µj | (4.355)

lui dintre doi vectori (sau doua subspatii unidimensionale) este

θ(U ,V) = arccos σmin(UHV ),

unde σmin(·) este valoarea singulara minima (v. cap. 5) a matricei argument, U este o matriceale carei coloane formeaza o baza ortogonala a subspatiului U si V este o matrice ale carei coloaneformeaza o baza ortogonala a subspatiului V . O astfel de abordare permite introducerea conceptu-

lui de distanta dintre subspatii liniare prin dist(U ,V) =√

1− σ2min(UHV ) = sin θ(U ,V), concept

util unei tratari cantitative a conditionarii subspatiilor invariante. Pentru detalii recomandamconsultarea referintei [ VI ].

59 O exprimare posibila a separarii matricelor A si B, care permite calculul ei cel putin ınprincipiu, este

sep(A,B) = σmin(In ⊗ A− BT ⊗ Im),

unde σmin(·) este valoarea singulara minima (v. cap. 5) a matricei argument, iar Z = X ⊗ Y esteprodusul Kronecker al matricelor X si Y , i.e. matricea bloc [Zij ] = [xijY ].

Page 368: metode de calcul numeric matriceal. algoritmi fundamentali

354 CAPITOLUL 4. VALORI SI VECTORI PROPRII

si distanta relativa prin

gaprel(A,B)def= min

i=1:mj=1:n

|λi − µj ||λi + µj |

. (4.356)

Proprietatea evidentiata ın cazul particular de mai sus se generalizeaza ın modnatural si justifica utilizarea parametrului sep(A,B) ca masura a separarii spectrelormatricelor A si B. In cazul general se pot face urmatoarele afirmatii:

• sep(A,B) = 0 daca si numai daca matricele A si B au cel putin o valoareproprie comuna;

• sep(A,B) este ”mica” daca si numai daca exista o perturbare ”mica” a uneiadintre matrice care face ca cele doua matrice sa aibe cel putin o valoare propriecomuna;

• daca matriceleA siB sunt hermitice (ın cazul real, simetrice), atunci separareacoincide cu distanta dintre spectre, i.e. sep(A,B) = gap(A,B);

• daca matricele A si B nu sunt hermitice (ın cazul real, simetrice), atuncisep(A,B) < gap(A,B) si chiar poate fi mult inferioara lui gap(A,B);

In pachetele profesionale de calcul numeric exista proceduri de estimare rapida 60

a separarii spectrelor.

Revenind la problema conditionarii vectorilor proprii ai unei matrice A ∈ ICn×n

si a subspatiilor sale invariante, precizam ca, la fel ca ın cazul valorilor proprii,aceasta nu este afectata de transformari unitare de asemanare. Prin urmare, faraa reduce generalitatea, putem considera matricea initiala direct ın forma Schur,eventual ordonata ın mod convenabil. Fie, asadar, multimea de indici I ∈ 1 : n sisetul λI ⊂ λ(A) al valorilor proprii de interes. Consideram matricea

S = QHAQ =

[S11 S12

0 S22

]

∈ ICn×n, cu S11 ∈ ICq×q, λ(S11) = λI (4.357)

si XI = ImQ( : , 1 : q) subspatiul A-invariant asociat setului de valori proprii λI .Vom nota separarea spectrelor matricelor S11 si S22 cu

sep(S11, S22)not= sepI .

Conditionarea subspatiului invariant XI , i.e. variatia unghiulara a acestuia ra-portata la nivelul perturbatiilor ın matricea initiala, se poate aprecia prin numarulde conditionare

κXI

def=

1

sepI. (4.358)

60 Variantele rapide se obtin de obicei prin utilizarea unor norme matriceale care se calculeazamai usor (cum sunt ‖ · ‖1 sau ‖ · ‖∞). In acest fel se obtin estimari care difera de valoarea realaprintr-un factor cel mult egal cu

√mn, perfect acceptabil ın practica numerica.

Page 369: metode de calcul numeric matriceal. algoritmi fundamentali

4.10. CONDITIONARE 355

In particular, daca I contine un singur element, i.e. I = i numarul

κXi

def=

1

sepi(4.359)

exprima conditionarea vectorului propriu asociat valorii proprii λi a matricei A.Pentru detalii recomandam consultarea referintelor bibliografice [ IV ], [ VI ], [ VIII ].

4.10.2 Conditionarea valorilor si vectorilor propriipentru matrice hermitice

A. Conditionarea valorilor proprii

Desigur, toate dezvoltarile privitoare la conditionarea valorilor proprii pentru ma-tricele nehermitice raman valabile si pentru matricele hermitice, iar ın cazul real,pentru matricele simetrice. Pe de alta parte matricele hermitice 61 prezinta nu-meroase particularitati interesante si din acest punct de vedere.

In primul rand, conform teoremei 4.2, o matrice A ∈ ICn×n hermitica este unitardiagonalizabila si are spectrul real, i.e. exista o matrice unitara Q ∈ ICn×n astfelıncat QHAQ = Λ = diag(λ1, λ2, . . . , λn) ∈ IRn×n. Rezulta ca vectorul propriuxi = Q( : , i), de norma euclidiana unitara, satisface simultan relatia xHi A = λix

Hi ,

i.e. este si vector propriu la stanga asociat aceleiasi valori proprii. Rezulta canumerele de conditionare ale valorilor proprii λi, definite de (4.331), sunt

κλi=

1

sλi

=1

|xHi xi|= 1, i = 1 : n. (4.360)

Prin urmare, valorile proprii ale matricelor hermitice (ın cazul real, simetrice) suntperfect conditionate, variatiile (absolute) ale valorilor proprii induse de perturbatiiın matricea initiala nedepasind nivelul acestor perturbatii.

Exemplul 4.11 Fie matricea simetrica A =

[1.000 0.9000.900 1.000

]

∈ IR2×2 cu val-

orile proprii exacte λ1 = 1.9 si λ2 = 0.1. Valorile proprii ale matricelor simetrice

perturbate F1 = A + ǫG1 =

[1.001 0.9000.900 1.001

]

, F2 = A + ǫG2 =

[1.000 0.9010.901 1.000

]

si F3 = A+ ǫG3 =

[1.001 0.9000.900 1.000

]

, unde, de fiecare data perturbatiile sunt sime-

trice, ǫ = 10−3 si ‖Gi‖ = 1, sunt λ(F1) = 1.901, 0.101, λ(F2) = 1.901, 0.101,λ(F3) = 1.9005, 0.1005, ın toate cazurile variatiile absolute ale valorilor propriinedepasind valoarea lui ǫ. In schimb, variatiile relative ale valorii proprii mai micisunt de aproximativ 20 de ori (i.e raportul celor doua valori proprii) mai mari decatvariatiile relative ale valorii proprii mai mari.

Conditionarea excelenta a valorilor proprii ale unei matrice simetrice se mani-festa si la perturbatii nesimetrice (desi nu se mai poate garanta ca matricele per-

turbate au un spectru real). Astfel pentru F4 = A+ ǫG4 =

[1.000 0.9010.900 1.000

]

avem

λ(F4) = 1.9005, 0.0995. 3

61 Majoritatea rezultatelor sunt adevarate pentru cazul mai general al matricelor normale.

Page 370: metode de calcul numeric matriceal. algoritmi fundamentali

356 CAPITOLUL 4. VALORI SI VECTORI PROPRII

Subliniem, ın ıncheierea acestui paragraf, ca alte evaluari utile ale efectelorperturbatiilor ın datele initiale sunt consecinte directe ale teoremelor 4.6 si 4.7.

B. Conditionarea vectorilor proprii si a subspatiilor invariante

Desi valorile proprii ale matricelor hermitice sunt perfect conditionate nu acelasilucru se poate spune despre vectorii proprii si subspatiile invariante, a caror condi-tionare este dependenta, la fel ca ın cazul general, de separarea seturilor de valoriproprii carora le sunt asociate de restul spectrului matricei date. Singura particu-laritate, mentionata deja ıntr-unul din paragrafele precedente, consta ın faptul caparametrii de separare sepi, respectiv sepI , definite ın (4.354), coincid cu distanteledintre spectre gapi, respectiv gapI , definite ın (4.355) si, ın consecinta, se calculeazamult mai usor.

4.11 Stabilitatea numerica a algoritmului QR

O problema de calcul numeric rau conditionata nu poate fi rezolvata bine ıntr-unmediu de calcul aproximativ. In schimb, o problema bine conditionata poate firezolvata prost daca nu se utilizeaza un algoritm corespunzator. Contributia unoralgoritmi concreti de calcul la nivelul erorilor din rezultate, un atribut esential alcalitatii lor, este apreciata cu ajutorul conceptului de stabilitate numerica si se facecurent prin evaluarea acestei contributii ın ”echivalent erori ın datele initiale” (vezicap. 0). In acest sens, amintim ca un algoritm este considerat numeric stabil dacarezultatele oferite de executia sa sunt rezultate exacte ale problemei cu date initialece difera de datele reale la nivelul erorilor de reprezentare, eventual multiplicate cu ofunctie de dimensiunea problemei avand o ”crestere modesta”. Garantia tinerii subcontrol a erorilor de calcul se poate da numai pentru probleme bine conditionate,cu restrictia utilizarii unor algoritmi numeric stabili.

Pentru probleme de calcul netriviale, cum este calculul valorilor si vectorilorproprii, analiza erorilor introduse de calculul ın virgula mobila este o sarcina extremde dificila. Mai mult, stabilirea unor margini cat mai exacte ale erorilor (reduse lanivelul datelor initiale) nici nu are o relevanta majora. Asa cum reiese dintr-oexperienta ce poate fi considerata semnificativa, un obiectiv mai important al ana-lizei numerice ıl constituie sesizarea unor situatii de instabilitate numerica, situatiiın care utilizarea algoritmului respectiv trebuie interzisa. De aceea, ın continuarene propunem sa prezentam, fara demonstratii sau justificari matematice profunde,rezultatele existente ın literatura de specialitate referitoare la stabilitatea numericaa algoritmilor prezentati ın acest capitol si, ın primul rand, a algoritmului QR.

Rezultatul principal consta ın faptul ca algoritmul QR de calcul al valorilor sivectorilor proprii ai unei matrice n× n reale sau complexe A este numeric stabil siacest fapt se datoreaza esential utilizarii exclusive a transformarilor unitare 62 (ıncazul real, ortogonale). Concret, forma Schur (ın cazul real, reala sau complexa)calculata S este o forma Schur exacta a unei matrice A = A + E foarte apropiate

62 Procedura de echilibrare, singura care nu utilizeaza transformari unitare, a fost astfel con-ceputa ıncat toate calculele sunt exacte, deci nu apar probleme de stabilitate.

Page 371: metode de calcul numeric matriceal. algoritmi fundamentali

4.11. STABILITATE NUMERICA 357

de matricea initiala, i.e.S = QH(A+ E)Q, (4.361)

unde Q este o matrice unitara si E o matrice a erorilor raportate la datele de intrareale algoritmului satisfacand conditia

‖E‖ ≤ p(n)‖A‖εM , (4.362)

cu p(n) o functie de ordinul matricei, cu o crestere modesta 63.Daca se acumuleaza transformarile, atunci matricea de transformare calculata

Q este aproape unitara ın sensul ca

QHQ = In + E, cu ‖E‖ ≤ p(n)‖A‖εM . (4.363)

Prin urmare, valorile proprii calculate cu algoritmul QR, ca si vectorii pro-prii calculati sau subspatiile invariante calculate sunt valori proprii exacte, vec-tori proprii exacti sau subspatii invariante exacte ale unor matrice foarte apropiatede matricea data. Aceasta ınseamna ca nivelul erorilor ın rezultate va fi redusdaca problema concreta respectiva este bine conditionata, respectiv poate fi impor-tant ın cazul unei conditionari necorespunzatoare. Asa cum s-a mentionat, pentruaprecierea erorilor din rezultate, pachetele profesionale de programe permit esti-marea numerelor de conditionare si, pe aceasta baza estimarea erorilor conformcelor aratate ın sectiunea precedenta. Consideram util sa prezentam ın finalul aces-tei sectiuni astfel de estimari ale erorilor de calcul al valorilor proprii, vectorilorproprii si subspatiilor invariante cu algoritmii propusi ın capitolul de fata. Vomutiliza notatia consacrata cu accentˆpentru valorile calculate.

Matrice generale (nehermitice)

• Valori proprii:|λi − λi| ≤ κλi

p(n)‖A‖εM . (4.364)

• Vectori proprii:

θ(xi, xi) ≤p(n)‖A‖F εM

sepi. (4.365)

• Subspatii invariante:

θ(SI ,SI) ≤p(n)‖A‖F εM

sepI. (4.366)

Matrice hermitice (ın cazul real, simetrice)

• Valori proprii:|λi − λi| ≤ κλi

p(n)‖A‖εM . (4.367)

63 Practic pentru toti algoritmii prezentati ın acest capitol, p(n) este o functie polinomiala de ungrad ”modest” (1, 2 sau, foarte rar, 3) de parametri ce definesc dimensiunea problemei. Expresiileexistente, la un moment istoric dat, pentru p(n) sunt, ın general, evaluari pesimiste si cunoasterea

exacta a acestor expresii este lipsita de semnificatie pentru practica numerica. In [XV ] se afirmaca o apreciere de genul p(n) < 10n este adevarata ın majoritatea situatiilor practice pentru carese foloseste formula de evaluare ”functie cu o crestere modesta”.

Page 372: metode de calcul numeric matriceal. algoritmi fundamentali

358 CAPITOLUL 4. VALORI SI VECTORI PROPRII

• Vectori proprii:

θ(xi, xi) ≤p(n)‖A‖F εM

gapi. (4.368)

• Subspatii invariante:

θ(SI ,SI) ≤p(n)‖A‖F εM

gapI. (4.369)

Pentru detalii recomandam consultarea referintelor bibliografice [ XI ], [ XII ], [ XV ].

4.12 Rutine LAPACK si MATLAB

LAPACK. Calculul valorilor si vectorilor proprii ai unei matrice A este efectuatın LAPACK de cateva rutine driver, diferentiate de tipul matricei (generala sausimetrica) si de gradul de detaliere a rezultatelor.

Pentru matrice generale exista doua categorii de rutine driver.

1. Rutina xGEES calculeaza forma Schur a matricei A si eventual vectorii Schur,folosind algoritmulQR. Forma Schur poate fi ordonata, ın sensul ca o submul-time a valorilor proprii, aleasa de utilizator, se va afla ın coltul stanga-sus al

formei Schur (ca ın schema FSC ORD p ).

Driverul expert xGEESX calculeaza ın plus numerele de conditie ale valorilorproprii.

2. Rutina xGEEV calculeaza valorile si eventual vectorii proprii ai matricei A.Rutina expert xGEEVX poate efectua suplimentar si scalarea matricei (ca ınalgoritmii din sectiunea 4.7) sau calcula numerele de conditie ale valorilorproprii.

Pentru matricele simetrice, driverul simplu xyyEV (unde yy este SY, HE, SP, HP,SB, HB, ST; ultima notatie este pentru matrice simetrice tridiagonale) calculeazavalorile si, eventual, vectorii proprii, utilizand algoritmul QR simetric.

Rutina expert xyyEVX poate calcula si toate sau numai o submultime a valorilorproprii si, optional, vectorii proprii corespunzatori.

Rutinele de calcul sunt mult mai numeroase, de aceea ne vom margini laprezentarea celor mai importante.

Pentru matrice generale, diversele faze ale calculului sunt implementate astfel:

• xGEHRD realizeaza reducerea unei matrice oarecare A la forma HessenbergH prin transformari de asemanare ortogonale (ca ın algoritmul HQc dinsectiunea 4.4.1).

• xHSEQR implementeaza faza iterativa a algoritmului QR, transformand H ınforma Schur, cu acumularea optionala a transformarilor (si deci obtinereavectorilor Schur).

Page 373: metode de calcul numeric matriceal. algoritmi fundamentali

4.12. RUTINE LAPACK SI MATLAB 359

• vectorii proprii ai matricei A sunt calculati fie cu rutina xTREVC, care utilizeazaforma Schur (problema este deci de a calcula vectorii proprii ai unei matrice(cvasi-)triunghiulare), fie cu rutina xHSEIN, care utilizeaza forma Hessenbergsi metoda puterii inverse, foarte eficienta cand valorile proprii sunt disponibile,dar care functioneaza si fara ca acestea sa fi fost calculate.

Alte rutine utile sunt urmatoarele:

• xGEBAL realizeaza scalarea (echilibrarea) matricei A; se utilizeaza ın conjunctiecu rutina complementara xGEBAK, care reface vectorii proprii ai matricei A dincei ai matricei scalate (evident, valorile proprii sunt identice).

• xTRSEN ordoneaza forma Schur prin aducerea ın coltul stanga-sus a uneisubmultimi de valori proprii descrise de utilizator.

• xTREXC aduce o singura valoare proprie ın pozitia dorita (aceasta rutina tre-buie apelata repetat pentru a realiza o permutare completa, ca ın algoritmulFSR ORD).

• xTRSYL rezolva ecuatia Sylvester cvasi-triunghiulara.

• xTRSNA calculeaza numerele de conditie ale valorilor proprii.

Pentru matrice simetrice, etapele de calcul sunt implementate de

• xyyTRD efectueaza reducerea unei matrice simetrice (hermitice) la forma tridi-agonala reala, prin transformari de asemanare ortogonale.

• xSTEQR calculeaza valorile si, optional, vectorii proprii ai unei matrice tridi-agonale, implementand faza iterativa a algoritmului QR simetric. Exista ıncaalte cateva rutine cu aceeasi functionalitate, dar utilizand algoritmi diferiti; deexemplu xSTEBZ implementeaza metoda bisectiei (vezi algoritmul BISECT).

• xSTEIN calculeaza vectorii proprii (eventual numai unii dintre acestia) ai uneimatrice tridiagonale, utilizand metoda puterii inverse.

MATLAB. Valorile si vectorii proprii ai unei matrice generale A pot fi calculatecu

[V, D] = eig(A)

V fiind matricea vectorilor proprii (posibil complecsi), iar D o matrice diagonalacontinand valorile proprii. Apelul simplu eig(A) returneaza un vector continandvalorile proprii. Functia eig implementeaza algoritmul QR.

Reducerea la forma Hessenberg a matricei A se face cu functia hess, care acu-muleaza optional transformarile.

Forma Schur a matricei A si, optional, vectorii Schur, se obtin cu functia schur.Echilibrarea matricei A se realizeaza cu functia balance.

Page 374: metode de calcul numeric matriceal. algoritmi fundamentali

360 CAPITOLUL 4. VALORI SI VECTORI PROPRII

O functie pentru ordonarea formei Schur se gaseste ın Control Toolbox 64.Aceasta se numeste schord si implementeaza algoritmul FSC ORD, adica per-muta complet forma Schur. Functia utilizeaza numai forma Schur complexa, adicao matrice superior triunghiulara. In cazul real, trebuie apelate functiile rsf2csf sicsf2rsf pentru transformarea ortogonala a unei forme Schur reale ıntr-una com-plexa (ınainte de ordonare) si invers (dupa aceea).

Nu exista nici o functie speciala pentru matrice simetrice.

4.13 Probleme

P 4.1 Se considera date matricele

A =

[3 −3 2−1 5 −2−1 3 0

]

, B =

[ −4 0 8−8 3 9−4 −1 9

]

.

Folosind definitiile, calculati valorile proprii ale celor doua matrice si cate un vector propriuasociat fiecarei valori proprii. Sunt cele doua matrice diagonalizabile? Verificati.

P 4.2 In cadrul capitolului, cazul real a fost tratat adesea ca un caz particular al cazu-lui complex. In acest context, este IRn un subspatiu liniar al spatiului ICn? Justificatiraspunsul.

P 4.3 Fie matricele A ∈ ICm×m, B ∈ ICn×n si matricea C =

[A 00 B

]

, suma directa a

matricelor A si B. Demonstrati ca C este diagonalizabila daca si numai daca A si B suntdiagonalizabile.

P 4.4 Se considera o matrice A ∈ IRn×n avand structura bloc superior triunghiulara

A =

[A1 A12

0 A2

]

. Daca matricele A1 si A2 sunt diagonalizabile, este diagonalizabila si

matricea A? Argumentati raspunsul.

P 4.5 Fie matricele A ∈ ICm×n, B ∈ ICn×m. Demonstrati ca λ(AB) ⊆ λ(BA) daca m ≤ nsi λ(BA) ⊆ λ(AB) daca m ≥ n. In cazul, m 6= n, care dintre valorile proprii ale matriceide ordin mai mare (dintre matricele AB si BA) nu sunt valori proprii ale matricei de ordinmai mic ?

P 4.6 Perechea de matrice (A,B) ∈ ICn×n× ICn×n se numeste diagonalizabila (sau, echiva-lent, matricele A si B se numesc simultan diagonalizabile) daca exista o matrice nesingulara

X ∈ ICn×n astfel ıncat X−1(A,B)Xdef= (X−1AX,X−1BX) = (ΛA,ΛB), cu ΛA, ΛB di-

agonale. Demonstrati: a) Daca A este diagonalizabila, atunci perechea (A,µIn) estediagonalizabila pentru toti µ ∈ IC. b) Daca (A,B) este diagonalizabila, atunci matriceleA si B comuta. c) Presupunem ca matricele A si B sunt diagonalizabile. Atunci A si Bcomuta daca si numai daca perechea (A,B) este diagonalizabila. d) Dati un exemplu dedoua matrice care comuta si care nu sunt simultan diagonalizabile.

P 4.7 Daca matricele A,B ∈ ICn×n comuta, atunci au un vector propriu comun.

64Colectiile de functii MATLAB dedicate unor domenii specializate si nefacand parte din setulde baza al limbajului poarta numele consacrat de toolbox.

Page 375: metode de calcul numeric matriceal. algoritmi fundamentali

4.13. PROBLEME 361

P 4.8 Fie λ1, λ2 doua valori proprii distincte ale unei matrice A ∈ ICn×n si x1 un vectorpropriu la dreapta asociat lui λ1, iar y2 un vector propriu la stanga asociat lui λ2. Aratatica cei doi vectori sunt ortogonali, i.e. yH

2 x1 = 0.

P 4.9 Daca λ ∈ λ(A), este o valoare proprie simpla a unei matrice A ∈ ICn×n si x, respectivy, sunt vectori proprii la dreapta, respectiv la stanga, asociati lui λ, atunci yHx 6= 0. Datiun exemplu ın care aceasta conditie nu este satisfacuta daca λ nu este o valoare propriesimpla.

P 4.10 Se considera o matrice A ∈ ICn×n diagonalizabila. Aratati ca exista vectoriiproprii (la dreapta) xi, i = 1 : n, si vectorii proprii la stanga yi, i = 1 : n, astfel ıncatA =

∑n

i=1λixiy

Hi .

P 4.11 Sa se demostreze lema 4.4.

P 4.12 Fie date o matrice A ∈ ICn×n si un polinom p(λ) = λn+p1λn−1+ . . .+pn−1λ+pn.

Consideram matricea

Pdef= p(A) = An + p1A

n−1 + . . .+ pn−1A+ pnIn.

Sa se arate ca daca λi ∈ λ(A), atunci p(λi) ∈ λ(P ) si daca xi este un vector propriu almatricei A, asociat valorii proprii λi, atunci el este si vector propriu al matricei P asociatvalorii proprii p(λi).

P 4.13 Fie date o matrice A ∈ ICn×n si o functie rationala r(λ) =p(λ)

q(λ). Definim matricele

Pdef= p(A), Q

def= q(A) si, daca Q este nesingulara, R

def= Q−1P . Aratati ca daca λi ∈ λ(A)

si xi este un vector propriu al matricei A asociat valorii proprii λi, atunci r(λi) ∈ λ(R),iar xi este si vector propriu al matricei R asociat valorii proprii r(λi).

P 4.14 Fie o matrice nesingulara A ∈ ICn×n. Daca ‖·‖ este o norma matriceala consistenta,

aratati ca numarul de conditionare la inversare κ(A)def= ‖A‖ · ‖A−1‖ satisface inegalitatea

κ(A) ≥ max(|λi(A)|)min(|λi(A)|) .

P 4.15 a) O matrice patrata A se numeste nilpotenta daca exista un numar natural kastfel ıncat Ak = 0. Aratati ca o matrice nilpotenta are toate valorile proprii nule. Dati unexemplu de matrice nilpotenta nenula. b) O matrice A ∈ ICn×n se numeste idempotentadaca A2 = A. Aratati ca o matrice idempotenta nu poate avea alte valori proprii ın afarade 0 si 1. Dati un exemplu de matrice idempotenta nenula si diferita de matricea unitate.

P 4.16 a) Cati vectori proprii (la dreapta) liniar independenti poate avea o celula Jordan

Jλ =

λ 1λ 1

. . . 1λ

de ordinul n? Dar la stanga ? b) Aratati ca o celula Jordan

de ordin n ≥ 2 nu poate fi diagonalizata prin transformari de asemanare. c) Calculatiexpresia analitica a matricei Jk

λ unde Jλ este o celula Jordan de ordin n cu elementelediagonale egale cu λ. Exista k ∈ IN∗ astfel ıncat Jk

λ sa fie diagonalizabila ? d) Calculatiexpresia analitica a matricei J−1

λ , unde λ 6= 0. Este J−1λ diagonalizabila ?

Page 376: metode de calcul numeric matriceal. algoritmi fundamentali

362 CAPITOLUL 4. VALORI SI VECTORI PROPRII

P 4.17 Ce rang (i.e. numarul maxim de linii sau coloane liniar independente) poate avea omatrice superior Hessenberg H ∈ ICn×n ireductibila (i.e. cu toate elementele subdiagonalenenule)? Se poate diagonaliza o matrice superior Hessenberg ireductibila cu valori propriimultiple? Justificati raspunsul.

P 4.18 Fie o matrice A ∈ ICn×n de forma

C =

−p1 −p2 · · · −pn−1 −pn1 0 · · · 0 00 1 · · · 0 0...

.... . .

......

0 0 · · · 1 0

.

a) Sa se arate ca polinomul caracteristic al matricei A este

p(λ) = λn + p1λn−1 + . . .+ pn−1λ+ pn.

b) Sa se arate ca matricea C este nesingulara daca si numai daca pn 6= 0 si ın aceastasituatie sa se calculeze matricea C−1. Care este polinomul caracteristic al matricei C−1 ?c) Presupunand ca radacinile λi, i = 1 : n, ale polinomului p(λ), sunt cunoscute, sa secalculeze cate un set de vectori proprii pentru matricele C si CT . d) Matricile C si CT

poarta numele de matrice companion ale polinomului p(λ). Puteti preciza si alte matricecare sa justifice aceasta denumire?

P 4.19 a) Calculati valorile si vectorii proprii pentru o matrice de rotatie. b) Calculativalorile si vectorii proprii pentru un reflector elementar.

P 4.20 Demonstrati ca o matrice normala triunghiulara este diagonala. In particular, omatrice hermitica (simetrica) sau unitara (ortogonala) triunghiulara este diagonala.

P 4.21 Aratati ca o matrice A ∈ IR2×2 este normala daca si numai daca este simetrica

sau are structura A =

[α β−β α

]

.

P 4.22 Demonstrati urmatorul rezultat important. O matrice reala A ∈ IRn×n estenormala daca si numai daca este ortogonal cvasi-diagonalizabila, i.e. exista o matrice or-togonala Q ∈ IRn×n astfel ıncat QTAQ = diag(A1, A2, . . . , Ap), unde Ai sunt blocuri reale

1× 1 sau 2× 2, cu blocurile 2× 2 cu valori proprii complexe de forma Ai =

[αi βi

−βi αi

]

.

P 4.23 Se considera o matrice arbitrara A ∈ ICn×n. Demonstrati urmatoarele asertiuni.a) Matricile F = AH +A, G = AHA, H = AAH sunt hermitice. b) Matricea K = A−AH

este antihermitica. c) Matricea A poate fi descompusa, ın mod unic, ın suma A = B+C,unde B este hermitica (numita partea hermitica a lui A), iar C este antihermitica (numitapartea antihermitica a lui A). d) Matricea A poate fi descompusa, ın mod unic, ın sumaA = S + iT , unde S si T sunt matrice hermitice.

P 4.24 Fie A,B ∈ ICn×n doua matrice hermitice si C,D ∈ ICn×n doua matrice antiher-mitice. Demonstrati urmatoarele asertiuni. a) Matricile F = αA + βB, cu α, β ∈ IR,G = Ak, cu k ∈ IN∗, K = C2k, si, daca A este nesingulara, L = A−1 sunt matrice her-mitice. b) Matricile M = αC + βD, cu α, β ∈ IR, N = C2k+1 si, daca C este nesingulara,P = C−1 sunt matrice antihermitice.

Page 377: metode de calcul numeric matriceal. algoritmi fundamentali

4.13. PROBLEME 363

P 4.25 Demonstrati ca o matrice A ∈ ICn×n este normala daca si numai daca partea sahermitica (vezi problema 4.23) comuta cu partea sa antihermitica.

P 4.26 Aratati ca o matrice A ∈ ICn×n este normala daca si numai daca ‖Ax‖2 = ‖AHx‖2pentru toti x ∈ ICn.

P 4.27 Fie A ∈ ICn×n si multimea de indici I = i1, i2, . . . , ik , cu i1 < i2 < . . . < ik,ij ∈ 1 : n. Matricea B = A(I, I) se numeste submatrice principala a lui A. a) Dacamatricea A este hermitica (antihermitica), atunci si B este hermitica (antihermitica).b) Daca matricea A este normala, fara a fi hermitica sau antihermitica, este B normala ?

P 4.28 Fie A ∈ ICn×n o matrice hermitica si x ∈ ICn un vector nenul, arbitrar, fixat.

Notam µ =xHAx

xHxcatul Rayleigh asociat lui x. Aratati ca fiecare din intervalele (−∞, µ]

si [µ,∞) contin cel putin o valoare proprie a matricei A.

P 4.29 Fie o matrice hermitica A ∈ ICn×n. Se numeste p-sectiune a lui A o matrice(hermitica) B = QHAQ ∈ ICp×p, unde Q ∈ ICn×p este o matrice avand coloanele ortogonale(i.e. satisface conditia QHQ = Ip). Aratati ca daca spectrele λ(A) = λ1, λ2, . . . , λn siλ(B) = µ1, µ2, . . . , µp sunt ordonate descrescator, atunci λk ≥ µk, k = 1 : p, precum siµp−k+1 ≥ λn−k+1, k = 1 : p.

P 4.30 Fie A ∈ ICn×n o matrice hermitica. Aratati ca A are o valoare proprie situata ınintervalul [ a11 − µ, a11 + µ ], unde µ = ‖A(1, 2:n)‖2.

P 4.31 Dati doua exemple de matrice simetrice complexe, din care una sa fie normalasi cealalta nu. Retineti din aceasta situatie ca exista o diferenta esentiala ıntre matricelesimetrice reale si matricele simetrice complexe 65.

P 4.32 Fie A ∈ ICn×n. Aratati ca pentru orice scalar ǫ > 0 exista o norma matricealaconsistenta ‖ · ‖ (posibil dependenta de A si ǫ) pe ICn×n astfel ıncat

‖A‖ ≤ ρ(A) + ǫ,

unde ρ(A) este raza spectrala a matricei A.

P 4.33 O matrice A ∈ ICn×n se numeste convergenta daca limk→∞ Ak = 0. Demonstratica o matrice este convergenta daca si numai daca ρ(A) < 1.

P 4.34 Sa se determine localizari pentru valorile proprii ale matricelor

A =

[3 −2 12 −4 0−1 1 5

]

, B =

[0 1 −2−1 4 11 1 3

]

, C = A+ iB,

utilizand teorema discurilor lui Gershgorin.

P 4.35 Utilizand teorema discurilor lui Gershgorin, stabiliti o margine superioara pentruraza spectrala a unei matrice. Comparati acest rezultat cu cel oferit de teorema 4.10.

P 4.36 a) Fie A ∈ IRn×n si o matrice diagonala de scalare D = diag(δ1, δ2, . . . , δn), δi > 0,i = 1 : n. Stabiliti localizarea spectrului matricei A aplicand teorema discurilor Gershgorinmatricei scalate B = D−1AD. Poate scalarea sa conduca la o localizare mai buna ?

65 Pentru proprietatile matricelor simetrice complexe se poate consulta [ II ].

Page 378: metode de calcul numeric matriceal. algoritmi fundamentali

364 CAPITOLUL 4. VALORI SI VECTORI PROPRII

b) Fie A ∈ IR2×2 o matrice cu toate elementele pozitive. Sa se determine matricea D == diag(δ1, δ2) astfel ıncat ‖D−1AD‖∞ = min

δ1,δ2∈IR+‖D−1AD‖∞, unde D = diag(δ1, δ2).

Ce relatie exista ıntre acest minim si raza spectrala a matricei A ? Renuntand la conditia

ca elementele matricei A sa fie pozitive, aratati ca pentru matricea A =

[2 2−3 4

]

avem

ρ(A) < minδ1,δ2∈IR+

‖D−1AD‖∞.

P 4.37 Se considera matricea simetrica A =

[ −5 −8 8−8 7 −168 −16 7

]

. Folosind teorema

discurilor lui Gershgorin sa se extraga maximum de informatie privind localizarea valorilorproprii ale matricei A. Puteti ımbunatati localizarea prin scalare ?

P 4.38 Se spune ca o matrice A ∈ ICn×n este (strict) diagonal dominanta daca |aii| ≥ ri(|aii| > ri) pentru toti i ∈ 1 : n, unde ri =

∑nj=1j 6=i

|aij | sunt razele discurilor Gershgorin.

a) Demonstrati ca o matrice strict diagonal dominanta este nesingulara. b) Daca o matricestrict diagonal dominanta are elementele diagonale reale si pozitive atunci Reλi(A) > 0pentru toti i. c) Daca A ∈ ICn×n strict diagonal dominanta este hermitica si aii > 0,i = 1 : n, atunci λi(A) > 0 pentru toti i.

P 4.39 Demonstrati inegalitatile

a) |detA| ≤n∏

i=1

(n∑

j=1

|aij |)

, b) |detA| ≤n∏

j=1

(n∑

i=1

|aij |)

.

P 4.40 (Teorema lui Ostrovski) Fie A ∈ ICn×n. Notam cu ri =∑n

j=1j 6=i

|aij | si, respectiv,

ci =∑n

i=1i6=j

|aij |, razele discurilor Gershgorin pentru matricele A si, respectiv, AT . De

asemenea, fie α ∈ [0, 1] fixat. Atunci λ(A) ⊆ D, unde D este reuniunea discurilor

D =

n⋃

i=1

Di, Di =z ∈ IC | |z − aii| ≤ rαi c

1−αi

.

P 4.41 (Teorema lui Brauer) Fie A ∈ ICn×n. Atunci λ(A) ⊆ D, unde D este reuniuneacelor 1

2(n− 1)n ovaluri Cassini definite de

D =

n⋃

i,j=1i6=j

Oi, Oi = z ∈ IC | |z − aii||z − ajj | ≤ rirj ,

unde ri =∑n

j=1j 6=i

|aij |, i = 1 : n, sunt razele discurilor Gershgorin.

P 4.42 Calculati forme Schur pentru matricele A =

[1 −22 −3

]

, B =

[1 1−1 1

]

,

C = A + iB. In cazul matricelor reale determinati atat formele Schur reale cat si celecomplexe.

Page 379: metode de calcul numeric matriceal. algoritmi fundamentali

4.13. PROBLEME 365

P 4.43 Fie matricea A ∈ ICn×n si U ∈ ICn×k o matrice cu coloanele ortogonale (i.e.UHU = Ik). Daca functia f : ICk×k → IR+ este definita de f(X) = ‖AU − UX‖F , aratatica f admite un minim care se atinge pentru X = UHAU . Care este valoarea acestuiminim ?

P 4.44 Presupunem ca matricea A ∈ ICn×n are valorile proprii distincte si ca B ∈ ICn×n

comuta cu A, i.e. AB = BA. Aratati ca daca QHAQ = S este descompunerea Schur a luiA, atunci T = QHBQ este superior triunghiulara.

P 4.45 a) Dat un vector nenul x ∈ ICn, elaborati un algoritm de calcul al unui vectorv ∈ ICn astfel ıncat vHx = 1. b) Presupunem ca matricea A ∈ ICn×n are valorile propriiλi, i = 1 : n, iar xi, i = 1 : n, sunt vectori proprii asociati. Fie un vector v ∈ ICn astfelıncat vHx1 = 1 si matricea B = (In − x1v

H)A. Aratati ca λ(B) = 0, λ2, . . . , λn , iarvectorii xB

1 = x1, xBi = xi − (vH1 xi)x1 formeaza un set de vectori proprii ai matricei B.

P 4.46 a) Fie doi vectori nenuli x, y ∈ ICn astfel ıncat yHx = 1. Demonstrati existentasi stabiliti un mod de calcul al matricelor X,Y ∈ ICn×n care satisfac conditiile Xe1 = x,Y e1 = y si Y HX = In. b) Fie A ∈ ICn×n, λ o valoare proprie simpla a lui A si x, y vectoriiproprii la dreapta, respectiv la stanga, ai lui A asociati lui λ. Demonstrati existenta sistabiliti un mod de calcul al matricei X ∈ ICn×n care realizeaza o deflatie diagonala, i.e.

X−1AX =

[λ 00 B

]

. c) Presupunand ca dispuneti de o procedura de calcul al unui

vector propriu al unei matrice date, avand sintaxa x = vp(A), elaborati un algoritm dediagonalizare a unei matrice A ∈ ICn×n simple.

P 4.47 a) Care va fi rezultatul aplicarii metodei puterii matricei A =

[5 8 10 1 20 0 2

]

?

b) Discutati, ın raport cu parametrii reali α si β, rezultatul aplicarii metodei puterii

matricei B =

[α 1 10 1 β0 1 1

]

.

P 4.48 Presupunem ca ın locul conditiei de terminare a iterarii din algoritmii 4.1 si 4.2, deimplementare a metodei puterii si, respectiv, a metodei puterii inverse, utilizati conditiaca norma diferentei dintre vectorii calculati la doi pasi consecutivi sa devina inferioaraunei tolerante impuse, i.e.

ek = ‖y(k) − y(k−1)‖ < tol.

Scrieti, ın limbajul de programare preferat, programe pentru implementarea algoritmilormentionati si testati-le pe mai multe exemple. Puteti explica de ce o astfel de conditie detrunchiere nu functioneaza ıntodeauna pentru sirurile de vectori a caror directie converge,totusi, catre o directie proprie? Considerati atat cazul real cat si cel complex.

P 4.49 Presupunand ca dispuneti de o procedura de calcul al unui vector propriu al uneimatrice A ∈ ICn×n date, procedura avand sintaxa x = vp(A), elaborati un algoritm decalcul al unei formei Schur a matricei A. Ce relatie exista ıntre vectorii proprii utilizatipentru calculul formei Schur si cei ai matricei A ?

P 4.50 Elaborati un algoritm pentru reducerea unei matrice A ∈ IRn×n la forma superiorHessenberg H = TAT−1, unde T este o secventa de transformari elementare stabilizateMiPi, i = 2 : n− 1 (de tipul celor utilizate, de exemplu, la eliminarea gaussiana).

Page 380: metode de calcul numeric matriceal. algoritmi fundamentali

366 CAPITOLUL 4. VALORI SI VECTORI PROPRII

P 4.51 Presupunem A ∈ ICn×n si z ∈ ICn date. Elaborati un algoritm pentru calculul uneimatrice unitare (ın cazul real, ortogonale) Q astfel ıncat QHAQ este superior Hessenbergsi QHz este coliniar cu vectorul e1.

P 4.52 Fie H ∈ IRn×n o matrice superior Hessenberg. Scrieti un algoritm care sa testezedaca H este ın forma Schur reala.

P 4.53 Elaborati un algoritm pentru calculul valorilor si vectorilor proprii ai matriceiA = In + uvH , unde u, v ∈ ICn sunt vectori nenuli dati.

P 4.54 Se considera data o pereche (valoare proprie, vector propriu asociat)= (λ, x) realaa unei matrice H ∈ IRn×n superior Hessenberg. Elaborati un algoritm de calcul al unei

matrice ortogonale Q astfel ıncat matricea QTHQ sa aiba structura QTHQ =

[λ fT

0 G

]

,

unde matricea G ∈ IR(n−1)×(n−1) este ın forma superior Hessenberg.

P 4.55 Fie matricea superior Hessenberg H ∈ IRn×n si urmatoarea procedura recurentade calcul al matricei succesor H ← H ′:

1. Se aplica matricei H procedura de triangularizare prin eliminare gaussiana cu pi-votare partiala Mn−1Pn−1 . . .M1P1H = R, unde Pk sunt matrice de permutareelementare, Mk matrice inferior triunghiulare elementare, iar R este o matrice su-perior triunghiulara.

2. H ← H ′ = RP1M−11 . . . Pn−11M

−1n−1,

care defineste o iteratie a algoritmului LR modificat (un precursor al algoritmului QR).Aratati ca matricea succesor H ′ a) are o structura superior Hessenberg si b) este asemeneacu matricea H .

P 4.56 Se considera matricea bloc superior triunghiulara

A =

[A11 A12 A13

0 A22 A23

0 0 A33

]

,

cu A22 ∈ IR2×2 avand valori proprii complexe si distincte de valorile proprii ale matricelorA11 si A33. Se cere sa se calculeze un subspatiu A-invariant real asociat valorilor propriiale matricei A22, i.e. vectorii liniar independenti x1, x2 ∈ IRn care sa formeze o baza aacestui subspatiu.

P 4.57 Calculati valorile si vectorii proprii pentru matricele simetrice A, B si pentrumatricea hermitica C, unde

A =

[1 22 3

]

, B =

[1 2 32 4 53 5 6

]

, C =

[1 1 + i −i

1− i 2 −1− ii −1 + i 3

]

.

Verificati ca vectorii proprii sunt ortogonali.

P 4.58 Fie o matrice hermitica A = AH ∈ ICn×n. Adaptati algoritmul TQ pentrutridiagonalizarea unitara a matricei A astfel ıncat matricea T = QHAQ sa fie tridiagonala,simetrica si reala.

Page 381: metode de calcul numeric matriceal. algoritmi fundamentali

4.13. PROBLEME 367

P 4.59 Adaptati algoritmul TQ pentru tridiagonalizarea prin transformari unitare (orto-gonale) de asemanare a unei matrice antihermitice (antisimetrice) A ∈ ICn×n (A ∈ IRn×n).

P 4.60 a) Se considera matricea H ∈ IR2×2 cu valori proprii reale si fie Hknot=

[α γǫ β

]

matricea curenta a sirului QR al matricii H . Utilizand deplasarea µk = β calculatimatricea succesor Hk+1. Ce se poate spune despre convergenta sirului QR din examinareaexpresiei elementului Hk+1(2, 1)?

b) Se considera matricea simetrica T ∈ IR2×2 si fie Tknot=

[α ǫǫ β

]

matricea curenta a

sirului QR simetric al matricii T . Utilizand deplasarea µk = β calculati matricea succesorTk+1. Ce se poate spune despre convergenta sirului QR simetric din examinarea expresieielementelor extradiagonale Tk+1(1, 2) = Tk+1(2, 1)?

P 4.61 a) Consideram matricea simetrica A =

[0 dd 0

]

, cu d 6= 0. Calculati valorile

si vectorii proprii ai matricei A. b) Fie matricea D = diag(d1, d2 . . . , dn), unde di 6= dj ,

∀ i 6= j, si B =

[0 DD 0

]

∈ IR2n×2n. Scrieti un algoritm pentru calculul valorilor si

vectorilor proprii ai matricei B.

P 4.62 a) Fie T ∈ IRn×n o matrice tridiagonala, simetrica si pozitiv definita. Scrieti siimplementati urmatorul algoritm iterativ:

1. Pentru k = 1, 2, . . .1. Se calculeaza factorul Cholesky L al matricei T .

2. T ← T ′ = LTL.

Ce constatati? b) Aratati ca ın cazul n = 2 si t11 ≥ t22 sirul matricelor T calculat dealgoritmul de la punctul a) converge catre Λ = diag(λ1, λ2), unde λ1, λ2 = λ(T ).

P 4.63 a) Se considera o matrice tridiagonala simetrica T ∈ IRn×n. Sa se arate ca dacaT are valori proprii multiple, atunci T nu poate fi ireductibila. Mai mult, sa se arate cadaca T are o valoare proprie cu ordinul de multiplicitate k ≥ 2, atunci are cel putin k − 1elemente subdiagonale (si, corespunzator, cele simetrice supradiagonale) nule. b) Aplicatialgoritmul TQ de reducere la forma tridiagonala unei matrice simetrice avand o valoareproprie multipla. Ce constatati ? Puteti da o justificare celor constatate ?

P 4.64 Fie o matrice simetrica A ∈ IRn×n si o iteratie Jacobi A ← A′ = JTAJ , undeJ(p, q, θ) este o rotatie plana de unghi θ ın planul (p, q). Sa se arate ca, pentru ıntregii p siq fixati, rotatia care anuleaza elementele A(p, q) si A(q, p) asigura minimizarea, ın raportcu unghiul θ, a normei Frobenius a matricei elementelor extradiagonale ale matricei A′.

P 4.65 a) Fie date A =

[α γγ β

]

∈ IR2×2, cu λ(A) = λ1, λ2 , si un scalar real δ.

Aratati ca, daca δ ∈ [λ1, λ2], atunci exista o rotatie Jacobi reala J =

[c s−s c

]

astfel

ıncat (JTAJ)(1, 1) = δ. b) Consideram matricea simetrica A ∈ IRn×n. Elaborati unalgoritm de calcul al unei secvente de rotatii Jacobi Q = J1J2 . . . , astfel ıncat matricea

B = QTAQ sa aibe toate elementele diagonale egale b11 = b22 = . . . = bnn =1

ntr(A) =

=1

n

∑n

i=1λi(A).

Page 382: metode de calcul numeric matriceal. algoritmi fundamentali

368 CAPITOLUL 4. VALORI SI VECTORI PROPRII

P 4.66 Elaborati algoritmi tip Jacobi pentru calculul valorilor proprii ale unei matriceantihermitice (antisimetrice).

P 4.67 Fie matricea A =

[1 + ǫ 10 1− ǫ

]

∈ IR2×2, cu 0 < ǫ ≪ 1. Sa se calculeze

numarul de conditionare al celor doua valori proprii si al spectrului matricei A. Ce seıntampla daca ǫ→ 0 ?

P 4.68 Sa se arate ca sensibilitatea unei valori proprii simple λk ∈ λ(A) ın raport cuvariatiile elementului aij = A(i, j) este data de

∂λk

∂aij=

yk(i)xk(j)

yHk xk

,

unde xk si yk sunt vectori proprii la dreapta, respectiv la stanga, ai matricei A asociativalorii proprii λk.

P 4.69 Fie matricea bidiagonala A ∈ IRn×n

A =

n n 0 · · · 0 00 n− 1 n · · · 0 0

0 0 n− 2. . . 0 0

......

......

......

0 0 0 · · · 2 n0 0 0 · · · 0 1

.

Sa se calculeze numarul de conditie al valorii proprii λk = k. Pentru n = 20 sa se dea oevaluare a numarului de conditie pentru valorile proprii λ1 = 1 si λ20 = 20. Pentru acelasin = 20 sa se calculeze, cu ajutorul functiei eig din MATLAB, valorile proprii ale matriceiA care difera de A numai prin elementul A(20, 1) = 0.01. Ce constatati ?

P 4.70 Se considera matricea superior Hessenberg A ∈ IRn×n

A =

n n− 1 n− 2 · · · 2 1n− 1 n− 1 n− 2 · · · 2 1

0 n− 2 n− 2. . . 2 1

......

. . .. . .

. . ....

0 0 0. . . 2 1

0 0 0 · · · 1 1

.

a) Aratati ca detA = 1. b) Fie matricea perturbata F = A + E, unde E = ǫG, cumatricea G avand un singur element nenul G(n, 1) = 1. Aratati ca detF = 1− (n− 1)!ǫ.Evaluati detF pentru n = 20 si ǫ = 10−10. c) Pentru n = 10, calculati cu ajutorul functieieig din MATLAB, vectorii proprii la stanga si la dreapta si, pe aceasta baza, numerele deconditionare κλmax si κλmin

ale valorilor proprii maxima si, respectiv, minima ale matriceiA. Ce constatati ?

P 4.71 a) Elaborati un algoritm performant de calcul al polinomului caracteristic al uneimatrice.

b) Elaborati un algoritm performant de rezolvare a ecuatiilor algebrice, i.e. a ecuatiilorde tipul p(λ) = 0 unde p este un polinom cu coeficenti reali sau complecsi.

Page 383: metode de calcul numeric matriceal. algoritmi fundamentali

Capitolul 5

Descompunerea valorilorsingulare

Descompunerea valorilor singulare (DVS) joaca un rol fundamental ın evidentiereaproprietatilor structurale legate nemijlocit de conceptul de rang matriceal. In con-textul calcului numeric se impune o reevaluare a notiunii de rang ıntrucat, da-torita tolerantelor admise, definirea uzuala capata un caracter ambiguu. In acestecircumstante, devine utila introducerea conceptului de distanta pana la o matricede rang imediat inferior si a notiunii pragmatice de rang numeric.

Calculul DVS este intim legat de conceptul de ortogonalitate fiind bazat, ınexclusivitate, pe utilizarea transformarilor unitare (ortogonale). Acest fapt inducecalitati numerice remarcabile tuturor procedurilor de rezolvare a problemelor ceapeleaza la DVS.

In ceea ce priveste aplicatiile, ın cadrul general al matricelor de rang nemaximal,DVS constituie cel mai bun mijloc numeric de rezolvare a numeroase probleme demetrica euclidiana cum sunt problema generala a celor mai mici patrate, calcululbazelor ortogonale pentru subspatii liniare etc.

5.1 Formularea problemei

5.1.1 Valori singulare. Descompunerea valorilor singulare

Avand ın vedere conexiunea intima a descompunerii valorilor singulare cu conceptulde rang 1, vom introduce mai ıntai definitia uzuala a notiunii de rang matriceal.Fie A ∈ ICm×n 2.

1 Unele dintre notiunile utilizate ın continuare au fost definite, ıntr-un context introductiv, ıncapitolul 1. Pentru confortul cititorului, preferam reluarea acestora ın cadrul extins si specializatal capitolului de fata.

2 Vom considera cazul, mai general, al matricelor complexe. Particularizarea rezultatelor cucaracter teoretic pentru matrice reale este imediata reducandu-se, practic ın toate situatiile, laınlocuirea operatorului hermitic (i.e. de transpunere si conjugare) cu operatorul de transpunere.

In dezvoltarile algoritmice cazul matricelor reale va fi tratat distinct.

369

Page 384: metode de calcul numeric matriceal. algoritmi fundamentali

370 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Definitia 5.1 Rangul r al matricei A este numarul maxim de coloane liniar inde-pendente ale lui A, sau, echivalent,

r = rangA = dim(ImA). (5.1)

Se poate arata (vezi cap. 1) ca rangA = rangAT si, astfel, orice matrice areacelasi numar maxim de linii si coloane liniar independente. Deci, rangul uneimatrice A este dimensiunea maxima a unei submatrice nesingulare A(I,J ), I == i1, i2, . . . , ir, J = j1, j2, . . . , jr a lui A.

In vederea elaborarii unor proceduri fiabile de determinare numerica a ranguluisuntem interesati ın definirea transformarilor matriceale pentru care rangul este uninvariant. In acest sens introducem

Definitia 5.2 Doua matrice A,B ∈ ICm×n se numesc echivalente daca exista ma-tricele nesingulare S ∈ ICm×m si T ∈ ICn×n astfel ıncat

B = SAT. (5.2)

Daca matricele S si T sunt unitare, atunci vom spune ca A si B sunt unitar echiva-lente.

In cazul real este suficient sa ne rezumam la matrice de transformare reale.Intr-o astfel de situatie, daca matricele S si T sunt ortogonale vom spune ca A siB sunt ortogonal echivalente.

In vederea determinarii rangului unei matrice date vom urma o cale deja familiaradin capitolele precedente, respectiv, vom calcula o matrice de acelasi rang cu ma-tricea data la care rangul sa poata fi evaluat prin simpla inspectie. Astfel de matricesunt matricele cu structura diagonala la care rangul este, evident, egal cu numarulelementelor diagonale nenule. Din motive de fiabilitate numerica ne vom restrangela utilizarea transformarilor unitare, respectiv ortogonale ın cazul real.

Avem urmatorul rezultat important.

Teorema 5.1 (Descompunerea valorilor singulare - DVS) Daca A ∈ ICm×n,atunci exista matricele unitare U ∈ ICm×m si V ∈ ICn×n astfel ıncat

UHAV = Σ =

[Σ1 00 0

]

, (5.3)

undeΣ1 = diag(σ1, σ2, ..., σr) ∈ IRr×r, (5.4)

cuσ1 ≥ σ2 ≥ ... ≥ σr > 0. (5.5)

ExpresiaA = UΣV H (5.6)

defineste descompunerea valorilor singulare a matricei A. Numerele nenegative σi,i = 1 : p, p = min(m,n) (σi = 0, i = r+1 : p) se numesc valori singulare alematricei A. Coloanele matricei unitare U se numesc vectori singulari la stanga, iarcoloanele lui V se numesc vectori singulari (la dreapta) ai matricei A.

In cazul real se obtine acelasi rezultat, cu matricele U si V ortogonale, i.e. cuvectorii singulari reali.

Page 385: metode de calcul numeric matriceal. algoritmi fundamentali

5.1. FORMULAREA PROBLEMEI 371

Demonstratie. Daca A = 0, atunci (5.3)-(5.5) sunt satisfacute de r = 0, U = Im,V = In, Σ = 0. Daca A 6= 0, atunci ‖A‖2 6= 0 si, folosind tehnica inductiei finite,vom obtine matricea cu structura din (5.3) ın r pasi.

Pasul 1. Conform definitiei normei spectrale exista un vector de norma euclidia-na unitara v1 ∈ ICn, pentru care ‖A‖2 = max‖x‖2=1 ‖Ax‖2 = ‖Av1‖2 si fie u1 ∈ ICm

definit de u1 =Av1‖A‖2

avand, evident, ‖u1‖2 = 1. Fie, acum, U1 ∈ ICm×(m−1) si

V1 ∈ ICn×(n−1) completari ale vectorilor u1 si v1 pana la matrice unitare 3, i.e. astfelıncat matricele U1 =

[

u1 U1

], V1 =

[

v1 V1]sa fie unitare. Atunci

Σ(1) def= UH

1 AV1 =

[uH1 Av1 uH1 AV1UH1 Av1 UH

1 AV1

]

=

[σ1 wH

0 B1

]

,

ıntrucat UH1 Av1 = UH

1 u1‖A‖2 = 0 si unde am utilizat notatiile evidente

σ1def= uH1 Av1 = ‖A‖2 (5.7)

si wH def= uH1 AV1, B1

def= UH

1 AV1. In continuare, ıntrucat transformarile unitareconserva norma spectrala, avem ‖Σ(1)‖2 = ‖A‖2 = σ1 si

∥∥∥∥Σ(1)

[σ1w

]∥∥∥∥

2

2

=

∥∥∥∥

[σ21 + wHwB1w

]∥∥∥∥

2

2

= (σ21 + wHw)2 + ‖B1w‖22 ≥ (σ2

1 + ‖w‖22)2.

Pe de alta parte, datorita consistentei normei spectrale, avem

∥∥∥∥Σ(1)

[σ1w

]∥∥∥∥

2

2

≤ ‖Σ(1)‖22∥∥∥∥

[σ1w

]∥∥∥∥

2

2

= σ21(σ

21 + ‖w‖22).

Rezulta σ21 + ‖w‖22 ≤ σ2

1 , i.e. ‖w‖2 = 0 sau w = 0. Deci

Σ(1) = UH1 AV1 =

[σ1 00 B1

]

(5.8)

si obiectivul primului pas este atins.Pasul k. Presupunem ca ın primii k− 1 pasi ai procedurii de diagonalizare am

obtinut

Σ(k−1) = UHk−1 · · ·UH

2 UH1 AV1V2 · · ·Vk−1 =

[

Σ(k−1)1 00 Bk−1

]

,

unde Σ(k−1)1 = diag(σ1, σ2, . . . , σk−1), cu σ1 ≥ σ2 ≥ . . . ≥ σk−1 > 0. Daca Bk−1 =

0, atunci r = k − 1 si procedura este ıncheiata. Daca Bk−1 6= 0, atunci – cuargumentele de la pasul 1 – exista matricele unitare Uk si Vk astfel ıncat

UHk Bk−1Vk =

[σk 00 Bk

]

, σk = ‖Bk−1‖2 > 0. (5.9)

3Pentru argumentarea existentei acestor completari si a modalitatilor de calcul, vezi observatia4.3 din capitolul 4.

Page 386: metode de calcul numeric matriceal. algoritmi fundamentali

372 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Definind matricele unitare Uk = diag(Ik−1, Uk), Vk = diag(Ik−1, Vk) rezulta

Σ(k) = UHk Σ(k−1)Vk =

[

Σ(k)1 00 Bk

]

, (5.10)

cu Σ(k)1 = diag(σ1, σ2, . . . , σk).

Pentru a ıncheia demonstratia este suficient sa aratam ca σk ≤ σk−1. Dinexpresia (5.9), scrisa pentru pasul k − 1, avem

σk−1 = ‖Bk−2‖2 =

∥∥∥∥

[σk−1 00 Bk−1

]∥∥∥∥2

≥ ‖Bk−1‖2 = σk.

In concluzie, procedura de diagonalizare poate fi initiata si apoi continuata.Astfel, fie vom obtine Br = 0 pentru r < p, fie procedura se va incheia cu r = p == min(m,n), i.e.

Σ(r) = UHr · · ·UH

2 UH1 AV1V2 · · ·Vr = UHAV =

[

Σ(r)1 00 0

]

, (5.11)

undeU = U1U2...Ur, V = V1V2...Vr (5.12)

sunt matrice unitare. Cu Σ1def= Σ

(r)1 si Σ

def= Σ(r) obtinem (5.3). Demonstratia este

completa.In cazul matricelor reale cursul demonstratiei este identic cu mentiunea ca ın

locul transformarilor complexe se utilizeaza transformari reale, i.e. ortogonale. 3

Exemplul 5.1 Este usor de verificat ca matricea

A =

[1.60 0.36 0.48−1.20 0.48 0.64

]

admite o DVS A = UΣV T definita de

U =

[0.8 0.6−0.6 0.8

]

, Σ =

[2 0 00 1 0

]

, V =

1 0 00 0.6 0.80 0.8 −0.6

si are, evident, valorile singulare σ1 = 2 si σ2 = 1. Matricea B = AT are, la fel deevident, aceleasi valori singulare si B = V ΣTUT este o DVS a sa. Valorile singulareale unei matrice reale au o interpretare interesanta ın geometria spatiului euclidian.Concret, valorile singulare nenule ale matricei A ∈ IRm×n sunt lungimile semiaxelorhiperelipsoidului E = AS ⊂ ImA ⊂ IRm unde S este hipersfera cu centrul ın originesi de raza unitara din IRn, i.e.

E = y ∈ IRm | y = Ax, x ∈ IRn, ‖x‖2 = 1.

In figura 5.1 sunt reprezentate elipsele EA si EB pentru matricele A, de mai sus, si

Page 387: metode de calcul numeric matriceal. algoritmi fundamentali

5.1. FORMULAREA PROBLEMEI 373

&%'$

&%'$ '

&$%

#"

!-

6

*

-

6

*

HHHHHHHHHHHj

-

6

-σ1=2

6?

σ2=1

-σ1=2

σ2=1

0

x1

x2

1

0 x1

x2

x3

1

y1

y2

y3

y1

y2

−→

−→

IR2

EA

IR3

EB

ImA = IR2

ImAT ⊂ IR3

Fig. 5.1: O interpretare geometrica a valorilor singulare

B = AT . De remarcat faptul ca EA include si punctele interioare ale elipsei ın timpce EB cuprinde numai punctele de pe frontiera. 3

Fie o matrice A ∈ ICm×n cu rangA = r si DVS A = UΣV H . In continuare vomutiliza intensiv urmatoarele notatii ce definesc partitii ale matricelor de transformareU si V induse de structura matricei Σ.

U1def= U( : , 1:r), U2

def= U( : , r+1:m),

V1def= V ( : , 1:r), V2

def= V ( : , r+1:n).

(5.13)

Prezentam doua consecinte imediate ale teoremei 5.1.

Corolar 5.1 Orice matrice A ∈ ICm×n poate scrisa ca suma de produse externe devectori singulari ponderate cu valorile singulare, i.e. cu notatiile (5.13) avem

A = U1Σ1VH1 =

r∑

j=1

σjujvHj , (5.14)

unde matricele Wjdef= ujv

Hj , j = 1 : r poarta numele de componente principale ale

matricii A.

Corolar 5.2 Fie o matrice A ∈ ICm×n cu rangA = r. Atunci exista matricelenesingulare S ∈ ICm×m si T ∈ ICn×n astfel ıncat

SAT =

[Ir 00 0

]

, (5.15)

Page 388: metode de calcul numeric matriceal. algoritmi fundamentali

374 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

i.e. orice matrice este echivalenta cu o matrice cu structura din (5.15).

Demonstratie. Fie A = UHΣV DVS a matricei A si matricele nesingulare P,R ∈∈ ICr×r astfel ıncat PΣ1R = Ir , e.g. P = R = Σ

− 12

1def= diag(σ

− 12

1 , σ− 1

2

2 , . . . , σ− 1

2r ).

Atunci (5.15) este satisfacuta, de exemplu, de catre matricele nesingulare S == diag(P, Im−r)U

H si T = V diag(R, In−r). 3

Vom nota cu σ(A) multimea valorilor singulare ale matricei A. Rescriind (5.3)ın forma AV = UΣ sau AHU = V ΣT obtinem imediat relatiile

Avj = σjuj , AHuj = σjvj , j = 1 : p, p = min(m,n), (5.16)

care indica o analogie cu definirea vectorilor proprii ale unei matrice patrate siconstituie o justificare pentru denumirea de vectori singulari data coloanelor uj,respectiv vj , ale matricelor U si V care definesc DVS. Mai mult, vectorii singularidin (5.16) sunt efectiv vectori proprii ai unor matrice derivate din matricea A (veziteorema urmatoare). De remarcat si faptul ca, desi echivalenta (5.15) apare ca oreducere completa dictata de necesitatile de evidentiere a rangului unei matrice,echivalenta unitara (ortogonala) care defineste DVS ofera, prin valorile si vectoriisingulari, o informatie mult mai bogata, utila ın numeroase evaluari cantitative.

Demonstratia prezentata pentru teorema 5.1 nu are un caracter constructivıntrucat calculul vectorului pentru care se realizeaza norma spectrala prezinta difi-cultati majore. Alegerea acestei demonstratii se datoreaza ordonarii naturale a va-lorilor singulare si evidentierii conexiunii stranse dintre valorile singulare si normaspectrala.

O modalitate de calcul al DVS este oferita de urmatorul rezultat.

Teorema 5.2 Valorile singulare nenule ale matricei A ∈ ICm×n sunt radacinilepatrate (pozitive) ale valorilor proprii nenule ale matricelor hermitice pozitiv semi-definite

B = AHA ∈ ICn×n sau C = AAH ∈ ICm×m, (5.17)

i.e. daca λ1 ≥ λ2 ≥ · · · ≥ λr > 0, sunt cele r valori proprii nenule ale lui B (sauC), atunci

σi =√

λi, i = 1 : r. (5.18)

Mai mult, vectorii singulari la stanga ui = Uei, i = 1 :m, sunt vectori proprii aimatricei C, iar vectorii singulari (la dreapta) vj = V ej, j = 1 : m, sunt vectoriproprii ai matricei B.

In cazul real, asertiunile de mai sus sunt adevarate, cu mentiunea ca matriceleB si C sunt simetrice pozitiv semidefinite.

Demonstratie. Din (5.3) obtinem

B = AHA = V ΣTUHUΣV H = V ΣTΣV H = V

[Σ2

1 00 0

]

V H ,

C = AAH = UΣV HV ΣTUH = UΣΣTUH = U

[Σ2

1 00 0

]

UH .

(5.19)

Page 389: metode de calcul numeric matriceal. algoritmi fundamentali

5.1. FORMULAREA PROBLEMEI 375

Prin urmare, matricea B este unitar asemenea cu matricea diagonala S1 = ΣTΣ == diag(σ2

1 , σ22 , . . . , σ

2r , 0, . . . , 0), respectiv matricea C este unitar asemenea cu ma-

tricea diagonala S2 = ΣΣT = diag(σ21 , σ

22 , . . . , σ

2r , 0, . . . , 0), de unde rezulta imediat

toate asertiunile teoremei. 3

Un rezultat similar, care conexeaza valorile singulare ale unei matrice cu valorileproprii ale altei matrice, este prezentat ın propozitia urmatoare.

Propozitia 5.1 Fie matricea A ∈ ICm×n, p = min(m,n) si σ1, σ2, . . . , σp valorilesingulare ale matricei A. Atunci valorile proprii ale matricei

F =

[0 AAH 0

]

(5.20)

sunt σ1, σ2, . . . , σp, −σ1,−σ2, . . . ,−σp si |m− n| valori proprii nule.

Demonstratie. Consideram cazul m ≥ n (cazul m < n se trateaza absolut

similar). Fie A = UΣV H DVS a matricei A, Sdef= Σ(1 : n, :), U

def= 1√

2U(1 : n, :),

Udef= U(n+1 : m, :) si V

def= 1√

2V . Atunci, prin calcul direct, se constata ca matricea

Qdef=

[U −U U

V V 0

]

∈ IC(m+n)×(m+n) (5.21)

este unitara si ca

G = QHFQ =

S 0 00 −S 00 0 0

. (5.22)

Cum λ(F ) = λ(G) si S = diag(σ1, σ2, . . . , σn), propozitia este demonstrata. 3

Observatia 5.1 Teorema 5.1 arata ca orice matrice admite o DVS dar nu afirmanimic despre unicitatea acestei descompuneri. Utilizand si teorema 5.2 putem safacem cateva consideratii asupra acestui aspect.

In primul rand, valorile singulare ale unei matrice A ∈ ICm×n, fiind radacinilepatrate pozitive ale valorilor proprii ordonate ale matricelor AHA sau AAH , suntunic determinate.

In ceea ce priveste unicitatea matricelor de transformare este suficient sa nemarginim la cazul 4 m ≤ n.

Daca cele m valori singulare sunt distincte, atunci sunt distincte si valorile pro-prii ale matricei hermitice AAH . In aceasta situatie, coloanele matricei de trans-formare U , fiind vectori proprii de norma euclidiana unitara ai matricei AAH , suntdeterminate pana la multiplicarea cu numere complexe de modul unitar. Cu altecuvinte, ın conditiile mentionate, matricea U este determinata pana la o postmul-tiplicare cu o matrice diagonala m ×m cu elementele diagonale de modul unitar,i.e. daca avem doua DVS

A = U1ΣVH1 = U2ΣV

H2 ,

4 Cazul matricelor cu m ≥ n se reduce la cel analizat daca ın locul matricei A se consideramatricea AH ∈ ICn×m. Daca A = UΣV H este o DVS a lui A, atunci AH = VΣTUH este o DVSa matricei AH .

Page 390: metode de calcul numeric matriceal. algoritmi fundamentali

376 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

atunci

U2 = U1D cu D = diag(eiθ1, eiθ2 , . . . , eiθm), θj ∈ IR, j = 1:m.

(In cazul real, cu matrice de transformare reale, matricea U este determinata, evi-dent, pana la semnul coloanelor sale.)

Daca m = n, A este nesingulara si U este fixata, atunci matricea Σ este nesin-gulara si V este unic determinata de V = Σ−1UHA.

Daca m < n, atunci Σ are (cel putin) ultimele n − m coloane nule si, deci,ultimele n − m coloane ale matricei V sunt date de orice completare pana la omatrice unitara a primelor m coloane, i.e. ın mod sigur matricea V nu este unicdeterminata. 3

In continuarea acestei sectiuni introductive prezentam unele generalizari derivatedin conceptul de valori singulare.

5.1.2 Descompunerea polara

Fie A ∈ ICm×n, rangA = r si DVS (5.3) A = UΣV H a lui A. Utilizand notatiile(5.13) si introducand noile notatii

S =

Σ(1 : n, :) daca m ≥ nΣ(:, 1 : m) daca m ≤ n ,

U = U(:, 1 : n) daca m ≥ nV = V (:, 1 : m) daca m ≤ n ,

(5.23)putem sa scriem

A = U1VH1 V1Σ1V

H1 =WP1 sau A = U1Σ1U

H1 U1V

H1 = P2W, (5.24)

unde

Wdef= U1V

H1 ∈ ICm×n, P1

def= V1Σ1V

H1 ∈ ICn×n, P2

def= U1Σ1U

H1 ∈ ICm×m

(5.25)si

A =

USV H = UV HV SV H = Y P1 daca m ≥ nUSV H = USUHUV H = P2Z daca m ≤ n , (5.26)

undeY

def= UV H ∈ ICm×n, Z

def= UV H ∈ ICm×n. (5.27)

Este usor de constatat ca matricele P1 si P2 sunt hermitice si pozitiv semidefinite curangP1 = rangP2 = rangA, Y este o matrice cu coloanele ortogonale (i.e. Y HY == In), Z este o matrice cu liniile ortogonale (i.e. ZZH = Im) si, ın consecinta,matricele Y si Z au norma spectrala unitara. In cazul real, evident, matricele W ,P1, P2, Y si Z pot fi reale.

Putem introduce urmatoarea definitie.

Definitia 5.3 Factorizarea

A =

Y P1 daca m ≥ nP2Z daca m ≤ n (5.28)

Page 391: metode de calcul numeric matriceal. algoritmi fundamentali

5.1. FORMULAREA PROBLEMEI 377

unde matricele P1, P2, Y si Z sunt cele definite mai sus, se numeste descompunereapolara 5 a matricei A.

Fie matricele hermitice, pozitiv semidefinite B = AHA, C = AAH si descompune-rile lor spectrale B = V ΛBV

H si C = UΛCUH , unde ΛB = diag(λ1, λ2, . . . , λn),

ΛC = diag(λ1, λ2, . . . , λm), cu toti λi nenegativi. Definim B12

def= V Λ

12

BVH def

=def= V diag(

√λ1,√λ2, . . . ,

√λn)V

H si, similar, C12

def= UΛ

12

AUH .

Se poate arata (exercitiu pentru cititor) ca matricele P1 si P2 din descompunerea

polara sunt unic determinate de P1 = (AHA)12 , respectiv de P2 = (AAH)

12 , iar

matricele Y si Z sunt unic determinate daca r = n, respectiv r = m.

5.1.3 Descompunerea CS

In operarea numerica cu subspatii liniare se dovedeste a fi extrem de utila asa numitadescompunere CS 6 (DCS) a matricelor unitare (ortogonale) care, printre altele,permite introducerea notiunii de distanta dintre subspatii ın cazul multidimensionalsi care are conexiuni naturale cu DVS. Introducem DCS prin urmatoarea teorema.

Teorema 5.3 Fie o matrice unitara Q ∈ ICn×n cu urmatoarea partitie

Q =

[Q11 Q12

Q21 Q22

]

, Q11 ∈ ICk×k, Q22 ∈ ICl×l, k + l = n. (5.29)

Atunci exista matricele unitare U1, V1 ∈ ICk×k si U2, V2 ∈ ICl×l astfel ıncat

W =

[U1 00 U2

]H[Q11 Q12

Q21 Q22

][V1 00 V2

]

=

C S 0−S C 00 0 Il−k

pt. k ≤ l

Ik−l 0 00 C S0 −S C

pt. k > l

(5.30)unde

C = diag(c1, c2, . . . , cp) ∈ IRp×p cu c1 ≥ c2 ≥ . . . ≥ cp,S = diag(s1, s2, . . . , sp) ∈ IRp×p cu s1 ≤ s2 ≤ . . . ≤ sp,

(5.31)

p = min(k, l) si c2i + s2i = 1, i = 1:p , i.e. ci si si pot fi scrise sub forma

ci = cos θi, si = sin θi, cu 0 ≤ θ1 ≤ θ2 ≤ . . . ≤ θp ≤π

2. (5.32)

Egalitatea (5.30) se numeste descompunerea CS a matricei unitare Q.In cazul real, i.e. atunci cand Q este ortogonala, matricele de transformare bloc

diagonale pot fi reale, i.e. ortogonale.

5 Denumirea de ”descompunere polara” este justificata de analogia cu reprezentarea polaraz = ρeiθ a numerelor complexe, la care factorul ρ este nenegativ, iar factorul eiθ are modululunitar.

6 Denumirea CS provine de la initialele functiilor cosinus si sinus, matricea ortogonala trans-formata avand aspectul unei rotatii generalizate (vezi mai departe).

Page 392: metode de calcul numeric matriceal. algoritmi fundamentali

378 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Demonstratie. Consideram cazul k ≤ l = n−k. Fie Q11 = U1CVH1 DVS a blocului

Q11 unde C = diag(c1, c2, . . . , ck) cu 1 ≥ c1 ≥ c2 ≥ . . . ≥ ck ≥ 0, prima inegalitatedatorandu-se faptului ca σ1(Q) = 1 si c1 = σ1(Q11) ≤ σ1(Q) (vezi exercitiul 5.7).Consideram acum matricea

Q =

[UH1 00 Il

]

Q

[V1 00 Il

]

=

[C UH

1 Q12

Q21V1 Q22

]

,

care este unitara ca produs de matrice unitare. Din egalitatea blocurilor 11 dinrelatia QHQ = In obtinem

V H1 QH

21Q21V1 = Ik − C2 def= S2 = diag(s21, s

22, . . . , s

2k),

cu s2i = 1− c2i , i = 1:k. Luand si =√

1− c2i , obtinem 0 ≤ s1 ≤ s2 ≤ . . . ≤ sk ≤ 1.

In continuare vom presupune ca matricea S este nesingulara 7. Fie acum matricea

U21def= −Q21V1S

−1 care are coloanele ortogonale (verificati!) si U22 o completare a

sa pana la o matrice unitara, i.e. astfel ıncat matricea U2def= [U21 U22 ] ∈ ICl×l sa

fie unitara (vezi si observatia 4.3). Avem

UH2 Q21V1 =

[

UH21

UH22

]

Q21V1 =

[

−S−1V H1 QH

21Q21V1

−UH22U21S

]

=

[

−S0

]

.

Mai departe, matricea

Q =

[UH1 00 UH

2

]

Q

[V1 00 Il

]

=

C UH1 Q12[

−S0

]

UH2 Q22

este unitara. Egalitatea blocurilor 22 din QQH = In conduce la

UH2 Q22Q

H22U2 = Il −

[S2 00 0

]

=

[C2 00 Il−k

]

.

In continuare vom presupune ca matricea C este nesingulara 8. Definim matriceaV2 prin

V2def= QH

22U2

[C−1 00 Il−k

]

care, ın virtutea ultimei relatii de mai sus, este unitara si

UH2 Q22V2 =

[C 00 Il−k

]

.

7 Daca S este singulara, atunci s1 = s2 = . . . = sq = 0 pentru un q ≤ l si corespunzator

c1 = c2 = . . . = cq = 1. In acest caz primele q linii si coloane ale matricei Q sunt eTi respectiv eii = 1 : q care au deja structura din (5.30) si pot fi separate (pentru detalii suplimentare se poateconsulta si demonstratia teoremei ce urmeaza). Demonstratia pentru restul matricei decurge camai sus.

8 Daca C este singulara, atunci cq = cq+1 = . . . = cl = 0 pentru un q ≥ 1 si corespunzator

sq = sq+1 = . . . = sl = 1. In acest caz se procedeaza similar cu modul prezentat ın nota de piciorprecedenta.

Page 393: metode de calcul numeric matriceal. algoritmi fundamentali

5.1. FORMULAREA PROBLEMEI 379

In sfarsit, notand Udef= diag(U1, U2), V

def= diag(V1, V2) obtinem urmatoarea

structura a matricei W

W = UHQV =

C X Y−S C 00 0 Ik−l

,

unde [X Y ]def= UH

1 Q12V2.Rezultatul urmarit se obtine imediat din faptul ca matricea W este unitara, din

egalitatea WHW = In rezultand X = S si Y = 0.In cazul k > l = n−k se ıncepe cu descompunerea valorilor singulare ale blocului

Q22, dupa care cursul demonstratiei este similar cu cel de mai sus.In cazul real toate transformarile unitare utilizate pot fi luate ortogonale, cursul

demonstratiei fiind identic. 3

5.1.4 Descompunerea valorilor singulare generalizate

O generalizare posibila a descompunerii valorilor singulare este diagonalizarea si-multana a doua matrice sau, echivalent, diagonalizarea unui fascicol matriceal, printransformari de echivalenta. Conditiile ın care acest demers este posibil sunt enun-tate ın teorema de mai jos.

Teorema 5.4 Descompunerea valorilor singulare generalizate (DVSG). Fie ma-tricele A ∈ ICm×n cu m ≥ n si B ∈ ICp×n 9 astfel ıncat KerA∩KerB = 0. Atunciexista matricele unitare U ∈ ICm×m si V ∈ ICp×p precum si matricea nesingularaW ∈ ICn×n astfel ıncat

UHAW =

[C0

]

, V HBW =

[S0

]

pentru p ≥ n[0 S

]pentru p < n

(5.33)

unde

C = diag(c1, c2, . . . , cn) ∈ IRn×n cu 1 ≥ c1 ≥ c2 ≥ . . . ≥ cp ≥ 0,

S =

diag(s1, s2, . . . , sn) ∈ IRn×n cu 0 ≤ s1 ≤ s2 ≤ . . . ≤ sn ≤ 1, pt. p ≥ n

diag(sn−p+1, sn−p+2, . . . , sn) ∈ IRp×p

cu 0 = s1 = s2 = . . . = sn−p ≤ sn−p+1 ≤ . . . ≤ sn ≤ 1, pt. p < n(5.34)

cu c2i + s2i = 1, i = 1 : n 10. Perechile (ci, si), i = 1 : n definesc valorile singu-lare generalizate ale perechii (A,B), mai exact perechile (ci, si) cu si = 0 definesc

9 Teorema este enuntata pentru cazul a doua matrice cu acelasi numar de coloane. Se poateda si o formulare pentru doua matrice A si B cu acelasi numar de linii, formulare care se poateobtine aplicand enuntul de mai sus matricelor AH si BH . Lasam detaliile ın sarcina cititoruluiinteresat.

10 In cazul p < n avem c1 = c2 = . . . = cn−p = 1 si, de aceea, am introdus ın (5.34), princonventie si pentru comoditatea notatiilor, numerele s1 = s2 = . . . = sn−p = 0. De asemenea,ın aceeasi situatie, vom conveni sa extindem termenul de ”structura diagonala” pentru matricea[ 0 S ] (ın unele lucrari [ VI ] , ın cazul p < n, matricea V HBW are structura [S 0 ] cu S diagonaladar ”pretul” platit este pierderea ordonarii elementelor diagonale ale matricelor C si S).

Page 394: metode de calcul numeric matriceal. algoritmi fundamentali

380 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

valorile singulare generalizate infinite, iar

σi =cisi∈ IR, si 6= 0, (5.35)

sunt valorile singulare generalizate finite. Coloanele wi ale matricei nesingulare Wse numesc vectori singulari generalizati ai perechii (A,B) asociati valorilor singularegeneralizate σi.

In cazul real, matricele de transformare pot fi alese reale, i.e. W reala nesingu-lara, iar U si V ortogonale.

Demonstratie. Este usor de constatat ca ipoteza KerA∩KerB = 0 este echiva-lenta cu faptul ca matricea

Fdef=

[AB

]

∈ IC(m+p)×n (5.36)

este monica (i.e. are coloanele liniar independente). Fie F = QR factorizarea QR

a matricei F , unde Q ∈ IC(m+p)×n este o matrice avand coloanele ortogonale (i.e.QHQ = In), iar R ∈ ICn×n este superior triunghiulara si, ın virtutea monicitatii luiF , nesingulara. De asemenea, fie urmatoarea partitie a matricei Q

Q =

[Q1

Q2

]

, Q1 ∈ ICm×n, Q2 ∈ ICp×n.

In continuare vom proceda similar cu demonstratia teoremei 5.3 privitoare la de-

scompunerea CS. Fie Q1 = UCZH o DVS a matricei Q1 unde C =

[C0

]

cu

C = diag(c1, c2, . . . , cn) ∈ IRn×n si, cu argumentele din demonstratia teoremei ci-tate, 1 ≥ c1 ≥ c2 ≥ . . . ≥ cn ≥ 0. Consideram acum matricea

Q =

[UH 00 Ip

]

QZ =

[CQ2Z

]

care are, si ea, coloanele ortogonale, i.e. QHQ = In, relatie din care rezulta

ZHQH2 Q2Z = In − C2 def

= S2, (5.37)

unde S2 = diag(s21, s22, . . . , s

2n) cu s2i = 1 − c2i , i = 1 : n. Alegand si =

1− c2irezulta S = diag(s1, s2, . . . , sn) cu 0 ≤ s1 ≤ s2 ≤ . . . ≤ sp ≤ 1. In continuaredistingem doua situatii:

a) Matricea S este nesingulara (conditie posibila numai daca p ≥ n). In acestcaz, din (5.37) avem S−1ZHQH

2 Q2ZS−1 = In, i.e. matricea V1 = Q2ZS

−1 ∈ ICp×n

are coloanele ortogonale si poate fi completata pana la o matrice unitara, i.e. existamatricea V2 ∈ ICp×(p−n) astfel ıncat matricea V = [V1 V2 ] ∈ ICp×p este unitara.Rezulta

Sdef= V HQ2Z = V HV1S =

[S0

]

,

Page 395: metode de calcul numeric matriceal. algoritmi fundamentali

5.1. FORMULAREA PROBLEMEI 381

relatie cu care obtinem

Q =

[UH 00 V H

]

QZ =

[C

S

]

, (5.38)

de unde

F =

[AB

]

= QR =

[U 00 V

] [C

S

]

ZHR =

[UCZHR

V SZHR

]

. (5.39)

In final, datorita nesingularitatii matricei ZHR, din ultima relatie se obtine diago-nalizarea simultana urmarita a matricelor A si B, i.e. UHAW = C si V HBW = Sunde W = R−1Z. q.e.d.

b) Daca S este singulara (ceea ce se ıntampla ıntotdeuna daca p < n) demon-stratia decurge asemanator. Elementele diagonale ale lui S din (5.37) fiind ordonatecrescator, S este singulara numai daca s1 = . . . = sl = 0 pentru un l ≥ 1, i.e. (5.37)se scrie

ZHQH2 Q2Z = In − C2 def

= S2 =

[0 0

0 S2

]

(5.40)

cu S = diag(sl+1, sl+2, . . . , sn) nesingulara. Notam X = Q2Z ∈ ICp×n si consideram

partitiaX = [X1 X2 ] cuX1 ∈ ICp×l, X2 ∈ ICp×(n−l). Din (5.40) avemXH1 X1 = 0 de

unde rezulta X1 = 0. De asemenea, avem XH2 X2 = S2, deci S−1XH

2 X2S−1 = In−l,

i.e. matricea V2def= X2S

−1 ∈ ICp×(n−l) are coloanele ortogonale. Consideram si aicidoua situatii.

b1) In cazul p ≥ n, procedand ca mai sus, i.e. completand V2 cu matricele

V1 ∈ ICp×l si V3 ∈ ICp×(p−n) pana la o matrice unitara V = [V1 V2 V3 ]11 putem

scrie

Sdef= V HQ2Z=V HX=[ 0 V HX2]=

0 V H1 X2

0 V H2 X2

0 V H3 X2

=

0 0

0 S0 0

=

[S0

]n p− n ,

relatie cu care se obtine imediat (5.38) si apoi, cu aceleasi argumente, (5.33). q.e.d.b2) In cazul p < n avem, ın mod necesar, l ≥ n−p sau n− l ≤ p si, prin urmare,

completand matricea cu coloanele ortogonale V2 cu matricea V1 ∈ ICp×(p−n+l) panala o matrice unitara V = [V1 V2 ] ∈ ICp×p, obtinem

Sdef= V HQ2Z=V HX=[ 0 V HX2]=

[0 V H

1 X2

0 V H2 X2

]

=

[0 0 0

0 0 S

]

=[0 S

]

unde, de aceasta data, ICp×p ∋ S = diag(sn−p+1, sn−p+2, . . . , sn) cu 0 = sn−p+1 =

= . . . = sl < sl+1 ≤ sl+2 ≤ . . . ≤ sn, q.e.d. In acest caz elementele s1 = s2 == . . . = sn−p = 0 conventional introduse nu apar efectiv ın structurile matricelortransformate dar participa la definirea valorilor singulare generalizate infinite.

11 Daca V13 ∈ ICp×(p−n+l) este o completare a matricei V2 pana la o matrice unitara, calculataın modul uzual (vezi observatia 4.3), atunci V1 se obtine luand oricare l coloane ale matricei V13,iar V3 este definita de celelalte p− n coloane.

Page 396: metode de calcul numeric matriceal. algoritmi fundamentali

382 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

In cazul real, toate transformarile partiale pot fi alese reale si, ın consecinta, toaterezultatele partiale ca si cele finale sunt reale. Cu aceasta observatie demonstratiaeste completa. 3

Observatia 5.2 DVSG poate fi definita si ın situatia ın care KerA∩KerB 6= 0,i.e. matricea F din (5.36) nu este monica. In acest caz, utilizand triangularizareaunitara cu pivotarea coloanelor (vezi cap. 3), obtinem

F =

[AB

]

= Q[R T

]PT ,

unde Q ∈ IC(m+p)×k cu k < n are coloanele ortogonale, R ∈ ICk×k este superiortriunghiulara nesingulara iar P ∈ IRn×n este o matrice de permutare. Aplicandteorema de mai sus matricei G = QR ∈ IC(m+p)×k, e.g. ın cazul cu matricea S ∈∈ IRk×k nesingulara, conform (5.39), obtinem

G = QR =

[UC

V S

]

W−1

si, deci,

[AB

]

=G[Ik R−1T

]PT =

[UC

V S

][

W−1 W−1R−1T]PT =

[U [ C 0 ]

V [ S 0 ]

]

W−1

unde W = P

[

W−1 W−1R−1T0 M

]−1

este o matrice n× n nesingulara (M fiind o

matrice nesingulara (n−k)×(n−k) arbitrara ”de completare”). Rezulta urmatoareaforma a relatiei (5.33)

UHAW =

[C 00 0

]

, V HBW =

[S 00 0

]

, (5.41)

cele n− k coloane nule corespunzand subspatiului KerA ∩KerB. 3

Am vazut ca valorile singulare ordinare ale unei matriceA sunt radacinile patrateale valorilor proprii ale matricelor hermitice pozitiv semidefinite AHA sauAAH (veziteorema 5.2). Se poate stabili o legatura similara si ıntre valorile singulare gene-ralizate si valorile proprii generalizate ale unui fascicol hermitic pozitiv semidefinit12. Concret, avem urmatorul rezultat pe care ıl formulam utilizand notiuni dincapitolul urmator si, din acest motiv, demonstratia este omisa.

Teorema 5.5 Fie data o pereche de matrice (A,B), A ∈ ICm×n, B ∈ ICp×n sifascicolul matriceal hermitic pozitiv semidefinit F = AHA − λBHB |λ ∈ IC cuvalorile proprii generalizate Λ = λ1, λ2, . . . , λn, λi ∈ IR+ ordonate descrescator.Atunci numerele σi =

√λi sunt valorile singulare generalizate ale perechii (A,B).

12 Un fascicol matriceal F = G − λH | λ ∈ IC definit de perechea (G,H) se numeste hermitic(ın cazul real, simetric), pozitiv semidefinit daca matricele G si H sunt hermitice (simetrice), iarmatricea H si pozitiv semidefinita.

Page 397: metode de calcul numeric matriceal. algoritmi fundamentali

5.2. PROBLEME DE CALCUL CONEXE 383

Se constata imediat ca valorile singulare generalizate ale perechii (A, In) suntvalorile singulare ordinare ale matricei A.

Problema de calcul a acestui capitol este, ın primul rand, determinarea valo-rilor singulare ale unei matrice date. Ca si pana acum, cazul matricelor reale va fitratat distinct pentru a asigura maximum de eficienta posibil. Determinarea vec-torilor singulari revine la acumularea transformarilor si apare ca necesara ın multeaplicatii.

Observatia 5.3 Teorema 5.2 sugereaza o procedura de determinare a valorilorsingulare ale unei matrice A folosind algoritmul QR simetric pentru calculul va-lorilor proprii e.g. ale matricei B = AHA. De asemenea, daca se acumuleazatransformarile din aplicarea algoritmului QR matricei B, se pot calcula matricelede transformare U si V . Concret, matricea V este chiar matricea de transformaredin descompunerea spectrala ordonata Λ = V HBV a matricei B, iar U se poatedetermina cu relatiile (exercitiu pentru cititor)

U = [ U1 U2 ] cu U1 = AV ( : , 1:r)Σ−11

si U2 o completare a lui U1 pana la o matrice unitara. Din punctul de vedereal calculului numeric singurul punct slab al unei astfel de proceduri este ınsusicalculul efectiv al matricei B. Ideea adaptarii algoritmului QR simetric astfel ıncatsa se evite formarea matricei B a fost propusa ın anul 1965 de catre G.H.Golub siW.Kahan [30] si a condus la algoritmul DVS prezentat ın sectiunea 5.3. 3

5.2 Probleme de calcul conexe

Consideram util sa prezentam ın continuare cateva rezultate fundamentale care facdin DVS un instrument foarte puternic de rezolvare numerica a numeroase problemede algebra liniara. In cazurile ın care rezolvarea este directa schemele de calculpropuse se pot implementa ca atare si, pentru a evita repetitii suparatoare, nu maisunt prezentati algoritmi formali. Pentru problemele mai dificile detalii practice siaspecte numerice pot fi gasite ın sectiunile 5.5 si 5.6.

5.2.1 Rangul matriceal

Dupa cum se stie (v. si cap. 1), doua matrice echivalente au acelasi rang 13 (odemonstratie poate fi gasita ın [ I ]). Avand ın vedere acest lucru din teorema 5.1rezulta imediat urmatorul rezultat.

Propozitia 5.2 Rangul unei matrice este egal cu numarul valorilor sale singularenenule.

13 Este adevarata si reciproca, i.e. doua matrice de aceleasi dimensiuni care au acelasi rang suntechivalente.

Page 398: metode de calcul numeric matriceal. algoritmi fundamentali

384 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

5.2.2 Norme matriceale

Valorile singulare permit definirea unei clase interesante de norme matriceale unitar(ortogonal) invariante.

Propozitia 5.3 Fie A ∈ ICm×n si σ(A) = σ1, σ2, · · · , σr valorile sale singularenenule. Atunci

|A|p def=

(r∑

i=1

σpi

) 1p

, p = 1, 2, . . . (5.42)

sunt norme matriceale numite p-norme Schatten. p-normele Schatten sunt invari-ante la transformari unitare, i.e.

|WAZ|p = |A|p, (5.43)

oricare ar fi matricele unitare W ∈ ICm×m si Z ∈ ICn×n.

Demonstratie. Vezi [ II ]. 3

Urmatoarea propozitie releva legatura stransa dintre p-normele Schatten si unelenorme matriceale uzuale.

Propozitia 5.4 Fie matricea A ∈ ICm×n si σ1, σ2, · · · , σr valorile sale singularenenule. Avem

|A|1 = σ1 + σ2 + · · ·+ σrdef= ‖A‖tr, (5.44)

|A|2 =√

σ21 + σ2

2 + · · ·+ σ2r = ‖A‖F , (5.45)

|A|∞ = σ1 = ‖A‖2, (5.46)

i.e. norma urma este definita de suma valorilor singulare, norma Frobenius esteegala cu radacina patrata a sumei patratelor valorilor singulare, iar norma spectralaa unei matrice coincide cu valoarea singulara maxima.

Demonstratie. Relatia (5.45) rezulta imediat din (5.3) avand ın vedere conservareanormei Frobenius la transformarile unitare (ortogonale). Expresia (5.46) a normeispectrale rezulta din ınsasi demonstratia teoremei 5.1 (vezi (5.7)), q.e.d. 3

5.2.3 Numere de conditionare

Daca matricea A este patrata (n× n) si nesingulara obtinem evaluari imediate alenumarului de conditionare la inversare ın raport cu normele matriceale uzuale. Intr-adevar, este usor de vazut din (5.3) ca valorile singulare ale matricei inverse suntinversele valorilor singulare ale lui A, i.e. daca σ(A) = σ1, σ2, · · · , σn, atunci

σ(A−1) = σ−1n , σ−1

n−1, · · · , σ−11 . (5.47)

Prin urmare, ‖A−1‖tr = σ−11 +σ−1

2 +· · ·+σ−1n , ‖A−1‖F =

σ−21 + σ−2

2 + · · ·+ σ−2n

si ‖A−1‖2 = 1/σn, iar numarul de conditionare la inversare al matricei A are ex-presiile

κtr(A)def= ‖A‖tr‖A−1‖tr = (σ1 + σ2 + · · ·+ σn)(σ

−11 + σ−1

2 + · · ·+ σ−1n ), (5.48)

Page 399: metode de calcul numeric matriceal. algoritmi fundamentali

5.2. PROBLEME DE CALCUL CONEXE 385

κF (A)def= ‖A‖F ‖A−1‖F =

(σ21 + σ2

2 + · · ·+ σ2n)(σ

−21 + σ−2

2 + · · ·+ σ−2n ), (5.49)

si, respectiv,

κ2(A)def= ‖A‖2‖A−1‖2 =

σ1σn. (5.50)

5.2.4 Pseudoinversa

In continuare vom defini ıntr-un cadru general pseudoinversa unei matrice. Desi,ın general, calculul explicit al pseudoinversei este evitat ın aplicatii, vom prezentatotusi exprimarea ei cu ajutorul DVS, exprimare care ofera calea cea mai avanta-joasa pentru un eventual calcul al acesteia.

Definitia 5.4 Fie A ∈ ICm×n. O matrice X ∈ ICn×m care satisface urmatoarelepatru conditii Moore-Penrose 14

AXA = AXAX = X(AX)H = AX(XA)H = XA

(5.51)

se numeste pseudoinversa matricei A.

Avem urmatoarea teorema de existenta si unicitate.

Teorema 5.6 Orice matrice A ∈ ICm×n admite o pseudoinversa unica. Daca A == UΣV H este DVS a matricei A, atunci pseudoinversa sa este

A+ = V Σ+UH , (5.52)

unde

Σ+ =

[Σ−1

1 00 0

]

∈ IRn×m (5.53)

este pseudoinversa matricei Σ.

Demonstratie. Existenta psedoinversei se demonstreaza aratand mai ıntai ca(5.53) satisface cele patru conditii din (5.51) si apoi ca acestea sunt satisfacute si decatre matricea A+ definita ın (5.52) (exercitiu pentru cititor). Pentru demonstratiaunicitatii, fie X,Y ∈ ICn×m doua pseudoinverse ale matricei A si D = X − Y . Din(5.51) rezulta

ADA = 0,DAD +DAY + Y AD = D,(AD)H = AD,(DA)H = DA.

14 Cele patru conditii Moore-Penrose sunt echivalente cu urmatoarele trei (vezi [ II ])

AXA = AX = PAH = AHR

unde P si R sunt doua matrice oarecare. Ultimele doua conditii exprima faptul ca liniile si coloanelepseudoinversei sunt combinatii liniare ale liniilor, respectiv ale coloanelor matricei AH .

Page 400: metode de calcul numeric matriceal. algoritmi fundamentali

386 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Utilizand prima din relatiile de mai sus, din penultima obtinem (AD)HAD == ADAD = 0, i.e. AD = 0. Similar, din prima si ultima relatie obtinem DA = 0.Prin urmare satisfacerea celei de a doua din relatiile de mai sus implica D = 0, i.e.X = Y . 3

Propozitia ce urmeaza ofera o caracterizare interesanta a pseudoinversei.

Propozitia 5.5 Fie A ∈ ICm×n. Pseudoinversa X = A+ este unica solutie ma-triceala de norma Frobenius minima a problemei

minX∈ ICn×m

‖AX − Im‖F . (5.54)

Demonstratie. Intrucat norma Frobenius nu este alterata de transformari unitare,avem

rF (X)def= ‖AX − Im‖F = ‖UHAV V HX − UH‖F = ‖ΣV HX − UH‖F =

‖ΣV HXU− Im‖F =

∥∥∥∥

[Σ1 00 0

][Y11 Y12Y21 Y22

]

− Im∥∥∥∥F

=

∥∥∥∥

[Σ1Y11− Ir Σ1Y12

0 Im−r

]∥∥∥∥F

,

unde Ydef= V HXU ∈ ICn×m si partitia lui Y este conforma cu partitia lui Σ. Evident,

rF (X) este minima atunci cand atat ‖Σ1Y12‖F cat si ‖Σ1Y11−Ir‖F sunt minime, i.e.,pentru Y12 = 0 si Y11 = Σ−1

1 . Deci, toate matricele X ∈ IRn×m care minimizeazarF (X) sunt de forma

X = V Y UH = V

[Σ−1

1 0Y21 Y22

]

UH .

Dar ‖X‖F =

∥∥∥∥

[Σ−1

1 0Y12 Y22

]∥∥∥∥F

este minima pentru Y21 = 0, Y22 = 0. In consecinta,

solutia de norma Frobenius minima pentru problema (5.54) este matricea X == V Σ+UH = A+. 3

Din rezultatele de mai sus rezulta ca valorile singulare nenule ale pseudoinverseisunt inversele valorilor singulare nenule ale matricei initiale, vectorii singulari lastanga, respectiv la dreapta ai pseudoinversei sunt vectorii singulari la dreapta,respectiv la stanga, ai matricei initiale asociati valorilor singulare corespondente.Drept consecinta, obtinem urmatoarea DVS pentru pseudoinversa matricei A

A+ = U1Σ−11 V H

1 =

r∑

j=1

vjuHj

σj, (5.55)

unde uj , vj sunt coloanele j ale matricelor U si, respectiv, V .

5.2.5 Subspatii liniare. Baze ortogonale

Consideram important sa evidentiem faptul ca se pot construi baze ortogonale alesubspatiilor fundamentale definite de o matrice arbitrara folosind vectorii sai sin-gulari 15.

15 In capitolul 3 a fost prezentata o metoda alternativa de constructie a bazelor ortogonale alesubspatiilor fundamentale definite de o matrice, metoda bazata pe utilizarea factorizarii QR cu

Page 401: metode de calcul numeric matriceal. algoritmi fundamentali

5.2. PROBLEME DE CALCUL CONEXE 387

Propozitia 5.6 Fie A ∈ ICm×n avand rangA = r si Σ = UAV H descompunereavalorilor sale singulare. Atunci

i) Primele r coloane ale matricei unitare U formeaza o baza ortogonala asubspatiului imagine al lui A, iar ultimele m − r coloane ale lui U formeaza obaza ortogonala a subspatiului nucleu a lui AH , i.e. cu notatiile (5.13) avem

ImU1 = ImA, ImU2 = KerAH . (5.56)

ii) Primele r coloane ale matricei unitare V formeaza o baza ortogonala a sub-spatiului imagine al lui AH , iar ultimele n − r coloane ale lui V formeaza o bazaortogonala a subspatiului nucleu a lui A, i.e. cu notatiile (5.13) avem

ImV1 = ImAH , ImV2 = KerA. (5.57)

In cazul real toate asertiunile raman adevarate daca operatorul hermitic este ınlocuitcu operatorul de transpunere.

Demonstratie. i) Din DVS a matricei A avem A = U1Σ1VH1 . Cum matricea

Σ1VH1 este epica obtinem ImA = ImU1. Evident, coloanele matricei U2 formeaza o

baza ortogonala a complementului ortogonal ın ICn al lui ImU1=ImA care este acelasisubspatiu cu KerAH . ii) Se repeta rationamentul de mai sus pentru matriceaAH = V ΣTUH . 3

Pentru scopuri mnemotehnice, ın figura 5.2 sunt reprezentate, ıntr-o forma con-ventionala, relatiile dintre subspatiile liniare definite de o matrice m× n.

a a

'

&

$

%

'&

$%

'

&

$

%

'

&

$

%

'

&

$

%

'&

$%

@@R

A

HHHHHHj

A

@@

@@I

AH

HHHHHHY

AH

0

ICn

KerA = ImV2

ImAH=

ImV1

0

ICm

ImA = ImU1

KerAH=

ImU2

Fig. 5.2: Subspatiile liniare fundamentale definite de o matrice A ∈ ICm×n si relatiiledintre ele

pivotarea coloanelor. Desi, din punct de vedere numeric, metoda bazata pe DVS este consideratasuperioara, ın majoritatea aplicatiilor metoda bazata pe factorizarea QR cu pivotarea coloaneloreste la fel de sigura fiind, ın acelasi timp, mai eficienta.

Page 402: metode de calcul numeric matriceal. algoritmi fundamentali

388 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

5.2.6 Proiectori ortogonali

DVS ofera pe langa baze ortogonale si posibilitatea de calcul a proiectorilor or-togonali pe subspatiile fundamentale definite de o matrice data. Desi notiunea deproiector ortogonal a mai fost introdusa si utilizata ın capitolele 1 si 3, pentrucomoditatea cititorului, reluam problema ın contextul DVS.

Definitia 5.5 Fie S ⊂ ICn un subspatiu liniar si T = S⊥ complementul sau orto-gonal ın ICn. O matrice P ∈ ICn×n care satisface conditiile

y = Px ∈ Sz = x− y ∈ T , ∀x ∈ ICn (5.58)

se numeste matrice de proiectie ortogonala sau proiector ortogonal pe S.Vectorii y = Px si z = x − y se numesc proiectiile ortogonale ale vectorului x

pe S si, respectiv, pe T .

Definitia de mai sus se particularizeaza ın mod natural la subspatii liniare dinspatiul vectorial IRn.

Existenta, unicitatea si principalele proprietati ale proiectorilor ortogonali suntprezentate sub forma unei teoreme.

Teorema 5.7 Oricare ar fi subspatiul S ⊂ ICn proiectorul ortogonal P exista si esteunic determinat. Daca vectorii v1, v2, . . . , vk formeaza o baza ortogonala a lui S,atunci proiectorul ortogonal are expresia

P = V V H , Vdef= [ v1 v2 · · · vk ] ∈ ICn×k. (5.59)

Matricea de proiectie ortogonala P este hermitica (simetrica ın cazul real), idem-potenta si coloanele ei genereaza subspatiul S, i.e.

PH = P, P 2 = P, ImP = S. (5.60)

Demonstratie. Existenta. Daca S = 0, atunci P = 0. Pentru un subspatiu cudimS = k ≥ 1 exista o baza ortogonala. Vom arata ca matricea P definita de (5.59)este un proiector ortogonal pe S. Intr-adevar, y = Px = V V Hx = V w ∈ ImV = Spentru toti x ∈ ICn si daca z = x − y, atunci zHV = xHV − xHV V HV = 0, i.e.z ⊥ S sau, echivalent, z ∈ S⊥. Unicitatea. Fie P1 si P2 doi proiectori ortogonalipe acelasi subspatiu S. Atunci avem

‖(P1 − P2)x‖22 = (P1x)H(x− P2x) + (P2x)

H(x− P1x) = 0, ∀x ∈ ICn

ıntrucat, conform (5.58), S ∋ P1x ⊥ (x− P2x) ∈ S⊥ si S ∋ P2x ⊥ (x− P1x) ∈ S⊥.Obtinem (P1 − P2)x = 0, ∀x ∈ ICn si, considerand n vectori liniar independenti x,rezulta P1 = P2.

In continuare, primele doua relatii (5.60) rezulta imediat din expresia (5.59) aunui proiector ortogonal. Vom arata acum ca ImP = S oricare ar fi proiectorulortogonal pe S. Avem Px ∈ S, i.e. ImP ⊂ S. Reciproc, conform (5.58), pentrutoti y ∈ ICn avem Py ∈ S si z = y−Py ∈ S⊥. Daca y ∈ S, atunci avem si y−Py ∈ S

Page 403: metode de calcul numeric matriceal. algoritmi fundamentali

5.2. PROBLEME DE CALCUL CONEXE 389

i.e. z ∈ S ∩ S⊥ = 0. Deci z = 0 sau y = Py, i.e. y ∈ ImP . Prin urmare rezultaS ⊂ ImP si, datorita incluziunii precedente, ImP = S. 3

Conform acestei teoreme, pentru toate matricele V ∈ ICn×k ale caror coloaneformeaza baze ortogonale ale aceluiasi subspatiu, matricele V V H sunt aceleasi.Proiectorul ortogonal pe ICn este P = In. Proiectorul ortogonal pe un subspatiu

unidimensional S = Imv, unde v este un vector nenul din ICn, este P =vvH

vHv.

Fie A ∈ ICm×n, A = UΣV H si subspatiile fundamentale ImA,KerAH din ICm,ImAH ,KerA din ICn. Asa cum am vazut ın paragraful precedent, coloanele ma-tricelor U si V formeaza baze ortogonale pentru toate aceste subspatii. Utilizandnotatiile (5.13) si relatiile (5.56), (5.57), (5.59) obtinem pentru proiectorii ortogonalipe cele patru subspatii mentionate urmatoarele expresii

P1 = U1UH1 = AA+ − proiector ortogonal pe ImA,

P2 = U2UH2 = Im −AA+ − proiector ortogonal pe KerAH ,

P3 = V1VH1 = A+A − proiector ortogonal pe ImAH ,

P4 = V2VH2 = In −A+A − proiector ortogonal pe KerA,

(5.61)

unde A+ este pseudoinversa matricei A. Demonstrarea egalitatilor secunde dinexpresiile de mai sus se propune ca exercitiu pentru cititor.

Exemplul 5.2 Consideram matricea

A =

0.9600 1.28000.6912 0.92160.2016 0.2688

care admite o DVS A = UΣV T definita de

U =

0.8000 −0.3600 −0.48000.5760 0.6848 0.44640.1680 −0.6336 0.7552

, Σ =

2 00 00 0

, V =

[0.6000 −0.80000.8000 0.6000

]

si are, evident, valorile singulare σ(A) = 2, 0. Notand cu uj = U(:, j), j == 1 : 3, si vj = V (:, j), j = 1 : 2, coloanele matricelor U si, respectiv, V cele patrusubspatii definite cu ajutorul matricei A sunt (vezi fig. 5.3) ImA = Imu1, KerAT == Im[u2 u3 ], din IR3, respectiv ImAT = Imv1, KerA = Imv2, din IR2. Cei patruproiectori ortogonali sunt

P1 = u1uT1 =

0.6400 0.4608 0.13440.4608 0.3318 0.09680.1344 0.0968 0.0282

,

P2 = [u2 u3 ]

[uT2uT3

]

=

0.3600 −0.4608 −0.1344−0.4608 0.6682 −0.0968−0.1344 −0.0968 0.9718

,

P3 = v1vT1 =

[0.3600 0.48000.4800 0.6400

]

, P4 = v2vT2 =

[0.6400 −0.4800−0.4800 0.3600

]

.

Page 404: metode de calcul numeric matriceal. algoritmi fundamentali

390 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

AAAK

HHHj

7

ZZ

Z

-

6

0

y1

y2

y3

IRm

-

6

0

x1

x2

IRn

u1

u2

u3

ImA

KerAT

AAA

AA

AA

AA

AAAAAAAAA

HHHH

HHHHHHHHH

*

HHHHHHj

HHHHHH

y

P2y

P1y

v1v2

ImAT

KerAZZZZZZZZZZZZ

7

ZZ~3ZZ

x

P3x

P4x

Fig. 5.3: Subspatii liniare si proiectii ortogonale

(Precizam ca, ın majoritatea aplicatiilor, proiectorii sunt utilizati ın forma factori-zata din (5.61).)

In figura 5.3 sunt prezentate actiunile acestor proiectori ortogonali asupra a doivectori arbitrari y si x din IR3 si, respectiv, IR2. 3

5.2.7 Operatii cu subspatii liniare

In aplicatiile cu suport geometric apare de multe ori necesitatea de a calcula subspa-tii liniare derivate din subspatii existente cu ajutorul operatiilor uzuale. Natural,DVS poate fi de un real folos ın astfel de situatii. In continuare, vom consideraca subspatiile date apartin spatiului liniar ICm 16 si sunt cunoscute prin baze (nuneaparat ortogonale) ale acestora, iar vectorii din baze se scriu sub forma unorcoloane de matrice omonime, i.e. X = ImX , Y = ImY 17 etc. Subspatiile rezultatvor fi calculate prin determinarea unor baze ortogonale ale acestora. Asa cum s-amai precizat, aspectele numerice legate de utilizarea calculului aproximativ vor fidiscutate ıntr-o alta sectiune a acestui capitol aici admitand ipoteza posibilitatiiunui calcul exact.

A. Incluziune si egalitate. Fie X = ImX si Y = ImY doua subspatii liniaredin ICn cu dimX ≤ dimY. Este usor de vazut ca incluziunea X ⊆ Y are loc daca sinumai daca

rangY = rang[X Y ] (5.62)

si, prin urmare incluziunea poate fi testata pe aceasta baza calculand DVS a ma-tricelor Y si [X Y ]. O cale alternativa, mai economica, se bazeaza pe faptul ca

16 Pentru subspatii din IRm se procedeaza absolut similar.17 Matricele X, Y nu sunt neaparat monice, i.e. pe langa vectorii din baza pot contine drept

coloane si combinatii liniare ale acestora.

Page 405: metode de calcul numeric matriceal. algoritmi fundamentali

5.2. PROBLEME DE CALCUL CONEXE 391

X ⊆ Y atunci si numai atunci cand coloanele matricei X apartin lui Y. Numeric,apartenenta unui vector la un subspatiu se poate constata verificand coincidentavectorului respectiv cu proiectia sa ortogonala pe acel subspatiu. In consecinta,testul incluziunii X ⊆ Y se poate face cu urmatoarea schema de calcul.

X ⊆ Y1. Se calculeaza DVS Y = UΣV H a matricei Y si fie r = rangY2. Daca ‖U1U

H1 X −X‖ = 0, unde U1 = U(:, 1:r), atunci X ⊆ Y

Egalitatea a doua subspatii X = ImX si Y = ImY se testeaza e.g. aplicand de douaori schema de mai sus pentru verificarea incluziunilor X ⊆ Y si Y ⊆ X .

B. Suma a doua subspatii liniare. Subspatiul suma al subspatiilor X == ImX , Y = ImY din ICn se defineste prin

S def= X + Y = s ∈ ICn | s = x+ y, x ∈ X , y ∈ Y (5.63)

si, este simplu de constatat, poate fi scris sub forma

S = ImS, unde S = [X Y ]. (5.64)

In consecinta, daca S = UΣV H este DVS a lui S, atunci r = rangS este dimensiuneaspatiului suma, iar coloanele matricei U1 = U( : , 1 : r) formeaza o baza ortogonalaa lui S. Evident, procedura poate fi extinsa pentru calculul sumei a mai multorsubspatii liniare. Celelalte coloane ale matricei U si coloanele matricei V definescsubspatii evidentiate ıntr-un paragraf anterior. De exemplu, coloanele matricei U2 == U( : , r+1 : m) formeaza o baza ortogonala a subspatiului T = S⊥ = X⊥ ∩ Y⊥.

C. Intersectia. Subspatiul intersectie

T def= X ∩ Y = t ∈ ICn | t ∈ X & t ∈ Y (5.65)

a subspatiilor X = ImX , Y = ImY din ICn se poate calcula plecand de la ultimaobservatie din aliniatul precedent, i.e. utilizand relatia

T = X ∩ Y = (X⊥ + Y⊥)⊥

(5.66)

ceea ce presupune calculul a trei DVS conform schemei

X ∩ Y – v1

1. Se calculeaza o baza BX pentru X⊥ = KerXH , folosind DVS a matricei X2. Se calculeaza o baza BY pentru Y⊥ = KerY H , folosind DVS a matricei Y3. Se calculeaza baza cautata a subspatiului T = X ∩ Y, utilizand DVS amatricei [BX BY ]

O procedura alternativa, mai economica, se bazeaza pe DVS S = [X Y ] = UΣV H

a matricei S din (5.64) din care rezulta

[X Y ]V ( : , r+1 : nx+ny) = XV2X + Y V2Y = 0,

Page 406: metode de calcul numeric matriceal. algoritmi fundamentali

392 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

unde r este rangul lui S, cu nx, ny s-a notat numarul de coloane al matricelor X ,respectiv Y , V2X = V (1 :nx, r+1 : nx+ny) si V2Y = V (nx+1:nx+ny, r+1 : nx+ny).Avem

T = X ∩ Y = ImXV2X = ImY V2Y . (5.67)

Intr-adevar, e.g. daca t ∈ ImXV2X , atunci pentru un anumit vector u avem t == XV2Xu = −Y V2Y u, respectiv, cu notatii evidente, t = Xw = Y z, i.e. t ∈ T .Reciproc, daca t ∈ T , atunci t = Xw = −Y z pentru anumiti vectori w si z, de

unde Xw + Y z = 0, i.e.

[wz

]

∈ KerS = ImV2 cu V2 =

[V2XV2Y

]

. Prin urmare,[wz

]

= V2u pentru un anumit u, i.e. w = V2Xu si z = V2Y u, de unde rezulta

t ∈ ImXV2X si t ∈ ImY V2Y . Deci, (5.67) este adevarata si poate fi utilizata pentrucalculul unei baze ortogonale a subspatiului intersectie conform urmatoarei schemede calcul.

X ∩ Y – v2

1. Se calculeaza DVS S = UΣV H a matricei S = [X Y ]

2. Se calculeaza DVS T = U ΣV H a matricei T = XV2X sau T = Y V2YNotam cu ρ rangul matricei T . Baza ortogonala cautata a subspatiului

intersectie T este U( : , 1:ρ)

D. Aplicatii liniare. Fie o aplicatie liniara A : ICn → ICm. Pentru bazefixate, aplicatiei A i se asociaza matricea A ∈ ICm×n astfel ıncat corespondenteix 7→ y = A(x) i se asociaza relatia numerica y = Ax. Fie acum un subspatiu liniarX din ICn. Atunci multimea

Y = AX = y ∈ ICm | y = Ax, x ∈ X (5.68)

este un subspatiu liniar din ICm numit subspatiul imagine a lui X prin aplicatia liniaradefinita de A. Problema este urmatoarea: date matricea A si matricea X ∈ ICn×k

astfel ıncat X = ImX , se cere calculul unei baze ortogonale a subspatiului Y = AX .Este usor de vazut ca

Y = A ImX = ImAX, (5.69)

de unde rezulta imediat faptul ca o baza ortogonala a subspatiului Y este datade coloanele matricei U1 = U( : , 1 : ry) din DVS a matricei Y = AX = UΣV H ,unde ry este rangul lui Y . Rezultate numerice mai bune se obtin [ XIX ] daca maiıntai se determina o baza ortogonala U1 a lui X si apoi se tine seama de faptul caY = ImAU1. Schema de calcul este urmatoarea.

Y = AX1. Se calculeaza DVS X = U ΣV H . Fie rx rangul lui X

2. Se calculeaza B = AU( : , 1:rx)3. Se calculeaza DVS B = UΣV H . Daca ry este rangul lui B, atunci bazacautata a subspatiului Y este data de coloanele matricei U1 = U( : , 1:ry)

Page 407: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 393

5.3 Algoritmul DVS

Dupa cum s-a precizat, valorile singulare ale matricei A ∈ ICm×n sunt radacinilepatrate nenegative ale valorilor proprii ale uneia dintre matricele hermitice pozitivsemidefinite B = AHA sau C = AAH (vezi teorema 5.2). Mai mult, exista conexiuniimportante dintre DVS a matricei A si forma Schur a matricelor hermitice F =

=

[0 AH

A 0

]

sau G =

[0 AAH 0

]

(vezi propozitia 5.1). Natural, ın cazul real,

conjugarea nu are nici un efect, astfel ca matricele B = ATA, C = AAT suntsimetrice, pozitiv semidefinite, iar matricele F si G simetrice.

Teorema 5.2 sugereaza o posibilitate de calcul a valorilor singulare ale unei ma-trice A calculand valorile proprii ale uneia dintre matricele B, C, F sau G, cuajutorul algoritmului QR simetric. Intr-o astfel de abordare, determinarea ma-tricelor unitare (ın cazul real, ortogonale) U si V se poate face conform indicatiilordin observatia 5.3.

Totusi, calculul explicit al matricelor B sau C poate conduce la o pierdere deinformatie, dupa cum se poate vedea din exemplul urmator.

Exemplul 5.3 Fie matricea

A =

1 10.001 00 0.001

,

avand valorile singulare σ(A) = √2.000001, 0.001. Avem

B = ATA =

[1.000001 1

1 1.000001

]

.

Intr-un format virgula mobila avand mantisa cu mai putin de 7 cifre zecimale,matricea B este reprezentata prin

B =

[1 11 1

]

,

avand spectrul λ(B) = 2, 0 , valorile singulare calculate prin procedura sugeratamai sus fiind σ(A) =

√2, 0, i.e. o evaluare cu o precizie mult inferioara celei de

reprezentare. 3

O metoda mai performanta pentru calculul DVS – propusa de G.H. Golub siW. Kahan [30] ın 1965 si cunoscuta sub denumirea de algoritm DVS 18 – evitaformarea explicita a matricelor B sau C, construind recurent un sir de matrice uni-tar (ortogonal) echivalente cu matricea A, convergent catre o matrice diagonala.Calculul DVS al matricei diagonale limita este trivial dupa care, ordonand core-spunzator elementele diagonale, se obtine matricea Σ ce defineste DVS a matriceiinitiale. Matricele U si V se calculeaza prin acumularea transformarilor. Ideea de

18 In literatura de specialitate de limba engleza acronimul utilizat este SVD (Singular ValueDecomposition).

Page 408: metode de calcul numeric matriceal. algoritmi fundamentali

394 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

baza a algoritmului DVS consta ın faptul ca matricele Ak, k = 1, 2, . . . ale siruluiDVS au proprietatea ca matricele Bk = AH

k Ak (ın cazul real Bk = ATkAk) formeaza

sirul QR hermitic (simetric) corespunzator, asociat matricei B. De aceea, se spuneca algoritmul DVS este o varianta ”mascata” a algoritmului QR simetric.

Algoritmul DVS are doua etape.1. Prima etapa consta ın reducerea matricei A, prin transformari unitare (or-

togonale) de echivalenta, la o forma superior bidiagonala J astfel ıncat matriceatridiagonala T = JHJ sa coincida cu cea produsa de prima etapa a algoritmuluiQR simetric aplicat lui B.

2. Etapa a doua consta ın reducerea iterativa a matricei J la forma diagonalaprin anularea asimptotica a elementelor supradiagonale prin transformari unitare(ortogonale) bilaterale ce corespund pasilor algoritmului QR simetric cu deplasareimplicita aplicati lui B.

Vom prezenta ın continuare detaliile acestui algoritm.

5.3.1 Reducerea la forma bidiagonala

Baza teoretica a primei etape a algoritmului DVS este data de urmatorul rezultat.

Teorema 5.8 Fie o matrice A ∈ ICm×n. Exista matricele unitare U ∈ ICm×m siV ∈ ICn×n astfel ıncat matricea

J = UHAV ∈ ICm×n (5.70)

este superior bidiagonala, i.e. J(i, j) = 0, ∀ i > j si ∀ j > i + 1.In cazul real, matricele U si V pot fi reale (i.e. ortogonale) si, prin urmare, si

matricea bidiagonala J este, ın acest caz, reala.

Demonstratie. Vom da o demonstratie constructiva, aratand cum se calculeazaefectiv matricele unitare U si V din (5.70). Pentru fixarea ideilor, presupunem cam ≥ n 19, ın care caz procedura are p = min(m− 1, n) pasi.

Pasul 1. In primul rand, exista reflectorul (complex) U1, de ordinul m, ast-fel ıncat (UH

1 A)(2 : m, 1) = 0. Dupa aplicarea reflectorului U1, exista reflectorulV2, de ordinul n si indice 2 (i.e. avand structura V2 = diag(1, V2)) astfel ıncat((UH

1 A)V2)(1, 3:n) = 0. Datorita structurii mentionate a reflectorului V2, postmul-tiplicarea cu acesta nu altereaza zerourile create ın prima coloana. Prin urmare,

matricea A ← A1def= UH

1 AV2 este superior bidiagonala ın prima coloana si primalinie.

Pasul k. Presupunem ca, dupa primii k − 1 pasi, matricea A ← Ak−1def=

def= UH

k−1 . . . UH1 AV2 . . . Vk este superior bidiagonala ın primele k − 1 coloane si

primele k − 1 linii. Acum, exista reflectorul (complex) Uk = diag(Ik−1, Uk) ast-fel ıncat (UH

k Ak−1)(k + 1 : m, k) = 0. Dupa aplicarea reflectorului Uk, ne folosimde existenta reflectorului Vk+1 pentru anularea elementelor (k, k+ 2 : n), i.e. astfelıncat ((UH

k Ak−1)Vk+1)(k, k+2 : n) = 0. Este usor de vazut ca structura reflectorilor

19 Daca m < n se poate calcula DVS a matricei G = AH . Daca G = UΣV H , atunci DVS amatricei A este, evident, A = VΣTUH .

Page 409: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 395

utilizati la acest pas asigura conservarea zerourilor create la pasii precedenti si, prinurmare, procesul de bidiagonalizare, initiat la pasul 1, poate fi continuat.

In final, dupa p pasi, matricea A este suprascrisa de matricea bidiagonala

A← Jdef= Ap = UH

p · · ·UH2 U

H1 AV2V3 · · ·Vn−1 = UHAV. (5.71)

Matricele unitare de transformare U si V au, evident, expresiile

U = U1U2 · · ·Up, V = V2V3 · · ·Vn−1. (5.72)

Demonstratia este completa. 3

In demonstratia teoremei 5.8 s-a scos ın evidenta faptul ca ıntregul proces dediagonalizare se poate efectua pe loc, ın locatiile de memorie ale elementelor matriceiA. Mai mult, asa cum se va vedea mai departe, locatiile elementelor matricei Apot servi pentru memorarea elementelor definitorii ale matricelor de transformareutilizate. De asemenea, avandu-se ın vedere faptul ca procesul iterativ conservastructura superior bidiagonala, ın continuare vom memora matricea bidiagonala Jnumai prin vectorii f ∈ ICn al elementelor diagonale si g ∈ ICn−1 al elementelorsupradiagonale (ın cazul m ≥ n considerat) conform scrierii

J = UHAV =

f1 g1f2 g2

. . .. . .

. . . gn−1

fn

. (5.73)

Algoritmul de bidiagonalizare, prezentat ın continuare, reproduce fidel ideiledemonstratiei teoremei 5.8. Vom utiliza reflectori hermitici, caz ın care matriceabidiagonala care se obtine este, ın general, complexa. Pentru un plus de claritateprezentam mai ıntai o schema de calcul.

JQ 1. p = min(m− 1, n)

2. Pentru k = 1 : p1. Se calculeaza reflectorul Uk astfel ıncat(UH

k A)(k + 1 : m, k) = 0.2. A← UH

k A3. Daca k < n− 1, atunci

1. Se calculeaza reflectorul Vk+1 astfel ıncat(AVk+1)(k, k + 2 : n) = 0.

2. A← AVk+1

3. Daca se doreste calculul matricei U , atunci1. U ← Im2. Pentru k = p : −1 : 1

1. U ← UkU

Page 410: metode de calcul numeric matriceal. algoritmi fundamentali

396 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

4. Daca se doreste calculul matricei V , atunci3. V ← In4. Pentru k = n− 2 : −1 : 1

1. V ← Vk+1V

Utilizand procedurile din tabelul 4.3 (vezi cap. 4), algoritmul corespunzatorschemei de calcul de mai sus se scrie astfel.

Algoritmul 5.1 (JQc – Reducerea la forma bidiagonala) (Data ma-tricea A ∈ ICm×n, cu m ≥ n, algoritmul calculeaza reflectorii hermiticiUk, k = 1 : p, p = min(m−1, n), si Vk, k = 2 : n−1, astfel ıncat matriceaJ = UH

p . . . UH1 AV2 . . . Vn−1 = UHAV este bidiagonala. Matricea J este

obtinuta prin vectorii f ∈ ICn si g ∈ ICn−1 ai elementelor sale diagonale,respectiv supradiagonale. Optional, se acumuleaza matricele unitare detransformare U si/sau V . Optiunea se exprima cu ajutorul variabilelorlogice opt1 si opt2 care pot lua valorile ’da’ sau ’nu’. Daca nu se doresteacumularea, atunci pentru matricea respectiva se returneaza matriceaunitate de dimensiune corespunzatoare.)

1. p = min(m− 1, n)

2. Pentru k = 1 : p

1. [ c, A(k : m, k), βk ] = Hc(A(k : m, k))

2. fk = c13. Daca k < n atunci

1. A(k : m, k + 1 : n) == Hcs(A(k : m, k), βk, A(k : m, k + 1 : n))

4. Daca k < n− 1 atunci

1. [ c, v, γk+1 ] = Hc((A(k, k + 1 : n))T )

2. A(k, k + 1 : n) = vT

3. gk = c14. A(k + 1 : m, k + 1 : n) =

= Hcd(A(k : m, k + 1 : n), v, γk+1)

5. gn−1 = A(n− 1, n)

3. Daca m = n atunci

1. fn = A(n, n)

4. U = Im, V = In

5. Daca opt1 = ′da′ atunci

1. Pentru k = p : −1 : 1

1. U(k : m, k : m) = Hcs(A(k : m, k), βk, U(k : m, k : m))

6. Daca opt2 = ′da′ atunci

1. Pentru k = n− 2 : −1 : 1

1. V (k + 1 : n, k + 1 : n) == Hcs((A(k, k+1 : n))T , γk+1, V (k + 1 : n, k + 1 : n))

Page 411: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 397

Comentarii. Semnalam, ın primul rand, faptul ca vectorul uk ce defineste reflec-torul hermitic Uk (din structura reflectorului Uk) este memorat ın locatiile (k : m, k)ale matricei A. Pentru a fi posibil acest lucru, ın afara elementelor (k + 1 : m, k),anulate la pasul curent k de catre Uk, este utilizata si locatia (k, k), ceea ce pre-

supune salvarea prealabila a elementului diagonal calculat akkdef= fk. Similar,

vectorul vk+1 definitoriu pentru reflectorul Vk+1 = In−k −vk+1v

Hk+1

γk+1, este memorat

ın locatiile (k, k + 1 : n) dupa ce, ın prealabil, a fost salvat elementul ak,k+1def= gk.

Pentru a face posibil acest lucru fara modificarea procedurilor utilizate a fost intro-dus un vector de lucru c. De asemenea, pentru a nu introduce o noua procedurade calcul a unui reflector care sa anuleze componentele (2 : n) ale unui vector linien-dimensional, s-a utilizat un vector de lucru v.

Sintaxa de utilizare a algoritmului de mai sus este

[ f, g, U, V ] = JQc(A, opt1, opt2).

In cazul datelor initiale reale, toate matricele de transformare sunt reale, i.e. orto-gonale, iar algoritmul de mai sus se adapteaza prin simpla substituire a procedurilorpentru date complexe cu cele pentru date reale (concret, se ınlocuieste sigla c dinnumele procedurilor cu sigla r). De aceeea ne marginim sa prezentam pentru acestcaz numai sintaxa de utilizare

[ f, g, U, V ] = JQr(A, opt1, opt2).

Efortul de calcul asimptotic implicat de executia variantei reale, fara acumularea

transformarilor, este Nop = 4mn2 − 4

3n3 flopi, iar ın cazul complex, daca avem

ın vedere echivalarile operatiilor cu numere complexe cu cele cu numere reale (v.cap. 4), de cateva ori mai mare. Tot ın varianta reala, pentru calculul matricei de

transformare U , sunt necesare N ′op = 4m2n− 4

3n3 flopi, respectiv, pentru calculul

matricei de transformare V se executa N ′′op =

4

3n3 flopi suplimentari. De retinut

ordinea inversa de acumulare a transformarilor care este mai economica, exploatand”umplerea” progresiva a matricelor de transformare. 3

Observatia 5.4 In cazul ın care m ≫ n este posibila o usoara ımbunatatire aeficientei daca ınaintea aplicarii algoritmului JQ are loc o prealabila triangularizareunitara (ortogonala) a matricei A. Concret, procedura, numita ”R-bidiagonalizare”,este urmatoarea.

RJQ 1. Se efectueaza triangularizarea unitara QHA = R =

[R1

0

]

,

cu R1 o matrice n× n superior triunghiulara.

2. [ f, g, U , V ] = JQ(R1, opt1, opt2)3. Daca opt1 = ′da′ atunci

1. U = Q diag(U , Im−n).

Page 412: metode de calcul numeric matriceal. algoritmi fundamentali

398 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Complexitatea acestei proceduri este apreciata, pentru date reale, la NRop ≈ 2mn2+

+2n3, fara acumularea transformarilor. Rezulta Nop − NRop = 2n2(m − 5

3n), i.e.

R-bidiagonalizarea devine asimptotic mai eficienta daca m > 53n. Consideratii

similare asupra complexitatii se pot face si pentru diverse variante de acumulare atransformarilor (vezi [ VI ]). 3

Observatia 5.5 Utilizand reflectori complecsi nehermitici (vezi cap. 3) adecvatcalculati, este posibila reducerea unei matrice complexe la o matrice bidiagonalareala prin transformari unitare de echivalenta. Aceasta versiune a algoritmului JQcpermite utilizarea exclusiva a unei aritmetici reale ın faza iterativa a algoritmuluiDVS si este folosita, de exemplu, ın pachetul de programe LAPACK. Detaliilealgoritmului fac obiectul exercitiului 5.15. 3

5.3.2 Faza iterativa a algoritmului DVS

Faza iterativa construieste un sir de matrice

J = J1, J2, · · · , Jk, · · · (5.74)

convergent catre matricea diagonala reala Σ=

[Σ1 00 0

]

, Σ1=diag(σ1, σ2, . . . , σr),

astfel ıncat sirul matriceal

T1 = JH1 J1, T2 = JH

2 J2, . . . , Tk = JHk Jk, . . . (5.75)

este sirul QR simetric cu deplasare implicita convergent catre forma Schur

S =

[Σ2

1 00 0

]

∈ Rn×n (5.76)

a matricei tridiagonale hermitice (simetrice) T = T1.

A. Un pas DVS

Presupunem, ın continuare, ca matricea superior bidiagonala J ∈ ICm×n este dataprin vectorii f ∈ ICn si g ∈ ICn−1 conform (5.73). Avand ın vedere faptul ca trans-formarile ce definesc un pas QR conserva structura tridiagonala a matricelor Tk,anticipam afirmand ca un pas DVS va conserva structura bidiagonala astfel ıncattoate calculele (mai putin acumularea transformarilor) pot avea loc ın locatiile dememorie ale vectorilor f si g.

Vom determina transformarile vectorilor f si g aferente unui pas DVS printransferarea catre acestia a aplicarii unui pas al algoritmului QR simetric cu de-plasare implicita matricei tridiagonale

Tdef= Tk = JH

k Jkdef= JHJ. (5.77)

In primul rand, aplicabilitatea variantei cu deplasare implicita este conditionatade ireductibilitatea matricei T (sau, mai bine zis, iteratia se aplica numai partiiireductibile a matricei T ). Tinand seama de faptul ca

ti,i+1 = figi, ti+1,i = figi, i = 1 : n− 1, (5.78)

Page 413: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 399

conditia de ireductibilitate devine

fi 6= 0, gi 6= 0, i = 1 : n− 1. (5.79)

In conformitate cu cele prezentate ın capitolul precedent (vezi sectiunea 4.8),un pas QR simetric cu deplasare implicita presupune transformarile prezentatemai jos. Prezentam, ın paralel, efectele acestor transformari la nivelul vectorilor fsi g care definesc matricea bidiagonala J , evidentiind astfel ideile unui pas DVSGolub-Kahan.

1. Calculul deplasarii

µ = tnn = |gn−1|2 + |fn|2 (5.80)

sau, mai bine, al deplasarii Wilkinson, care este valoarea proprie a matricei

T (n− 1 : n, n− 1 : n) =

[|gn−2|2 + |fn−1|2 fn−1gn−1

fn−1gn−1 |gn−1|2 + |fn|2]

not=

[α ββ γ

]

(5.81)cea mai apropiata de tnn. Concret, aceasta deplasare are expresia

µ = γ + δ − sgn(δ)√

δ2 + |β|2, δ =α− γ2

, (5.82)

si se calculeaza economic si fiabil cu relatiile

δ =|gn−2|2 + |fn−1|2 − |gn−1|2 − |fn|2

2, η = |fn−1|2|gn−1|2,

µ = |gn−1|2 + |fn|2 +η

δ + sgn(δ)√

δ2 + η. (5.83)

In cazul real, particularizarile se obtin imediat.

2. Se calculeaza matricea unitara U1 astfel ıncat prima sa coloana U1e1 sa coin-cida cu prima coloana a matricei de transformare care defineste un pas QR simetriccu deplasare explicita, i.e.

U1e1 = ρ

t11 − µt210...0

= ρ

|f1|2 − µf1g10...0

, (5.84)

unde ρ este un factor scalar de normare. Introducand vectorul de deplasare implicitaaferent unui pas DVS

wdef=

[t11 − µt21

]

=

[|f1|2 − µf1g1

]

, (5.85)

Page 414: metode de calcul numeric matriceal. algoritmi fundamentali

400 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

matricea U1 poate fi o rotatie (complexa) P12 = diag(P12, Im−2) astfel ıncat

PH12w =

[∗0

]

. (5.86)

3. Calculul matricei T ← C = PH12TP12, care altera structura tridiagonala ın

pozitiile (3, 1) si (1, 3), se transfera ın calculul matricei

K = JP12 (5.87)

care evidentiaza o alterare a matricei superior bidiagonale ın pozitia (2, 1).

4. Aplicarea algoritmului TQ matricei C, pentru refacerea structurii tridiago-nale a matricei C se transfera, ın cadrul unui pas DVS, ın aplicarea unui algoritmJQ adaptat pentru refacerea structurii superior bidiagonale a matricei J prin trans-formari unitare bilaterale

J ← J ′ = UHn−1U

Hn−2 · · ·UH

1 KV2 · · ·Vn−1, (5.88)

unde Uk, Vk pot fi rotatii (complexe) sau reflectori (complecsi). Schema de calculeste urmatoarea.

1. Pentru k = 1 : n− 1

1. Se calculeaza rotatia Ukdef= Pk,k+1 astfel ıncat

(UHk K)(k + 1, k) = 0

2. K ← UHk K % Se anuleaza elementul (k + 1, k) si

% se altereaza zeroul din pozitia (k, k + 2)3. Daca k < n− 1

1. Se calculeaza rotatia Vk+1def= Pk+1,k+2 astfel ıncat

(KVk+1)(k, k + 2) = 0.2. K ← KVk+1 % Se anuleaza elementul (k, k + 2) si

% se altereaza zeroul din pozitia (k + 2, k + 1)

Pentru a exemplifica adaptarea algoritmului JQ la situatia structurala carac-teristica unei iteratii DVS cu deplasare implicita, consideram cazul dimensionalm = 5, n = 3. Ca si pana acum, ıncadrarile indica liniile sau coloanele afectate,” + ” zerourile alterate, iar ”∅” elementele anulate, toate referindu-se la transfor-marea curenta.

J =

× × 00 × ×0 0 ×0 0 00 0 0

, J ← JP12 =

× ×+ ×0 00 00 0

0××00

,

J ← UH1 J =

× × +∅ × ×0 0 ×0 0 00 0 0

, J ← JV2 =

×0000

× ∅× ×+ ×0 00 0

,

Page 415: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 401

J ← UH2 J =

× × 0

0 × ×0 ∅ ×0 0 00 0 0

.

Matricea succesor K = J ′ este bidiagonala si

T ′ = J ′HJ ′ = (UHn−1 · · ·UH

1 JP12V2 · · ·Vn−1)HUH

n−1 · · ·UH1 JP12V2 · · ·Vn−1 =

= V Hn−1 · · ·V H

2 PH12J

HU1 · · ·Un−1UHn−1 · · ·UH

1 JP12V2 · · ·Vn−1 = QHJHJQ (5.89)

siQe1 = P12V2 · · ·Vn−1e1 = P12e1 (5.90)

este aceeasi cu cea corespunzatoare pasului QR simetric implicit pentru matriceatridiagonala T .

In consecinta, matricea Jk = J , care defineste sirul DVS este astfel calculataıncat matricea Tk = JH

k Jk defineste sirul QR pentru matricea hermitica B = AHAsi, prin urmare, este convergent la forma diagonala.

In conformitate cu cele prezentate mai sus, o iteratie DVS este implementatade urmatorul algoritm.

Algoritmul 5.2 (IT DVSc – Un pas DVS Golub-Kahan) (Dativectorii f ∈ ICn si g ∈ ICn−1 care definesc matricea bidiagonala (5.73)si matricele unitare U ∈ ICm×m si V ∈ ICn×n, algoritmul calculeazamatricea succesor J ← J ′ = QHJQ din sirul DVS, mai exact, noiivectori f ′ si g′ care suprascriu vectorii f si g. Optional, se actualizeazamatricele U si/sau V . Optiunea se exprima prin intermediul variabilelorlogice opt1 si opt2, care pot lua valorile logice ’da’ si ’nu’. Daca nu sedoreste actualizarea, matricele U si/sau V se returneaza nemodificate.)

1. % Calculul deplasarii Wilkinson

1. δ = (|gn−2|2 + |fn−1|2 − |gn−1|2 − |fn|2)/22. η = |fn−1|2|gn−1|2

3. µ = |gn−1|2 + |fn|2 +η

δ + sgn(δ)√

δ2 + η

2. w =

[|f1|2 − µf1g1

]

3. [w, c, s ] = Gc(w)

4. % Se calculeaza J ← JP12. Fie τ elementul nenul care altereazastructura bidiagonala

1. α← f1c− g1s2. g1 ← f1s+ g1c

3. f1 ← α

4. τ ← −f2s

Page 416: metode de calcul numeric matriceal. algoritmi fundamentali

402 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

5. f2 ← f2c

5. Daca opt2 = ′da′ atunci

1. V ( : , 1 : 2) = Gcd(V ( : , 1 : 2), c, s)

6. % Reducerea la forma bidiagonalaPentru k = 1 : n− 1

1. [

[fkτ

]

, c, s] = Gc(

[fkτ

]

)

2. α← cgk − sfk+1

3. fk+1 ← sgk + cfk+1

4. gk ← α

5. Daca k < n− 1 atunci

1. τ ← −sgk+1

2. gk+1 ← cgk+1

6. Daca opt1 = ′da′ atunci

1. U( : , k : k + 1) = Gcd(U( : , k : k + 1), c, s)

7. Daca k < n− 1 atunci

1. [v, c, s] = Gc(

[gkτ

]

)

2. gk = v1

3. α← fk+1c− gk+1s

4. gk+1 ← fk+1s+ gk+1c

5. fk+1 ← α

6. τ ← −fk+2s

7. fk+2 ← fk+2c

8. Daca opt2 = ′da′ atunci

1. V ( : , k + 1 : k + 2) = Gcd(V ( : , k + 1 : k + 2), c, s)

Comentarii. Sintaxa de apel utilizata ın continuare va fi ın cazul complex

[ f, g, U, V ] = IT DVSc(f, g, U, V, opt1, opt2)

si[ f, g, U, V ] = IT DVSr(f, g, U, V, opt1, opt2)

ın cazul real, care se obtine prin ınlocuirea procedurilor complexe apelate cu core-spondentele lor reale si renuntarea la operatia de conjugare. Numarul de operatiinecesar pentru executia unui pas DVS real este Nop ≃ 2n√ + 30n daca nu se

acumuleaza transformarile, N ′op ≃ 6mn operatii sunt necesare pentru acumularea

matricei U si, respectiv, N ′′op ≃ 6n2 pentru acumularea matricei V . 3

Observatia 5.6 In cadrul algoritmului DVS, iteratia DVS curenta, implementade algoritmul de mai sus, va actiona numai asupra unei parti a matricei bidiagonale(asa numitul bloc diagonal ireductibil). Aceasta actiune are ca efect modificareala fiecare iteratie numai a anumitor coloane a matricelor de transformare U si V .

Page 417: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 403

Avand ın vedere acest fapt, suntem interesati sa accceptam ca parametri de intraresi de iesire pentru algoritmul IT DVSc matrice U si V cu un numar de linii superiorcelui precizat ın preambulul algoritmului. Utilizarea ın instructiunile 5.1, 6.6.1 si6.7.8.1 a simbolului ”:” cu semnificatia de ”toate liniile” face ca sa nu fie necesarenici un fel de modificari ale algoritmului. Acelasi mecanism de simbolizare permiteo codificare directa a algoritmului ın MATLAB. Pentru alte limbaje de programarese vor face precizarile de indexare ce se impun. 3

B. Algoritmul DVS

Algoritmul DVS consta din pasii iterativi Golub-Kahan aplicati partii ireductibilea matricei bidiagonale J , anularea elementelor diagonale si supradiagonale deveniteneglijabile, conform unui criteriu acceptat, si reducerea, pe aceasta baza, a dimen-siunii problemei de diagonalizare, pana la epuizare. In final, dupa un numar finit 20

de pasi, se obtine o matrice diagonala a carei DVS se obtine imediat. In legatura cumodul de gestionare structurala a matricei curente a siruluiDVS facem urmatoareleprecizari.

1. Pentru deciziile de anulare a elementelor supradiagonale se poate utilizaurmatorul criteriu

Daca |gi| ≤ tol(|fi|+ |fi+1|) atunci gi = 0. (5.91)

2. Tratarea situatiilor ın care conditiile de ireductibilitate (5.79) ale matriceiT = JHJ nu sunt satisfacute se face diferentiat ın functie de faptul ca elementulnul se afla pe supradiagonala sau pe diagonala. In continuare, referirile le facem lamatricea bidiagonala J initiala definita de vectorii f ∈ ICn si g ∈ ICn−1.

– Daca este nul un element terminal al vectorului g, i.e. g1 = 0 sau gn−1 = 0,atunci problema se reduce, evident, la o problema de dimensiune inferioara cu ounitate. Daca ambele elemente terminale mentionate sunt nule, atunci dimensiuneaproblemei reduse este n− 2.

– Daca exista un singur element supradiagonal neterminal nul, i.e. gi = 0 pentruun i ∈ 2 : n− 2, atunci matricea J se scrie sub forma

J =

[J1 00 J2

]

, J1 ∈ ICi×i, J2 ∈ IC(n−i)×(n−i), (5.92)

cu matricele JH1 J1 si JH

2 J2 tridiagonale ireductibile, i.e. problema se sparge ındoua probleme de aceeasi natura dar de dimensiuni mai mici. Daca sunt mai multeelemente supradiagonale nule, atunci problema ısi reduce, similar, dimensiunea sause sparge ın doua sau mai multe probleme de dimensiuni mai mici.

– Daca exista un singur element diagonal nul, i.e. fi = 0 pentru un i ∈ 1 : n− 1,atunci exista o procedura care, prin transformari unitare (e.g. o secventa de rotatii),anuleaza si elementul supradiagonal de pe aceeasi linie, creand astfel posibilitateadivizarii problemei ca ın (5.92). Schema de calcul este urmatoarea.

20 Datorita deciziilor de anulare efectiva a elementelor neglijabile.

Page 418: metode de calcul numeric matriceal. algoritmi fundamentali

404 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

TZD % Tratarea zerourilor diagonale.1. Pentru j = i+ 1 : n

1. Se calculeaza rotatia ”modificata” Pij astfel ıncat(PH

ij J)(i, j) = 0.2. J ← PH

ij J % Se anuleaza elementul (i, j) si, pentru j < n,este alterat zeroul din pozitia (i, j + 1).

3. Daca se doreste acumularea transformarilor, atunciU ← UPij .

Exemplificam modul de actiune al procedurii de mai sus pentru cazul dimensionalcu n = 4 si cu zeroul diagonal ın pozitia (2,2).

J =

× × 0 00 0 × 00 0 × ×0 0 0 ×

,

J ← P23J =

× × 0 0

0 0 ∅ +0 0 × ×0 0 0 ×

, J ← P24J =

× × 0 0

0 0 0 ∅0 0 × ×0 0 0 ×

.

In vederea scrierii mai concise a algoritmului DVS vom introduce un algoritmauxiliar de tratare a zerourilor diagonale, care implementeaza schema de calcul

TZD . Pentru scrierea lui avem nevoie de o procedura de calcul a unei rotatii”modificate”. Concret, rotatia (complexa) ”modificata” pe care o vom utiliza esteo matrice unitara de ordinul 2 cu structura cunoscuta

P =

[c s−s c

]

, cu c ∈ IR, s ∈ IC, c2 + |s|2 = 1, (5.93)

care, pentru un vector z ∈ IC2 dat asigura

(PHz)(1) = 0. (5.94)

Facand apel la rezultatele stabilite ın capitolul 3, nu este greu de vazut ca relatiile decalcul ale scalarilor c si s, care asigura satisfacerea conditiei (5.94), sunt urmatoarele.

c =

1, daca z1 = 0,0, daca z1 6= 0, z2 = 0,|z2|r, daca z1 6= 0, z2 6= 0,

s =

0, daca z1 = 0,1, daca z1 6= 0, z2 = 0,

z1z2|z2|r

, daca z1 6= 0, z2 6= 0,

(5.95)

r =√

|z1|2 + |z2|2, (PHz)(2) =rz2|z2|

.

Calculul elementelor definitorii de mai sus va fi ınsotit de calculul z ← PHz astfelıncat sintaxa propusa pentru aceasta procedura este

[ y, c, s ] = Gcm(z),

Page 419: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 405

suprascrierea (interna a) lui z realizandu-se cu apelul [ z, c, s ] = Gcm(z). Particula-rizarea pentru date reale este propusa cititorului, aici marginindu-ne sa introducemnumai sintaxa de utilizare

[ y, c, s ] = Grm(z).

Rezulta urmatorul algoritm.

Algoritmul 5.3 (TZDc – Tratarea zerourilor diagonale) (Datematricea superior bidiagonala J ∈ ICm×n cu m ≥ n, prin vectorii f si gal elementelor diagonale, respectiv supradiagonale, si matricea unitaraU ∈ ICm×m, precum si ıntregul i ∈ 1 : n − 1 ce indica pozitia ultimu-lui element diagonal nul, algoritmul calculeaza rotatiile (complexe) Pi,j ,j = i+1 : n, astfel ıncat matricea J ← PH

i,n . . . PHi,i+1J ramane bidi-

agonala, iar elementul gi devine nul. Calculele principale se efectueazaın locatiile de memorie ale elementelor vectorilor f si g. Optional, seactualizeaza matricea unitara de transformare U . Optiunea se exprimacu ajutorul variabilei logice opt, care poate lua valorile ’da’ sau ’nu’.Daca nu se doreste actualizarea, matricea U se returneaza nemodificata.)

1. τ = gi

2. gi = 0

3. Pentru j = i+ 1 : n

1. z = [ τ fj ]T

2. [ z, c, s ] = Gcm(z)

3. fj = z24. Daca j < n atunci

1. τ = −sgj2. gj ← cgj

5. Daca opt = ′da′ atunci

1. Pentru l = 1 : m

1. α = ulic− ulj s2. ulj ← ulis+ uljc

3. uli = α.

Comentarii. In algoritmul de mai sus variabila scalara τ a fost utilizata pentrumemorarea elementului alterant temporar al structurii bidiagonale, iar variabilaauxiliara scalara α pentru calculul produsului U ← UPij . Algoritmul nu verificafaptul ca fi = 0 sau ca nu exista j > i astfel ca fj = 0. Este clar faptul ca daca nusunt ındeplinite conditiile din preambulul algoritmului, acesta nu realizeaza scopulpentru care a fost elaborat.

Sintaxa de apel a algoritmului este, evident,

[ f, g, U ] = TZDc(f, g, i, U, opt).

Complexitatea algoritmului este O(n− i) fara acumularea transformarilor si O(mn)cu acumularea acestora. Se poate aprecia ca algoritmul are, ın general, o contributiemodesta la complexitatea algoritmului DVS.

Page 420: metode de calcul numeric matriceal. algoritmi fundamentali

406 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

In cazul datelor reale, algoritmul se particularizeaza fara dificultate, utilizandprocedura de calcul a unei rotatii modificate reale, mentionata mai sus. Ca atare,ne marginim la precizarea sintaxei de apel:

[ f, g, U ] = TZDr(f, g, i, U, opt).

In ambele situatii, utilizandu-se exclusiv transformari unitare, respectiv ortogo-nale, precizia rezultatelor nu este afectata semnificativ. 3

3. La fiecare iteratie, dupa deciziile de anulare a elementelor supradiagonaleneglijabile si dupa tratarea elementelor diagonale nule, se determina parametriistructurali p si q astfel ıncat matricea J curenta sa poata fi scrisa sub forma

J =

p︷︸︸︷

n−p−q︷︸︸︷

q︷︸︸︷

J11 0 00 J22 00 0 J330 0 0

pn− p− q qm− n

(5.96)

unde p este cel mai mic ıntreg, iar q cel mai mare ıntreg astfel ıncat blocul J33este diagonal, iar blocul bidiagonal J22 este ireductibil, i.e. are toate elementelesupradiagonale nenule si toate elementele diagonale (mai putin, eventual, ultimul),de asemenea, nenule. In termenii vectorilor f si g, prin care este memorata matriceaJ , conditiile de mai sus devin

g(n−q+1 : n−1) = 0, gi 6= 0, i = p+1 : n−q, fi 6= 0, i = p+1 : n−q−1.(5.97)

Evident, iteratia DVS curenta se aplica numai blocului ireductibil J22, i.e.

J22 ← J ′22 = UH

22J22V22 (5.98)

care este echivalenta cu urmatoarea transformare unitara bilaterala aplicata intregiimatrice J

J ← J ′ = diag(Ip, U22, Im−p−q)HJdiag(Ip, V22, In−p−q). (5.99)

Daca blocul ireductibil J22 are dimensiunea 2×2 atunci devine mai eficient calcululdirect al DVS a acestuia. Avand ın vedere faptul ca ın acest caz matricea 2 × 2este si triunghiulara propunem cititorului scrierea unei proceduri care sa realizezeacest lucru (caz particular al exercitiului 5.2). Aici ne vom margini la specificareasintaxei de apel a acestei proceduri care va fi utilizata

[ f, g, U, V ] = DVS 2(f, g)

unde, evident, f este un vector cu doua elemente, iar g este un scalar anulat deprocedura.

4. Procesul de diagonalizare se termina ın momentul ın care au fost anulatetoate elementele supradiagonale, i.e. toate componentele vectorului g, sau, altfelspus, cand parametrul structural q ia valoarea n− 1.

Page 421: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 407

5. Dupa ıncheierea procesului de diagonalizare, elementele diagonale ale matriceilimita J ← J∞, i.e. componentele vectorului f , sunt, ın general, complexe. Pentrua obtine o matrice diagonala reala cu elementele diagonale nenegative se aplica otransformare de echivalenta unitara definita de

J ← DJ sau J ← JD, (5.100)

unde D = diag(D, Im−n) cu21

D = diag(d1, d2, . . . , dn), di =

1, daca fi = 0fi|fi|

, daca fi 6= 0.(5.101)

Dupa aceasta transformare elementele diagonale ale matricei J , i.e. elementelevectorului f sunt valorile singulare ale matricei initiale.

6. Prin definitie, ın DVS, valorile singulare apar ordonate descrescator. Deaceea, ın finalul algoritmului DVS se realizeaza ordonarea elementelor diagonaleutilizand o secventa de permutari elementare bilaterale (i.e. diagonale), definita dematricele de permutare UP = diag(P, Im−n), VP = P si un algoritm de ordonarea listelor. Avand ın vedere faptul ca ordonarea are o pondere putin semnificativaın economia algoritmului DVS, vom utiliza un algoritm popular de sortare, anumealgoritmul bubblesort, si, din aceleasi motive de concizie a formularii algoritmuluiDVS, vom prezenta un algoritm separat de ordonare.

Algoritmul 5.4 (DVS ORD – Ordonarea valorilor singulare)(Date matricea diagonala J , prin vectorul f ∈ IRn al elementelor diago-nale, si matricele unitare U ∈ ICm×m si V ∈ ICn×n, algoritmul realizeazaordonarea ın sens descrescator a elementelor vectorului f , folosind al-goritmul de sortare bubblesort. Optional, se actualizeaza matriceleunitare de transformare U si/sau V , prin permutarea coprespunzatoarea coloanelor acestora. Optiunea se exprima cu ajutorul variabilelor lo-gice opt1 si opt2 care pot lua valorile ’da’ sau ’nu’. Daca nu se doresteactualizarea, matricele U si/sau V se returneaza nemodificate.)

1. ord = ′nu′

2. i = 1

3. Cat timp ord = ′nu′ si i < n

1. ord = ′da′

2. Pentru j = n− 1 : −1 : i

1. Daca fj < fj+1 atunci

1. fj+1 ↔ fj

21 In cazul real, matricea diagonala J∞ este reala, dar poate avea elemente diagonale negative.Evident, ın aceasta situatie utilizam transformarea de echivalenta ortogonala definita de matriceaD avand

di =

1, daca fi ≥ 0,−1, daca fi < 0.

Page 422: metode de calcul numeric matriceal. algoritmi fundamentali

408 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

2. Daca opt1 = ′da′ atunci

1. U(:, j)↔ U(:, j + 1)

3. Daca opt2 = ′da′ atunci

1. V (:, j)↔ V (:, j + 1)

4. ord = ′nu′

3. i← i+ 1.

Comentarii. Variabila logica ord reprezinta starea procesului de ordonare si estefamiliara celor care utilizeaza curent algoritmul de sortare mentionat. Sintaxa deapel a algoritmului va fi

[ f, U, V ] = DVS ORD(f, U, V, opt1, opt2).

Evident, nu se efectueaza operatii aritmetice. Numarul maxim posibil de comparatiieste 1

2n(n−1). Desigur, se pot folosi algoritmi de sortare mai sofisticati dar castigulnu este semnificativ pentru matrice de dimensiuni curente. 3

Avandu-se ın vedere faptul ca matricele de permutare sunt ortogonale, matriceafinala

Σdef= diag(PT , Im−n)JP =

σ1 0 · · · 00 σ2 · · · 0...

.... . .

...0 0 · · · σn...

......

...0 0 · · · 0

(5.102)

ımpreuna, cu matricele unitare U = Udiag(P, Im−n), V = V P definesc DVS calcu-lata a matricei initiale.

Cu toate precizarile de mai sus si utilizand algoritmii auxiliari introdusi, putemprezenta algoritmul DVS ın integralitatea lui.

Algoritmul 5.5 (DVSc – Descompunerea valorilor singulare)(Date matricea A ∈ ICm×n cu m ≥ n si nivelul de toleranta tol, algo-ritmul calculeaza valorile singulare ale matricei A care sunt elementelevectorului f ∈ IRn si optional matricele de transformare U ∈ ICm×m

si/sau V ∈ ICn×n, care definesc DVS a matricei A. Optiunea se exprimacu ajutorul variabilelor logice opt1 si opt2 care pot lua valorile ’da’ sau’nu’. Daca nu se doreste acumularea, atunci pentru matricea respectivase returneaza matricea unitate de dimensiune corespunzatoare.)

1. % Cazul matricelor coloanaDaca n = 1 atunci

1. [A, u, β ] = Hc(A)

2. f = |A(1, 1)|3. U = Im, V = 1

4. Daca opt1 = ′da′ si β 6= 0 atunci

U = Im −u · uHβ

Page 423: metode de calcul numeric matriceal. algoritmi fundamentali

5.3. ALGORITMUL DVS 409

5. Daca opt2 = ′da′ si β 6= 0 atunci

V =A(1, 1)

f6. Return

2. % Reducerea la forma bidiagonala[ f, g, U, V ] = JQc(A, opt1, opt2)

3. % Faza iterativa

1. p = 0, q = 0

2. Cat timp q < n− 1

1. Pentru i = 1 : n− q − 1

1. Daca |gi| ≤ tol(|fi|+ |fi+1|) atuncigi ← 0

2. % Determinarea parametrului q

1. Cat timp g(n− q − 1) = 0q ← q + 1

2. Daca q = n− 1 atunci break

3. % Terminarea fazei iterative

1. Daca q = n− 1 atunci break

4. % Determinarea parametrului p

1. p = n− q − 1

2. Cat timp g(p) = 0

1. p← p− 1

2. Daca p = 0 atunci break

5. k = p+ 1, l = n− q6. % Tratarea unui zero diagonal (daca exista)

1. j = 0

2. Pentru i = l − 1 : −1 : k

1. Daca fi = 0 atunci

1. j = i− k + 12. break

3. Daca j > 0

1. [ f(k : l), g(k : l − 1), Z ] == TZDc(f(k : l), g(k : l− 1), j, Il−k+1, opt1)

2. Daca opt1 = ′da′ atunciU(:, k : l)← U(:, k : l)Z

altfel

1. % Iteratia curentaDaca k < l − 1 atunci

[ f(k : l), g(k : l − 1), U(:, k : l), V (:, k : l) ] == IT DVSc(f(k : l), g(k : l − 1), U(:, k : l),

V (:, k : l), opt1, opt2)altfel

Page 424: metode de calcul numeric matriceal. algoritmi fundamentali

410 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

1. [ f(k : l), g(k : l − 1), Y, Z ] == DVS 2(f(k : l), g(k : l − 1))

2. Daca opt1 = ′da′ atunciU( : , k : l)← U( : , k : l)Y

3. Daca opt2 = ′da′ atunciV ( : , k : l)← V ( : , k : l)Z

4. % Calculul valorilor singulare ale matricei diagonale obtinute ınfaza iterativa

1. Pentru j = 1 : n

1. Daca opt2 = ′da′ atunci

1. Daca fj 6= 0 atunci

1. d =fj|fj|

2. V ( : , j) = V ( : , j)d

2. fj = |fj |5. % Ordonarea valorilor singulare

1. [ f, U, V ] = DVS ORD(f, U, V, opt1, opt2)

Comentarii. Comentariile incluse pun ın evidenta ideile care au stat la baza ela-borarii algoritmului. Din punct de vedere tehnic semnalam utilizarea instructiuniibreak de abandonare a executiei ciclurilor de tip pentru sau de tip cat timp.

O sintaxa de apel naturala a algoritmului DVSc este, evident,

[ f, U, V ] = DVSc(A, tol, opt1, opt2).

Algoritmul DVSc calculeaza DVS si pentru matrice reale 22 desi pentru date realeeste mai economica o versiune ”reala” a algoritmului, care se obtine simplu prinutilizarea corespondentelor reale ale procedurilor implicate.

De asemenea, din ratiuni de concizie si claritate, ın cele ce urmeaza vom utilizasi sintaxa (poate chiar mai semnificativa)

[U,Σ, V ] = DVSc(A, opt1, opt2),

care presupune unele ajustari minore ale algoritmului de mai sus, cum sunt introdu-cerea unei tolerante implicite (de obicei de nivelul lui εM‖A‖) si formarea matriceidiagonale Σ ∈ IRm×n din definitia DVS ale carei elemente diagonale sunt elementelevectorului f . Ordinea modificata a parametrilor de iesire sugereaza formula DVS.

Complexitatea estimata a algoritmului DVS, conform [VI ], este data ın tabelul5.1 pentru varianta reala cu date de intrare matrice reale m×n si diverse tipuri deoptiuni. De asemenea, rezultatele sunt date pentru doua versiuni ale algoritmului:prima versiune utilizeaza algoritmul de bidiagonalizare JQr (ca mai sus), iar ceade a doua algoritmul de R-bidiagonalizare (v. obs. 5.4). 3

22 Din acest motiv, ın referirile ulterioare vom renunta la caracterul c din sigla.

Page 425: metode de calcul numeric matriceal. algoritmi fundamentali

5.4. CONDITIONARE 411

opt1 opt2 Nop Nop

versiunea 1 versiunea 2

’nu’ ’nu’ 4mn2 − 43n

3 2mn2 + 2n3

’da’ ’nu’ 4m2n+ 8mn2 4m2n+ 13n3

’nu’ ’da’ 4mn2 + 8n3 2mn2 + 11n3

’da’ ’da’ 4m2n+ 8mn2 + 8n3 4m2n+ 22n3

Tabelul 5.1: Complexitatea algoritmului DVS

5.4 Conditionarea valorilor singulare

In aceasta sectiune vom aborda cateva aspecte privind sensibilitatea valorilor sin-gulare si a vectorilor singulari la perturbatii numerice ın matricea initiala. In acestscop se vor dovedi utile rezultatele preliminare stabilite ın continuare. Ca si panaacum, rezultatele si demonstratiile vor fi prezentate pentru cazul, mai general, al ma-tricelor complexe, particularizarea pentru matricele reale (care se reduce, ın esenta,la ınlocuirea multimii IC cu multimea IR si a operatorului hermitic H cu operatorulde transpunere T ) fiind lasata ın sarcina cititorului.

5.4.1 Rezultate preliminare

Fie matricea A ∈ ICn×n. Valorile singulare ale matricei A fiind nemijlocit legate

de valorile proprii ale matricelor hermitice AHA, AAH sau

[0 AH

A 0

]

multe din

rezultatele stabilite ın sectiunea § 4.1, referitoare la proprietatile spectrale ale ma-tricelor hermitice (ın cazul real, simetrice) ısi gasesc un corespondent direct si ime-diat ın proprietatile valorilor singulare. Fie V un subspatiu liniar al lui ICn si Smultimea vectorilor de norma euclidiana unitara din ICn, i.e. sfera de raza unitaracentrata ın origine. Notam cu VS = V ∩ S, i.e. multimea vectorilor de norma uni-tara din subspatiul V . Reamintim ca intotdeauna valorile singulare ale unei matricesunt indexate ın sens descrescator.

In primul rand, teoremei 4.3 ıi corespunde urmatorul rezultat.

Teorema 5.9 Fie A ∈ ICn×n si σ(A) = σ1, σ2, . . . , σp, p = min(m,n), multimeavalorilor sale singulare. Atunci avem

σmax = maxx ∈ S

‖Ax‖, σmin = minx ∈ S

‖Ax‖, (5.103)

unde ‖ · ‖ def= ‖ · ‖2.

Page 426: metode de calcul numeric matriceal. algoritmi fundamentali

412 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Demonstratie. Rezultatele sunt urmare directa aplicarii teoremei 4.3 matriceiB = AHA. 3

In al doilea rand, avem urmatoarea caracterizare minimax a valorilor singularecare ısi are originea ın teorema Courant-Fisher (v. § 4.1).

Teorema 5.10 Fie A ∈ ICn×n si σ(A) = σ1, σ2, . . . , σp, p = min(m,n), multimeavalorilor sale singulare. Atunci pentru toti k ∈ 1 : p avem

σk = maxdimV = k

minx ∈ VS

‖Ax‖ = mindimV = n− k

maxx ∈ VS

‖Ax‖, (5.104)

unde ‖ · ‖ def= ‖ · ‖2 este norma euclidiana ın ICn.

Demonstratie. Consideram matricea hermitica B = AHA. Pentru orice vectorx ∈ ICn avem xHBx = ‖Ax‖2 si, presupunand ca valorile proprii ale matricei B suntordonate descrescator, λk(B) = σ2

k. Cu aceste precizari, caracterizarile minimax(5.104) rezulta imediat din aplicarea teoremei Courant-Fisher matricei B. 3

Corespondentul teoremei de separare 4.5 are urmatorul enunt.

Teorema 5.11 (Teorema de separare a valorilor singulare) Fie A ∈ ICn×n. Notam

Akdef= A( : , 1 : k) sau Ak

def= A(1 : k, : ). Atunci valorile singulare ale matricei Ak

separa valorile singulare ale matricei Ak+1, i.e.

σ1(Ak+1) ≥ σ1(Ak) ≥ σ2(Ak+1) ≥ . . . ≥ σk(Ak+1) ≥ σk(Ak) ≥ σk+1(Ak+1),(5.105)

pentru toti k ∈ 1 : p−1, p = min(m,n).

Demonstratie. Presupunem mai ıntai ca Ak este matricea formata din primele kcoloane ale matricei A. Atunci submatricea lider principala de ordinul k a matricei

B = AHA este data de B[k] def= B(1 : k, 1 : k) = AH

k Ak si separarea (5.105) rezultadin aplicarea directa a teoremei 4.5 matricei B. Daca Ak este matricea formata dinprimele k linii ale matricei A, atunci inegalitatile (5.105) se obtin aplicand teorema4.5 matricei C = AAH . 3

Una din observatiile imediate care rezulta din teorema 5.11 este aceea ca adau-garea unei coloane sau unei linii la o matrice data are ca efect cresterea valoriisingulare maxime (i.e. a normei spectrale) si scaderea valorii singulare minime.

O relatie dintre valorile singulare a doua matrice si valorile singulare ale sumeilor, data ın teorema urmatoare, este utila ın aprecierea influentei perturbatiilornumerice ın elementele unei matrice asupra valorilor sale singulare.

Teorema 5.12 Fie matricele A,E ∈ ICn×n. Atunci, cu notatii evidente, avem

σk(A) − σ1(E) ≤ σk(A+ E) ≤ σk(A) + σ1(E) (5.106)

pentru toti k ∈ 1 : min(m,n).

Page 427: metode de calcul numeric matriceal. algoritmi fundamentali

5.4. CONDITIONARE 413

Demonstratie. Aplicand teorema 4.7 (v. § 4.1) matricelor hermitice B =

=

[0 AH

A 0

]

si F =

[0 EH

E 0

]

, ın ipoteza ca valorile proprii sunt ordonate

descrescator, avem

λk(B) + λm+n(F ) ≤ λk(B + F ) ≤ λk(B) + λ1(F ). (5.107)

Dar, conform propozitiei 5.1, avem λk(B) = σk(A), k = 1 : min(m,n), λ1(F ) == σ1(E) si λm+n(F ) = −σ1(E), i.e. relatia (5.107) este de fapt una si aceeasi cu(5.106). Teorema este demonstrata. 3

In sfarsit, prezentam corespondentul pentru valorile singulare al teoremei 4.8(Wielandt-Hoffmann).

Teorema 5.13 Daca A,E ∈ ICm×n si p = min(m,n), atunci

p∑

j=1

(σj(A+ E)− σj(E))2 ≤ ‖E‖2F , (5.108)

unde ‖E‖F este norma Frobenius a matricei E.

Demonstratie. Aplicand teorema Wielandt-Hofmann (v. § 4.1) matricelor her-

mitice B =

[0 AH

A 0

]

si F =

[0 EH

E 0

]

si tinand seama de relatia dintre

valorile proprii ale matricelor B si F si valorile singulare ale matricelor A si E (v.propozitia 5.1) se obtine rezultatul dorit. 3

5.4.2 Conditionarea valorilor singulare

Rezultatele prezentate mai sus permit aprecierea conditionarii valorilor singulare.In primul rand, avand ın vedere faptul ca valorile singulare ale unei matrice A ∈∈ ICn×n sunt radacinile patrate ale valorilor proprii ale matricelor hermitice AHAsau AAH , iar acestea din urma sunt perfect conditionate (v. § 4.10), rezulta ca sivalorile singulare sunt perfect conditionate, i.e. putem considera ca numerele deconditionare ale valorilor singulare sunt egale cu unitatea.

Rezultatul principal care sustine afirmatia de mai sus este dat de teorema 5.12.Intr-adevar, inegalitatile (5.106) pot fi scrise sub forma

|σk(A+ E)− σk(A)| ≤ σ1(E) = ‖E‖, (5.109)

unde, evident ‖E‖ = σ1(E) este norma spectrala a lui E. Daca privim matricea Eca o matrice de perturbatii (sau de incertitudine) ın datele initiale, atunci marginea(5.109) arata ca, ın ipoteza unui calcul exact, variatiile absolute ale valorilor sin-gulare induse de variatiile ın elementele matricei nu depasesc norma spectrala amatricei de perturbare. Desigur, daca ne referim la variatiile relative, valorile sin-gulare mari sunt avantajate, ın timp ce valorile singulare mici pot sa sufere variatiirelative mari.

Page 428: metode de calcul numeric matriceal. algoritmi fundamentali

414 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

De asemenea, cum era de asteptat, conditionarea ıntregului ansamblu de valorisingulare, privita ca o norma a vectorului conditionarilor valorilor singulare, estecea mai buna posibila. In sprijinul acestei afirmatii vine si teorema 5.13 care arataca norma euclidiana a vectorului variatiilor absolute ale valorilor singulare esteinferioara normei Frobenius a matricei variatiilor elementelor matricei initiale.

Exemplul 5.4 Fie matricea A =

[1.60 0.36 0.48−1.20 0.48 0.64

]

∈ IR2×3 ale carei valori

singulare exacte sunt σ1 = 2 si σ2 = 1. Valorile singulare ale matricei perturbate

F = A+E = A+ ǫG =

[1.60 0.36 0.481−1.20 0.48 0.64

]

, unde ǫ = 10−3, G =

[0 0 10 0 0

]

(cu ‖G‖ = ‖G‖F = 1), sunt σ1 ≈ 2.0000002, σ2 ≈ 1.0004800. Se observa canici variatiile absolute ale valorilor singulare individuale, nici norma euclidiana avectorului lor

(σ1 − σ1)2 + (σ2 − σ2)2 ≈ 0.48 · 10−4 nu depasesc valoarea lui ǫ. 3

Conditionarea excelenta a valorilor singulare este unul din argumentele funda-mentale ale utilizarii lor pentru rezolvarea numerica a unei multitudini de problemeaplicative de algebra liniara.

5.4.3 Conditionarea vectorilor singulari

Similar cazului matricelor hermitice (v. § 4.10), perfecta conditionare a valorilorsingulare nu implica ın mod necesar buna conditionare a vectorilor singulari si asubspatiilor generate de acestia.

Fie A ∈ ICm×n si A = UHΣV descompunerea valorilor sale singulare. Apreciereaconditionarii vectorilor singulari, i.e a coloanelor matricelor unitare de transforma-re U si V , se face prin evaluarea diferentei unghiulare dintre vectorul exact si celperturbat, definita prin

θ(ui, ui) = arccos |uHi ui|, i = 1 : m θ(vj , vj) = arccos |vHj vj |, j = 1 : n,(5.110)

raportata la norma variatiei matricei date.

Aceasta abordare poate fi extinsa la exprimarea conditionarii subspatiilor ge-nerate de vectori singulari care este apreciata prin variatia unghiulara (v. § 4.10)a subspatiilor respective. Concret, fiind data o matrice A si σI ⊂ σ(A) un set devalori singulare ale acesteia, prin conditionarea subspatiului U , generat de vectoriisingulari asociati setului λI , vom ıntelege variatia unghiulara (sau o margine supe-rioara a acesteia) a subspatiului U raportata la nivelul perturbatiilor ın elementelematricei A.

Conditionarea subspatiilor generate de vectori singulari este determinata ınmod decisiv de localizarea valorilor singulare asociate. Este posibil, si aici, ca unsubspatiu generat de vectori singulari rau conditionati sa aiba o conditionare foartebuna daca grupul corespunzator de valori singulare este bine separat de celelalte.

In contextul DVS, vom nota separarea unei valori singulare individuale σi si,respectiv a setului de valori singulare σI , de celelalte valori singulare ale aceleiasi

Page 429: metode de calcul numeric matriceal. algoritmi fundamentali

5.5. STABILITATEA ALGORITMULUI DVS 415

matrice, prin

gapidef= min(σi−1 − σi, σi − σi+1), gapI

def= min

i∈Ij 6∈I

|σi − σj | (5.111)

si corespondentele lor relative, prin

relgapidef= min

j∈1:pj 6=i

|σi − σj |σi + σj

, relgapIdef= min

i∈Ij 6∈I

|σi − σj |σi + σj

, (5.112)

unde p = min(m,n).Conditionarea subspatiului UI , i.e. variatia unghiulara a acestuia raportata

la nivelul perturbatiilor ın matricea initiala, se poate aprecia prin numarul deconditionare

κUI

def=

1

gapI(5.113)

si, ın particular, conditionarea unui vector singular prin numarul

κui

def=

1

gapi. (5.114)

Pentru detalii recomandam consultarea referintelor bibliografice [ IV ], [ VI ], [ VIII ].

5.5 Stabilitatea numerica a algoritmului DVS

Analiza erorilor introduse de algoritmul DVS a condus la aprecierea ca acestareprezinta un mijloc foarte fiabil de calcul al valorilor singulare si al vectorilorsingulari. Altfel spus, algoritmul DVS este un algoritm numeric stabil [ VI ], [ XV ],i.e. se poate arata ca tripletul (U , Σ, V ), care defineste DVS calculata, este o DVSexacta pentru o matrice foarte ”apropiata” de matricea data. In termeni formali,

daca A ∈ ICm×n si, prin urmare, U ∈ ICm×m, V ∈ ICn×n, Σ =

[

Σ1

0

]

sau Σ =

=[

Σ1 0], cu Σ1 = σ1, σ2, . . . , σp, p = min(m,n), atunci exista matricele

unitare U ∈ ICm×m, V ∈ ICn×n, astfel ıncat, notand

∆Udef= U − U , ∆A

def= U ΣV H −A, ∆V

def= U − V , (5.115)

sunt satisfacute inegalitatile

‖∆U‖ ≤ p(m,n)εM , ‖∆A‖ ≤ p(m,n)‖A‖εM , ‖∆V ‖ ≤ p(m,n)εM ,(5.116)

unde, ca si pana acum, ‖ · ‖ def= ‖ · ‖2 este norma spectrala, p(m,n) este o notatie

generica pentru o functie cu ”o crestere modesta” 23 iar εM este epsilon masinadefinind precizia de reprezentare a formatului virgula mobila utilizat.

23 Asa cum s-a precizat si ın capitolul 4, practic pentru toti algoritmii prezentati ın acestcapitol, p(m,n) sau p(n) este o functie polinomiala de un grad ”modest” (1, 2 sau, foarte rar,

3) de parametri ce definesc dimensiunea problemei. In [ XV ] se afirma ca o apreciere de genulp(n) < 10n sau p(m,n) < 10max(m,n) este adevarata ın majoritatea situatiilor practice pentrucare se foloseste formula de evaluare ”functie cu o crestere modesta”.

Page 430: metode de calcul numeric matriceal. algoritmi fundamentali

416 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Combinand excelenta conditionare a valorilor singulare cu stabilitatea numericaa algoritmului DVS, se poate afirma ca descompunerea valorilor singulare este celmai bun mijloc de a calcula invariantii unei matrice la transformarile de echivalenta(cum este rangul). Concret valorile singulare calculate σi satisfac inegalitatile

|σi − σi| ≤ p(m,n)‖A‖εM = p(m,n)σ1εM . (5.117)

Deci, pentru toate valorile singulare avem aceeasi margine de eroare absoluta, ceeace ınseamna ca valorile singulare mari vor avea erori relative mici.

Pentru vectorii singulari si subspatiile generate de acestia, erorile raportate lamatricea initiala pot fi amplificate de numerele de conditionare, astfel ca putemscrie

θ(ui, ui) ≤p(m,n)‖A‖εM

gapi, θ(UI , UI) ≤

p(m,n)‖A‖εMgapI

. (5.118)

In sfarsit, mentionam ca cea mai mare acumulare a erorilor are loc ın faza de re-ducere la forma bidiagonala, faza iterativa a algoritmului DVS avand o contributiemodesta ın acest sens. Prin urmare, pentru matricele bidiagonale, chiar erorile rela-tive ale tuturor valorilor singulare sunt marginite de un multiplu modest al erorilorde reprezentare. Pentru amanunte, vezi [ XV ].

5.6 Aplicatiile DVS

In prima sectiune a acestui capitol au fost introduse o serie de concepte si pro-bleme de calcul numeric conexe, probleme a caror rezolvare se poate face performantapeland la DVS a unor matrice. Cu aceasta ocazie au fost prezentate si demonstraterezultate matematice care sugereaza unele modalitati de calcul. In sectiunea defata ne propunem sa revenim asupra acestor probleme ın vederea dezvoltarii unorproceduri de calcul fiabile, pentru relevarea unor aspecte numerice semnificativeprecum si pentru extinderea unor rezultate ın contextul utilizarii algoritmului DVSpentru calculul valorilor singulare.

5.6.1 Trunchierea DVS calculate. Calculul rangului.Rangul numeric

In conformitate cu propozitia 5.2, rangul unei matrice este dat de numarul valo-rilor sale singulare nenule 24. Acest rezultat fundamental are o utilitate redusa ınaplicatiile curente ın care matricele de date sunt, ın general, rezultatul unor evaluariaproximative, iar utilizarea calculatorului pentru determinarea valorilor singulareeste ınsotita de erori. In astfel de situatii, generic, toate valorile singulare calculatesunt, ın sens strict, nenule. Prin urmare, generic, ın urma procesarii ın medii decalcul aproximativ, toate matricele devin de rang maximal si, datorita acestui fapt,

24 O alternativa viabila, cu un efort de calcul mai redus, pentru rezolvarea problemelor de rangeste data de triangularizarea unitara (ortogonala) cu pivotarea coloanelor (vezi cap. 3.). Dinpunctul de vedere al calitatilor numerice DVS constituie ınsa metoda cea mai buna (vezi exempluldin acest paragraf).

Page 431: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 417

problema determinarii rangului ramane fara obiect. De aceea, pentru aplicatii, estenecesara o modalitate coerenta de apreciere a valorilor singulare neglijabile. Ran-gul rezultat dupa deciziile de neglijare, ın conformitate cu criterii bine precizate,a valorilor singulare ”mici” va fi numit ”rangul numeric” al matricei initiale. Maiprecis avem urmatoarea definitie.

Definitia 5.6 Fie A ∈ ICm×n si A = UΣV H DVS a matricei A. Rangul numerical matricei A pentru o toleranta ǫ fixata este definit de

r = rang(A, ǫ) = min‖A−X‖ ≤ ǫX ∈ ICm×n

rangX, (5.119)

i.e. este cel mai mic dintre rangurile tuturor matricelor de aceleasi dimensiuni aflatela o distanta – definita de norma spectrala – de matricea A mai mica decat tolerantaadmisa 25.

DVS este un mijloc extrem de sigur de determinare a rangului numeric ın sensuldefinitiei de mai sus. In sprijinul acestei afirmatii avem urmatoarea teorema.

Teorema 5.14 Daca A = UΣV H este DVS a matricei A ∈ ICm×n, k < r = rangAsi

Akdef=

k∑

j=1

σjujvHj , (5.120)

atuncimin

rangX = kX ∈ ICm×n

‖A−X‖ = ‖A−Ak‖ = σk+1. (5.121)

Demonstratie. Precizam mai ıntai faptul ca, atat ın enuntul teoremei cat siın cele ce urmeaza, utilizam ın exclusivitate norma spectrala. Din (5.120) rezultaUHAkV = diag(σ1, σ2, . . . , σk, 0, . . . , 0), de unde rangAk = k. Rezulta A − Ak =∑r

j=k+1 σjujvHj , de unde avem UH(A−Ak)V = diag(0, . . . , 0, σk+1, . . . , σr, 0, . . . , 0)

si, prin urmare, ‖A−Ak‖ = σk+1.Fie acum o matrice m × n (complexa) X de rang k, altfel arbitrara. Fie, de

asemenea, subspatiile liniare X = KerX , V = ImV ( : , 1 : k+1) si W = X ⋂ V dinICn. Intrucat dimX = n − k si dimV = k + 1 avem dimW ≥ 1. Exista deci unvector unitar w ∈ W . Avem pe de o parte Xw = 0, iar pe de alta parte existaz ∈ ICk+1 cu ‖z‖2 = 1 astfel ıncat w = V ( : , 1 : k+1)z =

∑k+1i=1 zivi. Obtinem

Aw =∑k+1

i=1 ziAvi =∑k+1

i=1 ziσiui. Rezulta

‖A−X‖ def= max‖x‖ = 1

‖(A−X)x‖ ≥ ‖(A−X)w‖ = ‖Aw‖ =

√√√√

k+1∑

i=1

|zi|2σ2i .

25 In ceea ce priveste nivelul tolerantelor practicate, acesta depinde de contextul aplicativ. Deexemplu, daca matricea provine din date experimentale cu un nivel cunoscut al erorilor de masura,atunci nu are nici un sens ca ǫ sa fie inferior acestui nivel. Daca matricea initiala se consideraexacta, atunci se recomanda ǫ ≈ εM‖A‖, unde εM este epsilon masina al formatului virgula mobilaal masinii pe care se efectueaza calculele.

Page 432: metode de calcul numeric matriceal. algoritmi fundamentali

418 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Deoarece vectorul z are norma unitara, i.e.∑k+1

i=1 |zi|2= 1, pentru expresia de sub

radical avem evaluarea

k+1∑

i=1

|zi|2σ2i = σ2

k+1 +

k∑

i=1

|zi|2(σ2i − σ2

k+1) ≥ σ2k+1.

Din ultimele doua relatii rezulta ‖A−X‖2 ≥ σ2k+1 pentru orice matrice X ∈ ICm×n

de rang k si, cum am vazut mai sus ca marginea inferioara poate fi atinsa, ca (5.121)este adevarata. 3

Prin urmare, σk+1 este cea mai mica distanta, ın sensul normei spectrale, dintrematricea A si toate matricele m×n de rang k. In particular, cea mai mica distantadintre o matrice A ∈ ICn×n nesingulara si toate matricele singulare este data devaloarea singulara minima σn a lui A.

Exemplul 5.5 Consideram important si util, ın contextul acestui paragraf, sareluam un exemplu prezentat ın capitolul 2, exemplu menit sa ilustreze faptul caunele criterii, ınca uzitate, pentru aprecierea ”apropierii” unei matrice de o matricesingulara (cum ar fi valoarea determinantului sau cel mai mic dintre modulele valo-rilor proprii), dau informatii false si ca singurul criteriu corespunzator este dat devaloarea singulara minima. Fie matricea Toeplitz superior triunghiulara

A =

1 −1 · · · −1 −10 1 · · · −1 −1...

.... . .

......

0 0 · · · 1 −10 0 · · · 0 1

∈ IRn×n

avand, evident, detA = 1 si toate valorile proprii egale cu 1, deci min |λi(A)| = 1,independent de dimensiunea matricei. Prin urmare, ambele criterii amintite mai susindica ”indubitabil” faptul ca matricea A este suficient de ”departe” de o matricesingulara si ca, aparent, este bine conditionata la inversare. Faptul ca, cel putin ıncazul de fata, aparentele ınseala se poate constata imediat considerand matricea

A =

1 −1 · · · −1 −10 1 · · · −1 −1...

.... . .

......

0 0 · · · 1 −1− 1

2n−2 0 · · · 0 1

∈ IRn×n

care este (demonstrati!) singulara. Cum ‖A − A‖ = 12n−2 ≥ σn(A) rezulta ca

matricea A se apropie exponential de o matrice singulara odata cu cresterea dimen-siunii.

Numarul de conditionare la inversare creste si el exponential cu dimensiuneamatricei. De exemplu, utilizand ‖ · ‖∞, numarul de conditionare are expresiaκ∞ = n2n−1. Pe de alta parte, matrice avand valori proprii foarte mici si, ca

Page 433: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 419

urmare, si determinanti asijderea, pot avea o conditionare foarte buna. Pentrudetalii, vezi capitolul 2. 3

Una dintre consecintele conceptuale importante ale teoremei 5.14 este faptul camatricele m×n de rang maximal formeaza o multime deschisa si densa ın ICm×n, i.e.generic, toate matricele sunt de rang maximal. De aceea, ın problemele de calculnumeric care fac apel la notiunea de rang, utilizarea notiunii de rang numeric esteindispensabila.

Prezentam ın continuare un corolar al teoremei 5.14. In contextul lucrarii, rezul-tatul are o utilitate practica evidenta.

Corolar 5.3 Daca matricea A ∈ ICm×n are rangul numeric r = rang(A, ǫ), atunci

σ1 ≥ σ2 ≥ . . . ≥ σr > ǫ ≥ σr+1 . . . ≥ σp, (5.122)

unde p = min(m,n).

Demonstratie. Daca σr+1 > ǫ rezulta rang(A, ǫ) > r, iar daca σr ≤ ǫ, atuncirang(A, ǫ) < r. Deci, σr > ǫ ≥ σr+1. 3

Observatia 5.7 Practic toate aplicatiile care utilizeaza DVS a unei matrice, facapel la rangul acesteia. In contextul calculatoriu al lucrarii, ın continuare vom pre-supune ca este vorba implicit de rangul numeric. In consecinta, vom presupuneca s-au neglijat, prin anulare efectiva, valorile singulare inferioare tolerantei pre-cizate si vom renunta la notatii speciale care diferentiaza rangul numeric de rangulmatematic. 3

Desi, avand ın vedere corolarul 5.3 si observatia 5.7, scrierea unui algoritm pen-tru determinarea rangului numeric al unei matrice nu prezinta nici o dificultate,totusi, tinand seama de importanta aplicativa a problemei, consideram necesaraındeplinirea acestei formalitati.

Algoritmul 5.6 (Rang DVS – Calculul rangului numeric) (Datematricea A ∈ ICm×n si toleranta tol > 0, algoritmul calculeaza rangulnumeric r = rang(A, tol) al matricei A.)

1. p = min(m,n)

2. [U,Σ, V ] = DVS(A, ′nu′, ′nu′)

3. r = 0

4. Cat timp Σr+1,r+1 ≥ tol1. r← r + 1

2. Daca r = p atunci break

Comentarii. Sintaxa de apel a algoritmului este

r = Rang DVS(A, tol).

In aplicatiile care sunt prezentate ın continuare se vor ivi situatii ın care este necesaratat calculul rangului cat si calculul explicit al DVS a matricei A. Pentru a evitaun calcul dublu al aceleiasi DVS, se va utiliza secventa de apeluri

Page 434: metode de calcul numeric matriceal. algoritmi fundamentali

420 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

1. [U,Σ, V ] = DVS(A, opt1, opt2)

2. r = Rang DVS(Σ, tol)

la instructiunea 2 matricea argument fiind diagonal˘ nu se mai calculeaza ın faptnici o DVS.

Complexitatea algoritmului este data, ın cazul general, de complexitatea algo-ritmului DVS fara acumularea transformarilor. 3

Observatia 5.8 In definirea si calculul rangului numeric a fost utilizata, ın exclu-sivitate, norma spectrala. In unele lucrari [VI ], pentru dezvoltarea acelorasi idei, seprefera utilizarea normei Frobenius, rezultatele fiind ıntru totul similare. In aceastaobservatie prezentam rezultatul corespunzator teoremei 5.14, care ne va fi util si ınrezolvarea problemei celor mai mici patrate totala.

Teorema 5.15 Daca Σ = UAV H este DVS a matricei A ∈ ICm×n, k < r = rangA26 si Ak este matricea definita ın (5.120), atunci

minrangX=k

X∈ ICm×n

‖A−X‖2F = ‖A−Ak‖2F =r∑

i=k+1

σ2i . (5.123)

Mai mult Ak este unica matrice de rang k pentru care acest minim este atins.

Demonstratie. Fie X ∈ ICm×n o matrice de rang k arbitrara si X = UΣV H

DVS a matricei X , unde Σ =

[Σ11 00 0

]

∈ IRm×n cu Σ11 = diag(σ1, σ2, . . . , σk).

Notam B = UHAV =

[B11 B12

B21 B22

]

cu B11 ∈ ICk×k. Fie σ(B11) = γ1, γ2, . . . , γk.Evident, σ(A) = σ(B) si, din teorema 5.11, de separare a valorilor singulare, rezulta

imediat σi ≥ γi, i = 1 : k. Rezulta ‖B11‖2F =∑k

i=1 γ2i ≤

∑ki=1 σ

2i . Avem, ın

consecinta, urmatoarele evaluari:

‖A−X‖2F = ‖B − Σ‖2F = ‖B‖2F +

k∑

j=1

|bjj − σj |2 −k∑

j=1

|bjj |2 ≥

≥ ‖B‖2F − ‖B11‖2F ≥ ‖B‖2F −k∑

i=1

σ2i =

r∑

i=k+1

σ2i .

Pe de alta parte este evidenta egalitatea ‖A−Ak‖2F =∑r

i=k+1 σ2i , i.e. minimul

este atins pentru X = Ak. Vom arata acum ca X = Ak este singura matrice derang k astfel ıncat ‖A−X‖2F =

∑ri=k+1 σ

2i . Cu notatiile utilizate mai sus rezulta

k∑

j=1

σ2j +

k∑

j=1

|bjj − σj |2 −k∑

j=1

|bjj |2 = 0

26 Aici, la fel ca ın teorema 5.14, r este rangul matematic.

Page 435: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 421

sik∑

j=1

σ2j ≥

k∑

j=1

γ2j = ‖B11‖2F ≥k∑

j=1

|bjj |2,

de unde obtinembjj = σj , j = 1 : k.

Rezulta B11 = Σ11, de unde unicitatea se obtine imediat. 3

In lumina teoremei 5.15 putem defini rangul numeric rF , ın sensul normei ma-triceale Frobenius, ca fiind ce mai mic ıntreg k pentru care

min(m,n)∑

i=k+1

σ2i < ǫ,

unde ǫ este o toleranta precizata. Si aceasta definire a notiunii de rang numeric esteutila mai ales ın contextul calculului numeric, situatie ın care σi, din relatia de maisus, sunt valorile singulare calculate ale matricei A. 3

5.6.2 Problema generala a celor mai mici patrate

Consideram sistemul liniarAx = b (5.124)

ın cadrul general ın care matricea A ∈ ICm×n nu este de rang maximal 27 (i.e.r = rangA < min(m,n)), cu b ∈ ICm arbitrar. Formulam problema rezolvarii ınsens CMMP a acestui sistem, respectiv de calcul a vectorului x∗ ∈ ICn de normaeuclidiana minima care minimizeaza norma euclidiana a reziduului r(A, b) = b−Ax,i.e.

‖x∗‖ = min‖b−Ax‖ = minim

x ∈ ICn

‖x‖, (5.125)

numita pseudosolutie normala a sistemului (5.124). Avem urmatorul rezultat.

Propozitia 5.7 Sistemul liniar (5.124) admite o pseudosolutie normala unic de-terminata. Daca A = UΣV H este DVS a matricei A, atunci aceasta pseudosolutienormala are expresia

x∗ = A+b =r∑

j=1

uHj b

σjvj . (5.126)

Demonstratie. Fie d = UHb =

[d′

d′′

]

, y = V Hx =

[y′

y′′

]

unde d′ = d(1 : r),

d′′ = d(r+1 : m) si y′ = y(1 :r), y′′ = y(r+1 : n). Avem

‖b−Ax‖2 = ‖b− UΣV Hx‖2 = ‖d− Σy‖2 =√

‖d′ − Σ1y′‖22 + ‖d′′‖2227Pentru sistemele de rang maximal vezi capitolul 3.

Page 436: metode de calcul numeric matriceal. algoritmi fundamentali

422 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

care este, evident, minima pentru y′ = Σ−11 d′ si y′′ arbitrar. Dintre toti vectorii y

care minimizeaza reziduul de mai sus, cel de norma euclidiana minima corespundelui y′′ = 0. Cum ‖x‖2 = ‖y‖2, rezulta ca vectorul de norma euclidiana minima careminimizeaza reziduul ‖b−Ax‖2 este

x∗ = V

[Σ−1

1 d′

0

]

= V

[Σ−1

1 00 0

]

d = V Σ+UHb = A+b,

ultima egalitate din (5.126) obtinandu-se utilizand (5.55). Unicitatea pseudosolutieinormale rezulta din unicitatea pseudoinversei. 3

Propozitia 5.7 conduce la urmatorul algoritm.

Algoritmul 5.7 (CMMP – Rezolvarea problemei generale CMMP)(Date matricea A ∈ ICm×n, vectorul b ∈ ICm si toleranta tol > 0, algorit-mul calculeaza (pseudo)solutia x = x∗ ∈ ICn, ın sens CMMP, de normaeuclidiana minima, a sistemului liniar Ax = b.)

1. [U,Σ, V ] = DVS(A, ′da′, ′da′)

2. r = Rang DVS(Σ, tol)

3. x = 0

4. Pentru j = 1 : r

1. δ = (U( : , j))Hb

2. δ =δ

σj3. x = x+ δV ( : , j)

Comentarii. Sintaxa de apel a algoritmului este

x = CMMP(A, b, tol),

iar complexitatea sa este determinata de complexitatea algoritmului DVS cu acu-mularea transformarilor.

Algoritmul prezentat este numeric stabil, detalii privind acuratetea solutiei prob-lemei CMMP calculata mai sus putand fi gasite ın [ VI ]. 3

5.6.3 Problema celor mai mici patrate totala

Vom formula si rezolva ın cele ce urmeaza o generalizare a problemei clasice a celormai mici patrate (CMMP). Pentru a da o justificare formularii acestei generalizari,sa observam ca problema CMMP, de minimizare a normei euclidiene a reziduuluir = Ax − b, unde matricea A ∈ ICm×n si vectorul b ∈ ICn sunt date 28, poate fireformulata ın modul urmator. Putem privi reziduul r din egalitatea Ax = b+ r cao ”perturbare” a vectorului de date b sub restrictia ca b+ r = Ax pentru un anumit

28 Toate rezultatele raman valabile si ın cazul real. S-a preferat considerarea datelor complexepentru asigurarea omogenitatii tratarii materialului din acest capitol.

Page 437: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 423

x, i.e. (b+ r) ∈ ImA. In aceste conditii problema CMMP este de a determina acelreziduu r∗ ∈ ICm pentru care avem

‖r∗‖ = min(b+ r) ∈ ImA

‖r‖, (5.127)

unde ‖ · ‖ def= ‖ · ‖2 este norma euclidiana din ICm. In aceasta interpretare, daca

r∗ este o solutie a problemei de minimizare (5.127), atunci orice solutie x∗ ∈ ICn asistemului Ax = b+ r∗ este (pseudo)solutie CMMP a sistemului liniar Ax = b.

Un prim pas spre generalizare se poate face impunand o ponderare a patratelor

din expresia ‖r‖ = (∑m

i=1 |ri|2)12 , i.e. considerarea problemei minimizarii reziduului

”ponderat” ‖Cr‖ = (∑m

i=1 |ciri|2)12 , unde C = diag(c1, c2, . . . , cm) ∈ ICm×m este o

matrice nesingulara, i.e. problema (5.127) devine

‖Cr∗‖ = min(b+ r) ∈ ImA

‖Cr‖, r ∈ ICm. (5.128)

Al doilea pas de generalizare poate fi facut considerand si perturbatii la nivelulelementelor matricei A, respectiv considerand sistemul liniar (A + E)x = b + r

si impunand minimizarea normei Frobenius a reziduului cumulat Gdef= [ E r ] ∈

∈ ICm×(n+1). Introducand si matricele diagonale nesingulare C=diag(c1, c2, . . . , cm)si D = diag(d1, d2, . . . , dn+1) de ”ponderare” pe linii, respectiv pe coloane, a ma-tricei G, problema de minimizare devine

‖CG∗D‖F = min(b + r) ∈ Im(A+ E)

‖CGD‖F , E ∈ ICm×n, r ∈ ICm, (5.129)

fiind cunoscuta sub denumirea de problema celor mai mici patrate totala (CMMPT).Daca (E∗, r∗) este o solutie a problemei de minimizare (5.129), atunci orice solutiex∗ a sistemului (A+E∗)x = b+ r∗ se numeste (pseudo)solutie, ın sens CMMPT, asistemului Ax = b.

Observatia 5.9 Problema CMMPT (5.129) poate fi echivalata cu o problema deminimizare a unei functii reale de n variabile, fara restrictii suplimentare. Pentrusimplitate, consideram cazul real. Privind x ∈ IRn ca un parametru vectorial,problema (5.129) poate fi formulata, ıntr-o prima faza, ca o problema de minimizare

cu legaturi: sa se calculeze matricea G∗ ∈ IRm×(n+1) astfel ıncat

‖CG∗D‖2F = minG ∈ IRm×(n+1)

‖CGD‖2F , cu legaturile (G+ [A b ])

[x−1

]

= 0.

(5.130)Fie

h(G, λ) = ‖CGD‖2F + λT (G+ [A b ])

[x−1

]

(5.131)

functia lui Lagrange asociata problemei de extrem cu legaturi (5.131). Pentru cal-culul extremului impunem conditiile clasice

∂h(G, λ)

∂gij= 0, i = 1 : m, j = 1 : n+ 1, (5.132)

Page 438: metode de calcul numeric matriceal. algoritmi fundamentali

424 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

(unde, evident, gij = G(i, j)) care conduc imediat la exprimarea elementelor matri-cei G ın functie de multiplicatorii Lagrange λi = λ(i)

gijdef= eij =

−λixj2c2id

2j

, i = 1 : m, j = 1 : n, gi,n+1def= ri =

λi2c2id

2n+1

, i = 1 : m.

(5.133)Impunand satisfacerea legaturilor obtinem valoarea multiplicatorilor Lagrange core-spunzatoare punctului de extrem

λ∗ =2(Ax− b)

xT D−2x+ d−2n+1

, D = diag(d1, d2, . . . , dn). (5.134)

Pentru un vector x fixat, valoarea optima G∗(x) = [E∗(x) r∗(x) ] se obtine ınlo-cuind λ∗i ın relatiile (5.133). Obtinem

E∗(x) = −1

2C−2λ∗xT D−2, r∗(x) =

1

2C−2λ∗d−2

n+1. (5.135)

Utilizand, acum, egalitatea ‖y zT ‖F = ‖y‖ · ‖z‖, adevarata pentru orice vectori y siz (demonstrati!), obtinem valoarea minima (pentru un x fixat) a criteriului (5.130)

f(x)def= ‖CG∗(x)D‖2F = ‖CE∗(x)D‖2F + ‖Cr∗(x)dn+1‖2F =

=1

4

∑mi=1 c

−2i (aTi x− bi)2

∑ni=1 x

2i d

−2i + d−2

n+1

, (5.136)

unde aTi = A(i, : ) este linia i a matricei A. Evident, punctul de minim x∗ ∈ IRn alfunctiei f este (pseudo)solutia problemei CMMPT (5.129). Desi aceasta observatienu ofera o alternativa viabila de calcul, totusi este utila pentru interpretarea unorrezultate. 3

Observatia 5.10 Observatia 5.9 ofera posibilitatea unei interpretari geometrice aproblemei CMMPT. Fie subspatiul liniar

Px =

[ab

]

a ∈ IRn, b ∈ IR, aTx = b

⊂ IRn+1

definit pentru fiecare parametru vectorial x ∈ IRn. Utilizand aceeasi proceduraclasica, de calcul a extremelor cu legaturi, se arata (exercitiu pentru cititor) ca

distanta, ın sensul normei ‖z‖D def= ‖Dz‖, dintre un punct arbitrar z =

[ab

]

∈ IRn+1 si cel mai apropiat punct din subspatiul Px este

δ(z,Px) =|aTx− b|

√∑n

i=1 x2i d

−2i + d−2

n+1

.

In consecinta, conform observatiei 5.9, solutia x∗ a problemei CMMPT (5.129)determina acel subspatiu Px∗ pentru care suma ponderata a distantelor (ın sensul

Page 439: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 425

normei ‖ · ‖D) de la punctele z =

[(A(i, :))T

b(i)

]

∈ IRn+1 la punctele cele mai

apropiate ale lui Px∗ (vezi (5.136)) este minima. 3

A treia treapta de generalizare o introducem considerand un membru dreptmultiplu, i.e. formuland problema CMMPT pentru sistemul liniar matriceal AX == B cu B ∈ ICm×p, respectiv problema de minimizare

‖CG∗D‖ = min(B +R) ⊆ Im(A+ E)

‖CGD‖F , E ∈ ICm×n, R ∈ ICm×p, G = [E R ],

(5.137)unde matricele A ∈ ICm×n, B ∈ ICm×p, cu m ≥ n+ p, precum si matricele diagonalenesingulare C ∈ ICm×m si D ∈ IC(n+p)×(n+p) sunt date. La fel ca si pana acum,daca (E∗, R∗) este o solutie a problemei de minimizare (5.137), atunci orice matriceX∗ ∈ ICn×p care satisface sistemul liniar matriceal (A+E∗)X = B+R∗ va fi numita(pseudo)solutia, ın sens CMMPT, a sistemului AX = B.

Pentru a formula mai concis rezultatul referitor la existenta si unicitatea solutieiproblemelor de minimizare ce definesc CMMPT, vom introduce unele notatii si vomstabili un rezultat preliminar. Fie

Hdef= C[ A B ]D =

n︷︸︸︷

p︷︸︸︷

[H1 H2

](5.138)

si H = UΣV H DVS a matricei H , cu urmatoarele partitii ale matricelor U , V si Σimpuse de structura lui H

U =

n︷︸︸︷

p︷︸︸︷

m−n−p︷︸︸︷

[U1 U2 U3

], V =

n︷︸︸︷

p︷︸︸︷

[V11 V12V21 V22

]n p

Σ =

n︷︸︸︷

p︷︸︸︷

Σ1 00 Σ2

0 0

n pm−n−p

,Σ1 = diag(σ1, σ2, . . . , σn)Σ2 = diag(σn+1, σn+2, . . . , σn+p). (5.139)

Introducem urmatoarea lema.

Lema 5.1 Daca σn(H1) > σn+1, atunci1. Matricea V22 din (5.139) este nesingulara.2. Cu notatiile din (5.139), avem inegalitatea stricta

σn > σn+1. (5.140)

Demonstratie. 1. Presupunem ca matricea V22 este singulara. Atunci exista unvector z ∈ ICp nenul, pe care ıl putem considera de norma euclidiana unitara, astfel

ıncat V22z = 0. Mai departe, din faptul ca matricea V2def=

[V12V22

]

are coloanele

ortogonale, i.e. V H2 V2 = Ip, obtinem ‖V2z‖ = ‖V12z‖ = 1. Pe de alta parte din

Page 440: metode de calcul numeric matriceal. algoritmi fundamentali

426 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

DVS a matricei H , cu partitiile din (5.139), avem U2Σ2 = H1V12 +H2V22. Acum,tinand seama de consistenta normei spectrale, putem scrie urmatoarea secventa deinegalitati

σn+1 = ‖Σ2‖ = ‖U2‖ · ‖Σ2‖ ≥ ‖U2Σ2‖ = ‖H1V12 +H2V22‖ =

= max‖y‖=1

‖(H1V12 +H2V22)y‖ ≥ ‖H1V12z‖ ≥ min‖w‖=1

‖H1w‖ = σn(H1),

ceea ce contrazice ipoteza lemei. Deci V22 este nesingulara.2. Conform teoremei 5.11 (de separare a valorilor singulare) avem

σn = σn(H) ≥ σn(H [n+p−1]) ≥ . . . ≥ σn(H [n])def= σn(H1), (5.141)

de unde, ın ipoteza lemei, rezulta σn ≥ σn(H1) > σn+1, obtinandu-se inegalitateastricta din enunt. 3

Formulam acum teorema de existenta si unicitate a solutiei problemei CMMPT.

Teorema 5.16 Utilizand notatiile (5.138), (5.139), daca σn(H1) > σn+1, atunci

matricea G∗ def= [ E∗ R∗ ] definita de

G∗ = [ E∗ R∗ ] = −C−1U2Σ2[ VH12 V H

22 ]D−1 (5.142)

este o solutie a problemei de minimizare CMMPT (5.137). In plus, daca notam

D1 = diag(d1, d2, . . . , dn), D2 = diag(dn+1, dn+2, . . . , dn+p), (5.143)

atunci matriceaX∗ = −D1V12V

−122 D−1

2 (5.144)

exista si este unica solutie a sistemului

(A+ E∗)X = B +R∗, (5.145)

i.e. este unica (pseudo)solutie, ın sens CMMPT, a sistemului liniar AX = B.

Demonstratie. Conditia (B +R) ⊆ Im(A+ E) este echivalenta cu existenta uneimatrice X ∈ ICn×p astfel ıncat (A + E)X = B + R. Cu notatiile din (5.137) si(5.138), ultima relatie poate fi scrisa ın urmatoarele forme echivalente

([A B

]+G

)[

X−Ip

]

= 0 ⇔ (H + CGD)D−1

[X−Ip

]

= 0. (5.146)

Intrucat matricea

[X−Ip

]

este monica, din (5.146) rezulta rang(H + CGD) ≤ n.

Notand Fdef= CGD, ın continuare aplicam teorema 5.15 matricei−F = H−(H+F ).

Obtinem

minrang(H+F )≤n

‖F‖2F =

n+p∑

i=n+1

σ2i , (5.147)

Page 441: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 427

minimul atingandu-se pentru

(H + F )∗ =

n∑

j=1

σjujvHj = U1Σ1

[V11V21

]H

. (5.148)

Rezulta

F ∗ = U1Σ1

[V11V21

]H

−H = −U2Σ2

[V21V22

]H

, (5.149)

de unde se obtine imediat (5.142). Mai mult, conform lemei 5.1, ın conditiile teore-mei avem inegalitatea stricta σn > σn+1, ceea ce asigura unicitatea matricei G = G∗

care minimizeaza expresia (5.137).In finalul demonstratiei vom arata ca X∗ din (5.144) este unica solutie a sis-

temului (A+ E∗)X = B +R∗ care, conform (5.146), poate fi scris si sub forma

(H + CG∗D)D−1

[X−Ip

]

= 0. (5.150)

Pentru aceasta, din expresia (5.142) a matricei G∗ si DVS a matricei H rezulta

H + CG∗D = U1Σ1

[V H11 V H

21

], (5.151)

de unde, datorita monicitatii matricei U1Σ1, rezulta

Ker (H + CG∗D) = Ker[V H11 V H

21

]= Im

[V12V22

]

. (5.152)

Prin urmare, din (5.150) si (5.143) rezulta ca orice solutie X satisface relatiile

D−1

[X−Ip

]

=

[V12V22

]

Y ⇒D−1

1 X = V12YD−1

2 = V22Y.(5.153)

Deci, ın virtutea lemei 5.1, avem Y = −V −122 D−1

2 . In concluzie, ın mod necesar, din(5.153) rezulta ca unica (pseudo)solutie, ın sens CMMPT, este

X = D1V12Y = −D1V12V−122 D−1

2 = X∗,

i.e. (5.144). Teorema este demonstrata. 3

Prezentam ın continuare o modalitate de calcul a solutiei problemei CMMPTcare deriva nemijlocit din demonstratia teoremei 5.16.

Algoritmul 5.8 (CMMPT – Solutia problemei CMMPT) (Se daumatricele A ∈ ICm×n, B ∈ ICm×p, cu m ≥ n+ p, precum si matricele dia-gonale nesingulare C = diag(c1, c2, . . . , cm) ∈ ICm×m si D=diag(D1, D2)

∈ IC(n+p)×(n+p), unde D1 = diag(d1, d2, . . . , dn), D2 = diag(dn+1, dn+2,. . . , dn+p). Algoritmul calculeaza solutia (daca exista a) problemeiCMMPT, definite de cvartetul (A,B,C,D), i.e. calculeaza matriceleE = E∗ ∈ ICm×n si R = R∗ ∈ ICm×p care sunt solutia problemei de mi-nimizare (5.137) precum si solutia X∗ a sistemului liniar (A + E∗)X == B + R∗. Daca solutia nu exista sau nu este unica se tipareste unmesaj, iar elementele tripletului (E∗, R∗, X∗) raman vide.)

Page 442: metode de calcul numeric matriceal. algoritmi fundamentali

428 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

1. E = [ ], R = [ ], X = [ ]

2. H = C[A B ]D

3. [U,Σ, V ] = DVS(H, ′da′, ′da′)

4. [P,Γ, Q] = DVS(H( : , 1 : n), ′nu′, ′nu′)

5. Daca γn ≤ σn+1 atunci

1. Tipareste(’Problema nu admite solutie!’)

2. Return

6. Daca σn = σn+1 atunci

1. Tipareste(’Problema nu admite o solutie unica!’)

2. Return

7. Se rezolva sistemul matricealX(D2V (n+ 1 : n+ p, n+ 1 : n+ p)) = −D1V (1 : n, n+ 1 : n+ p)

8. E∗ = −C−1U2Σ2VH12D

−11 , unde U2 = U(:, n+ 1 : n+ p),

Σ2 = Σ(n+ 1 : n+ p, n+ 1 : n+ p), V12 = V (1 : n, n+ 1 : n+ p)

9. R∗ = −C−1U2Σ2VH22D

−12 , unde V22 = V (n+1 : n+p, n+1 : n+p).

Comentarii. Sintaxa de apel a algoritmului este

[X,E,R ] = CMMPT(A,B,C,D).

In cadrul algoritmului s-au folosit notatiile evidente σi = Σ(i, i) si γi = Γ(i, i).Pentru date de intrare (A,B,C,D) reale algoritmul functioneaza ca atare ıntrucatoperatorul hermitic se reduce la cel de transpunere. Evident, ıntr-un astfel decaz se utilizeaza, ın exclusivitate, o aritmetica reala. Singura problema criticaeste rezolvarea sistemului liniar matriceal de la instructiunea 7 care poate fi rauconditionat daca valorile singulare σn(H(:, 1 : n)) si σn+1 nu sunt bine separate.Inversarea matricelor diagonale nu ridica probleme numerice (si nici nu trebuieefectuata explicit). Complexitatea algoritmului este determinata, ın primul rand,de complexitatea calculului DVS. 3

Daca σn = σn+1, CMMPT poate avea solutii multiple si, ıntr-un astfel de caz,cutuma CMMP este de a calcula solutia de norma minima. Vom numi aceastasolutie CMMPT normala (CMMPTN). Avandu-se ın vedere expresia (5.154) asolutiilor, o norma adecvata este ‖ · ‖D definita de ‖Z‖D = ‖D−1

1 ZD2‖ cu careavem

‖X‖2D = ‖V12V −122 ‖2 = λmax(V

−H22 V H

12 V12V−122 ) =

= λmax(V−H22 (Ip − V H

22 V22)V−122 ) =

1− σ2min(V22)

σ2min(V22)

, (5.154)

ceea ce indica faptul ca a minimiza ‖X‖D este echivalent cu maximizarea celei maimici valori singulare a submatricei V22. Un algoritm pentru cazul important si uzualp = 1, i.e. al problemei (5.129), poate fi gasit ın [ VI ].

Page 443: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 429

5.6.4 Probleme CMMP cu restrictii

In cadrul paragrafelor anterioare relative la rezolvarea problemelor de minimizare detipul celor mai mici patrate, (pseudo)solutia era cautata ın tot spatiul ICn, respectivIRn ın cazul datelor reale. In cele ce urmeaza vom restrange aria de cautare a solutieiminimizante la un domeniu nevid X ⊂ ICn care nu coincide cu tot spatiul. Desi ma-joritatea aplicatiilor de aceasta natura opereaza cu date reale, pentru omogenitateatratarii vom considera, ca si pana acum, cazul, mai general, al datelor complexe.Cititorul interesat nu va ıntampina, cu siguranta, nici un fel de dificultati la parti-cularizarea rezultatelor si a algoritmilor pentru cazul datelor reale.

Intr-o formulare generala, problema celor mai mici patrate cu restrictii areurmatorul enunt. Date matricea A ∈ ICm×n, cu m > n, vectorul b ∈ ICm si multimeanevida X ⊂ ICn, sa se determine vectorul x∗ ∈ X (daca exista) astfel ıncat

‖r∗‖ def= ‖Ax∗ − b‖ = min

x ∈ X‖Ax− b‖, (5.155)

unde, ca ın toate problemele de tip CMMP, ‖ · ‖ este norma euclidiana.Diversele probleme CMMP cu restrictii difera, natural, prin tipurile de multimi

X . In continuare vom considera cateva cazuri frecvent ıntalnite ın aplicatii.

Problema CMMP cu restrictii liniare tip egalitate

Restrictiile liniare tip egalitate pot fi descrise prin

X = x |x ∈ ICn, Cx = d , (5.156)

unde C ∈ ICp×n, p < n, este o matrice epica 29 si d ∈ ICp.Problema CMMP (5.155), (5.156) poate fi rezolvata prin reducerea la rezolvarea

unei probleme CMMP fara restrictii ın modul urmator. Fie factorizarea QR amatricei monice CH , i.e.

CH = Q

[R1

0

]

= Q1R1, (5.157)

unde R1 ∈ ICp×p este superior triunghiulara nesingulara, Q ∈ ICn×n este unitara siQ1 = Q( : , 1 : p). Conditia Cx = d devine echivalenta cu RH

1 QH1 x = d, i.e.

QH1 x = (RH

1 )−1ddef= y∗. (5.158)

Pe de alta parte, considerand partitia Q = [Q1 Q2 ], avem

rdef= Ax− b = AQQHx− b = [AQ1 AQ2 ]

[QH

1 xQH

2 x

]

− b = A1y+A2z− b = A2z− b(5.159)

29 Daca C nu este epica, i.e. r = rangC < p, atunci restrictiile pot fi rescrise ın forma Cx = d,unde C ∈ ICr×n este epica. Intr-adevar, daca C = U1Σ1V H

1 este dezvoltarea DVS a matricei C,

atunci C poate fi Σ1V H1 , ın care caz d = UH

1 d. Daca p = n, atunci C este nesingulara, i.e. X areun singur element, si problema de minimizare devine triviala.

Page 444: metode de calcul numeric matriceal. algoritmi fundamentali

430 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

unde am utilizat notatiile

A1 = AQ1, A2 = AQ2, y = QH1 x, z = QH

2 x, b = b−A1y.

Acum, ıntrucat restrictiile sunt echivalente cu fixarea vectorului y conform (5.158),problema CMMP cu restrictiile (5.156) s-a redus la problema minimizarii normeireziduului (5.159) ın raport cu z, fara alte restrictii. Altfel spus, daca z∗ este solutiaproblemei CMMP fara restrictii

‖r∗‖ def= ‖A2z

∗ − b∗‖ = minz ∈ ICn−p

‖A2z − b∗‖, unde b∗def= b−A1y

∗, (5.160)

atunci, evident,

x∗ = Q

[y∗

z∗

]

(5.161)

este solutia problemei CMMP cu restrictii (5.155), (5.156).Rezulta urmatorul algoritm de calcul.

Algoritmul 5.9 (CMMP RLE – Solutia problemei CMMP curestrictii liniare tip egalitate) (Se considera date matricea monica A ∈∈ ICm×n, cu m > n, si vectorul b ∈ ICm, care definesc problema CMMP,precum si matricea epica C ∈ ICp×n, cu p < n, si vectorul d ∈ ICp, caredefinesc restrictiile (5.156). De asemenea se considera data toleranta tolcare este parametru de intrare pentru algoritmul CMMP fara restrictii.Algoritmul calculeaza solutia x = x∗ a problemei CMMP cu restrictii(5.155), (5.156).)

1. [Q,R ] = FQR(CH)

2. Se rezolva sistemul inferior triunghiular nesingular(R(1 : p, : ))Hy = d

3. b← b−AQ( : , 1:p) y

4. z = CMMP(AQ( : , p+1:n), b, tol)

5. x = Q

[yz

]

.

Comentarii. Apelul acestui algoritm are sintaxa

x = CMMP RLE(A, b, C, d, tol).

Pentru algoritmul de factorizare QR a se vedea capitolul 3. De asemenea, daca sestie a priori faptul ca matricea A este monica, atunci rezolvarea problemei CMMPfara restrictii se poate face cu mijloacele din capitolul 3. Daca matricea A nu estemonica, se impune utilizarea factorizarii QR cu pivotarea coloanelor sau a DVS.Algoritmul este numeric stabil iar complexitatea sa este O(n3). 3

Observatia 5.11 Problema CMMP cu restrictii liniare tip inegalitate se trateazautilizand proceduri specifice de programare patratica si nu este abordata ın aceastalucrare. 3

Page 445: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 431

Problema CMMP cu restrictii patratice

Restrictiile patratice ıntalnite ın practica problemelor CMMP sunt, ın general, detip inegalitate avand forma

X = x |x ∈ ICn, ‖Bx− d‖ ≤ γ , (5.162)

unde B ∈ ICp×n, d ∈ ICp, γ ≥ 0 este un scalar real, iar ‖ · ‖ este norma euclidiana.Evident, daca γ = 0, atunci restrictiile patratice (5.162) devin restrictii liniare detip egalitate, tratate ın paragraful precedent.

Pentru date reale multimea X este un (hiper)elipsoid ın IRn. Particularizarilecurente ale restrictiilor (5.162) se obtin pentru d = 0 (ın care caz elipsoidul estecentrat ın origine) sau pentru B = In (elipsoidul devine o sfera plina, i.e. o bila).In sfarsit, o categorie importanta o reprezinta restrictiile patratice de tip egalitatecare se obtin ınlocuind ın (5.162) relatia de inegalitate cu o relatie de egalitate siconsiderand γ > 0.

Vom aborda rezolvarea problemei CMMP, definite de (5.155), (5.162), mai ıntaiın cazul general, iar apoi ın cazul particular al unei bile.

Fie problema CMMP (5.155), (5.162). Avand ın vedere faptul ca sunt impli-cate doua matrice, A si B, apare ca naturala abordarea problemei prin ıncercareade diagonalizare simultana a celor doua matrice. Instrumentul adecvat este de-scompunerea valorilor singulare generalizate (DVSG, v. § 5.1). Pesupunem KerA ∩KerB = 0 30, si, pentru fixarea ideilor si notatiilor, p ≥ n. In conformitate cuteorema 5.4, exista matricele unitare U ∈ ICm×m, V ∈ ICp×p si matricea nesingularaW ∈ ICn×n astfel ıncat

UHAW = C =

[C1

0

]

, C1 = diag(c1, c2, . . . , cn) ∈ IRn×n,

V HBW = S =

[S1

0

]

, S1 = diag(s1, s2, . . . , sn) ∈ IRn×n,

(5.163)

unde valorile singulare generalizate (ci, si) satisfac conditiile c2i + s2i = 1, i = 1 : n,si sunt ordonate conform

1 ≥ c1 ≥ c2 ≥ . . . ≥ cn ≥ 0,

0 ≤ s1 ≤ s2 ≤ . . . ≤ sn ≤ 1.(5.164)

Tinand seama de faptul ca transformarile unitare conserva norma euclidiana sinotand

W−1xdef= y (5.165)

norma reziduului asociat problemei CMMP si restrictia (5.162) se scriu ın formaechivalenta

‖r‖ = ‖Ax− b‖ = ‖UCW−1x− b‖ = ‖Cy − b‖, b = UHb,

‖Bx− d‖ = ‖V SW−1x− d‖ = ‖Sy − d‖ ≤ γ, d = V Hd,(5.166)

30 Aceste conditii nu sunt neaparat necesare, dar permit anumite simplificari (v. § 5.1).

Page 446: metode de calcul numeric matriceal. algoritmi fundamentali

432 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

i.e. rezolvarea problemei (5.155), (5.162), revine la a rezolva problema echivalentade calcul a (pseudo)solutiei y∗ ∈ Y =W−1X (daca exista) astfel ıncat

‖r∗‖ = ‖Cy∗ − b‖ = miny ∈ Y

‖Cy − b‖. (5.167)

Fie, acum, rA = rangA, rB = rangB ceea ce, avand ın vedere ordonarea din(5.164), ınseamna

crA+1 = crA+2 = . . . = cn = 0, s1 = s2 = . . . = sn−rB = 0. (5.168)

Rezulta

φ(y)def= ‖r‖2 = ‖Cy − b‖2 =

rA∑

i=1

|ciyi − bi|2 +m∑

i=rA+1

|bi|2 (5.169)

si, respectiv,

ψ(y)def= ‖Sy − d‖2 =

n−rB∑

i=1

|di|2 +n∑

i=n−rB+1

|siyi − di|2 +p∑

i=n+1

|di|2 ≤ γ2. (5.170)

O conditie evidenta ca multimea Y sa nu fie vida, i.e. o conditie necesara deexistenta a solutiei problemei (5.167), este

n−rB∑

i=1

|di|2 +p∑

i=n+1

|di|2 ≤ γ2. (5.171)

Avand ın vedere ca functia (5.169), care trebuie minimizata, este marginita pecompactul Y, definit de (5.170), conditia (5.171) este si suficienta pentru existentasolutiei problemei CMMP (5.167) cu restrictii patratice.

Ideea rezolvarii problemei (5.167) este reducerea acesteia la o problema cu re-strictii de tip egalitate, pentru care se pot aplica tehnici clasice de minimizare.

1. Consideram, mai ıntai, cazul particular ın care ın (5.171) avem egalitate ınlocul inegalitatii 31. Rezulta, ın mod necesar, pentru satisfacerea restrictiei,

yi =dici, i = n− rB + 1 : n. (5.172)

Intrucat, conditia c2i + s2i = 1, i = 1 : n implica rA + rB ≥ n, i.e. rA ≥ n − rB ,rezulta ca putem calcula componentele yi, i = 1 : n − rB astfel ıncat φ(y) = ‖r‖2sa fie minima. Obtinem

yi =bisi, i = 1 : n− rB. (5.173)

31 In cazul ın care matricea B, vectorul d si scalarul γ sunt stabilite din alte considerentedecat cele de asigurare a existentei solutiei problemei, este putin probabil ca ın (5.171) sa cadempeste situatia de egalitate. Totusi, ın situatia ın care nu exista solutii, un compromis posibil estecresterea scalarului γ pana la atingerea egalitatii din (5.171).

Page 447: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 433

Prin urmare, solutia problemei CMMP (5.167), ın situatia

n−rB∑

i=1

|di|2 +p∑

i=n+1

|di|2 = γ2. (5.174)

este

y∗ =

b1c1...

bn−rB

cn−rB

dn−rB+1

sn−rB+1...

dnsn

, r∗ydef= Cy∗ − b =

0...0

σn−rB+1dn−rB+1

...

σrA drAbrA+1

...

bm

, (5.175)

iar solutia corespunzatoare a problemei CMMP initiale, ın acest caz, este

x∗ =W−1y∗, r∗ = Ur∗y , (5.176)

cu valoarea minima a normei euclidiene a reziduului data de

‖r∗‖ = ‖r∗y‖ =

√√√√

rA∑

i=n−rB+1

|σidi − bi|2 +m∑

i=rA+1

|bi|2, (5.177)

unde σi =cisi, i = n−rB+1 : rA, sunt valorile singulare generalizate finite si nenule

ale perechii (A,B).

2. In continuare, studiem situatia ın care inegalitatea (5.171) este satifacutastrict, i.e.

n−rB∑

i=1

|di|2 +p∑

i=n+1

|di|2 < γ2. (5.178)

In acest caz, consideram cea mai mica valoare posibila (i.e. ın absenta oricarorrestrictii) pe care o poate lua functia criteriu φ(y) din (5.169) si anume

µ = miny ∈ ICn

φ(y) =m∑

i=rA+1

|bi|2, (5.179)

care se obtine pentru y ∈ Y unde

Y = y | y ∈ ICn cu yi =bici, i = 1 : rA , (5.180)

Page 448: metode de calcul numeric matriceal. algoritmi fundamentali

434 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

i.e. componentele yi, i = rA + 1 : n, ale vectorilor din Y sunt arbitrare.Pe de alta parte vectorul y ∈ Y care minimizeaza functia ψ(y), ce defineste

restrictia (5.170), este dat de

yi =bici, i = 1 : rA, yi =

disi, i = rA + 1 : n, (5.181)

iar valoarea minima a functiei ψ este

ν = miny ∈ Y

ψ(y) = ψ(y) =

n−rB∑

i=1

|di|2 +rA∑

i=n−rB

|sibici− di|2 +

p∑

i=n+1

|di|2. (5.182)

Pot exista doua situatii:

a. In prima situatie, caracterizata de

ν ≤ γ2, (5.183)

vectorul y∗ = y din (5.181) asigura atingerea minimului absolut al criteriului si, ınacelasi timp, satisface restrictia patratica (5.170). Prin urmare, y∗ = y reprezinta,ın acest caz, o solutie a problemei 32 (5.167). O solutie a problemei CMMP initialese obtine utilizand relatiile (5.176).

b. A doua situatie este caracterizata de

ν > γ2, (5.184)

ın care minimul absolut µ din (5.179) al functiei φ(y) nu poate fi atins. Un ratio-nament simplu, indica faptul ca, din motive de continuitate a functiei obiectiv, ınacest caz minimul lui φ se atinge pe frontiera domeniului Y. Prin urmare avem aicio problema de extrem cu legaturi tip egalitate. Concret, problema este de a calculay∗ pentru care

φ(y∗) = miny∈Y

φ(y), Y = y | y ∈ ICn, ψ(y) = γ2 , (5.185)

iar pentru rezolvarea ei vom utiliza metoda clasica a multiplicatorilor lui Lagrange.Hamiltonianul asociat problemei (5.185) este

h(λ, y) = φ(y) + λ(ψ(y)− γ2) = ‖Cy − b‖2 + λ(‖Sy − d‖2 − γ2), (5.186)

unde λ ∈ IR este multiplicatorul Lagrange. Introducand vectorii yR = Rey ∈ IRn

si yI = Imy ∈ IRn putem privi functia h din (5.186) ca o functie reala de 2n + 1variabile reale. Impunand conditiile cunoscute, de anulare a derivatelor partiale,

∂h

∂yRi= 0

∂h

∂yIi= 0

, i = 1 : n, (5.187)

32 Problema initiala nu impune selectia, dintre solutiile care asigura minimul absolut al functieiφ, a celei care minimizeaza functia ψ, criteriu ındeplinit de y. Prin urmare, ar putea fi utilizatesi alte criterii de selectie, cum ar fi, de exemplu, calculul vectorului y ∈ Y de norma euclidianaminima care satisface restrictia (5.170).

Page 449: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 435

se obtine sistemul liniar diagonal

(CTC + λSTS) y = ST b+ λST d (5.188)

care, considerand λ drept parametru, se rezolva imediat. Admitand a priori camatricea sistemului (5.188) este nesingulara, obtinem expresia y = y(λ) definita de

yi(λ) =

bici, i = 1 : n− rB

cibi + λsibic2i + λs2i

, i = n− rB + 1 : rA

disi, i = rA + 1 : n

(5.189)

Multiplicatorul Lagrange λ = λ∗, care defineste solutia problemei de extrem culegaturi (5.185), se obtine prin rezolvarea ecuatiei neliniare 33

η(λ)def= φ(y(λ)) − γ2 =

n−rB∑

i=1

‖d2i +rA∑

i=n−rB+1

|cisibi − cidic2i + λs2i

|2 +p∑

i=n+1

|di|2 − γ2 = 0,

(5.190)obtinuta prin impunerea conditiei ca solutia (5.189) sa satisfaca relatia de legatura.Intrucat, pentru λ > 0, η(λ) este o functie descrescatoare (ca suma de functiidescrescatoare),

η(0) =

n−rB∑

i=1

‖d2i +rA∑

i=n−rB+1

|sibi − cidi|2c2i

+

p∑

i=n+1

|di|2 − γ2 > 0, (5.191)

ın virtutea conditiei (5.184), si

limλ→∞

η(λ) =

n−rB∑

i=1

|di|2 +p∑

i=n+1

|di|2 − γ2 < 0, (5.192)

ın virtutea conditiei (5.178), ecuatia (5.190) admite o solutie reala pozitiva λ = λ∗

unica. Calculul solutiei λ∗ se face prin metode iterative standard de rezolvare aecuatiilor neliniare (cum este metoda Newton, vezi [ XVII ]). In sfarsit, ın acest caz,solutia problemei CMMP (5.185) si reziduul aferent sunt

y∗ = y(λ∗), r∗y = Cy∗ − b, (5.193)

iar solutia problemei CMMP initiale se obtine utilizand relatiile (5.176).

Pentru a scrie algoritmul de rezolvare al problemei CMMP cu restrictii patraticetip inegalitate vom admite ca dispunem de o procedura de calcul a descompuneriivalorilor singulare generalizate (exercittiul 5.22) care va fi apelata utilizand sintaxa

[ c, s, U, V,W ] = DVSG(A,B).

33 Ecuatiile de tipul (5.190) sunt cunoscute sub numele de ecuatii seculare, denumire provenitadin astronomie.

Page 450: metode de calcul numeric matriceal. algoritmi fundamentali

436 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

Algoritmul DVSG furnizeaza vectorii c si s ai elementelor diagonale ale matricelordiagonale C si S, precum si matricele de transformare. Evident, rangul matricei Aeste dat de numarul componentelor ”nenule” ale vectorului c, iar rangul matricei Bde cel al componentelor ”nenule” ale vectorului s. Neglijarea elementelor vectorilorc si s inferioare lui tol‖A‖, respectiv lui tol‖B‖, unde tol este o toleranta fixata, sideterminarea rangului (numeric al) celor doua matrice vor fi realizate cu algoritmulRang DVSG care poate fi scris fara dificultate de cititor (exercitiul 5.23) si careva fi apelat folosind sintaxa

[ rA, rB ] = Rang DVSG(s, c, tol).

Rezulta urmatorul algoritm.

Algoritmul 5.10 (CMMP RPI – Solutia problemei CMMP cu re-strictii patratice tip inegalitate) (Se considera date matricea A ∈ ICm×n,cu m > n, si vectorul b ∈ ICm, care definesc problema CMMP, precumsi matricea B ∈ ICp×n, cu p ≥ n, vectorul d ∈ ICp si scalarul γ > 0 caredefinesc restrictiile (5.162). De asemenea, pentru evaluarea ranguluieste utilizata toleranta tol. Algoritmul calculeaza solutia x = x∗ ∈ ICn

a problemei CMMP cu restrictii (5.155), (5.162) si reziduul r = r∗, denorma euclidiana minima, aferent.)

1. [ c, s, U, V,W ] = DVSG(A,B)

2. [ rA, rB ] = Rang DVSG(s, c, tol)

3. b← UHb

4. d← V Hd

5. ρ =∑n−rB

i=1 |di|2 +∑p

i=n+1 |di|2

6. Daca ρ > γ2 atunci

1. Tipareste ’Problema unu are solutie.’

2. Return

altfel

1. Daca ρ = γ2 atunci

1. y∗i =bici

pentru i = 1 : n− rB

2. y∗i =disi

pentru i = n− rB + 1 : n

altfel

1. ν = ρ+∑rA

i=n−rB|sibici− di|2

2. Daca ν ≤ γ2 atunci

1. y∗i =bici

pentru i = 1 : rA

2. y∗i =disi

pentru i = rA + 1 : n

altfel

Page 451: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 437

1. Se calculeaza solutia λ = λ∗ > 0 a ecuatiei seculare∑rA

i=n−rB+1 |cisibi − cidic2i + λs2i

|2 + ρ− γ2 = 0

utilizand, e.g. metoda Newton.

2. y∗i =bici

pentru i = 1 : n− rB

3. y∗i =cibi + λ∗sibic2i + λ∗s2i

pentru i = n− rB + 1 : rA

4. y∗i =disi

pentru i = rA + 1 : n

7. x∗ =Wy∗.

Comentarii. Sintaxa de apel a acestui algoritm este

x = CMMP RPI(A, b,B, d, γ, tol).

Cititorul poate completa algoritmul cu calculul reziduului optimal r = r∗ si, even-tual, a normei euclidiane a acestuia.

Complexitatea algoritmului este determinata decisiv de calculul DVSG si derezolvarea iterativa a ecuatiei seculare. 3

Observatia 5.12 Pentru rezolvarea problemei CMMP cu restrictii patratice tipegalitate se procedeaza ca ın partea a doua a deducerii algoritmului de mai sus.Intrucat algoritmul corespunzator se obtine practic prin eliminarea unor instructiunidin algoritmul 5.10, detaliile sunt lasate ın sarcina cititorului. 3

3. Incheiem acest paragraf, particularizand algoritmul 5.10 pentru rezolvareaunei probleme ıntalnite deseori ın aplicatii, si anume problema CMMP cu restrictiipatratice definite de o bila. Concret, formularea acestei probleme se obtine con-siderand ın (5.162) B = In si d = 0, i.e. restrictia devine

X = x |x ∈ ICn, ‖x‖ ≤ γ . (5.194)

In acest caz, matriceaB fiind diagonala de la ınceput, nu mai este necesara utilizareaDVSG ci este suficienta DVS a matricei A. Fie, deci, A = UΣV H DVS a matriceiA. Notand y = V Hx si b = UHb, problema revine la a calcula y∗ ∈ ICn astfel ıncatsa avem

‖r∗‖2 = ‖Σy∗ − b‖2 = miny∈calY

‖Σy − b‖2, Y = y | y ∈ ICn, ‖y‖ ≤ γ . (5.195)

Avand ın vedere faptul ca

φ(y)def= ‖Σy − b‖2 =

rA∑

i=1

|σiyi − bi|2 +m∑

i=rA+1

|bi|2, (5.196)

minimul absolut al functiei φ este

ρ =m∑

i=rA+1

|bi|2 (5.197)

Page 452: metode de calcul numeric matriceal. algoritmi fundamentali

438 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

si se atinge pentru

yi =

biσi, i = 1 : rA

0, i = rA + 1 : n,

(5.198)

componentele nule fiind alese ın vederea satisfacerii restrictiei. Prin urmare, dacapentru y = y restrictia este satisfacuta, i.e.

‖y‖2 =m∑

i=rA+1

|bi|2σ2i

≤ γ2, (5.199)

atunci solutia y∗ = y mentionata este optimala si solutia problemei initiale estex∗ = V y∗. Daca

m∑

i=rA+1

|bi|2σ2i

> γ2, (5.200)

atunci, procedand ca ın cazul general, solutia optimala a problemei CMMP (5.195)este definita de

y∗i =

σibiσ2i + λ∗

, i = 1 : rA

0, i = rA + 1 : n,

(5.201)

unde λ∗ este solutia pozitiva a ecuatiei seculare

rA∑

i=1

(

σi|bi|σ2i + λ

)2

− γ2 = 0. (5.202)

Solutia problemei CMMP initiale este, evident, x∗ = V y∗.Rezumam cele aratate mai sus ıntr-un algoritm.

Algoritmul 5.11 (CMMP RPB – Solutia problemei CMMP curestrictii patratice tip bila) (Se considera date matricea A ∈ ICm×n, cum > n, si vectorul b ∈ ICm, care definesc problema CMMP, precum siscalarul γ > 0 care defineste restrictia (5.194). De asemenea, pentruevaluarea rangului, este utilizata toleranta tol. Algoritmul calculeazasolutia x = x∗ a problemei CMMP cu restrictii (5.155), (5.194).)

1. [U,Σ, V ] = DVS(A, ′da′, ′da′)

2. r = Rang DVS(Σ, tol)

3. b← UHb

4. ρ =∑r

i=1

|bi|2σ2i

5. Daca ρ ≥ γ2 atunci

1. Se calculeaza vectorul y∗ ∈ ICn definit ın (5.198).

altfel

1. Se calculeaza solutia λ∗ a ecuatiei seculare (5.202).

Page 453: metode de calcul numeric matriceal. algoritmi fundamentali

5.6. APLICATIILE DVS 439

2. Se calculeaza vectorul y∗ ∈ ICn definit ın (5.201).

6. x∗ = V ( : , 1 : rA)y∗(1 : rA).

Comentarii. Sintaxa de apel a algoritmului va fi

x = CMMP RPI(A, b,B, d, γ, tol).

Efortul principal de calcul consta ın calculul DVS. Pentru rezolvarea ecuatiei secu-lare se poate folosi orice metoda iterativa fiabila. 3

5.6.5 Calculul pseudoinversei

Mentionam de la ınceput ca sunt putine situatiile aplicative ın care este necesarcalculul explicit al pseudoinversei unei matrice date. In cazul general, calcululpseudoinversei matricei A ∈ ICm×n face apel la DVS A = UΣV H , utilizandu-serelatia

X =r∑

j=1

vjuHj

σj, vj = V ( : , j), uj = U( : , j), (5.203)

stabilita ın § 5.1 si unde r este rangul (numeric al) matricei A. Rezulta urmatorulalgoritm.

Algoritmul 5.12 (Pinv – Calculul pseudoinversei) (Data matriceaA ∈ ICm×n si toleranta tol > 0 pentru determinarea rangului numeric,algoritmul calculeaza pseudoinversa X ∈ ICn×m a matricei A.)

1. [U,Σ, V ] = DVS(A, ′da′, ′da′)

2. r = Rang DVS(Σ, tol)

3. X = 0

4. Pentru j = 1 : r

1. vj =vjσj

2. X ← X + vjuHj

Comentarii. Sintaxa de apel a algoritmului este

X = Pinv(A, tol),

iar complexitatea sa este determinata, ın principal, de complexitatea algoritmuluiDVS cu acumularea transformarilor. 3

Page 454: metode de calcul numeric matriceal. algoritmi fundamentali

440 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

5.7 Rutine LAPACK si MATLAB

LAPACK. Calculul DVS al unei matrice generale este efectuat de o singura rutinade tip driver, numita xGESVD. Aceasta calculeaza valorile singulare si, optional,vectorii singulari stanga si/sau dreapta.

Rutinele de calcul care implementeaza cele doua faze ale algoritmului DVS sunturmatoarele:

• xGEBRD realizeaza reducerea unei matrice oarecare la forma bidiagonala printransformari ortogonale de echivalenta. xGBBRD efectueaza aceeasi operatiepentru matrice banda, utilizand rotatii Givens (ın loc de reflectori).

• xBDSQR implementeaza faza iterativa a algoritmului DVS, calculand valorilesingulare si, optional, vectorii singulari, ai unei matrice bidiagonale (de retinutabrevierea BD pentru matricele bidiagonale).

DVS este utilizata pentru rezolvarea problemei generale a celor mai mici patrate(calculul pseudosolutiei normale a sistemului Ax = b) ın rutina driver xGELSS.

Descompunerea valorilor singulare generalizate (DVSG) a unei perechi de ma-trice este furnizata de rutina driver xGGSVD.

MATLAB. Valorile si vectorii singulari ai unei matrice generale A pot fi cal-culati cu

[U, S, V] = svd(A)

unde U si V contin (pe coloane) vectorii singulari stanga, respectiv dreapta iar S esteo matrice diagonala continand valorile singulare. Apelul simplu svd(A) returneazaun vector continand valorile singulare.

Alte functii care utilizeaza DVS sunt:

• rank pentru calculul rangului.

• pinv care calculeaza pseudoinversa.

• norm pentru obtinerea normei spectrale ‖A‖2 = σ1.

• cond pentru calculul numarului de conditionare κ2(A) = σ1/σn.

Amintim ın final ca rezolvarea ın sens CMMP a sistemului Ax = b (de rangnemaxim) prin operatia A\b nu produce pseudosolutia normala (vezi detalii ın capi-tolul 3).

5.8 Probleme

P 5.1 Care sunt valorile singulare ale matricelor

A =

[1 −1 2−1 0 1

]

, B =

[−1 2 03 1 1

]

?

Page 455: metode de calcul numeric matriceal. algoritmi fundamentali

5.8. PROBLEME 441

Dar ale matricei C = A+ iB ?

P 5.2 Scrieti formulele explicite pentru calculul DVS a unei matricei A ∈ IR2×2. Aceeasiproblema pentru o matrice complexa 2× 2.

P 5.3 Fie A ∈ ICm×n. a) Demonstrati ca matricele A, AT si AH , unde A este conjugatamatricei A, au aceleasi valori singulare cu A. b) Daca P ∈ ICm×m si Q ∈ ICn×n sunt matriceunitare, atunci matricea B = PAQ are aceleasi valori singulare cu matricea A. c) Aratatica matricea αA, unde α ∈ IC, are valorile singulare |α|σi(A).

P 5.4 Fie A ∈ ICm×n, cu m ≥ n, si matricea B =

[

0 AH

A 0

]

∈ IC(m+n)×(m+n).

Exprimati vectorii proprii ai matricei B ın functie de vectorii singulari ai matricei A.

P 5.5 Se considera date matricele reale A,B ∈ IRm×n. Fie matricea complexa C =

= A + iB ∈ ICm×n si matricea reala D =

[A −BB A

]

∈ IR2m×2n. Stabiliti relatiile de

legatura dintre DVS ale matricelor C si D.

P 5.6 a) Fie A ∈ ICn×n o matrice normala, i.e. care satisface conditia AHA = AAH (v.cap.4), (ın particular hermitica, iar ın cazul real, simetrica) si λ(A) = λ1, λ2, . . . , λn , cu|λ1| ≥ |λ2| ≥ . . . ≥ |λn|. Aratati ca valorile singulare ale matricei A sunt σi = |λi|, i = 1:n.

b) Care sunt valorile proprii si valorile singulare ale matricei A =

[6 3 11 3 33 −1 3

]

?

P 5.7 Care sunt valorile singulare ale unei matrice n× n unitare (ortogonale) ?

P 5.8 Fie V ∈ ICm×k o matrice avand coloanele ortogonale si P = V V H proiectorulortogonal pe ImV .

a) Aratati ca matricea Q = I − 2P este unitara.b) Care sunt valorile singulare ale unui proiector ortogonal ?

P 5.9 Aratati ca daca A ∈ ICm×n, atunci ‖A‖2 ≤ ‖A‖F ≤√rangA ‖A‖2.

P 5.10 Demonstrati ca daca Q ∈ ICm×n este o matrice cu coloanele ortogonale, i.e.QHQ = In, si P este o matrice obtinuta din Q prin eliminarea a cel mult n − 1 linii(oricare), atunci ‖P‖2 = 1.

P 5.11 Aratati ca daca A ∈ ICm×n are rangul n, atunci ‖A(AHA)−1AH‖2 = 1.

P 5.12 Demonstrati ca daca σ1 este cea mai mare valoare singulara a matricei A, atunci

σ1 = maxy ∈ IRm \ 0x ∈ IRn \ 0

yTAx

‖y‖2‖x‖2.

P 5.13 a) Fie vectorii u ∈ ICm, v ∈ ICnsi matricea A = uvH . Care este DVS a matriceiA ? Care este rangul lui A ? b) Aratati ca orice matrice A ∈ ICm×n de rang 1 poate fiscrisa sub forma A = uvH , unde u ∈ ICm, v ∈ ICn.

P 5.14 Elaborati un algoritm pentru calculul DVS a matricei A = In + uvT , undeu, v ∈ IRn sunt doi vectori necoliniari.

Page 456: metode de calcul numeric matriceal. algoritmi fundamentali

442 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

P 5.15 Elaborati un algoritm, similar algoritmului JQ, care sa calculeze reducerea uneimatrice complexe A ∈ ICm×n la o forma superior bidiagonala reala prin transformari unitarebilaterale.

P 5.16 Fie o matrice superior bidiagonala J ∈ ICn×n definita prin vectorul f ∈ ICn alelementelor diagonale si vectorul g ∈ ICn−1 al elementelor sale supradiagonale. Aratatica daca J are doua valori singulare egale σi = σi+1, atunci f si/sau g au cel putin ocomponenta nula.

P 5.17 Adaptati algoritmul JQ pentru reducerea eficienta a unei matrice A ∈ ICn×n supe-rior triunghiulare la forma superior bidiagonala prin transformari unitare de echivalenta.

P 5.18 Fie A =

[A1 A2

0 A3

]

, unde A ∈ ICm×n, A1 ∈ ICp×p. Elaborati un algoritm pentru

reducerea eficienta a matricei A la forma bidiagonala prin transformari unitare bilaterale.

P 5.19 Adaptati algoritmul JQ pentru reducerea eficienta a unei matrice A ∈ ICn×n

tridiagonale la forma superior bidiagonala prin transformari unitare de echivalenta.

P 5.20 Fie A ∈ ICm×n, cu m < n. Elaborati un algoritm pentru calculul matricelorunitare U ∈ ICm×m, V ∈ ICn×n astfel ıncat UHAV =

[B 0

]cu B ∈ ICm×m superior

bidiagonala.

P 5.21 Demonstrati ca orice matrice m×n este limita unui sir de matrice m×n de rangmaximal. Interpretati importanta acestui rezultat pentru practica numerica.

P 5.22 Elaborati un algoritm de calcul al descompunerii valorilor singulare generalizate(DVSG) a unei perechi de matrice (A,B) ∈ ICm×n × ICp×n date.

P 5.23 Scrieti un algoritm de calcul simultan al rangurilor numerice a doua matriceA ∈ ICm×n si B ∈ ICp×n date, utilizand descompunerea valorilor singulare generalizate aperechii (A,B).

P 5.24 Elaborati un algoritm de calcul al descompunerii polare a unei matrice A ∈ ICm×n

date.

P 5.25 Elaborati un algoritm de calcul al descompunerii CS a unei matrice unitareQ ∈ ICm×m date.

P 5.26 Se dau matricele A ∈ ICm×m, B ∈ ICn×n si C,D ∈ ICm×n. a) Aratati ca sistemulde ecuatii matriceale

AX − Y B = CXBH − AHY = D

are solutie unica (X,Y ) ∈ ICm×n × ICm×n daca si numai daca σ(A)∩ σ(B) = ∅. b) Scrietiun algoritm pentru rezolvarea sistemului de mai sus.

P 5.27 Fie date matricea A ∈ IRm×n si vectorul b ∈ IRm. a) Aratati ca pentru oriceα > 0 problema de minimizare

minx ∈ IRn

‖b − Ax‖2 + α‖x‖2

Page 457: metode de calcul numeric matriceal. algoritmi fundamentali

5.8. PROBLEME 443

are o solutie unica x∗α. b) Elaborati un algoritm de calcul al solutiei x∗

α. c) Ce se ıntamplacand αց 0 ? d) Aratati ca sistemul

(ATA+ αIn)(ATA+ βIn)y = (β − α)AT b

este satisfacut de ynot= x∗

α − x∗β.

P 5.28 Aratati ca o matrice patrata are (cel putin) o valoare singulara nula daca si numaidaca are (cel putin) o valoare proprie nula.

P 5.29 Fie matricele patrate A,B ∈ ICn×n. Se stie (vezi exercitiul 4.5 din cap.4) camatricele AB si BA au aceleasi spectre de valori proprii. Este adevarat acest lucru sipentru multimile lor de valori singulare?

P 5.30 Fie matricele A,B ∈ ICm×n, p = min(m,n) si σ(A), σ(B) multimile (nu uitati,ordonate descrescator!) ale valorilor singulare ale matricei A, respectiv B.

a) Demonstrati si interpretati inegalitatea

σ1(A+B) ≤ σ1(A) + σ1(B).

Este adevarata inegalitatea σi(A+B) ≤ σi(A)+σi(B) si pentru i ∈ 2 : p ? Daca raspunsuldv. este afirmativ, atunci prezentati o demonstratie, iar daca este negativ prezentati uncontraexemplu.

b) Demonstrati inegalitatea

σi+j−1(A+B) ≤ σi(A) + σj(B),

unde i, j ∈ 1 : p, cu i+ j ≤ p+ 1.

P 5.31 Fie matricele A,B ∈ ICm×n, p = min(m,n) si σ(A), σ(B) multimile ale valorilorsingulare ale matricei A, respectiv B.

a) Demonstrati si interpretati inegalitatea

σ1(ABH) ≤ σ1(A)σ1(B).

Este adevarata inegalitatea σi(ABH) ≤ σi(A)σi(B) si pentru i ∈ 2 : p ? Daca raspunsuldv. este afirmativ, atunci prezentati o demonstratie, iar daca este negativ prezentati uncontraexemplu.

b) Demonstrati inegalitatea

σi+j−1(ABH) ≤ σi(A)σj(B),

unde i, j ∈ 1 : p, cu i+ j ≤ p+ 1.

P 5.32 Fie matricea A ∈ ICn×n si matricea B = AP ∈ ICn×n unde P este o matricede permutare. Presupunem ca P a fost aleasa astfel ıncat matricea B sa aiba coloaneleordonate ın sensul descrescator al normelor lor euclidiene, i.e. daca κj = ‖B(:, j)‖2, atunciκ1 ≥ κ2 ≥ . . . ≥ κn. Demonstrati ca

n∑

j=k

σ2j ≤

n∑

j=k

κ2j , k = 1 : n,

unde σi sunt valorile singulare ale matricei A. Formulati un rezultat analog pentru linii.Trageti, printre alte concluzii, pe aceea ca o matrice care are o coloana (sau o linie) denorma euclidiana ”mica” are, ın mod necesar, si o valoare singulara ”mica”.

Page 458: metode de calcul numeric matriceal. algoritmi fundamentali

444 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE

P 5.33 Se considera matricea

A(ǫ) =

[0 In−1

ǫ 0

]

∈ IRn×n, ǫ ≥ 0.

a) Calculati valorile proprii si valorile singulare ale matricei A.b) Pentru n=10, care sunt variatiile absolute ale modulelor valorilor proprii si ale

valorilor singulare atunci cand ǫ variaza de la 0 la 10−10?c) Trageti concluzia ca ın timp ce valorile proprii ale unei matrice pot fi (foarte) rau

conditionate, valorile singulare sunt ıntotdeauna perfect conditionate. Retineti ca aceastaconcluzie este de o importanta capitala ın rezolvarea numerica pe calculator a problemelorde algebra liniara ın sensul ca metodele care fac apel la valorilor singulare sunt cele maibune.

P 5.34 Aratati ca o matrice A ∈ ICn×n este normala, i.e. AHA = AAH , daca si numaidaca ın descompunerea polara A = PW ”modulul” P = UΣUH ∈ ICn×n (hermitic sipozitiv semidefinit) si ”factorul de faza” W = UV H (unitar) comuta. (In relatiile de maisus s-a utilizat DVS A = UΣV H a matricei A.)

Page 459: metode de calcul numeric matriceal. algoritmi fundamentali

Capitolul 6

Calculul valorilor sivectorilor proprii generalizati

Valorile proprii generalizate si vectorii proprii generalizati asociati caracterizeaza dinpunct de vedere structural perechile de matrice patrate si reprezinta o generalizarenaturala a conceptelor de valoare proprie si vector propriu.

Metoda de calcul a valorilor proprii generalizate care s-a impus reprezinta oadaptare performanta a algoritmului QR la noul cadru structural.

6.1 Formularea problemei

6.1.1 Valori si vectori proprii generalizati

Fie matricele patrate A,B ∈ ICn×n. Multimea de matrice

F = F ∈ ICn×n | F = A− λB, λ ∈ IC (6.1)

se numeste fascicol matriceal asociat perechii (A,B) 1.

Definitia 6.1 Fie F fascicolul matriceal definit de perechea (A,B) ∈ ICn×n× ICn×n.Un numar λ ∈ IC se numeste valoare caracteristica a fascicolului F sau, ınca, valoareproprie generalizata a perechii (A,B), daca exista un vector nenul x ∈ ICn astfelıncat

Ax = λBx. (6.2)

Orice vector x 6= 0 care satisface (6.2) se numeste vector principal al fascicoluluiF sau, ınca, vector propriu generalizat al perechii (A,B) asociat valorii propriigeneralizate λ.

Sistemul liniar omogen (6.2), scris sub forma

(A− λB)x = 0, (6.3)

1 Fascicolele matriceale se definesc si pentru perechile de matrice nepatrate.

445

Page 460: metode de calcul numeric matriceal. algoritmi fundamentali

446 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

admite solutii nenule numai daca matricea sistemului A− λB este singulara. Prinurmare, valorile proprii generalizate ale perechii (A,B) sunt zerourile polinomului

p(λ) = det(A− λB), (6.4)

numit polinomul caracteristic al fascicolului F 2. Daca matricele A si B sunt reale,atunci polinomul caracteristic are coeficientii reali si valorile proprii generalizatecomplexe apar ın perechi complex-conjugate. Multiplicitatea ni a radacinii λi apolinomului caracteristic se numeste multiplicitate algebrica a valorii proprii gene-ralizate λi.

Evident, valorile si vectorii proprii ai matricei A coincid cu corespondentii lorgeneralizati ai perechii (A, In).

Vom nota cu λ(A,B) spectrul generalizat, i.e. multimea valorilor proprii gene-ralizate ale perechii (A,B).

Prezentam principalele proprietati ale valorilor si vectorilor proprii generalizatisub forma urmatoarei propozitii.

Propozitia 6.1 Fie perechea (A,B) ∈ ICn×n × ICn×n.1 Daca matricea B este nesingulara, atunci gradul polinomului caracteristic

este n, deci numarul valorilor proprii generalizate ale perechii (A,B), incluzandmultiplicitatile, este egal cu ordinul n al matricelor. Mai mult,

λ(A,B) = λ(B−1A) = λ(AB−1). (6.5)

2 Daca λ ∈ λ(A,B) si λ 6= 0, atunci1

λ∈ λ(B,A).

Demonstratie. 1 In acest caz polinomul caracteristic (6.4) este p(λ) = det(A−−λB) = det(B)det(B−1A − λIn) = det(AB−1 − λIn)det(B) cu det(B) 6= 0, i.e.are aceleasi radacini cu polinoamele caracteristice ale matricelor B−1A si AB−1.Rezulta ca p(λ) este un polinom de gradul n cu coeficienti complecsi si, ın consecinta,are exact n valori proprii complexe, nu neaparat distincte. 2 Daca λ 6= 0, atunci(6.3) implica (B − 1

λA)x = 0. 3

Observatia 6.1 Daca matricea B este singulara, atunci numarul valorilor propriigeneralizate al perechii (A,B) poate lua orice valoare din multimea (0 : n−1)∪∞.Intr-adevar, sa consideram situatiile:

a) A nesingulara si B = 0, caz ın care perechea (A,B) nu are nici o valoareproprie generalizata;

b) A = diag(A1, A2), B = diag(B1, 0) cu A1, B1 ∈ ICk×k, k = 1 : n − 1, si A2,B1 nesingulare; ın acest caz perechea (A,B) are exact k valori proprii generalizate;

c) polinomul caracteristic al fascicolului definit de perechea (A,B) este identicnul (e.g. A singulara si B = 0), situatie ın care orice numar complex este valoareproprie generalizata a perechii (A,B).

Aceste situatii nu sunt exclusive, vezi exemplul de mai jos. 3

2 Ecuatia p(λ) = 0 se numeste ecuatia caracteristica a fascicolului F .

Page 461: metode de calcul numeric matriceal. algoritmi fundamentali

6.1. FORMULAREA PROBLEMEI 447

Exemplul 6.1 Perechea de matrice

(

A =

[1 00 3

]

, B =

[0 01 0

])

nu are nici

o valoare proprie generalizata, perechea

(

A =

[1 20 3

]

, B =

[1 00 0

])

are una

singura si orice numar λ ∈ IC este valoare proprie generalizata pentru perechea(

A =

[1 20 0

]

, B =

[1 00 0

])

. 3

Pentru a elimina cazul nedeterminat, cand toate numerele complexe sunt valoriproprii generalizate, caz care nu poate fi obiectul unei probleme de calcul, vompresupune ın continuare ca polinomul caracteristic al fascicolului definit de perechea(A,B) nu este identic nul. In acest caz fascicolul se numeste regulat 3. De asemenea,vom conveni ca un fascicol regulat de ordinul n avand gradul polinomului caracte-ristic k < n (i.e. avand k valori proprii generalizate finite, nu neaparat distincte)are n − k valori proprii infinite 4. Cu aceasta conventie, spectrul de valori propriiλ(A,B) al unui fascicol regulat de ordinul n va avea ıntotdeauna exact n elemente.

Daca matricea B (sau A) este nesingulara fascicolul definit de perechea (A,B)poate fi numit nesingular. Un fascicol se numeste hermitic (ın cazul real, simetric)pozitiv definit daca matricele A si B sunt hermitice (simetrice), iar matricea B estepozitiv definita.

Vectorii proprii generalizati, introdusi prin definitia 6.1, satisfac sistemul liniaromogen singular (6.3). Prin urmare, fiecarei valori proprii generalizate finite ıicorespunde cel putin un vector propriu. Daca perechea (A,B) este reala, vectoriiproprii generalizati asociati valorilor proprii generalizate complex conjugate pot fialesi complex conjugati. Multimea vectorilor proprii generalizati asociati unei valoriproprii generalizate finite λi formeaza subspatiul liniar Ui = Ker(A − λiB) ⊂ ICn acarui dimensiune νi constituie multiplicitatea geometrica a lui λi.

6.1.2 Subspatii de deflatie

Corespondentul generalizat al conceptului de subspatiu invariant este subspatiul dedeflatie, definit ın felul urmator.

Definitia 6.2 Fie o pereche (A,B) ∈ ICn×n × ICn×n, un subspatiu liniar k-dimen-sional S din ICn si subspatiul liniar

V def= AS +BS = z ∈ ICn | z = Ax+By, cu x, y ∈ S.

Subspatiul S se numeste subspatiu de deflatie al perechii (A,B) daca

dimV ≤ dimS. (6.6)

Pentru proprietatile subspatiilor de deflatie ale fascicolelor de matrice recomandamconsultarea referintei [ VI ].

3 In caz contrar (i.e. polinomul caracteristic este identic nul sau matricele nu sunt patrate)fascicolul se numeste singular.

4 Justificarea acestei conventii va deveni limpede mai tarziu.

Page 462: metode de calcul numeric matriceal. algoritmi fundamentali

448 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Problema de calcul care face obiectul acestui capitol este determinarea valorilorproprii generalizate ale unui fascicol regulat dat. Problema calculului vectorilorproprii generalizati va fi tratata ın subsidiar tinand seama si de faptul ca, ın multeaplicatii, calculul explicit al acestora poate fi (si este bine sa fie) evitat. Acestdemers calculatoriu se bazeaza ın mare masura pe urmatorul rezultat.

Propozitia 6.2 Fie (A,B) ∈ ICn×n × ICn×n. Daca exista un subspatiu de deflatiek-dimensional S ⊂ ICn al perechii (A,B), atunci exista matricele unitare Q,Z ∈∈ ICn×n astfel ıncat

QHAZ =

[S11 S12

0 S22

]

, QHBZ =

[T11 T120 T22

]

, (6.7)

cu S11, T11 ∈ ICk×k.Perechea (S11, T11) se numeste restrictia perechii (A,B) la subspatiul S.

Demonstratie. Fie Z1def= [z1 z2 · · · zk ] o matrice n× k ale carei coloane formeaza

o baza ortogonala a subspatiului de deflatie S, Z2 ∈ ICn×(n−k) o completare unitaraa lui Z1 si Z = [Z1 Z2 ]. Fie acum subspatiul V = AS + BS, a carui dimensiuner satisface, prin definitie, conditia r ≤ k , Q1 o matrice n × r ale carei coloaneformeaza o baza ortogonala a acestui subspatiu, Q2 o completare unitara a lui Q1

si Q = [Q1 Q2 ]. Intrucat AS ⊂ V si BS ⊂ V avem AS ⊥ ImQ2 si BS ⊥ ImQ2, i.e.QH

2 AZ1 = 0 si QH2 BZ1 = 0 care, ımpreuna cu inegalitatea r ≤ k , conduc imediat

la (6.7), q.e.d. 3

Observatia 6.2 Calculul matricelor unitare de transformare Q si Z este condi-tionat esential de cunoasterea unei baze a subspatiului de deflatie S. In cazul ıncare se dispune de o baza a lui S, constructia unei baze ortogonale Z1 si a uneicompletari ortogonale Z2 (si, similar, a matricei Q) se face dupa recomandarile dincapitolul 3 (vezi si obs. 4.3). 3

6.1.3 Fascicole echivalente

Ca si ın cazul valorilor proprii ordinare, suntem interesati sa evidentiem trans-formarile matriceale care conserva spectrul unui fascicol dat.

Definitia 6.3 Doua fascicole definite de perechile de matrice (A1, B1), (A2, B2) ∈∈ ICn×n × ICn×n se numesc echivalente 5 daca exista matricele nesingulare P,R ∈∈ ICn×n astfel ıncat

A1 = PA2R, B1 = PB2R. (6.8)

Daca matricele de transformare P si R sunt unitare, atunci perechile (A1, B1) si(A2, B2) se numesc unitar echivalente. In cazul real, daca matricele de transformareP , R sunt ortogonale, cele doua perechi se numesc ortogonal echivalente.

5 Un fascicol A − λB poate fi privit ca o matrice polinomiala. Din acest punct de vedereechivalenta definita aici coincide cu echivalenta stricta a matricelor polinomiale (vezi [ I ]).

Page 463: metode de calcul numeric matriceal. algoritmi fundamentali

6.1. FORMULAREA PROBLEMEI 449

Proprietatea principala a relatiei de echivalenta a doua fascicole este data depropozitia ce urmeaza.

Propozitia 6.3 Daca perechile (A1, B1) si (A2, B2) sunt echivalente ın sensul de-finitiei 6.2, i.e. satisfac (6.8), atunci

λ(A1, B1) = λ(A2, B2). (6.9)

In plus, daca x este un vector propriu generalizat al perechii (A1, B1) asociat valoriiproprii generalizate λ, atunci

y = Rx (6.10)

este un vector propriu generalizat al perechii (A2, B2) asociat aceleiasi valori proprii.

Demonstratie. Daca A1 = PA2R si B1 = PB2R, cu P si R nesingulare, atunci(A1 − λB1)x = 0 cu x 6= 0 implica, evident, (A2 − λB2)Rx = (A2 − λB2)y = 0 siy 6= 0, q.e.d. 3

6.1.4 Fascicole hermitice (simetrice).Fascicole hermitice congruente

Fie perechea de matrice patrate (A,B) ∈ ICn×n × ICn×n care defineste fascicolulmatriceal

F = F = A− λB | λ ∈ IR. (6.11)

Vom spune ca fascicolul F este hermitic (ın cazul matricelor A si B reale, simetric)si, echivalent, ca perechea (A,B) este hermitica (simetrica), daca ambele matriceA si B sunt hermitice (simetrice) 6. Este usor de vazut ca un fascicol hermitic arespectrul generalizat o multime simetrica (dar nu, ın mod necesar, real), iar ın cazulreal, un fascicol simetric are spectrul generalizat real.

Daca F este un fascicol hermitic, vom spune ca F este de semn (semi)definitdaca una dintre matricele A sau B este de semn (semi)definit (i.e. pozitiv saunegativ (semi)definita). Pentru precizare, ın continuare, vom spune ca un fascicolhermitic este pozitiv (negativ) (semi)definit daca matricea B este pozitiv (negativ)(semi)definita.

Un fapt important pe care dorim sa-l remarcam este acela ca, ın general, trans-formarile de echivalenta, definite ın pararagraful anterior, nu conserva nici propri-etatea de a fi hermitic (ın cazul real, simetria) nici definirea semnului unui fascicol.De aceea, tehnicile de calcul ale valorilor proprii generalizate si ale vectorilor propriigeneralizati nu beneficiaza de facilitatile si de dezvoltarile elegante din cazul ordinar(v. cap. 4). In acest context, vom fi interesati sa definim clasa transformarilor deechivalenta care conserva proprietatile mentionate.

Vom spune ca doua fascicole F1 si F2 definite de perechile (A1, B1) si (A2, B2)sunt congruente daca exista o matrice nesingulara T astfel ıncat

(A2, B2) = (THA1T, THB1T ), (6.12)

6 Datorita faptului ca ın (6.11) λ este real, toate matricele dintr-un fascicol hermitic sunthermitice.

Page 464: metode de calcul numeric matriceal. algoritmi fundamentali

450 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

(ın cazul real, T se considera reala). Este usor de constatat ca doua fascicole con-gruente sunt simultan hermitice (ın cazul real, simetrice) sau nu, iar doua fascicolehermitice (simetrice) congruente sunt simultan pozitiv definite sau nu. In sectiuneaurmatoare vom vedea ın ce conditii un fascicol hermitic poate fi adus printr-o trans-formare de congruenta la forma diagonala.

∗ ∗∗

In cazul general, structura ”fina” a unei perechi de matrice, care poate fi dezva-luita prin transformari de echivalenta corespunzatoare, este data de asa numitaforma canonica Kronecker [ I ]. La fel ca si ın cazul formei canonice Jordan, rolulformei canonice Kronecker ın calculul numeric este mult diminuat de sensibilitateaei la perturbatii ın elementele matricelor initiale, perturbatii inerente ın aritmeticaın virgula mobila. Acesta este motivul pentru care ın toate dezvoltarile numericese prefera o structura mult mai robusta si anume forma Schur (complexa sau reala)generalizata a perechii (A,B) prezentata ın continuare.

6.2 Forma Schur generalizata

Transformarile de echivalenta unitare, respectiv ortogonale ın cazul real, prezintaproprietati numerice remarcabile si, de aceea, sunt utilizate ın exclusivitate pentrucalculul performant al valorilor proprii generalizate. Pe de alta parte, structurilecanonice, cum este forma Kronecker, nu se pot obtine, ın general, prin astfel detransformari. De aceea, ca si ın cazul determinarii valorilor proprii ordinare, seutilizeaza, practic ın exclusivitate, structurile triunghiulare sau cvasi-triunghiulare.Rezultatul principal al acestui paragraf arata ca orice pereche de matrice (A,B)este unitar echivalenta cu o pereche de matrice triunghiulare numita forma Schurgeneralizata. Vom trata distinct cazul perechilor de matrice reale.

6.2.1 Forma Schur generalizata (complexa)

Calculul valorilor proprii generalizate este intim legat de calculul vectorilor propriigeneralizati asociati. Daca λ ∈ λ(A,B) este cunoscuta, atunci vectorul propriuasociat este o solutie nenula a unui sistem liniar omogen. Daca se cunoaste unvector propriu generalizat x al perechii (A,B), cu B nesingulara, atunci valoareaproprie generalizata asociata poate fi calculata cu relatia 7

λ =xHB−1Ax

xHx. (6.13)

Daca gradul polinomului caracteristic al fascicolului este superior lui patru, calcululvalorilor proprii generalizate, ın absenta cunoasterii vectorilor proprii asociati, este,

7 O alta relatie ce poate fi utilizata pentru calculul unei valori proprii generalizate finite a unui

fascicol regulat este λ =xHBHAx

xHBHBx, care exprima faptul ca λ este solutia ın sensul celor mai mici

patrate a sistemului λBx = Ax (vezi si exercitiul 6.7).

Page 465: metode de calcul numeric matriceal. algoritmi fundamentali

6.2. FORMA SCHUR GENERALIZATA 451

ın mod necesar, un proces (iterativ) infinit, aceeasi situatie aparand si la calcululvectorilor proprii generalizati fara a se cunoaste valorile proprii asociate. Existasi aici metode corespondente pentru metodele puterii si puterii inverse de calculiterativ al unui vector propriu generalizat pe care le propunem spre elaborare citi-torului (v. exercitiul 6.6). Pentru asigurarea eficientei acestor procese iterative esteesentiala exploatarea rezultatelor structurale partiale care se face prin reducereacorespunzatoare a dimensiunii problemei. Baza teoretica a acestor reduceri estedata de propozitia 6.2.

Pentru k = 1 propozitia 6.2 se particularizeaza ıntr-un corespondent ”genera-lizat” al lemei de deflatie unitara 4.2. Aplicarea consecventa a acesteia ne conduce laurmatorul rezultat important a carui demonstratie, fiind similara cu demonstratiateoremei 4.12, este lasata ın sarcina cititorului.

Teorema 6.1 (Forma Schur generalizata) Oricare ar fi perechea (A,B) ∈ ICn×n××ICn×n exista matricele unitare Q,Z ∈ ICn×n astfel ıncat

QHAZ = S, QHBZ = T, (6.14)

unde matricele S, T sunt superior triunghiulare. Perechile de elemente diagonale(sii, tii) cu tii 6= 0 ale matricelor S si T determina valorile proprii generalizate(finite)

λi =siitii

(6.15)

ale perechii (A,B). Cele n perechi de elemente diagonale pot fi dispuse ın oriceordine predeterminata.

Perechea (S, T ) se numeste forma Schur generalizata (FSG) a perechii (A,B),iar coloanele qi, respectiv zi, ale matricelor de transformare Q si Z se numescvectori Schur generalizati ai perechii (A,B) la stanga, respectiv la dreapta, asociatiFSG (S, T ).

Daca matricea B este nesingulara, atunci si T este nesingulara, i.e. tii 6= 0pentru toti i ∈ 1 :n. Daca B este singulara, perechilor (sii, tii) cu sii 6= 0 si tii = 0le corespund valorile proprii generalizate pe care am convenit sa le consideraminfinite. Justificarea acestei conventii este, acum, evidenta daca avem ın vedere(6.15). Pentru fascicolele regulate, considerate aici, nu este posibil sa avem simultansii = 0 si tii = 0 pentru nici un i.

In practica, pentru a se evita introducerea valorilor infinite, se recomanda de-finirea valorilor proprii generalizate prin intermediul perechilor (sii, tii). In multeaplicatii acestea pot fi utilizate fara a efectua explicit ımpartirea din (6.15).

Fie, acum, S11 = S(1 :k , 1 :k), T11 = T (1 :k , 1 :k) submatricele lider principalede ordinul k ∈ 1 : n ale matricelor superior triunghiulare S si T din (6.14) caredefinesc FSG a perechii (A,B). Daca notam Q1 = Q( : , 1 : k) si Z1 = Z( : , 1 : k),atunci din (6.14) avem

AZ1 = Q1S11, BZ1 = Q1T11.

Fie subspatiul S = ImZ1 ⊂ ICn. Intrucat din relatiile de mai sus rezulta AS ⊂ ImQ1,BS ⊂ ImQ1 avem

V = AS +BS ⊂ ImQ1.

Page 466: metode de calcul numeric matriceal. algoritmi fundamentali

452 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Deci, dimV ≤ k, adica S este un subspatiu de deflatie k-dimensional al perechii(A,B). Cu alte cuvinte, primele k coloane ale matricei de transformare Z, i.e.primii k vectori Schur la dreapta ai perechii (A,B), formeaza o baza ortogonala asubspatiului de deflatie k-dimensional asociat valorilor proprii generalizate definitede perechile (sii, tii), i = 1 : k. In acest mod, prin ordonarea corespunzatoare aelementelor diagonale ale matricelor S si T , se pot construi baze ortogonale pentrusubspatii de deflatie asociate unor grupuri impuse de valori proprii generalizate (vezisectiunea 6.4).

6.2.2 Forma Schur reala generalizata

In cazul ın care matricele A, B sunt reale se obtine un spor important de eficientadaca se utilizeaza ın exclusivitate o aritmetica reala. Corespondentul generalizat alformei Schur reale este introdus prin urmatoarea teorema pe care o prezentam farademonstratie.

Teorema 6.2 (Forma Schur reala generalizata) Oricare ar fi perechea (A,B) ∈∈ IRn×n × IRn×n exista matricele ortogonale Q,Z ∈ IRn×n astfel ıncat

QTAZ = S, QTBZ = T, (6.16)

unde matricea S este ın forma Schur reala iar matricea T este superior triunghiu-lara. Perechile de blocuri diagonale (Sii, Tii), i = 1:p, de dimensiuni 1×1 sau 2×2ale matricelor S si T determina valorile proprii generalizate ale perechii (A,B), maiprecis daca blocul diagonal i al lui S are ordinul ni, atunci

∑pi=1 ni = n si

λ(A,B) = ∪pi=1λ(Sii, Tii). (6.17)

Perechile de blocuri diagonale pot fi dispuse ın orice ordine predeterminata.Perechea (S, T ) se numeste forma Schur reala generalizata (FSRG) a perechii

(A,B), iar coloanele qi, respectiv zi, ale matricelor ortogonale de transformare Qsi Z se numesc vectori Schur generalizati ai perechii (A,B) la stanga, respectiv ladreapta, asociati FSRG.

Conform (6.17), daca dispunem de FSRG a unei perechi (A,B), calculul valorilorproprii generalizate se reduce la rezolvarea ecuatiilor algebrice

det(Sii − λTii) = 0, i = 1:p, (6.18)

de grad cel mult doi.Toate consideratiile facute ın legatura cu FSG au un corespondent transparent

pentru FSRG. De exemplu, daca dimensiunea cumulata a primelor l blocuri diago-nale ale matricei S este k, atunci primele k coloane ale matricei ortogonale de trans-formare Z formeaza o baza ortogonala a unui subspatiu de deflatie k-dimensional(din IRn) al perechii (A,B) asociat ”primelor” k valori proprii generalizate.

Din cele de mai sus rezulta ca problema de calcul a valorilor proprii generalizatese reduce, ın esenta, la obtinerea formei Schur (reale) generalizate. Cum acest lucrunu este posibil, ın cazul general, printr-o secventa finita de operatii elementare,calculul va fi bazat, ın mod necesar, pe trunchierea unui proces infinit, similaralgoritmuluiQR. In forma sa cea mai performanta aceasta procedura este cunoscutasub numele de algoritm QZ si este prezentata ın sectiunea ce urmeaza.

Page 467: metode de calcul numeric matriceal. algoritmi fundamentali

6.2. FORMA SCHUR GENERALIZATA 453

6.2.3 Forma diagonala a fascicolelor hermiticepozitiv definite

In cazul fascicolelor hermitice (ın cazul real, simetrice) vom fi interesati de conditiileın care transformarile de congruenta pot fi utilizate pentru reducerea la forma Schurgeneralizata. Daca o astfel de posibilitate exista, atunci, avand ın vedere ca rezul-tatul este o forma Schur generalizata hermitica, rezulta ca ambele matrice sunt di-agonale. Vom numi aceasta structura forma diagonala generalizata. Aceste conditiisunt prezentate ın teorema urmatoare. Tinand seama de faptul ca rezultatul nueste o generalizare directa a unui rezultat similar din cazul ordinar, prezentam sidemonstratia.

Teorema 6.3 (Forma diagonala generalizata) Fie un fascicol hermitic definit deperechea (A,B) ∈ ICn×n × ICn×n si matricea (hermitica)

C(µ) = µA+ (1− µ)B, µ ∈ IR. (6.19)

Daca exista un scalar µ ∈ [0, 1], astfel ıncat matricea C(µ) este pozitiv semidefinita,i.e. xHC(µ)x ≥ 0, ∀x ∈ IC, si

KerC(µ) = KerA ∩KerB, (6.20)

atunci exista o matrice nesingulara T ∈ ICn×n astfel ıncat perechea congruenta

(F,G) = (THAT, THBT ) (6.21)

are matricele F si G diagonale, i.e. este ın forma diagonala generalizata.In cazul real, toate matricele implicate sunt reale.

Demonstratie. Fie µ ∈ [ 0, 1 ] astfel ıncat matricea C(µ) este pozitiv semidefinitasi este satisfacuta conditia (6.20). Intrucat matricea C(µ) este hermitica si pozitivsemidefinita, forma Schur a lui C(µ) este diagonala cu elementele diagonale realesi nenegative care pot fi ordonate. Altfel spus, exista o matrice unitara U1 ∈ ICn×n

astfel ıncat

UH1 C(µ)U1 =

[D 00 0

]

, D = diag(d1, d2, . . . , dk), di > 0, i = 1 : k. (6.22)

Fie ∆ = D12 = diag(

√d1,√d2, . . . ,

√dk), ∆1 =

[∆ 00 In−k

]

si matricea nesingu-

lara T1 = U1∆−11 . Consideram transformarea de congruenta

(A1, B1) = (TH1 AT1, T

H1 BT1) (6.23)

si matricea

C1(µ) = TH1 C(µ)T1 = ∆−1

1 UH1 C(µ)U1∆

−11 =

[Ik 00 0

]

= µA1+(1−µ)B1. (6.24)

In continuare avem, evident,

KerC(µ) = KerA ∩KerB ⇔ KerC1(µ) = KerA1 ∩KerB1. (6.25)

Page 468: metode de calcul numeric matriceal. algoritmi fundamentali

454 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Cum x ∈ KerC1(µ) implica ın mod necesar x(1 : k) = 0, rezulta ca KerC1(µ) == ImE, unde E = [ ek+1, ek+2, . . . , en ]. Dar KerC1(µ) ⊂ KerA1. Deci A1E = 0, i.e.A1(:, k + 1 : n) = 0, si cum A1 este hermitica, rezulta ca are urmatoarea structura(din exact aceleasi motive aceasta structura o are si matricea B)

A1 =

[A11 00 0

]

, B1 =

[B11 00 0

]

, A11, B11 ∈ ICk×k. (6.26)

Din (6.24) rezultaµA11 + (1− µ)B11 = Ik. (6.27)

Distingem doua situatii:a) Daca µ = 0, atunci B11 = Ik si consideram forma Schur (diagonala)

F11 = QH11A11Q11 = diag(f1, f2, . . . , fk)

a blocului A11. Luand matricea unitara Q = diag(Q11, In−k) si definind matriceade transformare T = T1Q, avem

F = THAT = QHA1Q = diag(F11, 0), G = THBT = QHB1Q = diag(Ik, 0),(6.28)

i.e. forma diagonala generalizata a perechii initiale.b) Daca µ 6= 0, atunci consideram forma Schur (diagonala)

G11 = QH11B11Q11 = diag(g1, g2, . . . , gk)

a blocului B11. Luand din nou matricea unitara Q = diag(Q11, In−k) si definindmatricea de transformare T = T1Q, avem

F = THAT =1

µTH(C(µ)− (1− µ)B)T =

=1

µ

([Ik 00 0

]

− (1 − µ)[G11 00 0

])

=

= diag(f1, f2, . . . , fk, 0, . . . , 0),

G = THBT = QHB1Q = diag(g1, g2, . . . , gk, 0, . . . , 0),

(6.29)

unde

fi =1

µ− 1− µ

µgi.

Am obtinut si ın acest caz forma diagonala generalizata a perechii initiale.In cazul real demonstratia este identica, cu mentiunea ca toate matricele care

apar sunt reale. Teorema este demonstrata. 3

In aplicatii, de cele mai multe ori, apar fascicole hermitice (simetrice) de semndefinit. Evident, ıntr-un astfel de caz, conditiile teoremei de mai sus sunt ındeplinite:daca B este pozitiv definita, atunci pentru µ = 0, iar daca A este pozitiv definita,atunci pentru µ = 1. Deci fascicolele hermitice pozitiv definite sunt ıntotdeaunageneralizat diagonalizabile.

Page 469: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 455

6.3 Algoritmul QZ

Algoritmul QZ, elaborat de C.B. Moler si G.W. Stewart ın anul 1973 [ 44 ], este, ınesenta, o procedura de deflatie iterativa care construieste (recurent) un sir de perechide matrice unitar echivalente cu perechea initiala, sir care, ın conditii precizate, esteconvergent catre forma Schur generalizata. In cazul real se poate impune exclusiv oaritmetica reala pe baza unei strategii a pasilor dubli. In aceasta situatie termeniisirului sunt perechi ortogonal echivalente, iar limita sa este o forma Schur realageneralizata a perechii initiale.

Algoritmul QZ este organizat, ca si algoritmul QR, ın doua faze:a) Faza a I-a, de reducere, prin calcul direct, a perechii (A,B) initiale la o

pereche unitar echivalenta (H,T ) avand matricea H ın forma superior Hessenbergsi matricea T ın forma superior triunghiulara, structura cea mai apropiata de FSG cepoate fi obtinuta printr-un calcul finit. Vom numi perechea (H,T ) forma Hessenberggeneralizata a lui (A,B).

b) Faza a II-a, de deflatie iterativa, prin care elementele subdiagonale alematricei superior Hessenberg H sunt anulate asimptotic (simultan cu conservareastructurii superior triunghiulare a matricei T ), utilizand transformari unitare deechivalenta.

Intr-o caracterizare sintetica, algoritmul QZ aplicat perechii (A,B) (cu B nesin-gulara) poate fi considerat drept o varianta ”mascata” a algoritmului QR aplicatmatricei AB−1 si de aici rezulta remarcabilele sale performante numerice si deconvergenta.

6.3.1 Reducerea la forma Hessenberg generalizata

Corespondentul generalizat al teoremei 4.8 are urmatoarea formulare.

Teorema 6.4 Oricare ar fi perechea (A,B) ∈ ICn×n× ICn×n, ce defineste un fascicolregulat, exista matricele unitare Q,Z ∈ ICn×n, calculabile printr-o secventa finita deoperatii aritmetice, astfel ıncat perechea

(H,T ) = (QHAZ,QHBZ) (6.30)

are matricea H superior Hessenberg si matricea T superior triunghiulara. Dacamatricele A, B sunt reale, atunci si matricele H si T sunt reale, iar matricele detransformare Q si Z sunt ortogonale.

Demonstratie. Vom da o demonstratie constructiva explicita ın vederea elaborariiunui algoritm performant. In primul rand, exista o matrice unitara Q ∈ ICn×n astfelıncat matricea B ← T = QHB este superior triunghiulara (vezi capitolul 3), i.e.perechea unitar echivalenta

(A,B)← (A, T ) = (QHAZ,QHBZ),

cu Z = In, are matricea A densa si T superior triunghiulara. In continuare vomaduce matricea A la forma superior Hessenberg pastrand structura superior tri-unghiulara a matricei B. Procedura are n− 2 pasi.

Page 470: metode de calcul numeric matriceal. algoritmi fundamentali

456 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Pasul 1. In cadrul pasului initial vom anula elementele A(3 : n, 1) din primacoloana a matricei A, ın ordinea n :−1 :3, prin transformari unitare de echivalentadefinite de doua secvente de rotatii (complexe) conform schemei de calcul

HT- 1 1. Pentru i = n :−1:31. Se determina rotatia Q

(1)i−1,i astfel ıncat ((Q

(1)i−1,i)

HA)(i, 1) = 0

2. A← (Q(1)i−1,i)

HA

3. B ← (Q(1)i−1,i)

HB % Se altereaza zeroul din pozitia (i, i− 1) a

matricei superior triunghiulare B

4. Q← QQ(1)i−1,i

5. Se determina rotatia Z(1)i−1,i astfel ıncat (BZ

(1)i−1,i)(i, i− 1) = 0

6. A← AZ(1)i−1,i

7. B ← BZ(1)i−1,i

8. Z ← ZZ(1)i−1,i

Intrucat premultiplicarea unei matrice cu o rotatie din planul (i−1, i) afecteaza nu-mai liniile i−1 si i, executia instructiunii 1.3 are ca efect o posibila alterare 8 a struc-turii superior triunghiulare a matricei B prin alterarea zeroului din pozitia (i, i−1).Refacerea structurii superior triunghiulare a lui B se realizeaza la instructiunea 1.6prin postmultiplicarea matricei B cu o rotatie calculata corespunzator la instruc-tiunea 1.5. Postmultiplicarea cu o rotatie plana din planul (i−1, i), afectand numaicoloanele i−1 si i, nu are nici un efect (ıntrucat i > 2) asupra zerourilor create ınprima coloana a matricei A 9. In acest fel, pe masura crearii zerourilor din primacoloana a lui A, elementul alterant al structurii superior triunghiulare a lui B sedeplaseaza pe o traiectorie subdiagonala ascendenta pana la parasirea matricei dinpozitia (3, 2) dupa cum se poate vedea si din urmatoarea exemplificare pentru n = 4.In diagramele structurale de mai jos zeroul nou creat a fost marcat cu ∅, elementulalterant cu +, iar ıncadrarile indica liniile si coloanele afectate la pasul respectiv.

(A,B) = (

× × × ×× × × ×× × × ×× × × ×

,

× × × ×0 × × ×0 0 × ×0 0 0 ×

),

(A,B)← ((Q(1)34 )

HA, (Q

(1)34 )

HB) = (

× × × ×× × × ×× × × ×∅ × × ×

,

× × × ×0 × × ×0 0 × ×0 0 + ×

),

8 Alterarea are efectiv loc daca elementul diagonal (i−1, i−1) al matricei curente B este nenul,care este cazul obisnuit.

9 De observat ca ıncercarea de anulare a elementului (2, 1) a lui A este sortita esecului ıntrucat

postmultiplicarea cu rotatia Z(1)1,2 poate altera toate zerourile create ın prima coloana.

Page 471: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 457

(A,B)← (AZ(1)34 , BZ

(1)34 ) = (

× ×× ×× ×0 ×

× ×× ×× ×× ×

,

× ×0 ×0 00 0

× ×× ×× ×∅ ×

),

(A,B)← ((Q(1)23 )

HA, (Q

(1)23 )

HB) = (

× × × ×× × × ×∅ × × ×0 × × ×

,

× × × ×0 × × ×0 + × ×0 0 0 ×

),

(A,B)← (AZ(1)23 , BZ

(1)23 ) = (

××00

× ×× ×× ×× ×

××××

,

×000

× ×× ×∅ ×0 0

××××

).

Cumuland transformarile din acest exemplu se obtine

(A,B)← ((Q(1)23 )

H(Q

(1)34 )

HAZ

(1)34 Z

(1)23 , (Q

(1)23 )

H(Q

(1)34 )

HBZ

(1)34 Z

(1)23 )

def=

def= ((Q(1))

HAZ(1), (Q(1))

HBZ(1)).

Prin urmare, schema de calcul de mai sus produce matricele

A← A(1) = (Q(1)23 )

H· · · (Q(1)

n−2,n−1)H(Q

(1)n−1,n)

HAZ

(1)n−1,nZ

(1)n−2,n−1 · · ·Z

(1)23

def=

def= (Q(1))

HAZ(1), (6.31)

B ← B(1) = (Q(1)23 )

H· · · (Q(1)

n−2,n−1)H(Q

(1)n−1,n)

HBZ

(1)n−1,nZ

(1)n−2,n−1 · · ·Z

(1)23

def=

def= (Q(1))

HBZ(1), (6.32)

cu A(1)(3 : n, 1) = 0 si B(1) superior triunghiulara, realizandu-se astfel obiectivulpasului 1. Evident, matricele unitare de transformare

Q(1) def= Q

(1)n−1,nQ

(1)n−2,n−1 · · ·Q

(1)23 , Z(1) def

= Z(1)n−1,nZ

(1)n−2,n−1 · · ·Z

(1)23 (6.33)

cumuleaza cele doua secvente de rotatii utilizate la pasul 1.Pasul k. Presupunem ca ın cadrul primilor k − 1 pasi am obtinut o pereche

(A(k−1), B(k−1)) – ce suprascrie (A,B) – cu A(k−1) avand o structura superiorHessenberg ın primele k − 1 coloane si B(k−1) superior triunghiulara:

A← A(k−1) def= (Q(k−1))

H · · · (Q(2))H(Q(1))

HAZ(1)Z(2) · · ·Z(k−1), (6.34)

B ← B(k−1) def= (Q(k−1))

H · · · (Q(2))H(Q(1))

HBZ(1)Z(2) · · ·Z(k−1). (6.35)

Este usor de vazut ca adaptand schema de calcul de la pasul 1, i.e. efectuand

Page 472: metode de calcul numeric matriceal. algoritmi fundamentali

458 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

HT- k 1. Pentru i = n :−1:k + 2

1. Se determina rotatia Q(k)i−1,i astfel ıncat ((Q

(k)i−1,i)

HA)(i, k) = 0

2. A← (Q(k)i−1,i)

HA

3. B ← (Q(k)i−1,i)

HB % Se altereaza zeroul din pozitia (i, i− 1)

a matricei superior triunghiulare B

4. Q← QQ(k)i−1,i

5. Se determina rotatia Z(k)i−1,i astfel ıncat (BZ

(k)i−1,i)(i, i− 1) = 0

6. A← AZ(k)i−1,i

7. B ← BZ(k)i−1,i

8. Z ← ZZ(k)i−1,i

se obtin matricele

A←A(k)=(Q(k)k+1,k+2)

H· · ·(Q(k)

n−2,n−1)H(Q

(k)n−1,n)

HA(k−1)Z

(k)n−1,nZ

(k)n−2,n−1· · ·Z

(k)k+1,k+2

def= (Q(k))

HA(k−1)Z(k) (6.36)

si

B←B(k)=(Q(k)k+1,k+2)

H· · ·(Q(k)

n−2,n−1)H(Q

(k)n−1,n)

HB(k−1)Z

(k)n−1,nZ

(k)n−2,n−1· · ·Z

(k)k+1,k+2

def= (Q(k))

HB(k−1)Z(k) (6.37)

cu A(k)(k+2 : n, k) = 0, cu structura primelor k−1 coloane ale matricei A(k−1)

ramasa nealterata si cu B(k) superior triunghiulara, realizandu-se astfel obiectivulpasului k. Evident, matricele unitare de transformare

Q(k) def= Q

(k)n−1,nQ

(k)n−2,n−1 · · ·Q

(k)k+1,k+2, Z(k) def

= Z(k)n−1,nZ

(k)n−2,n−1 · · ·Z

(k)k+1,k+2

(6.38)cumuleaza cele doua secvente de rotatii utilizate la pasul k.

In concluzie, pasul 1 de mai sus permite initierea procedurii de reducere aperechii (A,B) la forma Hessenberg generalizata, iar pasul k arata ca aceasta redu-cere poate fi continuata. Dupa n−2 pasi se obtine rezultatul dorit, i.e.

A← H = (Q(n−2))H · · · (Q(2))

H(Q(1))

HAZ(1)Z(2) · · ·Z(n−2) def

= QHAZ, (6.39)

B ← T = (Q(n−2))H · · · (Q(2))

H(Q(1))

HBZ(1)Z(2) · · ·Z(n−2) def

= QHBZ (6.40)

cu H superior Hessenberg si T superior triunghiulara, i.e. cu perechea (H,T ) ınforma Hessenberrg generalizata. Evident, matricele unitare de transformare

Qdef= Q(1)Q(2) · · ·Q(n−2), Z

def= Z(1)Z(2) · · ·Z(n−2) (6.41)

cumuleaza toate transformarile efectuate.

Page 473: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 459

In cazul real toate rotatiile sunt reale si, aplicate unor matrice initiale reale, con-duc la o pereche rezultat reala. De asemenea, matricele de transformare cumulatesunt reale ca produse de matrice reale.

Caracterul finit al calculului este evident. Demonstratia este completa. 3

Demonstratia teoremei de mai sus conduce imediat la urmatoarea structura aalgoritmului de reducere a unei perechi (A,B) la forma Hessenberg generalizata.

HT 1. Se calculeaza triangularizarea unitara a matricei B, i.e. matricea unitaraQ si B ← QHB astfel ıncat noul B este superior triunghiular

2. A← QHA3. Pentru k = 1 : n−2

1. Se executa procedura HT- k

Pentru scrierea formala a algoritmului vom utiliza o procedura de triangularizareunitara a unei matrice complexe utilizand reflectori hermitici, prezentata ın capitolul3. Pentru scopurile noastre, sintaxa de apel a acestei proceduri va fi 10

[B,U, b ] = TUN(B),

i.e. procedura suprascrie matricea argument B cu rezultatul triangularizarii silivreaza, ın matricea U ∈ ICn×(n−1) si vectorul b ∈ IRn−1, elementele definitorii

ale reflectorilor complecsi hermitici Uk = In −1

b(k)U(:, k)(U(:, k))H utilizati. (Pre-

cizam ca U(1 : k−1, k) = 0, k = 2 : n−1.) De asemenea, vom folosi procedurile dintabelul 4.3 (vezi capitolul 4), la care vom adauga o procedura suplimentara necesarapentru procesarile legate de anularea elementelor alterante ale structurii superiortriunghiulare a matricei B si anume procedura Gcm pentru calculul unei rotatii

complexe bidimensionale Z12 =

[c s−s c

]

”modificate” care aplicata pe dreapta

unui vector linie a ∈ IC1×2 anuleaza primul element al lui a. Vom numi aceastatransformare rotatie (complexa) ”modificata”. Este simplu de vazut ca elementeledefinitorii ale acestei rotatii sunt

c =

1, daca a1 = 0,0, daca a1 6= 0, a2 = 0,

|a2|r, daca a1 6= 0, a2 6= 0,

s =

0, daca a1 = 0,1, daca a1 6= 0, a2 = 0,

a1a2|a2|r

, daca a1 6= 0, a2 6= 0.

(6.42)

unde r =

|a1|2 + |a2|2. Calculul elementelor definitorii pentru rotatia de mai susva fi ınsotit de calculul a ← d = aZ12, astfel ıncat sintaxa propusa pentru aceastaprocedura este

[ d, c, s ] = Gcm(a)

10Corespondentul real este procedura de triangularizare ortogonala pe care, ın consens, o vomnumi TOR. Atragem atentia ca, din dorinta de a asigura o claritate maxima, aici s-au facutunele rabaturi la eficienta, cum ar fi memorarea vectorilor Householder ıntr-o matrice distincta.De aceea, sintaxa si denumirile generice folosite difera de cele din capitolul 3. Implementarile deperformanta maxima vor trebui sa respecte ınsa toate recomandarile explicit formulate ın capitolul3.

Page 474: metode de calcul numeric matriceal. algoritmi fundamentali

460 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

suprascrierea (interna a) lui a realizandu-se cu apelul [ a, c, s ] = Gcm(a). Cu acesteprecizari obtinem urmatorul algoritm.

Algoritmul 6.1 (HTQZc – Reducerea la forma Hessenberg genera-lizata) (Data o pereche (A,B) ∈ ICn×n × ICn×n, precum si matriceleunitare Q,Z ∈ ICn×n, algoritmul calculeaza perechea unitar echivalenta(A,B) ← (H,T ) = (QHAZ, QHBZ) avand forma superior Hessenberggeneralizata. Optional se acumuleaza matricele unitare de transformareQ← QQ, Z ← ZZ. Optiunea se exprima prin intermediul unei variabilelogice opt de tipul sir de caractere ce poate lua valorile ′da′ sau ′nu′. Dacaopt = ′nu′, algoritmul returneaza matricele Q si Z nemodificate.)

1. [B,U, b ] = TUN(B)

2. Pentru k = 1 : n−11. A(k : n, :) = Hcs(U(k : n, k), b(k), A(k : n, :))

3. Daca opt = ′da′ atunci

1. Pentru k = n−1 : −1 : 1

1. Q(:, k : n) = Hcd(Q(:, k : n), U(k : n, k), b(k))

4. Pentru k = 1 : n−21. Pentru i = n : −1 : k+2

1. [A(i−1 : i, k), c, s ] = Gc(A(i−1 : i, k))

2. A(i−1 : i, k+1 : n) = Gcs(c, s, A(i−1 : i, k+1 : n))

3. B(i−1 : i, i−1 : n) = Gcs(c, s, B(i−1 : i, i−1 : n))

4. Daca opt = ′da′ atunciQ( : , i−1 : i) = Gcd(Q( : , i−1 : i), c, s)

5. [B(i, i−1 : i), c, s ] = Gcm(B(i, i−1 : i))

6. A( : , i−1 : i) = Gcd(A( : , i−1 : i), c, s)

7. B(1 : i−1, i−1 : i) = Gcd(B(1 : i−1, i−1 : i), c, s)8. Daca opt = ′da′ atunciZ( : , i−1 : i) = Gcd(Z( : , i−1 : i), c, s)

Comentarii. In acest capitol, pentru apelul algoritmului HTQZc va fi utilizatasintaxa

[H,T,Q, Z ] = HTQZc(A,B,Q,Z, opt).

Similar cu cele prezentate la calculul valorilor proprii ordinare din capitolul 4, acu-mularea transformarilor se face ıntotdeauna prin ınmultirea la dreapta cu matriceade transformare curenta, i.e. utilizand procedurile Hcd sau Gcd. Totusi, dacainitial Q este matricea unitate (e.g. ın situatiile ın care perechea (A,B) nu provinedin prelucrari anterioare), atunci se obtine un spor important de eficienta dacainstructiunea 3 se ınlocuieste cu instrutiunea

3. Daca opt = ′da′ atunci

1. Pentru k = n−1 : −1 : 1

1. Q(k : n, k : n) = Hcs(U(k : n, k), b(k), Q(k : n, k : n))

Page 475: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 461

i.e. acumularea relectorilor se face ın ordine inversa, realizand o ”umplere progre-siva” a matricei Q (vezi si comentariile la algoritmul HQc din capitolul 4).

In cazul real, atat matricele rezultat (A,B) ← (H,T ) = (QTAZ,QTBZ) cat simatricele de transformare Q, Z vor fi reale. Aceasta particularizare este imediataprin ınlocuirea procedurilor de transformare complexe utilizate cu corespondentelelor reale. Ca sa marcam diferenta, sintaxa de apel va fi

[H,T,Q, Z ] = HTQZr(A,B,Q,Z, opt).

Complexitatea algoritmului este O(n3), executia sa implicand, ın cazul real,Nop ≈ 8n3 operatii ın format virgula mobila. Acumularea matricelor de transfor-

mare necesita N′

op ≈ 4n3 operatii suplimentare pentru Q si N′

op ≈ 3n3 operatiisuplimentare pentru Z.

Algoritmul HTQZ este numeric stabil, i.e. forma Hessenberg generalizata cal-culata ıntr-o aritmetica ın virgula mobila este o pereche exact unitar (ortogonal)echivalenta cu o pereche usor perturbata (A+E,B+F ), unde matricele de pertur-bare E si F satisfac conditiile ‖E‖ ≤ p(n)εM‖A‖ si ‖F‖ ≤ p(n)εM‖B‖ cu p(n) ofunctie cu o crestere ”modesta” de dimensunea n a problemei (v. si § 6.5, § 6.6). 3

6.3.2 Evidentierea valorilor proprii generalizate infinite

Fie perechea (H,T ) ∈ ICn×n× ICn×n ın forma Hessenberg generalizata, obtinuta e.g.cu algoritmul HTQZc, care defineste un fascicol regulat. Daca T este singulara,i.e. T are (cel putin) un element diagonal nul, atunci perechea (H,T ) are (celputin) o valoare proprie generalizata infinita. Intr-un astfel de caz, valorile propriigeneralizate infinite pot fi evidentiate folosind o secventa finita de transformari deechivalenta unitare (ın cazul real, ortogonale), simultan cu conservarea formei Hes-senberg generalizate. Concret, exista matricele unitare Q si Z astfel ıncat matriceleperechii (H,T )← (H, T ) = (QHHZ, QHT Z) au structura

H =

[H11 H12

0 H22

]

, T =

[T11 T120 T22

]

, (6.43)

cu perechea (H11, T11) ın forma superior Hessenberg generalizata avand T11 nesin-gulara, H22 superior triunghiulara nesingulara si T22 strict superior triunghiulara,i.e. cu toate elementele diagonale nule (toate submatricele de aceiasi indici auaceleasi dimensiuni). Evident, valorile proprii generalizate ale perechii (H11, T11)sunt valorile proprii generalizate finite ale perechii initiale, ın timp ce valorile pro-prii generalizate ale perechii (H22, T22) sunt valorile proprii generalizate infinite aleacesteia.

Detaliile de constructie a structurii (6.43) sunt urmatoarele.Presupunem mai ıntai ca matricea T are un singur element diagonal nul. Acesta

poate fi ”deplasat” ın pozitia (n, n), simultan cu conservarea formei Hessenberggeneralizate a perechii (H,T ) si cu anularea elementului (n, n−1) al matricei H ,prin aplicarea unei transformari unitare de echivalenta sub forma unei secvente derotatii. Concret, daca tkk = 0, k ∈ 2 : n−1 11, este zeroul urmarit, atunci scopuleste atins executand schema de calcul

11 Daca zeroul se afla deja ın ultima pozitie diagonala se executa numai instructiunea 2 din

Page 476: metode de calcul numeric matriceal. algoritmi fundamentali

462 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

DZ - k, n

% Deplasarea zeroului diagonal al matricei T din pozitia (k, k) ın pozitia (n, n)1. Daca k < n

1. Pentru i = k+1 : n

1. Se determina rotatia Q(kn)i−1,i astfel ıncat ((Q

(kn)i−1,i)

HT )(i, i) = 0

2. H ← (Q(kn)i−1,i)

HH % Se altereaza zeroul din pozitia (i, i−2) a lui H

3. T ← (Q(kn)i−1,i)

HT

4. Se determina rotatia Z(kn)i−2,i−1 astfel ıncat (HZ

(kn)i−2,i−1)(i, i−2) = 0

5. H ← HZ(kn)i−2,i−1

6. T ← TZ(k)i−2,i−1

2. % Ultima rotatie:

1. Se determina rotatia Z(kn)n−1,n astfel ıncat (HZ

(kn)n−1,n)(n−1, n) = 0

2. H ← HZ(kn)n−1,n

3. T ← TZ(kn)n−1,n

Aceasta schema se completeaza corespunzator cu eventuala actualizare a ma-tricelor de transformare. Pentru a dezvalui mai clar mecanismul schemei de calculde mai sus consideram un exemplu cu n = 4 si k = 2. In diagramele structurale demai jos am marcat cu ∅ anularile curente de elemente si cu + alterarile temporarede zerouri. Incadrarile marcheaza liniile si coloanele afectate ın etapa respectiva.

(H,T ) = (

× × × ×× × × ×0 × × ×0 0 × ×

,

× × × ×0 0 × ×0 0 × ×0 0 0 ×

),

(H,T )←((Q(24)23 )

HH, (Q

(24)23 )

HT ) = (

× × × ×× × × ×+ × × ×0 0 × ×

,

× × × ×0 0 × ×0 0 ∅ ×0 0 0 ×

),

(H,T )← (HZ(24)12 , TZ

(24)12 ) = (

× ×× ×∅ ×0 0

× ×× ×× ×× ×

,

× ×0 00 00 0

× ×× ×0 ×0 ×

),

schema de calcul DZ - k, n pentru anularea elementului H(n − 1, n). Daca zeroul se afla ın

pozitia (1, 1) deplasarea sa ın pozitia (n, n) are un ınceput atipic a carui prezentare ar fi complicatschema de calcul. Cititorul interesat poate desprinde acest caz din algoritmul 6.2, prezentat maideparte.

Page 477: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 463

(H,T )←((Q(24)34 )

HH, (Q

(24)34 )

HT ) = (

× × × ×× × × ×0 × × ×0 + × ×

,

× × × ×0 0 × ×0 0 0 ×0 0 0 ∅

),

(H,T )← (HZ(24)23 , TZ

(24)23 ) = (

××00

× ×× ×× ×∅ ×

××××

,

×000

× ×+ ×0 00 0

×××0

)

(H,T )← (HZ(24)34 , TZ

(24)34 ) = (

× ×× ×0 ×0 0

× ×× ×× ×∅ ×

,

× ×0 ×0 00 0

× ×× ×+ ×0 0

).

Prin urmare, ın exemplul considerat, deplasarea zeroului din pozitia (2, 2) ın pozitia(4, 4) a matricei T se realizeaza cu secventa

(H,T )← ((Q(24)34 )

H(Q

(24)23 )

HHZ

(24)12 Z

(24)23 Z

(24)34 , (Q

(24)34 )

H(Q

(24)23 )

HTZ

(24)12 Z

(24)23 Z

(24)34 )

def= ((Q(24))

HHZ(24), (Q(24))

HTZ(24)).

In cazul general, deplasarea unui zero din pozitia (k, k), k ∈ 2 :n−1, ın pozitia(n, n) se face cu secventa

H ← (Q(kn)n−1,n)

H· · · (Q(kn)

k+1,k+2)H(Q

(kn)k,k+1)

HHZ

(kn)k−1,kZ

(kn)k,k+1 · · ·Z

(kn)n−2,n−1Z

(kn)n−1,n

def= (Q(kn))

HHZ(kn), (6.44)

T ← (Q(kn)n−1,n)

H· · · (Q(kn)

k+1,k+2)H(Q

(kn)k,k+1)

HTZ

(kn)k−1,kZ

(kn)k,k+1 · · ·Z

(kn)n−2,n−1Z

(kn)n−1,n

def= (Q(kn))

HTZ(kn). (6.45)

Daca matricea superior triunghiulara T are un singur zero diagonal, atunci dupadeplasarea sa pe ultima pozitie diagonala 12 perechea (H,T ) transformata va aveastructura

H =

[

H h0 hnn

]

, T =

[

T t0 0

]

, (6.46)

cu perechea (H, T ) ın forma Hessenberg generalizata si cu T nesingulara. Fascicolulinitial este regulat daca si numai daca ın (6.46) hnn 6= 0. In acest caz procedura apus ın evidenta o valoare proprie generalizata infinita.

12 Vezi nota de picior precedenta.

Page 478: metode de calcul numeric matriceal. algoritmi fundamentali

464 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Daca matricea T are mai multe zerouri diagonale, acestea pot fi deplasate suc-cesiv ın coltul din dreapta jos al lui T prin aplicarea repetata a schemei de cal-cul DZ - k, n adaptate la necesitatile curente ın forma DZ - i, j . Procedura este

urmatoarea 13.

DZ % Deplasarea zerourilor diagonale ale matricei T ın coltul din dreapta jos1. i = n, j = n2. Cat timp i > 0

1. Daca T (i, i) = 0 atunci

1. Executa DZ - i, j

2. j ← j − 13. i← j − 1

altfel

1. i← i− 1

Dupa executia procedurii de mai sus perechea (H,T ) transformata va avea struc-tura (6.43). Fascicolul initial este regulat daca si numai daca H22 este nesingulara.Intr-un astfel de caz, numarul valorilor proprii generalizate infinite este dat de or-dinul blocurilor H22 si T22.

Prezentam algoritmul care implementeaza schema de calcul DZ .

Algoritmul 6.2 (DZc – Deplasarea zerourilor diagonale.)(Date o pereche (H,T ) ∈ ICn×n × ICn×n ın forma Hessenberg generali-zata si matricele unitare Q,Z ∈ ICn×n, algoritmul suprascrie perechea(H,T ) cu o pereche echivalenta, tot ın forma Hessenberg generalizata,dar avand toate zerourile diagonale ale matricei T situate ın coltul dindreapta jos. Optional, se actualizeaza matricele unitare de transformareQ,Z ∈ ICn×n. Optiunea se exprima prin intermediul unei variabile logi-ce opt de tipul sir de caractere ce poate lua valorile ′da′ sau ′nu′. Dacaopt = ′nu′, algoritmul returneaza matricele Q si Z nemodificate.)

1. i = n, j = n

2. Cat timp i > 0

1. Daca T (i, i) = 0 atunci

1. Daca i < j atunci

1. Pentru l = i+1 : j

1. [T (l−1: l, l), c, s ] = Gc(T (l−1: l, l))2. k = max(l−2, 1)3. H(l−1: l, k :n) = Gcs(c, s,H(l−1: l, k :n))4. Daca l < n atunci

T (l−1: l, l+1 : n) = Gcs(c, s, T (l−1: l, l+1:n))

13 Dupa deplasarea unui zero diagonal ın ultima pozitie diagonala curenta este posibil ca struc-tura zerourilor diagonale ”ınca nedeplasate” sa se modifice, e.g. numarul lor sa scada. De aceeeadupa deplasarea tuturor zerourilor diagonale ın coltul din dreapta jos este posibil ca numarul lorsa fie diferit de numarul initial al zerourilor diagonale ale matricei T . De asemenea, asa cum s-aprecizat, pentru aspectele specifice ale tratarii zerourilor din pozitiile diagonale terminale, cititoruleste invitat sa consulte algoritmul formal.

Page 479: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 465

5. Daca opt = ′da′ atunciQ( : , l−1: l) = Gcd(Q( : , l−1: l), c, s)

6. [H(l, k :k+1), c, s ] = Gcm(H(l, k :k+1))7. H(1 : l−1, k :k+1) = Gcd(H(1 : l−1, k :k+1), c, s)8. Daca l = 2 atunci

H(3, k :k+1) = Gcd(H(3, k :k+1), c, s)9. T (1 : l−1, k :k+1) = Gcd(T (1 : l−1, k :k+1), c, s)10. Daca opt = ′da′ atunci

Z( : , k :k+1) = Gcd(Z( : , k :k+1), c, s)

2. Daca j > 1 atunci

1. % Ultima rotatie din secventa curenta:

1. (H(j, j−1:j), c, s) = Gcm(H(j, j−1:j))2. H(1 :j−1, j−1:j) = Gcd(H(1 :j−1, j−1:j), c, s)3. T (1 :j−1, j−1:j) = Gcd(T (1 :j−1, j−1:j), c, s)4. Daca opt = ′da′ atunci

Z( : , j−1:j) = Gcd(Z( : , j−1:j), c, s)3. j ← j − 1

4. i← j

altfel

1. i← i− 1

Comentarii. Sintaxa cu care algoritmul de mai sus va fi apelat este

[H,T,Q, Z ] = DZc(H,T,Q, Z, opt ).

Complexitatea algoritmului este cel mult O(n3), numarul efectiv de operatii fiinddecisiv influentat de numarul si dispunerea zerourilor diagonale ale matricei T .Utilizand exclusiv transformari unitare (ortogonale), algoritmul DZc este numericstabil.

In cazul real se utilizeaza exact aceleasi secvente de rotatii, de data aceastareale, ceea ce are ca efect obtinerea ca rezultat a unei perechi transformate reale,iar efortul de calcul este sensibil diminuat. Pentru a distinge cazul real vom utilizasintaxa

[H,T,Q, Z ] = DZr(H,T,Q, Z, opt ).

Formal, varianta reala a algoritmului se obtine ınlocuind ın numele procedurilorutilizate sigla c cu sigla r. 3

6.3.3 Faza iterativa a algoritmului QZ

Etapa iterativa a algoritmului QZ construieste un sir de perechi de matrice unitar(ortogonal) echivalente convergent catre forma Schur (reala) generalizata. In esenta,ın cazul ın care matricea B este nesingulara, iteratiile QZ reprezinta o implementarespecifica a iteratiilor QR pentru matricea C = AB−1. Concret, perechea curenta(Ak, Bk) a sirului QZ este astfel calculata ıncat matricea Ck = AkB

−1k sa fie ma-

tricea curenta a sirului QR pentru matricea C. Asa cum s-a mai precizat, eficienta

Page 480: metode de calcul numeric matriceal. algoritmi fundamentali

466 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

fazei iterative a algoritmului QZ este determinant asigurata de reducerea prelimi-nara a perechii (A,B) la forma Hessenberg generalizata folosind algoritmii HTQZcsau HTQZr si de conservarea acestei structuri de iteratiile QZ. Pentru a sublinia ınmod imperativ acest lucru, ın continuare vom presupune aceasta reducere efectuatasi vom folosi notatia generica (H,T ) pentru perechea curenta, desi, natural, orice im-plementare ıngrijita utilizeaza suprascrierea perechii (A,B) initiale. De asemenea,pentru situatiile ın care matricea B (i.e. T ) este singulara vom presupune efectuatasi evidentierea valorilor proprii generalizate infinite cu ajutorul algoritmului DZcsau DZr.

Nu vom mai dezvolta aici variantele cu deplasare explicita ci ne vom limita lavariantele profesionale cu deplasare implicita cu pas simplu pentru cazul datelorcomplexe, respectiv cu pas dublu pentru cazul datelor reale.

Fie data perechea (H,T ) ∈ ICn×n × ICn×n ın forma Hessenberg generalizata sipresupunem ca matricea T este nesingulara. Avand ın vedere observatia de mai sus,privitoare la substratul conceptual al iteratiilor QZ, pentru implementarea unui pasQR cu deplasare implicita pentru matriceaG = HT−1 avem nevoie, pentru a utilizateorema 4.15, ca matricea superior Hessenberg G sa fie ireductibila (i.e. cu toateelementele subdiagonale nenule). Este usor de vazut (v. exercitiul 6.8) ca aceastaconditie este ındeplinita daca si numai daca H este ireductibila. In acest context,vom spune ca perechea (H,T ) se afla ın forma Hessenberg generalizata ireductibiladaca H este ireductibila si T este nesingulara.

Pentru a evidentia ”partile” ireductibile 14 ale perechii (H,T ) vom partitionamatriceleH si T ın acord cu zerourile subdiagonale ale matricei superior HessenbergH . Astfel, daca H are un singur zero subdiagonal ın pozitia (k + 1, k), atunciconsiderand partitia

H =

[H11 H12

0 H22

]

, T =

[T11 T120 T22

]

, (6.47)

avem perechile (H11, T11) ∈ ICk×k× ICk×k si (H22, T22) ∈ IC(n−k)×(n−k)× IC(n−k)×(n−k)

ın forma Hessenberg generalizata ireductibila carora li se pot aplica iteratiile QZ ınvarianta cu deplasare implicita. Cum, evident,

λ(H,T ) = λ(H11, T11) ∪ λ(H22, T22) (6.48)

rezulta ca problema initiala a calculului valorilor proprii generalizate se reduce larezolvarea a doua probleme de aceeasi natura, dar de dimensiuni mai mici. Analogse procedeaza cand matricea H are mai multe zerouri subdiagonale. Gestionareaacestor zerouri si aplicarea tehnicii iterative cu deplasare implicita numai partilorireductibile va fi prezentata ın cadrul formei finale a algoritmului QZ.

In cadrul acestui paragraf vom considera data perechea (H,T ), cu T nesingulara,ın forma Hessenberg generalizata ireductibila si vom stabili algoritmul de calcul alperechii succesor al perechii curente din sirulQZ. Vom trata distinct situatia datelorcomplexe si a celor reale.

Reamintim ca ideea de baza a iteratiei QZ consta ıntr-o implementare specificaa iteratiei QR cu deplasare implicita pentru matricea G = HT−1 si anume ın

14 Cazul real se trateaza identic.

Page 481: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 467

constructia sirului de perechi (Hk, Tk) astfel ıncat matricea Gk = HkT−1k sa fie

matricea corespunzatoare a sirului QR pentru matricea G. Principalul avantajde natura numerica al acestei abordari consta ın evitarea inversarii matricei Tk sieliminarea, datorita acestui fapt, a unei posibile instabilitati numerice cauzate de oconditionare necorespunzatoare a lui Tk.

Precizam de la ınceput doua consecinte ale faptului ca iteratiile QZ reprezinta oforma mascata a iteratiilor QR (pentru a caror motivare recomandam consultareacapitolului 4):

a) conservarea formei Hessenberg generalizate pe parcursul procesului iterativ;b) excelente proprietati de convergenta catre forma Schur (reala) generalizata.

A. Un pas QZ pentru perechi complexe

Conform celor prezentate ın capitolul 4, un pas simplu QR cu deplasare implicitapentru matricea Gk = HkT

−1k realizeaza urmatoarea secventa de calcule.

1. Se calculeaza prima coloana q(k)1 a matriceiQk ce defineste transfor-

marea unitara aferenta unui pas simplu QR cu deplasare explicita.

2. Se determina o matrice unitara P astfel ıncat prima coloana a lui

P sa fie q(k)1 , i.e. Pe1 = q

(k)1 .

3. Se calculeaza matricea F = PHGkP (a carei structura nu mai estesuperior Hessenberg).

4. Se aplica algoritmulHQ de reducere a matricei F la forma superiorHessenberg rezultand matricea succesor Gk+1 = Hk+1T

−1k+1.

Fie, pentru simplificarea notatiilor, (Hk, Tk)not= (H,T ) perechea curenta a sirului

QZ, presupusa ireductibila, (Hk+1, Tk+1)not= (H ′, T ′) perechea succesor precum si

G = HT−1, G′ = H ′(T ′)−1. Urmand etapele din schema de calcul de mai sus vom

transfera transformarile matricei G perechii (H,T ). Avem urmatoarele particula-ritati.

1. Expresia deplasarii curente µ = gnn ın raport cu elementele matricelor H siT este

µ =hn,ntn,n

− hn,n−1tn−1,n

tn−1,n−1tn,n. (6.49)

Daca µ 6∈ λ(G), i.e. G − µIn este nesingulara, atunci prima coloana a matricei

de transformare Qknot= Q este

q1 = Qe1 = ρ

h11t11− µ

h21t110...0

, (6.50)

Page 482: metode de calcul numeric matriceal. algoritmi fundamentali

468 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

unde ρ este un factor real de normare. Vom numi vectorul

w =

h11t11− µ

h21t11

, (6.51)

al elementelor nenule ale vectorului q1/ρ vector de deplasare implicita asociat pasuluisimplu QZ.

2. Matricea unitara P de la instructiunea 2 a schemei de calcul de mai sus este,cel mai simplu, o rotatie (complexa), avand structura

P =

[

P 00 In−2

]

(6.52)

cu P ∈ IC2×2 astfel calculata ıncat

PHw = νe1. (6.53)

3. Este usor de vazut ca aplicarea transformarii de asemanare de la punctul 2al schemei de calcul de mai sus este echivalenta cu aplicarea rotatiei PH ambelormatrice din perechea (H,T ). Intr-adevar, daca (H, T ) = (PHH,PHT ), atunciHT−1 = PHHT−1P = PHGP . Alterarea structurii superior Hessenberg a matriceiG ın pozitia (3, 1) se transfera ın alterarea structurala a perechii (H,T ). Concret,datorita structurii (6.52) a lui P , matricea H ramane superior Hessenberg, pe candT are un element nenul suplimentar ın pozitia (2, 1).

4. Refacerea structurii Hessenberg generalizate a perechii (H, T ) printr-o trans-formare unitara de echivalenta poate fi asimilata cu refacerea formei Hessenberg amatricei G. Intr-adevar, daca (H ′, T ′) = (QHHZ, QH TZ) este ın forma Hessenberggeneralizata, atunci G′ = H ′T ′−1

= QHHZZH T−1Q = QHHT−1Q = QHGQ esteo matrice superior Hessenberg (ca produs dintre o matrice superior Hessenberg sio matrice superior triunghiulara). Concret, readucerea perechii alterate la formaHessenberg generalizata se face utilizand algoritmul HTQZ adaptat, pentru asigu-rarea eficientei necesare, la situatia structurala prezenta. Detaliile sunt precizateprin urmatoarea schema de calcul.

HTQZ1

1. Pentru k = 2:n1. Se calculeaza rotatia modificata Zk−1,k astfel ıncat

(TZk−1,k)(k, k−1) = 02. H ← HZk−1,k % Apare un element nenul ın pozitia (k+1, k−1)

a lui H (pentru k < n)3. T ← TZk−1,k % Se anuleaza elementul T (k, k−1)4. Daca k < n atunci

1. Se calculeaza rotatia Qk,k+1 astfel ıncat (QHk,k+1H)(k+1, k−1) = 0

2. H ← QHk,k+1H % Se anuleaza elementul H(k+1, k−1)

3. T ← QHk,k+1T % Apare un element nenul ın pozitia (k+1, k) a lui T

Page 483: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 469

Aceasta schema realizeaza deplasarea elementelor alterante ale structurilor ma-tricelor H si T de-a lungul unor trasee paralele cu diagonala principala pana laeliminarea lor din matricele respective utilizand ın acest scop doua secvente derotatii.

Pentru exemplificare prezentam evolutia structurala a perechii (H,T ) ın cazuln = 4. Ca si ın exemplele anterioare, ıncadrarile marcheaza liniile si coloaneleafectate de operatia curenta.

(H,T )← (PHH,PHT ) = (

× × × ×× × × ×0 × × ×0 0 × ×

,

× × × ×+ × × ×0 0 × ×0 0 0 ×

),

(H,T )← (HZ12, TZ12) = (

× ×× ×+ ×0 0

× ×× ×× ×× ×

,

× ×∅ ×0 00 0

× ×× ×× ×0 ×

),

(H,T )← (QH23H,Q

H23T ) = (

× × × ×× × × ×∅ × × ×0 0 × ×

,

0 × × ×0 × × ×0 + × ×0 0 0 ×

),

(H,T )← (HZ23, HZ23) = (

××00

× ×× ×× ×+ ×

××××

,

×000

× ×× ×∅ ×0 0

××××

),

(H,T )← (QH34H,Q

H34T ) = (

× × × ×× × × ×0 × × ×0 ∅ × ×

,

× × × ×0 × × ×0 0 × ×0 0 + ×

),

(H,T )← (HZ34, TZ34) = (

× ×× ×0 ×0 0

× ×× ×× ×× ×

,

× ×0 ×0 00 0

× ×× ×× ×∅ ×

).

Aplicarea rotatiei PH care asigura prima coloana impusa a matricei de trans-formare corespunzatoare pasului QR curent pentru matricea HT−1 si apoi reface-rea structurii Hessenberg generalizate cu ajutorul variantei adaptate a algoritmului

Page 484: metode de calcul numeric matriceal. algoritmi fundamentali

470 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

HTQZ, data de schema de calcul de mai sus, conduc la obtinerea perechii succesor

H ← H ′= QHn−1,n · · ·QH

23PHHZ12Z23 · · ·Zn−1,n,

T ← T ′= QHn−1,n · · ·QH

23PH TZ12Z23 · · ·Zn−1,n,

(6.54)

din sirul QZ. Perechea (H ′, T ′) suprascrie perechea (H,T ), i.e. toate calculele afe-rente unui pas simplu QZ cu deplasare implicita se desfasoara pe loc, ın tablourileH si T .

Din motive de organizare judicioasa a algoritmului QZ si, mai ales, a algo-ritmului de ordonare a formei Schur generalizate (vezi sectiunea 6.4) vom scrie oprocedura distincta pentru calculul vectorului de deplasare implicita.

Algoritmul 6.3 (VD1 – Calculul vectorului de deplasare implicitapentru un pas simplu QZ) (Date o pereche (H,T ) ∈ ICn×n × ICn×n ınforma Hessenberg generalizata cu T nesingulara, algoritmul calculeazavectorul w ∈ IC2 de deplasare implicita pentru un pas simplu QZ.)

1. µ =hn,ntn,n

− hn,n−1tn−1,n

tn−1,n−1tn,n

2. w =

h11t11− µ

h21t11

Comentarii. Sintaxa de apel a acestui algoritm va fi

w = VD1(H,T ),

iar complexitatea sa este, evident, O(1). 3

Cu aceste precizari putem prezenta algoritmul de implementare al unui passimplu QZ cu deplasare implicita. Sunt utilizate proceduri cuprinse ın tabelul 4.3si procedura Gcm, de calcul al unei rotatii modificate, introdusa ın acest capitol.

Algoritmul 6.4 (IT QZ1 - Un pas simplu QZ cu deplasare im-plicita) (Date o pereche (H,T ) ∈ ICn×n × ICn×n ın forma Hessenberggeneralizata ireductibila, matricele unitare Q,Z ∈ ICn×n si vectorul dedeplasare implicita w ∈ IC2, algoritmul suprascrie perechea (H,T ) cuperechea succesor (H ′, T ′) = (QH

k HZk, QHk TZk) din sirul QZ. Optional,

se actualizeaza matricele unitare de transformare Q si Z. Optiunea seexprima cu ajutorul variabilei logice opt de tipul sir de caractere carepoate lua valorile ′da′ sau ′nu′. Daca opt = ′nu′, algoritmul returneazamatricele Q si Z nemodificate.)

1. [w, c, s ] = Gc(w)

2. H(1 :2, :) = Gcs(c, s,H(1 :2, :))

3. T (1 :2, :) = Gcs(c, s, T (1 :2, :))

4. Daca opt = ′da′ atunci1. Q( : , 1:2) = Gcd(Q( : , 1:2), c, s)

Page 485: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 471

5. Pentru k = 2 : n

1. [T (k, k−1 : k), c, s ] = Gcm(T (k, k−1 : k))

2. l = min(k+1, n)

3. H(1 : l, k−1 : k) = Gcd(H(1 : l, k−1 : k), c, s)

4. T (1 : k−1, k−1 : k) = Gcd(T (1 : k−1, k−1 : k), c, s)

5. Daca opt = ′da′ atunci1. Z( : , k−1 : k) = Gcd(Z( : , k−1 : k), c, s)

6. Daca k < n atunci

1. [H(k : k+1, k−1), c, s ] = Gc(H(k : k+1, k−1))2. H(k : k+1, k : n) = Gcs(c, s,H(k : k+1, k : n))

3. T (k : k+1, k : n) = Gcs(c, s, T (k : k+1, k : n))

4. Daca opt = ′da′ atunci1. Q( : , k : k+1) = Gcd(Q( : , k : k+1), c, s)

Comentarii. Vom utiliza urmatoarea sintaxa de apel a algoritmului de mai sus

[H,T,Q, Z ] = IT QZc(H,T,Q, Z,w, opt).

Complexitatea unui pas simplu QZ este O(n2). Concret, pentru executia algoritmu-lui 6.3 sunt necesari Nop ≈ 12n2 flopi fara acumularea transformarilor, N ′

op ≈ 12n2

flopi suplimentari pentru acumularea transformarilor, la care se adauga cele 2(n−1)extrageri de radical. 3

B. Algoritmul QZ pentru matrice complexe

Provenind din adaptarea algoritmului QR algoritmul QZ utilizeaza toate ideileacestuia pentru exploatarea evolutiei structurale a elementelor sirului QZ. Concret,algoritmul QZ pentru matrice complexe se obtine prin iterarea pasului simplu QZ,anularea efectiva a elementelor subdiagonale ale matricei H devenite neglijabile si,pe aceasta baza, reducerea succesiva a dimensiunii problemei pana la obtinerearezultatului dorit.

Pentru deciziile de anulare a elementelor subdiagonale ale matricei H se uti-lizeaza criteriul cunoscut de la algoritmul QR

|hk+1,k| < tol(|hkk|+ |hk+1,k+1|), (6.55)

unde scalarul pozitiv tol defineste nivelul de toleranta si are, uzual, un ordin demarime comparabil cu eroarea de reprezentare din formatul virgula mobila al masiniitinta.

De asemenea, pentru monitorizarea evolutiei structurale a matricelor din sirulQZ, la fiecare iteratie, dupa anularea elementelor subdiagonale care satisfac conditia(6.55), se va determina cel mai mic ıntreg p si cel mai mare ıntreg q astfel ıncatperechea curenta (H,T ) sa aiba structura

H =

H11 H12 H13

0 H22 H23

0 0 H33

pn− p− q q

, T =

T11 T12 T130 T22 T230 0 T33

pn− p− q q

,

(6.56)

Page 486: metode de calcul numeric matriceal. algoritmi fundamentali

472 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

cu perechea (H22, T22) ∈ IC(n−p−q)×(n−p−q)× IC(n−p−q)×(n−p−q) ın forma Hessenberggeneralizata ireductibila si H33, T33 ∈ IRq×q superior triunghiulare. Astfel, iteratiaQZ (complexa) se va aplica, de fapt, numai perechii (H22, T22)

(H22, T22)← (H ′22, T

′22) = (QH

22H22Z22, QH22T22Z22), (6.57)

echivalenta cu aplicarea asupra perechii de matrice (H,T ) a transformarii de echi-valenta unitare

Q = diag(Ip, Q22, Iq), Z = diag(Ip, Z22, Iq). (6.58)

Aceasta transformare afecteaza celelalte blocuri ale matricelor H , T din (6.56) ınfelul urmator:

H ′ =

H11 H12Z22 H13

0 QH22H22Z22 QH

22H23

0 0 H33

, T ′ =

T11 T12Z22 T13

0 QH22T22Z22 QH

22T23

0 0 T33

.

(6.59)Algoritmul QZ se termina ın momentul ın care se anuleaza toate elementele

subdiagonale ale matricei H , i.e. q devine n − 1. Utilizand, pentru claritate, sin-taxele de apel mentionate ale algoritmilor 6.1–6.4, algoritmul QZ cu pas simplu, cudeplasare implicita, se scrie astfel.

Algoritmul 6.5 (QZ1 – Algoritmul QZ cu pasi simpli si deplasariimplicite) (Date un fascicol matriceal definit de perechea (A,B)∈ICn×n××ICn×n, matricele unitare Q,Z ∈ ICn×n si un nivel de toleranta tolpentru anularea elementelor subdiagonale, algoritmul calculeaza formaSchur generalizata (A,B)← (S, T )=(QHAZ,QHBZ) a perechii (A,B).Toate calculele se efectueaza pe loc, ın locatiile de memorie ale tablouri-lor A si B. Optional, se acumuleaza transformarile prin actualizareamatricelor Q si Z. Optiunea se exprima cu ajutorul variabilei logice optde tipul sir de caractere care poate lua valorile ′da′ sau ′nu′. Daca nuse doreste acumularea, matricele Q si Z se returneaza nemodificate.)

1. % Reducerea la forma Hessenberg generalizata

1. [A,B,Q,Z ] =HTQZc(A,B,Q,Z, opt)

2. % Deplasarea zerourilor diagonale ale matricei B si evidentiereavalorilor proprii infinite.

1. [A,B,Q,Z ] =DZc(A,B,Q,Z, opt)

3. % Faza iterativa

1. p = 0, q = 0, cont it = 0

2. Cat timp q < n

1. % Anularea elementelor subdiagonale neglijabilePentru i = p+ 1 : n− q − 1

1. Daca |ai+1,i| ≤ tol(|aii|+ |ai+1,i+1|) atunci ai+1,i = 0

Page 487: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 473

2. % Determinarea lui qCat timp an−q,n−q−1 = 01. q ← q + 12. cont it = 03. % Terminarea algoritmuluiDaca q = n− 1 atunci return.

3. % Determinarea lui p

1. p = n− q − 1

2. Cat timp ap+1,p 6= 01. p← p− 12. Daca p = 0 atunci break

4. % Iteratia curenta

1. k = p+1, l = n−q2. w = VD1(A(k : l, k : l), B(k : l, k : l))

3. [A(k : l, k : l), B(k : l, k : l), Qc, Zc ] =IT QZc(A(k : l, k : l), B(k : l, k : l), Il−p, Il−p, w, opt)

4. Daca q > 0 atunci

1. A(k : l, l+1:n) = QcA(k : l, l+1:n)2. B(k : l, l+1:n) = QcB(k : l, l+1:n)

5. Daca p > 0 atunci

1. A(1 :p, k : l) = A(1 :p, k : l, )Zc

2. B(1 :p, k : l) = B(1 :p, k : l)Zc

5. % Acumularea transformarilor

1. Daca opt=’da’ atunci

1. Q( : , k : l) = Q( : , k : l)Qc

2. Z( : , k : l) = Z( : , k : l)Zc

6. cont it← cont it+ 1

7. Daca cont it > 30 atunci

1. Tipareste ’S-au atins 30 de iteratii fara sa sepoata anula un element subdiagonal.Este posibil ca pentru aceste datealgoritmul QZ sa nu fie convergent.’

2. Return

Comentarii. In aspectele sale esentiale, algoritmul de mai sus sta la baza tuturorprogramelor profesionale de calcul al valorilor proprii generalizate ale unui fascicolmatriceal complex. Utilizarea lui pentru calculul formei Schur generalizate a unuifascicol real este posibila 15, dar este mai putin eficienta ın raport cu varianta specialelaborata pentru acest caz si prezentata mai jos.

15 Pentru probleme de mica dimensiune diferenta de eficienta nu este decisiva astfel ca acestalgoritm poate fi folosit cu succes. Atragem ınsa atentia ca procedura Gc de calcul a unei rotatiicomplexe cu relatiile (6.42), aplicata unui vector real, calculeaza de fapt o rotatie reala astfel ıncat,pentru date reale, acest algoritm va lucra exclusiv cu numere reale privite ca numere complexesi nu va fi capabil sa reduca perechile de blocuri diagonale 2 × 2. Pentru a depasi acest impasse poate proceda, de exemplu, la identificarea situatiei si monitorizarea blocurilor diagonale ca ınalgoritmul special destinat cazului real (vezi mai departe).

Page 488: metode de calcul numeric matriceal. algoritmi fundamentali

474 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Sintaxa de apel este

[S, T,Q, Z] = QZ1(A,B,Q,Z, tol, opt),

perechea (S, T ) ın FSG putand suprascrie (intern) perechea (A,B).La fel ca ın cazul algoritmului QR, exista date de intrare pentru care algoritmul

nu este convergent, desi acest lucru se ıntampla extrem de rar ın practica. Aici,dupa 30 de iteratii fara progresul parametrului structural q se declara esecul desi maiexista sanse de convergenta printr-o modificare empirica a vectorului de deplasare(v. cap. 4).

Printre rafinarile posibile care nu au fost incluse este optiunea de a fi calcu-lata numai una din matricele de transformare (de obicei Z, ale carei prime coloanereprezinta o baza pentru spatiul de deflatie asociat primelor valori proprii general-izate, vezi sectiunea urmatoare). De asemenea, din ratiuni de claritate a prezentarii,s-a preferat acumularea transformarilor ın cadrul unei iteratii ın matricele de trans-formare ”curente” Qc si Zc si apoi aplicarea lor celorlalte blocuri afectate si ma-tricelor de transformare Q si Z sub forma unor ınmultiri cu matrice dense fapt carepoate conduce la o anumita reducere (totusi putin semnificativa) a eficientei.

Datorita procesului iterativ, complexitatea algoritmului depinde de datele deintrare. Viteza de convergenta a procesului iterativ este similara cu cea a algorit-mului QR. Evaluarile experimentale converg catre aprecierea ca, ın medie, douaiteratii sunt suficiente pentru a pune ın evidenta o valoare proprie generalizata. Inaceasta situatie, pentru fascicole de ordin superior (e.g. n > 100) se poate apreciaca algoritmul QZ are o complexitate O(n3). Evaluari mai fine sunt date la variantareala.

Utilizarea exclusiva a transformarilor unitare confera algoritmului QZ1 o foartebuna stabilitate numerica. Se arata ca forma Schur generalizata (S, T ) calculataeste forma Schur generalizata exacta a unei perechi foarte apropiate de perechea(A,B) data. Concret, avem

S = QH(A+ E)Z, T = QH(B + F )Z,

unde Q, Z sunt matrice riguros unitare, iar matricele de perturbatie E si F satisfacconditiile

‖E‖2 ≈ εM‖A‖2, ‖F‖2 ≈ εM‖B‖2,cu ǫ precizia masinii tinta. Pentru consideratii suplimentare vezi sectiunea 6.5. 3

C. Un pas QZ pentru matrice reale

In cazul perechilor (H,T ) reale un spor important de eficienta se obtine utilizand oaritmetica reala care impune utilizarea une strategii a pasilor dubli. In conformitatecu cele aratate ın capitolul 4, un pas dublu QR cu deplasare implicita pentrumatricea Gk = HkT

−1k consta ın efectuarea urmatoarelor operatii:

1. Se calculeaza prima coloana q(k)1 a matricei Qk ce defineste trans-

formarea ortogonala aferenta unui pas dublu QR cu deplasare ex-plicita.

Page 489: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 475

2. Se determina o matrice ortogonala U astfel ıncat prima coloana a

lui UT sa fie q(k)1 , i.e. UT e1 = q

(k)1 .

3. Se calculeaza matricea F = UTGkU (a carei structura nu mai estesuperior Hessenberg).

4. Se aplica algoritmulHQ de reducere a matricei F la forma superiorHessenberg rezultand matricea succesor Gk+2 = Hk+2T

−1k+2.

Daca matricea superior Hessenberg Gk este ireductibila, atunci, conform teo-remei 4.9, rezultatul Gk+2 al aplicarii schemei de calcul de mai sus va fi esentialacelasi cu cel dat de un pas dublu QR cu deplasare explicita. Notam si aici,

pentru simplificare, (Hk, Tk)not= (H,T ) perechea curenta a sirului QZ, presupusa

ireductibila, (Hk+2, Tk+2)not= (H ′, T ′) perechea succesor ın cazul utilizarii pasului

dublu precum si G = HT−1, G′ = H ′(T ′)−1. Urmand etapele din schema de cal-

cul de mai sus vom transfera transformarile matricei G perechii (H,T ). Mai mult,exploatand corespunzator avantajele structurale date de forma Hessenberg genera-lizata a perechilor initiala si finala, complexitatea pasului dublu va fi O(n2), ceea ceın economia ıntregului algoritm este esential, reducand complexitatea algoritmuluiQZ cu deplasare implicita la cea a variantei cu deplasare explicita si asigurand,ın acelasi timp, posibilitatea utilizarii exclusive a aritmeticii reale. Detaliile suntprezentate ın continuare.

1. Daca notam cu µ1 si µ2 valorile proprii (posibil complexe) ale matriceiG(n−1 : n, n−1 : n), atunci ın expresia primei coloane a matricei de transformare

Qknot= Q acestea apar sub forma sumei si produsului (ıntotdeauna reale). Tinandu-

se seama de structura Hessenberg a matricelor G si H , vom calcula elementeleblocului matriceal X = G(n− 1 : n, n− 2 : n) ∈ IR2×3 ca solutie a sistemuluitriunghiular

XT (n−2 : n, n−2 : n) = H(n−1 : n, n−2 : n),

care se rezolva recurent, pe linii (exercitiu pentru cititor)

x11 =hn−1,n−2

tn−2,n−2

x12 =hn−1,n−1 − tn−2,n−1x11

tn−1,n−1

x13 =hn−1,n − tn−2,nx11 − tn−1,nx12

tn,n

x21 = 0

x22 =hn,n−1

tn−1,n−1

x23 =hnn − tn−1,nx22

tn,n,

(6.60)

dupa care valorile cautate ale sumei si produsului se obtin imediat

σdef= µ1 + µ2 = x12 + x23,

πdef= µ1µ2 = x12x23 − x13x22.

(6.61)

Page 490: metode de calcul numeric matriceal. algoritmi fundamentali

476 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Daca µ1, µ2 6∈ λ(G), i.e. matricea M = (G − µ1In)(G − µ2In) = G2 − σG + πIn

este nesingulara, atunci prima coloana a matricei de transformare Qknot= Q (ınca

un exercitiu pentru cititor) este

q1 = Qe1 = ρ

h11t11

(h11t11− h21t12t11t22

− σ) + h21h12t11t22

+ π

h21t11

(h11t11

+h22t22− h21t12t11t22

− σ)

h21h32t11t220...0

, (6.62)

unde ρ este un factor real de normare. Elementele nenule w = q1(1 : 3)/ρ ale luiq1/ρ, i.e.

w =

h11t11

(h11t11− h21t12t11t22

− σ) + h21h12t11t22

+ π

h21t11

(h11t11

+h22t22− h21t12t11t22

− σ)

h21h32t11t22

, (6.63)

definesc vectorul de deplasare implicita asociat pasului dublu QZ.

2. Matricea ortogonala U de la instructiunea 2 a schemei de calcul de mai suseste, cel mai recomandat, un reflector (real) avand structura

U =

[

U 00 In−3

]

, (6.64)

cu U ∈ IR3×3 reflectorul care asigura

Uw = νe1, ν ∈ IR. (6.65)

3. Se constata si aici imediat ca aplicarea transformarii de asemanare de lapunctul 3 al schemei de calcul de mai sus este echivalenta cu aplicarea trans-formarii U = UT ambelor matrice din perechea (H,T ). Intr-adevar, daca (H, T ) == (UTH,UTT ), atunci HT−1 = UTHT−1U = UTGU = G. Alterarea structuriisuperior Hessenberg a matricei G ın pozitiile (3, 1), (4, 1), (4, 2) se transfera ın al-terarea structurala a perechii (H,T ). Concret, datorita structurii (6.64) a lui U ,structura matricei H va diferi de o structura superior Hessenberg prin elementulnenul din pozitia (3, 1) iar structura matricei T va diferi de o structura superiortriunghiulara prin elementele nenule din pozitiile (2, 1), (3, 1) si (3, 2).

4. Restaurarea structurii Hessenberg generalizate a perechii (H, T ) printr-otransformare ortogonala de echivalenta poate fi asimilata cu refacerea formei Hessen-berg a matricei G. Motivatia este aceeasi cu cea de la iteratia QZ complexa. Con-cret, readucerea perechii alterate la forma Hessenberg generalizata se face cu algo-ritmul HTQZ adaptat, pentru asigurarea eficientei necesare, la situatia structurala

Page 491: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 477

actuala. Pentru adaptarea algoritmului HTQZ vom utiliza reflectori ”modificati”pe care ıi definim prin expresia cunoscuta

V = In −vvT

β, β =

1

2‖v‖2,

unde vectorul v se calculeaza astfel ıncat sa se asigure anularea primelor n− 1elemente ale unui vector a ∈ IRn dat 16, i.e. (V a)(1 : n− 1) = 0 (si, ıntrucatreflectorul este o matrice simetrica, (aTV )(1 : n−1) = 0). Conform celor prezentateın capitolul 3, nu este greu de vazut ca elementele definitorii ale acestui reflector sisuprascrierea vectorului a cu V a se calculeaza economic cu schema:

HM 1. σ = sgn(an)‖a‖2. vi = ai, i = 1 : n−13. vn = an + σ4. β = anσ5. ai = 0, i = 1 : n−16. an = −σ

Vom introduce o procedura cu sintaxa

[ d, v, β ] = Hrm(a)

pentru calculul reflectorilor modificati de ordin dat de dimensiunea vectorului asi calculul vectorului d = V a sau d = aV dupa cum vectorul argument este unvector coloana sau un vector linie. Suprascrierea (interna) a lui a cu d se face cuapelul [a, v, β] = Hrm(a). Procedurile de premultiplicare si postmultiplicare a uneimatrice cu un reflector modificat sunt identice cu cele care opereaza cu reflectoriinemodificati, i.e. vom folosi procedurile Hrs si Hrd din tabelul 4.3. De asemenea,daca U ∈ IRp×p este un reflector (modificat) vom nota

U(p)k =

Ik−1 0 00 U 00 0 In−p−k+1

care este, la randul sau, un reflector de ordinul n pe care ıl vom numi reflector(modificat) de ordin n si indici (k, p).

Cu aceste precizari putem prezenta detaliile adaptarii algoritmului HTQZ prinurmatoarea schema de calcul.

HTQZ2

1. Pentru k = 1 : n−31. Se calculeaza reflectorul modificat Z

(3)k astfel ıncat

(TZ(3)k )(k+2, k : k+1)=0

2. H ← HZ(3)k % Apar doua elemente nenule ın pozitiile (k+3, k : k+1)

16 Prin reflectori ”nemodificati” vom ıntelege pe parcursul acestui capitol reflectorii care aplicatiunui vector n-dimensional anuleaza ultimele n−1 componente ale acestuia.

Page 492: metode de calcul numeric matriceal. algoritmi fundamentali

478 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

3. T ← TZ(3)k % Se anuleaza elementele T (k+2, k : k+1)

4. Se calculeaza reflectorul modificat Z(2)k astfel ıncat (TZ

(2)k )(k+1, k)=0

5. H ← HZ(2)k

6. T ← TZ(2)k % Se anuleaza elementul T (k+1, k)

7. Se calculeaza reflectorul Q(3)k+1 astfel ıncat (Q

(3)k+1H)(k+2 : k+3, k) = 0

8. H ← Q(3)k+1H % Se anuleaza elementele H(k+2 : k+3, k)

9. T ← Q(3)k+1T % Apar elemente nenule ın pozitiile (k+3, k+1)

si (k+3, k+1 : k+2)2. % Ultimele transformari

1. Se calculeaza reflectorul modificat Z(3)n−2 astfel ıncat

(TZ(3)n−2)(n, n−2 : n−1) = 0

2. H ← HZ(3)n−2

3. T ← TZ(3)n−2 % Se anuleaza elementele T (n, n−2 : n−1)

4. Se calculeaza reflectorul modificat Z(2)n−2 astfel ıncat (TZ

(2)n−2)(n−1, n−2) = 0

5. H ← HZ(2)n−2

6. T ← TZ(2)n−2 % Se anuleaza elementul T (n−1, n−2)

7. Se calculeaza reflectorul Q(2)n−1 astfel ıncat (Q

(2)n−1H)(n, n−2) = 0

8. H ← Q(2)n−1H % Se anuleaza elementul H(n, n−2)

9. T ← Q(2)n−1T % Apare un element nenul ın pozitia (n, n−1) a lui T

10. Se calculeaza reflectorul modificat Z(2)n−1 astfel ıncat (TZ

(2)n−2)(n, n−1)=0

11. H ← HZ(2)n−1

12. T ← TZ(2)n−1 % Se anuleaza elementul T (n, n−1)

Aceasta schema realizeaza deplasarea elementelor alterante ale structurilor ma-tricelor H si T de-a lungul unor trasee paralele cu diagonala principala pana laeliminarea lor din matricele respective, utilizand ın acest scop secvente de reflec-tori.

Pentru exemplificare prezentam prima parte a evolutiei structurale a perechii(H,T ) ın cazul n = 5.

(H,T )← (UH,UT ) = (

× × × × ×× × × × ×+ × × × ×0 0 × × ×0 0 0 × ×

,

× × × × ×+ × × × ×+ + × × ×0 0 0 × ×0 0 0 0 ×

),

(H,T )←(HZ(3)1 , TZ

(3)1 )=(

× × ×× × ×+ × ×+ + ×0 0 0

× ×× ×× ×× ×× ×

,

× × ×+ × ×∅ ∅ ×0 0 00 0 0

× ×× ×× ×× ×0 ×

),

Page 493: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 479

(H,T )←(HZ(2)1 , TZ

(2)1 )=(

× ×× ×+ ×+ +0 0

× × ×× × ×× × ×× × ×× × ×0 × ×

,

× ×∅ ×0 00 00 0

× × ×× × ×× × ×0 × ×0 0 ×

),

(H,T )←(Q(3)2 H,Q

(3)2 T )=(

× × × × ×× × × × ×∅ × × × ×∅ + × × ×0 0 0 × ×

,

× × × × ×0 × × × ×0 + × × ×0 + + × ×0 0 0 0 ×

),

etc. Se observa ca s-a obtinut deplasarea cu o pozitie spre dreapta jos a celor douagrupuri de elemente alterante, proces care poate fi continuat pana la eliminarea lor.

Aplicarea reflectorului U = UT care asigura prima coloana impusa a matriceide transformare corespunzatoare pasului QR curent pentru matricea HT−1 si apoirefacerea structurii Hessenberg generalizate cu ajutorul variantei adaptate a algo-ritmului HTQZ, data de schema de calcul de mai sus, conduc la obtinerea perechiisuccesor

H ← H ′= Q(2)n−1Q

(3)n−2 · · ·Q

(3)1 UHZ

(3)1 Z

(2)1 · · ·Z

(3)n−2Z

(2)n−2Z

(2)n−1

T ← T ′= Q(2)n−1Q

(3)n−2 · · ·Q

(3)1 UTZ

(3)1 Z

(2)1 · · ·Z

(3)n−2Z

(2)n−2Z

(2)n−1

(6.66)

din sirulQZ. Prima coloana a matricei U nu este afectata de multiplicarea la dreapta

cu matricea Q(3)1 · · ·Q

(3)n−2Q

(2)n−1.

Tinand seama de (6.61), (6.63) calculul economic al vectorului de deplasareimplicita se poate face cu urmatorul algoritm.

Algoritmul 6.6 (VD2 – Calculul vectorului de deplasare implicitapentru un pas dublu QZ) (Date o pereche (H,T ) ∈ IRn×n × IRn×n ınforma Hessenberg generalizata cu T nesingulara algoritmul calculeazavectorul w ∈ R3 de deplasare implicita pentru un pas dublu QZ.)

1. Se calculeaza σ si π cu relatia (6.61).

2. α =h11t11

, β =h22t22

, γ =h21t11

, δ =γ

t22, η = α− δt12 − σ

3. w =

αη + δh12 + πγ(β + η)δh32

Comentarii. Sintaxa de apel a a acestui algoritm va fi

w = VD2(H,T ),

iar complexitatea sa ramane, evident, O(1). 3

Page 494: metode de calcul numeric matriceal. algoritmi fundamentali

480 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Suntem ın masura sa prezentam acum algoritmul formal de implementare aunui pas dublu QZ cu deplasare implicita. Sunt utilizate procedurile de calculal reflectorilor cuprinse ın tabelul 4.3, la care se adauga procedurile introduse ınaceasta sectiune.

Algoritmul 6.7 (IT QZ2 – Un pas dublu QZ cu deplasare im-plicita) (Date o pereche (H,T ) ∈ IRn×n × IRn×n ın forma Hessen-berg generalizata ireductibila, vectorul de deplasare implicita w ∈ IR3

si matricele ortogonale Q,Z ∈ IRn×n, algoritmul suprascrie perechea(H,T ) cu perechea succesor (H ′, T ′) = (QT

kHZk, QTk TZk) din sirul QZ.

Optional, se actualizeaza matricele de transformare Q si Z. Optiunease exprima cu ajutorul variabilei logice opt de tipul sir de caractere carepoate lua valorile ′da′ sau ′nu′. Daca opt = ′nu′, algoritmul returneazamatricele Q si Z nemodificate.)

1. [w, u, β ] = Hr(w)

2. H(1 :3, :) = Hrs(u, β,H(1 :3, :))

3. T (1 :3, :) = Hrs(u, β, T (1 :3, :))

4. Daca opt = ′da′ atunci Q( : , 1:3) = Hrd(Q( : , 1:3), u, β)

5. % Refacerea structurii superior Hessenberg generalizatePentru k = 1 : n−31. [T (k+2, k : k+2), u, β ] = Hrm(T (k+2, k : k+2))

2. H(1 : k+3, k : k+2) = Hrd(H(1 : k+3, k : k+2), u, β)

3. T (1 : k+1, k : k+2) = Hrd(T (1 : k+1, k : k+2), u, β)

4. Daca opt = ′da′ atunciZ( : , k : k+2) = Hrd(Z( : , k : k+2), u, β)

5. [T (k+1, k : k+1), u, β ] = Hrm(T (k+1, k : k+1))

6. H(1 : k+3, k : k+1) = Hrd(H(1 : k+3, k : k+1), u, β)

7. T (1 : k, k : k+1) = Hrd(T (1 : k, k : k+1), u, β)

8. Daca opt = ′da′ atunciZ( : , k : k+1) = Hrd(Z( : , k : k+1), u, β)

9. [H(k+1 : k+3, k), u, β ] = Hr(H(k+1 : k+3, k))

10. H(k+1 : k+3, k+1 : n) = Hrs(u, β,H(k+1 : k+3, k+1 : n))

11. T (k+1 : k+3, k+1 : n) = Hrs(u, β, T (k+1 : k+3, k+1 : n))

12. Daca opt = ′da′ atunciQ( : , k+1 : k+3) = Hrd(Q( : , k+1 : k+3), u, β)

6. % Ultimele transformari

1. [T (n, n−2 : n), u, β ] = Hrm(T (n, n−2 : n))2. H( : , n−2 : n) = Hrd(H( : , n−2 : n), u, β)

3. T (1 : n−1, n−2 : n) = Hrd(T (1 : n−1, n−2 : n), u, β)4. Daca opt = ′da′ atunciZ( : , n−2 : n) = Hrd(Z( : , n−2 : n), u, β)

5. [T (n−1, n−2 : n−1), u, β ] = Hrm(T (n−1, n−2 : n−1))

Page 495: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 481

6. H( : , n−2 : n−1) = Hrd(H( : , n−2 : n−1), u, β)7. T (1 : n−2, n−2 : n−1) = Hrd(T (1 : n−2, n−2 : n−1), u, β)8. Daca opt = ′da′ atunciZ( : , n−2 : n−1) = Hrd(Z( : , n−2 : n−1), u, β)

9. [H(n−1 : n, n−2), u, β ] = Hr(H(n−1 : n, n−2))10. H(n−1 : n, n−1 : n) = Hrs(u, β,H(n−1 : n, n−1 : n))

11. T (n−1 : n, n−1 : n) = Hrs(u, β, T (n−1 : n, n−1 : n))

12. Daca opt = ′da′ atunciQ( : , n−1 : n) = Hrd(Q( : , n−1 : n), u, β)

13. [T (n, n−1 : n), u, β ] = Hrm(T (n, n−1 : n))14. H( : , n−1 : n) = Hrd(H( : , n−1 : n), u, β)

15. T (1 : n−1, n−1 : n) = Hrd(T (1 : n−1, n−1 : n), u, β)16. Daca opt = ′da′ atunci

Z( : , n−1 : n) = Hrd(Z( : , n−1 : n), u, β)

Comentarii. Sintaxa de apel a algoritmului de mai sus va fi

[H,T,Q, Z ] = IT QZ2(H,T,Q, Z,w, opt).

Complexitatea unui pas dubluQZ ın implementarea de mai sus este O(n2). Concret,pentru executia algoritmului 6.7 sunt necesari Nop ≈ 32n2 flopi fara acumulareatransformarilor, N ′

op ≈ 20n2 pentru calculul matricei Z, N ′′op ≈ 12n2 pentru calculul

matricei Q, la care se adauga cele 2(n− 1) extrageri de radical. 3

D. Algoritmul QZ pentru matrice reale

Algoritmul QZ pentru matrice reale reproduce structura algoritmului omonim pen-tru matrice complexe cu urmatoarele aspecte specifice:

a) ın faza iterativa monitorizarea structurii matricei H are loc cu evidentiereablocurilor diagonale 2× 2;

b) faza iterativa a algoritmului QZ se termina ın momentul ın care ordinulsubmatricii H22 scade la cel mult 2, i.e. q devine mai mare decat n− 3.

c) dupa terminarea fazei iterative, algoritmul se completeaza cu reducerea laforma superior triunghiulara a perechilor de blocuri diagonale 2 × 2 care au valoriproprii generalizate reale.

Rezolvarea problemelor ridicate de primele doua aspecte este imediata. In ceeace priveste punctul c), triangularizarea perechilor de blocuri diagonale 2×2 cu valoriproprii reale se face ın felul urmator.

Fie perechea (H, T ) ∈ IR2×2 × IR2×2 cu h21 6= 0 si valorile proprii generalizatereale λ1 si λ2. Atunci

v =

[λ1 t22 − h22

h21

]

(6.67)

este un vector propriu generalizat asociat lui λ1, i.e. H v = λ1T v si S = Im veste un subspatiu de deflatie al fascicolului (H, T ). Matricele Q si Z care definesc

Page 496: metode de calcul numeric matriceal. algoritmi fundamentali

482 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

transformarea ortogonala de echivalenta ce aduce perechea (H, T ) la forma Schurgeneralizata se pot construi procedand ca ın demonstratia propozitiei 6.2. Concret,(vezi exercitiul 6.9), Z este reflectorul care asigura (Zv)(2) = 0, iar apoi Q estereflectorul care asigura (QT (T Z(:, 1))(2) = 0.

Daca blocul diagonal ce trebuie triangularizat se afla pe liniile si coloanele k sik+1, atunci rezultatul dorit se obtine aplicand perechii (H,T ), de ordinul n, trans-formarea ortogonala de echivalenta definita de matricele Q = diag(Ik−1, Q, In−k−1)si diag(Ik−1, Z, In−k−1).

In vederea unei scrieri mai concise a algoritmuluiQZ prezentam aici un algoritmpreliminar care proceseaza perechea bloc-diagonala 2× 2 aflata ın pozitia (k, k+1).

Algoritmul 6.8 (TRID2g -Triangularizarea unei perechi de blocuridiagonale 2× 2) (Date o pereche (S, T ) ∈ IRn×n× IRn×n, cu S ın formacvasi-superior triunghiulara si T superior triunghiulara nesingulara siıntregul k ∈ 1:n−1, algoritmul testeaza daca perechea de blocuri diago-nale (S(k : k+1, k : k+1), T (k : k+1, k : k+1)) are valorile proprii gene-ralizate reale si, ın caz afirmativ, calculeaza triangularizarea ortogonalaa perechii bloc-diagonale vizate, rezultatul suprascriind perechea (S, T ).De asemenea, algoritmul returneaza elementele definitorii (uQ, βQ) si

(uZ , βZ) ale celor doi reflectori calculati. In caz contrar perechea (S, T )ramane nemodificata si, pentru identificarea acestei situatii, se retur-neaza βZ = 0.)

1. βZ = 0

2. α = tk,ktk+1,k+1, β = sk,ktk+1,k+1 + sk+1,k+1tk,k − sk+1,ktk,k+1,γ = sk,ksk+1,k+1 − sk,k+1sk+1,k, ∆ = β2 − 4αγ

3. Daca ∆ ≥ 0 atunci

1. λ1 = (β + sgn(β)√∆)/2α

2. v =

[λ1tk+1,k+1 − sk+1,k+1

sk+1,k

]

3. [ v, uZ , βZ ] = Hr(v)

4. S(1 : k+1, k :k+1) = Hrd(S(1 : k+1, k :k+1), uZ, βZ)

5. T (1 : k+1, k :k+1) = Hrd(T (1 : k+1, k :k+1), uZ, βZ)

6. [T (k :k+1, k), uQ, βQ ] = Hr(T (k :k+1, k))

7. S(k :k+1, k :n) = Hrs(uQ, βQ, S(k : k+1, k :n))

8. S(k+1, k) = 0 % zeroul calculat se seteaza la un zero efectiv

9. T (k :k+1, k+1:n) = Hrs(uQ, βQ, T (k : k+1, k+1:n))

Comentarii. Sintaxa de apel a acestui algoritm va fi

[S, T, uQ, βQ, uZ , βZ ] = TRID2g(S, T, k),

iar complexitatea sa este O(n). 3

Cu aceste precizari si tinand seama de aspectele comune cu cazul complex putemscrie algoritmul QZ standard cu pas dublu, cu deplasare implicita, pentru calcululformei Schur reale generalizate.

Page 497: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 483

Algoritmul 6.9 (QZ2 – Algoritmul QZ cu pasi dubli si deplasariimplicite) (Date un fascicol matriceal definit de perechea (A,B)∈IRn×n××IRn×n, matricele ortogonale Q,Z ∈ IRn×n si un nivel de toleranta tolpentru anularea elementelor subdiagonale, algoritmul calculeaza formaSchur reala generalizata (A,B) ← (S, T ) = (QTAZ, QTBZ) a perechii(A,B). Toate calculele se efectueaza pe loc, ın locatiile de memorieale tablourilor A si B. Optional, se acumuleza transformarile prin ac-tualizarea matricelor Q ← QQ si Z ← ZZ. Optiunea se exprima cuajutorul variabilei logice opt de tipul sir de caractere care poate luavalorile ′da′ sau ′nu′. Daca nu se doreste acumularea transformarilor,matricele Q si Z se returneaza nemodificate.)

1. % Reducerea la forma Hessenberg generalizata

1. [A,B,Q,Z ] =HTQZr(A,B,Q,Z, opt)

2. % Deplasarea zerourilor diagonale ale matricei B si evidentiereavalorilor proprii infinite.

1. [A,B,Q,Z ] =DZr(A,B,Q,Z, opt)

3. % Faza iterativa

1. p = 0, q = 0, cont it = 0.

2. Cat timp q < n

1. % Anularea elementelor subdiagonale neglijabilePentru i = p+ 1 : n− q − 1

1. Daca |ai+1,i| ≤ tol(|aii|+ |ai+1,i+1|) atunci ai+1,i = 0

2. % Determinarea lui q1. continua = ′da′

2. Cat timp continua = ′da′

1. Daca q ≥ n− 2 atunci break

2. Daca an−q,n−q−1 = 0 atunci

1. q ← q + 12. cont it = 0

altfel

1. Daca an−q−1,n−q−2 = 0atunci

1. q ← q + 22. cont it = 0

altfel continua = ′nu′.

3. % Terminarea normala a fazei iterativeDaca q ≥ n− 2 atunci break

4. % Determinarea lui p

1. p = n− q − 1

2. Cat timp ap+1,p 6= 01. p← p− 12. Daca p = 0 atunci break

Page 498: metode de calcul numeric matriceal. algoritmi fundamentali

484 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

5. % Iteratia curenta

1. k = p+1, l = n−q2. w = VD2(A(k : l, k : l), B(k : l, k : l))

3. [A(k : l, k : l), B(k : l, k : l), Qc, Zc ] =IT QZ2(A(k : l, k : l), B(k : l, k : l), Il−p, Il−p, w, opt)

4. 1. Daca q > 0 atunci

1. A(k : l, l+1:n) = QcA(k : l, l+1:n)2. B(k : l, l+1:n) = QcB(k : l, l+1:n)

5. 1. Daca p > 0 atunci

1. A(1 :p, k : l) = A(1 :p, k : l)Zc

2. B(1 :p, k : l) = B(1 :p, k : l)Zc

6. cont it← cont it+ 1

6. Daca opt=’da’ atunci

1. Q( : , k : l) = Q( : , k : l)Qc

2. Z( : , k : l) = Z( : , k : l)Zc

7. % Terminarea prin esec a algoritmului1. Daca cont it > 30atunci

1. Tipareste ’S-au consumat 30 iteratii QZ pentruevidentierea unui bloc diagonal fara a se atingeacest obiectiv. Este posibil ca, pentru aceste datede intrare, algoritmul QZ sa nu fie convergent.’

2. Return

4. % Triangularizarea blocurilor 2 × 2 cu valori proprii generalizatereale

1. k = 1

2. Cat timp k < n

1. Daca ak+1,k = 0 atunci k ← k + 1altfel

1. [A,B, uQ, βQ, uZ , βZ ] =TRID2g(A,B, k)

2. Daca opt=’da’ si βZ 6= 0 atunci

1. Q( : , k :k+1) = Hrd(Q( : , k :k+1), uQ, βQ)2. Z( : , k :k+1) = Hrd(Z( : , k :k+1), uZ , βZ)

3. k ← k + 2

Comentarii. In aspectele sale esentiale, algoritmul de mai sus sta la baza tuturorprogramelor profesionale de calcul al valorilor proprii generalizate ale unui fasci-col matriceal real. Precizarile referitoare la aspectele de organizare a algoritmuluifacute la varianta complexa raman valabile. In acest sens s-au pastrat identificatoriivariabilelor cu aceeasi semnificatie.

Sintaxa de apel este

[S, T,Q, Z] = QZ2(A,B,Q,Z, tol, opt),

Page 499: metode de calcul numeric matriceal. algoritmi fundamentali

6.3. ALGORITMUL QZ 485

perechea (S, T ) ın FSG putand suprascrie (intern) perechea (A,B).La fel ca ın cazul algoritmului QR, exista date de intrare pentru care algoritmul

nu este convergent, desi acest lucru se ıntampla extrem de rar ın practica. Aici, dupa30 de iteratii fara progresul parametrului structural q se declara esecul algoritmuluidesi mai exista sanse de convergenta printr-o modificare empirica a vectorului dedeplasare dupa un numar precizat de iteratii, e.g. 10 sau 20 (v. cap. 4).

Acceptand evaluarea conform careia sunt suficiente, ın medie, doua iteratii pen-tru a pune ın evidenta o valoare proprie generalizata, algoritmul necesita un numarde NA

op = 30n3 flopi fara acumularea transformarilor, NQop = 16n3 flopi suplimentari

pentru calculul lui Q si NZop = 20n3 flopi pentru acumularea lui Z. Putem, deci,

considera ca pentru fascicole de ordin superior (e.g. n > 100) algoritmul QZ are ocomplexitate O(n3).

Si aici, utilizarea exclusiva a transformarilor ortogonale confera algoritmuluiQZo foarte buna stabilitate numerica. Concret, perechea calculata (S, T ) satisface

S = QT (A+ E)Z, T = QT (B + F )Z,

unde Q, Z sunt matrice riguros ortogonale, iar matricele de perturbatie E si Fsatisfac conditiile

‖E‖2 ≈ εM‖A‖2, ‖F‖2 ≈ εM‖B‖2.Pentru consideratii suplimentare vezi sectiunea 6.5. 3

∗ ∗∗

Incheiem acest paragraf cu regretul lipsei de spatiu tipografic pentru prezentareaalgoritmilor de calcul al formei diagonale generalizate a fascicolelor hermitice (ıncazul real, simetrice) pozitiv definite. Pentru introducerea ın problema recomandamrezolvarea exercitiului 6.10, iar pentru detalii si indicatii bibliografice suplimentareconsultarea lucrarii [ VI ].

6.3.4 Calculul vectorilor proprii generalizati

Consideram important sa precizam de la ınceput ca ın multe aplicatii vectorii propriigeneralizati pot fi ınlocuiti cu succes de catre vectorii Schur corespunzatori, i.e. decatre coloanele matricelor de transformare Z si Q.

Daca se doreste totusi determinarea explicita a vectorilor proprii generalizatiacestia pot fi calculati, dupa executia algoritmului QZ corespunzator, ın douamodalitati:

a) prin rezolvarea sistemelor liniare singulare corespunzatoare;b) prin cateva iteratii (teoretic, ıntr-o singura iteratie) ale metodei puterii in-

verse generalizate.Prezentam succint prima varianta pentru cazul complex (pentru cazul real vezi

exercitiul 6.11). Un vector propriu generalizat xk ∈ ICn, asociat valorii proprii ge-neralizate finite λk = skk/tkk este un vector nenul care satisface sistemul singular

Axk = λkBxk. (6.68)

Page 500: metode de calcul numeric matriceal. algoritmi fundamentali

486 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

Tinand seama de faptul ca (A,B) = (QSZH , QTZH), vectorul xk se calculeaza curelatia

xk = Zy, (6.69)

unde y este o solutie nenula a sistemului singular triunghiular

tkkSy = skkTy. (6.70)

Daca λk este o valoare proprie distincta, atunci solutiile nenule ale sistemului (6.70)au structura

y = [ yT α 0 . . . 0 ]T, y ∈ ICk−1, (6.71)

unde α este un scalar nenul altfel arbitrar, e.g. α = 1. Cu aceasta alegere a lui αdin (6.70) rezulta ca y este solutia sistemului triunghiular nesingular

(tkkS(1 : k−1, 1 : k−1)−skkT (1 : k−1, 1 : k−1))y = skkT (1 : k−1, k)−tkkS(1 : k−1, k).(6.72)

Cu y astfel obtinut vectorul propriu generalizat xk se obtine din (6.69) cu relatia

xk = Z(:, 1 : k−1)y + Z(:, k). (6.73)

In situatia ın care valoarea proprie nu este distincta, calculul se poate proceda fieextinzand ideile din situatia corespunzatoare din cazul calculului vectorilor propriiordinari, fie apeland la o ”grupare” a valorilor proprii generalizate identice printehnici de ordonare care fac obiectul sectiunii urmatoare.

6.4 Forma Schur generalizata ordonata.Calculul subspatiilor de deflatie

Conceptul de subspatiu de deflatie a fost introdus prin definitia 6.2 si folosit pen-tru a demonstra posibilitatea reducerii unei perechi (A,B) ∈ ICn×n × ICn×n, printransformari de echivalenta, la forma Schur generalizata.

Reciproc, fie un fascicol regulat, definit de o pereche (A,B) ∈ ICn×n × ICn×n siforma sa Schur generalizata (S, T ) cu urmatoarele partitii ale matricelor S si T

S = QHAZ =

k︷︸︸︷

n−k︷︸︸︷

[S11 S12

0 S22

] kn− k , T = QHBZ =

k︷︸︸︷

n−k︷︸︸︷

[T11 T120 T22

] kn− k .

(6.74)Fie, de asemenea, partitiile corespondente ale matricelor unitare de transformare

Q =

k︷︸︸︷

n−k︷︸︸︷

[Q1 Q2

], Z =

k︷︸︸︷

n−k︷︸︸︷

[Z1 Z2

]. (6.75)

Daca, acum, consideram S = ImZ1, atunci V1 def= AS = Im(AZ1) = Im(QSZHZ1)

de unde, tinand seama de relatiile (6.74), (6.75), precum si de faptul ca ZH1 Z1 = Ik,

Page 501: metode de calcul numeric matriceal. algoritmi fundamentali

6.4. CALCULUL SUBSPATIILOR DE DEFLATIE 487

ZH2 Z1 = 0, rezulta

V1 = Im([Q1 Q2 ]

[S11 S12

0 S22

] [ZH1

ZH2

]

Z1) = Im(Q1S11) ⊆ ImQ1,

cu egalitate ın ultima relatie daca si numai daca S11 este nesingulara. In acest dinurma caz coloanele lui Q1 formeaza o baza unitara a lui V1. Absolut analog avem

V2 def= BS = Im(BZ1) = Im(QTZHZ1) de unde rezulta

V2 = Im(Q1T11) ⊆ ImQ1,

cu egalitate ın ultima relatie daca si numai daca T11 este nesingulara.In consecinta,

V def= AS +BS = V1 + V2 ⊆ ImQ1. (6.76)

cu egalitate ın ultima relatie daca una din matricele S11 sau T11 este nesingulara.In toate situatiile avem

dimV ≤ dimS (6.77)

ceea ce ınseamna, conform definitiei 6.2, ca S = ImZ1 este un un subspatiu dedeflatie al fascicolului matriceal definit de perechea (A,B), subspatiu pe care ıl aso-ciem, ın mod natural, cu setul de valori proprii generalizate λ(S11, T11) ⊂ λ(A,B).

In cazul real, toate consideratiile de mai sus raman valabile cu singurul amen-dament ca subspatiile de deflatie reale ale unui fascicol real se asociaza ıntotdeaunaunor seturi simetrice de valori proprii generalizate 17 fapt indus de posibilitateaunor partitii de forma (6.74) unde, de data aceasta, S este ın forma Schur reala.

Tinand seama de cele de mai sus, un subspatiu de deflatie al unui fascicol (A,B)este complet definit de un set de valori proprii generalizate, iar calculul sau (i.e.calculul unei baze ortogonale) se reduce, ın definitiv, la obtinerea unei forme Schurgeneralizate (S, T ) = (QHAZ,QHBZ) ın care setul de valori proprii precizat co-incide cu spectrul de valori proprii al subfascicolului lider principal de dimensiunecorespunzatoare. O data obtinuta aceasta forma Schur, baza cautata este data deprimele coloane ale matricei Z. Prin urmare, dupa aplicarea algoritmului QZ siobtinerea unei prime forme Schur, ın care perechile diagonale nu au o ordine pre-determinata, calculul unui subspatiu de deflatie se reduce la ordonarea perechilordiagonale (i.e. aducerea ın primele pozitii diagonale a valorilor proprii vizate), printransformari unitare de echivalenta, si actualizarea matricei de transformare Z.

La fel ca ın cazul valorilor proprii ordinare, mecanismul de ordonare a formeiSchur generalizate se va baza pe procedurile de permutare a doua perechi (deblocuri, ın cazul real) diagonale adiacente.

6.4.1 Ordonarea formei Schur generalizate (complexe)

Vom considera mai ıntai cazul complex. Fie un fascicol matriceal de ordinul doi(S, T ) ∈ IC2×2 × IC2×2 ın forma Schur generalizata cu valorile proprii distincte, i.e.

17 Reamintim ca prin set simetric ıntelegem o multime numerica ın care elementele complexeapar ın perechi complex conjugate.

Page 502: metode de calcul numeric matriceal. algoritmi fundamentali

488 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

s11t22 6= s22t11. Continuand analogia cu problema valorilor proprii ordinare, fiex2 un vector propriu generalizat unitar al fascicolului (S, T ) asociat valorii propriiλ2 = (s22, t22), i.e. un vector care satisface conditiile

t22Sx2 = s22Tx2, x2 6= 0. (6.78)

De asemenea, fie w ∈ IC2 un vector ortogonal cu x2 si matricea unitara de transfor-mare Z = [x2 w ]. Concret, vectorul propriu generalizat din (6.78) are expresia

x2 = ρ y, cu y =

[s22t12 − s12t22s11t22 − s22t11

]

, (6.79)

unde ρ ∈ IR este un factor scalar de normare, iar matricea unitara Z poate fi rotatia(complexa) care realizeaza (ZHy)(2) = 0.

Daca Q ∈ IC2×2 este o matrice unitara astfel ıncat

(QHSZ)(2, 1) = 0 sau (QHTZ)(2, 1) = 0, (6.80)

atunci obtinem (exercitiu pentru cititor)

S′ = QHSZ =

[s22 ×0 s11

]

, T = QHTZ =

[t22 ×0 t11

]

, (6.81)

unde cu × s-au notat elementele lipsite de semnificatie. S-a realizat astfel per-mutarea celor doua valori proprii generalizate. Alegerea uneia din cele doua alter-native de calcul a matricei Q se face din considerente de asigurare a unei stabilitatinumerice maxime a algoritmului de ordonare. In [ VI ] se arata ca decizia trebuieluata ın raport cu modulele elementelor s22 si t22. Daca |s22| ≥ |t22|, atunci Q va firotatia care anuleaza al doilea element al primei coloane a matricei SZ, iar ın cazcontrar rotatia care anuleaza al doilea element al primei coloane a matricei TZ.

Pentru un fascicol de ordinul n, permutarea valorilor proprii adiacente (skk, tkk)si (sk+1,k+1, tk+1,k+1) ale formei Schur generalizate (S, T ) ∈ ICn×n × ICn×n se reali-zeaza folosind transformarea unitara de echivalenta (S′, T ′) = (QHSZ,QHTZ) cu

Q = diag(Ik−1, Q, In−k−1), Z = diag(Ik−1, Z, In−k−1), (6.82)

unde transformarea definita de matricele de ordinul doi Q si Z asigura permutareavalorilor proprii ale perechii (S(k : k + 1, k : k + 1), T (k : k + 1, k : k + 1)).

Rezumand cele prezentate mai sus, rezulta urmatoarea schema de calcul:

PG11 c 1. Daca skktk+1,k+1 6= sk+1,k+1tkk atunci

1. Se calculeaza vectorul y =

[sk+1,k+1tk,k+1 − sk,k+1tk+1,k+1

skktk+1,k+1 − sk+1,k+1tkk

]

2. Se calculeaza rotatia Z12 astfel ıncat (ZH12y)(2) = 0

3. S ← S diag(Ik−1, Z12, In−k−1)4. T ← T diag(Ik−1, Z12, In−k−1)5. Z ← Z diag(Ik−1, Z12, In−k−1)6. Daca |tk+1,k+1| ≥ |sk+1,k+1| atunci y = S(k : k + 1, k)altfel y = T (k : k + 1, k)

Page 503: metode de calcul numeric matriceal. algoritmi fundamentali

6.4. CALCULUL SUBSPATIILOR DE DEFLATIE 489

7. Se calculeaza rotatia Q12 astfel ıncat (QH12y)(2) = 0

8. S ← diag(Ik−1, QH12, In−k−1)S

9. T ← diag(Ik−1, QH12, In−k−1)T

10. Q← Q diag(Ik−1, Q12, In−k−1)

iar algoritmul corespunzator, bazat pe utilizarea procedurilor devenite familiarepentru cititor, este

Algoritmul 6.10 (PG11c – Permutarea a doua valori proprii ge-neralizate adiacente) (Date o pereche (S, T ) ∈ ICn×n × ICn×n ın formaSchur generalizata, matricele unitare Q,Z∈ICn×n si ıntregul k∈1:n−1,algoritmul suprascrie perechea de matrice (S, T ) cu perechea (S′, T ′) == (QHSZ, QHT Z) care realizeaza permutarea valorilor proprii genera-lizate definite de perechile (skk, tkk), (sk+1,k+1, tk+1,k+1) si actualizeazamatricele de transformare Q si Z.)

1. Daca skktk+1,k+1 6= sk+1,k+1tkk atunci

1. y =

[sk+1,k+1tk,k+1 − sk,k+1tk+1,k+1

skktk+1,k+1 − sk+1,k+1tkk

]

2. [ y, c, s ] = Gc(y)

3. S(1 : k + 1, k : k + 1) = Gcd(S(1 : k + 1, k : k + 1), c, s)

4. T (1 : k + 1, k : k + 1) = Gcd(T (1 : k + 1, k : k + 1), c, s)

5. Z(:, k : k + 1) = Gcd(Z(:, k : k + 1), c, s)

6. Daca |tk+1,k+1| ≥ |sk+1,k+1| atunci1. y = S(k : k + 1)

altfel

1. y = T (k : k + 1, k)

7. [ y, c, s ] = Gc(y)

8. S(k : k + 1, k + 1 : n) = Gcs(c, s, S(k : k + 1, k + 1 : n))

9. sk+1,k = 0 % zeroul calculat este setat efectiv

10. T (k : k + 1, k : n) = Gcs(c, s, T (k : k + 1, k : n))

11. tk+1,k = 0 % zeroul calculat este setat efectiv

12. Q(:, k : k + 1) = Gcd(Q(:, k : k + 1, c, s))

Comentarii. Sintaxa de apel a algoritmului de mai sus va fi

[S, T,Q, Z ] = PG11c(S, T,Q, Z, k).

Complexitatea unei permutari a doua valori proprii generalizate vecine este 24nfiind independenta de k. 3

Din momentul ın care dispunem de procedura de permutare a doua valori pro-prii ınvecinate, algoritmul propriu-zis de ordonare a formei Schur generalizate (com-plexe) se reduce, ın esenta, la un algoritm de sortare al unei multimi ordonate bazatpe interschimbarea elementelor adiacente. Procedand ca ın cazul formei Schur or-dinare, prezentam o varianta care dispune valorile proprii ale unei forme Schur

Page 504: metode de calcul numeric matriceal. algoritmi fundamentali

490 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

generalizate (S, T ) ale fascicolului (A,B) ın ordinea impusa de permutarea dataπ = i1, i2, . . . , in ın sensul ca perechea diagonala aflata initial ın pozitia (k, k) vafi plasata ın final ın pozitia (ik, ik) (vezi si comentariul la algoritmul ce urmeaza).Prin actualizarea matricei unitare de transformare Z se calculeaza si baze ortogo-nale pentru subspatiile de deflatie asociate unor grupuri impuse de valori propriigeneralizate. Concret, coloanele matricei actualizate Z(: , 1 : k) formeaza o bazaortogonala a subspatiului de deflatie Sk asociat setului de valori proprii Λk == λi = (sii, tii) | i = 1 : k (ın numerotarea finala). Actualizarea matriceiunitare de transformare Q nu este necesara. Daca se efectueaza totusi, atuncicoloanele matricei actualizate Q(: , 1 :k) formeaza o baza ortogonala a subspatiuluiVk = ASk +BSk ın situatia ın care dimVk = dimSk = k.

Algoritmul 6.11 (FSG ORD – Ordonarea formei Schur genera-lizate (complexe)) (Date o pereche (S, T ) ∈ ICn×n × ICn×n ın formaSchur generalizata, matricele unitare Q,Z ∈ ICn×n si permutarea π == i1, i2, . . . , in, algoritmul suprascrie perechea (S, T ) cu perechea uni-tar echivalenta (S′, T ′) = (QHSZ, QHT Z) care are (s′ik,ik , t

′ik,ik

) == (skk, tkk), k = 1 : n si actualizeaza matricele de transformare Qsi Z.)

1. Pentru k = 1 : (n− 1)

1. muta =’nu’

2. l = k

3. Pentru j = (k + 1) : n

1. Daca ij < il atunci

1. l = j

2. muta=’da’

4. Daca muta =’da’ atunci

1. Pentru j = (l − 1) : −1 : k

1. [S, T,Q, Z ] = PG11c(S, T,Q, Z, j)

2. ij ↔ ij+1

Comentarii. Sintaxa naturala de apel a algoritmului prezentat este

[S, T,Q, Z ] = FSG ORD(S, T,Q, Z, π).

Complexitatea unei ordonari este dictata esential de natura permutarii. Cazurilelimita sunt permutarea identica pentru care nu se face nici o operatie aritmetica siinversiunea pentru care se efectueaza 1

2n(n− 1) apelari ale procedurii PG11c careconduc la o complexitate de O(n3).

Algoritmul de mai sus realizeaza o ordonare totala a perechilor diagonale. Dacase urmareste exclusiv constructia unei baze unitare pentru un subspatiu de deflatiek-dimensional (k < n) este suficienta o ordonare partiala constand ın aducerea, pecaile cele mai ”scurte”, a valorilor proprii generalizate vizate ın primele k pozitii di-agonale. De asemenea, se renunta la actualizarea matricei Q. Propunem cititoruluio astfel de adaptare a algoritmului.

Page 505: metode de calcul numeric matriceal. algoritmi fundamentali

6.4. CALCULUL SUBSPATIILOR DE DEFLATIE 491

De multe ori este mai comod ca ın locul permutarii π sa utilizam permutareainversa σ = π−1 = j1, j2, . . . , jn. In acest caz, algoritmul suprascrie perechea(S, T ) cu perechea unitar echivalenta (S, T )← (S′, T ′) = (QHSZ, QHT Z) care are(s′kk, t

′kk) = (sjk,jk , tjk,jk) si o varianta a sa arata astfel.

1. Pentru k = 1 : n− 1

1. Daca k 6= jk atunci

1. Pentru i = (jk − 1) : −1 : k

1. [S, T,Q, Z ] = PG11c(S, T,Q, Z, i)

2. Pentru i = (k + 1) : n

1. Daca ji < jk atunci ji = ji + 1.

Dupa executia acestui algoritm coloanele matricei actualizate Z(: , 1 : k) formeazao baza ortogonala a subspatiului de deflatie Sk asociat setului de valori propriiΛk = λi = (sii, tii) | i ∈ j1, j2, . . . , jk (ın numerotarea initiala). 3

6.4.2 Ordonarea formei Schur reale generalizate

In cazul real forma Schur generalizata (S, T ) ∈ IRn×n × IRn×n a fascicolului definitde (A,B) ∈ IRn×n × IRn×n are matricea S ın forma Schur reala, iar matricea Tsuperior triunghiulara. Vom considera partitiile bloc ale matricelor S si T dictatede dimensiunile lk × lk cu lk ∈ 1, 2, k = 1 : p, ale blocurilor diagonale ale lui S:

S =

S11 S12 · · · S1p

0 S22 · · · S1p

......

. . ....

0 0 · · · Spp

, T =

T11 T12 · · · T1p0 T22 · · · T1p...

.... . .

...0 0 · · · Tpp

. (6.83)

Problema calculului subspatiilor de deflatie reale asociate unor seturi simetrice devalori proprii generalizate revine la ordonarea corespunzatoare a blocurilor diagonaleale formei Schur reale generalizate. In acest scop este necesar sa stim sa permutamdoua perechi de blocuri adiacente. Permutarea a doua perechi de blocuri vecine1 × 1 se face cu algoritmul PG11c cu singura mentiune ca toate transformarileutilizate sunt reale (cu reducerea corespunzatoare a numarului de operatii). Intrucatscrierea variantei reale a algoritmului se rezuma la ınlocuirea siglei c cu sigla r ınidentificatorii procedurilor, ne marginim sa introducem sintaxa de utilizare

[S, T,Q, Z ] = PG11r(S, T,Q, Z, k).

Ramane sa aratam cum se pot permuta, prin transformari ortogonale de echivalenta,doua perechi de blocuri diagonale vecine din care cel putin una din perechi areblocurile de ordinul 2.

Consideram acum perechea de matrice de ordin 3 sau 4, partitionate identic,

S =

[S11 S12

0 S22

]

, T =

[T11 T120 T22

]

, (6.84)

Page 506: metode de calcul numeric matriceal. algoritmi fundamentali

492 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

unde, prin urmare, cel putin unul din blocurile diagonale S11 (T11), S22 (T22) este2 × 2. In principiu, putem aplica ideile utilizate la elaborarea algoritmului PG11i.e. calculul unei baze ortogonale a subspatiului de deflatie asociat valorilor propriigeneralizate ale perechii (S22, T22) si aplicarea propozitiei 6.2. Propunem cititoru-lui implementarea acestor idei. Aici vom urma o cale echivalenta care utilizeazaalgoritmul QZ cu deplasare implicita. Avand ın vedere faptul ca perechea (S, T )din (6.84) este deja ın forma Schur reala generalizata rezulta ca putem determinadeplasarea (ın forma implicita) exacta care, utilizata ın algoritmul QZ2 pune ınevidenta, ın pozitia (2, 2) perechea cu valorile proprii dorite, ın cazul nostru, ınvederea permutarii, cu valorile proprii ale perechii (S11, T11). Cunoasterea exacta adeplasarii face ca, teoretic, sa fie suficienta o singura iteratie QZ pentru obtinerearezultatului dorit. In practica, daca nivelul de toleranta practicat este de ordinulde marime al erorilor de rotunjire, este posibil sa fie necesare cateva (doua-trei)iteratii pentru a putea considera elementele blocului 21 neglijabile. De asemenea,ıntrucat algoritmul QZ2 cu deplasari implicite efectueaza calculele aferente uneiiteratii numai asupra perechilor ın forma Hessenberg generalizata ireductibila estenecesar mai ıntai un pas QZ artificial care sa altereze structura Schur reala gene-ralizata a perechii (S, T ). In consecinta, toate cele trei tipuri de permutare se vorsupune urmatoarei scheme de calcul.

PG kl1. Se determina elementele definitorii exacte pentru vectorul w de deplasare

implicita (i.e. valoarea proprie generalizata daca prima pereche de blocurieste 1× 1, respectiv suma s si produsul p ale valorilor proprii generalizateın cazul cand prima pereche de blocuri este 2× 2).

2. Se executa un pas QZ cu un vector de deplasare implicita fixat aleator

(e.g. alegerea w = [ 1 1 1 ]Tda bune rezultate).

3. Se aplica algoritmul QZ cu deplasarea implicita exacta (i.e. calculata cuelementele de la punctul 1).

Pentru fascicolul de ordinul n (6.82), permutarea blocurilor adiacente (Skk, Tkk)si (Sk+1,k+1, Tk+1,k+1) ale formei Schur reale generalizate (S, T ) ∈ IRn×n× IRn×n seobtine folosind transformarea ortogonala de echivalenta (S′, T ′) = (QTSZ,QTTZ)definita de

Q = diag(Ir, Q, Is), Z = diag(Ir, Z, Is), (6.85)

unde transformarea definita de matricele Q si Z, de ordinul 2, 3 sau 4, asigurapermutarea blocurilor diagonale ale perechii

S =

[Skk Sk,k+1

0 Sk+1,k+1

]

, T =

[Tkk Tk,k+1

0 Tk+1,k+1

]

, (6.86)

si unde r este ordinul cumulat al blocurilor diagonale 1 : (k − 1), iar s este ordinulcumulat al blocurilor diagonale (k + 2) : p.

Vom implementa schema de calcul de mai sus ıntr-un algoritm care va trata toatecazurile. Pentru aceasta vom utiliza rezultatele stabilite si procedurile elaborate ınacest capitol. Pentru o ıntelegere mai lesnicioasa a algoritmului facem urmatoareleprecizari:

Page 507: metode de calcul numeric matriceal. algoritmi fundamentali

6.4. CALCULUL SUBSPATIILOR DE DEFLATIE 493

– pentru relatiile de calcul al vectorilor de deplasare implicita (exacta) reco-mandam consultarea algoritmilor Vd1 si Vd2;

– pentru o prezentare mai clara a algoritmulor, actualizarea blocurilor nediag-onale de pe bloc-liniile si bloc-coloanele afectate ın etapa curenta, conform relatiei(6.85), se va face utilizand matricele de transformare locala Q si Z ın forma nefac-torizata.

Obtinem urmatorul algoritm.

Algoritmul 6.12 (PGr – Permutarea a doua perechi diagonale adi-acente) (Date o pereche (S, T ) ∈ IRn×n × IRn×n ın forma Schur realageneralizata, ıntregul l care reprezintand pozitia diagonala a elementului

11 al primului bloc diagonal si ordinele i s j ale celor doua blocuri diago-nale adiacente precum s toleranta tol pentru neglijarea elementelor sub-diagonale, algoritmul suprascrie perechea (S, T ) cu perechea (S′, T ′) == (QTSZ, QTT Z), realizand permutarea perechii de blocuri diagonale(Skk, Tkk) cu perechea de blocuri diagonale (Sk+1,k+1, Tk+1,k+1). Deasemenea, se actualizeaza matricele de transformare Q si Z.)

1. % Cazul a doua perechi de blocuri 1× 1Daca i = 1 si j = 1 atunci

1. [S, T,Q, Z ] = PG11r(S, T,Q, Z, l)

2. Return

2. % Cazul perechilor de blocuri 1× 1, 2× 2Daca i = 1 si j = 2 atunci

1. q = l + 2

2. µ =sql,ltl,l

3. w = [ 1 1 1 ]T

4. [S(l : q, l : q), T (l : q, l : q), Q, Z ] == IT QZ2(S(l : q, l : q), T (l : q, l : q), I3, I3, w,

′da′)

5. Cat timp |sl+2,l+1| ≥ tol(|sl+1,l+1|+ |sl+2,l+2|)1. wexact = [

sl,ltl,l− µ sl+1,l

tl,l0 ]

T

2. [S(l : q, l : q), T (l : q, l : q), Q, Z ] == IT QZ2(S(l : q, l : q), T (l : q, l : q), Q, Z, wexact,

′da′)

6. S(l+2, l+1) = 0 % anularea efectiva a elementului neglijabil

7. Daca l > 1 atunci

1. S(1 : l − 1, l : q) = S(1 : l − 1, l : q)Z

2. T (1 : l − 1, l : q) = T (1 : l− 1, l : q)Z

8. Daca l < n− 2 atunci

1. S(l : q, q + 1 : n) = QTS(l : q, q + 1 : n)

2. T (l : q, q + 1 : n) = QTT (l : q, q + 1 : n)

9. Q( : , l : q) = Q( : , l : q)Q

10. Z( : , l : q) = Z( : , l : q)Z

Page 508: metode de calcul numeric matriceal. algoritmi fundamentali

494 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

11. Return

3. % Cazul primei perechi de blocuri 2× 2Daca i = 2 si j < 3 atunci

1. q = l + i+ j − 1

2. σ =sl+1,l+1tl,l + sl,ltl+1,l+1 − sl+1,ltl,l+1

tl,ltl+1,l+1

3. π =sl,lsl+1,l+1 − sl+1,lsl,l+1

tl,ltl+1,l+1

4. w = [ 1 1 1 ]T

5. [S(l : q, l : q), T (l : q, l : q), Q, Z ] == IT QZ2(S(l : q, l : q), T (l : q, l : q), Iq−l+1, Iq−l+1, w,

′da′)

6. r = l + j

7. Cat timp |sr,r−1| ≥ tol(|sr−1,r−1|+ |sr,r|)1. α =

slltll, β =

sl+1,l+1

tl+1,l+1, γ =

sl+1,l

tll,

δ =γ

tl+1,l+1, η = α− δtl,l+1 − σ.

2. wexact =

αη + δsl,l+1 + πγ(β + η)δsl+2,l+1

3. [S(l : q, l : q), T (l : q, l : q), Q, Z ] == IT QZ2(S(l : q, l : q), T (l : q, l : q), Q, Z, wexact,

′da′)

8. S(r, r − 1) = 0 % anularea efectiva a elementului neglijabil

9. Daca l > 1 atunci

1. S(1 : l − 1, l : q) = S(1 : l − 1, l : q)Z

2. T (1 : l − 1, l : q) = T (1 : l− 1, l : q)Z

10. Daca q < n atunci

1. S(l : q, q + 1 : n) = QTS(l : q, q + 1 : n)

2. T (l : q, q + 1 : n) = QTT (l : q, q + 1 : n)

11. Q( : , l : q) = Q( : , l : q)Q

12. Z( : , l : q) = Z( : , l : q)Z

Comentarii. Sintaxa de apel a acestui algoritm va fi

[S, T,Q, Z ] = PGr(S, T,Q, Z, l, i, j, tol).

Complexitatea unei permutari a doua perechi de blocuri adiacente este O(n), fiindpractic independenta de pozitia lor, dar dependenta de dimensiunile blocurilor di-agonale ale matricii S. 3

Cu aceasta procedura de permutare a doua perechi adiacente algoritmul de or-donare a formei Schur reale generalizate este, ın esenta, identic cu cel de ordonarea formei Schur complexe generalizate si este prezentat ın continuare. Facem si aici,pentru o ıntelegere mai comoda a algoritmului, urmatoarele precizari:

Page 509: metode de calcul numeric matriceal. algoritmi fundamentali

6.4. CALCULUL SUBSPATIILOR DE DEFLATIE 495

– structura (i.e. ordinul) blocurilor diagonale ale matricei S a FSRG va fi me-morata ın vectorul strbl;

– pentru localizarea blocurilor diagonale ale matricei S a FSRG vom utilizavectorul lcbl care va contine pozitiile elementelor (1, 1) ale acestora;

– pentru a simplifica la maxim monitorizarea elementelor nule de pe subdiag-onala matricei S, nu vom apela formal la algoritmul QZ2 ci vom adopta ideileacestuia la situata structurala concreta.

Se obtine urmatorul algoritm.

Algoritmul 6.13 (FSRG ORD – Ordonarea formei Schur realegeneralizate) (Date o pereche (S, T ) ∈ IRn×n× IRn×n ın forma Schur ge-neralizata (6.83), cu T nesingulara, matricele ortogonale Q,Z ∈ IRn×n,permutarea π = i1, i2, . . . , ip si toleranta tol pentru neglijarea ele-mentelor subdiagonale, algoritmul suprascrie perechea (S,T) cu perecheaortogonal echivalenta (S′, T ′) = (QTSZ, QTT Z) avand (S′

ikik, T ′

ikik) =

(Skk, Tkk) si actualizeaza matricele ortogonale de transformare Q si Z.)

1. % Determinarea numarului, a structurii si localizarii blocurilor di-agonale ale matricei S.

1. p = 0, j = 1

2. Cat timp j < n

1. p← p+ 1

2. Daca sj+1,j = 0 atunci

1. strbl(p) = 1

2. j ← j + 1

3. Daca j = n atunci

1. p← p+ 1

2. strbl(p) = 1

altfel

1. strbl(p) = 2

2. j ← j + 2

2. Pentru k = 1 : (p− 1)

1. muta =’nu’

2. l = k

3. Pentru j = (k + 1) : p

1. Daca ij < il atunci

1. l = j

2. muta =’da’

4. Daca muta =’da’ atunci

1. Pentru j = (l − 1) : −1 : k

1. lcbl(1) = 1

2. Pentru i = 2 : p

1. lcbl(i) = lcbl(i− 1) + strbl(i− 1)

Page 510: metode de calcul numeric matriceal. algoritmi fundamentali

496 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

3. [S, T,Q, Z] == PGr(S, T,Q, Z, lcbl(j), strbl(j), strbl(j + 1), tol)

4. ij ↔ ij+1

5. strbl(j)↔ strbl(j + 1)

Comentarii. Sintaxa de apel a algoritmului de mai sus este

[S, T,Q, Z ] = FSRG ORD(S, T,Q, Z, π, tol).

La fel ca ın cazul complex, volumul de calcul necesar pentru ordonare este dictataesential de natura permutarii. Cazul cel mai defavorabil apare cand permutareaeste o inversiune si toate blocurile sunt 2× 2 si are o complexitate de O(n3).

Si aici, daca se urmareste exclusiv constructia unei baze unitare pentru unsubspatiu de deflatie asociat unui set simetric de valori proprii generalizate definitede k blocuri diagonale (k < p), este suficienta o ordonare partiala. Se recomanda,de asemenea, renuntarea la actualizarea matricei Q.

In cazul ın care se prefera utilizarea permutarii inverse σ = π−1 = j1, j2, . . . , jpse poate utiliza o schema de calcul similara cu cea prezentata ın comentariile laalgoritmul 6.10. Scrierea explicita a acestei variante de algoritm de ordonare estepropusa cititorului. 3

6.5 Conditionarea valorilor proprii generalizatesi a vectorilor proprii generalizati

Sensibilitatea valorilor proprii generalizate la variatii ın datele initiale, sau altfelspus conditionarea lor numerica, se poate aprecia foarte usor ın forma Schur gene-ralizata. In ipoteza plauzibila ca forma Schur generalizata (S, T ) este putin sensibilala perturbatii ın elementele matricelor perechii (A,B) rezulta ca o valoare propriegeneralizata λi = sii/tii este cu atat mai rau conditionata cu cat tii este mai mic.Totusi, daca privim valorile proprii generalizate ca perechi (sii, tii), fara sa con-sideram necesara efectuarea ımpartirii, aceasta afirmatie nu mai poate fi sustinuta.Din acest motiv, ın aprecierea conditionarii numerice a valorilor proprii generalizatese recomanda o tratare simetrica a perechii (A,B) ın sensul ca trebuie consideratesimultan ambele fascicole F = A − λB si G = B − λA. Unei valori proprii rauconditionate a fascicolului F ıi corespunde o valoare proprie inversa a lui G carepoate fi foarte bine conditionata. De aceeea, ın [ VI ], pentru aprecierea conditionariivalorilor proprii generalizate se propune utilizarea metricii cordale definita pentruIR prin distanta 18

chord(α, β) =|α− β|√

1 + α2√

1 + β2, ∀α, β ∈ IR.

18 Distantei cordale i se pot da urmatoarele interpretari.1. Fie θα = arctgα si θβ = arctg β. Atunci, este usor de aratat ca chord(α, β) = | sin(θα − θβ)|.

Prin urmare, printre altele, 0 ≤ chord(α, β) < 1.

2. In cazul complex, daca πα, πβ sunt proiectiile lui α, respectiv β pe sfera Riemann, atuncichord(α, β) este jumatate din distanta euclidiana (i.e. lungimea coardei) dintre cele doua proiectii.

Page 511: metode de calcul numeric matriceal. algoritmi fundamentali

6.6. STABILITATEA ALGORITMULUI QZ 497

Se poate arata ca daca λ este o valoare proprie generalizata distincta a fascicoluluiF si λ este valoarea proprie generalizata corespunzatoare a fascicolului perturbatF = A− λB cu ‖A−A‖2 ≈ ‖B −B‖2 ≈ ε, atunci

chord(λ, λ) ≤ ε

(yHAx)2+ (yHBx)

2 +O(ε2),

unde x, y ∈ ICn sunt vectori proprii generalizati unitari la dreapta, respectiv la stangaai fascicolului F , i.e. satisfac Ax = λBx, yHA = λyHB si ‖x‖ = ‖y‖ = 1. Prinurmare, conditionarea unei valori proprii generalizate individuale poate fi apreciatacu numarul

κλ =1

(yHAx)2+ (yHBx)

2 .

Din expresia de mai sus rezulta ca se pot considera rau conditionate numeric numaiacele valori proprii generalizate pentru care expresia de la numitor (simetrica ınraport cu A si B) este mica. Situatii de acest fel apar, de exemplu, cand fascicolulF este ”apropiat” de un fascicol singular, i.e. ın forma Schur generalizata exista(cel putin) o pereche (sii, tii) cu ambele valori foarte mici. In mod natural, ıntr-unastfel de caz celelalte perechi (sii, tii) pot varia ın limite foarte largi. (Amintimca daca fascicolul este singular, i.e. exista (sii, tii) = (0, 0), atunci orice numarcomplex este valoare proprie generalizata a fascicolului initial ceea ce ınseamna cacelelalte perechi diagonale ale formei Schur generalizate pot lua orice valori.)

In ceea ce priveste conditionarea vectorilor proprii generalizati, aceasta estedependenta ın buna masura de separarea valorii proprii generalizate asociate decelelalte valori proprii. In aplicatii, ın general, se evita calculul vectorilor propriigeneralizati, acestia putand fi ınlocuiti cu succes de coloanele matricelor de trans-formare.

6.6 Stabilitatea numerica a algoritmului QZ

Asa cum s-a mai mentionat si ın comentariile diversilor algoritmi partiali, utilizareaconsecventa a transformarilor unitare (ın cazul real, ortogonale) confera procesuluide calcul al formei Schur generalizate o foarte buna stabilitate numerica. In litera-tura de specialitate se arata ca forma Schur generalizata calculata (S, T ), cu algo-ritmul QZ, a unei perechi de matrice (A,B) este forma Schur generalizata exactaa perechii (A,B) usor perturbate, i.e. satisface relatia

(S, T ) = (QH(A+ E)Z, QH(B + F )Z),

unde E si F sunt matrice de perturbatie ce satisfac inegalitatile

‖E‖ ≤ p(n)‖A‖εM , ‖F‖ ≤ p(n)‖B‖εM ,

iar Q si Z sunt doua matrice riguros unitare. In relatiile de mai sus, p(n) esteapreciat drept o functie cu o crestere ”modesta” de dimensiunea n a problemei,termen folosit curent pentru functii polinomiale de gradul 1, cel mult 2.

In concluzie, valorile proprii generalizate bine conditionate se calculeaza cu oınalta acuratete.

Page 512: metode de calcul numeric matriceal. algoritmi fundamentali

498 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

6.7 Rutine LAPACK si MATLAB

LAPACK. Calculul valorilor si vectorilor proprii generalizati ai unei perechi dematrice (A,B) este efectuat ın LAPACK de doua rutine driver:

1. xGEGS calculeaza forma Schur generalizata a perechii (A,B) si eventual vec-torii Schur, folosind algoritmul QZ.

2. xGEGV calculeaza valorile si eventual vectorii proprii generalizati ai perechii(A,B).

Principalele rutinele de calcul implementeaza cele doua faze ale algoritmuluiQZ; sa notam abrevierile utilizate pentru diverse tipuri de matrice interesante ınaceasta problema: GG – pereche de matrice generale, HG – pereche ın forma Hessen-berg generalizata, TG – pereche ın forma Schur generalizata.

• xGGHRD realizeaza reducerea unei perechi generale (A,B) la forma Hessenberggeneralizata (H,T ) prin transformari de asemanare ortogonale.

• xHGEQZ implementeaza faza iterativa a algoritmului QZ, transformand pere-chea (H,T ) ın forma Schur generalizata, cu acumularea optionala a trans-formarilor (si deci obtinerea vectorilor Schur).

Vectorii proprii generalizati ai unei perechi ın forma Schur (A,B) sunt calculatide rutina xTGEVC. Aceeasi rutina poate calcula vectorii proprii generalizati ai pere-chii initiale (A,B), daca primeste ca argumente de intrare vectorii Schur generalizaticalculati de rutinele de mai sus.

Rutina xGGBAL realizeaza scalarea (echilibrarea) perechii (A,B). Alte rutine,similare cu cele pentru valori proprii, sunt actualmente ın curs de elaborare.

MATLAB. Valorile si vectorii proprii generalizati ai unei perechi (A,B) potfi calculate cu aceeasi functie ca valorile proprii (diferenta e facuta de numarulargumentelor de intrare):

[V, D] = eig(A, B)

V fiind matricea vectorilor proprii generalizati, iar D o matrice diagonala continandvalorile proprii generalizate (astfel ıncat AV = BVD). Apelul simplu eig(A,B)

returneaza un vector continand valorile proprii generalizate. Functia implementeazaalgoritmul QZ.

6.8 Probleme

P 6.1 Se considera fascicolul matriceal F = A− λB, unde

A =

[2 4 52 5 82 3 2

]

, B =

[1 1 11 α 21 2− α β

]

,

Page 513: metode de calcul numeric matriceal. algoritmi fundamentali

6.8. PROBLEME 499

cu α, β parametri reali.a) Discutati ın raport cu α, β numarul valorilor proprii generalizate finite ale fasci-

colului F .b) Daca F este un fascicol regulat calculati un vector propriu generalizat x al fasci-

colului F independent de α, β; determinati parametrii α, β astfel ıncat xTBx = 0 si Beste nesingulara.

c) In cazul α = 2, β = 1, calculati o baza ortonormala pentru un subspatiu de deflatiede dimensiune 2 al fascicolului F ın IR3.

P 6.2 Consideram perechea (A,B) ∈ IRn×n×IRn×n si fie UTBV = Σ cu Σ =

[Σ1 00 0

]

,

Σ1 = diag(σ1, σ2, · · · , σr) si r = rang(B) ≥ 1 descompunerea valorilor singulare a matriceiB. Aratati ca daca fascicolul A − λB nu are nici o valoare proprie generalizata finita,atunci matricea (U(:, r + 1 : n))TAV (:, r + 1 : n) este singulara.

P 6.3 Ce proprietati au valorile proprii generalizate ale unei perechi (A,B) ∈ ICn×n×× ICn×n cu matricele A si B unitare (ın cazul real, ortogonale)?

P 6.4 Fie perechea (A,B) ∈ ICn×n × ICn×n cu B nesingulara. Sa se arate ca λ ∈ λ(A,B)daca si numai daca λ− µ ∈ λ(B,B(A− µB)−1B) pentru µ 6∈ λ(A,B).

P 6.5 Scrieti un algoritm de reducere a unei perechi reale (A,B) ∈ IRn×n × IRn×n laforma Hessenberg generalizata prin transformari ortogonale de echivalenta.

P 6.6 Elaborati un algoritm care sa calculeze iterativ un vector propriu generalizat alperechii (A,B) ∈ ICn×n× ICn×n cu B nesingulara adaptand metoda puterii pentru matriceaF = B−1A sau matricea G = AB−1 fara a calcula explicit matricele F sau G. Aceeasicerinta pentru adaptarea metodei puterii inverse.

P 6.7 Fie dat un vector propriu generalizat x ∈ ICn al unui fascicol regulat definit deperechea (A,B) ∈ ICn×n × ICn×n. Sa se arate ca Bx 6= 0 si ca functia f : IC → IR,

f(λ) =1

2‖Ax− λBx‖22 ısi atinge valoare minima ın valoarea proprie λ ∈ λ(A,B) asociata

lui x data de expresia λ =xHBHAx

xHBHBx∈ λ(A,B).

P 6.8 Fie (H,T ) ∈ ICn×n × ICn×n ın forma Hessenberg generalizata cu T nesingulara.Aratati ca matricea superior Hessenberg G = HT−1 este ireductibila daca si numai dacamatricea H este ireductibila.

P 6.9 Se da un fascicol real de ordinul 2 definit de perechea (H,T ) ∈ IR2×2×IR2×2 ın formaHessenberg ireductibila cu valori proprii generalizate reale. Sa se scrie un algoritm de calculal matricelor ortogonale Q,Z ∈ IR2×2 astfel ıncat perechea (H, T ) = (QTHZ,QTTZ) safie ın forma Schur.

P 6.10 Fie perechea (A,B) ∈ IRn×n × IRn×n cu A, B simetrice si, ın plus, B pozitivdefinita. Sa se arate ca toate valorile proprii generalizate ale perechii (A,B) sunt reale.Este adevarata aceasta asertiune si daca B nu este pozitiv definita?

Elaborati un algoritm de calcul al valorilor proprii generalizate ale fascicolului (A,B)care sa exploateze simetria celor doua matrice.

P 6.11 Se da o pereche (S, T ) ∈ IRn×n × IRn×n ın forma Schur reala generalizata. Se ceralgoritmii de calcul pentru

Page 514: metode de calcul numeric matriceal. algoritmi fundamentali

500 CAPITOLUL 6. VALORI SI VECTORI PROPRII GENERALIZATI

a) un vector propriu generalizat asociat valorii proprii generalizate reale distincte λk == skk/tkk;

b) o pereche de vectori proprii generalizati complex conjugati asociati unei perechi devalori proprii generalizate complex conjugate date de o pereche diagonala 2× 2 situata peliniile si coloanele (k, k + 1).

P 6.12 Se considera data o pereche (S,T ) ∈ ICn×n × ICn×n ın forma Schur genera-lizata avand ın pozitiile diagonale consecutive k, k + 1 o valoare proprie generalizatadubla λk = skk/tkk = λk+1 = sk+1,k+1/tk+1,k+1. In ce conditii exista doi vectori propriigeneralizati liniar independenti asociati acestei valori proprii duble? Considerand acesteconditii ındeplinite, scrieti un algoritm de calcul pentru calculul a doi astfel de vectoriproprii.

Page 515: metode de calcul numeric matriceal. algoritmi fundamentali

Indicatii, raspunsuri, solutii

Cap. 0. Concepte fundamentale ale calculului numeric

P0.1 Rezultatul depinde de ordinea de calcul; avem y1 = (x1 + x2) + x3 = 0 siy2 = x1 + (x2 + x3) = 0.001. Rezultatul exact este y2 (eroare relativa egala cu 0). Pentruy1, eroarea relativa este |0− 0.001|/0.001 = 1 (adica 100%).

P0.2 Rezultatul calculat este y = fl(fl(x1 + x2) + x3) = fl((x1 + x2)(1 + ρ1) + x3) == [(x1+x2)(1+ρ1)+x3](1+ρ2), cu |ρ1|, |ρ2| ≤ µβ−t, si µ de ordinul unitatii. Rezulta ca:

|y − y||y| ≤

(

1 +|x1 + x2|

|x1 + x2 + x3|

)

µβ−t.

P0.3 Presupunem ca datele de intrare sunt afectate de erori, si deci (a+∆a, b+∆b)este utilizat ın loc de (a, b). Rezultatul va fi x +∆x. Din (x+∆x)(a+∆a) = (b +∆b),neglijand ∆a∆x, rezulta ca ∆x/x = −∆a/a−∆b/b. Deci, problema este ıntotdeauna bineconditionata (erori relative mici ale intrarii implica erori relative mici ale iesirii).

Deoarece x = fl(−b/a) = (−b/a)(1 + ρ) = −b(1 + ρ)/a = −b/a, cu |ρ| ≤ µβ−t,algoritmul este numeric stabil. (b este aproape de b).

P0.4 Problema mosteneste proasta conditionare a sumei (de exemplu, cand |a1 + a2|e mic si |a1|, |a2| sunt mari). ”Algoritmul” x = −(b1 + b2)/(a1 + a2) este stabil.

P0.5 Urmatorul numar ın virgula mobila este x = 0.100 . . . 01 ·β1; deci, x−1 = β−t+1

(eroarea de reprezentare maxima pentru rotunjirea prin trunchiere).

P0.6 εr ≤ 0.5β−t+1.

P0.7 Varianta 1: (x ⊗ x) ⊖ (y ⊗ y) = [x2(1 + ρ1) + y2(1 + ρ2)](1 + ρ), cu ρ1, ρ2, ρ deordinul erorii de reprezentare u. Atunci eroarea relativa

εr1 ≈ ρ+ρ1x

2 − ρ2y2

x2 − y2

poate fi mare atunci cand x2 si y2 au valori apropiate.

Varianta 2: (x⊖ y) ⊗ (x ⊕ y) = [(x − y)(1 + σ1)][(x + y)(1 + σ2)](1 + σ), cu σ1, σ2, σde ordinul de marime al lui u. Eroarea relativa este acum (u2 ≪ u)

εr2 ≈ σ1 + σ2 + σ ≤ 3u.

Varianta 1 reprezinta un algoritm cu potentiale instabilitati numerice; varianta 2 esteun algoritm stabil.

501

Page 516: metode de calcul numeric matriceal. algoritmi fundamentali

502 INDICATII, RASPUNSURI, SOLUTII

Cap. 1. Algoritmi elementari de calcul numeric

P1.4 Pentru norma 1, un exemplu este x = e1, y = e2. Pentru norma ∞, putem luax = e1 + e2 si y = e2. In norma 2, egalitatea este imposibila pentru vectori necoliniari(suma lungimii a doua laturi ale unui triunghi este mai mare decat lungimea celei de-atreia); la fel ın normele p 6= 1,∞.

P1.5 Pentru n = 2, x =

[x1

x2

]

, y =

[y1y2

]

, α = x1y1+x2y2. fl(xiyi) = xiyi(1+σi),

cu |σi| ≤ εM . Atunci α = [x1y1(1 + σ1) + x2y2(1 + σ2)](1 + σ) si eroarea absoluta este|α− α| = |x1y1σ1 + x2y2σ2 +O(εM )| ≤ 2εM |y|T |x|+O(εM ).

P1.6 Deoarece dorim aTj ak+1 = 0, ∀j ∈ 1 : k, iar vectorii a1, . . . , ak sunt ortogonali,

atunci 0 = aTj ak+1 =

∑k

i=1αika

Tj ai+aT

j bk+1 = αjkaTj aj +aT

j bk+1 si deci scalarii αjk sunt

unic determinati prin αjk = −(aTj bk+1)/(‖aj‖22).

P1.7 Coloanele (sau liniile) nenule ale matricei A sunt vectori coliniari.P1.8 Se calculeaza (AB)C sau A(BC) dupa cum n1n2n3 +n1n3n4 mai mic, respectiv

mai mare decat n2n3n4 + n1n2n4.P1.9 ‖A‖2 ≥ ‖Aej‖2 = (

∑m

l=1a2lj)

1/2 ≥ |aij | pentru orice i, j. Pentru a doua parte,din (1.29) avem ‖A‖2 ≤ ‖A‖F si evident ‖A‖F ≤ max

√mn|aij |.

P1.10 Din definitia normei 2 avem

‖A‖2 = max‖x‖=1

‖Ax‖2 = max‖x‖=1

(m∑

i=1

(

n∑

j=1

aijxj)2

)1/2

. (7.1)

Din inegalitatea Cauchy-Buniakowski-Schwarz, tinand seama ca ‖x‖2 = 1, avem(∑n

j=1aijxj)

2 ≤∑n

j=1a2ij . Inlocuind ın (7.1), este imediata inegalitatea ‖A‖2 ≤ ‖A‖F .

Luand acum vectorul x cu componentele egale, xi = 1/√n, din (7.1) se obtine

‖A‖2 ≥ (1/√n)‖A‖F .

Luand ın (7.1) x = ej , se obtine ‖A‖2 ≥ (1/√m)‖A‖1.

Pentru un vector x oarecare sunt ındeplinite relatiile ‖x‖2 ≤ ‖x‖1 si ‖x‖2 ≥ (1/√n)‖x‖1.

Atunci

‖A‖2 = sup‖Ax‖2‖x‖2 ≤ sup

‖Ax‖1(1/√n)‖x‖1

=√n‖A‖1.

O matrice A cu toate elementele egale cu 1 are ‖A‖F = ‖A‖2 =√mn. O matrice

B cu b1j = 1 si restul elementelor nule are ‖B‖2 =√n, ‖B‖1 = 1 si ‖B‖∞ = n, deci

‖B‖2 =√n‖B‖1 = (1/

√n)‖B‖∞.

P1.11 Daca B ∈ IRp×r, fara a afecta generalitatea putem considera B = A(1 : p, 1 : r).Fie C = A(1 : m, 1 : r). Este evident ca daca Z este multimea vectorilor din IRn de normaunitate avand ultimele n− r componente nule, atunci

‖A‖ = max‖x‖=1

‖Ax‖ ≥ maxz∈Z‖Az‖ = ‖C‖.

Pentru x ∈ IRr, notand y = Cx ∈ IRm si y′ = y(1 : p) = Bx, este evident ca ‖y‖ ≥ ‖y′‖,deci ‖C‖ ≥ ‖B‖.

P1.12 Produsul scalar a doi vectori y, z de norma data este maxim cand vectorii suntcoliniari (vezi din nou inegalitatea Cauchy-Buniakowski-Schwarz) si atunci |yT z| = ‖y‖‖z‖.Cu z = Ax si definitia normei 2 rezulta prima inegalitate, din care se deduc imediatcelelalte.

P1.13A este inversabila, deci ImA = IRn. ‖A−1‖ = supx 6=0‖A−1x‖

‖x‖ = supy 6=0‖A−1Ay‖

‖Ay‖ .

Deci, 1/‖A−1‖ = infy 6=0‖Ay‖‖y‖ = min‖x‖=1 ‖Ax‖.

Page 517: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 503

P1.14 L2 are prima supradiagonala nula, L3 primele doua etc.P1.15 Notand C = AB, avem cij =

∑n

k=1aikbkj . aik si bkj pot fi simultan nenule

daca multimile i − p : i + p si j − q : j + q au cel putin un element comun, adica dacai+ p > j − q sau i− p < j + q, ceea ce e echivalent cu |i− j| < p+ q, deci C este matricebanda de latime p+ q.

P1.16 Indicatie: rezultatul este o matrice nestructurata.P1.17 Ordinea de calcul va fi: Pentru i = n : −1 : 1, Pentru j = 1 : i. Sau: Pentru

j = 1 : n, Pentru i = n : −1 : j.P1.18 Pentru matrice ortogonale, ın general, nu.P1.19 Se adapteaza algoritmul 1.20 la cazul matricelor superior triunghiulare, iar ın

instructiunea 1.4, ın loc de UTRIS se apeleaza algoritmul de rezolvare de sisteme liniare.P1.20 O simpla substitutie este suficienta. Pentru deducerea expresiei lui N(n) se

presupune N(n) = αnlog 7 + βn2; coeficientii α si β se calculeaza prin identificare cu(1.38). Mai multe despre rezolvarea recurentelor ın [2].

P1.21 A fiind ortogonal diagonalizabila, exista U ortogonala astfel ıncat UTΛU = A.Elementele diagonale ale lui Λ sunt pozitiv definite (vezi si problema 1.30); fie D matriceadiagonala cu dii =

√λi si Q = UTDU , matrice simetrica (si pozitiv definita); din motive

evidente, se noteaza Q =√A.

Demonstratia inegalitatii ‖x+y‖A ≤ ‖x‖A‖y‖A se reduce la |xTAy| ≤ ‖x‖A‖y‖A, careeste inegalitatea Cauchy-Buniakowski-Schwarz, pentru vectorii Qx si Qy.

P1.22 Daca A e singulara, atunci exista x 6= 0 astfel ıncat Ax = 0 si deci xTAx = 0,deci A nu e pozitiv definita; deci A e inversabila. In plus, ImA = IRn, deci orice y ∈ IRn,exista x ∈ IRn astfel ıncat y = Ax; atunci xTAx = yTA−1y > 0, deci A−1 > 0.

P1.23 b. Fie A = [a1 a2 . . . an] ortogonala si superior triunghiulara. Atunci, pentruprima coloana avem a1 = ±e1 si 0 = aT

1 aj = ±a1j , pentru j > 1, etc. (Altfel: AT esteinferior triunghiulara, iar A−1 este superior triunghiulara; cum ele sunt egale, AT estediagonala, deci si A.)

c. Fie A superior triunghiulara. Atunci, din AAT = ATA, pentru elementul (1, 1)obtinem

∑n

j=1a21j = a2

11, deci toate elementele extradiagonale din prima linie sunt nuleetc.

P1.24 b. Adaptam algoritmul LTRIS, de exemplu versiunea pe linii. Singura modi-ficare e ın instructiunea 2.1.

1. x← b2. Pentru i = 1 : n

1. Pentru j = max(1, i− p) : i− 11. xi ← xi − lijxj

2. xi ← xi/lii

P1.25 Pentru L inferior bidiagonala, inversa X este inferior triunghiulara.

1. Pentru j = 1 : n1. xjj ← 1/ljj2. Pentru i = j + 1 : n

1. xij ← −li,i−1xi−1,j/lii

P1.26 Varianta cu DOT este imediata din algoritmul 1.16 LINV.Pentru varianta cu Saxpy, e necesara o noua forma a algoritmului, ın care, o data

calculata o necunoscuta xk, se actualizeaza toate sumele (1.44) pentru i > k.

1. Pentru k = 1 : n1. xk ← bk/lkk

Page 518: metode de calcul numeric matriceal. algoritmi fundamentali

504 INDICATII, RASPUNSURI, SOLUTII

2. Daca k < n atunci

1. Pentru i = k + 1 : n1. bi ← bi − likxk

Bucla Pentru i se poate ınlocui cu operatia

b(k + 1 : n)← Saxpy(−xk, L(k + 1 : n, k), b(k + 1, n)).

P1.27 Notam cu L(k) elementul aflat la adresa k ın vectorul L ın care se memoreazacompact matricea triunghiulara. (Consideram L(1) primul element.)

1. x← b2. k ← 13. Pentru i = 1 : n

1. Pentru j = 1 : i− 11. xi ← xi − L(k)xj

2. k ← k + 12. xi ← xi/L(k)3. k ← k + 1

P1.28 b. Presupunand v = γu, γ 6= 0, fie λ ∈ IC valoarea proprie pentru careA(u + iv) = λ(u + iv). Evident, Au = λu, deci λ ∈ IR, deci γ = 0. Asadar v nu estecoliniar cu u.

Notand λ = α+ iβ, cu α, β ∈ IR, egalitatea evidenta

A[u v] = [u v]

[α −ββ α

]

arata ca Au si Av sunt combinatii liniare de u si v.P1.29 Din det(λI − A) = 0 si relatiile lui Viete.P1.30 Din Ax = λx rezulta xTAx = λ‖x‖2, deci λ > 0.

Cap. 2. Rezolvarea sistemelor de ecuatii liniare

P2.1 Se folosesc matrice inferior triunghiulare elementare modificate, tot de formaMk = I −mke

Tk , dar cu mk = [µ1k . . . µk−1,k 0 . . . 0]T .

P2.2 Pentru GPP, se folosesc functiile xSWAP pentru interschimbarea a doua linii(bucla 1.3), xSCAL pentru calculul multiplicatorilor (bucla 1.4) si xAXPY pentru actualizariledin bucla 1.5.1.

P2.3 Este evident ca, la primul pas al eliminarii gaussiene, pivotul este a11 si|µi1| = |ai1|/|a11| < 1. Notand B = M1A matricea transformata dupa primul pas aleliminarii, sa demonstram ca submatricea B(2 : n, 2 : n) este diagonal dominanta pecoloane (apoi, prin inductie, problema este rezolvata). Tinand seama ca bij = aij −µi1a1j

(pentru i, j ≥ 2), avem

i=2,i6=j

|bij | ≤∑

i=2,i6=j

|aij |+|µi1||a1j | < |ajj |−|a1j |+ |a11|−|aj1||a11|

|a1j | < |ajj |−|µj1||a1j | < |bjj |.

P2.4 a. Evident, µik = xi/xk, pentru i 6= k.b. Algoritmul este similar cu cel de eliminare gaussiana, numai ca operatiile se

desfasoara permanent pe toate liniile.

Page 519: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 505

1. Pentru k = 1 : n− 11. Pentru i = 1 : n, i 6= k

1. aik ← µik = aik/akk

2. Pentru j = k + 1 : n1. Pentru i = 1 : n, i 6= k

1. aij ← aij − aikakj

Nop ≈ n3, cu 50% mai mult decat ın eliminarea gaussiana, motiv pentru care algoritmulGauss-Jordan nu este utilizat ın practica.

c. Pivotul se cauta la fel ca ın eliminarea gaussiana, adica numai pe liniile k : n.P2.5 Prezentam o demonstratie doar pentru cazul A nesingulara. Demonstratia pentru

A singulara ramane ca exercitiu (netrivial).Presupunem ca A are doua factorizari LDU diferite:

A = LDU = L′D′U ′. (7.2)

L, L′, U , U ′ sunt matrice triunghiulare unitate, deci nesingulare; mai mult, L−1, (L′)−1,U−1, (U ′)−1 au aceeasi structura. A este nesingulara, deci astfel sunt si D si D′, iarmatricele D−1 si (D′)−1 sunt diagonale. Atunci, din (7.2) rezulta

(L′)−1L = D′U ′U−1D−1,

ın care termenul din stanga este o matrice inferior triunghiulara unitate, iar cel din dreaptao matrice superior triunghiulara. Atunci (L′)−1L = In, adica L = L′. Rezulta acum ca

U ′U−1 = (D′)−1D.

Termenul stang este o matrice superior triunghiulara unitate, iar cel drept o matrice di-agonala. Aceasta este posibil doar daca ambii termeni sunt egali cu matricea unitate In.In concluzie U = U ′, D = D′.

P2.6 Presupunem ca exista k < n, cel mai mic astfel ıncat A[k] este singulara. DeoareceA[k] = L[k]D[k]U [k], iar L[k] si U [k] sunt nesingulare ca submatrice lider principale ale unormatrice triunghiulare unitate, rezulta ca D[k] este singulara si anume ca dkk = 0 (deoareceD[k−1] este nesingulara). In acest caz, coloana k a matricei LD este nula, deci elementelelik, i > k, pot fi arbitrare. Analog, linia k a matricei DU este nula, deci elementele ukj ,j > k, pot fi arbitrare. Cum k < n, rezulta ca factorizarea LDU nu este unica, ceea cecontrazice ipoteza.

P2.7 In GPP multiplicatorii sunt subunitari. Permutarile de linii lasa multiplicatoriiın triunghiul inferior.

P2.8 GPC se modifica la fel ca GPP. |ukk| ≥ |ukj |, j > k, deoarece, la pasul k, pivotuleste mai mare (ın modul) decat elementele aflate la dreapta sa, iar eliminarea gaussianapropriu-zisa nu modifica linia k.

P2.9 Se modifica doar valoarea maxima a indicilor de coloana.

1. Pentru k = 1 : r1. Se determina ik ∈ k : n a.ı. |aikk| = maxi=k:n |aik|.2. p(k)← ik3. A(ik, 1 : r)↔ A(k, 1 : r)4. Pentru i = k + 1 : n

1. aik ← aik/akk

5. Pentru i = k + 1 : n1. Pentru j = k + 1 : r

1. aij ← aij − aikakj

Page 520: metode de calcul numeric matriceal. algoritmi fundamentali

506 INDICATII, RASPUNSURI, SOLUTII

P2.10 In algoritmul CROUTbl se executa o factorizare Crout cu pivotare a bloculuicurent A(s : n, s : f), la nivel de element. Algoritmul va avea structura urmatoare:

1. Pentru k = 1 : m1. s← (k − 1)r + 12. f ← kr3. A(s : n, s : f)← A(s : n, s : f)− L(s : n, 1 : s−1)·U(1 : s−1, s : f)4. Se calculeaza factorizarea LU Crout cu pivotare

P ·A(s : n, s : f) = L(s : n, s : f) · U(s : f, s : f)5. Se aplica permutarea P blocului A(s : n, f + 1 : n)6. Se rezolva sistemul superior triunghiular Z · U(s : f, s : f) = A(f+1 : n, s : f)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)

P2.11 De exemplu, ın algoritmul 2.7, se ia m = ⌈n/r⌉, iar f = min(kr, n).P2.12 Transformarile se aplica simultan ın A si b, pe linii. Iata algoritmul fara pivotare:

1. Pentru k = 1 : n− 11. Pentru i = k + 1 : n

1. µ = aik/akk

2. Pentru j = k + 1 : n1. aij ← aij − µakj

3. bi ← bi − µbk2. x = UTRIS(A, b)

P2.13 a. Este evident ca multiplicatorii µij vor fi nuli pentru i > j + 1. Eliminareagaussiana va avea forma:

1. Pentru k = 1 : n− 11. hk+1,k ← hk+1,k/hkk

2. Pentru j = k + 1 : n1. hk+1,j ← hk+1,j − hk+1,khkj

Vectorul b va fi modificat ın concordanta cu aceste valori particulare ale multiplicato-rilor:

1. Pentru k = 1 : n− 11. bk+1 ← bk+1 − hk+1,kbk

Apoi trebuie rezolvat un sistem superior triunghiular.b. Indicatie: pivotarea partiala nu afecteaza structura superior Hessenberg. c. Se

observa ca L este inferior bidiagonala.P2.14 a. Se rezolva Hy = b ca ın problema anterioara, apoi Rx = y.P2.15 a. Daca b = c + id, unde c, d ∈ Rn, sistemul poate fi scris A[y z] = [c d], cu

y, z ∈ Rn si x = y+ iz. Acesta constituie un caz particular al punctului b, pentru m = 2.b. ecuatia matriceala AX = B consta ın m sisteme liniare: Axj = bj , pentru j = 1 : m

(xj si bj sunt coloanele j ale matricelor X, respectiv B). Utilizarea algoritmului:

1. Pentru j = 1 : m1. Se rezolva Axj = bj utilizand S GPP

nu este o idee buna deoarece numarul de operatii este 2mn3/3. Este mai eficient a utilizaGPP o singura data, pentru a triangulariza A, precum mai jos:

Page 521: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 507

1. [M,U, p] = GPP(A)2. Pentru j = 1 : m

1. Pentru s = 1 : n− 11. bsj ↔ bp(s),j1. Pentru i = s+ 1 : n

1. bij ← bij − µisbsj2. xj = UTRIS(U, bj)

Numarul de operatii este 2n3/3 +O(mn2).P2.16 In cazul utilizarii GPP, sistemul initial AT y = c este echivalent cu sistemul

inferior triunghiular RT z = c, unde z = M−Tn−1Pn−1 . . .M

−T1 P1y. Dupa rezolvarea acestuia,

se calculeaza y = P1MT1 . . . Pn−1M

Tn−1z.

P2.17 Din nou, nu trebuie nici calculat Ak (2kn3 flopi), nici utilizat algoritmul bazatpe relatia A(Ak−1x) = b, aplicat recursiv:

1. Pentru j = 1 : k1. rezolva Ax = b utilizand S GPP

2. b← x

care necesita 2kn3/3 flopi. Din nou, GPP poate fi utilizat o singura data pentru rezolvareatuturor sistemelor din instructiunea 1.1 a schemei de mai sus. Se obtine:

1. [M,U, p] = GPP(A)2. Pentru j = 1 : k

1. Pentru s = 1 : n− 11. bs ↔ bp(s)1. Pentru i = s+ 1 : n

1. bi ← bi − µisbs2. b = UTRIS(U, b)

3. x← b

Numarul de operatii este de doar 2n3/3 +O(kn2).P2.18 Varianta 1: se calculeaza D = AB, apoi se aplica algoritmul precedent; cost

suplimentar fata de acesta: 2n3.Varianta 2: se aplica GPP ambelor matrice A si B, apoi se adapteaza algoritmul

precedent, ”dubland” instructiunea 2. Cost suplimentar: 4n3/3 + 2kn2. Aceasta variantae recomandabila, ın general.

P2.19 (a) implica 2n3/3 operatii complexe, adica aproximativ 8n3/3 operatii reale.(b) implica 2(2n)3/3 operatii.

P2.20 Notand X = A−1 si xj coloana j a lui X, trebuie rezolvat doar sistemulLUxj = ej . Sistemul Ly = ej se rezolva adaptand LTRIS (ca ın LINV) iar sistemulUxj = y se rezolva cu UTRIS, oprind calculele atunci cand xij a fost obtinut.

P2.22 a. Prin calcul direct, avem A+A−1+ = I .

b. Se calculeaza B = A−1B, C = CA−1 (cu 4n2r flopi). Se calculeaza D+ cu2n2r + 2nr2 flopi. Se rezolva D+X = C ca ın problema 2.15, cu 2r3/3 + 2nr2 flopi. Insfarsit, A−1

+ = A−1 −BX, cu un cost de ınca 2n2r flopi. Presupunand r ≪ n, costul total

este de O(rn2). In cazul 1, costul se reduce la jumatate.P2.23 a. Presupunem ıntai ca u1 6= 0. Fie M = I −meT1 o matrice inferior triunghi-

ulara elementara astfel ıncat Mu = u1e1; evident, mi = ui/u1, i = 2 : n. Considerammatricea B = MAM−1 = I +MuvTM−1 = I + u1e1w

T ; deoarece M−1 = I +meT1 , avemwT = vTM−1 = vT + (vTm)eT1 . In concluzie B este superior triunghiulara, cu bii = 1,pentru i ≥ 2 si deci detA = detB = b11 = 1 + uT v.

Page 522: metode de calcul numeric matriceal. algoritmi fundamentali

508 INDICATII, RASPUNSURI, SOLUTII

Daca u1 = 0 sau, ın general, pentru o mai buna stabilitate numerica, se aplica ıntaipermutarea u← Pu care aduce pe prima pozitie elementul de modul maxim din u. Deci,ın loc de M se utilizeaza transformarea stabilizata MP .

b. Sistemul Ax = b se transforma ın B(Mx) = Mb. Se rezolva By = Mb, apoix = M−1y. Daca se tine seama de forma speciala a lui B, care are doar prima linie sidiagonala nenule, numarul de operatii este O(n).

P2.24 Multiplicatorii au toti valoarea −1 (elementele diagonale nu se modifica, cu

exceptia celui din dreapta jos) iar ın ultima coloana avem a(k)in = 2a

(k−1)in , pentru i ≥ k.

Se obtine evident a(n)nn = 2n−1.

P2.25 Avem

cond(A) ≤ ‖|A−1| |A| |x|‖∞‖|A| |x|‖∞

‖|A| |x|‖∞‖|x|‖∞

≤ ‖A−1‖∞‖A‖∞.

Am folosit definitia normei ∞ si egalitatea evidenta ‖|A|‖∞ = ‖A‖∞.P2.26 Elementele diagonale ale matricei D1 sunt di = 1/maxj=1:n |aij |. Astfel,

liniile matricei B = D1A au norma infinit egala cu 1, iar coloanele norma infinit in-ferioara lui 1 (evident, |bij | ≤ 1). Elementele diagonale ale matricei D2 se iau acumdj = 1/maxi=1:n |bij |. Notand C = BD2, avem cij ≤ 1 (ca si pentru B), liniile lui Cpastreaza norma infinit unitate, iar coloanele au aceeasi proprietate.

Alegand di si dj cele mai mici puteri ale lui β superioare valorilor 1/maxj=1:n |aij |,respectiv 1/maxi=1:n |bij |, obtinem evident normele infinit ale liniilor si coloanelor lui Cın intervalul [1/β, 1].

P2.27 a. Sa presupunem ca:

L =

[L 0X L

]

, U =

[U Y0 U

]

.

Atunci

B = LU =

[A LYXU XY + A

]

.

Deci LY = 0 si, deoarece A nesingulara implica L, U nesingulare, Y = 0; XU = R, deciX = RU−1, si X este superior triunghiulara.

b. [A 0R A

][x1

x2

]

=

[d1d2

]

Ax1 = d1Rx1 +Ax2 = d2

Se rezolva ıntai Ly = d1, Ux1 = y si se obtine x1 (ın 2n2 flopi). Se calculeaza apoif = d2−Rx1 (n2 flops); se rezolva Ly = f , Ux2 = y si se obtine x2 (ın 2n2 flopi). Totaluleste de doar 5n2 flopi. Schema de calcul prezentata poate fi aplicata pentru rezolvareaoricarui sistem bloc inferior triunghiular.

P2.28 a. Se utilizeaza eliminarea gaussiana; aij = 0, pentru i > j + n; multiplicatoriiµij vor respecta aceeasi relatie. b. Se utilizeaza eliminarea gaussiana cu pivotare partiala,care nu va afecta structura matricei A.

P2.29 a.

1. Pentru s = 1 : n− 11. as+1,s ← as+1,s/ass

2. as+1,s+1 ← as+1,s+1, − as+1,sas,s+1

P2.30 Se aplica o eliminare gaussiana pe dreapta (adica pe linii) pentru rezolvareasistemului FE = C. Notam p = n− s, deci F, C ∈ IRp×2.

Page 523: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 509

% permutarea coloanelor lui E si C1. Daca |e12| > |e11| atunci

1. e11 ↔ e12, e21 ↔ e222. Pentru i = 1 : p, ci1 ↔ ci2

% eliminare gaussiana la dreapta2. µ = e12/e113. e22 ← e22 − µe214. Pentru i = 1 : p

1. ci2 ← ci2 − µci1% rezolvare sistem inferior triunghiular, la dreapta5. Pentru i = 1 : p

1. fi2 ← c12/e222. fi1 ← (ci1 − fi2e21)/e11

P2.31 Notand tot cu aij elementele matricei P1AP T1 , prima relatie se demonstreaza

tinand seama ca aij = aij− (ai1/a11)aj1 si, ın plus, |ai1| ≤ µ0 si |a11| = µ1 ≥ αµ0. Asadar

maxi,j|aij | ≤ |aij |+ 1

α|aj1| ≤ (1 +

1

α)max

i,j|aij |.

A doua relatie se demonstreaza ın acelasi stil, folosind formulele adecvate pentru aij .P2.32 Detaliem numai cazul s = 2. Pivotul se gaseste ın pozitia (ik, jk) si trebuie

adus, la pasul curent k, ın pozitia (k+1, k). Pentru aceasta sunt necesare doua permutaride linii si de coloane (orice permutare de linii este ınsotita de una de coloane, si reciproc,pentru a pastra simetria). Intai se permuta liniile si coloanele k + 1 si ik, cu operatiile:

A(k + 1, k + 1) ↔ A(ik, ik)A(k + 1, 1 : k) ↔ A(ik, 1 : k)A(k + 2 : ik − 1, k + 1) ↔ A(ik, k + 2 : ik − 1)A(ik + 1 : n, k + 1) ↔ A(ik + 1 : n, ik).

(Sa notam ca pivotul a ajuns ın pozitia (jk, k + 1).) Apoi se permuta liniile si coloanele ksi jk, cu operatiile

A(k, k) ↔ A(jk, jk)A(k, 1 : k − 1) ↔ A(jk, 1 : k − 1)A(k + 1 : jk − 1, k) ↔ A(jk, k + 1 : jk − 1)A(jk + 1 : n, k) ↔ A(jk + 1 : n, jk).

P2.33 Algoritmul Cholesky, varianta cu Saxpy, este urmatorul (L se scrie peste tri-unghiul inferior al lui A)

1. Pentru k = 1 : n1. akk ← √akk

2. Pentru i = k + 1 : n1. aik ← aik/akk

3. Pentru j = k + 1 : n1. Pentru i = j : n

1. aij ← aij − aikajk

Evident, bucla 1.3.1 se poate ınlocui cu un apel la Saxpy.P2.34 Se respecta structura algoritmului la nivel de element, preluand ideile din algo-

ritmul CROUTbl.

Page 524: metode de calcul numeric matriceal. algoritmi fundamentali

510 INDICATII, RASPUNSURI, SOLUTII

1. Pentru k = 1 : m1. s← (k − 1)r + 12. f ← kr3. A(s : f, s : f)← A(s : f, s : f)− L(s : f, 1 : s− 1) · LT (1 : s− 1, s : f)4. Utilizand CHOL, calculeaza factorizarea Cholesky

A(s : f, s : f) = L(s : f, s : f) · LT (s : f, s : f)(blocul L(s : f, s : f) se memoreaza ın triunghiul inferior al lui A(s : f, s : f))

5. A(f+1 : n, s : f)← A(f+1 : n, s : f)− L(f+1 : n, 1 : s−1) · LT (1 : s−1, s : f)6. Rezolva sistemul superior triunghiular ZLT (s : f, s : f) = L(f + 1 : n, s : f)7. L(f + 1 : n, s : f)← Z

In instructiunea 1.3 se utilizeaza SYRK, ın 1.5 GEMM iar ın 1.6 TRSM. Transpunerea nu seefectueaza explicit, ci se paseaza rutinelor BLAS.

P2.35 T = AAT nu este deja factorizarea Cholesky deoarece elementele diagonale alelui A nu sunt neaparat pozitive. Fie T = LLT factorizarea Cholesky. Este natural saıncercam sa demonstram ca L este inferior bidiagonala. Pentru orice k ∈ 1 : n− 1:

tkk = a2k,k−1 + a2

kk = l2k,k−1 + l2kktk+1,k = ak+1,kakk = lk+1,klkk.

De asemenea, este natural sa ıncercam sa demonstram ca |lij | = |aij |; pentru prima relatiede mai sus, semnele nu conteaza; pentru a doua, daca akk este negativ, luam lkk = −akk

si lk+1,k = −ak+1,k. Algoritmul va fi:

1. Pentru k = 1 : n1. lkk ← |akk|2. Daca k < n atunci

1. Daca akk < 0 atunci lk+1,k ← −ak+1,k

altfel lk+1,k ← ak+1,k

P2.36 Algoritmul CHOL pentru matrice banda de latime r este

1. Pentru k = 1 : n

1. α← akk −∑k−1

j=max(1,k−r)l2kj

2. Daca α ≤ 0 atunci

1. Afiseaza(’A nu este pozitiv definita’)2. Stop

3. akk ← lkk =√α

4. Pentru i = k + 1 : min(k + r, n)

1. aik ← lik =(

aik −∑k−1

j=max(1,i−r)lij lkj

)

/lkk

P2.37 Se procedeaza analog cu algoritmul CHOL. Calculele decurg ın ordine inversa,i.e. cu k = n : −1 : 1.

P2.38 Calculand pe loc ın A, un algoritm direct inspirat de CHOL este

1. Pentru k = 1 : n

1. akk ← dk = akk −∑k−1

j=1l2kjdj

2. Pentru i = k + 1 : n

1. aik ← lik =(

aik −∑k−1

j=1lij lkjdj

)

/dk

Page 525: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 511

Numarul de operatii este ınsa sensibil mai mare decat pentru CHOL. Pentru a-lreduce, se elimina ınmultirea cu dj din 1.2.1 astfel

1. Pentru k = 1 : n1. Pentru j = 1 : k − 1

1. akj ← lkj = akj/dj

2. akk ← dk = akk −∑k−1

j=1l2kjdj

3. Pentru i = k + 1 : n

1. aik ← aik −∑k−1

j=1lijlkj

Cap. 3. Problema celor mai mici patrate

P3.3 Scriem ca de obicei Ux = x − νu, unde ν = uTx/β. Prin urmare trebuie saavem x − νu = ρy, deci putem lua u = x − ρy, unde modulul lui ρ e fixat prin conditia‖Ux‖ = ‖x‖, iar semnul se alege ın mod adecvat.

P3.4 a. Amintim ca U este o transformare involutiva, i.e. U2 = I , prin urmareconditia impusa este echivalenta cu ρUx = e1, unde ρ = ‖x‖ 6= 0.

b. U este o transformare ortogonala, deci coloanele matricei U sunt vectori normati siortogonali doi cate doi ın IRm.

P3.5 a. Cu notatiile din sectiunea 2.1, considerati transformarea elementara stabi-lizata T = M1P1 astfel ıncat (Tx)i = 0, i = 2 : m. Aratati ca vectorii yj = T T ej ,j = 2 : m, satisfac conditia ceruta. Ce se obtine daca ın locul lui T se considera unreflector ?

P3.6 Evident, functia ρ2(α) = ‖y − αx‖2 este un polinom de gradul 2 ın α,

ρ2(α) = α2‖x‖2 − 2αyTx+ ‖y‖2,

deci problema este elementara. Interpretarea geometrica devine transparenta daca pre-supunem ca ‖x‖ = 1.

P3.7 a. detU = −1.b. Scriem Ux = λx si obtinem (λ − 1)x = −2u(uTx), unde x 6= 0. Prin urmare

avem fie (i) λ = 1 si uTx = 0, fie (ii) x = u si λ = −1. In primul caz obtinem m − 1vectori proprii ortogonali (vezi problemele 3.4b sau 3.5b), deci λ = 1 este valoare propriede multiplicitate (algebrica si geometrica) m−1. Prin urmare λ = −1 este valoare propriesimpla. Descompunerea spectrala U = V ΛV T se scrie cu usurinta.

c. Utilizam relatia U2 = Im.

P3.8 De exemplu, ın cazul Π =

[0 11 0

]

putem lua u = [1 − 1]T , β = 1/2.

P3.9 a. Daca S = RTR este factorizarea Cholesky a lui S, atunci relatia UTSU = Seste echivalenta cu V TV = Im, unde V = RUR−1.

b. Considerati matricea U = Im − 2uuTS, unde ‖u‖2S = 1, si aratati ca U esteS-ortogonala si S-simetrica. Algoritmii de tip 3.1 si 3.2 se scriu ın mod evident.

P3.10 b. Conditia este ‖x‖J > 0, deci nu orice vector nenul din IRm poate fi adusla forma (3.200) utilizand J-reflectori. (Aceasta este o deosebire esentiala fata de cazuleuclidian uzual.) Vectorii cu ‖x‖J < 0 pot fi adusi la forma Ux = −σep+1, iar vectoriiizotropi (care satisfac (3.198)) raman izotropi. In plus, transformarea este rau conditionataın vecinatatea conului (3.198).

c. Partitionand matricele S si R conform cu J , putem scrie

[S11 S12

ST12 S22

]

=

[RT

11 0RT

12 RT22

][Ip 00 −Iq

][R11 R12

0 R22

]

, (7.3)

Page 526: metode de calcul numeric matriceal. algoritmi fundamentali

512 INDICATII, RASPUNSURI, SOLUTII

de unde pe blocuri rezulta

S11 = RT11R11,

S12 = RT11R12,

S22 = RT12R12 −RT

22R22.

Din prima relatie, R11 poate fi determinat aplicand algoritmul de factorizare Choleskydaca si numai daca

S11 > 0. (7.4)

In acest caz, din a doua relatie rezulta R12 = R−T11 S12, iar a treia devine

S22 − ST12(R

T11R11)

−1S12 = −RT22R22.

Prin urmare R22 poate fi determinat (aplicand din nou algoritmul de factorizare Cholesky)daca si numai daca

S22not= S22 − ST

12S−111 S12 < 0. (7.5)

(Prin definitie, matricea S22 constituie complementul Schur al lui S11 ın S.)

In al doilea caz trebuie sa avem

[S11 S12

ST12 S22

]

=

[LT

11 LT21

0 LT22

][Ip 00 −Iq

][L11 0L21 L22

]

, (7.6)

de unde, procedand analog obtinem conditiile

S22 < 0, (7.7)

S11not= S11 − S12S

−122 ST

12 > 0. (7.8)

In particular, daca au loc conditiile ”de punct sa” (7.4) si (7.7), atunci si celelalte douaconditii, (7.5) si (7.8) sunt satisfacute, deci ambele factorizari (7.3) si (7.6) exista si potfi calculate aplicand algoritmul de factorizare Cholesky blocurilor S11, −S22 si respectiv−S22, S11.

d. Aratati ıntai ca A si B trebuie sa fie inversabile.

P3.12 Rotatia Pki modifica numai elementele de indici k si i ale lui x.

P3.14 a. Tinand seama de observatia 3.2, putem utiliza secventele P = P1m . . . P13P12

sau P = P12P23 . . . Pm−1,m.

b. Intai anulam componentele 2, 4, 6, . . . , utilizand secventa S(1) = P12P34P56 . . .; apoianulam componentele 3, 7, 11, . . . , utilizand secventa S(2) = P13P57P9,11 . . .; mai departese aplica S(3) = P15P9,13 . . . etc. Transformarea cautata contine m − 1 rotatii, grupateın secvente de rotatii disjuncte, i.e. P = S(p) . . . S(2)S(1), unde p ≤ log2 m. Observati carotatiile ce compun o secventa pot fi aplicate ın orice ordine (i.e. comuta), dar ca ordineasecventelor este predeterminata.

P3.16 a. J = diag(1,−1). Prin urmare ‖Px‖2J = ‖x‖2J = x21 − x2

2.

b. Ambele probleme sunt rau conditionate ın vecinatatea ”conului” x1 = ±x2.

P3.17 Pentru orice transformare unitara U avem ‖Ux‖ = ‖x‖ =√7.

a. Exista doua posibilitati. Daca Q = QH este un reflector hermitic atunci obtinem

σ =x1

|x1| ‖x‖ =1 + i√

2

√7,

u1 = 1 +

2

7, u2 =

2 + i

1 + i

2

7, β = u1.

Page 527: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 513

Daca Q este un reflector complex, atunci

σ = Re(x1)‖x‖ =√7,

u1 = 1, u2 =2 + i

1 +√7 + i

, τ =1 +√7 + i√7

.

P3.19 Fie Q ∈ IRn×n, ortogonala. Triangularizand ortogonal matricea Q, obtinemUn−1 . . . U2U1Q = R, unde R este superior triunghiulara si ortogonala, ca produs dematrice ortogonale. Asadar R este diagonala; mai mult, normele coloanelor matricei Q seconserva prin ınmultirea cu reflectorii elementari, deci (alegand potrivit semnul) rii = 1,adica R = I . Rezulta Q = U1U2 . . . Un−1.

P3.20 a. Se utilizeaza secventa de rotatii QT = Pn,n+1 . . . P2nP1n.

b. uk = [0 . . . 0 ukk uk+1,k 0 . . . 0 un+1,k . . . umk]T (pentru A superior Hessenberg).

c. uk = [0 . . . 0 ukk 0 . . . 0 un+1,k . . . un+k,k 0 . . . 0]T .

P3.21 Pentru a nu altera structura de zerouri, se anuleaza elementele aik, i = n+1 : m,din blocul C, ıncepand cu ultima coloana. Matricea R+ rezulta inferior triunghiulara.

P3.22 In cazul m > n, rotatiile necesare pentru anularea elementelor subdiagonalepot fi grupate ın cel mult m + n − 2 secvente de rotatii disjuncte; de exemplu, ın cazulm = 6, n = 5 avem m+ n− 2 = 9, iar gruparea se face astfel

× × × × ×1 × × × ×2 3 × × ×3 4 5 × ×4 5 6 7 ×5 6 7 8 9

.

(Elementele marcate cu aceeasi cifra sunt anulate de rotatii disjuncte aprtinand aceleaisisecvente.)

P3.23 a. QT = P12P23 . . . Pn−1,n.

b. Rotatiile pot fi memorate printr-un singur numar z, vezi procedura ROTG. Totusi,pozitiile (i, i + 2), i = 1 : n − 2, nu raman nule, la fel ca ın cazul eliminarii gaussiene cupivotare partiala.

P3.24 Daca b = ρe1, atunci problema e banala, R+ = R+ρe1cT . De aici provine ideea

de a anula ultimele n− 1 componente ale lui b fara a altera prea mult structura lui R. Sevede usor ca secventa de rotatii (numai ın aceasta ordine !) P = P12P23 . . . Pn−1,n poate re-aliza acest obiectiv. Matricea PR este evident superior Hessenberg, deci

Hnot= P (R + bcT ) = PR + ρe1c

T are aceeasi structura. Mai departe se procedeaza caın problema 3.23, i.e. R+ = QTH .

P3.25 Cel mai simplu, partitionam B, C pe coloane si scriem BCT =∑p

j=1bjc

Tj .

Problema se reduce astfel la cea anterioara.

P3.26 Scriem

P+ = [ATRT CT ]

[RAC

]

not= AT

+A+,

deci QTA+ = R+.

P3.27 A+ rezulta superior Hessenberg, vezi problema 3.23.

P3.28 In cazul p < n, reflectorii Qj , j = p+1 : n, nu sunt activi. In cazul p > n, ıntaise acumuleaza coloanele j = n+ 1 : p, apoi se aplica procedura GQR.

P3.30 A doua, ın care Q se ”umple” treptat.

P3.31 a. Constructia lui Y ıncepe cu ultima coloana.

Page 528: metode de calcul numeric matriceal. algoritmi fundamentali

514 INDICATII, RASPUNSURI, SOLUTII

b. S+ =

[S si0 βi

]

, unde si = W Tui, βi = 1/τi. Forma din text este preferabila,

deoarece aplicarea transformarii necesita numai ınmultiri de matrice.

P3.38 Se partitioneaza B ın blocuri si se utilizeaza informatia din triunghiul strictinferior al lui A pentru a se forma bloc-reflectorii necesari.

P3.40 A = Q′R′.

P3.41 G = R′TR′, deci α = yT y, cu y = (R′)−T c.

P3.44 Procesul de ortogonalizare ıncepe cu ultima coloana an = qnlnn.

P3.46 a. Notand c = RT d, putem scrie

G+not= G+ CTC = [RT CT ]

[RC

]

= AT+A+,

d+not= RT d+CT y = [RT CT ]

[dy

]

= A+b+,

deci problema se reduce la rezolvarea ın sensul CMMP a sistemului A+x = b+, unde A+

este matricea din problema 3.20.

b. Se aduce A+ la forma superior triunghiulara QTPA+ = R+ si se aplica trans-formarile membrului drept.

P3.47 Se procedeaza ca ın sectiunea 3.5.1.

P3.48 Matricea B = AT+ are structura din problema 3.20. Prin urmare, daca V B = R,

unde V = Vm . . . V2V1, atunci evident A+Z = L, unde Z = V T si L = RT . Reflectoriireali Vk = In − νkν

Tk /βk sunt matrice simetrice. In cazul complex, considerat ın text, am

notat Vk = ZHk , unde Zk = I − τkνkν

Hk si τk = 1/βk

P3.49 a. O matrice epica A este inversabila la dreapta, i.e. exista Ad astfel ıncatAAd = Im (de exemplu se poate lua Ad = A+, unde A+ = AT (AAT )−1). Daca (si numaidaca) m = n, atunci Ad = A−1 este unica. Daca m < n, atunci multimea inverselor ladreapta este Ad = A++Z′′B, unde Z′′ este o baza (nu neaparat ortogonala) a subspatiuluiN = KerA, iar B este o matrice oarecare.

b. P2 = Im − AA+ este proiectorul ortogonal pe S⊥ = KerAT , deci are structura

P2 = Q

[0 00 Im−n

]

QT , Q = [Q′ Q′′],

unde QTA = R. De asemenea, norma Frobenius este ortogonal invarianta.

P3.50 a. Daca A este monica si QTA = R, atunci AT este epica si ATQ = RT . Prinurmare, notand y = Qv, sistemul AT y = c devine RT v = c. Mai departe se procedeaza caın sectiunea 3.6.3.

P3.51 In primul caz, daca A este monica cu m > n, algoritmul are n etape. Pentru aanula elementele subdiagonale, acum se utilizeaza transformarile elementare (stabilizate)Mk, respectiv Tk = MkPk (vezi sectiunea 2.1). Notand

MA = R =

[R′

0

]

, M−1 = S = [S′ S′′],

putem scrie A = S′R′, unde R′ este inversabila, deci S′ este o baza (neortogonala) asubspatiului S = ImA, iar S′′ este o completare (oarecare) a lui S′ pana la o baza a lui

IRm. Considerand sistemul supradeterminat Ax = b si notand Mb = d =

[d′

d′′

]

, conditia

de compatibilitate este d′′ = 0.

Page 529: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 515

In al doilea caz, daca A este epica cu m < n obtinem

AN = L = [L′ 0], N = [N ′ N ′′],

unde N ′′ este o baza (neortogonala) a subspatiului N = KerA. Considerand sistemul

subdeterminat Ax = b si notand x = Nu = N

[u′

u′′

]

, obtinem sistemul echivalent

L′u′ = b. Prin urmare, o solutie a sistemului Ax = b este 19

xB = N

[(L′)−1b

0

]

,

iar multimea tuturor solutiilor este x = xB + N ′′u′′, unde u′′ ∈ IRn−m este un vectorarbitrar.

Pe scurt, analiza elementara a sistemelor liniare Ax = b cu m 6= n poate fi facutautilizand metoda eliminarii gaussiene.

P3.52 a. Fie S =

[QH 00 (R′)−H

]

. Calculati SHSH si gasiti apoi permutarea

potrivita.

b. Procedati direct, aratand ca H

[

P2 (A+)H

A+ −G−1

]

= Im+n, sau tineti seama de

semnificatia lui H ın problema CMMP din sectiunea 3.5.

P3.54 a. (ATSA+ T )x∗ = ATSb. Tineti seama de problema 3.46.b. A trebuie sa fie monica. Utilizand factorizarea Cholesky S = DT

1 D1 si notandA← D1A, b← D1b, se obtine problema CMMP din sectiunea 3.5.

P3.55 a. Notand cu λ ∈ IRm vectorul multiplicatorilor, functia lui Lagrange este

L(x, λ) =1

2xTGx− xT c+ λT (Ax− b).

Anuland derivatele partiale ale lui L, se obtin conditiile

Gx∗ − c+ ATλ∗ = 0, Ax∗ = b. (7.9)

In cazul G > 0, se utilizeaza factorizarea Cholesky G = RTR pentru a reduce problema lacea standard din sectiunea 3.6.

b. Pentru a rezolva sistemul (7.9) se utilizeaza procedura de triangularizare ortogonalala dreapta AZ = [L1 0], unde L1 este inferior triunghiulara inversabila. Notand

x∗ = Zu, u =

[u1

u2

]

precum si

ZTGZ =

[H11 H12

HT12 H22

]

, ZT c =

[d1d2

]

,

se obtine

H11u1 +H12u2 + LT1 λ

∗ = d1HT

12u1 +H22u2 = d2L1u1 = b.

19 In terminologia specifica programarii liniare, xB se numeste solutie de baza.

Page 530: metode de calcul numeric matriceal. algoritmi fundamentali

516 INDICATII, RASPUNSURI, SOLUTII

In cazul general, x∗ este un punct de minim unic daca si numai daca H22 > 0. (Cumjustificati aceasta afirmatie ?) In consecinta se poate utiliza factorizarea CholeskyH22 = RT

2 R2.P3.56 Se aplica algoritmul de triangularizare ortogonala QTA = R. Notand

QTB = D, QT b = d si utilizand partitii adecvate, sistemul de restrictii se scrie[

R1

0

]

x+

[D1

D2

]

y =

[d1d2

]

,

unde R1 este superior triunghiulara inversabila, iar D2 este epica. Prin urmare, existamatricea Z ortogonala astfel ıncat D2Z = [0 R2], unde R2 este superior triunghiularainversabila. Notand

D1Z = [S1 S2], y = Z

[v1v2

]

,

se obtine [R1

0

]

x+

[S1 S12

0 R2

] [v1v2

]

=

[d1d2

]

,

iar din conditia de minim (ın care v2 este fixat) rezulta v1 = 0. Solutia problemei este:

v1 = 0, v2 = R−12 d2, ⇒ y∗ = Z

[0v2

]

x∗ = R−11 (d1 − S12v2).

P3.57 Se utilizeaza factorizarea ortogonala CZ = [L1 0]. Se noteaza x = Zu etc.P3.58 Urmatoarea procedura (LINPACK [XIII, pag. 8.7]) realizeaza permutarea

1. Pentru k = 1 : n1. πk ← −πk

2. Pentru k = 1 : n1. j = k1. Cat timp πj < 0

1. πj ← −πj

2. Daca j 6= k atunci

1. xj ↔ xπj

2. j ← πj

Cap. 4. Calculul valorilor si vectorilor proprii

P4.1 Spectrele celor doua matrice sunt aceleasi λ(A) = λ(B) = 2, 2, 4. Matricea Aeste diagonalizabila dar B nu.

P4.2 Nu. Daca x ∈ IRn, x 6= 0, si γ = α+ iβ, α, β ∈ IR, β 6= 0, atunci γx 6∈ IRn.P4.3 Implicatia ”A, B diagonalizabile ⇒ C diagonalizabila” este evidenta. Reciproc,

daca C este diagonalizabila, fie XC ∈ IC(m+n)×(m+n) o matrice nesingulara de vectoriproprii ai matricei C. Avem CXC = XCΛ, cu Λ diagonala. Considerand partitia XC =

=

[XA

XB

]

, (cu dimensiunile blocurilor, evidente) avem AXA = XAΛ. In continuare,

rangXA = m (ın caz contrar, XC nu ar fi nesingulara) si, prin urmare, XA are m coloaneliniar independente, care sunt vectori proprii ai matricei A. Deci, A este diagonalizabila.Similar se arata ca si matricea B este diagonalizabila.

P4.4 In cazul general, raspunsul la ıntrebare este negativ. Intr-adevar, e.g. dacaA1 = A2 = λ ∈ IC si A12 6= 0 matricea A nu este diagonalizabila. Exista si situatii ın

Page 531: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 517

care raspunsul este afirmativ, cum este cazul ın care λ(A1) ∩ λ(A2) = ∅. In aceasta dinurma situatie, fie X1 si X2 matrice nesingulare de vectori proprii pentru submatricele A1 si

A2. Atunci matricea (nesingulara)

[X1 X12

0 X2

]

, unde X12 = Y X2 cu Y solutia ecuatiei

matriceale Sylvester A1Y −Y A2 = −A12 (v. § 4.7), este o matrice de vectori proprii pentrumatricea A, i.e. A este diagonalizabila.

P4.5 Aratati ca matricele C =

[AB 0B 0

]

si D =

[0 0B BA

]

sunt asemenea (o

matrice de transformare posibila este T =

[Im A0 In

]

). Daca m > n, din λ(C) = λ(D)

rezulta ca multimea λ(AB) \ λ(BA) are toate elementele nule.

P4.6 b) Daca (A,B) = (XΛAX−1, XΛBX−1) atunci, tinand seama de faptul ca

matricele diagonale comuta, AB = BA rezulta prin calcul direct. c) Presupunem ca

AB = BA. Fie X−1AX = ΛA si consideram perechea (A, B)def= (ΛA, X

−1BX). Faraa reduce generalitatea, putem presupune ca ΛA are valorile proprii multiple grupate, i.e.ΛA = diag(λ1In1

, λ2In2, . . . , λpInp), cu λi 6= λj pentru i 6= j. Intrucat AB = BA,

rezulta B = diag(B1, B2, . . . , Bp). Dar, B fiind diagonalizabila, rezulta ca blocurile Bk

sunt diagonalizabile si, conform punctului a), perechea (λkInk, Bk) este diagonalizabila.

Prin urmare, (A, B) este diagonalizabila, de unde si (A,B) este diagonalizabila. Pentru

reciproca, vezi punctul b). d) De exemplu, matricele A =

[1 10 1

]

si B =

[0 10 0

]

comuta, dar nu sunt (simultan) diagonalizabile.

P4.7 Fie x un vector propriu al matricei A, asociat valorii proprii λ, si p cel maimare ıntreg pentru care vectorii x, Bx, . . ., Bp−1x sunt liniar independenti, i.e. pentrucare matricea Xp = [ x Bx · · · Bp−1x ] este monica. Atunci, subspatiul X = ImXp esteB-invariant si, prin urmare, contine un vector propriu y = Xpz al matricei B. DarAB = BA implica ABk = BkA. Rezulta Ay = AXpz = λXpz = λy, i.e. y este vectorpropriu al matricei A.

P4.8 Aratati ca λ1yH2 x1 = λ2y

H2 x1.

P4.9 Fara a reduce generalitatea, putem considera ca ‖x‖2 = 1. Conform lemei 4.2

(deflatie unitara), daca matricea [x X ] este unitara, atunci B = XHAX =

[

λ bH

0 C

]

.

Acum, daca y este un vector propriu la stanga al matricei A, atunci z = XHy este un vectorpropriu la stanga al lui B, i.e. zHB = λzH . Cum λ este o valoare proprie simpla, matriceaλIn−1 − C este nesingulara. Rezulta z(2 : n) = (λIn−1 − CH)−1bz1, cu z1 = xHy 6= 0

ıntrucat, ın caz contrar, z = 0. Matricea A =

[0 10 0

]

nu este simpla, iar vectorii proprii

sunt de forma x =

[α0

]

si y =

[0β

]

, α, β ∈ IC, α 6= 0, β 6= 0, ceea ce implica yHx = 0.

P4.10 Conform problemelor 4.8 si 4.9, yHi xj = 0 daca i 6= j si putem scala vectorii

proprii astfel ıncat yHi xi = 1. Deci, daca X si Y sunt cele doua matrice de vectori proprii,

atunci Y HX = In. Rezulta A = XΛX−1 = XΛY H =∑n

i=1λixiy

Hi .

P4.11 Din Ax = λx, x 6= 0, rezulta imediat Akx = λkx (inductie), (A − µIn)x == (λ− µ)x si, daca A este nesingulara (caz ın care avem λ 6= 0), 1

λx = A−1x.

P4.12 Avem Akx = λkx pentru toti λ ∈ λ(A) si x vector propriu asociat lui λ. RezultaPx = p(A)x = p(λ)x.

P4.13 Fie λ ∈ λ(A) si x un vector propriu asociat. Atunci, conform problemei 4.12,Px = p(λ)x si Qx = q(λ)x. Intrucat Q este nesingulara avem q(λ) 6= 0 si, prin urmare,

Page 532: metode de calcul numeric matriceal. algoritmi fundamentali

518 INDICATII, RASPUNSURI, SOLUTII

Q−1x =1

q(λ)x. Rezulta Rx = r(λ)x.

P4.14 Daca valorile proprii ale matricei A sunt numerotate ın ordinea descrescatoarea modulelor, atunci avem ρ(A) = |λ1|, ρ(A−1) = 1/|λn|. Apoi se aplica teorema 4.10.

P4.15 a) Pentru matricele nilpotente, λ ∈ λ(A) ⇒ λk ∈ λ(0), i.e. λk = 0, i.e. λ = 0.b) Pentru matricele idempotente, fie x cu ‖x‖ = 1, un vector propriu al matricei A asociatvalorii proprii λ. Din xHA2x = xHAx rezulta λ2 = λ, i.e. λ ∈ 0, 1.

P4.16 a) Cate unul singur ın ambele cazuri. b) Daca o celula Jordan de ordin n ar fidiagonalizabila, atunci ar avea n vectori proprii liniar independenti ceea ce ar contrazicea). c) Avem Jλ = λIn + J0. Cum matricea unitate comuta cu orice alta matrice, pentrucalculul matricei Jk

λ se poate utiliza formula binomului lui Newton, ın care se tine seamade faptul ca J i

0 este o matrice care are elementele de pe supradiagonala i egale cu unitatea,iar toate celelalte elemente sunt nule. Daca λ 6= 0, Jk

λ nu este diagonalizabila pentru niciun k ∈ IN∗. Jk

0 = 0, deci diagonala, pentru orice k ≥ n. d) Se rezolva ecuatia XJλ = Incare, scrisa pe coloane, se reduce la rezolvarea sistemelor liniare λx1 = e1, xj−1+λxj = ej ,j = 2 : n (ın aceasta ordine!). Nu.

P4.17 Fie H(λ) = H − λIn. Matricea H21(λ)def= H(2:n,1:n−1)(λ) este nesingulara

∀λ ∈ IC, deci rangH(λ) ≥ n − 1, ∀λ ∈ IC. In particular, H = H(0) si, prin urmare,rangul lui H nu poate fi decat n sau n− 1. Vectorii proprii x asociati unei valori propriiλ ∈ λ(H) trebuie sa satisfaca H(λ)x = 0, de unde rezulta x(1 : n− 1) = v(λ)xn cu v(λ) == H−1

21 (λ)H(2:n,n)(λ), i.e. toti vectorii proprii asociati lui λ sunt de forma x = ρ[vT (λ) 1]T

cu ρ ∈ IC \ 0 arbitrar, indiferent de ordinul de multiplicitate algebrica a lui λ. Deci,multiplicitatea geometrica a unei valori proprii a unei matrice Hessenberg ireductibile nupoate fi decat 1 si, prin urmare, o astfel de matrice cu valori proprii multiple nu estediagonalizabila.

P4.18 a) Se calculeaza det(λIn − C), e.g. prin dezvoltare dupa elementele primeilinii. b) C este nesingulara daca si numai daca 0 6∈ λ(C), i.e. p(0) = pn 6= 0. Pentrucalculul inversei recomandam rezolvarea ecuatiei matriceale CX = In pe blocuri definiteconvenabil sau considerarea unei permutari F = PC a liniilor astfel ıncat matricea F esteinferior triunghiulara, apoi C−1 = F−1P . c) Fie x un vector propriu al matricei C asociatvalorii proprii λ. Considerand xn 6= 0, e.g. xn = 1 rezulta xk = λn−k. Obtinem o matricea vectorilor proprii de tip Vendermonde care este nesingulara daca si numai daca valorileproprii sunt distincte, singura situatie ın care C este diagonalizabila. La acest ultim rezul-tat se ajunge si observand ca matricea C are o structura superior Hessenberg ireductibilasi aplicand rezultatul problemei precedente. Pentru calculul unui vector propriu al matri-cei CT asociat aceleeasi valori proprii, presupuneti x1 6= 0 si rezolvati sistemul. Se obtinexk = λk−1 + p1λ

k−2 + · · · + pk−1. d) Mai sunt doua structuri cu coeficienti polinomuluipe ultima linie, respectiv, pe ultima coloana, ın ordine inversa.

P4.19 a) O matrice reala de rotatie plana Pjk (i.e. ın planul (j, k)), de ordinul n,definita de scalarii c si s are, evident, n − 2 valori proprii egale cu 1, celelalte doua fiindλj,k = c ± is. Putem lua el drept vectori proprii asociati valorilor proprii λl = 1. Dacas 6= 0, xj,k = ej ± iek sunt vectori proprii asociati valorilor proprii complexe. b) Unreflector elementar real U = In − 2uuT cu u ∈ IRn, ‖u‖ = 1, fiind simetric are toatevalorile proprii reale si fiind ortogonal are toate valorile proprii de modul 1. Deci valorileproprii sunt 1 sau −1. Fie acum un reflector elementar V astfel ıncat V Tu = e1. AvemV TUV = In − 2e1e

T1 = diag(−1, 1, . . . , 1), i.e. exista o singura valoare proprie egala cu

−1. Un set complet de vectori proprii este dat de coloanele lui V .

P4.20 Presupunem ca matricea normala A este triunghiulara. Avem A = UΛUH

cu U unitara si Λ diagonala. Atunci AH = UΛUH . Rezulta aij = λiU(i, :)(U(j, :))T siaji = λiU(i, :)(U(j, :))T , unde λi = Λ(i, i). Deci, daca aij = 0, atunci si aji = 0. Pentru

Page 533: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 519

cazuri particulare de matrice normale, demonstratia poate fi mai directa. De exemplu,daca matricea unitara Q este, e.g. superior triunghiulara, atunci inversa ei Q−1 = QH

este simultan superior si inferior triunghiulara, i.e. diagonala.

P4.21 Fie A =

[α βγ δ

]

. Din ATA = AAT rezulta β2 = γ2. Daca γ = β matricea

este simetrica, iar daca γ = −β rezulta δ = α.

P4.22 Fie A normala si S = QHAQ o forma Schur reala a lui A, ın care, fara a reducegeneralitatea, putem presupune ca valorile proprii reale (ın numar de q) sunt situate ınprimele q pozitii diagonale. Deci S este normala si are structura

S =

R A1,q+1 · · · A1p

Aq+1,q+1 · · · Aq+1,p

. . ....

App

,

cu R ∈ IRq×q superior triunghiulara. Din (STS = SST )11 rezulta RTR = RRT++∑p

j=q+1Bj , unde Bj = A1jA

T1j , j = q + 1 : p, sunt matrice simetrice, pozitiv semi-

definite. Cum ınsa tr(RTR) = tr(RRT ), rezulta∑p

j=q+1trBj = 0. In continuare, din

faptul ca λi(Bj) ≥ 0 pentru toti i, rezulta trBj =∑

iλi(Bj) ≥ 0. Deci, trBj = 0 pentru

toti j si, prin urmare, λi(Bj) = 0 pentru toti i si j. Cum ınsa o matrice simetrica avandtoate valorile proprii nule este nula (demonstrati!) Bj = 0 si, de aici, A1j = 0 pentru totij. Acum RTR = RRT , i.e. R este normala, si cum este triunghiulara, este diagonala (v.problema 4.20). In continuare se procedeaza similar. Din (STS = SST )q+1,q+1 rezultaAq+1,j = 0, j = q+2 : p si ca blocul 2 × 2 Aq+1,q+1 este normal. Avand valori propriicomplexe, conform problemei 4.21, are structura din teorema etc. Reciproca este imediata.

P4.23 c) Fie B = 12(A + AH) si C = 1

2(A − AH). Atunci A = B + C si, conform

punctelor a), b), B este hermitica iar C este antihermitica. Presupunem ca avem si A == B+C cu B hermitica si C antihermitica. Atunci 2B = A+AH = B+C+BH+CH = 2B.Deci B = B. Analog, 2C = A − AH = 2C, i.e. C = C. Deci descompunerea este unica.d) Se utilizeaza c) cu S = B si T = −iC.

P4.24 Se utilizeaza relatiile din definitii.

P4.25 Se utilizeaza relatiile din definitii si expresiile partilor hermitica si antihermitica(v. solutia problemei 4.23).

P4.26 Se considera un set de n vectori liniar independenti, e.g. ortogonali.

P4.27 Fie P o matrice de permutare. Intrucat P este unitara, A este normala (her-mitica, antihermitica, simetrica, antisimetrica) daca si numai daca la fel este si matriceaC = P TAP . Putem alege P astfel ıncat B = C(1 : k, 1 : k). a) Evident. b) Nu. De

exemplu, matricea A =

[6 3 11 3 33 −1 3

]

este normala, dar B = A(1 :2, 1:2) nu este.

P4.28 Conform teoremei 4.3, λmin(A) ≤ µ ≤ λmax(A).

P4.29 Daca B = QHAQ ∈ ICp×p, unde QHQ = Ip, atunci aplicand matricei B teo-rema Courant-Fisher avem µk = maxdimV=k minx∈VS

xHQHAQx, unde VS este multimeavectorilor de norma euclidiana unitara din subspatiul V ⊂ ICp. Acum, este usor de con-statat ca V = y ∈ ICn | y = Qx, x ∈ V este un subspatiu liniar al lui ICn, de aceeasidimensiune cu dimensiunea lui V (i.e. k) si ca multimea tuturor subspatiilor V estenumai o parte a multimii tuturor subspatiilor de dimensiune k din ICn. Prin urmare,λk = maxdimV=k minx∈VS

xHAx ≥ µk. Pentru cel de al doilea set de inegalitati se uti-lizeaza cealalta caracterizare minimax a valorilor proprii din teorema Courant-Fisher.

Page 534: metode de calcul numeric matriceal. algoritmi fundamentali

520 INDICATII, RASPUNSURI, SOLUTII

P4.30 Fie matricea hermitica B = UH1 AU1 =

[

a11 βeT1βe1 C

]

= F + G, unde F =

=

[a11 00 C

]

, G =

[

0 βeT1βe1 0

]

= F + G, obtinuta dupa aplicarea primului pas al

algoritmului de tridiagonalizare TQ. Evident µ = ‖A(1, 2 : n‖2 = |β|, iar matricele F si Gsunt hermitice. Cum a11 ∈ λ(F ), iar λmin(G) = −µ si λmax(G) = µ, conform teoremei 4.6rezulta existenta unei valori proprii λ a lui B, i.e. a lui A, astfel ıncat a11−µ ≤ λ ≤ a11+µ,q.e.d.

P4.31 De exemplu, matricele complexe A =

[1 ii 1

]

si B =

[1 ii i

]

sunt simetrice.

A este normala, dar B nu.

P4.32 Fie S = QHAQ forma Schur a lui A si M = maxi=1:n−1

j=i+1:n(|sij |). Consideram ma-

tricea diagonala D ∈ IRn×n de forma D = diag(1, δ, δ2, . . . , δn−1). Atunci ‖D−1SD‖∞ == maxi=1:n(|λi|+

∑n

j=i+1|sij |δj−i) ≤ maxi=1:n(|λi|+M

∑n

j=i+1δj−i) ≤ maxi=1:n(|λi|+

+M∑n−1

j=1δj). Alegand δ astfel ıncat

∑n−1

j=1δj ≤ M

ǫ(aratati ca se poate!) atunci se

obtine inegalitatea ‖D−1QHAQD‖∞ ≤ ρ(λ)+ ǫ. Este usor de vazut ca ‖ · ‖ : ICn×n → IR+

definita de ‖X‖ = ‖D−1QHXQD‖∞ este o norma matriceala consistenta.

P4.33 Pentru orice matrice T ∈ ICn×n nesingulara si B = T−1AT avem Bk = T−1AkT .Prin urmare, A este convergenta daca si numai daca este convergenta orice matrice aseme-nea cu A. Pentru matricele diagonalizabile rezultatul este imediat. In cazul general, seutilizeaza forma canonica Jordan aratand ca un bloc Jordan Jλ (vezi notatia din problema4.16) este convergent daca si numai daca |λ| < 1.

P4.34 Pentru fiecare matrice si transpusa ei se aplica teorema Gershgorin si se inter-secteaza domeniile astfel obtinute.

P4.35 Punctul cel mai departat de originea planului complex al reuniunii discurilorGergshgorin se afla la distanta δ = maxi=1:n(|aii| + ri) = maxi=1:n(

∑n

j=1|aij |) = ‖A‖∞.

Prin urmare ρ(A) ≤ ‖A‖∞. Aplicand acelasi rationament si pentru matricea AT se obtineevaluarea ρ(A) ≤ min(‖A‖1, ‖A‖∞), rezultat ın deplina concordanta cu teorema 4.10.

P4.36 a) Se utilizeaza bij = aijδjδi. In principiu, da (v. punctul b)). b) Daca A

are toate elementele pozitive avem r = minD ‖D−1AD‖∞ = minτ>0(max(a11+ τa12, a22+

+1

τa21)) (am notat τ = δ2

δ1). Se obtine r = ρ(A). c) r = 3 +

√7 >√14 = ρ(A).

P4.37 Din teorema discurilor Gershgorin se obtine λ(A) ⊂ D = [−21, 31]. Da, deexemplu scaland cu D = diag(1, 2, 2) se obtine λ(A) ⊂ D′ = [−13, 27]. (Spectrul lui Aeste λ(A) = −9,−9, 27).

P4.38 a) 0 nu apartine nici unui disc Gersgorin, deci 0 6∈ λ(A). b) Toate discurileGershgorin sunt situate ın IC+ = λ ∈ IC | Reλ > 0. c) Caz particular al lui b).

P4.39 a) Daca A are (cel putin) o linie nula, atunci rezultatul este evident. In cazcontrar, fie δi =

∑n

j=1|aij | > 0, i = 1 : n, si D = diag(δ1, δ2, . . . , δn). Matricea B = D−1A

are ρ(B) ≤ ‖B‖∞ ≤ 1. Deci, |detB| =∏n

i=1|λi(B)| ≤ 1. Inegalitatea ceruta se obtine din

|detA| = |detD| · |detB| ≤ |detD|. b) Se aplica a) pentru matricea AT .

P4.40 Rezultatul generalizeaza teorema discurilor lui Gershgorin, care se obtine luandα = 1 (pentru A) sau α = 0 (pentru AT ). De aceea consideram numai cazul α ∈ (0, 1).Presupunem ri > 0, ci > 0, i = 1 : n (altfel exista o linie sau o coloana cu toate elementeleextradiagonale nule, care poate fi deplasata ın prima pozitie printr-o transformare de

Page 535: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 521

asemanare tip permutare). Vom utiliza inegalitatea Holder, i.e.

n∑

i=1

|αi| |βi| ≤(

n∑

i=1

|αi|p) 1

p(

n∑

i=1

|βi|q) 1

q

, unde p > 1,1

p+

1

q= 1.

Fie λ ∈ λ(A), x 6= 0 un vector propriu asociat si xi = x(i). De asemenea, fie p = 1α

siq = 1

1−α. Avem

|λ− aii| |xi| =

∣∣∣∣∣∣∣

n∑

j=1j 6=i

aijxj

∣∣∣∣∣∣∣

≤n∑

j=1j 6=i

|aij | |xj | =n∑

j=1j 6=i

|aij |α(|aij |1−α|xj |) ≤

n∑

j=1j 6=i

|aij |

α

n∑

j=1j 6=i

(|aij |1−α|xj |)1

1−α

1−α

= rαi

n∑

j=1j 6=i

(|aij |1−α|xj |)1

1−α

1−α

,

i.e.

|λ− aii|rαi

|xi| ≤

n∑

j=1j 6=i

|aij | |xj |1

1−α

1−α

,

sau(|λ− aii|

rαi|xi|) 1

1−α

≤n∑

j=1j 6=i

|aij | |xj |1

1−α .

Insumand ultimele inegalitati ın raport cu i obtinem

n∑

i=1

(|λ− aii|

rαi

) 11−α

|xi|1

1−α ≤n∑

i=1

n∑

j=1j 6=i

|aij | |xj |1

1−α =

n∑

j=1

cj |xj |1

1−α ,

i.e.n∑

k=1

(

ck −(|λ− akk|

rαk

) 11−α

)

|xk|1

1−α ≥ 0.

Evident, ın ultima inegalitate, coeficientii pentru |xk|1

1−α nu pot fi toti negativi. Prinurmare, exista k astfel ıncat |λ − akk| ≤ rαk c

1−αk , q.e.d.

P4.41 Fie λ ∈ λ(A), x 6= 0 un vector propriu asociat si xi = x(i). De asemenea, fie|xp| = maxi=1:n |xi|. Daca xp este singura componenta nenula a lui x, atunci λ = app si,ıntrucat aii ∈ D pentru toti i ∈ 1 : n, rezulta λ ∈ D. Presupunem, ın continuare, ca xare cel putin doua componente nenule si fie xq 6= 0 cea de a doua componenta, ın ordineadescrescatoare a modulelor, i.e. |xp| ≥ |xq| ≥ |xi|, i = 1 : n. i 6= p, q. Avem

|λ− app| |xp| =

∣∣∣∣∣∣∣

n∑

j=1j 6=p

apjxj

∣∣∣∣∣∣∣

≤n∑

j=1j 6=p

|apj | |xq| = rp|xq |,

Page 536: metode de calcul numeric matriceal. algoritmi fundamentali

522 INDICATII, RASPUNSURI, SOLUTII

unde rp este raza discului Gershgorin asociat liniei p. Rezulta |λ− app| ≤ rp|xq||xp|

. Similar

se arata |λ− aqq| ≤ rq|xp||xq|

. Obtinem |λ− app| |λ− aqq| ≤ rprq, i.e. λ ∈ D, q.e.d.P4.42 Ambele valori proprii ale lui A sunt egale cu −1. Un vector propriu unitar

asociat este x = (1/√2)

[11

]

. Pentru obtinerea unei forme Schur se aplica deflatia or-

togonala ın cazul real, respectiv deflatia unitara ın cazul complex sau pentru obtinereaformelor Schur complexe ale unor matrice reale. De exemplu, luand Q = [x y], unde

xT y = 0, obtinem y = ±(1/√2)

[1−1

]

(de asemenea cu ‖y‖ = 1), de unde rezulta

QTAQ =

[−1 ±40 −1

]

. Sa remarcam faptul ca desi matricea A este defectiva (i.e. nu

este simpla) forma Schur exista si se poate construi. Valorile proprii ale lui B nu suntreale, deci o FSR a lui B este chiar B etc.

P4.43 Fie V ∈ ICn×(n−k) o completare a lui U pana la o matrice unitara, i.e. astfel ıncat

Q = [U V ] este unitara. Atunci f(X) = ‖QH(AU − UX)‖F = ‖[

UHAU −XV HAU

]

‖F =

=√

‖UHAU −X‖2F + ‖V HAU‖2F . Evident, minimul lui f este ‖V HAU‖F si se atingepentru X = UHAU .

P4.44 Prezentam doua solutii: Solutia 1. Fie S = UHAU o forma Schur a lui A.Notand T = UHBU , din AB = BA rezulta ST = TS, cu S superior triunghiulara cuelementele diagonale distincte. Din egalitatea primelor coloane a acestei relatii rezultasistemul liniar nesingular omogen (S(2 :n, 2:n)− s11In−1)T (2 :n, 1) = 0, de unde obtinemT (2 :n, 1) = 0, i.e. T este superior triunghiulara ın prima coloana, etc. Solutia 2. Dacaλ ∈ λ(A) si Ax = λx, atunci BAx = λBx, A(Bx) = λ(Bx) si, ıntrucat valorile proprii alelui A sunt distincte, A are un set complet de vectori proprii liniar independenti si Bx = αx(Bx este un vector propriu atat pentru A cat si pentru B). Intrucat procedura de deflatiepentru reducerea la forma Schur utilizeaza vectori proprii, forma Schur a matricelor A siB se obtine cu aceeasi transformare de asemanare (argumente similare se pot aduce si ıncazul real).

P4.45 a) Fie U1 un reflector complex (hermitic, v. cap.3) astfel ıncat UH1 x = ρe1,

ρ 6= 0. Atunci v =1

ρU1e1 este vectorul cautat. Pentru calculul sau (i.e. al elementelor

definitorii ale reflectorului) se poate utiliza procedura Hc si relatia de mai sus. b) Severifica imediat ca Bx1 = 0 si BxB

i = λixBi , i = 2 : n. Altfel, considerati o matrice unitara

U astfel ıncat Ue1 este coliniar cu x1 si calculati UHBU .

P4.46 a) Prezentam doua solutii. Solutia 1 (geometrica). Fie X complementulortogonal al subspatiului Imx si Y complementul ortogonal al subspatiului Imy. FieU = X

⋂Y si V = X + Y. Intrucat dimX = dimY = n − 1 si dim(V) ≤ n, rezulta

n − 1 ≥ dimU = dimX + dimY − dimV ≥ n − 2, cazul generic fiind dimU = n − 2.Fie, ın cazul generic, U ∈ ICn×(n−2) o matrice ale carei coloane formeaza o baza orto-gonala pentru U , X = [x2 U ] ∈ ICn×(n−1) o matrice ale carei coloane formeaza o bazaortogonala pentru X si Y = [y2 U ] ∈ ICn×(n−1) o matrice ale carei coloane formeazao baza ortogonala pentru Y. Definim matricele X = [x Y ] si Y = [ y X ]. Avem

Y HX =

yH

yH2

UH

[

x x2 U]=

1 0 0

0 yH2 x2 0

0 0 In−2

. Aratati ca x2 si/sau y2 pot

fi scalati astfel ıncat yH2 x2 = 1. Solutia 2 (procedurala). Fie U1 reflectorul pentru care

Page 537: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 523

UH1 y = αe1. Notam UH

1 X = Z =

[z11 Z12

Z21 Z22

]

, UH1 Y = W =

[α W12

0 W22

]

. Din

conditiile Xe1 = x si Y HX = WHZ = In, rezulta ecuatiile

[z11Z21

]

= U1x, WH22Z22 =

= In−1, WH12z11 + WH

22Z21 = 0, care sunt satisfacute, de exemplu, pentru Z22 = In−1,W22 = In−1, W12 = − 1

z11ZH

21. b) Daca λ este o valoare proprie simpla a matricei A, con-form problemei 4.9, vectorii proprii asociati x (la dreapta) si y (la stanga) satisfac conditiayHx 6= 0 si se pot scala astfel ıncat yHx = 1. Fie matricea X si X−1 = Y H calculate ca la

punctul a). Atunci X−1AX =

[yH

Y H

]

A[

x X]=

[λ 0

0 Y HAX

]

. Algoritmul este

urmatorul.

1. Pentru k = 1 : n− 11. x = vp(A(k : n, k : n))2. y = vp((A(k : n, k : n))T ), y = y

3. x =x

yHx4. Se calculeaza matricele X si Y (v. punctul a))5. A(k, k) = yHA(k : n, k : n)x6. A(k, k + 1 : n) = 0, A(k + 1 : n, k) = 0,

7. A(k + 1 : n, k + 1 : n)← Y HA(k + 1 : n, k + 1 : n)X.

P4.47 Pentru A, daca vectorul initial are prima componenta nenula, rezultatul este±e1, ıntrucat A(±e1) = 5(±e1) si λ(A) = 5, 2, 1. Pentru B avem λ(B) = α, 1 − √β,1 +√β. Deci, B va avea o valoare proprie dominanta ın urmatoarele situatii: a) β ≤ 0

si |α| > √1− β si b) β > 0 si |α| 6= 1 +√β.

P4.48 Fie matricea A =

[−2 10 1

]

si un vector initial y(0) =

[10

]

. Atunci vectorul

curent generat de metoda puterii va fi y(k) =Aky(0)

‖Aky(0)‖ = (−1)ky(0) si, prin urmare,

ek = ‖y(k)−y(k−1)‖ = ‖(−1)ky(0)− (−1)k−1y(0)‖ = 2 pentru toti k desi y(0) este un vectorpropriu asociat valorii proprii dominante λ1 = −2 a matricei A (de retinut ca criteriulutilizat ın algoritmii 4.1 si 4.2 functioneaza ıntrucat 1 − |(y(k))T y(k−1)| = 0). Evident,situatia de mai sus se datoreaza faptului ca valoarea proprie dominanta este negativa si,desi vectorii din sir sunt orientati corespunzator ca directie, ısi schimba sensul la fiecarepas. In cazul complex, vectorii proprii unitari sunt determinati pana la o multiplicarecu un numar complex de modul unitar, i.e. eiφ cu φ ∈ IR si, prin urmare, este posibilca vectorii din sirul generat de metoda puterii sa tinda catre multimea vectorilor propriiunitari asociati valorii proprii dominante desi diferenta dintre doi vectori consecutivi sanu tinda catre zero. Pentru metoda puterii inverse motivatiile sunt aceleasi.

P4.49 Se aplica sistematic lema de deflatie unitara. Rezulta urmatoarea schema decalcul.

1. Pentru k = 1 : n− 11. xk = vp(A(k : n, k : n))

2. xk =xk

‖xk‖3. Se determina o matrice unitara Qk astfel ıncat Qke1 = xk

4. A(k : n, k : n) = QHk A(k : n, k : n)

5. A( : , k : n) = A( : , k : n)Qk.

Page 538: metode de calcul numeric matriceal. algoritmi fundamentali

524 INDICATII, RASPUNSURI, SOLUTII

Daca matricea A are valorile proprii distincte, λk = A(k, k), zk este solutia sistemului liniar(A(1 : k−1, 1 : k−1)−λkIk−1)zk = −A(1 : k−1, k : n)xk (unde A este matricea data aflataın starea de dupa executia pasului curent k din schema de mai sus) si Qk = diag(Ik−1, Qk),

atunci xk = Q1Q2 . . . Qk−1

[zkxk

]

este vector propriu al matricei initiale asociat valorii

proprii λk.P4.50 Schema de calcul este similara celei care sta la baza algoritmului HQ:

1. Pentru k = 1 : n− 21. Se determina ik astfel ıncat |aikk| = maxi=k+1:n(|aik|)2. A(ik, k : n)↔ A(k + 1, k : n)3. Se determina matricea inferior triunghiulara elementara Mk+1

astfel ıncat (Mk+1A)(k + 2 : n, k) = 04. A = Mk+1A5. A( : , k + 1)↔ A( : , ik)6. A = AM−1

k+1.

Schema este de doua ori mai eficienta decat algoritmul HQ.P4.51 Ideea este urmatoarea: gasiti un reflector elementar (hermitic) U1, astfel ıncat

UH1 z = ρe1. Calculati A1 = UH

1 AU1. Apoi, reduceti A1 la forma superior HessenbergH = QHA1Q folosind algoritmul HQ. Matricea Q = U1Q defineste transformarea unitaradorita, ıntrucat QHz = UH

n−1UHn−2 . . . U

H2 UH

1 z = ρe1.P4.52 Testati, parcurgand prima subdiagonala, ca nu exista blocuri diagonale de ordin

mai mare decat 2 si, apoi, ca blocurile de ordinul 2 au valorile proprii complexe.P4.53 Daca Q = QH este reflectorul (hermitic) pentru care QHu = ρe1, atunci S =

= QHAQ = In + ρe1vHQ este superior triunghiulara si λ1 = s11 = 1 + ρvHq1, unde q1 =

= Qe1 = 1ρu este prima coloana a lui Q. Deci λ1 = 1+ vHu. Celelalte n− 1 valori proprii

sunt λi = sii = 1, i = 2 : n. u este vector propriu asociat lui λ1. Fie acum, Y reflectorul(hermitic) astfel ıncat Y Hv = σe1. Atunci SY ( : , 2 : n) = Y ( : , 2 : n), i.e. yj = Y ( : , j),j = 2 : n, sunt vectori proprii ai matricei S, iar xj = Qyj sunt vectori proprii ai matriceiA, asociati valorilor proprii egale cu 1.

P4.54 Aplicand lema de deflatie ortogonala, se calculeaza matricea ortogonala U astfel

ıncat UTHU =

[

λ cT

0 B

]

. Fie acum matricea ortogonala V , de ordinul n−1, astfel ıncat

G = V TBV este superior Hessenberg (utilizati algoritmul HQr). Matricea cautata esteQ = Udiag(1, V ).

P4.55 a) Secventa de pustmultiplicare a matricii superior triunghiulare R cu matricilePk si M−1

k afecteaza la pasul curent k numai coloanele k si k+1, de unde rezulta imediatconservarea structurii superior Hessenberg.

P4.56 Fara a reduce generalitatea, admitem ca restrictie a matricei A la subspatiul

A-invariant cautat chiar submatricea A22. Fie, ın aceasta ipoteza, Xdef= [x1 x2 ] ∈ IRn×2

si consideram partitia X =

[X1

X2

X3

]

, conforma cu dimensiunile blocurilor diagonale. Din

ecuatia matriciala AX = XA22 rezulta X3 = 0 ca unica solutie a ecuatiei Sylvesteromogene A33X3 = X3A22. In continuare, X2 este orice matrice reala nesingulara 2 × 2care comuta cu A22 (e.g. X2 = I2), iar X1 se obtine rezolvand ecuatia matriceala SylvesterA11X1 −X1A22 = −A12X2.

P4.57 Avem λ1(A) = 2 −√5, λ2(A) = 2 +

√5, iar doi vectori proprii asociati sunt

x1 =

[2

1−√5

]

, x2 =

[2

1 +√5

]

. Cei doi vectori proprii sunt ortogonali ıntrucat

Page 539: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 525

xT1 x2 = 0. Pentru celelalte matrice puteti utiliza calculatorul.

P4.58 Se utilizeaza reflectori complecsi care aplicati unui vector complex asiguraobtinerea unui vector real cu zerouri ın pozitiile necesare (v. cap. 3). (In pachetul deprograme LAPACK astfel de reflectori sunt folositi curent).

P4.59 Matricea QHAQ ramane antihermitica (ın cazul real, antisimetrica) oricare arfi matricea unitara (ortogonala) Q. Prin urmare, ın aplicarea procedurii de reducere laforma superior Hessenberg, matricele obtinute dupa fiecare pas al reducerii si matriceafinala sunt antihermitice (antisimetrice). O matrice superior Hessenberg antihermitica(antisimetrica) este tridiagonala. Exploatati aceste observatii structurale.

P4.60 a) Se obtine Hk+1(2, 1) =−γǫ2

(α− β)2 + ǫ2, ceea ce indica o convergenta patratica

la forma Schur. b) In cazul simetric se obtine Tk+1(2, 1) = Tk+1(1, 2) =−ǫ3

(α− β)2 + ǫ2,

ceea ce indica o convergenta cubica la forma diagonala.

P4.61 b) Aratam mai ıntai ca exista o matrice de permutare P (produs de matrice de

permutare elementare) astfel ıncat PBP T = diag(D1, . . . , Dn), unde Di =

[0 didi 0

]

.

Pentru claritate, vom considera numai cazul cand n este par. Mai ıntai, calculam o matriceasemenea cu B, aplicand matricele de permutare elementare Pn+1,2n, Pn+2,2n−1, . . . ,P3n/2,3n/2+1. Obtinem matricea C = QTAQ care are elemente nenule numai pe diagonalasecundara; mai precis, aceste elemente sunt situate din coltul din dreapta sus spre coltuldin stanga jos ın ordinea d1, d2, . . . , dn, dn, . . . , d2, d1. Atunci, aplicand permutarileelementare P2,2n, P4,2n−2, . . . , Pn,n+2, C este adusa la o forma cu blocuri diagonale 2× 2,i.e. diag(D1, D3, . . . , D4, D2). Permutarea acestor blocuri diagonale pentru a obtine formadiag(D1, D2, . . . , Dn) poate fi realizata cu usurinta utilizand un algoritm de sortare.

P4.62 a) Avem T ′ = L−1TL, deci matricele sirului sunt asemenea si, ın anumiteconditii (vezi b)), sirul poate pune asimptotic ın evidenta valori proprii ale matricei T .

b) Daca T =

[α ββ γ

]

, atunci T ′ are elementele α′ = α + β2

α, β′ = β

α

αγ − β2,

γ′ = γ− β2

α. Tinand seama de faptul ca λ1, λ2 sunt invarianti ai sirului, convergenta sirului

matriceal este echivalenta cu convergenta sirului numeric (αk)k∈IN definit de recurentaα′ = σ − κ

α, unde σ = λ1 + λ2 si κ = λ1λ2 sunt constante. Aratati ca acest din urma sir

este monoton si marginit si ca limita sa este λ1.

P4.63 a) Presupunem ca matricea tridiagonala simetrica reala T are o valoare propriemultipla λ. Pentru precizarea ideilor, consideram ca ordinul de multiplicitate este 2.Atunci exista doi vectori proprii ortogonali x si y asociati valorii proprii λ, i.e. Tx = λxsi Ty = λy, cu yTx = 0. Presupunem ca T este ireductibila, i.e. toate elementele sub-si supradiagonale sunt nenule. Consideram matricea S = T − λIn cu urmatoarea partitie

S =

[S11 S12

S21 S22

]

cu blocul S12 ∈ IR(n−1)×(n−1) nesingular. Atunci rezulta x(2 : n) =

= S−112 S11x(1). Intrucat x 6= 0, rezulta x(1) 6= 0. Absolut similar y(2 :n) = S−1

12 S11y(1) cuy(1) 6= 0. Rezulta ca x si y sunt coliniari ceea ce contrazice faptul ca sunt ortogonali. DeciT nu poate fi ireductibila. Daca ordinul de multiplicitate este mai mare decat 2 atunci,conform celor de mai sus, exista doua elemente extradiagonale simetrice nule care ”sparg”matricea T ın doua matrice tridiagonale simetrice din care cel putin una are o valoareproprie multipla etc. b) Generic, se constata o grupare a elementelor extradiagonale nuleınt-un bloc diagonal situat ın coltul din dreapta jos. Explicatia este urmatoarea: aplicareabilaterala a reflectorilor care realizeaza tridiagonalizarea aduce pe pozitiile (k+1, k) valoriegale ın modul cu norma de vector ‖A(k+1 : n, k)‖, valori care, pentru o matrice initiala fara

Page 540: metode de calcul numeric matriceal. algoritmi fundamentali

526 INDICATII, RASPUNSURI, SOLUTII

o structura particulara (ın afara simetriei) sunt, ın general, nenule. De aceea, elementelenule, obligatorii conform punctului a), apar la sfarsitul procesului de tridiagonalizare.

P4.64 Transformarile ortogonale conserva norma Frobenius. In consecinta, matricele[

app apq

aqp aqq

]

si

[a′pp a′

pq

a′qp a′

qq

]

=

[c −ss c

] [app apq

aqp aqq

] [c s−s c

]

au aceeasi norma

Frobenius, i.e. a2pp + a2

qq + 2a2pq = (a′

pp)2 + (a′

qq)2 + 2(a′

pq)2. De asemenea, matricele

A si A′ = JTAJ au aceeasi norma Frobenius. Notand cu B, B′ matricele elementelorextradiagonale ale matricelor A, respectiv A′, si tinand seama de faptul ca A si A′ diferanumai ın liniile si coloanele p si q, avem

‖B′‖2F = ‖A′‖2F −n∑

i=1

(a′ii)

2 = ‖A‖2F −n∑

i=1

a2ii + a2

pp + a2qq − (a′

pp)2 − (a′

qq)2 =

= ‖B‖2 − 2a2pq + 2(a′

pq)2.

Prin urmare ‖B′‖F este minima daca a′pq = a′

qp = 0.

P4.65 a) Daca γ = 0 rezultatul este imediat. Daca γ 6= 0 ecuatia (JTAJ)11 == c2α − 2csγ + s2β = δ este echivalenta cu cos(2θ + φ) = 2δ−α−β

2γsinφ = 2δ−α−β√

(α−β)2+4γ2,

unde θ = arccosc este unghiul ce defineste rotatia, iar φ = arcctgα−β2γ

. Rezulta ca θ exista

daca si numai daca∣∣∣

2δ−α−β√(α−β)2+4γ2

∣∣∣ ≤ 1, i.e. δ ∈ [λ1, λ2 ]. b) Se reduce mai ıntai A la

forma tridiagonala, dupa care se utilizeaza rezultatul de la punctul a).

P4.66 Utilizati faptul ca matricele antihermitice (antisimetrice) raman astfel la trans-formari unitare (ortogonale) de asemanare.

P4.67 κλ1= κλ2

=

√1+4ǫ2

2ǫ≈ 1

2ǫetc.

P4.68 Considerand o matrice de perturbatie E = ǫG, cu G = eieTj si observand ca, ın

acest caz, ∂λk

∂aij= dλk(ǫ)

dǫ, rezulta expresia dorita.

P4.69 Acesta este un exemplu celebru [ IV ] de matrice cu valori proprii bine separatesi, totusi, foarte rau conditionate. Vectorii proprii la dreapta, respectiv la stanga, asociati

valorii proprii λk = k, au expresiile xk = [ (−n)n−k

(n−k)!(−n)n−k−1

(n−k−1)!· · · (−n)2

2!(−n) 1 0 · · · 0 ]

T

ρ,

respectiv, yk = [ 0 0 · · · 0 1 n n2

2!· · · nk−2

(k−2)!nk−1

(k−1)!]Tτ unde ρ si τ sunt scalari nenuli arbi-

trari. Folosind, pentru simplitate, norma ‖ · ‖∞ rezulta κk = ‖xk‖∞‖yk‖∞|yT

kxk|

= nn−1

(n−k)!(k−1)!

numar care, pentru un n semnificativ, este foarte mare. Pentru n = 20 avem κ1 = κ20 =

= 2019

19!. Folosind formula lui Stirling m! ≈

√2πmmme−m pentru evaluarea factorialului,

se obtine κ1 = κ20 ≈ 2019e19

1919√

38π≈ 4.329 · 107.

P4.70 Acesta este un alt exemplu celebru [ IV ] de matrice cu o conditionare foartediferentiata a valorilor proprii: pentru un n semnificativ, valoarea proprie maxima estefoarte bine conditionata pe cand valoarea proprie minima este foarte rau conditionata.a) Se aplica varianta ”simbolica” a eliminarii gaussiene. b) Se repeta procedura de lapunctul a). Pentru n = 20 si ǫ = 10−10 avem detF = 1− 19! · 10−10 ≈ −1.216 · 107 fata de1 pentru ǫ = 0.

P4.71 a) Calculati valorile proprii λi, apoi p(λ) = Π(λ− λi).

b) Aceasta problema preocupa de cateva secole pe matematicieni care au propus zeci demetode pentru rezolvarea ei. Ultima si cea mai buna metoda consta ın formarea explicitaa unei matrice companion (v. problema 4.18) si calculul valorilor sale proprii utilizandalgoritmul QR.

Page 541: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 527

Cap. 5 Descompunerea valorilor singulare

P5.1 σ(A) = 4 +√5, 4−

√5 , σ(B) = 8 +

√10, 8−

√10 ,

σ(C) = 12 +√10, 12−

√10 .

P5.2 Fie A =

[α βγ δ

]

. Atunci

σ1 =

1

2(α2 + β2 + γ2 + δ2 +

(α2 − δ2)2 + (β2 − γ2)2 + 2(αβ + γδ)2 + 2(αγ + βδ)2 ) ,

si asa mai departe.P5.3 a) Utilizati faptul ca daca matricea Q este unitara, atunci si matricele Q, QT

si QH sunt unitare. b) Produsul a doua matrice unitare este o matrice unitara. c) FieA = UΣV H DVS a matricei A. Daca α 6= 0, atunci αA = U |α| ΣV H , cu U = α

|α|Uunitara.

P5.4 Fie A = UΣV H DVS a matricei A. Presupunem m ≥ n, caz ın care avemA = U1Σ1V

H , unde U1 = U( : , 1 : n), Σ1 = Σ(1 : n, : ). Conform unei versiuni evi-dente a propozitiei 5.1 avem B = QΛQH , unde Λ = diag(Σ1,−Σ1, 0(m−n)×(m−n)) si

Q = 1√2

[V V 0

U1 −U1

√2U2

]

cu U2 = U( : , n + 1 : m). Coloanele matricei Q sunt

vectori proprii ai matricei B.

P5.5 Fie C = A + iB = UΣV H DVS a matricei C si Urdef= ReU , Ui

def= ImU ,

Vrdef= ReV , Vi

def= ImV . Atunci

D =

[A −BB A

]

=

[Ur −Ui

Ui Ur

] [Σ 00 Σ

][Vr −Vi

Vi Vr

]

,

la care se adauga permutarile impuse de ordonarea valorilor singulare ale matricei D.P5.6 a) O matrice normala fiind unitar (ortogonal) diagonalizabila, avem QHAQ =

= Λ = diag(λ1, λ2, . . . , λn), cu Q unitara (ortogonala). Rezulta QHAHAQ = ΛHΛ == diag(|λ1|2, |λ2|2, . . . , |λn|2). b) Matricea A este normala. Avem λ1 = 8, λ2,3 = 2± i

√6.

Rezulta σ1 = 8, σ2,3 = |λ2,3| =√10. Verificati, calculand valorile proprii ale matricei

B = ATA.P5.7 Orice matrice ortogonala sau unitara are toate valorile singulare egale cu 1.P5.8 b) Utilizati DVS a matricei V pentru a obtine DVS a matricei P = V V H . Sunt

k valori singulare egale cu 1, iar celelalte sunt nule.P5.9 ‖A‖2F =

∑r

i=1σ2i ≤ rσ2

1 , unde r = rangA si ‖A‖2 = σ1.P5.10 O matrice de permutare este ortogonala (unitara), iar transformarile unitare

conserva norma spectrala. Astfel, fara a reduce generalitatea, putem presupune ca cele k ≤≤ n−1 linii eliminate sunt ultimele k linii ale matricei Q, i.e. putem scrie Q = [P T RT ]

T.

Fie P = UCV H dezvoltarea DVS a matricei P , unde C = diag(c1, c2, . . . cn), cu c1 ≥≥ c2 ≥ . . . ≥ cn ≥ 0 valorile singulare ale matricei P . Dar QHQ = PHP + RHR = In.Rezulta RHR = In − V C2V H = V (In − C2)V H = V S2V H , unde S = diag(s1, s2, . . . sn),

cu si =√

1− c2i valorile singulare ale matricei R ordonate crescator. Cum R are cel multn− 1 linii, rezulta s1 = 0, i.e. c1 = ‖P‖2 = 1.

P5.11 Se utilizeaza DVS a matricei A.P5.12 Daca A = UΣV T este DVS a lui A, atunci (U , V sunt matrice nesingulare):

maxy ∈ IRm \ 0x ∈ IRn \ 0

yTAx

‖y‖2‖x‖2= max

z ∈ IRm \ 0w ∈ IRn \ 0

zTUTAV w

‖Uz‖2‖V w‖2= max

z ∈ IRm \ 0w ∈ IRn \ 0

zTΣw

‖z‖2‖w‖2.

Page 542: metode de calcul numeric matriceal. algoritmi fundamentali

528 INDICATII, RASPUNSURI, SOLUTII

P5.13 a) Daca U1 ∈ IRm×m, V1 ∈ IRn×n sunt reflectori elementari astfel ıncat U1u == ‖u‖e1 ∈ IRm, si V1v = ‖v‖e1 ∈ IRn, atunci:

UT1 AV1 =

[‖u‖‖v‖ 0

0 0

]

∈ IRm×n.

Evident, rangA = 1 daca u 6= 0, v 6= 0, si zero altfel. b) Daca rangA = 1, atuncidezvoltarea valorilor singulare se reduce la A = σ1u1v

H1 .

P5.14 Fie wdef= Qv⊥u, unde Q este o matrice ortogonala (cum calculati matricea Q?)

si wdef= w/‖w‖, u def

= u/‖u‖. Calculati o matrice ortogonala C ∈ IRn×(n−2) astfel ıncatU = [u w C] si V = [w u C] sunt ortogonale (folositi factorizarea QR a matricei [u w]).Atunci

UT (I + uvT )V =

uT (I + uvT )w uT (I + uvT )u 0

wT (I + uvT )w wT (I + uvT )u 0

0 0 In−2

=

=

[uT uvTw 1 + uT uvTu 0

1 0 00 0 In−2

]

si problema a fost redusa la cazul 2× 2 (oricum, celelalte n− 2 valori singulare ale lui Asunt egale cu 1).

P5.15 Se aplica algoritmul JQ cu precizarea ca reflectorii complecsi utilizati sunt detipul celor care dau un rezultat real, e.g. pentru x ∈ ICn se obtine UH

1 x = ‖x‖e1 ∈ IRn.

P5.16 Matricea T = JHJ este tridiagonala, hermitica si are doua valori proprii egale.Conform problemei 4.63 (v. cap.4) T este reductibila, i.e. exista i astfel ıncat T (i+1, i) == gifi = 0. Deci, gi = 0 sau/si fi = 0.

P5.17 Pentru a exploata structura superior triunghiulara, se utilizeaza o secventa derotatii ”modificate”, conform urmatoarei scheme de calcul:

1. Pentru k = n : −1 : 31. Pentru i = 1 : k − 2

1. Se calculeaza rotatia modificata Pi,i+1 astfel ıncat (PHi,i+1A)(i, k) = 0.

2. A← PHi,i+1A % Apare un element nenul ın pozitia (i+ 1, i).

3. Se calculeaza rotatia modificata Qi,i+1 astfel ıncat (AQi,i+1)(i+ 1, i) = 0.2. A← AQi,i+1.

Pentru n = 4, primul pas al ciclului exterior se desfasoara astfel:

A← PH12A =

× × × ∅+ × × ×

× ××

, A← AQ12 =

× × × 0∅ × × ×

× ××

,

A← PH23A =

× × × 0× × ∅+ × ×

×

, A← AQ23 =

× × × 0× × 0∅ × ×

×

.

Page 543: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 529

P5.18 Utilizand transformari Householder sau Givens, se pot introduce zerouri con-form modelului urmator, dat pentru m = 7, n = 6, p = 3 (pentru precizare am folositrotatii):

A =

× × × × × ×× × × × × ×× × × × × ×

× × ×× × ×× × ×× × ×

, A← PH12P

H13A =

× × × × × ×0 × × × × ×0 × × × × ×

× × ×× × ×× × ×× × ×

,

A← AQ45Q46 =

× × × × 0 00 × × × × ×0 × × × × ×

× × ×× × ×× × ×× × ×

,

A← PH45P

H46P

H47A =

× × × × 0 00 × × × × ×0 × × × × ×

× × ×0 × ×0 × ×0 × ×

,

A← AQ23Q24 =

× × 0 0 0 00 × × × × ×0 × × × × ×

+ + × × ×0 × ×0 × ×0 × ×

.

Dupa aceste transformari A este bidiagonala ın prima linie si prima colana. Se obtine oproblema similara, dar de dimensiunea (m− 1)× (n− 1); blocul patrat p× p este deplasatcu o pozitie diagonala.

P5.19 Se aplica mai ıntai o secventa de rotatii pe stanga care aduce matricea la oforma superior triunghiulara (cu numai doua supradiagonale de elemente nenule) dupacare se adapteaza schema de calcul de la problema 5.17.

P5.20 Mai ıntai se reduce matricea A la forma superior bidiagonala cu algoritmulJQ. Apoi se anuleaza elementul din pozitia (m,n+1) cu o secventa de rotatii aplicate pedreapta A← APm,m+1Pm−1,m+1 . . . P1,m+1 care deplaseaza elementul alterant pe verticalacoloanei m+ 1 pana la eliminare. Exemplificam procesul pentru m = 3, n = 5,

A =

[ × ×× ×× +

]

, A← AP34 =

[ × ×× × +× ∅

]

,

A← AP24 =

[ × × +× × ∅×

]

, A← AP34 =

[ × × ∅× ××

]

.

Page 544: metode de calcul numeric matriceal. algoritmi fundamentali

530 INDICATII, RASPUNSURI, SOLUTII

P5.21 Fie A = UΣV H , Σ = diag(σ1, σ2, . . . , σp), cu p = min(m,n), DVS a matricei

A . Evident, exista sirurile de numere reale (γ(k)i )

k∈IN astfel ıncat limk→∞ γ(k)i = σi si

γ(k)i 6= 0 pentru toti i si k. Daca Γk

def= diag(γ

(k)1 , γ

(k)2 , . . . , γ

(k)p ), si Ak

def= U ΓkV

H , atuncitoate matricele Ak sunt de rang maximal si limk→∞ Ak = A. Aceasta ınseamna ca oricatde ”aproape” de orice matrice (inclusiv de matricea nula) se afla matrice de rang maximal.De aici necesitatea conceptului de rang numeric ın orice problema de calcul al rangului,afectata de erori.

P5.22 Urmati demonstratia teoremei 5.4.

P5.23 Daca (C,S) = (UHAW,V HBW ) este DVSG a perechii de matrice (A,B) atuncirA = rang(A) = rang(C) si rB = rang(B) = rang(S), i.e. rA este numarul elementelordiagonale nenule ale matricii C, iar rB este numarul elementelor diagonale nenule alematricii S. Pentru determinarea rangului numeric se poate utiliza o toleranta pentruneglijarea elementelor diagonale ”mici” ale matricilor C si S (v. alg. Rang DVS).

P5.24 Utilizati DVS si definitia 5.3.

P5.25 Urmati demonstratia teoremei 5.3.

P5.26 a) Utilizand DVS A = UAΣAVHA si B = UBΣBV H

B sistemul matriceal datdevine echivalent cu sistemul

ΣAX − Y ΣB = C

XΣTB − ΣT

AY = D,

unde X = V HA XVB, Y = UH

A Y UB , C = UHA XVB , D = V H

A XUB , care la randul sau, sepoate scrie explicit sub forma a mn sisteme de doua ecuatii cu doua necunoscute

[

σ(A)i −σ(B)

j

σ(B)j −σ(A)

i

][xij

yij

]

=

[cijdij

]

.

P5.27 a) Utilizand DVS A = UΣV T si tinand seama de conservarea normei euclidiene,problema devine echivalenta cu problema de minimizare min

y∈IRn‖d − Σy‖2 + α‖y‖2(evident, mult mai simpla), unde d = UT b si y = V Tx.

P5.28 0 ∈ λ(A)⇔ detA = 0⇔ detAHA = 0⇔ 0 ∈ σ(A).

P5.29 Nu, e.g. pentru A =

[0 10 0

]

, B =

[0 00 1

]

.

P5.30 a) Inegalitatea triunghiului pentru norma spectrala. In general nu, luati e.g.

A =

[1 00 0

]

, B =

[0 00 1

]

. b) Consultati [ II ].

P5.31 Proprietatile sunt corespondentele multiplicative ale proprietatilor aditive dinproblema precedenta. a) Conditia de consistenta a normei spectrale. In general nu, luati

e.g. A =

[1 10 1

]

, B =

[1 01 1

]

. b) Consultati [ II ].

P5.32 Consultati [ II ].

P5.33 a) det(λIn − A) = λn − ǫ, i.e. |λi| = ǫ1n , ∀i ∈ 1 : n. Valorile singulare sunt

σi = 1, i ∈ 1 : (n− 1), σn = ǫ.

P5.34 Consultati [ II ], unde veti gasi multe alte proprietati interesante ale descom-punerii polare.

Page 545: metode de calcul numeric matriceal. algoritmi fundamentali

INDICATII, RASPUNSURI, SOLUTII 531

Cap. 6. Calculul valorilor proprii generalizate

P6.1 a) Se observa ca scazand prima linie din celelalte doua si apoi adunand linia

a doua la a treia obtinem perechea echivalenta A = PAR =

[2 4 50 1 30 0 0

]

, B = PBR =

=

[1 1 10 α− 1 20 0 β

]

, unde matricele de transformare sunt P =

[1 0 0−1 1 0−2 1 1

]

si R = I3.

Ecuatia caracteristica a fascicolului este (2 − λ)(1− (α− 1)λ)βλ = 0. Prin urmare, dacaβ = 0, atunci fascicolul este singular, daca β 6= 0 si α = 1, atunci λ(A,B) = 0, 2, iardaca β 6= 0 si α 6= 1 avem λ(A,B) = 0, 2, 1

α− 1. b) De exemplu, x = [ 1 0 0 ]T este un

vector propriu generalizat asociat valorii proprii λ = 2, iar xTBx = 1 6= 0 oricare ar fi α siβ. Pe de alta parte x = [ 7 − 6 2 ]T este un vector propriu generalizat asociat valorii propriiλ = 0 si xTBx = 0 daca 48α + 4β − 55 = 0; cum det(B) = (α − 1)β exista o infinitatede valori pentru α si β astfel ıncat xTBx = 0 si det(B) 6= 0, e.g. pentru α = −1/48,β = 14. c) Primele doua coloane ale matricei R, i.e. e1, e2, formeaza o baza ortogonala asubspatiului de deflatie bidimensional S al perechii (A,B) asociat valorilor proprii gene-

ralizate λ1 = 2 si λ2 =1

α− 1= 1 ıntrucat subspatiul V = AS + BS = Im(P−1)( : , 1 : 2)

are dimensiunea 2.

P6.2 Fie U1 = U( : , 1 : r), U2 = U( : , r + 1 : n) si, similar, V1 = V ( : , 1 : r),V2 = V ( : , r+1:n). Notam P = UT

1AV1, Q = UT1AV2, R = UT

2AV1 si S = UT2AV2. Perechea

(A,B) este echivalenta cu perechea (UTAV,Σ) i.e. ecuatia caracteristica a fascicoluluidefinit de perechea (A,B) este det(UTAV − λΣ) = 0. Daca S este nesingulara, atunciecuatia caracteristica devine det(P − QS−1R − λΣ1) = 0 i.e. fascicolul are r ≥ 1 valoriproprii generalizate finite. Deci S este singulara.

P6.3 Matricele A,B fiind unitare, matricea AB−1 = ABH este si ea unitara. Deci,toate valorile proprii generalizate sunt de modul unitar (ın cazul real ±1).

P6.4 Intrucat B si A− µB sunt nesingulare avem succesiv λ(B,B(A− µB)−1B) == λ((A− µB)B−1)) = λ(AB−1 − µIn) = λ(AB−1)− µ = λ(A,B)− µ.

P6.5 Se procedeaza exact ca la algoritmul HTQZc dar se utilizeaza ın exclusivitatetransformari reale.

P6.6 Vectorii proprii generalizati ai perechii (A,B) coincid cu vectorii proprii aimatricei F = B−1A. Metoda puterii pentru calculul iterativ al unui vector propriu almatricei F = B−1A cu deplasarea curenta µk utilizeaza iteratia (vezi cap. 4) xk+1 =(F−µkIn)xk, k = 1, 2, . . . echivalenta cu rezolvarea sistemului liniar Bxk+1 = (A−µkB)xk,k = 1, 2, . . .. Daca y este un vector propriu al matricei G = AB−1, atunci x = B−1yeste vector propriu al perechii (A,B). Iteratia metodei puterii pentru matricea G esteechivalenta cu rezolvarea aceluiasi sistem liniar. Convergenta metodei este conditionata(pentru µk = 0) de existenta unei valori proprii generalizate dominante.

Metoda puterii inverse pentru calculul iterativ al unui vector propriu al matricei F == B−1A cu deplasarea curenta µk presupune rezolvarea la fiecare iteratie a sistemului(vezi cap.4) (F − µkIn)xk+1 = xk, k = 1, 2, . . . echivalenta cu rezolvarea sistemului liniar(A−µkB)xk+1 = Bxk, k = 1, 2, . . .. In acest caz deplasarea recomandata este cea a catului

Rayleigh i.e. µk =xHk Fxk

xHk xk

. Schema de calcul este urmatoarea.

MPIG 1. Se alege aleator un vector x ∈ ICn de norma unitara.2. k = 1, eps = 1

Page 546: metode de calcul numeric matriceal. algoritmi fundamentali

532 INDICATII, RASPUNSURI, SOLUTII

3. Cat timp eps > tol

1. Se calculeaza µ = xHB−1Ax (i.e. se rezolva Bz = Ax, apoi µ = xHz)2. Se rezolva sistemul liniar (A− µB)y = Bx3. y = y/‖y‖4. eps = |1− |xHy| |5. x = y6. k = k + 17. Daca k > nr max iter

1. Tipareste ’S-a atins numarul maxim de iteratii fara a serealiza toleranta impusa.’

2. Returnunde eps, tol si nr max iter au semnificatii transparente.

P6.7 Daca Bx = 0, atunci si Ax = 0, i.e. egalitatea Ax = λBx ar fi satifacuta pentruorice λ ∈ IC, i.e. fascicolul nu ar fi regulat.

P6.8 Avem gi+1,i = hi+1,i/tii, i = 1 : n−1.

P6.9 Fie λ1 ∈ λ(H,T ) ⊂ IR. Atunci v =

λ1t22 − h22

h21

1

este un vector propriu

generalizat asociat lui λ1, i.e. Hv = λ1Tv si S = Imv este un subspatiu de deflatie alfascicolului (H,T ). Atunci construim matricele Q si Z procedand ın felul urmator. Fiez1 = v/‖v‖, z2 un vector de norma unitara ortogonal cu z1 (construiti-l!) si matriceaZ = [ z1 z2 ]. Avem (HZ, TZ) = ([Hz1 Hz2 ], [Tz1 Tz2 ]) = ([λ1Tz1 Hz2 ], [Tz1 Tz2 ]).Acum daca Q este o matrice ortogonala de ordinul 2 (reflector sau rotatie) astfel ıncat(QTTz1)(2) = 0 vom avea (H, T )(2, 1) = (QTHZ,QTTZ)(2, 1) = 0, i.e. (H, T ) este ınforma Schur. Evident, h11/t11 = λ1.

P6.10 Daca L este factorul Cholesky al lui B, atunci λ(A,B) = λ(L−1AL−T ) simatricea L−1AL−T fiind simetrica are spectrul real. Daca B nu este pozitiv definitavalorile proprii generalizate pot fi si complexe dupa cum se poate constata din exemplul

urmator 20 A =

[1 55 9

]

, B =

[1 22 1

]

. Daca factorul Cholesky L este bine conditionat

numeric, atunci se calculeaza matricea C = L−1AL−T exploatand corespunzator simetriarezultatului si i se calculeaza valorile proprii folosind algoritmul QR simetric. Daca L esterau conditionata se aplica algoritmul QZ. Din pacate, ın acest din urma caz, transformarileortogonale de echivalenta nu conserva simetria.

P6.11 a) Se procedeaza ca ın cazul complex, cu precizarea ca problema se reducela rezolvarea unui sistem liniar omogen cvasi-superior triunghiular. b) Rezolvati mai ıntaiproblema pentru perechea 2× 2 (S(k : k + 1, k : k + 1), T (k : k + 1, k : k + 1).

P6.12 Fie M = S(k : k + 1, k : k + 1) si N = T (k : k + 1, k : k + 1) blocurile

diagonale 2× 2 de interes ale matricelor S si T . Cei doi vectori proprii liniar independenti

exista daca si numai daca perechea (M,N) ın FSG admite doi vectori proprii generalizati

liniar independenti. Dar m11n22 = m22n11, deci raspunsul este afirmativ numai daca

m11n12 = m12n11.

20Se poate arata ca oricare ar fi matricea C ∈ IRn×n diagonalizabila exista matricele simetrice

A,B ∈ IRn×n cu B nesingulara astfel ıncat C = AB−1 [ VI ]. In consecinta, oricare ar fi multimeasimetrica (i.e. avand elementele complexe ın perechi complex conjugate) Λ de n numere exista opereche reala (A,B) cu matricele A, B simetrice astfel ıncat λ(A,B) = Λ.

Page 547: metode de calcul numeric matriceal. algoritmi fundamentali

Bibliografie

[1] J.O. Aasen. On the Reduction of a Symmetric Matrix to Tridiagonal Form.BIT, 11:233–242, 1971.

[2] A.V. Aho, J.E. Hopcroft, J.D. Ullman. The design and analysis of computeralgorithms. Addison-Wesley, 1974.

[3] S. Bannour, M.R. Azimi-Sadjadi. Principal Component Extraction Using Re-cursive Least Squares. IEEE Trans.Neur.Nets, 6:457–469, 1995.

[4] R.H. Bartels, G.W. Stewart. A Solution of the Equation AX + XB = C.Commun. ACM, 15:820–826, 1972.

[5] W. Barth, R.S. Martin, J.H. Wilkinson. Calculation of the Eigenvalues ofa Symmetric Tridiagonal Matrix by the Method of Bisection. NumerischeMathematik, 9:249–256, 1967.

[6] R. Bellman. Introducere ın analiza matriceala. Ed. Tehnica, 1969.

[7] C. Bischof, C. Van Loan. The WY Representation for Products of HouseholderMatrices. SIAM J. Sci. Stat. Comput., 8:s2–s13, 1987.

[8] A. Bjorck. Solving Linear Least Squares Problems by Gram-Schmidt Orthog-onalization. BIT, 7:1–21, 1967.

[9] A. Bjorck. Numerical Methods for Least Squares Problems. SIAM, 1996.

[10] H. Bowdler, R.S. Martin, C. Reinsch, J.H. Wilkinson. The QR and QL Algo-rithms for Symmetric Matrices. Numerische Mathematik, 11:293–306, 1968.

[11] J.R. Bunch, L. Kaufmann. Some Stable Methods for Calculating Inertia andSolving Symmetric Systems. Mathematics of Computation, 31(137):163–179,January 1977.

[12] J.R. Bunch, B. Parlett. Direct Methods for Solving Symmetric Indefinite Sys-tems of Linear Equations. SIAM J. Numer. Anal., 8:639–655, 1971.

[13] P.A. Businger, G.H. Golub. Linear Least Squares Solutions by HouseholderTransformations. Numerische Mathematik, 7:269–276, 1965.

533

Page 548: metode de calcul numeric matriceal. algoritmi fundamentali

534 BIBLIOGRAFIE

[14] S.P. Chan, B.N. Parlett. Algorithm 517: a Program for Computing the Condi-tion Numbers of Matrix Eigenvalues without Computing Eigenvectors. ACMTrans. Math. Soft., 3:186–203, 1977.

[15] T.F. Chan. Rank-Revealing QR Factorizations. Lin. Alg. and its Applic.,88/89:67–82, 1987.

[16] A.K. Cline, C.B. Moler, G.W. Stewart, J.H. Wilkinson. An Estimate for theCondition Number of a Matrix. SIAM J.Numer.Anal., 16(2):368–375, April1979.

[17] A.K. Cline, R.J. Plemmons. L2 Solutions to Underdetermined Linear Systems.SIAM Review, 18:92–106, 1976.

[18] J.J.M. Cuppen. A Divide and Conquer Method for the Symmetric Eigenprob-lem. Numerische Mathematik, 36:177–195, 1981.

[19] J. Demmel, W. Kahan. Accurate Singular Values of Bidiagonal Matrices. SIAMJ.Sci.Stat.Comput., 11(5):873–912, September 1990.

[20] J.J. Dongarra, J. Du Croz, S. Hammarling, I. Duff. A Set of Level-3 BasicLinear Algebra Subprograms. ACM Trans.Math.Software, 16:1–17,18–28, 1990.

[21] J.J. Dongarra, D.W. Walker. Software Libraries for Linear Algebra Computa-tions on High Performance Computers. SIAM Review, 37:151–180, 1995.

[22] B. Dumitrescu. Improving and Estimating the Accuracy of Strassen’s Algo-rithm. Numerische Mathematik, 79(4):485-499, 1998.

[23] L. Elsner, J.G. Sun. Perturbation Theorems for the Generalized EigenvalueProblem. Lin. Alg. and its Applic., 48:341–357, 1982.

[24] G.E. Forsythe. Pitfalls in Computations or Why a Math Book is not Enough.Amer.Math.Monthly, 77:931–970, 1970.

[25] G.E. Forsythe. Computer Methods for Mathematical Computations. Prentice-Hall, 1977.

[26] J.G.F. Francis. The QR Transformation: a Unitary Analogue to the LR Trans-formation, Parts I and II. Comp. J., 4:265–272, 332–345, 1962.

[27] W. Givens. Computation of Plane Unitary Rotations Transforming a GeneralMatrix to Triangular form. SIAM J.App.Math., 6:26–50, 1958.

[28] I.M. Glazman, I. Liubici. Analiza liniara pe spatii finit-dimensionale. Ed.Stiintifica si Enciclopedica, 1980.

[29] D. Goldberg. What Every Computer Scientist Should Know About Floating-Point Arithmetic. ACM Comp.Surveys, 23(1):5–48, March 1991.

[30] G.H. Golub, W. Kahan. Calculating the Singular Values and Pseudo-Inverseof a Matrix. SIAM J. Num. Anal. Ser. B 2, 205–224, 1965.

Page 549: metode de calcul numeric matriceal. algoritmi fundamentali

BIBLIOGRAFIE 535

[31] S. Haykin. Adaptive Filter Theory. Prentice Hall, 1991.

[32] N.J. Higham. The Accuracy of Floating Point Summation. SIAM J.Sci. Com-put., 14(4):783–799, July 1993.

[33] N.J. Higham. Stability of the Diagonal Pivoting Method with Partial Pivoting.SIAM J.Matrix Anal.Appl., 18(1):52–65, January 1997.

[34] A.S. Householder. Unitary Triangularization of a Nonsymmetric Matrix. J.ACM, 5:339–342, 1958.

[35] D. Jacobs, editor. The State of the Art in Numerical Analysis. Academic Press,1977.

[36] B. Kagstrom, P. Ling, C. Van Loan. High Performance GEMM-Based Level-3 BLAS: Sample Routines for Double Precision Real Data. In M. Durand,F. El Dabaghi, editori, High Performance Computing II, pp. 269–281. ElsevierScience Publishers B.V., 1991.

[37] T. Kato. Perturbation Theory for Linear Operators. Springer-Verlag, 1966.

[38] V.C. Klema, A.J. Laub. The Singular Value Decomposition: Its Computationand Some Applications. IEEE Trans.Auto.Control, AC-25(2):164–180, April1980.

[39] V.N. Kublanovskaya. On Some Algorithms for the Solution of the CompleteEigenvalue Problem. USSR Comp. Math. Phys., 3:637–657, 1961.

[40] C.L. Lawson, R.J. Hanson, F.T Krogh, D.R. Kincaid. Basic Linear AlgebraSubprograms for FORTRAN Usage. ACM Trans.Math.Software, 5:308–323,1979.

[41] R.S. Martin, C. Reinsch, J.H. Wilkinson. Householder Tridiagonalization of aSymmetric Matrix. Numerische Mathematik, 11:181–195, 1968.

[42] R.S. Martin, J.H. Wilkinson. Solution of Symmetric and Unsymmetric BandEquations and the Calculation of Eigenvalues of Band Matrices. NumerischeMathematik, 9:279–301, 1967.

[43] R.S. Martin, J.H. Wilkinson. Reduction of the Symmetric EigenproblemAx = λBx and Related Problems to Standard Form. Numerische Mathematik,11:99–110, 1968.

[44] C.B. Moler, G.W. Stewart. An Algorithm for Generalized Matrix EigenvalueProblems. SIAM J. Numer. Anal., 10:241–256, 1973.

[45] C.C. Paige. Computing the Generalized Singular Value Decomposition. SIAMJ.Sci.Stat.Comput, 7(4):1126–1146, October 1986.

[46] B.N. Parlett, C. Reinsch. Balancing a Matrix for Calculation of Eigenvaluesand Eigenvectors. Numerische Mathematik, 13:292–304, 1969.

Page 550: metode de calcul numeric matriceal. algoritmi fundamentali

536 BIBLIOGRAFIE

[47] C. Puglisi. Modification of the Householder Method Based on the CompactWY Representation. SIAM J. Sci. Stat. Comput., 13(3):723–726, May 1992.

[48] H. Rutishauser. The Jacobi Method for Real Symmetric Matrices. NumerischeMathematik, 9:1–10, 1966.

[49] R. Schreiber, B. Parlett. Block Reflectors: Theory and Computation. SIAMJ. Numer.Anal., 25:189–205, 1989.

[50] R. Schreiber, C. Van Loan. A Storage-efficientWY Representation for Productsof Householder Transformations. SIAM J. Sci. Stat. Comput., 10(1):53–57,January 1989.

[51] R.D. Skeel. Scaling for Numerical Stability in Gaussian Elimination. J. ACM,26:494–526, 1979.

[52] R.D. Skeel. Iterative Refinement Implies Numerical Stability for GaussianElimination. Math. Comp., 35:817–832, 1980.

[53] G.W. Stewart. On the Sensitivity of the Eigenvalue Problem Ax = λBx. SIAMJ. Numer. Anal., 9:669–686, 1972.

[54] G.W. Stewart. Error and Perturbation Bounds for Subspaces Associated withCertain Eigenvalues Problems. SIAM Review, 15:727–764, 1973.

[55] G.W. Stewart. Algorithm 406: HQR3 and EXCGNG: FORTRAN Subroutinesfor Calculating and Ordering the Eigenvalues of a Real Upper Hessenberg Ma-trix. ACM Trans. Math. Soft., 2:275–280, 1976.

[56] G.W. Stewart. On the Asymptotic Behaviour of Scaled Singular Value and QRDecompositions. Math.Comp., 43:483–490, 1984.

[57] G.W. Stewart. On the Early History of the Singular Value Decomposition.SIAM Review, 35(4):551–566, December 1993.

[58] G.W. Stewart. Afternotes on Numerical Analysis. SIAM, 1996.

[59] G.W. Stewart, R. Chapman. Fast Stable Kalman Filter Algorithms Utilizingthe Square Root Procedure. SIAM J. Sci. Stat. Comput., 8:1815–1818, 1990.

[60] V. Strassen. Gaussian elimination is not optimal. Numerische Mathematik,13:354–356, 1969.

[61] M. Tertisco, P. Stoica. Identificarea si estimarea parametrilor sistemelor. Ed.Academiei, 1980.

[62] M.H. Verhaegen, P. Van Dooren. Numerical Aspects of Different Kalman FilterImplementations. IEEE Trans.Auto.Control, AC-31:907–917, 1986.

[63] S.J. Wright. A Collection of Problems for Which Gaussian Elimination withPartial Pivoting is Unstable. SIAM J.Sci.Comput., 14(1):231–238, January1993.

Page 551: metode de calcul numeric matriceal. algoritmi fundamentali

Index

acuratete, 13algoritmi la nivel de bloc

eliminare gaussiana, 87factorizarea Crout, 90produs matriceal, 44rutine BLAS, 62sisteme triunghiulare, 56triangularizare ortogonala, 156

algoritmulBartels-Stewart, 301DVS, 393, 403QR, 239QR simetric, 314QZ, 455, 472Strassen, 45

alternativa lui Fredholm, 297anulare catastrofala, 9

baza, 22baza ortogonala, 152, 172, 386bloc, 42

cat Rayleigh, 236, 330calculatoare

cu memorie ierarhica, 17vectoriale, 17

cifre semnificative, 7combinatie liniara, 21componente principale, 373conditionare, 11conditionarea

problemelor CMMP, 177sistemelor liniare, 97subspatiilor invariante, 350valorilor proprii, 343valorilor singulare, 413vectorilor proprii, 350vectorilor singulari, 414

congruenta, 47convergenta patratica, 236

deflatiede permutare, 272iterativa, 455ortogonala, 230unitara, 228

depasireinferioara, 8superioara, 8

deplasare, 244Rayleigh, 236Wilkinson, 320, 399

descompunereabloc-diagonala, 303CS, 377ortogonala completa, 197polara, 376spectrala, 296valorilor singulare, 369, 371valorilor singulare generalizate, 379,

431determinant, 53diferenta unghiulara, 352, 414distanta dintre spectre

absoluta, 354relativa, 354

echilibrare, 104, 274ecuatie caracteristica, 210

a unui fascicol, 446ecuatie matriceala Sylvester, 297eliminare gaussiana, 74

la nivel de bloc, 87pentru matrice banda, 106stabilitate numerica, 103

epsilon masina, 7

537

Page 552: metode de calcul numeric matriceal. algoritmi fundamentali

538 INDEX

eroareınainte, 13ınapoi, 13absoluta, 2de reprezentare, 6de rotunjire, 7relativa, 2

factor de crestereın eliminarea gaussiana, 102ın factorizarea cvasi-diagonala, 113ın metoda puterii inverse, 285

factorizare Cholesky, 114cu pivotare, 195cu semn, 202

factorizare cvasi-diagonala, 110, 206factorizare LDU, 81factorizare LQ, 172factorizare LU, 81

Crout, 82, 85Crout cu pivotare, 86Crout la nivel de bloc, 90Doolitle, 82

factorizare QL, 162factorizare QR, 150factorizare RQ, 173fascicol matriceal, 445

hermitic, 447, 449nesingular, 447pozitiv definit, 447, 449regulat, 447simetric, 447, 449singular, 447

fascicolecongruente, 450echivalente, 449ortogonal echivalente, 449unitar echivalente, 449

flop, 15forma bidiagonala, 394forma bloc-diagonala, 296forma canonica Jordan, 215, 308forma canonica Kronecker, 450forma diagonala generalizata, 453forma Hessenberg, 239

generalizata, 455generalizata ireductibila, 466

ireductibila, 252forma Schur, 227, 229

complexa, 230generalizata, 451generalizata ordonata, 486ordonata, 287reala, 230, 232reala generalizata, 452reala ordonata, 290

format virgula mobila, 4functie de rotunjire, 6

gramian, 150, 172grup Poincare, 202

hiperelipsoid, 372, 431hipersfera, 372

imagine, 29inertia unei matrice, 223

LAPACKrutine de calcul, 118rutine driver, 118

lema proiectiei ortogonale, 163liniar independenta, 21

mantisa, 4matrice

antihermitica, 224antisimetrica, 47, 224asemenea, 60, 214banda, 40bloc diagonala, 44bloc triunghiulara, 44complexa simetrica, 217congruente, 223cu spectru simplu, 214de permutare, 272de permutare elementara, 72de proiectie ortogonala, 388diagonal dominanta, 119diagonala, 39diagonalizabila, 214echilibrata, 274echivalente, 34, 35, 370epica, 31

Page 553: metode de calcul numeric matriceal. algoritmi fundamentali

INDEX 539

hermitica, 49, 215Hessenberg, 40Hessenberg ireductibila, 252, 291Hilbert, 99inferior triunghiulara elementara,

70inversabila, 34ireductibila, 274monica, 30normala, 46, 215ortogonal asemenea, 214ortogonal echivalente, 370ortogonala, 47, 215pozitiv definita, 47S-ortogonala, 201S-simetrica, 201simetrica, 46, 215, 314simpla, 60, 214spectru, 60strict triunghiulara, 39tridiagonala, 315triunghiulara, 39triunghiulara unitate, 39unitar asemenea, 214unitar echivalente, 370unitara, 49, 215

Matrice companion, 362Matrice convergenta, 363Matrice diagonal dominanta, 364Matrice idempotenta, 361Matrice nilpotenta, 361Matrice simultan diagonalizabile, 360memorare compacta (ımpachetata), 41metoda

bisectiei, 330catului Rayleigh, 330Jacobi ciclica, 341Jacobi clasica, 340puterii, 233, 499puterii cu deplasare, 235, 246puterii inverse, 235, 245, 499

metode de radacina patrata, 151Moore-Penrose

conditii, 207pseudoinversa, 198

multime simetrica, 210

multiplicatori (gaussieni), 70, 74multiplicitate

algebrica, 210algebrica a unei valori proprii ge-

neralizate, 446geometrica, 211geometrica a unei valori proprii

generalizate, 447

normaconsistenta, 37euclidiana, 24Frobenius, 38indusa, 38urma, 384

nucleu, 29numar de conditionare, 98, 384

al unui subspatiu invariant, 354al valorii proprii, 344estimare, 100pentru matrice nepatrate, 178rutine de calcul, 119

ortogonalitate numerica, 28ortogonalizare Gram-Schmidt, 161, 169Ovaluri Cassini, 364

p-norme Schatten, 384p-sectiune a unei matrice hermitice,

363Partea antihermitica a unei matrice,

362Partea hermitica a unei matrice, 362partitionare conforma, 43pas DVS, 401pas QR, 244

dublu cu deplasare explicita, 251dublu cu deplasare implicita, 262simplu cu deplasare explicita, 250simplu cu deplasare implicita, 254

pas QZdublu, 480simplu, 470

pivot, 74pivotare

ın triangularizarea ortogonala, 192

Page 554: metode de calcul numeric matriceal. algoritmi fundamentali

540 INDEX

completa (ın eliminarea gaussiana),79

completa (ın factorizarea cvasi-dia-gonala), 112

partiala (ın eliminarea gaussianala nivel de bloc), 88

partiala (ın eliminarea gaussianapentru matrice banda), 108

partiala (ın eliminarea gaussiana),76, 77

partiala (ın factorizarea Crout),86

partiala (ın factorizarea cvasi-dia-gonala), 113

partiala (ın factorizarea LU), 83plan Lobacevski, 202polinom caracteristic, 210

al unui fascicol, 446ponderea operatiilor de nivel 3, 66precizie, 4

dubla, 7simpla, 5, 7

preconditionare, 275problema CMMP

cu restrictii liniare, 207cu restrictii patratice, 431cu restrictii liniare, 429generalizata, 207ponderata, 187, 207totala, 422

problema generala CMMP, 197, 421produs

exterior, 32, 35matrice-vector, 31matriceal, 32scalar, 24scalar matriceal, 37

program principal (driver), 279proiectie

ortogonala, 167, 388spectrala, 346

proiector, 48ortogonal, 152, 172, 388spectral, 346

pseudoinversa, 163, 168, 385normala, 174, 198

pseudosolutie, 124, 163normala, 198, 421

R-bidiagonalizare, 397rafinare iterativa, 105, 187rang, 30, 193, 369, 383

numeric, 417raza spectrala, 210reflector, 126

bloc, 158complex, 139hermitic, 139, 147J-reflector, 202modificat, 130, 162

reprezentare W2T, 159reprezentare WY, 158restrictia

unei matrice la un subspatiu, 287unei matrice la un subspatiu in-

variant, 212unei perechi de matrice la un sub-

spatiu de deflatie, 448reziduu de norma minima, 124rotatie, 134

complexa, 142hiperbolica, 203modificata, 404rotatii disjuncte, 136secventa de rotatii, 136

rotatie complexa, 460

Saxpy, 23scalare, 104, 186schimbare de baza, 34secventa de rotatii, 149separarea

spectrelor a doua matrice, 353valorilor singulare, 414

sistemextins, 164normal, 164

solutie normala, 124, 174spatiu Minkovski, 202spectru generalizat, 446spectrul unei matrice, 210stabilitate numerica, 13

a algoritmului DVS, 415

Page 555: metode de calcul numeric matriceal. algoritmi fundamentali

INDEX 541

a algoritmului QR, 356a eliminarii gaussiene, 103a triangularizarii ortogonale, 184

submatricebloc, 42lider principala, 42

subspatii liniare, 386(operatii cu), 390

subspatiu, 22complement ortogonal, 26complementar, 22de deflatie, 447, 486dimensiune, 22invariant, 61, 211, 286propriu, 211

substitutieınainte, 54ınapoi, 55

sir QR, 244sir Sturm, 332

teoremaBauer-Fike, 348Courant-Fisher, 219de separare a valorilor proprii, 221de separare a valorilor singulare,

412Gershgorin, 226Wielandt-Hoffmann, 223

Teorema lui Brauer, 364Teorema lui Ostrovski, 364transformare

de asemanare, 60, 214de asemanare de permutare, 272de coordonate, 35elementara, 70involutiva, 126Jacobi, 337QR, 244

triangularizare ortogonala, 147completa, 196cu pivotare, 192la dreapta, 171

urma, 28

valoare proprie, 59, 210

generalizata, 445valoare proprie dominanta, 233valori singulare, 371

generalizate, 380, 433variatie unghiulara, 414varianta Hessenberg-Schur (de rezol-

vare a ecuatiei Sylvester), 300varianta Schur-Schur (de rezolvare a

ecuatiei Sylvester), 300vector

de deplasare implicita, 399, 468,476, 479

Gauss, 70Householder, 126propriu, 59, 210, 281propriu al formei Schur, 282propriu al unei matrice Hessen-

berg, 284propriu generalizat, 485unitate, 20

vector propriugeneralizat, 445

vectori Schur, 229, 232generalizati, 451, 452

vectori singulari, 371generalizati, 380