Sunteți pe pagina 1din 195

Capitolul 1 CALCULUL N VIRGUL MOBIL

1.1

Aritmetica n virgul mobil

Rezolvarea diferitelor probleme cu ajutorul calculatorului numeric depinde, ntr-o prima instan, de posibilitatea de a reprezenta numerele n maina de calcul folosit. Aceast posibilitate depinde de tipul numerelor i de structura constructiv (hardware) a echipamentului de calcul, anume: baza de reprezentare a numerelor (baza mainii de calcul) i lungimea cuvntului de memorie. Ca urmare, se poate reprezenta un numr finit de cifre n sistemul de numeraie folosit. Din acest punct de vedere, numerele ntregi i cele reale sufer un tratament diferit, dup cum se detaliaz n continuare. Astfel, numerele ntregi reprezentabile n calculator, care formeaz mulimea notat cu I, constituie o submulime finit a mulimii numerelor ntregi Z: I Z . Reprezentarea acestor numere este exact, iar aritmetica cu aceste numere este de asemenea exact, excepie facnd operaia de mprire, n general. Astfel, domeniul valorilor ntregi reprezentabile n calculatorul numeric este:
I = {z Z / m I z M I } ,

unde mrimile m I i M I depind de urmtoarele: spaiul de memorie pus la dispoziie pentru acest tip de numere, baza de numeraie folosit, precum i modul de reprezentare a acestor numere. Notnd cu baza de reprezentare a numerelor ntregi i cu t I numrul de cifre n baza care pot fi reprezentate pe un cuvnt sau multiplu de cuvnt de memorie, se pot scrie relaiile: m I = t I 1 , M I = t I 1 1 . Dac baza de numeraie este doi i sunt t I = 16 cifre binare, atunci domeniul de reprezentare pentru numere ntregi este cuprins ntre 215 i 215 1 . Dac numrul de cifre binare este t I = 32 , atunci domeniul de reprezentare este cuprins ntre 2 31 i 2 31 1 . ncercarea de a opera cu numere care nu aparin domeniului I de reprezentare, determin, la majoritatea calculatoarelor numerice, emiterea unor

1.

Calculul n virgul mobil

mesaje de eroare fatal, programele implicate fiind abandonate: depire (binar) inferioar (dac z < m I ), respectiv depire (binar) superioar (dac z > M I ). Uzual este reprezentarea n baza de numeraie doi, alocndu-se o cifr binar pentru semn i t I 1 cifre pentru numr, anume reprezentarea n cod complementar fa de baza definit astfel:
z0 z , . z c = tI | z |, z < 0

Spre deosebire de numerele ntregi, n general numerele reale se reprezint aproximativ n calculatorul numeric. n continuare se definesc dou submulimi ale numerelor reale i anume: submulimea G care conine numerele reale care s-ar putea reprezenta n calculatorul numeric; submulimea F care conine numerele reale care se reprezint efectiv n calculatorul numeric. n timp ce mulimea G, ca i mulimea numerelor reale , are un numr infinit de elemente, mulimea F are un numr finit de elemente, relaia care se poate scrie ntre aceste mulimi fiind: F G . Metoda cea mai larg folosit pentru reprezentarea numerelor reale n calculator, numere care aparin mulimii F, este cea a virgulei mobile. Definiie:
Prin aritmetica virgulei mobile se neleg urmtoarele: (a) un model matematic de reprezentare a numerelor (definirea mulimii F); (b) o modalitate de reprezentare a numerelor din mulimea G n calculatorul numeric, altfel spus o modalitate de implementare n calculator a modelului (definirea operatorului de rotunjire, notat cu fl); (c) operaiile elementare: adunarea, scderea, nmulirea i mprirea definite cu numerele mulimii F. Acestea sunt detaliate n seciunile urmtoare ale acestui subcapitol. 1.1.1 Numere n virgul mobil

Conceptul de numr n virgul mobil se poate introduce prin exemplul urmtor.


Exemplul 1.1:

Fie numrul real x = 1234,56789 . Acesta se poate scrie i sub urmtoarele

1.1

Aritmetica n virgul mobil

forme: x = 1234,56789 10 0 = 123456789,0 10 5 = 0,00123456789 10 6 =


= 0,123456789 10 4

Corespunztor ultimei forme scrise, se denumesc i se noteaz urmtoarele elemente: mantis (fracie), notat cu f, reprezentnd numrul fracionar; exponent, notat cu e, reprezentnd exponentul la care este ridicat baza de numeraie folosit; baza de numeraie, notat cu , n cazul de fa egal cu 10;
numrul cifrelor mantisei, notat cu litera t. Rezult, aadar, c poziia virgulei poate fi modificat, cu adaptarea corespunztoare a exponentului. Din acest punct de vedere, se spune c numerele ntregi tratate anterior sunt reprezentate n virgul fix.

Definiie:
O mulime de numere n virgul mobil este definit prin urmtorii parametri: (a) - baza mainii de calcul; (b) t - numrul de cifre n baza utilizate pentru a reprezenta partea fracionar (precizia mainii de calcul); (c) L - cel mai mic exponent (limita de depire inferioar); (d) U - cel mai mare exponent (limita de depire superioar).

Exponentul e este cuprins ntre valorile: L e U . Definiie:


Mulimea F de numere n virgul mobil este:

F = {x / x = f e } {0} , unde:

d1 f = + LeU

di
i

dt , 0 d i 1, i = 1, , t t

unde f este mantisa (fracia), e este exponentul, este baza mainii, t este numrul de cifre n baza i d i sunt cifrele bazei.

Dac pentru orice x F \ {0} , prima cifr a fraciei, d 1 , este diferit de zero, atunci se spune c sistemul de numere n virgul mobil este normalizat. n acest caz, poate fi scris relaia: 1 / | f |< 1 .

1.

Calculul n virgul mobil

Orice numr x F \ {0} este cuprins ntre dou valori extreme:


m | x | M M = L 1 , M = U (1 t )

Acestea se numesc: m cel mai mic numr real pozitiv reprezentabil, iar M cel mai mare numr real pozitiv reprezentabil. n acest caz, mulimea G se poate defini ca fiind: G = {x / m | x | M} {0} = [ M, m] {0} [m, M ] . ncercarea de a opera cu numere nenule care nu se ncadreaz ntre aceste limite conduce, pentru majoritatea calculatoarelor numerice, la emiterea unor mesaje de eroare fatal, care vor determina abandonarea programului: depire flotant inferioar (dac | x |< m ), respectiv depire flotant superioar (dac | x |> M ). n unele implementri, se atribuie valoarea zero pentru numerele din prima categorie menionat, fr emiterea mesajului de eroare, mpreun cu emiterea unui mesaj de avertizare.
Exemplul 1.2:

Se consider o mulime de numere n virgul mobil normalizat cu urmtorii parametri: = 2 , t = 3 , L = 1 , U = 2 . Rezult, conform relaiilor scrise mai sus: m = 1 / 4 i M = 7 / 2 . Elementele mulimii F sunt n acest caz:
.100 2 e , .101 2 e , .110 2 e , .111 2 e , e {1, 0, 1, 2} .

Numrul elementelor mulimii F este: card(F) = 33 . Elementele pozitive ale mulimii F sunt prezentate n Figura 1.1.
m= 1 4 M= 7 2

2-2

2-1

20

21

Fig. 1.1 Elementele pozitive ale mulimii numerelor n virgul mobil ( = 2 , t = 3 , L = 1 , U = 2 , reprezentare normalizat) Mulimea F este o mulime finit. ntre puterile succesive ale lui numerele din mulimea F sunt echidistante, numrul acestora fiind constant. Numrul de elemente ale lui F este dat de relaia: card(F) = 2 t 1 ( 1) ( U L + 1) + 1 ,

1.1

Aritmetica n virgul mobil

n care mrimea t 1 ( 1) = t t 1 reprezint numrul constant de elemente dintr-un interval definit de ctre dou puteri succesive ale bazei i U L + 1 reprezint numrul de intervale determinate de ctre puterile succesive ale lui . Produsul acestora este multiplicat cu 2 pentru a include att numerele pozitive, ct i pe cele negative. Valoarea 1 este adugat pentru elementul 0. Concluzii: (a) Numerele aparinnd mulimii F nu sunt echidistante n domeniul lor de existen; acestea sunt mai dese n apropierea originii (puterile lui scad) i mai rare spre extremitile mulimii F (puterile lui cresc). (b) Numerele sunt echidistante numai ntre puterile succesive ale lui . (c) Datorit faptului c mulimea F are un numr finit de elemente, nu se pot reprezenta continuu, n detaliu, toate numerele reale; mai mult, fiecare numr din mulimea F este asociat unui ntreg interval din mulimea G, deci unui ntreg interval de numere reale. Uzual este reprezentarea normalizat n baza de numeraie doi, alocndu-se o poziie binar pentru semn, un numr de poziii binare pentru exponent i t cifre binare pentru mantis. Deoarece tipul de semn al numrului este memorat, pentru fracie se realizeaz o reprezentare a ntregului d 1d 2 d t t (valoarea absolut a mantisei). De asemenea, pentru a nu se memora semnul i pentru exponent, se reprezint un numr ntreg pozitiv: C = e + E 0 , mrimea E numindu-se deplasament, iar mrimea C numindu-se caracteristic. Cum reprezentarea este normalizat, prima cifr a fraciei este d 1 = 1 i nu se mai reprezint. Astfel, se ctig nc o poziie binar pentru fracie. Se spune c se realizeaz o reprezentare normalizat cu poziie binar ascuns (n limba englez, hidden bit).
Exemplul 1.3:

Pentru = 2 i 32 de poziii binare pentru un numr real, reprezentarea se realizeaz n simpl precizie, iar pentru 64 de poziii binare pentru un numr real, reprezentarea se realizeaz n dubl precizie. Dup standardul IEEE (abreviere din limba englez, the Institute of Electrical and Electronics Engineers Inc. USA), pentru = 2 rezult t = 24 , L = 126 i U = 127 pentru reprezentarea n simpl precizie i t = 53 , L = 1022 , U = 1023 pentru reprezentarea n dubl precizie. Rezult, de asemenea, pentru reprezentarea n simpl precizie: m 10 38 i M 10 +38 , iar pentru reprezentarea n dubl precizie: m 10 308 i M 10 +308 .

Capitolul 1 CALCULUL N VIRGUL MOBIL


Uzual este reprezentarea normalizat n baza de numeraie doi, alocndu-se o poziie binar pentru semn, un numr de poziii binare pentru exponent i t cifre binare pentru mantis. Deoarece tipul de semn al numrului este memorat, pentru fracie se realizeaz o reprezentare a ntregului d 1d 2 d t t (valoarea

absolut a mantisei). De asemenea, pentru a nu se memora semnul i pentru exponent, se reprezint un numr ntreg pozitiv: C = e + E 0 , mrimea E numindu-se deplasament, iar mrimea C numindu-se caracteristic. Cum reprezentarea este normalizat, prima cifr a fraciei este d 1 = 1 i nu se mai reprezint. Astfel, se ctig nc o poziie binar pentru fracie. Se spune c se realizeaz o reprezentare normalizat cu poziie binar ascuns (n limba englez, hidden bit).
Exemplul 1.3:

Pentru = 2 i 32 de poziii binare pentru un numr real, reprezentarea se realizeaz n simpl precizie, iar pentru 64 de poziii binare pentru un numr real, reprezentarea se realizeaz n dubl precizie. Dup standardul IEEE (abreviere din limba englez, the Institute of Electrical and Electronics Engineers Inc. USA), pentru = 2 rezult t = 24 , L = 126 i U = 127 pentru reprezentarea n simpl precizie i t = 53 , L = 1022 , U = 1023 pentru reprezentarea n dubl precizie. Rezult, de asemenea, pentru reprezentarea n simpl precizie: m 10 38 i M 10 +38 , iar pentru reprezentarea n dubl precizie: m 10 308 i M 10 +308 .
1.1.1 Reprezentarea aproximativ a numerelor. Scheme de rotunjire

Oricare ar fi un numr x G , x 0 , acesta poate fi scris sub forma: x = f e + g et . Se vor considera fraciile normalizate, deci sunt ndeplinite relaiile: 1 / | f |< 1, 0 | g |< 1 . (1.1)

1.

Calculul n virgul mobil

Nu toate numerele din mulimea G se pot reprezenta exact, datorit faptului c numai t cifre n baza pot fi reinute pentru fracie. n aceste condiii, se spune c numrul este reprezentat aproximativ (rotunjit). Se definete operatorul de rotunjire fl: fl : G F . Exist mai multe modaliti de definire a acestuia i anume: (a)
rotunjirea prin tiere (trunchiere): fl(x) este cel mai apropiat element c F , de x G , cu proprietatea | c || x | .

Aceast modalitate de rotunjire este ilustrat n Figura 1.2. Astfel, oricare ar fi numrul x [c 2 , c 3 ) , acesta va fi reprezentat prin elementul c 2 . Expresia aproximantului pentru numrul real x este: fl( x ) = f e .

x c1 c2 c3 F

Fig. 1.2 Principiul rotunjirii prin tiere (trunchiere): fl( x ) = c 2 , x [c 2 , c 3 ) Exemplul 1.4:

Se consider un sistem de numere n virgul mobil cu = 10 , t = 4 . Fie numrul x = 12945,734 . Numrul x se poate scrie sub forma (1.1):

x = 0,12945734 10 5 = 0,1294 10 5 + 0,5734 10 5 4 , unde f = 0,1294; e = 5; g = 0,5734 . Rezult, aadar, valoarea reinut pentru
reprezentare i rotunjit prin tiere: fl( x ) = 0,1294 10 5 . Aceasta corespunde numrului 12940 x . (b)
rotunjirea simetric: fl(x) este cel mai apropiat element c F , de x G (a se vedea Figura 1.3).

Analiznd Figura 1.3, rezult c oricare ar fi numerele x i y din intervalul definit de elementele aflate la mijlocul intervalelor (c1 , c 2 ) i, respectiv, (c 2 , c 3 ) , acestea vor fi reprezentate prin elementul c 2 al mulimii F, expresia pentru fl(x) fiind n acest caz:
f e , | g |< 0, 2. fl( x ) = f e e t , | g | 0, 2

1.2

Propagarea erorilor n calculele numerice

n ultima expresie, semnul + se consider pentru f > 0 i semnul - se consider pentru f < 0 .
x c1 c2 y c3 F

Fig. 1.3 Principiul rotunjirii simetrice: fl( x ) = c 2 , fl( y) = c 2 ; x ((c1 + c 2 ) / 2, c 2 ), y (c 2 , (c 2 + c 3 ) / 2)

Neajunsul acestei maniere de reprezentare const n faptul c dac numrul x este situat la jumtatea distanei dintre dou numere consecutive din mulimea F, atunci fl(x) poate lua oricare din cele dou valori nvecinate. (c) rotunjirea uniform (metoda cifrei pare) n acest caz, fl(x) are urmtoarea expresie: f f fl( x ) = f f e , e e t , e e t , e , 2 | g |> 0, 2 . | g |= 0, , ultima cifra f impara 2 | g |= 0, , ultima cifra f para 2 | g |< 0,

n aceast expresie de definiie, semnul + se consider pentru f > 0 i semnul - se consider pentru f < 0 . Aceast modalitate de reprezentare este adoptat i de standardul IEEE.
Exemplul 1.5:

Se consider = 10 , t = 4 i o rotunjire uniform. (a)

x = 12944,9942 = 0,1294 10 5 + 0,4994 10 5 4 . Se observ c |g| este mai mic dect 0.5, deci: fl( x ) = 0,1294 10 5 (= 12940 x ) . x = 129551 = 0,1295 10 6 + 0,51 10 64 . Se observ c |g| este mai mare dect 0.5, deci: fl( x ) = 0,1295 10 6 + 10 6 4 (= 129600 x ) . x = 1297,5 = 0,1297 10 4 + 0,5 10 4 4 .

(b)

(c)

1.

Calculul n virgul mobil

Se observ c |g| este egal cu 0.5 i ultima cifr a lui f este impar, deci: fl( x ) = 0,1297 10 4 + 10 4 4 (= 1298 x ) . (d)

x = 1296,5 = 0,1296 10 4 + 0,5 10 4 4 . Se observ c |g| este egal cu 0.5 i ultima cifr a lui f este par, deci: fl( x ) = 0,1296 10 4 (= 1296 x ) .

1.1.2 Operaii elementare n virgul mobil

Se definesc operaiile elementare care au loc cu elementele unei mulimi F de numere n virgul mobil. Aceste modaliti de definire sunt implementate uzual n calculatoarele numerice.
A. Adunarea

Oricare ar fi dou numere x i y din mulimea G, pentru care exist fl(x) i fl(y) aparinnd mulimii F, numrului x + y i se asociaz numrul fl( x + y ) obinut prin aplicarea urmtorului algoritm: Pas 1: se reprezint intern numerele x i y prin fl(x) i, respectiv, fl(y). Pas 2: dac numerele au exponent diferit, atunci numrul cu exponent mai mic se aduce la o form n care exponentul s fie egal cu cel al celuilalt termen, operaiune care se numete denormalizare. Acest lucru se realizeaz prin deplasarea mantisei spre dreapta, insernd zerouri dup virgul.Astfel, se deplaseaz mantisa attea poziii cte sunt necesare pentru a crete exponentul la valoarea exponentului celuilalt termen. Pas 3: se adun mantisele i din rezultat se pstreaz t cifre. Pas 4: dac este necesar, se normalizeaz rezultatul. Observaii: 1. Deplasarea mantisei spre dreapta determin creterea exponentului, iar deplasarea spre stnga a mantisei determin scderea exponentului. 2. Scderea se realizeaz la fel ca adunarea, cu deosebirea c mantisele se scad. n fapt, scderea reprezint o adunare n care scztorul are semn schimbat.
Consecina esenial a acestui mod de definire este aceea c, spre deosebire de aritmetica real, adunarea n virgul mobil nu este asociativ. Exemplul 1.6:

Se consider o aritmetic a virgulei mobile cu = 10 , t = 3 , reprezentare normalizat i rotunjire prin tiere. Fie calculul: 0,001 + 1 1 . Asociind primii

1.2

Propagarea erorilor n calculele numerice

doi termeni, se ajunge la rezultatul fl(fl(10 3 + 1) 1) = 0 , care este eronat. n cazul asocierii ultimilor doi termeni se obine: fl(10 3 + fl(1 1)) = 10 3 , care este rezultatul corect.
Exemplul 1.7:

Se consider o aritmetic a virgulei mobile cu = 10 , t = 3 , reprezentare normalizat i rotunjire prin tiere. Fie calculul: 1,001 1 . Se obine: fl(1,001 1) = 0 , rezultat eronat.
Exemplele 1.6 i 1.7 pun n eviden dou fenomene nedorite i generatoare de erori, care pot apare la efectuarea unei adunri n virgul mobil:

(a)

omiterea catastrofal: apare atunci cnd se adun doi termeni i valoarea absolut a unui termen este mai mic dect precizia de reprezentare a celuilalt termen; n acest caz, rezultatul este dat de termenul cu valoare absolut mai mare (aceast situaie este ilustrat n Exemplul 1.6). neutralizarea termenilor: apare atunci cnd se adun numere cu semne diferite i cu valori absolute apropiate; n acest caz, n mod eronat, rezultatul este nul (aceast situaie este ilustrat n Exemplul 1.7).

(b)

Precizia calculelor numerice este caracterizat de dou mrimi constante a cror valoare este dependent de tipul mainii de calcul folosite. Cele dou valori menionate, numite i constante de main, sunt introduse prin urmtoarea definiie. Definiie: Epsilonul main pentru adunare (notat + m ) reprezint cel mai mic numr real pozitiv reprezentabil care schimb, prin adunare, unitatea mainii de calcul: fl(1 + + m ) >1. Epsilonul main pentru scdere (notat m ) reprezint cel mai mic numr real pozitiv reprezentabil care schimb, prin scdere, unitatea mainii de calcul: fl(1 m ) < 1.

n Figura 1.4 sunt ilustrate cele dou definiii. Conform Figurii 1.4, sunt ndeplinite relaiile: adunare: fl(1 + + m ) > 1, fl(1 + c) = 1 ;

scdere: fl(1 + m ) < 1, fl(1 c) = 1 .

1.

Calculul n virgul mobil

c F

m-

m+

Fig. 1.4 Conceptul de epsilon main


1 t t Astfel, rezult c cele dou mrimi au valorile: + , m = m = . Se demonstreaz c, pentru o aritmetic a virgulei mobile cu = 2 , este ndeplinit relaia: + m = 2 m .

Exemplul 1.8:

Valorile celor dou constante de main, n standardul IEEE, sunt urmtoarele: pentru reprezentarea n simpl precizie:
+ m = 5.96 10 8 ; m = 1.19 10 7 ;

pentru reprezentarea n dubl precizie:


+ m = 1.11 10 16 ; m = 2.22 10 16 .

Urmtorul algoritm, descris n limbaj pseudocod (a se vedea Anexa B), descrie modul de calcul al epsilonului main pentru adunare, rezultatul final gasindu-se n variabila eps_p: atribuie eps_p 1 ct timp ( 1 + eps _ p > 1 ) execut
atribuie eps_p 0.5*eps_p atribuie eps_p 2*eps_p. B. nmulirea

Oricare ar fi x i y, dou numere din mulimea G, pentru care exist fl(x) i, respectiv, fl(y) aparinnd multimii F, numrului x y i se asociaz numrul fl( x y) , care se determin cu algoritmul urmtor: Pas 1: se reprezint intern numerele x i y prin fl(x) i, respectiv, fl(y). Pas 2: se nmulesc fraciile i se adun exponenii. Pas 3: din fracia rezultat se opresc t cifre. Pas 4: dac este necesar, se normalizeaz rezultatul. Observaii: 1. nmulirea nu este asociativ.

1.2

Propagarea erorilor n calculele numerice

2. mprirea se realizeaz n aceeai manier ca i nmulirea, cu deosebirea


c la pasul 2 mantisele se mpart, iar exponenii se scad.
Exemplul 1.9:

Se consider o aritmetic a virgulei mobile cu = 10 , t = 3 , reprezentare normalizat i rotunjire prin tiere. Fie x = 22,547 i y = 0,43936 . Rezult fl( x y) = 9,900 .

1.2

Propagarea erorilor n calculele numerice

n general, n cursul rezolvrii unei probleme cu ajutorul calculatorului numeric, precizia calculelor este influenat de mai muli factori. Astfel, eroarea total dintr-un calcul numeric este generat de trei surse principale de erori: (a) (b) (c) erori inerente; erori de metod (de calcul); erori de reprezentare.

Erorile inerente provin din datele iniiale ale problemei de rezolvat (date care pot fi rezultatele unor msurtori experimentale sau ale altor calcule anterioare) i/sau erorile provenite din faptul c se lucreaz cu un model aproximativ al fenomenului real implicat n problema de rezolvat. Erorile de metod (sau de trunchiere) sunt datorate metodei numerice utilizate. n general, este necesar un numr mare de operaii pentru a putea ajunge la soluia exact (de regul, atunci cnd o expresie de calcul conine o infinitate de termeni) i calculele sunt oprite, n funcie de un anumit criteriu, atunci cnd se ajunge la o anumit precizie acceptabil (aadar contientizat). Erorile de reprezentare sunt datorate posibilitii efective de a reprezenta numerele n calculatorul numeric. Acest tip de erori se manifest n datele iniiale, intermediare i n cele de ieire care constituie rezultatele finale.

1.1

Propagarea erorilor n calculele numerice

n general, n cursul rezolvrii unei probleme cu ajutorul calculatorului numeric, precizia calculelor este influenat de mai muli factori. Astfel, eroarea total dintr-un calcul numeric este generat de trei surse principale de erori: (a) (b) (c) erori inerente; erori de metod (de calcul); erori de reprezentare.

Erorile inerente provin din datele iniiale ale problemei de rezolvat (date care pot fi rezultatele unor msurtori experimentale sau ale altor calcule anterioare) i/sau erorile provenite din faptul c se lucreaz cu un model aproximativ al fenomenului real implicat n problema de rezolvat. Erorile de metod (sau de trunchiere) sunt datorate metodei numerice utilizate. n general, este necesar un numr mare de operaii pentru a putea ajunge la soluia exact (de regul, atunci cnd o expresie de calcul conine o infinitate de termeni) i calculele sunt oprite, n funcie de un anumit criteriu, atunci cnd se ajunge la o anumit precizie acceptabil (aadar contientizat). Erorile de reprezentare sunt datorate posibilitii efective de a reprezenta numerele n calculatorul numeric. Acest tip de erori se manifest n datele iniiale, intermediare i n cele de ieire care constituie rezultatele finale.

1.2

Natura problemelor de calcul i caracterizarea algoritmilor

1.2.1 Natura problemelor de calcul Se consider o anumit problem de calcul. Din punctul de vedere al matematicii reale, problema lucreaz cu datele exacte notate cu D. Se noteaz generic cu G ceea ce se dorete a calcula, implicnd anumite relaii matematice exacte. Aceasta poate fi scris sub forma unei aplicaii: D G (D) , cum este

prezentat principial n Figura 1.6. Aadar, G(D) reprezint soluia matematic exact, obinut lucrnd cu datele exacte D. Se consider D ca fiind datele D afectate de eroare (datele D perturbate). n acest caz, soluia exact matematic a problemei de calcul corespunztoare

1.

Calculul n virgul mobil

datelor perturbate D se noteaz cu G (D ) .


Definiie: Problema de calcul, G, se spune c este bine condiionat dac datele exacte ale problemei, D, i datele perturbate ale problemei, D , fiind apropiate ntr-un anumit sens, atunci i soluia exact matematic a problemei de calcul corespunztoare datelor exacte, G(D), este apropiat, ntr-un anumit sens de soluia exact matenatic a problemei de calcul corespunztoare datelor perturbate, G(D*). Altfel, problema de calcul se spune c este prost (sau ru) condiionat.

G D G(D)

D* G
spaiul datelor spaiul soluiilor

G(D )
*

Fig. 1.6 Conceptul de problem bine condiionat: D D G (D) G (D )

Altfel spus, o problem este bine condiionat dac mici perturbaii n una sau toate datele iniiale ale problemei conduc la mici perturbaii n datele de ieire (rezultate sau soluii). Observaie: Pentru a caracteriza apropierea sau ndeprtarea dintre D i D , respectiv G (D) i G (D ) , trebuie cunoscute dou elemente: natura datelor D i natura soluiilor G (D) . Dac D i G (D) aparin mulimii numerelor complexe, atunci se va folosi funcia modul

pentru

aprecia

diferenele

| D D |

i,

respectiv,

| G ( D) G ( D ) | . Dac D i G (D) sunt elementele unui spaiu liniar finit dimensional (vectori, matrice), se vor folosi, corespunztor, norme vectoriale, respectiv matriciale. n cele ce urmeaz, se noteaz generic erorile absolute ale mrimilor implicate cu:

1.2

Natura problemelor de calcul i caracterizarea algoritmilor

e D =| D D | i e G =| G (D) G (D ) | . Se poate defini numrul de condiie al problemei G ca fiind raportul dintre eroarea absolut n soluiile problemei de calcul i eroarea absolut n datele de intrare ale problemei de calcul:
k (G ) = e G / e D .

Dac acest numr de condiie este egal cu 1 sau are valori apropiate de 1, se spune c problema este bine condiionat. Dac numrul de condiie este mare sau foarte mare, atunci erorile n datele iniiale sunt amplificate n soluia problemei de calcul exact matematic, problema de calcul fiind prost condiionat.
Exemplul 1.13:

Rezolvarea ecuaiilor polinomiale este o problem prost condiionat. Fie Pn ( x ) un polinom de gradul n: Pn ( x ) = a 0 x n + a 1 x n 1 + + a n 1 x + a n , unde a i , i = 1,..., n; a 0 0 sunt coeficienii polinomului. Se dorete determinarea valorilor lui x pentru care Pn ( x ) = 0 . n cele ce urmeaz, se va demonstra c mici variaii n coeficienii polinomului conduc la variaii mari n soluiile calculate reprezentnd rdcinile polinomului. Se consider, n continuare, o alt problem i anume cea a calculului valorilor proprii ale unei matrice reale ptratice, pe baza ecuaiei caracteristice ataate. Se consider matricea A i varianta perturbat a acesteia, A p , de forma:
a 1 0 0 a 1 0 0 0 a 1 0 a 1 A= 0 , A p = 0 . 1 1 nxn 0 a nxn 0 0 a

Ecuaia caracteristic ataat matricei A p este: p n ( ) = det( I n A p ) = 0 , unde I n este matricea unitate de ordinul n. Rezult: p n () = ( a ) n (1) n . Ecuaia p n ( ) = 0 conduce la ( a ) n = (1) n . Aadar, o perturbaie n

1.

Calculul n virgul mobil

datele de intrare, conduce la o perturbaie de

| | n soluiile calculate.

Se consider n = 10 i a = 1 . Pentru cazul n care = 0 , rezult valorile proprii i = a = 1, i = 1, ,10 . Pentru cazul n care 0, = 10 10 , atunci valorile proprii sunt

i = a + 10 10 10 = 1 + 0.1 = 1.1, i = 1, ,10 .

Rezult:

e D = 10 10 i e G = 10 1 . Dac = 10 10 , atunci se obin 10 valori proprii complex conjugate, dispuse n planul complex pe un cerc cu centrul n punctul de coordonate (a,0) i de raz egal cu 10 10 10 = 0.1 . Cu valorile numerice considerate, n cazurile particulare ale unei perturbaii nenule, numrul de condiie al acestei probleme este: k = e G / e D = 10 1 / 10 10 = 10 9 , deci eroarea din datele iniiale ale problemei de calcul a fost amplificat de 10 9 ori n soluiile calculate. n practic, datorit acestui fapt, nu se calculeaz valorile proprii ale unei matrice prin aducerea matricei la forma canonic Jordan, utilizat n cadrul acestui exemplu, pentru c pot apare perturbaii cel puin de genul celor prezentate.
1.2.2 Caracterizarea algoritmilor

Se consider o problem de calcul oarecare care lucreaz cu setul de date exacte D. Soluia exact matematic a acestei probleme este dat de funcia G. Se consider, n plus, datele perturbate ale problemei, D . La implementarea funciei G pe un calculator numeric, practic se lucreaz cu un algoritm G (a se vedea Figura 1.7).

G D* G(D*)

D G*
spaiul datelor spaiul soluiilor

G (D)
*

1.2

Natura problemelor de calcul i caracterizarea algoritmilor

Fig. 1.7 Conceptul de algoritm stabil numeric: D D G (D) G (D )

De exemplu, considernd c G este o problem bine condiionat i c G implementeaz exact soluia G, totui G (D) G (D) datorit aritmeticii n virgul mobil. Natura algoritmului este teoretic caracterizat de urmtoarele dou mrimi: (a) soluia matematic exact a problemei de calcul corespunztoare setului de date perturbate, G (D ) ; (b) soluia algoritmului G corespunztoare setului de date exacte, G (D) .

Definiie: Un algoritm G se numete stabil numeric, dac datele exacte i datele perturbate ale problemei de calcul G fiind apropiate ntr-un anumit sens, atunci i soluia exact matematic corespunztoare setului de date perturbate G(D*) este apropiat, ntr-un anumit sens, de soluia algoritmului corespunztoare setului de date exacte G*(D). Altfel, algoritmul se spune c este instabil din punct de vedere numeric.

Altfel spus, erorile din datele de intrare sunt micorate de un algoritm stabil numeric, un algoritm instabil numeric amplificndu-le. Observaii: (a) Nu se poate atepta ca un algoritm stabil numeric s rezolve o problem prost condiionat cu o precizie mai mare dect a datelor de intrare. (b) Un algoritm instabil numeric furnizeaz, de regul, rezultate eronate chiar pentru probleme bine condiionate.
Definiie: Un algoritm numeric se spune c este general dac este aplicabil pentru un domeniu larg de date de intrare. Definiie: Un algoritm se spune c este sigur n funcionare, dac are prevzut un mecanism care s avertizeze atunci cnd erorile au crescut excesiv de mult.

Observaie: Un algoritm instabil numeric poate fi sigur n funcionare, dac este capabil s detecteze instabilitatea numeric.

1.

Calculul n virgul mobil

Concluzie: Rolul calculului numeric (al analizei numerice) este de a analiza natura problemelor de calcul i de a realiza o proiectare optim a algoritmilor. Dac problema de calcul este prost condiionat, atunci aceasta se reformuleaz, echivalent, obinnd o problem bine condiionat. Mai departe, pentru problema bine condiionat rezultat, se proiecteaz un algoritm care s fie stabil numeric, general i sigur n funcionare. Exemplul 1.14:

Un exemplu de algoritm instabil numeric este cel folosit pentru calculul integralei definite: I n = x n e x 1 dx ,
0 1

prin relaia de recuren, exact matematic:


I n = 1 n I n 1 , n = 2, 3, , I1 = 1 / e, e = 2.71828182 ... .

Se consider un calculator cu = 10 i t = 6 . Vor rezulta urmtoarele valori: I1 0.367879 I 9 0.068400 < 0 ! dar, pentru I 9 , integrandul x 9 e x 1 este pozitiv pentru x (0,1) . Aadar, s-a obinut pentru I 9 o valoare eronat. Singura eroare comis a fost cea n estimarea lui 1 / e , care determin o eroare n evaluarea lui I 1 egal cu e1 = 4.412 10 7 . Pentru evaluarea lui I 2 , eroarea comis este e 2 ( 2) e1 ; pentru I 3 eroarea comis este e 3 ( 3) e 2 i aa mai departe pn la I 9 cnd I 9 + e 9 = 0.0916 , ceea ce reprezint se obine o eroare e 9 = 9!e1 = 0.1601 . rezultatul exact cu patru cifre zecimale. Aceste rezultate arat c algoritmul utilizat este instabil numeric. Stabilizarea algoritmului se poate realiza rescriind relaia de recuren sub forma:
I n 1 = (1 I n ) / n = 1 / n I n / n , n = , 3, 2 .

Un majorant pentru I n este:

1.2

Natura problemelor de calcul i caracterizarea algoritmilor

I n = x n e x 1 dx x n dx =
0 0

1 , n +1

deoarece | e x 1 |< 1 pentru x (0,1) . Aadar, I n n 0 . Pentru diverse valori ale lui n se obin urmtoarele erori comise la calculul integralei definite, considernd I 20 = 0 :

n = 20 n = 19

e 20 1 / 21 ; e19 e 20 / 20 ;

n = 15 n =9

e15 < 4 10 8 < 1 t = 10 5 ; I 9 = 0.091612 - valoare cu ase zecimale exacte.

1.

Calculul n virgul mobil

Capitolul 2 SISTEME DETERMINATE DE ECUAII ALGEBRICE LINIARE

2.1

Formularea problemei
A x = b, A nn , b n1 . (2.1)

Se consider sistemul de n ecuaii algebrice liniare cu n necunoscute:

Problema de calcul este determinarea unei soluii x n1 a sistemului de ecuaii (2.1) sau, altfel spus, determinarea unui vector care s satisfac ecuaia dat.
Definiie: Oricare ar fi matricea A nn , aceasta se numete inversabil (nesingular) dac exist o matrice X nn astfel nct s fie ndeplinit relaia: A X = X A = I n .

n relaia anterioar, I n este notaia pentru matricea unitate de ordinul n. n continuare, se noteaz cu A 1 matricea X care satisface relaia din definiia anterioar.
Teorem de existen i unicitate: Dac matricea A nn este inversabil, atunci oricare ar fi vectorul b n1 exist i este unic soluia x a ecuaiei (2.1).

Soluia se poate scrie sub forma: x = A 1 b . (2.2) Observaii: 1. A 1 este notaia pentru inversa matricei A. n practic nu se recomand calculul matricei inverse i apoi aplicarea relaiei (2.2). Un exemplu care s ilustreze aceasta este urmtorul: se consider ecuaia a x = b , n care a = 7 i b = 21 . Se mai consider o aritmetic a virgulei mobile cu = 10 , t = 6 i

2.1

Formularea problemei

rotunjire prin tiere. Atunci soluia ecuaiei este: x = a 1 b = (7) 1 21 = 0.142857 21 = 2.99997 . Acelai sistem se poate rezolva direct i anume: x = 21 / 7 = 3 , aceasta reprezentnd soluia exact. 2. Nu se recomand rezolvarea ecuaiei prin regula Cramer: x i = i / , i = 1,..., n , unde reprezint determinantul matricei A, iar
i

reprezint

determinanii matricelor obinute prin nlocuirea coloanei numrul i a matricei A cu termenul liber asociat ecuaiei (2.1). Un exemplu pentru aceast situaie este acela n care considernd n = 20 , rezult c trebuie estimai 21 de determinani care, dac sunt calculai dup definiie, necesit calculul a 20! termeni care implic 19 nmuliri/termen, deci 19 20! operaii n virgul mobil. O operaie n virgul mobil nseamn o nmulire i o adunare: q = v w z . Pentru un calculator cu 100000 nmuliri/secund, rezult c numai pentru efectuarea nmulirilor sunt necesari 3 10 8 ani, la care se adaug erorile de rotunjire!
Exemplul 2.1:

Problemele de tipul (2.1) sunt foarte des ntlnite n practic. Ca exemplu generic, se consider un proces dinamic cu n mrimi de intrare ( u 1 , ..., u n ) i o mrime de ieire (y). Corespunztor funcionrii acestuia n regim staionar sau n regim dinamic, pentru care se realizeaz o liniarizare a modelului neliniar dup un punct de funcionare, modelul intrare-ieire al procesului poate fi descris de o ecuaie de forma:
y( u 1 , , u n ) = c1 u 1 + + c n u n .

(2.3)

Se consider un numr de n experimente prin care se impun anumite valori mrimilor de intrare i se msoar valorile pe care le ia mrimea de ieire a procesului. Rezultatele obinute pot fi tabelate astfel: nr. experiment 1 u1 a11 un a1n y b1

ai1

ain

bi

10

1.

Calculul n virgul mobil

an1

ann

bn

Notnd cu A matricea format din valorile pe care le iau mrimile de intrare ale procesului, A = [a ij ]1i n i cu b = [ b i ]1i n vectorul valorilor mrimii de
1 j n

ieire, relaia (2.3) se poate rescrie sub forma A x = b, A nn , b n1 . (2.1(2.1), unde x = [c1 c 2 c n ] T , T fiind notaia pentru operaia de transpunere vectorial. Rezolvarea ecuaiei rezultate constituie, n acest caz, o identificare a modelului pentru regimul static de funcionare a procesului. Problema aceasta va avea o soluie, dac i numai dac liniile sau coloanele matricei experimentelor [A | b ] sunt vectori liniari independeni, dup cum se va specifica ulterior.
Metodele numerice de rezolvare a unui sistem de ecuaii algebrice liniare se mpart n urmtoarele dou categorii: metode directe i metode iterative (indirecte). Metodele directe se bazeaz pe reducerea sistemului (2.1) la un sistem echivalent, direct rezolvabil prin mijloace elementare. Principial, aceasta folosete eliminarea progresiv a necunoscutelor, numit i eliminare gaussian. Practic, prin transformri elementare de echivalen, se aduce matricea A a sistemului la anumite forme tipice: a) forma superior triunghiular: u 11 u 1n 0 ; U= 0 0 u nn b) forma inferior triunghiular: l11 0 0 . L= 0 l n1 l nn Procedura de transformare se numete triangularizare. Astfel, se furnizeaz soluia exact a sistemului de ecuaii (2.1), n cazurile (ideale) n care erorile de rotunjire sunt absente. Numrul de operaii n virgul mobil, necesare triangularizrii unei matrice ptratice de ordin n, este de ordinul lui n 3 . De aceea, aceste metode se recomand pentru rezolvarea unor sisteme de ecuaii algebrice liniare de ordin mai mic dect 10 2 .

2.2

Rezolvarea sistemelor prin triangularizare direct

11

Metodele iterative au la baz construirea unui ir de aproximaii pentru [k ] soluia sistemului (2.1), x , k = 0,1, care s fie convergent pentru k la soluia adevrat, x :
k

lim || x x

[k ]

|| = 0 .

Practic, calculele se opresc la un index de iterare [s], atunci cnd este ndeplinit o condiie de forma: [s ] [ s 1] || x x || impus , sau, altfel spus, x constituie o aproximare satisfctoare a soluiei calculate. Avnd n vedere faptul c pentru o singur iteraie numrul de operaii n virgul mobil este de ordinul lui n 2 , asemenea metode se folosesc pentru sisteme de ordin mare i anume 10 2 10 4 .
[s]

2.2

Rezolvarea sistemelor prin triangularizare direct

2.2.1 Principiul metodei

Se consider problema (2.1) i matricea sistemului: A = [a ij ]1i n .


1 j n

Definiie: Matricele [a 11 ] , , [a ij ]1i n 1 se numesc submatrice principale ale lui A


1 j n 1

sau minori principali directori. Teorem: Dac matricea A nn are toate submatricele principale inversabile (nesingulare), atunci exist matricele L, D, U nn astfel nct:
A =LDU

(2.4)

unde L este o matrice inferior triunghiular, D este o matrice diagonal i U este o matrice superior triunghiular.

Se pot face, n cele ce urmeaz, urmtoarele observaii: 1. relaia (2.4) se numete factorizare L-D-U a matricei A; 2. uzuale sunt factorizrile: A = L U ; 3. demonstraia teoremei enunate este constructiv, constituind nsui algoritmul de descompunere L-U a matricei A;

12

1.

Calculul n virgul mobil

4. algoritmul de descompunere este n fond procedeul de eliminare gaussian, prin care matricea A este adus la forma superior triunghiular n urma unui ir de transformri de asemnare. Transformrile efectuate asupra matricei A se acumuleaz ntr-o matrice inferior triunghiular, cu elementele de pe diagonala principal egale cu 1. Acest tip de descompunere se numete descompunere Doolittle. 5. considernd descompunerea L-U a matricei sistemului A, A = L U , atunci rezolvarea sistemului (2.1) implic dou subetape: a. rezolvarea sistemului L y = b , etap numit i substituie nainte, obinnd soluia intermediar y. Determinarea componentelor vectorului y = [ y i ]1i n are loc din aproape n aproape: se ncepe cu y1 (prima ecuaie), se nlocuiete n a doua ecuaie determinnd pe y 2 i aa mai departe. rezolvarea sistemului U x = y , n care necunoscuta este x , etap numit i substituie invers. n acest caz, determinarea componentelor vectorului x are loc pornind de la ultima ecuaie. Aceast manier de descompunere i de rezolvare se ncadreaz n aanumita rezolvare a sistemelor determinate de ecuaii algebrice liniare prin triangularizare simpl (direct).

b.

Capitolul 2 SISTEME DETERMINATE DE ECUAII ALGEBRICE LINIARE

2.1

Formularea problemei
A x = b, A nn , b n1 .

Se consider sistemul de n ecuaii algebrice liniare cu n necunoscute:

(2.1)

Problema de calcul este determinarea unei soluii x n1 a sistemului de ecuaii (2.1) sau, altfel spus, determinarea unui vector care s satisfac ecuaia dat.
Definiie: Oricare ar fi matricea A nn , aceasta se numete inversabil (nesingular) dac exist o matrice X nn astfel nct s fie ndeplinit relaia: A X = X A = I n .

n relaia anterioar, I n este notaia pentru matricea unitate de ordinul n. n continuare, se noteaz cu A 1 matricea X care satisface relaia din definiia anterioar.
Teorem de existen i unicitate: Dac matricea A nn este inversabil, atunci oricare ar fi vectorul b n1 exist i este unic soluia x a ecuaiei (2.1).

Soluia se poate scrie sub forma: x = A 1 b . Observaii: 1. A 1 este notaia pentru inversa matricei A. n practic nu se recomand calculul matricei inverse i apoi aplicarea relaiei (2.2). Un exemplu care s ilustreze aceasta este urmtorul: se consider ecuaia a x = b , n care a = 7 i b = 21 . Se mai consider o aritmetic a virgulei mobile cu = 10 , t = 6 i (2.2)

36

2.

Sisteme determinate de ecuaii algebrice liniare

rotunjire prin tiere. Atunci soluia ecuaiei este: x = a 1 b = (7) 1 21 = 0.142857 21 = 2.99997 . Acelai sistem se poate rezolva direct i anume: x = 21 / 7 = 3 , aceasta reprezentnd soluia exact. 2. Nu se recomand rezolvarea ecuaiei prin regula Cramer: x i = i / , i = 1,..., n , unde reprezint determinantul matricei A, iar i reprezint determinanii matricelor obinute prin nlocuirea coloanei numrul i a matricei A cu termenul liber asociat ecuaiei (2.1). Un exemplu pentru aceast situaie este acela n care considernd n = 20 , rezult c trebuie estimai 21 de determinani care, dac sunt calculai dup definiie, necesit calculul a 20! termeni care implic 19 nmuliri/termen, deci 19 20! operaii n virgul mobil. O operaie n virgul mobil nseamn o nmulire i o adunare: q = v w z . Pentru un calculator cu 100000 nmuliri/secund, rezult c numai pentru efectuarea nmulirilor sunt necesari 3 10 8 ani, la care se adaug erorile de rotunjire!
Exemplul 2.1:

Problemele de tipul (2.1) sunt foarte des ntlnite n practic. Ca exemplu generic, se consider un proces dinamic cu n mrimi de intrare ( u 1 , ..., u n ) i o mrime de ieire (y). Corespunztor funcionrii acestuia n regim staionar sau n regim dinamic, pentru care se realizeaz o liniarizare a modelului neliniar dup un punct de funcionare, modelul intrare-ieire al procesului poate fi descris de o ecuaie de forma: y( u 1 , , u n ) = c1 u 1 + + c n u n . (2.3)

Se consider un numr de n experimente prin care se impun anumite valori mrimilor de intrare i se msoar valorile pe care le ia mrimea de ieire a procesului. Rezultatele obinute pot fi tabelate astfel: nr. experiment 1 u1 a11 un a1n y b1

ai1

ain

bi

2.1

Formularea problemei

37

an1

ann

bn

Notnd cu A matricea format din valorile pe care le iau mrimile de intrare ale procesului, A = [a ij ]1i n i cu b = [b i ]1i n vectorul valorilor mrimii de
1 j n

ieire, relaia (2.3) se poate rescrie sub forma A x = b, A nn , b n1 . (2.1(2.1), unde x = [c1 c 2 c n ] T , T fiind notaia pentru operaia de transpunere vectorial. Rezolvarea ecuaiei rezultate constituie, n acest caz, o identificare a modelului pentru regimul static de funcionare a procesului. Problema aceasta va avea o soluie, dac i numai dac liniile sau coloanele matricei experimentelor [A | b] sunt vectori liniari independeni, dup cum se va specifica ulterior.
Metodele numerice de rezolvare a unui sistem de ecuaii algebrice liniare se mpart n urmtoarele dou categorii: metode directe i metode iterative (indirecte). Metodele directe se bazeaz pe reducerea sistemului (2.1) la un sistem echivalent, direct rezolvabil prin mijloace elementare. Principial, aceasta folosete eliminarea progresiv a necunoscutelor, numit i eliminare gaussian. Practic, prin transformri elementare de echivalen, se aduce matricea A a sistemului la anumite forme tipice: a) forma superior triunghiular: u 11 u 1n 0 ; U= 0 0 u nn b) forma inferior triunghiular: l11 0 0 . L= 0 l n1 l nn Procedura de transformare se numete triangularizare. Astfel, se furnizeaz soluia exact a sistemului de ecuaii (2.1), n cazurile (ideale) n care erorile de rotunjire sunt absente. Numrul de operaii n virgul mobil, necesare triangularizrii unei matrice ptratice de ordin n, este de ordinul lui n 3 . De aceea, aceste metode se recomand pentru rezolvarea unor sisteme de ecuaii algebrice liniare de ordin mai mic dect 10 2 .

38

2.

Sisteme determinate de ecuaii algebrice liniare

Metodele iterative au la baz construirea unui ir de aproximaii pentru [k ] soluia sistemului (2.1), x , k = 0,1, care s fie convergent pentru k la soluia adevrat, x :
k

lim || x x

[k]

|| = 0 .

Practic, calculele se opresc la un index de iterare [s], atunci cnd este ndeplinit o condiie de forma: [s] [ s 1] || x x || impus , sau, altfel spus, x
[s]

constituie o aproximare satisfctoare a soluiei calculate.

Avnd n vedere faptul c pentru o singur iteraie numrul de operaii n virgul mobil este de ordinul lui n 2 , asemenea metode se folosesc pentru sisteme de ordin mare i anume 10 2 10 4 .

2.2

Rezolvarea sistemelor prin triangularizare direct

2.2.1 Principiul metodei

Se consider problema (2.1) i matricea sistemului: A = [a ij ]1i n .


1 j n

Definiie: Matricele [a 11 ] , , [a ij ]1i n 1 se numesc submatrice principale ale lui A


1 j n 1

sau minori principali directori. Teorem: Dac matricea A nn are toate submatricele principale inversabile (nesingulare), atunci exist matricele L, D, U nn astfel nct:

A =LDU

(2.4)

unde L este o matrice inferior triunghiular, D este o matrice diagonal i U este o matrice superior triunghiular.

Se pot face, n cele ce urmeaz, urmtoarele observaii: 1. relaia (2.4) se numete factorizare L-D-U a matricei A; 2. uzuale sunt factorizrile: A = L U ; 3. demonstraia teoremei enunate este constructiv, constituind nsui algoritmul de descompunere L-U a matricei A;

2.2

Rezolvarea sistemelor prin triangularizare direct

39

4. algoritmul de descompunere este n fond procedeul de eliminare gaussian, prin care matricea A este adus la forma superior triunghiular n urma unui ir de transformri de asemnare. Transformrile efectuate asupra matricei A se acumuleaz ntr-o matrice inferior triunghiular, cu elementele de pe diagonala principal egale cu 1. Acest tip de descompunere se numete descompunere Doolittle. 5. considernd descompunerea L-U a matricei sistemului A, A = L U , atunci rezolvarea sistemului (2.1) implic dou subetape: a. rezolvarea sistemului L y = b , etap numit i substituie nainte, obinnd soluia intermediar y. Determinarea componentelor vectorului y = [ y i ]1i n are loc din aproape n aproape: se ncepe cu y1 (prima ecuaie), se nlocuiete n a doua ecuaie determinnd pe y 2 i b. aa mai departe. rezolvarea sistemului U x = y , n care necunoscuta este x , etap numit i substituie invers. n acest caz, determinarea componentelor vectorului x are loc pornind de la ultima ecuaie. Aceast manier de descompunere i de rezolvare se ncadreaz n aanumita rezolvare a sistemelor determinate de ecuaii algebrice liniare prin triangularizare simpl (direct). n continuare se prezint cteva rezultate referitoare la algebra matricelor triunghiulare.
Definiie: Se numete matrice triunghiular unitate o matrice inferior sau superior triunghiular care are elementele de pe diagonala principal egale cu 1.

n ceea ce privete matricele triunghiulare, sunt valabile urmtoarele rezultate. R1: Inversa unei matrice superior (inferior) triunghiular este o matrice superior (inferior) triunghiular. R2: Produsul a dou matrice superior (inferior) triunghiulare este o matrice superior (inferior) triunghiular. R3: Inversa unei matrice superior (inferior) triunghiular unitate este o matrice superior (inferior) triunghiular unitate. R4: Produsul a dou matrice superior (inferior) triunghiulare unitate este o matrice superior (inferior) triunghiular unitate. n cele ce urmeaz, se enun i demonstreaz urmtorul rezultat esenial.
Propoziie:

40

2.

Sisteme determinate de ecuaii algebrice liniare

Dac matricea A admite o descompunere L-U, atunci aceast descompunere este unic.

Demonstraia se realizeaz prin reducere la absurd, presupunnd c matricea A admite dou descompuneri L-U i anume: A = L1 U 1 , A = L 2 U 2 . De aici rezult c L1 U 1 = L 2 U 2 , ceea ce conduce la:
1 1 L 2 L1 = U 2 U 1 , 1 adic o matrice inferior triunghiular unitate ( L 2 L 1 ) este identic cu o

1 matrice superior triunghiular ( U 2 U 1 ). Acest lucru este posibil numai dac

ambele matrice sunt diagonale i au diagonala principal unitar, adic: 1 1 L 2 L 1 I n i U 2 U 1 I n , ceea ce implic L1 L 2 , U 1 U 2 . Procedura de triangularizare direct necesit un numr de operaii n virgul mobil de ordinul lui n 3 / 3 . Numrul total de operaii n virgul mobil pentru rezolvarea unui sistem determinat de ecuaii algebrice liniare, folosind triangularizarea simpl, este de ordinul lui (n 3 / 3) + n 2 , n 2 operaii fiind necesare pentru parcurgerea celor dou etape din rezolvarea propriu-zis a sistemului, anume substituia nainte i substituia napoi. Dac matricea A este simetric ( A = A T ) i pozitiv definit T T ( x n1 , x 0 n , x A x > 0 i x A x = 0 x 0 n ), atunci A se descompune sub forma A = L LT . Aceasta se numete descompunerea Cholesky. n acest caz, algoritmul necesit mai puine operaii n virgul mobil i anume n 3 / 6 , exploatnd faptul c matricea A este simetric.
2.2.2 Procedura de triangularizare direct a unei matrice

Principiul triangularizrii simple poate fi prezentat prin urmtorul algoritm, descris principial n limbajul pseudocod: atribuie A 1 A pentru k = 1, n 1 execut * determinare matrice M k astfel nct matricea A k +1 = M k A k s

aib elementele: a [i ,kk+1] = 0, i = k + 1,..., n i a [i ,kj+1] = a [i ,kj] , i = 1,..., n; j = 1,..., k 1

atribuie A k +1 M k A k

2.2

Rezolvarea sistemelor prin triangularizare direct

41

n final se obine matricea A n = U . Acest algoritm parcurge (n 1) etape, la fiecare etap zerorizndu-se elementele de sub diagonala principal i pstrnd nealterate transformrile care s-au efectuat n coloanele anterioare ale matricei A. Notnd cu vectorul coninnd elementele coloanei k a matricei A k , anume: = [ 1 k s aib elementele: M k = [ 1 k Se consider vectorul m k de forma: 0 0] T .
[k ] ] k +1 n ] T = [a 1 a [kk,k ,k

a [kk+]1,k

] T a [nk,k ] ,

atunci matricea de transformare M k se construiete astfel nct vectorul M k

m k = [0 0 k +1,k

n ,k ]T ,

elementele i, k , i = k + 1,..., n numindu-se multiplicatori. Vectorul m k se numete vector Gauss sau vector de multiplicatori. Subvectorul care conine strict numai multiplicatorii se numete subvector Gauss: t k = [ k +1, k n ,k ] T .
Definiie: Matricea M k se numete matrice de transformare elementar de ordin n i indice k sau matrice Gauss i este definit prin: T Mk = In mk ek , n care e k = [0 0 1 0 0] T , elementul egal cu 1 fiind n poziia k.
T

Definit astfel, matricea M k este o matrice inferior triunghiular unitate, este nesingular i deci admite invers. Inversa acesteia este de forma:
1 Mk = In + mk ek . T

(2.5)

Efectul aplicrii matricei M k asupra vectorului definit anterior, , este:


M k = (I n m k e k ) = m k e k = m k k = [ 1 k k +1 k +1,k k n n ,k k ]T ultimele n k elemente trebuind a fi zerorizate. Presupunnd c k 0 i alegnd i , k = i / k , i = k + 1,..., n , va rezulta: M k = [ 1 k 0 0] T .
T T

42

2.

Sisteme determinate de ecuaii algebrice liniare

Dac

la

etapa

triangularizrii,
] a [kk,k

elementul

] a [kk, k 0

] , i = k + 1,..., n , atunci se obine: i , k = a [i ,kk] / a [kk, k [k ] M k c k ( A k ) = [a 1 a [kk]1, k ,k

0 0] T ,

n care c k (A k ) reprezint notaia pentru coloana k a matricei A k . Acest rezultat evideniaz faptul c primele k elemente din coloana k a matricei A k rmn neschimbate, iar ultimele n k elemente devin zero. Elementul ] k = a [kk,k se numete pivot. Observaii: 1. n practic, pe calculator, etapa k descris mai sus se poate realiza testnd condiia: ] | a [kk, k |> ,
] n loc de a verifica a [kk, k 0 , unde este o constant impus, de valoare

mic sau foarte mic. De exemplu, constanta poate fi egal cu epsilonulmain. Aceasta se realizeaz datorit faptului c, dac n aritmetica real (exact) pivotul este nul, n aritmetica virgulei mobile, datorit erorilor de calcul, aceast situaie este echivalent cu: ] | a [kk, k | . 2. Cnd pivotul este n modul mai mic sau egal cu , eliminarea gaussian eueaz. Aceasta corespunde situaiei cnd matricea iniial A are submatricea principal de ordin k singular, deci conform teormei enunate anterior, descompunerea L-U a matricei A nu exist. Efectul aplicrii transformrii M k asupra celorlaltor coloane ale matricei A k este urmtorul. Se consider un vector de forma = [1 n ] T . Aplicnd transformarea M k vectorului , se obine: M k = [1 k
Concluzii:

k +1 k +1, k k

n n ,k k ]T .

a) Matricea M k las nemodificate primele k 1 coloane ale matricei A k . Considernd vectorul ca fiind coloana numrul j a matricei A k : = c j (A k ) = [* *
1 j j+1

0 0] T ,
k n

j < k , j = 1,..., k 1 ,

atunci se obine:

2.2

Rezolvarea sistemelor prin triangularizare direct

43

M k c j (A k ) = [* *
1 j

j+1

0 0 k +1,k 0 0 n ,k 0] T
k k +1 n

= c j (A k ) b) Matricea M k transform coloana k a matricei A k , zeroriznd liniile k + 1,..., n . c) Matricea M k transform coloanele k + 1,..., n ale lui A k n liniile k + 1,..., n . Considernd vectorul ca fiind coloana j a matricei A k : = c j (A k ), j = k + 1,..., n , atunci se obine: M k c j (A k ) = [* * a [kk+]1, j k +1, k a [kk, ]j a [nk, ]j n , k a [kk, ]j ] T , notaia * semnificnd faptul c elementele implicate rmn nemodificate. Sumariznd, asupra matricei iniiale A se aplic transformrile M 1 , ..., M n 1 , obinndu-se n final forma superior triunghiular U:

M n 1 M 2 M 1 A = U .
1 1 1 nmulind la stnga relaia (2.6) cu M 1 M2 M n 1 , se obine: 1 1 1 M A = M1 2 M n 1 U .

(2.6)

(2.7)

1 1 1 M2 M Notnd produsul M 1 n 1 cu L, atunci relaia (2.7) devine: A =LU . 1 innd cont de forma matricelor M k , k = 1,..., n 1 dat de relaia (2.5), atunci matricea L este egal cu:

1 1 1 L = M1 M2 M n 1 = I n + m k e k . T k =1

n 1

Matricea L este inferior triunghiular unitate i conine n fiecare coloan, sub elementul unitar de pe diagonala principal, subvectorii Gauss. Prima sub-etap de rezolvare a sistemului (2.1) este substituia nainte aplicat sistemului de ecuaii L y = b . Vectorul y rezultat este, de fapt, vectorul care se obine aplicnd la stnga, n aceeai ordine, transformrile elementare care s-au aplicat matricei A: y = L1 b = M n 1 M 2 M 1 b .
Exemplul 2.2:

Se consider o aritmetic a virgulei mobile cu = 10 , t = 5 i rotunjire prin tiere.

44

2.

Sisteme determinate de ecuaii algebrice liniare

7 0 10 A = 3 2.099 6 ; 1 5 5 7 10 A 1 = A; A 2 = * 1 10 3 2.5 * 7 y= 6.001 ; 5 0.15004 10

7 b= 3.901; A x = b, x = ? 6 0 0 7 10 ; 3 6; A 3 = * 1 10 6 5 5 * * 0 . 15005 10 0.35 0 x= 1.5 1 = x a , 0.99993 1

unde x a reprezint soluia adevrat a sistemului. Rezult, aadar, erori mari n soluia calculat, x . Cauza care a determinat apariia acestor erori este aceea c la pasul al doilea al triangularizrii s-a lucrat cu un pivot foarte mic n modul ( 1 10 3 ), pentru aritmetica virgulei mobile folosite. Multiplicatorul corespunztor este 3, 2 = 2.5 /(10 3 ) = 2.5 10 3 , deci are o valoare foarte mare n modul pentru aceeai aritmetic. Aceasta a condus, mai departe, la apariia fenomenului de omitere catastrofal n calculele care s-au efectuat pentru obinerea vectorilor y i x .
Concluzie:

La triangularizarea simpl, unde elementele matricei A se modific corespunztor relaiei: k] a [ijk +1] = a [ijk ] ik a [kj , i = k + 1,..., n; j = k ,..., n , multiplicatorii ik pot avea, n principiu, orice valoare. Dac aceste valori sunt mari sau foarte mari, atunci pot apare fenomenele de omitere catastrofal i/sau de neutralizare a termenilor. Mai mult, dac aceti multiplicatori au valori k] , n supraunitare n modul, atunci ei amplific erorile prezente n termenii a [kj felul acesta triangularizarea simpl fiind instabil numeric, n general. Altfel spus, nu exist nici un control asupra stabilitii numerice a algoritmului triangularizrii simple.

2.3

Rezolvarea sistemelor pivotare parial

prin

triangularizare

cu

n cazul triangularizrii cu pivotare parial (Figura 2.1), la pasul k se caut pivotul k printre elementele din coloana k, pornind de la elementul de pe

2.3

Rezolvarea sistemelor prin triangularizare cu pivotare parial

45

diagonala principal n jos, alegndu-se elementul care are cea mai mare valoare n modul: k] [k ] | a [i k , k |= max{| a i , k |} = k .
k i n

Ak =

0
ik n | k

Fig. 2.1 Principiul triangularizrii cu pivotare parial a unei matrice: pivotul se gsete n coloana k, liniile k n; k=1,...,n

Dac i k k , elementul maxim n modul nu se gsete pe diagonala principal, atunci se interschimb (permut) liniile k i i k . Lucrul acesta se realizeaz automat cu ajutorul unei matrice de permutare de linii Pk care multiplic la stnga matricea A k : Pk A k . Pentru matricea care rezult astfel, se determin apoi matricea de transformare M k ca i n cazul traingularizrii simple, obinnd matricea: A k +1 = M k (Pk A k ) . n felul acesta, multiplicatorii calculai sunt subunitari n modul | i , k | 1, i = k + 1,..., n , iar algoritmul triangularizrii devine stabil numeric. Matricea M k Pk se numete matrice de transformare elementar stabilizat. Matricea de permutare Pk se obine din matricea unitate de ordinul n, I n , schimbnd adecvat ntre ele liniile k i i k . Aceast matrice are urmtoarele proprieti: det(Pk ) = 1; Pk = Pk1 .
Teorem: Dac matricea A nn este nesingular, atunci exist o matrice P nn , numit matrice general de permutare de linii, astfel nct: P A = L' U ,

46

2.

Sisteme determinate de ecuaii algebrice liniare

n care U este o matrice superior triunghiular i L' este o matrice inferior triunghiular unitate. cu elementele | l i , j | 1, i > j .

Demonstraia acestei teoreme este constructiv, constituind nsui algoritmul de triangularizare cu pivotare parial a unei matrice. Se poate face observaia c matricea L' conine n coloana k, sub elementul de pe diagonala principal, subvectorul Gauss (de la triangulaizarea simpl) avnd liniile permutate. Algoritmul de triangularizare cu pivotare parial este urmtorul: atribuie A 1 A pentru k = 1, n 1 execut
k] [k] [k ] * determinare pivot k a [i k , k astfel nct | a i k , k |= max{| a i , k |} k i n

dac (i k k ) atunci * determin Pk altfel atribuie Pk I n

* calcul Pk A k * determinare matrice M k astfel nct matricea A k +1 = M k (Pk A k ) s ndeplineasc condiiile de la triangularizarea simpl atribuie A k +1 M k (Pk A k )
atribuie U A n n ansamblu, asupra matricei A sunt aplicate urmtoarele transformri:

M n 1 Pn 1 M 2 P2 M 1 P1 A = U .

(2.8)

Folosind faptul c Pk = Pk1 , sau altfel spus Pk Pk = I n , relaia (2.8) poate fi scris sub forma:

(M n 1 Pn 1 M 1 P1 P1 P2 Pn 1 ) (Pn 1 P2 P1 ) A = U

(2.9)

Matricea produs Pn 1 P2 P1 se noteaz cu P. Ea este numit matrice general de permutare de linii. Produsul din prima parantez din relaia (2.9) se noteaz cu L'1 . Relaia (2.9) se scrie sub forma: P A = L' U , n care matricea 1 1 1 L' = Pn 1 P2 M 1 P2 M este o matrice inferior 2 Pn 1 M n 1 triunghiular unitate avnd n fiecare coloan, sub diagonala principal, subvectori Gauss cu liniile permutate.

2.3

Rezolvarea sistemelor prin triangularizare cu pivotare parial

47

Definiie: Matricea A nn se numete diagonal dominant pe coloane dac n fiecare coloan a sa elementul de pe diagonala principal este, n modul, mai mare dect suma modulelor celorlaltor elemente:

| a j, j | | a i , j |, j = 1,..., n .
i =1 i j

n acest caz, se poate enuna urmtorul rezultat.


Propoziie: Dac matricea A este diagonal dominant pe coloane, atunci ea admite factorizarea:

P A = L' U ,
n care P = I n i elementele matricei L' sunt n modul subunitare.

Altfel spus, nu este implicat permutarea de linii n cazul traingularizrii unei matrice diagonal dominante pe coloane. Rezolvarea sistemului A x = b, A nn , b n1 se realizeaz n dou etape: a) descompunerea L' -U a matricei A: P A = L' U b) rezolvarea propriu-zis a sistemului care comport trei subetape, i anume: b.1.) calculul vectorului c = P b ; b.2.) b.3.) rezolvarea sistemului L' y = c prin substituie nainte; rezolvarea sistemului U x = y prin substituie napoi.

Aceast modalitate de rezolvare se bazeaz pe urmtoarele relaii: P A x = P b , P A = L' U , L' U x = P b , y = U x , c = P b .


Exemplul 2.3:

Se consider problema de la Exemplul 2.2. Se aplic, de aceast dat, triangularizarea cu pivotare parial. n acest caz, permutarea de linii intervine la pasul al doilea al triangularizrii, permutndu-se liniile 2 i 3: P = P2 . Se obine, n final: 0 7 10 7 0 y = 2.5 ; U = 0 2.5 5 ; x = 1 . 0 6.002 6.002 0 1

48

2.

Sisteme determinate de ecuaii algebrice liniare

Dac algoritmul de triangularizare cu pivotare parial eueaz, n sensul c pivotul gsit la o anumit etap [k] este nul sau foarte mic n modul, aceasta corespunde situaiei cnd n aritmetica real primele k coloane ale matricei A sunt liniar dependente. Dac ns pivotul gsit este n modul foarte mic n sensul preciziei dorite (mai mic dect un anumit parametru impus), atunci se recurge la traingularizarea matricei sistemului prin pivotare total, ceea ce implic att permutri de linii ct i de coloane.

2.4

Rezolvarea sistemelor pivotare total

prin

triangularizare

cu

n cazul triangularizrii cu pivotare total (Figura 2.2), la pasul [k] al triangularizrii se alege drept pivot elementul maxim n modul din submatricea format din liniile de la k la n, coloanele de la k la n: k] [k ] | a [i k , jk |= max{| a i , j |} .
k i n k j n

Dac acest element nu se afl n linia i/sau coloana k, atunci are loc permutarea adecvat de linii i/sau coloane n scopul aducerii acelui element pe diagonala principal, anume n linia k i coloana k.

Ak =

0
ik n | k | jk

Fig. 2.2 Principiul triangularizrii cu pivotare total a unei matrice: pivotul se gsete n submatricea determinat de coloanele k n i liniile k n; k=1,...,n

n continuare, se enun i demonstreaz urmtorul rezultat.


Teorem: Pentru orice matrice A nn nesingular, exist dou matrice generale de permutare, P matrice general de permutare de linii i S matrice general de permutare de coloane, astfel nct: P A S = L' U ,

2.4

Rezolvarea sistemelor prin triangularizare cu pivotare total

49

unde U este o matrice superior triunghiular, iar L' este o matrice inferior triunghiular unitate avnd elementele | l i , j | 1, i j , n fiecare coloan a matricei L, sub elementul de pe diagonala principal, gsindu-se subvectori Gauss avnd liniile permutate ntre ele. Matricele generale de permutare P i S sunt: P = Pn 1 P2 P1 ; S = S1 S 2 S n 1 , unde matricele Pk , S k , k = 1,..., n 1 sunt matrice de permutare de linii i, respectiv, de coloane.

Demonstraia teoremei este constructiv, reprezentnd nsui algoritmul triangularizrii cu pivotare total a matricei A. Acesta este descris n limbajul pseudocod, dup cum urmeaz: atribuie A 1 A pentru k = 1, n 1 execut
k] [k] [k ] * determinare pivot k a [i k , jk care satisface: | a i k , jk |= max{| a i , j |} k i n k j n

dac (i k k ) atunci * determinare Pk (permutarea liniilor i k i k) altfel atribuie Pk I n dac ( j k k ) atunci * determinare S k (permutarea coloanelor j k i k) altfel atribuie S k I n atribuie A 'k +1 Pk A k S k * traingularizare matrice A 'k +1 :
atribuie U A n Tabloul general al transformrilor este: M n 1 Pn 1 M 2 P2 M 1 P1 A S1 S 2 S n 1 = U . (2.10) A k +1 M k A 'k +1 = M k (Pk A k S k )

n relaia (2.10) se noteaz cu S produsul S1 S 2 S n 1 i se ine cont de faptul c Pk Pk = I n . Atunci relaia (2.10) devine:

50

2.

Sisteme determinate de ecuaii algebrice liniare

(M n 1 Pn 1 M 2 P2 M 1 P1 P1 P2 Pn 1 ) (Pn 1 P1 ) A S = U

(2.11)

Matricea Pn 1 P2 P1 se noteaz cu P, iar cu (L' ) 1 se noteaz produsul M n 1 Pn 1 M 2 P2 M 1 P1 P1 P2 Pn 1 . n felul acesta, relaia (2.11) devine: P A S = L' U . Observaii: 1. Matricea de permutare de linii, Pk , se obine din matricea unitate I n schimbnd adecvat ntre ele liniile k i i k . Deoarece se schimb linii ntre ele, matricea Pk se aplic la stnga matricei A k . Matricea Pk are proprietile: det(Pk ) = 1; Pk = Pk1 . 2. Matricea de permutare de coloane, S k , se obine din matricea unitate I n schimbnd adecvat ntre ele coloanele k i j k . Deoarece se schimb coloane ntre ele, matricea S k se aplic la dreapta matricei A k . Matricea S k are proprietile: 1 det(S k ) = 1; S k = S k . Pentru nelegerea etapelor rezolvrii sistemului (2.1), se nmulesc ambii membri ai ecuaiei, la stnga, cu matricea P i se insereaz ntre A i x produsul S S 1 = I n , obinndu-se: P A S S 1 x = P b . Aadar, rezolvarea sistemului comport urmtoarele etape: a) triangularizarea cu pivotare total a matricei siatemului A: P A S = L' U ; b) rezolvarea propriu-zis a sistemului (2.12), cu urmtoarele subetape: b.1.) calculul vectorului c = P b ; b.2.) rezolvarea sistemului L' y = c prin substituie nainte; b.3.) rezolvarea sistemului U z = y prin substituie napoi; b.4.) determinarea soluiei: x = S z . Observaii: 1) Permutrile de linii efectuate asupra matricei A implic permutri de linii asupra termenului liber b . (2.12)

2.5

Aplicaii ale descompunerilor L-U

51

2) Permutrile de coloane efectuate asupra matricei A implic permutri de linii n soluia calculat a sistemului z . 3) Triangularizarea cu pivotare total asigur, la fiecare iteraie a sa, pivoii cei mai mari n valoare absolut. Astfel, multiplicatorii vor fi subunitari n modul, de valoarea cea mai mic posibil, | i , k | 1 , iar elementele care se transform devin: a [i ,kj+1] a [i ,kj] i ,k a [kk, ]j , j = k ,..., n; i = k + 1,..., n .

Ca urmare, triangularizarea cu pivotare total reprezint procedura de triangularizare cea mai precis i stabil numeric. Dezavantajul ei este acela c necesit un timp de calcul mai mare. De regul, se folosete triangularizarea cu pivotare parial, recurgndu-se la triangularizarea cu pivotare total numai cnd cea parial eueaz. 4) Dac A este o matrice singular, atunci pivotarea total va eua. n aritmetica real exact aceasta corespunde situaiei cnd pivotul este nul, matricea A avnd rangul egal cu k-1, daca algoritmul eueaz la iteraia k. n aritmetica n virgul mobil, datorit erorilor de rotunjire, un pivot nul nseamn ndeplinirea condiiei: k] | a [i k , jk | , i se spune c matricele A, ca i A k , sunt algoritmic singulare. 5) Dac matricea A este diagonal dominant pe linii i pe coloane i n plus elementele de pe diagonal satisfac relaiile: | a 11 || a 22 | | a nn | , atunci descompunerea L' -U cu pivotare total este: P A S = L' U; unde : P = I n ; S = I n .

2.5

Aplicaii ale descompunerilor L-U

2.5.1 Calculul determinantului

Considernd o matrice A nn nesingular, pentru care s-a calculat una din descompunerile de tip L-U, calculul determinantului acesteia poate fi fcut dup cum urmeaz.
Descompunerea L-U bazat pe triangularizarea simpl

n acest caz, descompunerea L-U a matricei A este: A =LU , (2.13)

52

2.

Sisteme determinate de ecuaii algebrice liniare

unde L este o matrice inferior triunghiular unitate, iar matricea U = [u i, j ]1i , j n este o matrice superior triunghiular. Aplicnd funcia determinant det(.) relaiei (2.13) se obine: det(A ) = det(L U) = det(L) det( U) . (2.14)

Matricea L fiind o matrice inferior triunghiular unitate, determinantul su este egal cu 1, iar matricea U fiind o matrice superior triunghiulare, determinantul su este egal cu produsul elementelor de pe diagonala principal. innd cont de acestea, relaia (2.14) devine:

det(A) = u i ,i .
i =1

Descompunerea L-U bazat pe triangularizarea cu pivotare parial

n acest caz, descompunerea L-U a matricei A este: P A = L' U , (2.15)

n care P este matricea general de permutare de linii (matrice nesingular), L' este o matrice inferior triunghiular unitate, iar U = [u i , j ]1i , j n este o matrice superior triunghiular. innd cont de faptul c matricea P este inversabil, relaia (2.15) poate fi scris sub forma: A = P 1 L' U . (2.16)

Aplicnd funcia determinant det(.) relaiei (2.16), se obine: det(A) = det(P 1 L' U) = det(P 1 ) det(L' ) det( U) . innd cont de urmtoarele: P 1 = P1 P2 Pn 1 , det(P 1 ) = det(P1 ) det(P2 ) det(Pn 1 ) ; det(Pi ) = 1, i {1,..., n 1} , deoarece dac Pi I n este realizat o permutare de linii la iteraia [i] a algoritmului de triangularizare cu pivotare parial; det(L' ) = 1 ; det( U) = u i,i ,
i =1 n n

atunci relaia (2.16) devine: det(A) = (1) Npl u i ,i ,


i =1

unde Npl reprezint numrul de permutri de linii efectiv realizate n procesul de triangularizare a matricei A.

2.5

Aplicaii ale descompunerilor L-U

53

Descompunerea L-U bazat pe triangularizarea cu pivotare total

n acest caz, descompunerea L-U a matricei A este: P A S = L' U , (2.17)

n care P este matricea general de permutare de linii (matrice nesingular), S este matricea general de permutare de coloane (matrice nesingular), L' este o matrice inferior triunghiular unitate, iar U = [u i , j ]1i , j n este o matrice superior triunghiular. innd cont de faptul c matricele P i S sunt inversabile, relaia (2.17) devine:

A = P 1 L' U S 1 .

(2.18)

Dar P 1 = P1 P2 Pn 1 i S 1 = S n 1 S 2 S1 . Ca urmare, relaia (2.18) devine: det(A) = det(Pi ) det(L' ) det( U) det(S i ) .
i =1 i =1 n n

(2.19)

innd cont de urmtoarele: det(Pi ) = 1, i {1,..., n 1} , deoarece dac

Pi I n

este realizat o

permutare de linii la iteraia [i] a algoritmului de triangularizare cu pivotare total; det(S i ) = 1, i {1,..., n 1} , deoarece dac Si I n este realizat permutare de coloane la iteraia [i] a algoritmului de triangularizare cu pivotare total; det(L' ) = 1 ; det( U) = u i,i ,
i =1 n n

atunci relaia (2.19) devine: det(A) = (1) Npl+ Npc u i,i ,


i =1

unde Npl este numrul permutrilor de linii, iar Npc numrul permutrilor de coloane ce s-au realizat efectiv pe parcursul procedurii de triangularizare cu pivotare total a matricei A.
2.5.2 Rezolvarea ecuaiilor matriciale

Se consider ecuaia matricial de forma: A X = B, A nn ; B np ; X np ; X = ? . (2.20)

54

2.

Sisteme determinate de ecuaii algebrice liniare

Se scriu matricele B i X pe coloane, sub forma: B = [ b1 b k X = [x1 x k


b p ]; b k n1 , k = 1,..., p x p ]; x k n1 , k = 1,..., p

(2.21)

Apelnd la descompunerea L-U cu traingularizare simpl (relaia (2.13)) a matricei A a sistemului (2.20), se obine relaia: L U X = B. (2.22) Notnd produsul U X cu Y, relaia (2.22) devine: L Y = B sau, folosind relaiile (2.21), se poate scrie:
L y k = b k , k = 1,..., p U x k = y k , k = 1,..., p

(2.23)

Aadar, rezolvarea ecuaiei matriciale (2.20) implic descompunerea L-U a matricei sistemului i apoi determinarea succesiv a coloanelor matricei necunoscutelor, X cu ajutorul relaiilor (2.23). Numrul de operaii n virgul mobil necesar rezolvrii unui astfel de sistem este de ordinul lui (n 3 / 3) + p n 2 , unde n 3 / 3 operaii n virgul mobil sunt necesare descompunerii L-U, iar p n 2 operaii sunt necesare rezolvrii sistemului n maniera descris. n cazul n care se utilizeaz descompunerea L-U cu pivotare parial (relaia (2.15)) a matricei A a sistemului, atunci rezolvarea sistemului de ecuaii matriciale (2.20) parcurge urmtoarele etape: a) descompunerea L' -U a matricei A (relaia (2.15)); b) calculul coloanelor matricei X; pentru k = 1,..., p se execut: b.1.) calculul vectorului c = P b k ; b.2.) rezolvarea sistemului L' y k = c prin substituie nainte; b.3.) rezolvarea sistemului U x k = y k prin substituie invers. n cazul n care se apeleaz la descompunerea L-U cu pivotare total (relaia (2.17)) a matricei A a sistemului, atunci rezolvarea sistemului de ecuaii matriciale (2.20) parcurge urmtoarele etape: a) descompunerea L' -U a matricei A (relaia (2.17)); b) calculul coloanelor matricei X; pentru k = 1,..., p se execut: b.1.) calculul vectorului c = P b k ; b.2.) rezolvarea sistemului L' y k = c prin substituie nainte;

2.5

Aplicaii ale descompunerilor L-U

55

b.3.) rezolvarea sistemului U z k = y k prin substituie invers; b.4.) ordonare soluie calculat: x k = S z k .
2.5.3 Calculul inversei unei matrice

Fie o matrice A nn nesingular. Se dorete aflarea inversei acesteia, notat cu A 1 . Acest tip de problem se ncadreaz n problematica rezolvrii ecuaiilor matriciale de tipul (2.20), considernd B = I n . Astfel, n prima faz se utilizeaz una din descompunerile L-U ale matricei A, anume traingularizare simpl, triangularizare cu pivotare parial sau triangularizare cu pivotare total, urmat de o a doua faz de rezolvare propriuzis a unui sistem de tipul (2.20). n final, matricea invers A 1 este egal cu matricea ale crei coloane sunt vectorii rezultai la faza a doua menionat i anume: A 1 = X = [x 1 x k x n ] . Detaliile acestei proceduri sunt urmtoarele, n funcie de tipul de triangularizare a matricei de inversat A caee este folosit:
triangularizare simpl

1. descompunere L-U (relaia (2.13)); 2. L y k = e k , e k = [0 0 1 0 0] T , unde 1 apare n poziia k;

U x k = y k , k = 1,..., n
triangularizare cu pivotare parial

1. descompunere L-U (relaia (2.15)); 2. c = P e k , e k = [0 0 1 0 0] T , unde 1 apare n poziia k; L' y k = c

U x k = y k , k = 1,..., n
triangularizare cu pivotare total

1. descompunere L-U (relaia (2.17)); 2. c = P e k , e k = [0 0 1 0 0] T , unde 1 apare n poziia k; L' y k = c

U zk = yk
x k = S z k , k = 1,..., n .

56

2.

Sisteme determinate de ecuaii algebrice liniare

Aceast procedur de determinare a inversei unei matrice necesit un numr de operaii n virgul mobil de ordinul lui (n 3 / 3) + n n 2 , n cazul utilizrii triangularizrii simple. Concluzia care se poate desprinde este aceea c inversarea unei matrice necesit un numr mare de operaii n virgul mobil. Ca urmare, n practic, nu se recomand rezolvarea sistemelor prin metoda bazat pe calculul explicit al inversei matricei sistemului: 1 A x = b x = A b , deoarece exist posibilitatea afectrii rezultatului obinut de ctre erorile de rotunjire acumulate.
2.5.4 Rezolvarea sistemelor n corpul numerelor complexe

Fie sistemul de ecuaii: A z = b, A C nn , b C n1 . (2.24)

n principiu, se poate aplica metodologia de rezolvare a sistemelor de ecuaii avnd matricea sistemului i termenul liber cu elemente numere reale, dac operaiile cu numere complexe sunt definite (implementate) n limbajul de programare folosit. Altfel, trebuie scrise funcii sau rutine, stabile din punct de vedere numeric, care s implementeze operaiile cu numere complexe. De regul, problema rezolvrii unui sistem complex de ordinul n se transform n problema rezolvrii unui sistem real de dimensiune 2 n . Astfel, se pot rescrie matricele implicate n (2.24) sub forma urmtoare, unde i 2 = 1 : A = A 1 + i A 2 , A 1 , A 2 n n , b = b1 + i b 2 , b1 , b 2 n1 , z = z1 + i z 2 , z1 , z 2 n1 . nlocuind relaiile (2.25) n (2.24) se obine: (A 1 + i A 2 ) (z 1 + i z 2 ) = b1 + i b 2 . Efectund calculele se obine: (A 1 z1 A 2 z 2 ) + i (A 2 z 1 + A 1 z 2 ) = b1 + i b 2 . (2.26) (2.25)

Din relaia (2.26), identificnd partea real i partea imaginar pentru cei doi membri ai egalitii, se obine: A 1 z 1 A 2 z 2 = b1 ,
A 2 z1 + A1 z 2 = b 2 ,

ceea ce se poate scrie sub form matricial astfel:

2.6

Metode iterative

57

A1 A 2

A 2 z1 b1 = . A1 z 2 b 2

(2.27)

A1 Notnd cu C matricea de blocuri A 2


b1 d vectorul , relaia (2.27) se reduce la: b 2 Cx =d.

A2 z1 , cu x vectorul i cu A1 z 2

(2.28)

Rezolvnd sistemul (2.28), se obine o soluie care se poate rescrie sub forma: x = [x 1 x n iar soluia sistemului complex este: z = [ x 1 x n ] T + i [ x n +1 x 2n ] T . x n +1 x 2n ] T ,

2.6

Metode iterative

2.6.1 Principiul i convergena metodelor iterative

Fie sistemul de ecuaii algebrice liniare: A x = b, A nn , b n1 , (2.29)

n care A este o matrice nesingular. Metodele iterative se bazeaz pe construcia unui ir de aproximaii ale [k] soluiei, x , k = 0,1,... , convergent la soluia adevrat:
k

lim x

[k]

= x , x

[ 0]

Pentru construcia acestui ir, se consider rescrierea sau descompunerea matricei A a sistemului sub forma: A = N P , n care N este o matrice nesingular. De regul, se alege matricea N cu o form simpl. Ecuaia (2.29) devine: ( N P) x = b N x = P x + b . (2.30)

58

2.

Sisteme determinate de ecuaii algebrice liniare

irul de aproximaii se construiete cu ajutorul relaiei: Nx n care estimaia iniial x x


[ k +1] [ k +1]

=Px

[k]

+ b, k = 0,1,...
[0]

(2.31)

[ 0]

este dat (cunoscut). n particular, x


[k]

= 0n .
(2.32)

Din relaia (2.31) rezult: = N 1 P x + N 1 b, k = 0,1,... .

Se face urmtoarea notaie: G = N 1 P, G nn . Matricea G are valori proprii n general complexe, i (G ) C , care formeaz mulimea numit spectrul matricei G.

Definiie:
Se numete raz spectral a matricei G mrimea:

(G ) = max{| i (G ) |} .
1i n

n cele ce urmeaz, se enun i demonstreaz urmtorul rezultat.

Propoziie:
Condiia necesar i suficient ca irul de soluii aproximative, defint prin relaia (2.32), s fie convergent ctre soluia adevrat a sistemului de ecuaii (2.29) este ca matricea G = N 1 P s aib toate valorile proprii n modul subunitare sau, altfel spus, raza spectral a matricei G s fie subunitar.

Demonstraia pornete de la expresia erorii la iteraia [k], care este: [k] [k] e = x x , k = 0,1,... . Eroarea la pasul [ k + 1 ] este: e
[ k +1]

=xx

[ k +1]

=x Gx

[k ]

N 1 b .

(2.33)

nlocuind n relaia (2.33) expresia vectorului b din relaia (2.30), se obine: e


[ k +1]

=x Gx

[k]

N 1 ( N x P x ) = G ( x x

[k]

) =G e

[k ]

. (2.34)

Exprimnd eroarea la pasul [k] n funcie de eroarea la pasul [k-1], prin folosirea repetat a relaiei (2.34), se obine urmtorul rezultat: e Cum e
[ 0]
[ k +1]

=Ge

[k ]

= G2 e

[ k 1]

= = G k +1 e

[0]

0 n n general, atunci condiia referitoare la limita irului de

aproximaii, prezentat la nceput, este ndeplinit dac i numai dac

2.6

Metode iterative

59

lim G k = 0 nn . Aceast condiie este satisfcut dac matricea G are valorile

proprii subunitare n modul, altfel spus, dac raz spectral a matricei G este subunitar.

Observaii:
1. Cu ct raza spectral subunitar a matricei G este mai mic, cu att viteza de convergen a irului de soluii aproximative (2.32) va fi mai mare. 2. n practic, de multe ori, condiia necesar i suficient prezentat anterior se verific (nlocuiete) printr-o condiie suficient, dac este posibil, i anume: dac || G || < 1 atunci (G ) < 1 . De regul se folosete norma matricial infinit, rezultnd condiia:
|| G || = max{ | g i , j |} < 1 .
1 i n j=1 n

Dac aceast ultim condiie este ndeplinit, atunci metoda iterativ este sigur convergent i nu mai este necesar s se calculeze valorile proprii ale matricei G de caracterizare a convergenei. Dac, ns, condiia suficient nu este satisfcut, atunci nu se poate afirma nimic n ceea ce privete convergena metodei i se recurge la calculul valorilor proprii ale matricei G, n scopul verificrii condiiei necesare i suficiente. n continuare se consider urmtoarea descompunere a matrcii A a sistemului (2.29): A=L+ D+ U, n care L este o matrice inferior triunghiular cu diagonala principal nul avnd elementele de sub diagonala principal egale cu elementele matricei A de acelai rang, D este o matrice diagonal avnd elementele de pe diagonala principal egale cu elementele de pe diaonala principal a matricei A, iar U este o matrice superior triunghiular avnd elementele de deasupra diagonalei principale egale cu elementele matricei A de acelai rang. Se mai face presupunerea c elementele diagonalei principale a matricei A sunt nenule. n caz contrar, se pot face permutri de linii i/sau coloane astfel nct s fie ndeplinit i aceast condiie.
2.6.2 Metoda Jacobi i metoda Gauss-Seidel

n cazul metodei Jacobi, matricele N i P sunt: N = D, P = ( L + U ) . (2.35)

60

2.

Sisteme determinate de ecuaii algebrice liniare

Din relaia (2.31), folosind relaia (2.35), rezult: Dx


[ k +1]

= ( L + U ) x

[k ]

+ b, k = 0,1,... .

(2.36)

Relaia (2.36) se poate scrie pe linii astfel: a i ,i x [i k +1] = a i , j x [jk ] + b i , i = 1,..., n .


j=1 j i n

(2.37)

Dac elementul a i ,i 0 , atunci relaia (2.37) se poate rescrie sub forma: x [i k +1] = ( b i / a i ,i ) (a i , j / a i ,i ) x [jk ] , i = 1,..., n .
j=1 j i n

(2.38)

Matricea G corespunztoare metodei Jacobi este: G Jacobi = N 1 P = D 1 (L + U) = [g i , j ]1i , j n , i= j 0, n care g i , j = . a i , j / a i ,i , i j Condiia suficient care se impune pentru ca metoda Jacobi s fie convergent este: max{ | g i , j |} = max{ | a i , j / a i ,i |} < 1 .
1i n j=1 1i n j=1 j i n n

(2.39)

n relaia (2.39) fiind implicate doar numere pozitive, dac maximul lor este mai mic dect 1, atunci toate sunt subunitare:

| a i , j / a i ,i | < 1
j=1 j i

| a i ,i |> | a i , j | .
j=1 j i

(2.40)

O matrice care satisface relaia (2.40) se numete matrice diagonal dominant pe linii.

Propoziie:
Dac matricea A este diagonal dominant pe linii, atunci metoda Jacobi este convergent, oricare ar fi estimaia iniial a soluiei sistemului de ecuaii (2.29).

Observaie:

2.6

Metode iterative

61

Condiia (2.40) nseamn c i = 1,..., n , j = 1,..., n , i j , | a i , j / a i ,i |< 1 . Revenind la relaia (2.38), se observ c a i , j / a i ,i sunt coeficienii care multiplic estimaiile anterioare, deci erorile ce afecteaz aceste estimaii sunt micorate pe msur ce procesul iterativ avanseaz. Ca urmare, dac matricea A este diagonal dominant pe linii, atunci procedura este sigur stabil numeric.

Metoda Gauss-Seidel pornete de la descompunerea A = N P n care:


N = L + D, P = U . Relaia (2.31) se poate rescrie, n acest caz, sub forma: ( L + D) x
i
[ k +1]

= U x
n

[k ]

+ b, k = 0,1,... .

(2.41)

Relaia (2.41) se poate scrie, pe linii, sub forma:

a i, j x [jk +1] = a i, j x [jk ] + b i ,


j=1 j=i +1

i = 1,..., n ,

din care rezult, dac a i ,i 0 : x [i k +1] = ( b i / a i ,i ) (a i , j / a i ,i ) x [jk +1] +


j=1 i 1

j=i +1

(a i, j / a i,i ) x [jk ] ,

i = 1,..., n .

Se poate demonstra c, i n cazul metodei Gauss-Seidel, dac matricea A este diagonal dominant pe linii, atunci metoda este convergent. n general, se demonstreaz c ntre raza spectral subunitar a matricei G Jacobi = D 1 (L + U) i raza spectral subunitar a matricei G Gauss Seidel = ( L + D) 1 U exist relaia: 2 (G Jacobi ) (G Gauss Seidel ) < 1 . Rezult, n general, c dac metoda Gauss-Seidel este convergent, atunci viteza sa de convergen este mai mare dect cea corespunztoare metodei Jacobi. Exist situaii n care, pentru ambele metode, razele spectrale sunt subunitare, dar apropiate de valoarea 1. n acest caz, convergena ambelor metode este extrem de lent, recomandndu-se ca n descompunerea matricei A s se utilizeze unul sau mai muli parametri de accelerare a convergenei.
2.6.3 Metoda relaxrilor succesive

Se pornete de la descompunerea matricei A corespunztoare metodei Gauss-Seidel. Relaia (2.41) se poate scrie sub forma:

62

2.

Sisteme determinate de ecuaii algebrice liniare

[ k +1]

= ( L + D ) 1 U x

[k]

+ (L + D) 1 b, k = 0,1,... .
[k ]

n acest relaie, n membrul drept se adun i se scade cantitatea x innd cont de faptul c I n = (L + D)
1

(L + D) rezult:
[k ] [k ]

[ k +1]

=x

[k ] [k ]

( L + D)

1 1

[U x

+ ( L + D) x b] ,

[k ]

b]

=x

( L + D) [ A x r
[k ]

Se face urmtoarea notaie: =bAx


[k]

n care r se numete reziduu corespunztor iteraiei [k]. n acest caz, se poate scrie: x
[ k +1]

[k ]

=x

[k ]

+ (L + D) 1 r

[k]

(2.42)

Se transform relaia (2.42), nmulind termenul care conine reziduul cu un parametru de accelerare a convergenei: x
[ k +1]

=x

[k ]

+ (L + D) 1 r

[k]

(2.43)

Al doilea termen din suma exprimat n relaia (2.43) poate fi interpretat ca un factor de corecie pentru estimaia de la iteraia [k]. Astfel, soluia de la iteraia [ k + 1 ] se obine prin corectarea soluiei de la iteraia anterioar [k], [k ] corecia realizndu-se n funcie de reziduul r . Relaia (2.43) se poate rescrie sub forma:
x
[ k +1]

=x

[k ]

(L + D) 1 (L + D) x
[k ]

[k ]

+ [(L + D) 1 U x

+ (L + D) 1 b]

(2.44)

Paranteza dreptunghiular pune n eviden aproximaia la iteraia [ k + 1 ], obinut prin metoda Gauss-Seidel. Relaia (2.44) devine: x
[ k +1]

= (1 ) x

[k ]

+ x Gauss Seidel .

[ k +1]

(2.45)

Se demonstreaz c irul de aproximaii obinut cu ajutorul relaiei de recuren (2.45) este convergent pentru (0,2) . Dac (0,1) metoda se numete a subrelaxrilor succesive, iar dac (1,2) ea se numete a suprarelaxrilor succesive. Dac = 1 , se obine metoda Gauss-Seidel. n general, dac metoda este convergent, atunci numrul de iteraii ca funcie de parametrul atinge un punct de minim corespunztor unei valori optim (a se vedea Figura 2.3). Se poate arta c optim i optim au aproximativ valorile:

2.6

Metode iterative

63

optim

2 1 + 1 2 Jacobi

; optim

Jacobi

1 + 1 2 Jacobi

Gauss Seidel

2 optim

n practic, la nivelul fiecrei componente, se pot folosi relaiile de calcul (2.45): x [i k +1] = (1 ) x [i k ] + [(b i a i, j x [jk +1]
j=1 i 1 j=i +1

a i, j x [jk ] ) / a i,i ] .

Relaiile prezentate corespund unei descompuneri a matricei A care depinde de parametrul , i anume: A x = b; A x = b A = N() P() n care N() = L + D i P() = (1 ) D U .
numar iteratii

numar minim iteratii 1 optim 2

Fig. 2.3 Metoda suprarelaxrii succesive

*** Algoritmii prezentai lucreaz pn cnd este ndeplinit o condiie de tipul: [s ] [ s 1] || x x || x . Se folosete, de regul, norma infinit i atunci condiia de stop este: max{| x [is ] x [is 1] |} x .
1i n

Notnd x n = x i x v = x , atunci urmtorul algoritm descrie procedura general aplicat n cazul unei metode iterative: [0] citete x , x atribuie x n x atribuie vn 1
[ 0]

[ k +1]

[k]

64

2.

Sisteme determinate de ecuaii algebrice liniare

atribuie iter 0 ct timp ( vn > x ) execut


atribuie x v x n atribuie iter iter + 1 * calculeaz x n * calculeaz vn = max{| x n (i) x v (i) |}


1i n

n final, se obin urmtoarele: numrul de iteraii (iter) i vectorul x n care aproximeaz soluia sistemului cu precizia impus x . n descrierea anterioar, x reprezint estimaia iniial a soluiei, iar vn este notaia pentru valoarea normei vectoriale infinit.
[ 0]

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice liniare. Precizia soluiei calculate

Precizia soluiei calculate a problemei: A x = b, A nn , b n1 depinde critic de buna sa condiionare numeric. Aceast proprietate este caracterizat de numrul de condiie al matricei A a sistemului. Aceste concepte fac obiectul acestui subcapitol.
2.7.1 Numrul de condiie al unei matrice

Definiie: Oricare ar fi matricea A nn , se definete numrul su de condiie n raport cu norma vectorial , notat k ( A) , ca fiind: k ( A) = M / m , M = max{|| A x || / || x || }, m = min{|| A x || / || x || } ,
x 0n x 0n

unde || . || este una din normele vectoriale uzuale (a se vedea Anexa A).

Cum n general M m , rezult c i k (A) 1 . Se poate demonstra c 1 / m =|| A 1 || . Astfel, se poate defini numrul de condiie n raport cu operaia de inversare matricial ca fiind: k (A) =|| A || || A 1 || .

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice liniare. Precizia soluiei calculate 65

Numrul de condiie depinde n general de norma matricial folosit. ntre diferitele numere de condiie corespunztoare aceleiai matrice exist relaii care reflect relaiile dintre normele matriciale echivalente utilizate. Astfel, dac i sunt dou norme matriciale (vectoriale), exist constantele c1 , c 2 astfel nct s aib loc relaia: c1 k ( A ) k ( A ) c 2 k ( A ) . n multe abordri, este folosit norma infinit pentru a calcula numrul de condiie al unei matrice: k (A) =|| A || || A 1 || . Cum calculul normei infinit este imediat (a se vedea Anexa A), problema este de a determina norma infinit pentru invers. O soluie o reprezint calculul inversei matricei A prin triangularizare i apoi calculul normei infinit. n acest fel, se obine o aproximare a numrului de condiie al matricei. Dezavantajul acestei modaliti este c este necesar un volum mare de calcule. Discuia asupra numrului de condiie al unei matrice este reluat n capitolul 5 destinat studiului valorilor singulare ale unei matrice. Se prezint acolo modalitatea uzual folosit pentru calculul eficient al numrului de condiie.
Exemplul 2.4:

dac A = I n (matrice unitate de ordinul n), atunci k (A) = 1 ; dac A = Pk (matrice elementar de permutare de linii), atunci k (A) = 1 ; dac A = S k (matrice elementar de permutare de coloane), atunci k (A) = 1 ; A = diag{d 11 ,..., d ii ,..., d nn } dac (matrice diagonal), atunci k ( A) = max{| d ii |} / min{| d ii |} .
1i n 1 i n

n funcie de valorile numrului de condiie, matricea A poate fi caracterizat dup cum urmeaz: a) dac numrul de condiie este egal cu 1, matricea A se spune c este foarte bine condiionat; b) dac numrul de condiie este mic, apropiat de valoarea 1, atunci matricea A este bine condiionat; c) dac numrul de condiie este mare, atunci matricea A este prost condiionat; d) dac numrul de condiie este foarte mare, atunci matricea A este aproape singular; e) dac numrul de condiie este infinit, atunci matricea A este singular.

66

2.

Sisteme determinate de ecuaii algebrice liniare

Se mai utilizeaz i inversul numrului de condiie: rk (A) = 1 / k (A) . n funcie de valorile pe care le poate lua acesta, matricea A poate fi caracterizat dup cum urmeaz, unde m este notaia pentru epsilonul-main: a) matrice foarte bine condiionat, dac rk ( A) = 1 ; b) matrice bine condiionat, dac rk ( A) < 1 , dar apropiat de valoarea 1: m << rk (A) < 1 ; c) matrice prost condiionat (aproape singular) dac rk (A) m ; d) matrice singular (foarte prost condiionat) dac rk (A) = 0 . Conform acestor caracterizri se poate afirma, n general, c numrul de condiie al unei matrice reprezint inversul distanei dintre matricea A i mulimea matricelor singulare.
Exemplul 2.5:

De regul se prefer caracterizarea singularitii pe baza numrului de condiie sau a inversului su, dect folosirea valorii determinantului. Fie matricea: 0.1 0 . D= 0 0.1 100100 Atunci det(D) = 10 100 0 n simpl precizie, dei k (D) = 1 , ceea ce arat c matricea D este o matrice foarte bine condiionat.
Exemplul 2.6:

n general, nu exist o corelaie ntre numrul de condiie i valoarea determinantului unei matrice. Fie matricea: 1 1 1 1, i < j 0 Bn = = [ b i , j ]1i , j n cu b i , j = 1, i = j , i, j = 1,..., n . 1 0, i > j 0 0 1 nn Atunci det(B n ) = 1 i k (B n ) = n 2 n . Pentru n avnd valori mari, matricea B n este prost condiionat. Proasta condiionare a unei matrice se poate reflecta n rezultatele triangularizrii sale. Astfel, dac n urma triangularizrii unei matrice, matricea U superior triunghiular are pe diagonala principal elemente nule sau foarte mici, atunci sigur matricea iniial este prost condiionat. Reciproca, n general, nu este valabil: matricea poate fi prost condiionat, ns

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice liniare. Precizia soluiei calculate 67

datorit erorilor de calcul, elementele de pe diagonala matricei U pot s nu fie neaprat foarte mici.
2.7.2 Precizia soluiei calculate

Fie sistemul de ecuaii: A x = b, A nn , b n1 . (2.46) Caracterizarea (condiionarea) acestei probleme este dat de numrul de condiie al matricei A, aa cum a fost el definit la nceputul acestui capitol. Pot exista dou situaii generale prezentate n continuare: I. Soluia este calculat fr erori (exact), dar pot exista erori n matricea A i termenul liber b . Se disting urmtoarele dou subcazuri, I.1 i I.2, prezentate n continuare. Se presupune c termenul liber al sistemului (2.46) este uor perturbat, ~ lucrndu-se cu vectorul b n loc de vectorul b . De fapt, se rezolv (exact) problema: ~ A~ x=b. Dac ~ x este soluia exact a acestei noi probleme, atunci se demonstreaz c eroarea relativ satisface la relaia: ~ ~ x =|| x ~ x || / || x || k (A) || b b || / || b || = k (A) b . I.1 Rezult, aadar, c eroarea relativ n termenul liber este amplificat n soluia calculat de k ( A) ori, n absena erorilor de rotunjire.
Exemplul 2.7:

Fie sistemul (2.46) cu urmtoarele matrice: 4.1 2.8 4.1 ~ 4.11 A= , b = , b = . 9.7 9.70 9.7 6.6 1 Soluia exact a sistemului A x = b este x = . Soluia exact a sistemului 0
0.34 ~ A~ x = b este ~ x= x. 0.97 ~ Realizeaznd urmtoarele notaii: b = b b , x = x ~ x , rezult pentru acest exemplu: k 1 ( A) (|| x ||1 / || x ||1 ) /(|| b ||1 / || b ||1 ) = 2294.4 ,

68

2.

Sisteme determinate de ecuaii algebrice liniare

deci matricea A este prost condiionat. De aceast dat, se consider matricea sistemului ca fiind afectat de perturbaii: ~ A = A + E, || E || <<|| A || . De fapt, se rezolv exact problema: ~ A~ x = b. (2.47) I.2

x este soluia exact a ecuaiei (2.47), atunci se demonstreaz c eroarea Dac ~ relativ satisface la relaia:
x k (A) (|| E || / || A || ) = k (A) A . Rezult faptul c perturbaiile n matricea sistemului, n ipoteza absenei erorilor de rotunjire la calculul soluiei, se regsesc n soluia calculat amplificate de k (A) ori. II.
Datele iniiale ale problemei (2.46), A i b , sunt exacte, dar procedura de calcul a soluiei este afectat de eroare (erori de rotunjire). n acest caz se disting dou situaii, II.1 i II.2, prezentate n cele ce urmeaz.

II.1 Apar erori datorate decompunerii gaussiene. Se obin urmtoarele rezultate: A = L U , n cazul triangularizrii simple; P A = L' U , n cazul triangularizrii cu pivotare parial; P A S = L' U , n cazul triangularizrii cu pivotare total. Plecnd de la matricea A, creia i se aplic o procedur de triangularizare, se obin matricele L ( L' ), U, P, (S). Dac se efectueaz operaia invers, se obine: ~ L U = A , corespunztor triangularizrii simple; ~ P 1 L' U = A , corespunztor triangularizrii cu pivotare parial; ~ P 1 L' U S 1 = A , corespunztor triangularizrii cu pivotare total, ~ ~ unde A este matricea iniial plus o matrice de eroare: A = A + E c . n continuare, discuia se refer la descompunerea cu pivotare parial i la cea cu pivotare total, deoarece procedurile corespunztoare lor se bazeaz pe matrice stabilizate, iar algoritmii sunt stabili din punct de vedere numeric. Avnd in vedere volumul de calcule implicat (numrul de operaii n virgul mobil), se poate afirma c dac ordinul n al sistemului este mic, atunci: || E c || <<|| A || , iar dac ordinul n este mare, atunci: || E c || <|| A || . Aadar, norma matricei de eroare E c se poate apropia de cea a matricei A a sistemului.

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice liniare. Precizia soluiei calculate 69

Ca urmare, o posibilitate de a caracteriza precizia descompunerii este de a calcula raportul: ~ || E c || / || A || =|| A A || / || A || = A ,c . De regul se folosete norma 1. n general, se demonstreaz c: x k ( A ) A ,c . Dac A ,c 10 d , d > 0 , atunci se poate afirma c triangularizarea matricei A se face cu d cifre zecimale exacte. Rezult c eroarea n soluia calculat satisface la relaia:
x k (A ) A ,c 10 p d = 10 ( d p ) .

O matrice foarte bine condiionat este caracterizat de p = 0 . Dac matricea este bine condiionat, atunci p = 1 2 , iar dac ea este prost condiionat, atunci p > 2 . Se desprinde urmtoarea concluzie: dac matricea A este prost condiionat, atunci se pierd p cifre ca precizie n soluia calculat. Dac, ns, matricea A este diagonal dominant pe linii sau coloane, atunci ea este bine condiionat. Matricea A poate fi adus la o astfel de form nainte de a aplica procedura de descompunere, dac este posibil, prin permutri adecvate de linii i/sau coloane.
Erorile afecteaz procedura de rezolvare prpriu-zis a sistemului (fazele de substituie nainte i napoi). x este: r = b A ~ x. n acest caz, reziduul asociat soluiei calculate ~ Se demonstreaz c, n aceast situaie, eroarea relativ n soluia calculat satisface la relaia:

II.2

x k (A ) (|| r || / || b || ) . n concluzie, un reziduu mic n norm fa de norma termenului liber nu garanteaz o precizie bun a soluiei calculate, dac matricea sistemului este prost condiionat.
Exemplul 2.8:

Fie sistemul A x = b cu: 2.001 1 1.001 A= , b= . 1 2 1 Soluia exact a acestui sistem este x = [1 1] T . n urma calculelor rezult: ~ x = [ 2 0] T x , Aceasta se datoreaz faptului c: r = b A x = [0.001 0] T .

70

2.

Sisteme determinate de ecuaii algebrice liniare

k 1 ( A) (|| x ~ x ||1 / || x ||1 ) /(|| r ||1 / || b ||1 ) 10 3 , deci matricea A este prost condiionat. O concluzie general care se poate desprinde este urmtoarea: buna condiionare a problemei de calcul ( k ( A) = 1 10 100 ), mpreun cu stabilitatea numeric a algoritmului de triangularizare ( || E c || <<|| A || ),
garanteaz faptul c eroarea relativ a soluiei calculate fa de soluia exact este de acelai ordin de mrime cu erorile relative n datele iniiale ale problemei (matricea A i termenul liber b ).

O procedur folosit pentru estimarea numrului de cifre exacte ale soluiei calculate este urmtoarea: triangularizarea matricei A; x folosind rezultatele triangularizrii matricei A: determinarea soluiei ~ calculul reziduului asociat r = b A ~ x; rezolvarea sistemului A e = r , folosind rezultatele procedurii de triangularizare; dac || e ||1 0 , atunci || e ||1 / || ~ x ||1 10 d . Numrul de cifre exacte ale soluiei calculate este: d [ lg(|| e || / || ~ x || )] ,
1 1

unde lg(.) semnific funcia logaritm zecimal, iar [.] semnific funcia parte ntreag. O procedur de mbuntire (rafinare) a soluiei calculate este urmtoarea: 1. rezolvare sistem A x = b folosind descompunerea L-U a matricei A i determinarea soluiei ~ x; x; 2. calcul reziduu asociat: r = b A ~ 3. rezolvare sistem A e = r folosind rezultatele descompunerii L-U a matricei A i determinarea lui e ; ~ ~ 4. rafinarea soluiei: ~ x = x + e; ~ ~ x ||1 || ~ x ||1 atunci ~ x=~ x i reluare de la pasul 2, altfel x = ~ x. 5. dac || ~ 6. stop mbuntirea soluiei se face ntr-un numr maxim de iteraii notat ITMAX. Dac dup ITMAX iteraii, testul de la pasul 5 continu s fie satisfcut (i se reia de la pasul 2), acesta este un semn c matricea A este prost condiionat deoarece:

2.8

Exerciii propuse

71

|| e ||1 / || ~ x ||1 k 1 (A) (|| r ||1 / || b ||1 ) .


Astfel, dac numrul de condiie k 1 (A) este mare, atunci i raportul || e ||1 / || ~ x ||1 este mare i, ca urmare, valoarea || e ||1 nu se va micora dac matricea A este prost condiionat.

2.8

Exerciii propuse

E2.1 S se realizeze, n mediul de programare MATLAB, un program pentru rezolvarea unui sistem de n ecuaii liniare cu n necunoscute, prin metoda direct folosind triangularizarea matricei sistemului cu pivotare total. Programul va compara soluia gsit cu cea furnizat de mediul MATLAB.
n realizarea programului, se vor parcurge urmtoarele etape descrise parial n limbajul pseudocod. 1. Introducere parametru de control al execuiei procedurii de triangularizare, n variabila EPS. 2. Introducere ordin sistem, n variabila n, n 2 . 3. Alocare spaiu de memorie pentru matricea sistemului, n variabila a, prin iniializarea acesteia cu o matrice nul de dimensiune n. Introducerea elementelor matricei sistemului se face pe linii (a se vedea observaia 2 care urmeaz). Salvarea valorilor introduse pentru matricea a, n matricea de lucru aa: atribuie aa a Reluare introducere, n caz de eroare. 4. Alocare spaiu de memorie pentru termenul liber al sistemului, n variabila b, prin iniializarea acesteia cu un vector coloan nul, cu n componente. Introducerea elementelor termenului liber se realizeaz pe linii. Salvarea valorilor din vectorul b, n vectorul de lucru bb: atribuie bb b Reluare introducere, n caz de eroare. 5. Faza I-a: eliminare nainte cu pivotare total: pentru i = 1,n execut

72

2.

Sisteme determinate de ecuaii algebrice liniare

atribuie iord(i) i * pivotare total: pentru k = 1,n-1 execut atribuie [mc,imc] max ( abs ( a(k:n,k:n) ) ) atribuie [ml,jk] max ( mc ) atribuie ik imc ( jk ) atribuie ik ik + (k-1) atribuie jk jk + (k-1) dac ( ik ~= k ) atunci atribuie wmx zeros (1,n) atribuie wmx a(k,:) atribuie a(k,:) a(ik,:) atribuie a(ik,:) wmx atribuie t b(k) atribuie b(k) b(ik) atribuie b(ik) t dac ( jk ~= k ) atunci atribuie zmx zeros (n,1) atribuie zmx a(:,k) atribuie a(:,k) a(:,jk) atribuie a(:,jk) zmx atribuie it iord(k) atribuie iord(k) iord(jk) atribuie iord(jk) it * triangularizare: dac ( abs ( a(k,k) ) > EPS ) atunci atribuie a(k+1:n,k) a(k+1:n,k) / a(k,k) atribuie a(k+1:n,k+1:n) a(k+1:n,k+1:n) a(k+1:n,k) * a(k,k+1:n) atribuie b(k+1:n) b(k+1:n) a(k+1:n,k) * b(k) atribuie a(k+1:n,k) zeros (n-k,1) altfel scrie pivot nul sau foarte mic scrie STOP: algoritm * STOP program (funcia MATLAB return)

2.8

Exerciii propuse

73

scrie k = , k scrie a = , a scrie b = , b 6. Faza a-II-a: calcul soluie sistem: * substituie napoi: pentru k = 1,n execut dac ( abs ( a(i,i) ) < EPS ) atunci scrie matrice prost condiionat atribuie b(n) b(n) / a(n,n) pentru i = n-1,(pas = -1),1 execut atribuie sum a(i,i+1:n) * b(i+1:n) atribuie b(i) ( b(i) sum ) / a(i,i) * ordonare soluie: atribuie x zeros (n,1) pentru i = 1,n execut atribuie x ( iord(i) ) b(i) 7. Calcul soluie folosind funciile MATLAB, pentru comparaie: atribuie x_bs aa \ bb atribuie x_inv inv (aa) * bb 8. Afiare soluii x, x_bs, x_inv ( mod de afiare MATLAB dat de funcia: format long e; ). 9. Calcul reziduuri asociate soluiilor calculate, precum i norme euclideene: atribuie r bb aa * x atribuie nr norm (r,2) atribuie r_bs bb aa * x_bs atribuie nr_bs norm (r_bs,2) atribuie r_inv bb aa * x_inv atribuie nr_inv norm (r_inv,2)

74

2.

Sisteme determinate de ecuaii algebrice liniare

Afiare rezultate n, nr, r_bs, nr_bs, r_inv, nr_inv ( mod de afiare MATLAB dat de funcia: format long e; ). 10. Reluare program, dac se dorete, cu alt termen liber (punctul 4). Dac are loc reluarea, nainte de aceasta se reface matricea a, utiliznd valorile salvate n matricea de lucru aa: atribuie a aa 11. Reluare program, dac se dorete, cu alt sistem de acelai ordin n (punctul 3). 12. Reluare program, dac se dorete, cu un sistem de alt ordin n (punctul 2). 13. Reluare program, dac se dorete, cu alt parametru EPS (punctul 1). Observaii: 1.) Descrierea anterioar a programului folosete urmtoarele funcii MATLAB: max (determinare valoare maxim dintr-un tablou de numere), zeros (iniializare tablou cu elemente nule), abs (calcul valoare absolut), return (prsire comand structurat, de exemplu ciclu cu contor), \ (mprire matricial la stnga, rezolvat prin triangularizarea cu pivotare parial a matricei demprit), inv (calcul invers matrice ptratic), norm (calcul norm vectorial/matricial). 2.) Se recomand urmtoarea modalitate general de introducere a unei matrice, pe linii (n linii, m coloane), n variabila a: * secven de comenzi MATLAB: a = zeros (n,m); for i = 1:n, fprintf ( Linia %.0f : , i ); a(i,:) = input ( ); end; * exemplu de introducere (n=m=3): Linia 1: [1 2 3] Linia 2: [4 5 6] Linia 3: [7 8 9] <RETURN> <RETURN> <RETURN>

2.8

Exerciii propuse

75

n descrierea anterioar, s-au subliniat mesajele scrise de ctre program iar <RETURN> semnific apsarea tastei respective. 3.) Programul se va rula pentru urmtoarele date de intrare, rezulatele analizndu-se i comparndu-se: EPS = 1.e-10 I. n = 3; 7 0 10 7 a = 3 2.099 6; b = 3.901 ; 1 5 5 6 3 2 100 105 a = 1 3 100; b = 102 ; 1 2 1 2 0.03 0.02 1.00 1.05 a = 0.01 0.03 1.00 ; b = 1.02 0.50 1.00 0.50 1.00 (acelai exemplu, cu scalare pe linii) III. n = 3; 1 2 3 5 a= 2 4 1; b = 7 ; 1 14 11 2

II.

n = 3;

IV.

n = 4;

0 1 7 0 2 2 2 2 3 2 a= ; b= . 7 4 3 0 1 6 6 1 6 5

E2.2 S se realizeze, n mediul de programare MATLAB, un program pentru rezolvarea unui sistem de n ecuaii liniare cu n necunoscute, prin metoda iterativ Jacobi. Programul va compara soluia gsit cu cea furnizat de mediul MATLAB, aplicnd o metod direct de rezolvare.
n realizarea programului, se vor parcurge urmtoarele etape descrise parial n limbajul pseudocod. 1. Introducere parametru de control al execuiei procedurii iterative de rezolvare, n variabila EPS. Introducere numr maxim de iteraii, n variabila max_iter. 2. Introducere ordin sistem, n variabila n, n 2 .

76

2.

Sisteme determinate de ecuaii algebrice liniare

3. Alocare spaiu de memorie pentru matricea sistemului, n variabila a, prin iniializarea acesteia cu o matrice nul de dimensiune n. Introducerea elementelor matricei sistemului se face pe linii (a se vedea observaia 2 de la exerciiul E2.1). Testarea elementelor de pe diagonala matricei a: pentru k = 1,n execut dac ( abs ( a(i,i) ) < EPS ) atunci scrie Element pe diagonal nul sau foarte mic scrie Rearanjai i reintroducei matricea a Reluare introducere, n caz de eroare. 4. Alocare spaiu de memorie pentru termenul liber al sistemului, n variabila b, prin iniializarea acesteia cu un vector coloan nul, cu n componente. Introducerea elementelor termenului liber se realizeaz pe linii. Reluare introducere, n caz de eroare. 5. Alocare spaiu de memorie pentru aproximaia iniial a soluiei, n variabila xn, prin iniializarea acesteia cu un vector coloan nul, cu n componente. Introducerea elementelor vectorului xn se realizeaz pe linii. Reluare introducere, n caz de eroare. 6. Studiu de convergen: atribuie nn diag ( diag (a) ) atribuie p nn - a atribuie g inv (nn) * p atribuie valp eig (g) atribuie ro max ( abs (valp) ) scrie => raz spectral matrice convergen, ro = , ro dac ( ro < 1 ) atunci scrie metoda converge altfel scrie metoda NU converge! 7. Calcul soluie iterativ: atribuie vninf 1 atribuie iter 0 * comutare mod de afiare (limbaj MATLAB): format long e;

2.8

Exerciii propuse

77

ct timp ( (vninf > EPS) i (iter < max_iter) ) execut atribuie iter iter + 1 atribuie xv zeros (n,1) atribuie xv xn * adaptare soluie metoda Jacobi: pentru i = 1,n execut atribuie sum 0 pentru j = 1,i-1 execut atribuie sum sum + a(i,j) * xv(j) pentru j = i+1,n execut atribuie sum sum + a(i,j) * xv(j) atribuie xn(i) ( b(i) - sum ) / a(i,i) * sfrit adaptare soluie metoda Jacobi atribuie vninf max ( abs (xn - xv) ) scrie * iter = , iter scrie xn = , xn scrie vninf = , vninf

8. Calcul soluie folosind o metod direct, n mediul MATLAB: atribuie x a \ b 9. Afiare rezultate: iter, xn, x. Comutare mod de afiare (limbaj MATLAB): format short; 10. Reluare program, dac se dorete, cu alt estimaie iniial a soluiei (punctul 5). 11. Reluare program, dac se dorete, cu alt termen liber al sistemului (punctul 4). 12. Reluare program, dac se dorete, cu alt sistem de acelai ordin (punctul 3). 13. Reluare program, dac se dorete, cu alt sistem de alt ordin n (punctul 2). 14. Reluare program, dac se dorete, cu ali parametri EPS i max_iter (punctul 1). Observaii:

78

2.

Sisteme determinate de ecuaii algebrice liniare

1.) Descrierea anterioar a programului folosete urmtoarele funcii MATLAB: abs (calcul valoare absolut), diag (producerea unei matrice diagonale; extragerea diagonalei principale a unei matrice), inv (calcul invers matrice ptratic), eig (calcul valori proprii ale unei matrice), max (determinare valoare maxim dintr-un tablou de numere), zeros (iniializare tablou cu elemente nule), \ (mprire matricial la stnga, rezolvat prin triangularizarea cu pivotare parial a matricei demprit). 2.) Operatorul logic i este implementat n limbajul MATLAB prin simbolul: & 3.) Programul se va rula pentru urmtoarele date de intrare, rezulatele analizndu-se i comparndu-se: EPS = 1.e-10; max_iter = 30 9 5 1 0 I. n = 3; a = 1 5 1; b = 4 ; 6 0 1 5 0 xn = 0 ; 0 2 xn = 2; 1

8 1 1 0 8 II. n = 3; a = 2 1 9; b = 12 ; xn = 0 ; 1 7 2 0 4 8 8 1 1 0 a = 2 9 1 ; b = 12 ; xn = 0 . 4 1 2 7 0

E2.3 S se realizeze, n mediul de programare MATLAB, un program pentru rezolvarea unui sistem de n ecuaii liniare cu n necunoscute, prin metoda iterativ Gauss-Seidel. Programul va compara soluia gsit cu cea furnizat de mediul MATLAB, aplicnd o metod direct de rezolvare.
n realizarea programului, se vor parcurge exact aceleai etape descrise n cadrul exerciiului E2.2. Deosebirile constau n modul de calcul al matricelor nn i p, care definesc matricea de conveegen g (punctul 6), precum i n modalitatea de adaptare a soluiei iterative (punctul 7) de la exerciiul E2.2.

2.9

Probleme propuse

79

Matricele nn i p se calculeaz cu comenzile: atribuie nn tril (a) atribuie p nn - a Poriunea din descrierea n limbaj pseudocod (punctul 7) de la exrciiul E2.2: * adaptare soluie metoda Jacobi: .................................................................... * sfrit adaptare soluie metoda Jacobi se nlocuiete cu urmtoarea secven de comenzi: Observaii: 1.) Descrierea anterioar a programului folosete aceleai funcii MATLAB ca la exerciiul E2.2. Singura deosebire este reprezentat de nlocuirea funciei diag cu funcia tril (extragerea parii inferior triunghiulare a unei matrice, inclusiv diagonala, restul de elemente fiind completate cu zerouri). 2.) Programul se va rula pentru datele de intrare menionate la exerciiul E2.2, rezulatele analizndu-se i comparndu-se cele dou metode iterative, Jacobi i Gauss-Seidel.

* adaptare soluie metoda Gauss-Seidel: pentru i = 1,n execut atribuie sum 0 pentru j = 1,i-1 execut atribuie sum sum + a(i,j) * xn(j) pentru j = i+1,n execut atribuie sum sum + a(i,j) * xv(j) atribuie xn(i) ( b(i) - sum ) / a(i,i) * sfrit adaptare soluie metoda Gauss-Seidel

2.9

Probleme propuse

P2.1. Se consider sistemul de ecuaii algebrice liniare:

80

2.

Sisteme determinate de ecuaii algebrice liniare

1 2 3 x1 5 2 4 1 x 2 = 7 , . 1 14 11 x 3 Folosind transformri elementare directe (fr pivotare), s se determine pentru ce valoare a parametrului sistemul (a) nu are soluii? (b) are o infinitate de soluii?

P2.2. S se realizeze programul pentru rezolvarea unui sistem de ecuaii algebrice liniare:
A X = B, A nn , B np , prin metoda direct bazat pe triangularizarea cu pivotare parial a matricei sistemului. Exemple numerice: 4 2 I. A = 0 1
1 2 II. A = 3 4

0 1 1 2 3 1 2 0

3 0 7 0 0 1 0 1 ; , B= 4 2 4 2 5 2 4 2

2 5 3 1 1 2 2 2 6 4 . , B= 3 3 2 7 5 2 8 6 4 4

P2.3. S se realizeze programul pentru inversarea unei matrice ptratice real, de ordinul n, prin metoda direct bazat pe triangularizarea cu pivotare parial a matricei. Programul va verifica relaia: A A 1 = I n , unde A 1 este inversa calculat, iar I n este matricea unitate de ordinul n.
Exemple numerice: 4 2 A= 0 1 0 1 1 2 3 1 2 0 3 0 ; 2 5 1 2 A= 3 4 2 5 3 2 6 4 . 2 7 5 2 8 6

I.

II.

2.9

Probleme propuse

81

P2.4. S se realizeze programul pentru inversarea unei matrice ptratice real, de ordinul n, inferior triunghiular, exploatnd structura particular a acesteia. Se va verifica rezultatul obinut efectnd produsele:
A A 1 , A 1 A . Exemple numerice: I. 6 0 0 A= 2 1 0 ; 1 7 1 II. 6 0 0 A= 1 0 0 . 2 1 8

P2.5. S se realizeze programul pentru calculul determinantului unei matrice ptratice real, de ordin n, prin metoda direct bazat pe triangularizarea cu pivotare total a matricei.

Exemple numerice: 1 2 A= 5 3 2 2 6 4 3 2 7 5 4 2 ; 8 6 1 2 A= 3 1 4 2 3 2 0 4 . 0 1 2 2 2 3

I.

II.

P2.6. S se realizeze programul pentru rezolvarea, n corpul numerelor complexe, a sistemului de ecuaii:
A z = b, A C nn , b C n1 , prin transformarea acestuia ntr-un sistem de ecuaii echivalent: C x = d, C mm , d m1 , m = 2 n . Sistemul transformat se rezolv utiliznd programul realizat pentru rezolvarea problemei P2.2. Exemple numerice:
8

I.

1 + i 2i 2i 2 A= , b= , i = 1 ; 2 1 i 4 2 i 4 + 6i 3 2i 2 3i 2 A= , b= , i = 1 . 2 i 1 2 i 2 4 i + +
8

II.

82

2.

Sisteme determinate de ecuaii algebrice liniare

P2.7. S se realizeze programul pentru aducerea unei matrice A mn , m > n , la forma superior triunghiular prin eliminare gaussian cu pivotare parial (de linii). Exemple numerice:
1 6 2 7 A = 3 8 ; 4 9 5 10 1 6 2 7 A = 3 8 4 9 5 10 11 12 13 . 14 15

I.

II.

P2.8. S se realizeze programul pentru estimarea numrului de condiie al unei matrice ptratice real, de ordin n, folosind relaia de calcul:
k 1 ( A) =|| A ||1 || A 1 ||1 . Inversa matricei A se calculeaz folosind programul realizat pentru rezolvarea problemei P2.3. Norma 1 a matricelor implicate se va calcula conform definiiei (Anexa A), prin program. Exemple numerice: 1 4 A= 2 3 1 2 ; 0 1 2 4 2 3 2 2 3 0 1 1 / 2 A= 1 / 3 1 / 4 1 / 2 1 / 3 1 / 4 1 / 3 1 / 4 1 / 5 . 1 / 4 1 / 5 1 / 6 1 / 5 1 / 6 1 / 7

I.

II.

P2.9. Se consider sistemul de ecuaii algebrice liniare:


4 3 2 A x = b, A = 2 3 4 , a . 2 4 a Care este cea mai mic valoare a parametrului a pentru care metoda iterativ Jacobi va fi convergent?

P2.10. S se realizeze programul pentru rezolvarea unui sistem determinat de ecuaii algebrice liniare, de ordinul n, prin metoda iterativ a suprarelaxrii succesive de tip Gauss-Seidel. Considernd drept parametru de accelerare a convergenei metodei iterative, [1,2] , programul va determina, crescnd succesiv parametrul cu pasul 0.1 , valoarea optim optim pentru care numrul de iteraii este minim.

2.9

Probleme propuse

83

Exemplu numeric: 2 1 1 5 A = 2 2 1 , b = 9 . 1 1 3 6

Capitolul 3 REZOLVAREA SISTEMELOR DE ECUAII ALGEBRICE LINIARE N SENSUL CELOR MAI MICI PTRATE

3.1

Formularea problemei
A x = b, A mn , b m1 , x n1 .

Se consider sistemul cu m ecuaii algebrice liniare cu n necunoscute:

(3.1)

Problema general de calcul este determinarea unei soluii x care s satisfac la relaia (3.1). Dac m > n , atunci se spune c sistemul de ecuaii este supradeterminat, iar dac m < n , atunci se spune c sistemul de ecuaii este subdeterminat. n cele ce urmeaz, discuia se refer la sisteme supradeterminate de ecuaii. n final, este tratat i cazul sistemelor subdeterminate de ecuaii algebrice liniare.
Exemplul 3.1:

Se reia Exemplul 2.1 referitor la identificarea modelului de regim staionar al unui proces dinamic. De aceast dat, funcia care descrie comportarea procesului este: y = f (u 1 , , u p ) = c 0 + c i u i +
i =1 p p 1 i =1 j=i +1

c i, j u i u j + c i,i u i2 .
i =1

Pentru intrrile i ieirea procesului se consider m valori experimentale prezentate n tabelul urmtor: nr. experiment 1 u1 a11 up a1p y b1

am1

amp

bm

84

3.

Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate

n continuare se realizeaz urmtoarele notaii: b = [b1 b m ]T ;

x = [c 0 c p

c1, 2 c1,p

c 2,3 c 2,p c p 1,p


a 1,p 1 a 1,p
2 a 11

c1,1 c p,p ]T
2 a1 p , 2 a mp

1 a 11 a 1p A= 1 a a mp m1

a 11 a 12 a m1 a m 2

a m ,p 1 a m ,p

a2 m1

unde se numesc: A matricea de date, vectorul b - vectorul msurtorilor (observaiilor) care, n general, este afectat de eroare i x - vectorul coeficienilor care trebuie determinat. Rezult aadar o problem de tipul (3.1), numrul de necunoscute fiind, n acest caz, n = 1 + p + p (p 1) / 2 + p . Se rescrie matricea de date A, din ecuaia (3.1), sub o alt form punnd n eviden vectorii coloan ai si: A = [a 1 a j a n ], a j m1 , j = 1, n .
Definiii: Matricea A mn se spune c are coloanele liniar independente sau c este monic, dac vectorii colan ai si sunt liniar independeni:

j a j = 0m
j=1

j = 0, j = 1, , n .

Se numete subspaiu imagine al matricei A, notat cu Im(A), mulimea: Im(A) = {y m1 / y = A x, x n1 } m1 . Se numete subspaiu nul (nucleu) al matricei A i se noteaz cu nul(A) sau N(A), mulimea: N ( A ) = {x n1 / A x = 0 m } n1 .

Pornind de la aceste definiii, se poate scrie urmtoarea relaie: dim( N (A )) + rang( A) = n , unde dim(.) reprezint dimensiunea spaiului implicat, iar rang(.) semnific rangul matricei considerate.
Propoziie: Pentru orice matrice

A mn , m > n , urmtoarele afirmaii sunt

echivalente: i.) A este o matrice monic; ii.) rang( A ) = n ;

3.1

Formularea problemei

85

iii.) iv.)

N(A) = {0 n } ;
matricea A T A este pozitiv definit, deci inversabil (nesingular).

Concluzia care se desprinde este aceea c problema (3.1) va avea o soluie unic dac vectorul b 0 m aparine subspaiului imagine al matricei A,
b Im(A ) , sau, altfel spus, vectorul b este o combinaie liniar a coloanelor matricei A, acesta n ipoteza c rang( A ) = n .

Este posibil, ns, ca vectorul b s fie (uor) perturbat, deci s nu mai aparin subspaiului imagine al matricei A. i n astfel de cazuri se dorete determinarea unei soluii pentru problema de calcul (3.1). De aceea, pentru rezolvarea n orice condiii a problemei (3.1), este nevoie de un criteriu pentru determinarea unei soluii unice. Principiul folosit este minimizarea unei funcii criteriu de tipul: (3.2) V ( x ) =|| b A x || . Astfel, se consider c vectorul x este o pseudosoluie a problemei (3.1) dac acesta minimizeaz funcia criteriu dat de relaia (3.2): V ( x ) = minim. Mrimea b A x se noteaz cu r i se numete reziduu asociat vectorului x . Pentru funcia criteriu aleas, cele mai utilizate sunt normele 1, infinit i norma euclidian. n funcie de norma folosit, va rezulta o pseudosoluie diferit. Problema determinrii unei pseudosoluii care minimizeaz criteriul dat prin relaia (3.2) este n fond o problem de optimizare. Astfel, pentru o funcie criteriu scalar, minimul se obine pentru acel argument care anuleaz derivata de ordinul nti a funciei (criteriu), iar derivata de ordinul al doilea este pozitiv. n cazul de fa, argumentul fiind un vector, se vor lua n discuie gradientul i hesianul funciei criteriu V , n raport cu argumentul su x , i anume:
* *

V ( x ) V ( x ) n1 gradient: x {V ( x )} = , x x 1 n
nn hesian: x x {V ( x )} = x {V ( x )} = x { T . x {V ( x )}} not

Din cele enunate, rezult condiia esenial ca funcia criteriu V s fie difereniabil n raport cu vectorul x . Astfel, dac se folosete norma 1 sau infinit n definirea funciei criteriu, atunci aceasta nu satisface condiia de

86

3.

Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate

difereniabilitate, deoarece normele respective se exprim n raport cu funcia modul, la rndul ei nedifereniabil:
V1 ( x ) = | ri | , V ( x ) = max{| ri |} , ri = b i ( A x ) i , i = 1, , m .
i =1 m

1i n

Ca urmare, se folosete norma 2 (euclidian), rezultnd urmtoarea funcie criteriu de minimizat: 1 1 1 T 1 m (3.3) V ( x ) = || b A x || 2 || r || 2 r r = ri2 . 2= 2= 2 2 2 2 i =1 Ca urmare, problema de calcul este determinarea unei pseudosoluii x a
sistemului (3.1), care s aib proprietatea: * || b A x || 2 {|| b A x || 2 2 = min 2} . n 1
x
*

(3.4)

Pseudosoluia care ndeplinete condiia (3.4) se numete pseudosoluie n sensul celor mai mici ptrate, deoarece ea determin producerea unui reziduu cu norma euclidian minim. Cu alte cuvinte, se minimizeaz suma ptratelor componentelor reziduului sau suma ptratelor diferenelor dintre observaiile b i i estimaiile ( A x ) i . Determinarea vectorului x care minimizeaz funcia criteriu V ( x ) implic satisfacerea urmtoarelor condiii: * * x {V( x )} = 0 n i x {V( x )} > 0 . (3.5) n continuare se folosesc urmtoarele rezultate. Considernd matricea C nm i vectorii w n1 , z m1 , atunci se poate scrie relaia:
*

w {w C z} = C z .
nn

(3.6)
n 1

Considernd matricea C i vectorul w , atunci se poate scrie relaia: T w {w C w} = (C + C T ) w . (3.7) Ca urmare, condiiile de minim (3.5) se rescriu, folosind relaiile (3.6) i (3.7), sub forma: x {V ( x )} = (1 / 2) 2 (A T A x A T b) = 0 n . (3.8) x {V( x )} = (1 / 2) 2 (A T A ) > 0 Din relaiile (3.8) rezult: A T A x = A T b i A T A - matrice pozitiv definit.
Definiie: Sistemul de ecuaii algebrice liniare:

3.1

Formularea problemei

87

AT A x = AT b
se numete sistem de ecuaii normale asociat problemei (3.1).

(3.9)

Sistemul (3.9) este un sistem determinat, de ordinul n. n cele ce urmeaz se enun i se demonstreaz urmtorul rezultat.
Teorem de existen i unicitate: Dac matricea A mn , m > n , este monic, atunci oricare ar fi vectorul

b m1 exist i este unic o pseudosoluie x n1 a sistemului (3.1),


*

numit i soluie generalizat n sensul celor mai mici ptrate. Aceasta se scrie sub forma: * x = A+ b , unde matricea A + nm este numit pseudoinvers sau invers generalizat i este teoretic egal cu:

A + = (A T A ) 1 A T . Demonstraia teoremei se bazeaz pe propoziia precedent i cele enunate anterior, materializate n relaiile (3.8). n plus, pentru suportul intuitiv, se poate apela la reprezentarea geometric din Figura 3.1.

r =bAx

r =bAx

Im(A)

y=Ax

y =Ax

Im(A)

Fig. 3.1. Interpretarea geometric a soluiei n sensul celor mai mici ptrate (lema proieciei ortogonale)

Astfel, conform Lemei proieciei ortogonale, reziduul asociat pseudosoluiei * * x , r = b A x , trebuie s fie ortogonal pe subspaiul Im(A) pentru ca el s fie de norm euclidian minim. Aceasta conduce la relaia:
*

88

3.

Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate

(A x ) T r = 0, x n1 ,
*

ceea ce implic: x A T (b A x ) = 0, x n1 .
T *

De aici rezult: (A T A) x = A T b , ceea ce pune n eviden existena soluiei n sensul celor mai mici ptrate, * x . Observaie: Conform celor prezentate n capitolul 2, pentru sistemul determinat de * ecuaii normale (3.9), pseudosoluia x este unic determinat dac matricea acestui sistem, A T A , este inversabil. Aceast condiie este ndeplinit dac matricea A T A este pozitiv definit. n practic, ns, nu se recomand rezolvarea sistemului de ecuaii normale (3.9) deoarece matricea A T A , dei teoretic este pozitiv definit, prin calcul, datorit erorilor de rotunjire, ea poate deveni pozitiv semidefinit, deci neinversabil. Astfel, n general, matricea A T A este prost condiionat deoarece calculul su este afectat de erori de rotunjire deseori cu caracter catastrofal.
Exemplul 3.2:
*

Fie o matrice A de forma: 1 1 + 2 2 A= 1 1 , cu < m < , fl(1 + m ) > 1 , fl(1 + ) = 1 . 1 1 Matricea A are, evident, coloanele liniar independente, la precizia mainii m . n schimb, efectund calculele n virgul mobil, matricea fl(A T A) nu este pozitiv definit, ci pozitiv semidefinit, deci neinversabil:
3+ 3+ 3 3 , fl(A T A ) = AT A = . 2 3 + 3 + 2 + 3 + 3 + 2

Exist un vector x = [1 1] T [0 0] T , astfel nct fl( x A T A x ) = 0 .

3.2

Triangularizarea ortogonal a matricelor

89

Calculul numeric automat pentru rezolvarea problemei (3.1), n sensul celor mai mici ptrate, folosete alte proceduri care sunt descrise n continuare. Ele apeleaz la triangularizarea ortogonal a matricei sistemului (3.1).

3.2

Triangularizarea ortogonal a matricelor

3.2.1 Matrice ortogonale Definiie: Fie o matrice Q mm . Matricea Q se numete ortogonal dac este ndeplinit una din relaiile: Q T Q = I m sau Q T = Q 1 .

Se consider matricea ortogonl Q scris pe coloane: Q = [q 1 q i q j q m ], q i m1 , i = 1,..., m . Conform definiiei, coloanele matricei Q sunt vectori ortogonali i de norm unitar: T q i q j = 0, i j, i, j = 1,..., m; || q i || 2 2 =1, sau altfel spus, acetia sunt vectori ortonormali. n contimuare se enun urmtoarele proprieti ale matricelor ortogonale: 1. o matrice ortogonal pstraz norma vectorial euclidian: 2 z m1 , || Q z || 2 2 =|| z || 2 ; 2. matricele ortogonale pstreaz norma matricial euclidian, precum i norma Frobenius: A mn , Q mm ortogonal, Z nn ortogonal,
2 2 2 || Q A Z || 2 2 =|| A || 2 , || Q A Z || F =|| A || F .

De o deosebit aplicabilitate se bucur un anumit tip de matrice ortogonale i anume matricele Householder, definite prin relaia: T uu , (3.10) U = Im 1 T 1 n care u m1 i = u u = || u || 2 2 . Vectorul u se numete vector 2 2 Houseolder. Matricea U astfel definit este ortogonal i, n plus, este i simetric:

90

3.

Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate

U T = U = U 1 . Acest tip de matrice se mai numesc i reflectori Householder, deoarece, considernd un vector real x m1 , atunci se poate spune c prin

transformarea y = U x, y m1 , vectorul x este reflectat (proiectat) ntr-un hiperplan ce trece prin origine i este ortogonal pe hiperplanul care conine vectorul u . Matricele otogonale Householder pot fi folosite n scopul zerorizrii unor elemente ale unui vector, impunnd o anumit structur pentru vectorul u din definiia (3.10). Revenind la problema gsirii pseudosoluiei n sensul celor mai mici ptrate, criteriul V ( x ) , precizat n relaia (3.3), rmne invariant la transformrile ortogonale deoarece, conform proprietii 1 enunate anterior, se poate scrie: 1 1 V( x ) = || r || 2 || U r || 2 2= 2, 2 2 unde U este o matrice ortogonal. n concluzie, problema de calcul nu se modific dac se aplic sistemului de ecuaii (3.1) o transformare ortogonal. n felul acesta, utiliznd reflectori Householder, sistemul (3.1) poate fi adus la o form simpl, determinnd apoi pseudosoluia prin mijloace elementare cum ar fi substituia invers. Nu se folosesc transformrile elementare gaussiene deoarece acestea, nefiind matrice ortogonale, nu pstreaz norma vectorial euclidian i modific funcia criteriu de minimizat.
3.2.2 Procedura de triangularizare ortogonal a unei matrice de rang complet

Se enun i demonstreaz urmtorul rezultat:


Propoziie: Fie
m i=k

= [1 k 1

k +1 m ]T m1 .

Dac

mrimea

2 este nenul, atunci exist un reflector Householder U k mm 2 k = i

astfel nct:

U k = [1 k 1 k
2 n care 2 k = k .

0 0]T ,

Matricea U k din enunul propoziiei se numete reflector Householder de ordin m i indice k.

3.2

Triangularizarea ortogonal a matricelor

91

Demonstraia este constructiv i implic determinarea vectorului Householder 2 u k pentru care U k = I m u k u T k / k , n care k =|| u k || 2 / 2 . Astfel, se consider vectorul u k de forma:
u k = [0 0 u k , k u k +1,k

u m,k ]T ,

care este complet determinat prin urmtoarele relaii de calcul:


k = sign ( k )
i =k

i2 ,

u k ,k = k + k , u i ,k = i , i = k + 1,..., m,

k = k u k , k , k = k .

Funcia semn, sign(.), este folosit pentru a evita fenomenul de neutralizare a termenilor la sinteza termenului u k ,k .
2 Dac 2 k = i = 0 , aceasta este echivalent cu i = 0, i = k ,..., m , de i=k m

unde rezult c k = 0 , u k = 0 m , k = 0 , ceea ce nseamn c transformarea


U k nu exist.

Se enun, n continuare, urmtoarea proprietate. Fie m1 un vector oarecare de forma = [1 m ]T , unde este vectorul pentru care s-a determinat reflectorul U k (propoziia anterioar). Atunci se poate scrie: T T u u u u (3.11) Uk = Im k k = k k . k k Se introduce mrimea: = uk k
T

i, nlocuind n (3.11), se obine:

i = 1,..., k 1 i , U k = u k sau U k i = , i u i , k , i = k ,..., m m u j, k j n care = . k j= k

n particular, dac vectorul este de T m1 cu j = 1,..., k 1 , atunci: [ j] = [1 j 0 0]

forma

U k [ j] = [ j] ,
deoarece, n acest caz = 0 . Cu aceste elemente precizate, se enun i se demonstreaz urmtorul rezultat.

92

3.

Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate

Propoziie: Oricare ar fi matricea A mn , m > n , de rang complet pe coloane n, exist o matrice Q mm ortogonal, astfel nct matricea A se poate scrie: A =QR, (3.12) unde matricea R mn are urmtoarea structur: R1 R= , 0 ( m n )n nn unde matricea R 1 este superior triunghiular ( rii 0, i = 1,..., n ).

nesingular

Demonstraia este constructiv i constituie nsui algoritmul de triangularizare ortogonal a matricei A, descompunerea din relaia (3.12) numindu-se descompunere QR. Descrierea principial n limbaj pseudocod a acestui algoritm este urmtoarea: atribuie A 1 A pentru k = 1, n execut * determinare reflector U k astfel nct: ( U k A k ) i,k = 0, i = k + 1,..., m ; atribuie A k +1 U k A k atribuie R A n +1 Pentru determinarea reflectorilor U k la fiecare iteraie k, se va considera drept vector , coloana numrul k a matricei A k transformate. Astfel, se vor zeroriza, coloan cu coloan, elementele de sub pseudo-diagonala principal a matricei A. n urma calculului matricei A k +1 , primele k 1 coloane din matricea A k se pstreaz, iar coloanele de la k + 1 la n se modific n liniile de la k la m. Algoritmul eueaz dac matricea A este deficient de rang. n acest caz, la calculul reflectorului U k , mrimea k ar fi nul, ceea ce va conduce la k = 0 n aritmetica real ( | k | impus n virgul mobil). Ca o consecin a acestui fapt, elementul rk ,k de pe diagonala principal a matricei R 1 va rezulta nul, dac algoritmul eueaz la iteraia k. Pentru continuarea procesului de

3.3

Rezolvarea sistemelor supradeterminate de ecuaii algebrice liniare

93

triangularizare (condiia de executarea a unei iteraii), testul uzual care ine cont de erorile n virgul mobil este: | k |> impus . n urma aplicrii acestui algoritm se obine: U n U n 1 U 1 A = R . Notnd cu U matricea obinut prin multiplicarea reflectorilor Householder: U = U n U n 1 U 1 se obine: UA =R . Multiplicnd ultima relaie la stnga cu U 1 , se obine: A = Q R , unde Q = U 1 = U T = U 1 U 2 U n . Matricea Q rezultat este ortogonal, fiind rezultatul unui produs de matrice ortogonale.

3.3

Rezolvarea sistemelor supradeterminate de ecuaii algebrice liniare

3.3.1 Cazul sistemelor cu matrice de rang complet

Se consider sistemul supradeterminat de ecuaii algebrice liniare (3.1), unde matricea sistemului este de rang complet pe coloane: A mn , rang( A) = n ,
m > n . Se multiplic la stnga ecuaia (3.1) cu secvena de reflectori Householder care realizeaz triangularizarea ortogonal a matricei sistemului i acumulate n matricea U. Se obine: (3.13) UAx = Ub.

Conform ultimei propoziii din paragraful 3.2.2 anterior, relaia (3.13) devine: (3.14) R x = d; R = U A , d = U b , unde matricea R este (quasi-)superior triunghiular. Sistemul (3.14) se numete sistem ortogonal echivalent cu sistemul (3.1). Ecuaia (3.14) se poate scrie sub forma: R1 d1 n 1 ( m n )1 , (3.15) x = , d 1 , d 2 0 ( m n )n d 2 unde matricea ptratic R 1 , de ordin n, este superior triunghiular i nesingular. n general d 2 0 ( m n ) , caz n care se spune c sistemele de ecuaii

94

3.

Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate

(3.1) i (3.14) sunt incompatibile. Dar, ceea ce intereseaz este determinarea * unui vector x care minimizeaz norma euclidian a reziduului: (3.16) r =bAx. Multiplicnd la stnga relaia (3.16) cu matricea ortogonal U, se obine conform relaiilor (3.13) - (3.15): d 1 R 1 x . (3.17) Ur = Ub UAx =d Rx = d2 Matricea U fiind ortogonal, aceasta pstreaz norma vectorial euclidian. Ca urmare, din relaia (3.17) rezult: 2 2 2 (3.18) V ( x ) =|| r || 2 2 =|| U r || 2 =|| d 1 R 1 x || 2 + || d 2 || 2 . Cum n general d 2 0 ( m n ) , deci || d 2 || 2 2 0 , rezult c singura minimizare care se poate realiza, n ceea ce privete funcia criteriu din relaia (3.18), este: || d 1 R 1 x || 2 2
!

=0 ,
(3.19)
*

ceea ce conduce, n corpul numerelor reale, la: * R 1 x = d1 .

Cum matricea R 1 este superior triunghiular i nesingular, pseudosoluia x se obine prin rezolvarea sistemului (3.19), prin substituie invers.
Concluzie:

Triangularizarea bazat pe transformri ortogonale prezerv norma euclidian matricial. Aadar, se pstreaz condiionarea numeric a matricei sistemului n raport cu norma euclidian, fiind singura metod adecvat pentru calculul pseudosoluiei n sensul celor mai mici ptrate.

Probleme conexe

Calculul reziduului de norm minim asociat pseudosoluiei n sensul celor mai mici ptrate, se realizeat considernd relaia (3.17) n care se ine cont de ecuaia (3.19). Se obine: 0 n * Ur = . d 2 Rezult:

3.3

Rezolvarea sistemelor supradeterminate de ecuaii algebrice liniare

95

0 n r =U = U1 U 2 U n d 2
* T

0 n d 2

Calculul pseudoinversei matricei A se realizeaz plecnd de la descompunerea QR a acesteia: In T A = Q R = U R = U1 U 2 U n R1 . 0 ( m n )n Rezult, aadar:

In + 1 1 T T A = (A A) A = (R 1 ) U n U1 . 0 ( m n )n
Exemplul 3.3:

Fie sistemul (3.1) cu urmtoarele valori numerice: 1 1 2 1 2 3 A = 0 1 , b = 1 . 1 0 1 1 1 0 n urma rezolvrii n sensul celor mai mici ptrate a sistemului considerat, rezult: 1 2 3 1 1 , d1 = , x* = R1 = , 0 2.44949 2.44949 0.99999 1 unde [1 1] reprezint pseudosoluia exact a sistemului.
T

Capitolul 4 CALCULUL VALORILOR I VECTORILOR PROPRII

4.1

Formularea problemei

Se consider o matrice ptratic real, de ordinul n, notat cu A. Definiie: Oricare ar fi matricea A nn , un numr n general complex, C , se numete valoare proprie a matricei A dac exist un vector x C n1 , x 0 n , astfel nct
Ax =x.

(4.1)

n acest caz, x se numete vector propriu al matricei A, asociat valorii proprii .

Relaia de definiie (4.1) se poate scrie i sub forma: ( I n A) x = 0 n ,

x 0 n , de unde rezult c matricea I n A trebuie s fie singular.


n continuare, se construiete un polinom n variabila , definit prin relaia:
p n ( ) = det( I n A ) ,

(4.2)

numit polinom caracteristic al matricei A. Acesta este un polinom cu coeficieni reali, de gradul n: p n ( ) = n + 1 n 1 + + n 1 + n , unde coeficienii i , i = 1,..., n . Deoarece matricea I n A este singular, rezult c valoarea proprie verific ecuaia caracteristic: (4.3) p n ( ) = 0 . Conform teoremei fundamentale a algebrei, orice polinom de gradul n are n rdcini. Ca urmare, poate fi enunat urmtorul rezultat. Teorem de existen:
Orice matrice ptratic real, de ordin n, are exact n valori proprii, n general complexe i nu neaprat distincte, care coincid cu rdcinile

110

4.

Calculul valorilor i vectorilor proprii

polinomului caracteristic ataat matricei. Dac exist valori proprii complexe, atunci acestea apar n perechi complex conjugate.

Definiie:
Mulimea valorilor proprii ale unei matrice ptratice ( A ) = { 1 ( A ),..., n ( A )} , se numete spectrul matricei A. real A,

O consecin a teoremei enunate anterior este:


Orice matrice A nn are cel puin un vector propriu.

Altfel spus, fiecrei valori proprii i ( A ), i = 1,..., n , i corespunde cel puin un vector propriu x i aparinnd nucleului matricei i I n A : x i N ( i I n A ) . Vectorii proprii corespunztori valorilor proprii complex conjugate pot fi alei complex conjugai. Definiie:
Matricea A nn se numete matrice simpl, dac ea admite n vectori proprii liniar independeni. Aceti vectori proprii constituie o baz n spaiul C n1 , numit baz proprie a matricei A.

Astfel, se poate sintetiza o matrice pe baza celor n vectori proprii x i , i = 1,..., n , dup cum urmeaz: X = [ x 1 x 2 x i x n ] . Folosind relaia (4.1) pentru toate valorile proprii ale matricei A, atunci se poate scrie: A X = X , unde = diag{ 1 ,..., i ,..., n } este o matrice diagonal. Matricea se numete forma canonic diagonal a matricei A. Aadar, orice matrice ptratic real, de ordin n, este diagonalizabil peste mulimea numerelor complexe C : = X 1 A X . Metodele numerice pentru calculul automat al valorilor i vectorilor proprii nu se bazeaz pe rezolvarea ecuaiei caracteristice asociat matricei A, definit prin relaiile (4.2) i (4.3). Astfel, de multe ori, rezolvarea ecuaiei caracteristice se dovedete a fi imposibil. n continuare sunt expuse dou din motivele pentru care, n practic, nu se prefer rezolvarea ecuaiei caracteristice. 1. Plecnd de la matricea A, calculul coeficienilor polinomului caracteristic, i , i = 1,..., n , necesit un volum de calcul ridicat. Ca urmare, aceti coeficieni sunt afectai, n general, de erori de rotunjire. O metod uzual de determinare a acestora este algoritmul Leverrier Fadeeva, care const n urmtoarele: atribuie B1 I n atribuie 1 ( 1 / 1) tr ( B1 A ) pentru k = 2, n execut

4.1

Formularea problemei

111

atribuie B k B k 1 A + k 1 I n atribuie k ( 1 / k ) tr ( B k A )

Acest algoritm necesit un numr de operaii n virgul mobil de ordinul lui n 4 . n descrierea anterioar, tr(Z) este notaia pentru urma matricei oarecare

Z, definit ca fiind: Z = [z ij ]1i , j n , tr ( Z) = z i ,i .


i =1

2. n general, problema rezolvrii ecuaiilor polinomiale este o problem prost condiionat, n sensul c mici perturbaii n coeficienii polinomului conduc la perturbaii mari n rdcinile calculate (a se revedea Exemplul 1.12, subcapitolul 1.3.1 i Exemplul 1.13). Metodele practice pentru calculul numeric automat al valorilor proprii sunt, n esen, proceduri iterative de aducere a matricei A la anumite forme (canonice) simple, prin intermediul unor transformri de asemnare. Deoarece forma canonic Jordan este foarte sensibil la perturbaii (Exemplul 1.13), n practic se utilizeaz aa-numita form canonic Schur, obinut prin transformri ortogonale de asemnare.
Aplicaii:

n general, calculul valorilor i vectorilorproprii intervine ca etap esenial n analiza i sinteza sistemelor dinamice liniare (continue de timp), n probleme legate de: studiul stabilitii (interne); studiul rspunsului sistemelor. Astfel, n ceea ce privete analiza stabilitii sistemelor automate, tehnicile matriceale bazate pe localizarea valorilor proprii au o deosebit importan. n funcie de natura problemei, uneori este suficient a determina plasarea valorilor proprii ale unei matrice n planul complex, alteori este absolut necesar determinarea cu precizie a valorilor proprii. Pentru a rspunde acestor cerine diferite, au fost abordate metode ce necesit un efort de calcul adecvat i a cror aplicare eficient presupune utilizarea tehnicii de calcul: localizarea valorilor proprii prin metoda inegalitilor lui Ghergorin (a se vedea problema propus P4.2); calculul valorilor i vectorilor proprii bazat pe algoritmul QR i forma canonic Schur (coninutul prezentului capitol). n studiul rspunsului sistemelor dinamice liniare se disting urmtoarele cazuri:

112

4.

Calculul valorilor i vectorilor proprii

rspunsul liber pentru care evoluia strii sistemului este cauzat numai de starea sa iniial la un anumit moment de timp t 0 i n lipsa oricrui

semnal exterior; rspunsul forat pentru care evoluia n timp a semnalului de ieire este cauzat de aplicarea unui semnal la intrarea sistemului. Pentru rezolvarea unor astfel de probleme intervine calculul matricei variante n timp: ( t ) = e At , unde:
A nn este o matrice constant; t este o variabil scalar cu semnificaia de moment de timp, oarecare dar fixat. Matricea ( t ) este ntlnit sub denumirea de matrice de tranziie.

n continuare, se noteaz B = A t , B nn , t oarecare. n urma calculului valorilor i vectorilor proprii pentru matricea B, se obin urmtoarele: D = diag{d i ,i }, d i ,i = i , i ( B), D C nn , o matrice diagonal care conine, pe diagonala principal, valorile proprii ale matricei B; V C nn , o matrice coninnd, corespunztor, n fiecare coloan, vectorii proprii ai matricei B. Astfel, valoarea proprie din poziia (i,i) a matricei D corespunde vectorului propriu din coloana numrul i a matricei V ( i = 1,..., n ). Ca urmare, calculul matricei e B implic utilizarea relaiei:
V diag{e
d1,1

,..., e

d n ,n

} V 1 ,

unde V 1 este inversa matricei V. Cum, n general, V este o matrice cu elemente n corpul numerelor complexe, pentru calculul inversei ei se poate aplica metodologia expus n subcapitolul 2.3.4 privitoare la rezolvarea sistemelor cu elemente numere complexe. De asemenea, pentru calculul elementelor de tip e relaiile:
d i ,i

, se ine cont de

d i ,i = ri + j c i , e

d i ,i

= e ri cos(c i ) + j e ri sin(c i ), i = 1,..., n; j 2 = 1 .

4.2

Forma canonic Schur

Definiie:
Dou matrice A, A ' nn se numesc ortogonal asemenea, dac exist o matrice ortogonal Q nn , astfel nct:

A' = QT A Q .

(4.4)

4.2

Forma canonic Schur

113

Matricele ortogonal asemenea au proprietatea esenial c au aceleai valori proprii: i (A) = 'i (A ' ), i = 1,..., n . Relaia dintre vectorii proprii ai dou matrice ortogonal asemenea este: ' x i = Q x i , i = 1,..., n , unde prin x i , x i s-au notat vectorii proprii ai matricei A i, respectiv, A ' . Definiie:
O matrice T nn se spune c este n form bloc superior triunghiular, dac are urmtoarea structur:
'

T11 0 T= 0

T12 T1m T22 T2 m , T p i p i , ii 0 Tmm

unde Tii , i = 1,..., m sunt submatrice ptratice. Dac, n plus, blocurile diagonale sunt matrice de ordin maxim 2, atunci se spune c matricea este n form cvasi-superior triunghiular.

Teorem de existen: ~ Oricare ar fi matricea A nn , exist o matrice ortogonal Q nn ,


astfel nct matricea:

~ ~ S = QT A Q

(4.5)

este n form cvasi-superior triunghiular. Blocurile diagonale de ordin nti ale matricei S reprezint valorile proprii reale ale matricei A i ale matricei S, iar blocurile diagonale de ordin doi au valori proprii complex conjugate reprezentnd valori proprii complex conjugate ale matricelor A i S.

Definiie:
Matricea S din relaia (4.5) se numete forma canonic Schur real a ~ matricei A. Coloanele ~ q k , k = 1,..., n ale matricei Q se numesc vectori Schur ai matricei A. Acetia fiind vectori ortogonali, formeaz o baz ortogonal n n 1 numit baz Schur a matricei A.

Demonstraia teoremei anterioare se realizeaz innd cont de ambele situaii care pot apare, anume cazul valorilor proprii reale i cazul valorilor proprii complex conjugate.

114

4.

Calculul valorilor i vectorilor proprii

1. Fie (A), , i fie x vectorul propriu asociat valorii proprii . Fr a restrnge generalitatea, se presupune c x x =|| x || 2 2 = 1 . Se construiete matricea ortogonal Q astfel: Q = [ x Y], Y n( n 1) , unde Y este o matrice de completare, avnd coloanele ortogonale cu vectorul x i ortogonale ntre ele: x Im(Y) Y T x = 0 ( n 1)1 . (4.6) Cu matricea Q astfel construit i innd cont de definiia (4.1), produsul A Q este: A Q = A [x Y] = [A x A Y ] = [ x A Y] . Dar, conform definiiei (4.4), rezult: A Q = Q A ' , i deci:
T

xT x xT * ' T A Y] = A = Q A Q = [ x . (4.7) T T T Y x Y Y A Y T 2 Cum s-a fcut presupunerea c x x =|| x || 2 = 1 , folosind relaia (4.6) egalitatea (4.7) devine: * ' ( n 1)( n 1) , A = , B 0 B ( n 1)1
n care s-a notat prin B matricea Y T A Y . n concluzie, dac , exist o matrice ortogonal Q, astfel nct aplicnd aceasta matricei A, se obine o matrice ortogonal asemenea, A ' . Aceasta din urm are pus n eviden un bloc diagonal de ordinul nti care coincide chiar cu valoarea proprie real a matricei iniiale A. 2. Fie 1, 2 = j , , , 0 , o pereche de valori proprii complex conjugate ale matricei A. Fie atunci, u j v vectorii proprii complex conjugai asociai valorilor proprii 1, 2 C . Se construiete matricea
X n2 de forma: X = [ x 1 x 2 ] , unde x 1 , x 2 formeaz o baz ortogonal pentru subspaiul imagine Im([u v ]) . Astfel, se poate scrie

relaia: A X = X M, M 22 , unde matricea M satisface la relaia: det( I 2 M) = 0 1, 2 = j . Se construiete matricea ortogonal Q ' de forma:

4.3

Algoritmul QR pentru calculul formei canonice Schur

115

Q ' = [X Y ], Y n( n 2 ) , unde Y este o matrice de completare avnd coloanele ortogonale ntre ele. n plus: Y T X = 0 ( n 2)2 . Atunci, urmnd un procedeu analog cu cel descris la punctul 1 al demonstraiei, se obine: M * " ' T ' ( n 2 )( n 2 ) A = (Q ) A Q = . , C 0 ( n 2)2 C n concluzie, dac matricea A are dou valori proprii complex conjugate, atunci exist o matrice ortogonal Q ' care, aplicat matricei A, s conduc la o matrice A " ortogonal asemenea cu aceasta. Matricea A " are pe diagonala principal un bloc de ordinul doi care, la rndul su, are drept valori proprii, valorile proprii complex conjugate ale matricei A de la care sa plecat. Demonstraia teoremei de existen se obine dac se repet procedurile prezentate anterior la punctele 1 i 2 asupra matricelor B i, respectiv, C. Acestea se numesc proceduri de deflaie. n final se obine o matrice n form cvasi-superior triunghiular care are pe diagonala principal blocuri de ordin maxim doi. Blocurile de ordinul nti reprezint chiar valorile proprii reale ale matricei A, iar blocurile de ordin doi, la rndul lor avnd valori proprii complex conjugate, ofer baza pentru calculul valorilor proprii complex conjugate ale matricei A. ~ Matricea Q din enunul teoremei se obine prin produsul matricelor de tipul Q, Q ' de la punctele 1 i, respectiv, 2 ale procedurilor de deflaie. Observaie: Matricea S este bloc superior triunghiular, cu blocurile diagonale de ordin maxim doi, iar fiecare bloc de ordin doi are valori proprii complex conjugate. n particular, dac matricele A i S au numai valori proprii reale, atunci matricea S este chiar superior triunghiular.

4.3

Algoritmul QR pentru calculul formei canonice Schur

Algoritmul QR pentru calculul valorilor i vectorilor proprii construiete un ir de matrice ortogonal asemenea A 0 = A, A 1 ,..., A k ,... convergent ctre forma

116

4.

Calculul valorilor i vectorilor proprii

canonic

A k = a ij

[ ]
[k ]

Schur:

A k k S .

Altfel

spus,

considernd

matricea

1 i , j n

, elementele sale tind la 0 pentru k tinznd la infinit:

k k] a [ijk ] k 0 pentru i j + 2 i exist elemente a [ 0 pentru i ,i +1

i=1,...,n-1, astfel nct s fie puse n eviden, pe diagonal, blocuri de ordin maxim doi. Se definete irul de matrice {A k }k 0 , A 0 = A , prin urmtoarele relaii de recuren:
A k k I n = Q k R k , A k +1 = R k Q k + k I n ,

(4.8)

unde matricea Q k nn este o matrice ortogonal, matricea R k nn este o matrice superior triunghiular, iar scalarul k se numete deplasare i este un parametru de accelerare a convergenei. Se demonstreaz c dac k ( A k ) , atunci matricea R k este o matrice nesingular. Practic, are loc descompunerea QR a matricei A k k I n prin triangularizare ortogonal (prima relaie din (4.8)), aa cum s-a descris n capitolul 3, subcapitolul 3.2.2 . Folosind rezultatele acestei descompuneri, se calculeaz apoi urmtorul element al irului de matrice (a doua relaie din (4.8)). Definiie:
irul de matrice {A k }k 0 , A 0 = A , definit prin relaiile (4.8), se numete ir QR ataat matricei A, iar relaiile (4.8) se numesc pas QR cu deplasare explicit.

n continuare se enun i demonstreaz urmtorul rezultat. Propoziie:


Matricele irului QR sunt ortogonal asemenea:

A k +1 = Q T k Ak Qk . Demonstraia pornete de la relaiile de recuren (4.8), din care rezult: R k = QT k (A k k I n ) . (4.9) T A k +1 = Q T k (A k k I n ) Q k + k I n = Q k A k Q k Exprimnd matricea A k n funcie de matricea A k 1 i, mai departe, matricea A k 1 n funcie de matricea A k 2 , folosind relaiile (4.9) rezult:
A k = QT T T k 1 A k 1 Q k 1 A k = Q k 1 Q k 2 A k 2 Q k 2 Q k 1 T A k 1 = Q k 2 A k 2 Q k 2

i, continund n aceast manier, rezult:

4.3

Algoritmul QR pentru calculul formei canonice Schur

117

T T T A k = QT k 1 Q k 2 Q 1 Q 0 A Q 0 Q 1 Q k 2 Q k 1 .

(4.10)

~ Se noteaz cu Q T k produsul de matrice

QT k 1 j ,
j= 0

~ iar cu Q k produsul

Qj .
j= 0

~ ~ Relaia (4.10) devine: A k = Q T k A Q k . Pentru k se obine

~ ~T ~ ~ QT i Q k Q , iar matricea A k va tinde la matricea S, care este forma k Q canonic Schur a matricei A. Algoritmul original QR, descris de relaiile (4.8), este n general consumator de timp. De aceea se folosete o form optimizat a algoritmului QR cu deplasare explicit, pentru calculul valorilor i vectorilor proprii. Algoritmul optimizat cuprinde dou faze, decsrise principial n continuare, iar n detaliu n subcapitolul urmtor.
Faza I-a este o etap pregtitoare, de obinere a formei superior Hessenberg a matricei A, printr-un ir de transformri ortogonale de asemnare. Se noteaz cu H forma superior Hessenberg a matricei A. Matricele A i H sunt ortogonal asemenea. Matricea H are structura prezentat n Figura 4.1.

A=

H=

0
c1 c2 ck cn-2

Fig. 4.1. Forma implementabil a algoritmului QR pentru obinerea formei canonice Schur: faza I-a Aadar, matricea H are elementele h ij = 0, j = 1,..., n 2, i = j + 2,..., n . Faza I-a implic o procedur direct ce se desfoar n n 2 iteraii.
Faza a II-a implic o procedur iterativ cu un numr finit, dar necunoscut de pai. Plecnd de la forma superior Hessenberg a matricei A, se construiete un ir de matrice ortogonal asemenea, convergent ctre forma canonic Schur S. Astfel, se urmrete zerorizarea unor elemente aflate pe sub-diagonala principal a matricei H atfel nct, n final, s se obin forma canonic Schur. Figura 4.2 prezint principial rezultatul urmrit.

118

4.

Calculul valorilor i vectorilor proprii

s11 H= S=

0 0

sii

0 0
smm
Fig. 4.2. Forma implementabil a algoritmului QR pentru obinerea formei canonice Schur faza a II-a Aplicnd n aceast faz algoritmul QR cu deplasare explicit, plecnd de la matricea superior Hessenberg, se poate demonstra c se obine un ir de matrice aflate tot n forma superior Hessenberg. Altfel spus, forma superior Hessenberg este invariant la algoritmul QR. Astfel, dac matricea H k are pe diagonal structura general de forma:

h [iik ] k] h [i + 1.i

] h [i ,ki + 1 [k] h i +1,i +1

k] , h [i + 1,i 0 ,

atunci, n urma aplicrii algoritmului QR cu deplasare explicit, i matricea H k +1 va avea elementul din poziia (i + 1, i) tot nenul. Dac, ns, blocul pus n eviden va conduce la dou blocuri de ordinul nti, pentru k se obine urmtoarea structur:
h ii 0

0 h i +1,i +1

k k] , h [i + 0 . 1,i

k +1] [k] Ca urmare, algoritmul QR conduce la rezultatul: | h [i + 1,i || h i +1,i | .

n cazul blocurilor de ordinul nti, inegalitatea anterioar este strict, iar pentru blocurile de ordin doi, dup un anumit numr de iteraii, inegalitatea se transform n egalitate. Ca urmare, pentru detecia blocurilor de ordin nti, se aplic urmtorul test: k +1] [ k +1] k +1] | + | h [i + dac | h [i + 1,i | (| h ii 1,i +1 |) atunci
k +1] atribuie h [i + 1,i 0

4.4

Forma implementabil a algoritmului QR cu deplasare explicit

119

Astfel, se vor corecta eventualele erori datorate calculului n virgul mobil. Observaie: Dac se aplic direct algoritmul QR asupra matricei iniiale A, atunci fiecare iteraie necesit un numr de operaii n virgul mobil de ordinul lui n 3 . Dac, ns, algoritmul QR se aplic formei superior Hessenberg, atunci la fiecare pas QR numrul de operaii n virgul mobil este de ordinul lui n 2 .

4.4

Forma implementabil deplasare explicit

algoritmului

QR

cu

Dup cum s-a artat n cadrul subcapitolului 4.3, forma implementabil a algoritmului QR cuprinde dou faze detaliate n continuare.
Faza I-a este o faz preliminar, care implic o procedur direct de aducere a matricei A nn la forma superior Hessenberg, notat cu H. n cadrul acestei proceduri se folosesc reflectori Householder n scopul anulrii, coloan cu coloan, a elementelor matricei A situate sub sub-diagonala principal. Algoritmul care descrie aceast faz este urmtorul: atribuie A 1 A pentru k = 1, n 2 execut * determinare reflector Householder U k +1 astfel nct: ( U k +1 A k ) i,k = 0, i = k + 2,..., n atribuie A 'k +1 U k +1 A k
' atribuie A k +1 A 'k +1 U T k +1 = A k +1 U k +1

atribuie H A n 1

n final, se obine matricea H care reprezint forma superior Hessenberg a matricei A. Matricea H, astfel obinut, are nule elementele: h i , j = 0, j = 1,..., n 2, i = j + 2,..., n . Reflectorii Householder de ordin n i indice k + 1 , U k +1 , k = 1,..., n 2 , sunt matrice ortogonale i simetrice care se sintetizeaz cu ajutorul relaiei:
U k +1 = I n ( u k +1 u k +1 / k +1 ) ,
T

n care u k +1 = [0 0 u k +1,k +1 u n , k +1 ] T i este complet definit de relaiile:

120

4.

Calculul valorilor i vectorilor proprii

k +1 = sign (a [kk+]1, k )

i = k +1

(a [i,kk] ) 2 ,

u k +1, k +1 = a [kk+]1,k + k +1 ,

u i ,k =

a [i ,kk] ,

i = k + 2,..., n, k +1 = k +1 u k +1,k +1 .

Multiplicarea la dreapta cu matricea U T k +1 = U k +1 se efectueaz pentru ca matricea obinut, A k +1 , s aib aceleai valori proprii ca i matricea A k . Astfel, mergnd din aproape n aproape, matricea A k +1 va avea aceleai valori proprii ca i matricea iniial, A 1 = A, matricele {A k } k 1 fiind ortogonal asemenea. n sintez, tabloul transformrilor este:
U n 1 U 2 A U 2 U n = H .

Notnd cu U = U n 1 U 2 i cu U T = U 2 U n , rezult:
H = U A UT .

Aceast procedur necesit exact n 2 iteraii.


Faza a II-a const ntr-o procedur iterativ, de construcie a unui ir de matrice ortogonal asemenea, convergent ctre forma canonic Schur, pornind de la matricea H obinut la finalul primei faze. n cadrul acestei faze de lucru, se aplic algoritmul QR cu deplasare explicit ntr-o form optimizat, dup cum se prezint n continuare. Se pleac de la forma superior Hessenberg a matricei A obinut n faza I-a i, printr-un ir de transformri ortogonale de asemnare, se urmrete obinerea formei canonice Schur a matricei A. Scopul este de a anula o parte din elementele de pe sub-diagonala principal a matricei H astfel nct, n final, matricea S (forma canonic Schur) s conin pe diagonala principal blocuri de ordin maxim doi. Blocurile diagonale de ordin doi, dac exist, trebuie s aib valori proprii complex conjugate. Algoritmul QR cu deplasare explicit, n forma sa original, parcurge urmtoarele etape: 1. determinare deplasare ; 2. atribuire H H I n ; 3. descompunere H = Q R , n care R este o matrice superior

4. 5. 6. 7.

triunghiular, iar Q este o matrice ortogonal; atribuire H R Q ; refacere deplasare H H + I n ; corecie matrice H (efectuare test de decuplare); atribuire S H i efectuare teste reluare algoritm QR (de la etapa 1).

4.4

Forma implementabil a algoritmului QR cu deplasare explicit

121

Etapele de la 1 la 6 implementeaz un pas QR cu deplasare explicit i comport n 1 iteraii n etapa 2, de realizare a descompunerii QR a matricei H. n continuare se detaliaz aceste etape. La nivelul etapei 1 se determin deplasarea . Se poate demonstra c viteza de convergen cea mai mare se obine pentru o alegere a deplsrii de tipul: = h n ,n (ultimul element de pe diagonala principal a matricei H). La nivelul etapei 2, deplasarea se scade de pe diagonala principal a matricei H, lucrndu-se n continuare (etapele 3 i 4) cu aceast nou matrice. Etapa 3 se refer la descompunerea QR a matricei H obinut la etapa 2. Descompunerea se poate realiza aplicnd reflectori Householder: U n 1 U k U 1 H = R , unde R este o matrice superior triunghiular. Notnd cu Q T produsul de matrice U n 1 U k U 1 , se obine: H = Q R . Matricele U k , k = 1,..., n 1 sunt reflectori Householder de ordin n i indice k, ele zeroriznd elementele de pe prima sub-diagonal a matricei H:

( U k H) k +1,k = 0 .
Dac se aplic definiia reflectorului Householder, atunci se obine pentru acesta urmtoarea form: I k 1 01( k 1) Uk = 01( k 1) 0 ( n k 1)( k 1) unde:
2 = h k ,k / k , = h k +1,k / k , k = sign ( h k , k ) h 2 k , k + h k +1, k .

0 ( k 1)1

0 ( k 1)1

0 ( n k 1)1

0 ( n k 1)1

0 ( k 1)( n k 1) 01( n k 1) , 01( n k 1) I n k 1

O procedur mai eficient este de a folosi alte matrice ortogonale de transformare i anume matricele de rotaie plan Givens. Pentru a nelege principiul modului de lucru al acestora din urm, se consider planul (k + 1, k ) ca n Figura 4.3. Astfel, se rotete sistemul de axe cu unghiul , astfel ca punctul de coordonate (h k ,k , h k +1,k ) s aib coordonatele ( rk , 0) n noul sistem
2 de axe, unde rk = h 2 k , k + h k +1, k . Aceasta corespunde situaiei n care

vectorului [ h k ,k

h k +1,k ] T i se aplic o matrice de rotaie R, de forma:

122

4.

Calculul valorilor i vectorilor proprii

ck R = d k obinndu-se:

dk h k ,k h k +1,k cu c k = cos () = , d k = sin () = , ck rk rk h k ,k rk R = . h k +1,k 0


planul (k, k+1) k+1 (k)r

(k+1)r hk+1,k (rk, 0)

hk,k

Fig. 4.3. Principiul rotaiei plane Matricea de rotaie Givens este, n acest caz: I k 1 Pk = 0 2( k 1 ) 0( n k 1 ) ( k 1 ) 0( k 1 ) 2 R 0( n k 1 ) 2 0( k 1 ) ( n k 1 ) 0 2( n k 1 ) I n k 1

nn

2 innd cont de faptul c c 2 k + d k = 1 , se poate arta c:

I k 1 T = 0 2( k 1 ) Pk Pk 0( n k 1 ) ( k 1 )
2 c 2 k + dk unde Q = 0

0( k 1 ) 2 Q 0( n k 1 ) 2

0( k 1 ) ( n k 1 ) 0 2( n k 1 ) I n k 1

nn

1 0 T = , deci Pk Pk = I n . 2 2 0 1 ck + dk 0

4.4

Forma implementabil a algoritmului QR cu deplasare explicit

123

Matricea de rotaie plan Givens este ortogonal, ns nu este simetric. Numrul de operaii pentru sinteza matricei Pk este redus n comparaie cu volumul de calcul necesar sintezei unui reflector Householder. n concluzie, la etapa 3, asupra matricei H se aplic rotaiile plane Givens, obinnd: Pn 1 P1 H = R , n care se noteaz Q T = Pn 1 P1 , Q fiind o matrice ortogonal. Matricea R este o matrice superior triunghiular. La etapa 4, matricei R i se aplic, la dreapta, matricea Q definit mai sus, iar T rezultatul obinut se atribuie matricei H: H = R P1T Pn 1 . La etapa 5 se adun deplasarea la elementele de pe diagonala prinicipal, pentru a pstra nemodificate valorile proprii. Altfel spus, are loc refacerea deplasrii pe diagonala principal. La etapa 6 se aplic un test de decuplare. Aplicarea acestuia este justificat de faptul c , n general, forma superior Hessenberg este invariant la lagoritmul QR, dup cum s-a menionat principial n subcapitolul anterior. n continuare se detaliaz acest aspect. Matricea Pk , aplicat la stnga, acioneaz efectiv asupra blocului determinat de liniile i, respectiv, coloanele k i k + 1 din matricea H:

h k ,k h k +1,k
conducnd la:

h k , k +1 h k +1, k +1

, k = 1,..., n 1

h 'k ,k 0

h 'k ,k +1 h 'k +1,k +1

T Cnd se aplic matricea Pk , la dreapta rezultatului Pk H , blocul anterior devine:

h" k ,k " h k +1, k

h" k , k +1 " h k +1,k +1

i, n general, | h k +1,k || h " k +1, k | . Inegalitatea este strict dac elementului din poziia (k + 1, k ) i corespunde un zerou n forma canonic Schur. Acest zerou pune n eviden blocurile de ordin maxim doi de pe diagonala matricei S sau, altfel spus, decupleaz blocurile formei canonice Schur, n forma superior

124

4.

Calculul valorilor i vectorilor proprii

Hessenberg. Pentru a compensa eventualele erori de rotunjire, se aplic urmtorul test pentru decuplare: " " dac | h " k +1, k |< (| h k , k | + | h k +1, k +1 |) atunci
atribuie h " k +1, k 0 Parametrul caracterizeaz precizia dorit a calculelor. La etapa 7 se aplic testele care condiioneaz reluarea sau nu a algoritmului QR. Testele realizate n aceast etap au ca punct de plecare structura formei canonice Schur prezentat n Figura 4.4.

Mi 0 sii 0 0 sii si,i+1

si+1,i

si+1,i+1 0

(a)

(b)

Fig. 4.4. Structura formei canonice Schur; (a) bloc de ordinul I; (b) bloc de ordinul II Analiznd structura formei canonice Schur, se desprind urmtoarele concluzii: nu exist pe sub-diagonala formei canonice Schur dou elemente consecutive nenule; dac exist blocuri de ordinul doi pe diagonala matricei S, atunci acestea trebuie s aib, la rndul lor, valori proprii complex conjugate. Astfel, testele care se realizeaz la aceast etap sunt: dac i {1, 2, ..., n 2} pentru care s i +1,i 0 i s i + 2,i +1 0 atunci (T1)

matricea S nu este n forma canonic Schur (reluare de la etapa 1) dac / i care s satisfac (T1), dar i {1, 2, ..., n 1} pentru care
s i ,i blocul M i = s i +1,i

(T2) |

s i ,i +1 are valori proprii reale atunci s i +1,i +1

4.5

Calculul valorilor i vectorilor proprii

125

| matricea S nu este n forma canonic Schur (reluare de la etapa 1) Dac aceste teste sunt satisfcute (cel puin unul din ele), atunci algoritmul se reia de la etapa 1. Tabloul general al transformrilor din faza a doua a algoritmului QR este: [s] [s ] [1] [1] [1] T [1] T S = [ Pn 1 P1 ] [ Pn 1 P1 ] H [( P1 ) ( Pn 1 ) ] , [s ] T [( P1[ s ] ) T ( Pn 1 ) ] unde [s] este indexul iteraiei la care se obine forma canonic Schur, cu precizia impus . Notnd cu P produsul matricelor care nmulesc la stnga matricea H i cu P T produsul de matrice caree nmulesc la dreapta matricea H, se obine: P H PT = S . n urma aplicrii ambelor faze ale formei implementabile a algoritmului QR asupra matricei A, rezult: P U A U T P T = S . Se noteaz n continuare ~ QT = P U . ~ ~ ~ Atunci, relaia anterioar devine: S = Q T A Q , unde Q = U T P T se numete matrice general de transformare. Aceast matrice acumuleaz toate transformrile ortogonale care se aplic matricei A, n vederea obinerii formei canonice Schur. n general, se afirm c forma implementabil a algoritmului QR este o procedur stabil numeric, iar forma canonic Schur calculat pentru o , coincide cu forma canonic Schur exact, S, a matrice A, notat prin S =A+E: matricei A uor perturbat, A S S A + E , || E || <<|| A || .

4.5

Calculul valorilor i vectorilor proprii

Calculul valorilor proprii se realizeaz prin inspecia blocurilor diagonale ale formei canonice Schur, coninut n matricea rezultat S (a se revedea Figura 4.4). Astfel: dac s i +1,i = 0 , atunci pe diagonala principal a formei canonice Schur este un bloc de ordinul nti, care coincide cu o valoare proprie a sa:: i = s i ,i ;

dac s i +1,i 0 , atunci este un bloc de ordin doi, M i , i rezolvnd ecuaia:


det( I 2 M i ) = 0 ,

126

4.

Calculul valorilor i vectorilor proprii

vor rezulta valorile proprii complex conjugate i , i +1 . Astfel, dac s i ,i +1 s i ,i blocul de ordinul doi are forma general M i = , valorile s i +1,i s i +1,i +1 proprii complex conjugate rezult n urma rezolvrii ecuaiei algebrice de gradul al II-lea: 2 (s i ,i + s i +1,i +1 ) + (s i ,i s i +1,i +1 s i +1,i s i ,i +1 ) = 0. Inspecia formei canonice Schur se realizeaz asupra elementelor aflate pe prima sub-diagonal a matricei S, pentru i = 1,..., n 1 . Avnd calculate valorile proprii, vectorii proprii ai matricei S se pot calcula cu relaia: S r i = i r i , i = 1,..., n , unde r i este vectorul propriu al matricei S corespunztor valorii proprii i . Atunci: ~ x i = Q r i , i = 1,..., n ,

unde x i este vectorul propriu al matricei A corespunztor valorii proprii i , iar ~ Q este matricea ortogonal general de aducere a matricei iniiale A la forma canonic Schur. Se realizeaz, n cele ce urmeaz, notaiile:
X = [x 1 x i
x n ] ; R = [r 1 r i rn ] ,

i atunci se poate scrie c:

~ X =QR,

relaie care se numete factorizare cvasi-QR a matricei vectorilor proprii X, vectori corespunztori matricei A. R este o matrice cvasi-superior triunghiular. n practic, ns, se folosesc cu succes drept vectori proprii ai matricei A, ~ vectorii Schur ai si, anume vectorii coloan ai matricei Q : ~ Q = [~ q ~ q ~ q ]. || ~ q i || 2 2 = 1, i = 1,..., n , deci sunt vectori ortonormali. Vectorii ~ q i , i = 1,..., n au proprietatea c sunt ortogonali i, n plus,
1 i n

Dac i = s ii ( s i +1,i = 0 ), atunci vectorului propriu corespunztor, x i , i ~ se asociaz coloana i a matricei Q , care este de fapt vectorul Schur asociat valorii proprii i . Dac i , i +1 C ( s i +1,i 0 ), atunci vectorilor proprii x i , x i +1 corespunztori acestor valori proprii (complex conjugate), li se asociaz vectorii

4.5

Calculul valorilor i vectorilor proprii

127

complex conjugai ~ qi + j ~ q i +1 , respectiv ~ qi j ~ q i +1 , unde j 2 = 1 , iar ~ ~ qi, ~ q i +1 sunt coloanele matricei Q din poziiile i i i + 1 .

Capitolul 5 DESCOMPUNEREA VALORILOR SINGULARE

5.1

Formularea problemei

Se consider o matrice A mn i fie p = min{m, n} . Se noteaz cu r rangul matricei A. Acesta satisface la relaia: r p . Dac r < p , se spune c matricea este deficient de rang, iar dac r = p , atunci se spune c matricea este de rang complet. Teorem:
~ Oricare ar fi matricea A mn , exist dou matrice ortogonale U mm ~ i V nn , astfel nct: ~ ~ ~ ~ (5.1) U T A V = sau A = U V T ,

unde mn este o matrice pseudo-diagonal, elementele nenule ale acesteia satisfcnd relaia:

= diag{1 , , p }, 1 2 p 0 .
Definiie:

(5.2)

Numerele 1 , , p + (relaiile (5.1) i (5.2)) se numesc valori singulare ale matricei A. Matricea mn (relaia (5.1)) se numete forma canonic pseudodiagonal a matricei A. A doua expresie din (5.1) se numete descompunerea valorilor singulare a matricei A..

Demonstraia teoremei constituie nsui algoritmul de descompunere a valorilor singulare care va fi prezentat ntr-un subcapitol urmtor. Teorema arat c orice matrice este ortogonal echivalent bilateral cu o matrice pseudodiagonal. Detaliind structura matricei mn , pot apare urmtoarele situaii: a.)

m n i rang(A) = r = p = n . n acest caz, matricea are structura:

138

5.

Descompunerea valorilor singulare

1 = , 1 = diag{1 , , n } , 0 ( m n )n iar dac rang( A ) = r < p , atunci matricea are forma: 1 = 0 ( m r )r b.) 0 r ( n r ) r r , 1 , 1 = diag{1 , , r } ; 0 ( m r )( n r )

m < n i rang(A) = r = p = m . n acest caz, matricea are structura:

= [ 1 1 = 0 ( m r )r

0 m( n m ) ], 1 = diag{1 , , m } , 0 r ( n r ) r r , 1 , 1 = diag{1 , , r } . 0 ( m r )( n r )

iar dac rang( A ) = r < p , atunci matricea are forma:

n general, valorile singulare pot fi dispuse n ordine descresctoare pe diagonala principal a formei canonice pseudodiagonale, satisfcnd relaia: 1 2 r > 0, r +1 = = p = 0 . Din cele prezentate, rezult c rangul matricei A este egal cu rangul matricei mn , care este egal cu r. Altfel spus, rangul acestor matrice este egal cu numrul valorilor singulare nenule. Relaia (5.1) se poate scrie i sub forma: ~ ~ (5.3) AV = U. ~ v i vectorii coloan ai matricei V i cu ~ u i vectorii coloan ai Notnd cu ~ ~ matricei U , atunci relaia (5.3) se mai poate scrie sub forma:
T T A~ v i = i ~ ui ~ u i A = i ~ v i , i = 1,..., p .

Definiie:
~ Coloanele matricei V se numesc vectori singulari la dreapta ai matricei A, ~ iar coloanele matricei U se numesc vectori singulari la stnga ai matricei A.

n cele ce urmeaz se enun o serie de proprieti ale valorilor singulare: P1. valorile singulare ale matricei A sunt egale cu rdcina ptratic pozitiv a valorilor proprii ale matricei A T A :

5.1

Formularea problemei

139

i (A) = + i ( A T A) , i = 1,..., n ; P2. dac A nn este o matrice simetric i pozitiv semidefinit, atunci valorile proprii ale matricei A sunt reale, pozitive, iar valorile singulare ale matricei A sunt egale cu valorile ei proprii: i ( A ) = i ( A ), i = 1,..., n . Vectorii proprii ai matricei A sunt, n acest caz, egali cu vectorii singulari la dreapta ai matricei A: x i ( A) = ~ v i (A), i = 1,..., n ; descompunerea valorilor singulare are urmtoarea interpretare geometric: valorile singulare ale unei matrice A sunt excat semiaxele unui hiperelipsoid definit de: E = {A x , || x || 2 = 1} .

P3.

Exemplul 5.1:

Se consider A 22 . Mulimea punctelor aflate pe cercul de raz egal cu 1 (care reprezint mulimea vectorilor din 21 cu norma euclidian egal cu 1) este transformat n mulimea punctelor aflate pe o elips ale crei semiaxe sunt egale cu valorile singulare ale operatorului matricial A, care realizeaz proiecia (a se vedea Figura 5.1). Punctele de pe elips reprezint mulimea vectorilor din 21 descrii de relaia y = A x, || x || 2 = 1 .
x2 y = Ax x1 2 y2 1 y1

||x||2 = 1

E = {Ax / ||x||2 = 1

Fig. 5.1. Interpretarea geometric a valorilor singulare ale unei matrice P4.
~ scriind matricele U ~ U = [~ u1 ~ ~ V = [v
1

~ i V sub forma: ~ ~ ur u r +1 ~ ~ vr v r +1

~ ~ u m ] = [U1 ~ ~ v ] = [V
n 1

~ U2 ] , ~ V2 ] ,

atunci relaia (5.1) mai poate fi scris sub forma:

140

5.

Descompunerea valorilor singulare

~ 1 0 r( n r ) V1T ~ ~ ~ ~ A = U V T = [U1 U2 ] . ~ T 0 ( m r )r 0 ( m r ) ( n r ) V2 Efectund calculele, relaia (5.4) devine: r ~ ~ T A = U 1 V1T = i ~ ui ~ vi ;


i =1

(5.4)

P5.

~ primele r coloane ale matricei U , unde r = rang(A ) , formeaz o baz

ortogonal pentru subspaiul imagine al matricei A:

Im(A) = {y / y = A x , x n1 },
T y = Ax = ~ u i ( i ~ v i x) = i ~ ui i =1 i =1 r r

P6.

~ ultimele n r coloane ale matricei V formeaz o baz ortogonal pentru subspaiul nul al matricei A: N ( A ) = {x / A x = 0 m , x n1 } , ~ ~ ~ ~ ~ ~ A V = U A [V1 V2 ] = [ U 1 U2 ] . ~ ~ ~ A V1 = U1 1 , A V2 = 0 m( n r )

Din relaiile scrise mai sus i formele pe care le poate lua matricea , ~ rezult c ultimele n r coloane ale matricei V pot constitui o baz pentru N(A) . Subspaiul nul astfel determinat conine doar vectorul 0 n numai dac matricea A este de rang complet i m > n .

5.2

Norma matricial euclidian i numrul de condiie

Norma euclidian a unei matrice A mn este definit ca fiind:

|| A x || 2 || A || 2 = max , n 1 x || x || 2 x 0
n

iar numrul de condiie al matricei A, folosind norma euclidian, este:

|| A x || 2 || A x || 2 k 2 (A) = max / min . n 1 n 1 x || x || 2 x || x || 2 x 0 x 0


n n

innd cont de relaia (5.1), norma euclidian a vectorului A x este:

5.2

Norma matricial euclidian i numrul de condiie

141

~ ~ ~ ~ || A x || 2 =|| U V T x || 2 =|| U y || 2 =|| U z || 2 ,

(5.5)

~ n care s-a notat cu y produsul V T x i cu z produsul y . innd cont de ~ faptul c U este o matrice ortogonal, atunci relaia (5.5) devine: ~ || A x || 2 =|| U z || 2 =|| z || 2 =|| y || 2 . (5.6)
~ Pe de alt parte, innd cont de faptul c V este o matrice ortogonal, norma euclidian a vectorului x este egal cu: ~ || x || 2 =|| V T x || 2 =|| y || 2 . (5.7)

Cum = diag{1 , , p } , atunci relaia (5.6) devine:


2 2 2 || A x || 2 =|| y || 2 = 1 y1 + + 2 p yp .

(5.8)

innd cont de relaia 1 2 p 0 , se definesc mrimile:


max = 1 i min = p . Ca urmare, minornd i majornd expresia (5.8), se

obine:
2 2 2 p || y || 2 1 y1 + + 2 p y p 1 || y || 2 .

(5.9)

Folosind relaiile (5.7) i (5.9), precum i relaiile de definiie pentru norma matricial euclidian i pentru numrul de condiie al unei matrice, se obin expresiile: x 0 n || x || 2 0 min = p || A x || 2 / || x || 2 1 = max ,
|| A || 2 = 1 = max i k 2 (A ) = 1 / p = max / min .

tiind c sunt ndeplinite relaiile: k 2 (A) =|| A || 2 || A 1 || 2 , || A || 2 = 1 , k 2 (A) = 1 / p , atunci se poate calcula norma euclidian a matricei A 1 astfel: 1 1 . || A 1 || 2 = = p min Studiile efectuate au artat c norma euclidian matricial reprezint cea mai mic valoare dintre toate normele matriciale uzuale. Pe de alt parte, abordrile care calculeaz numrul de condiie al unei matrice se bazeaz pe determinarea unui estimant al cantitii || A 1 || 2 i, astfel, ansa de eroare n estimarea numrului de condiie este mai mare. Abordarea bazat pe descompunerea valorilor singulare furnizeaz, din acest punct de vedere, cel mai sigur rezultat referitor la numrul de condiie al unei matrice, valorile max i min rezultnd direct din calculul numeric al descompunerii.

142

5.

Descompunerea valorilor singulare

n plus, dac rang( A ) = r < p , unde p = min{m, n} , atunci p = 0 i rezult


k 2 ( A ) = , ceea ce nseamn c matricea A este o prost condiionat

(deficient de rang). Alt rezultat se refer la norma Forbenius a unei matrice A, definit ca fiind: || A || F =
2 a ij i =1 j=1 m n

~ ~ Matricele U i V fiind matrice ortogonale, acestea pstreaz norma Frobenius i atunci: ~ ~ 2 || A || F =|| U A V T || F = 1 + + 2 p .

5.3

Algoritmul SVD

Algoritmul SVD (SVD este abrevierea consacrat din limba englez de la Singular Value Decomposition; n traducere: descompunerea valorilor singulare) const n construirea unui ir de matrice ortogonal echivalente bilateral, ir convergent ctre forma canonic pseudo-diagonal a unei matrice. Se consider matricea A mn . Algoritmul SVD se bazeaz pe faptul c: i (A) = + i (A T A) , cum s-a prezentat n subcapitolul 5.1. ns nu se calculeaz matricea A T A i apoi valorile ei proprii, deoarece procesul de calcul ar putea fi afectat de erori de rotunjire care s depeasc limite acceptabile, att timp ct matricea A T A este prost condiionat, n general. Principiul de calcul este de a aplica mascat, anume direct asupra matricei A, algoritmul QR pentru obinerea formei canonice Schur a matricei B = A T A . Altfel spus, se aplic matricei iniiale A, transformrile corespunztoare celor care s-ar aplica matricei B n cadrul algoritmului QR de aducere la forma canonic Schur. Masca este dat de corespondena: A B = A T A, B = B T , B n n . n cele ce urmeaz, fr a restrnge generalitatea, se face presupunerea c m > n . Algoritmul comport dou faze, dup cum este descris n continuare. Faza I-a este una pregtitoare, de aducere a matricei A la forma superior bidiagonal, cum este prezentat principial n Figura 5.2.

5.3

Algoritmul SVD

143

L1 A= Lk Ln-2 J=

0 0

c1

ck

cn

Fig. 5.2. Algoritmul descompunerii valorilor singulare: faza I-a n aceast faz, se folosesc reflectori Householder, att pentru coloane ct i pe linii. Reflectorii care acioneaz pe coloane au rolul de a anula elementele situate sub diagonala principal a matricei A, iar cei care acioneaz pe linii au rolul de a zeroriza elementele aflate deasupra primei supradiagonale: U k mm , k = 1,..., n sunt reflectori de ordin m i indice k care acioneaz pe coloane; Vk +1 nn , k = 1,..., n 2 sunt reflectori de ordin n i indice k + 1 care acioneaz pe linii. Tabloul general al transformrilor aplicate matricei A este urmtorul :
U n U k U 1 A V2 Vk +1 Vn 1 = J .

Facnd urmtoarele notaii:


U = U n U k U 1 , V = V2 Vk +1 Vn 1 ,

se obine:
UAV = J.

(5.10)

Observaie: Dac s-ar fi aplicat algoritmul QR, de aducere la forma canonic Schur, asupra matricei B = A T A , matrice care teoretic este simetric, atunci dup prima faz de lucru s-ar fi obinut:
U n 1 U 2 B U 2 U n 1 = H ,

unde H este forma superior Hessenberg corespunztoare matricei B. n acest caz, matricea H rezult o matrice tridiagonal, ntre ea i matricea J obinut la finalul primei faze a algoritmului SVD putnd fi scris relaia:
H = JT J .

144

5.

Descompunerea valorilor singulare

Faza a II-a const ntr-o procedur iterativ, de construcie a unui ir de matrice ortogonal echivalente bilateral, convergent ctre forma canonic pseudo-diagonal a matricei A. n cadrul acestei faze, se urmrete zerorizarea elementelor de pe prima supradiagonal a formei superior bidiagonale J, obinut la sfritul primei faze de lucru, aa cum este prezentat principial n Figura 5.3.

0
J= =

0 0 0

Fig. 5.3. Algoritmul descompunerii valorilor singulare: faza a II-a Astfel, se regsesc cele apte etape de la algoritmul QR cu deplasare explicit, algoritm prezentat n cadrul capitolului 4, dup cum urmeaz. Etapa 1 const n determinarea deplasrii . n cadrul algoritmului QR de aducere la forma canonic Schur, transformrile ortogonale de asemnare s-ar fi aplicat, n cadrul fazei a doua, asupra matricei H, iar deplasarea s-ar fi ales de forma: = h n ,n . n cazul de fa, H = J T J i atunci se alege:
2 = h n ,n = j2 J = [ ji ,k ]1i m . n 1, n + j n , n , 1 k n

n cadrul etapei 2, se scade deplasarea din elementele de pe diagonala principal a matricei J, cu scopul mririi vitezei de convergen a algoritmului: atribuie ji ,i ji,i , i = 1,..., n . Etapele 3 i 4 urmresc zerorizarea elementelor supradiagonalei matricei J rezultate: ji ,i +1 = 0, i = 1,..., n 1 . Pentru aceasta se folosesc matrice de rotaie plan Givens, similar algoritmului QR pentru calculul formei canonice Schur. Principial, au loc transformrile:
j i ,i 0 ji,i +1 ji +1,i +1 ji' ,i ' ji +1,i 0 ji' +1,i +1 j" i ,i 0 j" i ,i +1 " ji +1,i +1

Pi J

i ( JPi ) R

Matricea Pi este o matrice de rotaie plan Givens de forma:

5.3

Algoritmul SVD

145

I i 1 01(i 1) Pi = 01(i 1) 0 ( n i 1)(i 1)

0 (i 1)1 ci di 0 ( n i 1)1

0 (i 1)1
di

ci 0 ( n i 1)1

0 (i 1)( n i 1) 01( n i 1) nn , 01( n i 1) I n i 1

2 2 c i = jii / jii + ji2,i +1 , d i = ji ,i +1 / jii + ji2,i +1 .

Matricea R i este o matrice de rotaie plan Givens de forma: I i 1 01(i 1) Ri = 01(i 1) 0 ( m i 1)(i 1) 0 (i 1)1 ai bi 0 ( m i 1)1 0 (i 1)1 bi ai 0 ( m i 1)1 0 (i 1)( m i 1) 01( m i 1) m m , 01( m i 1) I m i 1

' 2 ' 2 a i = ji' ,i / ( jii ) + ( ji' ,i +1 ) 2 , b i = ji' ,i +1 / ( jii ) + ( ji' ,i +1 ) 2 .

n final se obine | j" i ,i +1 |<| j i ,i +1 | . Aceasta nseamn c, n urma transformrilor aplicate n cadrul unei iteraii a alogoritmului, nu se zerorizeaz elementul de pe supradiagonal, dar se obine o valoare mai mic n modul dect a fost anterior. Aceasta se obine deoarece forma superior Hessenberg este invariant la algoritmul QR de obinere a formei canonice Schur. n cadrul etapei 5 se reface deplasarea pe diagonala principal a matricei J, pentru a nu altera forma canonic pseudo-diagonal: atribuie ji ,i ji,i + , i = 1,..., n . Etapa 6 const n corecia elementelor de pe supradiagonal. Aceste elemente se micoreaz n modul dup parcurgerea etapelor 2 i 3 i este posibil ns, datorit erorilor de rotunjire, ca ele s nu rezulte nule ci foarte mici n modul. Ca urmare, se aplic urmtorul test:
" " dac | j" i ,i +1 |< (| j i ,i | + | j i +1,i +1 |) atunci

atribuie j" i ,i +1 0

146

5.

Descompunerea valorilor singulare

Parametrul caracterizeaz precizia descompunerii. n cadrul etapei 7 se realizeaz un test asupra matricei J pentru a vedea dac aceasta este n forma canonic pseudo-diagonal: dac ( i {1,..., n 1} pentru care ji,i +1 0 ) atunci
* J nu este n forma canonic pseudo-diagonal * reluare de la Etapa 1 altfel atribuie J * stop algoritm

Tabloul general al transformrilor efectuate n faza a II-a este:


[ ] ] [1] [1] [1] [ ] [] [R [n]1 R 1 ] [R [n1 Pn 1 R 1 ] J [ P1 Pn 1 ] [ P1 1 ] = .

n relaia anterioar, [] reprezint numrul iteraiei n care s-a obinut forma canonic pseudo-diagonal, cu precizia . Notnd cu R produsul de matrice care nmulete la stnga matricea J i cu P produsul de matrice care nmulete la dreapta matricea J, se obine: R J P = . ~ ~ Cele dou matrice, U i V , se obin multiplicnd matricele de transformare care se aplic asupra matricei iniiale A, n cele dou faze ale algoritmului SVD:
R UAVP = . ~ ~ Matricele U i V sunt urmtoarele: ~ ~ U T = R U i V = V P , i atunci relaia (5.11) se scrie: ~ ~ UT A V = .

(5.11)

Ordonarea descresctoare a elementelor de pe pseudo-diagonala matricei se realizeaz prin permutri adecvate de linii i coloane. Astfel, permutrile de ~ coloane n matricea vor determina permutri de coloane n matricea V . Permutrile de linii n matricea vor determina permutri de linii n matricea ~ ~ U T sau, altfel spus, permutri de coloane n matricea U .

5.4

Aplicaii ale descompunerii valorilor singulare

Fie matricea A mn i fie q = min{m, n} , r = rang(A ) . Rezultatul algoritmului de descompunere a valorilor singulare (SVD) este aducerea matricei A la forma canonic pseudo-diagonal. n urma calculelor efectuate,

5.4

Aplicaii ale descompunerii valorilor singulare

147

ca fiind un aproximant pentru forma canonic pseudorezult matricea . diagonal exact a matricei A: Se demonstreaz c, n urma aplicrii algoritmului SVD, valorile singulare i , i = 1,..., q i valorile singulare exacte i , i = 1,..., q sunt n relaia: calculate i i |< ' . Mrimea ' reflect erorile de reprezentare ale datelor iniiale | (matricea A), precum i erorile de calcul n virgul mobil. Aceast mrime poate fi calculat ca o funcie de dimensiunea matricei A i de precizia m a mainii. , au condus la concluzia Studiile referitoare la precizia matricei calculate, c aceast matrice coincide cu forma canonic pseudo-diagonal exact a =A+E: matricei A uor perturbat, A A A + E , || E || 2 <<|| A || 2 . Ca urmare, datorit transformrilor ortogonale folosite, valorile singulare obinute sunt puin sensibile la perturbaii. Altfel spus, valorile singulare sunt bine condiionate n raport cu perturbaiile care afecteaz matricea A, anume erorile de reprezentare i erorile datorate calculului n virgul mobil. Principalele aplicaii ale descompunerii valorilor singulare sunt: a) calculul rangului unei matrice; b) rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate generalizate; c) rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate totale. Acestea vor fi prezentate n cele ce urmeaz.
5.4.1 Calculul rangului unei matrice

n urma aplicrii algoritmului SVD asupra matricei A, se obin valorile 1 2 q 0. singulare ale acesteia: Definiie:
, al matricei A, acel index Se numete rang efectiv sau numeric, notat cu p pentru care are loc relaia de ordine: p p +1 , (5.12) ' > 1 1

ceea ce este echivalent cu:

148

5.

Descompunerea valorilor singulare

p 1 ' > p +1 .

(5.13)

Bibliotecile performante de programe consider mrimea ' ca fiind egal cu: ' = max{m, n} m , unde m reprezint precizia mainii de calcul. 1 ' se noteaz cu . Rezult, aadar: Mrimea 1 ' = max{m, n} m 1. = Folosind relaia (5.13), rezult urmtoarea relaie de ordine: 1 p p q 0. > +1
drept rang efectiv al matricei A, valorile Ca urmare, se consider indexul p + 1,..., q drept drept valori singulare nenule i i = 0, i = p i 0, i = 1,..., p

valori singulare nule. n acest fel, se corecteaz eventualele erori de reprezentare i de calcul n virgul mobil. n consecin, norma euclidian a matricei A este: max = 1, || A || 2 = iar numrul de condiie este: max / min = 1 / q. k 2 (A) =
= q , numrul de condiie este finit, iar dac p < q , atunci Astfel, dac p

numrul de condiie este infinit. n acest din urm caz, matricea A este o matrice prost condiionat.
Aplicaie:

Se subliniaz faptul c modalitatea prezentat pentru determinarea rangului unei matrice reprezint singurul procedeu sigur i eficient pentru calculul automat al acestei mrimi. Aceast problem are o deosebit importan n analiza i sinteza sistemelor automate, atunci cnd sunt investigate proprietile structurale de controlabilitate i observabilitate, pentru procese dinamice descrise prin modele bazate pe sisteme de ecuaii difereniale ordinare, cu condiii iniiale. Principial, aceste modele sunt introduse n capitolul 8 al acestei lucrri. Fr a intra n detalii care nu constituie obiectul crii de fa, doar se menioneaz aceast aplicaie. Astfel, investigarea proprietilor structurale menionate anterior necesit construirea unor matrice cu structur special, urmat de ctre calculul rangului efectiv al acestora. n acest sens, se recomand abordarea problemei propuse P5.9 aflat la finele acestui capitol.

5.4

Aplicaii ale descompunerii valorilor singulare

149

5.4.2 Rezolvarea sistemelor de ecuaii algebrice liniare n sensul celor mai mici ptrate generalizate

Fie sistemul de ecuaii: A x = b, A mn , b m1 , x n1 , (5.14)

n care vectorul x trebuie determinat, cunoscnd matricea sistemului A i termenul liber b . Dac A este o matrice de rang complet, atunci sistemul are o pseudosoluie n sensul celor maii mici ptrate: soluia este unic pentru m n i exist o infinitate de pseudosoluii dac m < n . Dac A este o matrice deficient de rang, atunci exist o infinitate de * pseudosoluii. Pentru m n se poate determina pseudosoluia de baz x B apelndu-se la triangularizarea ortogonal a matricei A i pivotarea de coloane. Pentru cazul n care m < n , se pot alege p = rang( A) ecuaii liniar independente, existnd o infinitate de soluii. Aceste aspecte au fost detaliate, corespunztor, n capitolul 3 al prezentei lucrri. Descompunerea valorilor singulare ofer posibilitatea determinrii unei pseudosoluii unice, n sensul celor mai mici ptrate (generalizate), indiferent * de rangul matricei A. Aceast pseusosoluie se noteaz cu x SVD i este caracterizat de urmtoarele proprieti: minimizeaz norma euclidian a reziduului:

r = b A x x = arg min {|| r || 2 2} ; n 1


x

(5.15)

dac exist o infinitate de pseudosoluii care satisfac (5.15), atunci se * alege x SVD ca fiind pseudosoluia cu norma euclidian minim:

|| x SVD || 2 = *min {|| x || 2 } . n 1


x

Aceasta se numete pseudosoluie normal sau pseudosoluie n sensul celor * * mai mici ptrate generalizate. Se demonstreaz c || x SVD || 2 || x B || 2 . Teorem:
Oricare ar fi matricea A mn i vectorul b m1 , problema (5.14) are o soluie unic, aceasta fiind pseudosoluia normal obinut pe baza descompunerii valorilor singulare. * Aceast pseudosoluie se scrie: x SVD = A + b, A + nm , unde A + se

numete pseudoinvers normal (Moore-Penrose) i este egal cu:

150

5.

Descompunerea valorilor singulare

T p ~ v ~ u ~ 1 ~ T U1 = i i . A + = V1 1 i i =1

Ca urmare, pseudosoluia este:


T p ~ vi ~ ui b. = i =1 i Demonstraia teoremei pornete de la ecuaia (5.14) care este nmulit la ~ stnga cu matricea U T din descompunerea valorilor singulare a matricei A. n ~ ~ plus, se insereaz produsul V V T = I n , rezultnd: * x SVD

~ ~ Dar U T A V = i atunci ecuaia (5.16) devine:

~ ~ ~ ~ UT A V VT x = UT b .

(5.16) (5.17)

y=d, ~T ~T unde y = V x i d = U b . Matricea are forma general: 1 = 0 ( m p )p

0 p ( n p ) p p , 1 , 1 = diag{1 , , p } . 0 ( m p )( n p )

Scriind

vectorul

y 1 ~ ~T x ( n p )1 y = , y1 = V1T x p1 , y 2 = V2 y 2

d1 ~T ~T ( m p )1 p1 vectorul d = , atunci ecuaia , d 1 = U 1 b , d 2 = U 2 b d 2 (5.17) devine:

1 0 ( m p )p

0 p( n p ) y1 d 1 1 y1 d 1 ( n p )1 . = , y 2 = d 0 d 0 ( m p )( n p ) 2 ( m p )1 2 y 2

Pseudosoluia n sensul celor mai mici ptrate se obine minimiznd norma ~ euclidian a reziduuluui. Astfel, innd cont de faptul c matricea U este ortogonal i, n consecin, pstreaz norma euclidian vectorial, se obine: ~T ~T ~T ~T ~ ~T 2 2 2 || r || 2 2 =|| U r || 2 =|| U ( b A x ) || 2 =|| U b U A V V x || 2
2 2 =|| d y || 2 2 =|| d 1 1 y 1 || 2 + || d 2 || 2 .

5.4

Aplicaii ale descompunerii valorilor singulare

151

n general d 2 0 m p , deci || d 2 || 2 2 0 i atunci singura minimizare posibil este:


1 y1 = d 1 . * 1 1 ~ T Din ecuaia (5.18) se obine soluia: y1 = 1 d 1 = 1 U b.

|| d 1 1 y1 || 2 d 1 1 y1 = 0 p 2=0

(5.18)

Dar, conform notaiilor fcute anterior, se obine: y* 1 ~T ~ ~ * * V x = y x = V y = V , y 2 ( n p )1 . y 2 Aadar, exist o infinitate de pseudosoluii care minimizeaz mrimea || r || 2 2. Un criteriu de alegere a unei pseudosoluii unice este acela ca || x || 2 2 = minim. ~ innd cont c matricea V este ortogonal, se obine: ~T * 2 * * 2 * 2 2 || x || 2 2 =|| V x || 2 =|| y || 2 =|| y 1 || 2 + || y 2 || 2 . * 1 ~ T n general, y1 = 1 U b 0 p i atunci singura minimizare posibil este || y 2 || 2 2 = 0 , adic y 2 = 0 n p . Atunci pseudosoluia normal este: 1 ~ T 1 U1 b ~ ~ * ~ ~ * 1 ~ T x SVD = V y SVD = [V1 V2 ] = V1 1 U 1 b = 0 n p
T ~ vi ~ ui = i i =1 p
* * *

b.

Definiie:
Oricare ar fi matricea A mn , matricea X nm se numete pseudoinvers Moore-Penrose dac satisface urmtoarele condiii: (i) AXA =A ; (ii) XAX =X ; (iii) A X este o matrice simetric; (iv) X A este o matrice simetric.

Observaii: 1. Dac A este o matrice de rang complet i m = n , atunci X = A 1 . 2. Dac A este o matrice de rang complet i m > n , atunci X = X L se numete pseudoinvers la stnga: X L A = I n , X L = (A T A) 1 A T .

152

5.

Descompunerea valorilor singulare

3. Dac A este o matrice de rang complet i m < n , atunci X = X R se numete pseudoinvers la dreapta: A X R = I m , X R = A T ( A A T ) 1 . 4. Dac A este o matrice deficient de rang, atunci X este pseudoinversa Moore-Penrose: T p ~ v ~ u ~ 1 ~ T X = A + = V1 1 U1 = i i . i i =1 n acest ultim caz sunt ndeplinite condiiile (ii) (iv) din definiia anterioar, condiia (i) devenind: || A X A A || 2 ' , n care ' este mrimea care caracterizeaz calitatea descompunerii valorilor singulare, cum este prezentat n paragraful anterior. Pentru rezolvarea sistemelor de ecuaii algebrice n sensul celor mai mici ptrate, se poate formula urmtoarea interpretare general. Fie sistemul: A x = b , n care matricea A este matricea de date i b este vectorul de observaii. Pseudosoluia n sensul celor mai mici ptrate a acestui sistem se obine minimiznd norma euclidian la ptrat a reziduului asociat: || r || 2 2. Aceasta nseamn c, de fapt, sistemul de ecuaii exact care se rezolv este: A x + r = b . Notnd e = r se obine: A x + e = b , unde vectorul e este numit eroare de ecuaie, acest vector urmrindu-se a se minimiza n norm euclidian. O astfel de abordare caracterizeaz clasa metodelor care gsesc soluia x pe baza erorii de ecuaie, metode care intervin n identificarea sistemelor dinamice (a se vedea Exemplul 3.1). Aadar, se poate scrie: A x = b e . Notnd b = e , atunci se obine: A x = b + b . n concluzie, soluia n sensul celor mai mici ptrate x CMMP se determin minimiznd mrimea || b || 2 2 . Aceasta reprezint, de fapt, funcia criteriu: J CMMP =|| b || 2 2. Altfel spus, matricea A i termenul liber b conin date achiziionate n urma
unor experimente. Soluia n sensul celor mai mici ptrate se gsete minimiznd suma ptratelor perturbaiilor (abaterilor) n vectorul observaiilor b , considernd implicit c matricea de date A este exact. Exemplul 5.2:
*

Se prezint o ilustrare geometric intuitiv pentru cazul n = 1 . Astfel, avnd setul de date (a i , b i ) i =1,...,m , se gsete necunoscuta x astfel nct irul de date s fie aproximat de ctre dreapta din plan: b = x a . Pseudosoluia gsit x * CMMP

5.4

Aplicaii ale descompunerii valorilor singulare

153

definete, astfel, dreapta care aproximeaz n sensul celor mai mici ptrate setul de date experimentale (a i , b i ) i =1,...,m , aa cum este artat n Figura 5.4.

J CMMP = e i2 = min
i

e = b
2 i

2 i

~ b i + b i = b i ~ bi

(ai, bi) ei
~ ai = a i

b = ax tg () = x = ?

Fig. 5.4. Aproximarea n sensul CMMP: minimizarea sumei ptratelor abaterilor pe vertical Mai mult, se poate realiza o interpretare geometric generalizat, aa cum este ilustrat n Figura 5.5.

r b

a2 Im(A) a1

Ax = b A = [a 1 a 2 ] b Im(A) A x = b
* * *

Fig. 5.5. Interpretare geometric generalizat a aproximrii n sensul CMMP

154

5.

Descompunerea valorilor singulare

Astfel, metoda celor mai mici ptrate conduce la o soluie care verific, n fapt, ecuaia: * * Ax =b . (5.19) Metoda ncearc s gseasc cea mai bun aproximaie b a vectorului b , care s verifice ecuaia (5.19). Aceasta se ntmpl dac i numai dac b Im(A ) , b fiind proiecia vectorului b pe subspaiul imagine al matricei A. Concluzia final care se desprinde este aceea c soluia n sensul celor mai mici ptrate este gsit prin proiectarea termenului liber b pe subspaiul imagine Im(A ) i apoi se rezolv sistemul compatibil (5.19). Aici, vectorul b este o combinaie liniar de coloanele (liniar independente ale) matricei A.
* * * *

Capitolul 6 ECUAII I SISTEME DE ECUAII ALGEBRICE NELINIARE

6.1

Formularea problemei
f ( x ) = 0 n , f : D 1 D 2 , D 1 , D 2 n1 (C n1 ) ,

Se consider ecuaia vectorial: (6.1)

n care x = [ x 1 x n ] T , f ( x ) = [f 1 ( x 1 ,..., x n ) f n ( x 1 ,..., x n )] T .

Problema const n determinarea uneia sau a mai multor soluii ale ecuaiei (6.1). Se noteaz cu o astfel de soluie: = [ 1 n ] T , f ( ) = 0 n . Funciile f i ( x ), i = 1,..., n sunt, n general, o compunere de funcii elementare n argumentele x i , i = 1,..., n , funcii de tip polinomial, trigonometric sau transcendent (exponeniale, logaritmi). n continuare, se folosete pentru acest tip de problem, termenul de funcie sau ecuaie neliniar. Dac n = 1, atunci relaia (6.1) se reduce la o ecuaie neliniar: f ( x ) = 0 , n care f este o funcie scalar, neliniar. Dac n 2 , atunci relaia (6.1) reprezint un sistem de ecuaii neliniare. Un numr considerabil de modele matematice asociate fenomenelor fizice din lumea nconjurtoare se reduc, n anumite condiii, la o ecuaie neliniar de tipul (6.1).
Exemplul 6.1:

Se consider un sistem dinamic a crui comportare este descris de modelul neliniar, continuu de timp:
dx 1 ( t ) / dt = b x 1 ( t ) x 2 ( t ) + (1 / Q) u ( t ) = f 1 ( x 1 ( t ), x 2 ( t ), x 3 ( t ), u ( t )) dx 2 ( t ) / dt = b x 1 ( t ) x 2 ( t ) b x 2 ( t ) x 3 ( t ) = f 2 ( x 1 ( t ), x 2 ( t ), x 3 ( t ), u ( t )) , dx ( t ) / dt = b x ( t ) x ( t ) b x ( t ) H = f ( x ( t ), x ( t ), x ( t ), u ( t )) 2 3 3 3 1 2 3 3

unde t , b, Q, H , t 0 fiind variabila timp. Se consider u ( t ) drept mrime de intrare, cunoscut. Se consider x 1 ( t ) , x 2 ( t ) i x 3 ( t ) drept mrimi de ieire, satisfcnd la relaia de ordine: x 1 ( t ) > x 2 ( t ) > x 3 ( t ) . Acest model se

180

6.

Ecuaii i sisteme de ecuaii neliniare

scrie sub form vectorial: d x ( t ) / dt = f ( x ( t ), u ( t )), x ( t ) = [ x 1 ( t ) x 2 ( t ) x 3 ( t )] T . Se consider c la momentul t 0 = 0 sistemul este n stare iniial: (6.2)

x(t 0 ) = 0 3 .

(6.3)

Aplicndu-se un semnal de tip treapt la intrarea sistemului, u ( t ) = U = constant , t > 0 , dup un anumit interval de timp, cele trei mrimi de ieire au valori nemodificate, ceea ce nseamn c s-a atins regimul staionar de funcionare. Ecuaia diferenial (6.2) cu condiia iniial (6.3) devine:
f ( x s , U ) = 0 3 , x s = [ x 1,s x 2 ,s x 3, s ] T .

(6.4)

Pentru a determina punctul de echilibru x s , se rezolv sistemul de ecuaii neliniare de ordinul trei, (6.4), de tipul (6.1), n care componentele f i ( x ), i = 1, 2, 3 sunt obinute din (6.2), unde se nlocuiete u ( t ) cu mrimea constant U. Metodele numerice pentru rezolvarea problemei (6.1) sunt, n general, metode iterative. Acestea pornesc de la un punct de start: [ 0] [0] x = [x1 x [n0 ] ]T , care se recomand a fi ntr-o vecintate a soluiei : V = {x D1 / || x || p h , h > 0} D1 , unde || || p reprezint notaia pentru o norm vectorial uzual p. n continuare, se construiete un ir de aproximaii, convergent ctre soluia adevrat a ecuaiei: [k ] [k ] [k] {x }k 0 , lim x = sau lim || x || p = 0 .
k k

Definiie: Se numete formul de iterare sau ir de iterare (de rang k i ordin m) o relaie de recuren de forma:

[k]

= g(k, x

[ k 1]

,x

[ k 2]

,, x

[ k m]

), x

[ 0]

V , 1 m k .

(6.5)

n general, funcia g este neliniar. Aceasta depinde de funcia f din ecuaia (6.1), depinde n mod explicit de rangul k al termenilor din ir i de m estimaii anterioare ale soluiei. Dac funcia g nu depinde n mod explicit de rangul k al termenilor din ir, atunci relaia (6.5) se numete formul de iterare staionar de ordinul m. Uzuale sunt metodele iterative care folosesc formule staionare de ordin m = 1 :

6.1

Formularea problemei

181

x
Propoziie:

[k ]

= g( x

[ k 1]

).

(6.6)

O metod iterativ de tipul (6.6) se spune c este convergent pe domeniul V , dac oricare ar fi x , y V , exist (0,1) astfel nct, ntr-o norm vectorial oarecare p, aplicaia g ndeplinete relaia:

|| g( x ) g( y) || p || x y || p . Altfel spus, aplicaia g este o contracie pe domeniul V . Ca urmare, pentru rezolvarea problemei (6.1), trebuie determinate urmtoarele: o modalitate de alegere a funciei g , precum i o modalitate de alegere a punctului de start x , astfel nct irul de aproximaii dat de relaia (6.6) s fie convergent. Ca soluie general pentru acest tip de problem, de regul ecuaia (6.1) se rescrie sub forma: x = g( x ) , n sensul c f ( ) = 0 = g () . Altfel spus, soluia este un punct fix pentru aplicaia g . n general, modul de alegere a funciei g , convergena irului de iterare (6.6), existena i unicitatea soluiei calculate sunt garantate, n anumite condiii, de teorema de punct fix pentru funciile de tip contracie.
Convergena i precizia soluiei calculate n virgul mobil
[ 0]

n aritmetica virgulei mobilei trebuie s se reprezinte att vectorul [k] aproximant x , ct i valoarea funciei g n argumentul corespunztor. Aceasta face ca, de fapt, s se calculeze x
[k]

astfel:

x
unde e
[k]

[k]

= G(x

[ k 1]

), G ( x

[ k 1]

) = g( x

[ k 1]

)+e

[k]

(6.7)

reprezint eroarea de reprezentare n virgul mobil la iteraia [k].


[ k 1]

Aceasta cuprinde eroarea comis la reprezentarea aproximativ a lui x , erorile datorate evalurii aplicaiei g , precum i eroarea de reprezentare a rezultatului g( x
[ k 1]

) . Eroarea total este n general necunoscut, cel mult

182

6.

Ecuaii i sisteme de ecuaii neliniare

putndu-se estima un majorant al ei: || e

[k ]

|| p < .

Convergena irului (6.7) este greu de precizat, n general. Cel mult, n anumite condiii, se va obine o soluie aproximativ a ecuaiei (6.1), caracterizat de o anumit eroare impus, deci contientizat. Pentru a ilustra aceste concepte generale, n cele ce urmeaz se consider n = 1 , cazul unei ecuaii neliniare. n plus, se presupune c, pe un interval [a , b] , funcia f este o funcie de clas C1 [ a , b ] (continu i derivabil, cu derivat continu) i c pe acest interval funcia f i schimb semnul. Conform consecinei teoremei lui Rolle, rezult c exist un numr (a , b) astfel nct f () = 0 . La rezolvarea numeric a ecuaiei neliniare f ( x ) = 0 , pot apare urmtoarele situaii: a.)
Soluia adevrat nu aparine mulimii F, care reprezint sistemul de numere n virgul mobil. n acest caz, se afl ntre dou numere consecutive c1 , c 2 F . Astfel,

soluia adevrat nu va fi niciodat gsit de ctre metoda numeric i atunci ceea ce se poate realiza este gsirea unui interval [ ] [a b] , ct mai mic posibil, unde funcia f i schimb semnul. n practic, impunnd o anumit precizie asupra soluiei , se spune c irul iterativ (6.6) converge cu precizia x dac la un index al iterrii [s], este ndeplinit condiia: | x s x s 1 | x = x s ( x ) . b.)
Soluia adevrat aparine mulimii numerelor n virgul mobil F, dar datorit erorilor de calcul f () 0 . n aceast situaie, se accept soluia aproximativ x s , obinut la iteraia [s] cu eroarea f , dac | f ( x s ) | f .

De regul, cele dou criterii de stop se combin, parametrii x i f alegndu-se n funcie de natura aplicaiei i/sau de ordinul de mrime al preciziei mainii de calcul. n cazul rezolvrii numerice a unui sistem de ecuaii neliniare, se obine urmtorul criteriu general de stop al metodei iterative: impunnd x i f , se consider drept soluie a ecuaiei (6.1), = x , dac este ndeplinit condiia:
[s ]

|| x

[s ]

[ s 1]

|| p x sau || f ( x ) || p f .

[s ]

6.2

Rezolvarea ecuaiilor algebrice neliniare

6.2

Rezolvarea ecuaiilor algebrice neliniare

183

Se consider ecuaia algebric neliniar: f (x ) = 0 . (6.8) Fie o soluie exact a ecuaiei (6.8) i fie V o vecintate a acesteia: V = {x / | x | h , h > 0}, , h . Se prezint n cele ce urmeaz, cteva dintre cele mai reprezentative metode numerice de rezolvare a unei ecuaii algebrice neliniare.
6.2.1 Metoda iterrii

Ecuaia (6.8) se rescrie, prin rearanjare convenabil, sub forma: x = g( x ) .


Exemplul 6.2:

(6.9)

Se consider ecuaia: 3 x + sin( x ) = e x . Rezult: f ( x ) = 3 x + sin( x ) e x . Aceast funcie este continu i derivabil. n plus f (0) < 0 i f (1) > 0 . Rezult c n vecintatea [0, 1] funcia f se anuleaz. Ecuaia 3 x + sin( x ) = e x se poate rescrie sub una din formele: e x sin( x ) e x sin( x ) x= , deci g ( x ) = , 3 3 x = ln(3 x + sin( x )) , deci g( x ) = ln(3 x + sin( x )) . Revenind la cazul general, plecnd de la o estimaie iniial x 0 V , se obine un ir de aproximaii ale soluiei necunoscute , astfel: x 1 = g ( x 0 ) , x 2 = g ( x 1 ) , ... sau, n general:
x k +1 = g ( x k ), k = 0, 1, ...

(6.10)

n care x 0 V este cunoscut (precizat). Algoritmul care descrie metoda iterrii pentru rezolvarea ecuaiei neliniare (6.8) este urmtorul: * definete funciile f i g citete x , f citete x 0 atribuie x n x 0 atribuie flag 1 ct timp ( flag = 1 ) execut atribuie x v x n

184

6.

Ecuaii i sisteme de ecuaii neliniare

atribuie x n g ( x v ) dac ( | x n x v | x ) sau ( | f ( x n ) | f ) atunci atribuie flag 0 scrie soluie x = , x n scrie f(x) = , f ( x n )

n funcie de alegerea funciei g, acest algoritm poate avea viteze diferite de convergen sau, plecnd de la un punct de start din vecintatea unei soluii, algoritmul poate fi convergent ctre o alt soluie a ecuaiei neliniare sau poate fi divergent. O modalitate de a determina o vecintate a soluiei este reprezentarea grafic a funciei y = f ( x ) , pentru diverse intervale n care argumentul x poate lua valori. n acest caz, vecintatea unei soluii a ecuaiei neliniare (6.8) este reprezentat de un interval n care funcia f i schimb semnul (o singur dat). O alt modalitate de determinare a vecintii unei soluii se bazeaz pe reprezentarea grafic a funciilor y = x i y = g( x ) n acelai sistem de coordonate. n acest caz, vecintatea soluiei este reprezentat de un interval n care x ia valori, n care exist doar un punct de intersecie ntre cele dou grafice. Pentru a asigura convergena metodei iterrii, este necesar un criteriu de alegere a funciei g, deci a formulei de iterare. Se enun urmtoarea condiie suficient de convergen.
Propoziie: Fie ecuaia neliniar (6.8), rescris sub forma (6.9), care admite soluia . Fie V o vecintate a soluiei. Dac oricare ar fi x V este ndeplinit condiia:
| g ( x ) | c < 1 ,

(6.11)

atunci irul {x k } k 0 , x 0 V , definit de (6.10), converge ctre soluia pentru k .

Demonstraia acestui rezultat cuprinde urmtoarele elemente. Pentru nceput, se utilizeaz teorema Lagrange a valorii medii a derivatei unei funcii. Conform acesteia, exist un punct dintr-un interval (a , b) , peste care o funcie h este continu i derivabil, n care tangenta la graficul funciei y = h ( x ) este paralel cu dreapta determinat de punctele de coordonate (a , h (a )) i (b, h (b)) .

6.2

Rezolvarea ecuaiilor algebrice neliniare

185

Astfel, se consider ecuaia (6.8), rescris sub forma (6.9), i formula de iterare (6.10). Soluia ndeplinete condiia de punct fix pentru aplicaia g: = g( ) . Atunci, eroarea comis la iteraia [k + 1] este:

e k +1 = x k +1 = g( x k ) g () =

g ( x k ) g ( ) ( x k +1 ) . x k +1

(6.12)

Dar x k +1 = e k i aplcnd teorema Lagrange amintit, exist un punct k ( x k , ) , astfel ca g ( k ) = [g ( x k ) g ( )] /( x k ) , dac funcia g este continu i derivabil pe intervalul ( x k , ) . Relaia (6.12) devine:
e k +1 = g ( k ) e k .

(6.13)

Mai departe, se consider ndeplinit condiia (6.11), ntr-o vecintate a soluiei considerate. n aceste condiii, se afirm c dac estimaia iniial x 0 V , atunci i estimaiile urmtoare x 1 , , x k , aparin lui V i
. x k k

ntr-adevr, plecnd de la relaia (6.13) i folosind (6.11), se obine: | e k +1 |=| g ( k ) | | e k | c | e k | c 2 | e k 1 | c k +1 | e 0 | .


Dar | e 0 | 0 i c k +1 k 0 . 0 deoarece 0 < c < 1 . Aadar, | e k +1 | k

Observaii: 1. De multe ori este greu de evaluat derivata funciei g pentru a constata ndeplinirea condiiei (6.11). Practic, se poate verifica aceasta pe baza irului de valori x 0 , x 1 , . Astfel, innd cont de relaia de recuren (6.10), dac sunt ndeplinite condiiile: | x 1 x 0 |>| x 2 x 1 |> , atunci rezult c funcia g este o contracie. 2. Dac | g ( x ) | 1 , este posibil ca irul de aproximaii ale soluiei s fie divergent. n funcie de alegerea funciei g, pot exista mai multe tipuri de convergen a irului (6.10), descrise n continuare. a) Dac 0 < g ( x ) < 1 , atunci irul de aproximaii, obinut cu relaia de recuren (6.10), este monoton convergent (relaia (6.13)). Acest caz este prezentat principial n Figura 6.1.

186

6.

Ecuaii i sisteme de ecuaii neliniare

y=x

y = g( x )
g(x 0 ) = x 1 = y1

g( x 1 ) = x 2 = y 2

x ... x2 x1 x0

Fig. 6.1 Proces iterativ (monoton) convergent, 0 < g ( x ) < 1

b) Dac 1 < g ( x ) < 0 , atunci irul de aproximaii obinut cu relaia de recuren (6.10) este oscilant convergent. innd cont de relaia (6.13), erorile de aproximare a soluiei alterneaz ca semn de la o iteraie la alta i se micoreaz n modul. Acest caz este prezentat principial n Figura 6.2.

y
g( x 0 ) = x 1 = y1

y=x

g( x 1 ) = x 2 = y 2

y = g( x )

x x0 x2 ... ... x1

Fig. 6.2 Proces iterativ (oscilant) convergent, 1 < g ( x ) < 0

c) dac | g ( x ) | 1 , atunci irul de aproximaii obinut cu relaia de recuren (6.10) poate fi divergent, situaie ilustrat n Figura 6.3.

6.2

Rezolvarea ecuaiilor algebrice neliniare

187

y
g( x 1 ) = x 2 = y 2
g( x 0 ) = x 1 = y1

y = g( x )

y=x

x x0 x1 x2

Fig. 6.3 Proces iterativ divergent, | g ( x ) | 1

Se demonstreaz c eroarea la iteraia [k] poate fi majorat:


| e k | | x1 x 0 |
xV

k , (0, 1) , 1

(6.14)

unde = sup {| g ( x ) |} . Convergena este rapid dac mrimea (0, 0.5) . Inegalitatea (6.14) poate fi utilizat pentru a estima numrul minim de iteraii pentru care eroarea de aproximare se nscrie ntr-o anumit precizie k impus: | e k | . Astfel, din relaia | x 1 x 0 | rezult, prin 1 logaritmare, n cazul egalitii, valoarea celui mai apropiat ntreg superior k = k min .
Definiie: O metod iterativ se spune c este convergent, avnd ordinul de convergen d, dac este ndeplinit condiia:
k

lim

e k +1 = cons tan t 0 . ed k

188

6.

Ecuaii i sisteme de ecuaii neliniare

6.2.2 Metoda Newton (metoda tangentei)

Dac funcia f, care apare n membrul stng al ecuaiei neliniare (6.8), ndeplinete anumite condiii, atunci metoda Newton, denumit i metoda tangentei, se dovedete a fi cea mai rapid din clasa metodelor iterative. Principiul acestei metode este ilustrat n Figura 6.4.
y
y = f ( x)

(Tk) [xk, f(xk)]

(Tk)(0x)={[xk+1, 0]}

x ... xk+1 ... xk

Fig. 6.4 Metoda Newton: reprezentare principial

Fie x k elementul din irul de aproximaii obinut la iteraia [k]. Ecuaia tangentei (Tk) la graficul funciei y = f ( x ) , dus n punctul {x k , f ( x k )} , este: y f ( x k ) = f ( x k ) ( x x k ) . Intersecia tangentei (Tk) cu axa absciselor (0x) este punctul de coordonate ( x k +1 ,0) . Acesta furnizeaz urmtorul element al irului de apromixaii. Punctul ( x k +1 ,0) verific ecuaia tangentei: f (x k ) 0 f ( x k ) = f ( x k ) ( x k +1 x k ) x k +1 = x k , f ( x k ) 0 .(6.15) f ( x k ) ncadrnd formula de iterare funcia g ( x ) este: (6.15) n metoda iterrii, corespunztor,

g( x ) = x

f (x) . f ( x )

(6.16)

Ca urmare, se poate imagina un algoritm care s se ncadreze n algoritmul general descris la metoda iterrii. Acesta trebuie s conin urmtoarele: atribuie x v x n

6.2

Rezolvarea ecuaiilor algebrice neliniare

189

dac [f ( x v ) 0] i [f ( x v ) 0] atunci atribuie x n x v f ( x v ) / f ( x v )

Sunt, astfel, implementate relaiile de iterare Newton:

x f ( x k ) / f ( x k ), f ( x k ) 0 x k +1 = k . x k , f ( x k ) = f ( x k ) = 0
Rezult c aplicarea acestui algoritm necesit existena i definirea funciei f i a derivatei acesteia, f . Metoda Newton fiind o metod iterativ, convergena acesteia este asigurat dac: | g ( x ) |< 1, x V . Astfel, derivnd relaia (6.16), se obine:
g ( x ) = 1 [f ( x )] 2 f ( x ) f ( x ) f ( x ) f ( x ) . = [f ( x )] 2 [f ( x )] 2

(6.17)

Aadar, dac este ndeplinit condiia: | f ( x ) f ( x ) /[f ( x )] 2 |< 1, x V , atunci metoda Newton converge. Aceast condiie implic existena derivatelor de ordin nti i doi ale funciei f ( x ) i, de asemenea, faptul c f ( x ) 0, x V . Din relaia (6.17) i innd cont de faptul c soluia ecuaiei neliniare are proprietatea de punct fix pentru funcia de iterare, g ( x ) , rezult c: f () f () = g(), g () = =0, [f ()] 2 deoarece f () = 0 . Dezvoltnd funcia g ( x k ) n serie Taylor n jurul punctului , se obine: g () g( x k ) = g() + g () ( x k ) + ( x k ) 2 , ( x k , ) . 2 innd cont de faptul c: x k +1 = g ( x k ) i g ( ) = 0 , rezult c: x k +1 = (1 / 2) g () ( x k ) 2 . Dar e k +1 = x k +1 i e k = x k . Atunci relaia (6.18) devine: e k +1 = (1 / 2) g () e 2 k. Cele prezentate pn acum conduc la enunarea urmtorului rezultat. (6.18)

190

6.

Ecuaii i sisteme de ecuaii neliniare

Teorem: Fie ecuaia neliniar (6.8) care admite soluia . Fie V o vecintate a acestei soluii. Dac f este o funcie de clas C 2 V , cu f ( ) = 0 , dar f ( ) 0 i dac oricare ar fi x V sunt ndeplinite relaiile: | f ( x ) f ( x ) /[f ( x )] 2 |< 1 i f ( x ) 0 , atunci irul de aproximaii corespunztor metodei Newton, definit de relaia

(6.15), este convergent. n plus:


k

lim (e k +1 / e 2 k ) = (1 / 2) [f ( ) / f ( )] = constant 0 .

Se poate demonstra c dac metoda Newton se poate aplica, atunci aceasta are ordinul de convergen doi. Practic, aceasta nseamn c la fiecare iteraie numrul de cifre zecimale exacte ale soluiei se dubleaz. ns, convergena metodei depinde critic de alegerea punctului de start x 0 . Astfel, dac x 0 nu se gsete ntr-o vecintate (imediat) a soluiei, atunci este posibil ca metoda s nu conduc la soluie. Exemplul ilustrat n Figura 6.5 se refer la situaia n care metoda Newton se blocheaz n jurul unui punct de minim local al funciei f ( x ) . Din acest motiv, metoda Newton se folosete, de regul, ca o procedur terminal, primele estimaii ale soluiei fiind determinate cu o metod, n general, mai lent.
y
y = f (x)

x x0 x2
.....

x3 x1

Fig. 6.5 Metoda Newton: proces iterativ care nu converge ctre soluia

Dac soluia este de multiplicitate p, atunci se folosete urmtoarea relaie de recuren: f (x k ) x k +1 = x k p . (6.19) f ( x k ) Practic, calculele se organizeaz astfel:

6.2

Rezolvarea ecuaiilor algebrice neliniare

191

primele estimaii se calculeaz cu relaia: f ( x k 1 ) x k = x k 1 , f ( x k 1 ) calculndu-se i mrimea: F( x k ) =

[f ( x k )] 2 [f ( x k )] 2 f ( x k ) f ( x k )

corespunztor unui index de iterare [j], cnd acesta exist, pentru care este satisfcut relaia: | F( x i ) p | , i = j, j + 1, j + 2, j + 3, j + 4 , p Z, p > 0 ,

atunci ntregul p reprezint multiplicitatea soluiei i se comut pe relaia (6.19). Altfel spus, dac mrimea F difer de un numr ntreg, p, cu o eroare de = 10 1 (10 2 ) pentru 3 5 valori ale estimaiilor date de x k , atunci acesta este un semn c soluia este de multiplicitate p. Mai mult, dac se face media ultimelor p valori din irul de aproximaii ale soluiei, se obine: x k p +1 + + x k = x k +1 , p practic dublndu-se numrul cifrelor exacte ale aproximaiei x k +1 fa de numrul de cifre exacte ale aproximaiei anterioare x k .
6.2.3 Metoda secantei (metoda interpolrii liniare inverse) Metoda secantei sau a interpolrii liniare inverse reprezint un caz particular al metodei Newton. Astfel, pornind de la relaia de recuren care caracterizeaz metoda Newton: f (x k ) x k +1 = x k , f ( x k )

unde f este o funcie de clas C 2 V pe o vecintate a soluiei V , i aproximnd derivata f ( x k ) prin

f ( x k ) f ( x k 1 ) , se obine: x k x k 1
f (x k ) , k = 1, 2, ... , f ( x k ) f ( x k 1 ) x k x k 1
(6.20)

x k +1 = x k

unde x 0 , x 1 sunt puncte de start, precizate. Principiul metodei este ilustrat n Figura 6.6.

192

6.

Ecuaii i sisteme de ecuaii neliniare

y = f (x)

[xk-1, f(xk-1)] (Sk-1,k)(0x)={[xk+1, 0]} [xk, f(xk)] x


.....

xk+1

xk xk-1

....

Fig. 6.6 Metoda secantei: reprezentare principial

Astfel, se consider o nou aproximaie a soluiei ca fiind abscisa punctului de intersecie dintre secanta Sk-1,k la graficul funciei y = f ( x ) i axa absciselor 0x. Secanta Sk-1,k trece prin punctele determinate de ultimele dou aproximaii ale soluiei: ( x k 1 , f ( x k 1 )) i ( x k , f ( x k )) . Funcia neliniar f este astfel aproximat liniar, pe intervalul [ x k 1 , x k ] , de ctre dreapta Sk-1,k. Mai mult, dreapta de ecuaie S k 1,k ( x ) = a x + b satisface condiiile:

S k 1,k ( x k 1 ) = f ( x k 1 ) ,

S k 1,k ( x k ) = f ( x k ) . Aceste dou condiii permit

determinarea coeficienilor a i b ai secantei Sk-1,k. Astfel, se spune c dreapta S k 1,k ( x ) interpoleaz liniar funcia f pe intervalul [ x k 1 , x k ] . n general, pentru o valoare c a argumentului, rezult f (c) S k 1,k (c) . Se poate pune problema ca S k 1,k ( x k +1 ) s aib o anumit valoare f * (n cazul de fa aceast valoare este 0), de aici rezultnd x k +1 . n acest caz, se spune c se realizeaz o interpolare liniar invers. Cu parametrii a i b astfel determinai i impunnd condiia S k 1,k ( x k +1 ) = 0 , se obine relaia de recuren (6.20). Algoritmul poate fi schiat astfel: citete x 1 , x 2
atribuie x 0 x 1 atribuie x 1 x 2

6.2

Rezolvarea ecuaiilor algebrice neliniare

193

atribuie x 2 x 1 f ( x 1 ) /{[ f ( x 1 ) f ( x 0 )] /( x 1 x 0 )}

scrie soluia = , x 2 Pentru a asigura convergena irului de aproximaii la soluia a ecuaiei neliniare, trebuie satisfcute condiiile: f ( ) 0 i f ( ) 0 . Viteza de convergen depinde de gradul n care funcia f poate fi aproximat prin segmente de dreapt. Altfel spus, aceasta depinde de viteza de variaie a primei derivate , f ( x ) , adic de curbura funciei f ( x ) caracterizat de a doua derivat f ( x ) . Cu alte cuvinte, cu ct curbura funciei f ( x ) este mai mare, cu att viteza de convergen este mai mic. Se poate demonstra c ordinul de convergen al metodei secantei este: d = ( 5 + 1) / 2 1.68 . Faptul c la aceast metod nu se cere evaluarea derivatei funciei f ( x ) constituie un avantaj fa de metoda Newton. Preul pltit este, ns, o viteza de convergen mai mic.
6.2.4 Metoda Mller (a interpolrii cuadrice inverse) Metoda Mller extinde rezultatele obinute la metoda secantei. De aceast dat, funcia f este aproximat printr-un polinom de gradul al doilea, motiv pentru care metoda se mai numete i a interpolrii cuadrice inverse. Aceast metod necesit trei puncte de start, procesul iterativ continund cu una din rdcinile polinomului de gradul doi aproximant. Fie x 0 , x 1 i x 2 punctele de start, care se consider a fi n relaia: x 2 < x 0 < x 1 i fie f ( x 2 ), f ( x 0 ), f ( x 1 ) valorile corespunztoare ale funciei neliniare care constituie membrul stng al ecuaiei (6.8). Cu aceste puncte de start precizate, se determin un polinom de gradul al doilea, de forma general: T2 ( x ) = a x 2 + b x + c, a , b, c . Polinomul T2 ( x ) aproximeaz, prin interpolare, funcia f ( x ) , dac sunt satisfcute condiiilor: T2 ( x i ) = f ( x i ), i = 0, 1, 2 . Astfel, se determin coeficienii a , b, c , dup care se calculeaz rdcinile acestui polinom. Una din aceste rdcini, notat x r , se alege drept o nou aproximaie a soluiei a ecuaiei f ( x ) = 0 .

194

6.

Ecuaii i sisteme de ecuaii neliniare

Pentru optimizarea calculelor, se transleaz sistemul de axe x0y n punctul de coordonate ( x 0 , 0) , noul sistem de axe fiind 0 . Principiul metodei este ilustrat n Figura 6.7.

= T2() = a2 + b + c [x1, f(x1)]


y = f (x)

[x0, f(x0)] xr x2 x0 x1 x

[x2, f(x2)]
Fig. 6.7 Metoda Mller: reprezentare principial

Se realizeaz urmtoarele notaii: h 2 = x 0 x 2 , h 1 = x 1 x 0 . n sistemul de axe translat, 0 , sunt satisfcute relaiile:


T2 (0) = f ( x 0 ) = f 0 , T2 ( h 2 ) = f ( x 2 ) = f 2 , T2 ( h 1 ) = f ( x 1 ) = f 1 .

innd cont de expresia polinomului T2 ( x ) , n sistemul de axe translat (Figura 6.7), rezult:
c = f 0 2 a h 1 + b h 1 + c = f 1 . a h 2 b h + c = f 2 2 2 Acesta este un sistem determinat de ecuaii algebrice liniare n necunoscutele a, b i c. n urma rezolvrii acestui sistem se obin coeficienii polinomului aproximant, T2 ( x ) . Drept aproximaie a soluiei ecuaiei (6.8), x r , se consider rdacina polinomului T2 ( ) care este mai aproapiat de originea sistemului de axe 0 . Ca urmare, n sistemul de axe 0 , se alege soluia care este cea mai mic n

valoare absolut. Aceasta se determin astfel:

6.3

Rezolvarea sistemelor de ecuaii algebrice neliniare

195

, b b 4 a c b b2 4 a c a / 2a / unde se consider semnul minus dac b > 0 i semnul plus dac b < 0 . n acest fel, numitorul din expresia anterioar are cea mai mare valoare absolut. Aadar, urmtoarea estimaie a soluiei ecuaiei neliniare (6.8) este: 2c , xr = x0 b b2 4 a c unde se consider semnul plus dac b > 0 i semnul minus dac b < 0 . Calculele se pot organiza astfel:
2

2 =

c = a 1

2c

* definete f citete x 0 , x 1 , x 2 * ordoneaz x 2 < x 0 < x 1 atribuie x r x 0 ct timp | f ( x r ) | > r execut * evalueaz f ( x i ), i = 0, 1, 2 * calculeaz a, b, c * calculeaz x r dac ( x r > x 0 ) atunci ( x 0 , x r , x 1 ) * rearanjeaz n ( x 2 , x 0 , x 1 ) x <x <x
2 0 1

altfel ( x 2 , x r , x 0 ) * rearanjeaz n ( x 2 , x 0 , x 1 ) x <x <x


2 0 1

scrie soluie = , x r

Avantajul acestei metode este c nu se cere existena i evaluarea derivatelor funciei f. n plus, nu este obligatoriu ca funcia f s fie cunoscut analitic, valorile sale putnd fi obinute, de exemplu, n urma unor msurtori. Mai mult, cu excepia primului pas, este necesar, la fiecare iteraie, o singur evaluare a funciei f, i anume n punctul x r . Metoda are un ordin de convergen ridicat, apropiat de cel al metodei Newton, acesta avnd valoarea d 1.85 .

6.3

Rezolvarea sistemelor de ecuaii algebrice neliniare

Fie sistemul de ecuaii neliniare:

196

6.

Ecuaii i sisteme de ecuaii neliniare

f (x ) = 0 n , x = [x 1 x n ]T , f ( x ) = [f 1 ( x 1 , , x n ) f n ( x 1 , , x n )] T

(6.21)

n care f : D 1 D 2 , D1 , D 2 n (C n ) . Metodele de rezolvare a sistemelor de ecuaii neliniare constau n construirea unui ir de aproximaii convergent ctre o soluie a sistemului. Fie = [ 1 n ] T o astfel de soluie: f ( ) = 0 n . Sistemul de ecuaii (6.21) poate fi rescris sub forma: x = g( x ) . (6.22)

Uzuale sunt metodele care folosesc formule iterative staionare de ordinul nti:

[ k +1]

= g( x

[k]

), k = 0, 1, , x

[0]

precizat .

(6.23)

Fie V o vecintate a soluiei : V = {x D1 / || x || p h, h + } . Se enun urmtoarele rezultate. Teorem:


Fie ecuaia vectorial neliniar (6.21), rescris sub forma (6.22). Se consider V o vecintate a soluiei . Dac funcia g este o funcie continu pe V , iar componentele sale, g i , i = 1, , n , admit derivate pariale n raport cu argumentele x j , j = 1, , n i satisfac la relaia:

g i ( x ) , (0, 1), x V , x j n

(6.24)

atunci: [ 0] (i) dac x V , atunci i elementele irului {x [ k ] }k = 0,1, definit de ctre relaia (6.23) aparin vecintii V ;

(ii) irul definit de ctre relaia (6.23) converge ctre soluia pentru k . Observaie: Elementele din relaia (6.24) se refer la componentele matricei iacobian a funciei g n raport cu argumentul x :

G( x ) =

dg( x )

g ( x ) = i . dx x j 1i, j n

Teorema enunat anterior arat c irul de aproximaii (6.23) converge dac,

6.3

Rezolvarea sistemelor de ecuaii algebrice neliniare

197

ntr-o vecintate a soluiei, matricea iacobian a funciei de iterare g are, n modul, elementele foarte mici. Consecina acestui rezultat se refer la estimarea [k] [k] erorilor n procesul iterativ: e = x . Propoziie:
n condiiile teoremei enunate anterior pentru problema (6.21), reformulat n (6.22), problem care se rezolv construind irul de aproximaii (6.23), au loc relaiile: [1] [0] || x x || k [k ] [k] | e j |=| x j j | , j = 1, , n , (0, 1) , (6.25) 1 unde este definit ca fiind sup {|| G ( x ) || } .
xV

i n acest caz se poate determina un numr minim de iteraii pentru care relaiile (6.25) sunt ndeplinite cu o anumit precizie impus, i anume:

| e [jk ] | [|| x

[1]

[0]

|| /(1 )] k .

6.3.1 Metode iterative explicite

Din aceast clas se prezint metoda Newton. Aceasta este o metod iterativ explicit deoarece estimaiile la un anumit pas al iterrii se obin n mod direct, explicit, ca o funcie de estimaiile de la iteraia anterioar. Pentru aceasta, se consider funcia g ( x ) de forma: g( x ) = x A( x ) f ( x ) , unde A ( x ) este o matrice ptratic de ordinul n, A( x ) = [a ij ( x )]1i , j n . irul (6.23) converge dac matricea cu elemente variabile, A ( x ) , este nesingular pentru x V . tiind c soluia satisface condiia de punct fix pentru funcia g ( x ) , folosind relaia (6.26), rezult: g ( ) = A ( ) f ( ) = 0 n . Aceasta implic f () = 0 n dac i numai dac A ( ) este o matrice nesingular. Altfel spus, f ( ) se gsete n nucleul matricei A ( ) . Dac matricea A ( ) este nesingular, atunci A ( ) f ( ) conduce la vectorul 0 n dac i numai dac (6.26)

f ( ) = 0 n .
n continuare se consider c matricea A ( x ) = A = constant. Pentru a

198

6.

Ecuaii i sisteme de ecuaii neliniare

construi irul (6.23) folosind relaia (6.26), trebuie determinat matricea A pentru care metoda s fie convergent. Conform teoremei enunat anterior, matricea A se alege astfel nct iacobianul funciei de iterare s aib, n modul, elementele mici sau foarte mici, pe o vecintate a soluiei. Astfel, iacobianul funciei g este:

G(x) =

f ( x ) = I n A J f ( x ), J f ( x ) = i ( x ) . dx x j 1i, j n dg
g , x V , G ij ( x ) = i ( x ) . n x j

Conform teoremei anterioare, trebuie satisfcute relaiile: | G ij ( x ) |

Ca urmare, in caz ideal, dac iacobianul funciei f este o matrice nesingular pe V , se poate alege matricea A ca fiind:

A = [J f ()] 1 .
n felul acesta, G () = I n [J f ()]1 J f ( x ) = 0 nn . ns soluia nu se cunoate i atunci se recurge la o alegere sub-optimal a matricei A. Aceasta conduce la urmtoarea relaie de recuren:

[ k +1]

=x

[k ]

[J f ( x

[k ]

)]1 f ( x

[k]

), k = 0, 1, 2, , x

[0]

V . (6.27)

Relaia (6.27) constituie o generalizare a metodei tangentei de la cazul scalar ( n = 1 ). De regul, nu se lucreaz cu relaia (6.26), pentru a evita inversarea matricei iacobian. Astfel, se rezolv sistemul ptratic, de ordinul n:

J f (x
n care necunoscuta este x soluiei ecuaiei (6.21):

[k]

) x

[k]

= f (x

[k]

),

[k ]

. Apoi, se determin urmtoarea estimaie a


=x
[k ]

[ k +1]

[k ]

Se demonstreaz c ordinul de convergen al acestei metode este 2, deci numrul de cifre exacte ale soluiei se dubleaz de la o iteraie la alta.
6.3.2 Metode iterative implicite

6.3

Rezolvarea sistemelor de ecuaii algebrice neliniare

199

n cazul metodelor iterative implicite, fiecare component x [i k +1] nu se mai poate exprima n mod explicit n funcie de estimaiile de la iteraia anterioar. n acest caz, legtura dintre variabile este asigurat de ctre funciile f i . Aceasta justific denumirea de metode iterative implicite. n cazuri particulare, componentele x [i k +1] se pot exprima n funcie de componentele de la iteraia [k]. Metodele iterative implicite generalizeaz, la cazul neliniar, metodele iterative folosite la rezolvarea sistemelor determinate de ecuaii algebrice liniare. Astfel, ecuaia vectorial (6.21) se rescrie sub forma:
f1 (x 1 , , x n ) = 0 f i (x 1 ,, x n ) = 0 . f n ( x 1 , , x n ) = 0

(6.28)

Generaliznd rezultatele de la metodele iterative pentru rezolvarea sistemelor determinate de ecuaii algebrice liniare i n concordan cu teorema enunat anterior, se demonstreaz c aceste metode converg ctre soluia , pentru orice x V , unde V este o vecintate a soluiei , dac raza spectral a matricei iacobian a funciei f , evaluat n punctul de start x subunitar: [J f ( x )] < 1 . A. Metoda Jacobi Fie x
[k] [ 0]

, este

[ 0]

aproximaia obinut la iteraia [k]: x


[k] [k] = [x1 x [i k ] x [nk ] ] T .

La iteraia [k], sistemul de ecuaii neliniare (6.21), rescris sub forma (6.28), se rezolv astfel:
[ k +1] f 1 ( x 1 , x [2k ] , , x [nk ] ) = 0 [k] [k ] [k ] [ k +1] [k ] [k] f i ( x 1 , x 2 , , x i 1 , x i , x i +1 , , x n ) = 0 [k] [k ] [k ] [k ] [ k +1] f n ( x 1 , x 2 , , x i , , x n 1 , x n ) = 0 [ k +1] x1

x [i k +1] . x [nk +1]

Astfel, cu excepia unei singure componente, cea de la iteraia [k + 1] , restul componentelor se consider cunoscute de la iteraia precedent, [k]. Ca urmare,

200

6.

Ecuaii i sisteme de ecuaii neliniare

rezolvarea sistemului neliniar se transform n rezolvarea a n probleme, fiecare problem nsemnnd rezolvarea unei ecuaii neliniare. Pentru aceasta din urm, se poate aplica una din metodele prezentate anterior, n subcapitolul 6.2.
B. Metoda Gauss-Seidel

Se aplic acelai principiu de la metoda Jacobi. De aceast dat, n afar de aproximaia de la iteraia [k], anterioar, se folosesc succesiv, cnd este posibil, i componentele determinate ale estimaiei de la iteraia curent, [k + 1] . Astfel, sistemul (6.21) devine:
[ k +1] f 1 ( x 1 , x [2k ] , , x [nk ] ) = 0 [ k +1] [k ] [k ] [ k +1] [k] [k] f i ( x 1 , x 2 , , x i 1 , x i , x i +1 , , x n ) = 0 [ k +1] [ k +1] [ k +1] [ k +1] [ k +1] f n ( x 1 , x 2 , , x i , , x n 1 , x n ) = 0 [ k +1] x1

x [i k +1] . x [nk +1]

C. Metoda suprarelaxrilor succesive

Pentru acest tip de metod se folosesc parametri de accelerare a convergenei. Astfel, dac se aplic metoda Gauss-Seidel, procesul iterativ se desfoar dup schema:
[ k +1] k] f i (x 1 , x [2k ] , , x [i 1, xi [ k +1] k] [k ] , x [i + 1 ,, x n ) = 0

xi

[ k +1]

x [i k +1]

x [i k ]

[ k +1] (x i

x [i k ] )

unde | |> 1 este un parametru real de accelerare a convergenei. precizat, se determin o valoare a Pentru o estimaie iniial x parametrului = optim pentru care este ndeplinit condiia:
[ 0]

(J f ( x ()) = minim < 1 .

[1]

6.4

Rezolvarea ecuaiilor polinomiale

6.4.1 Problematica general

O categorie de ecuaii neliniare, des ntlnit n practic, este cea a ecuaiilor polinomiale:

6.4

Rezolvarea ecuaiilor polinomiale

201

Pn ( x ) = 0, Pn ( x ) = a 0 x n + a 1 x n 1 + + a n 1 x + a n a i , i = 0, , n , a 0 0

(6.29)

n general, rezolvarea acestor ecuaii se poate realiza cu metodele prezentate anterior n subcapitolul 6.2 dedicat rezolvrii ecuaiilor neliniare. Dezavantajul esenial al aplicrii acestor metode pentru rezolvarea ecuaiilor polinomiale l constituie necesitatea localizrii intervalelor unde ecuaia are soluii. Ca urmare, s-au dezvoltat procedee de separare a rdcinilor unui polinom, ns acestea sunt ineficiente din punct de vedere computaional, necesitnd un efort mare de calcul. Pe de alt parte, ecuaia (6.29) are un numr de n soluii care sunt, n general, numere complexe. Soluiile complexe apar n perechi complex conjugate. n astfel de cazuri, metodele prezentate anterior, pentru determinarea soluiilor reale ale ecuaiilor neliniare, trebuie reformulate pentru mulimea numerelor complexe i, n plus, trebuie definit i folosit, n calculatorul numeric, aritmetica n virgul mobil cu numere complexe. Avnd n vedere importana i larga aplicabilitate a acestei probleme, s-au dezvoltat metode eficiente care lucreaz n mod automat i numai cu numere reale. Acestea sunt descrise principial n continuare.
Aplicaii

Rezolvarea ecuaiilor polinomiale intervine ca o etap esenial n domeniul analizei i sintezei sistemelor dinamice liniare, ndeosebi caracterizarea intrare-ieire. Fr a intra n detalii care nu fac obiectul lucrrii de fa, se menioneaz tehnicile de analiz a stabilitii sistemelor automate, i anume: metoda locului rdcinilor; utilizarea locului de transfer; utilizarea diagramelor Bode.
A. Metode de determinare succesiv a zerourilor unui polinom

Principiul este de a pune n eviden divizori de grad nti sau doi ai polinomului Pn ( x ) . Divizorii sunt separai succesiv, n urma unui proces iterativ. Una din metodele cele mai rspndite este algoritmul Bairstow care const n separarea divizorilor de grad doi. Dac gradul n al polinomului este impar, atunci ultimul divizor separat este un polinom de grad nti. Prin gsirea rdcinilor divizorilor separai se obin soluiile ecuaiei polinomiale iniiale. Ideea esenial care st la baza acestei metode este aplicarea metodei Newton pentru rezolvarea sistemelor de ecuaii neliniare de ordinul doi care

202

6.

Ecuaii i sisteme de ecuaii neliniare

rezult din condiia ca restul mpririi unui polinom de grad oarecare la un polinom de grad doi s fie zero. Fie divizorul de gradul doi de forma: T2 ( x ) = x 2 + p x + q, p, q i polinomul Pn ( x ) dat de relaia (6.29). Atunci se poate scrie: Pn ( x ) = T2 ( x ) Q n 2 ( x ) + R x + S . Q n 2 ( x ) = b 0 x n 2 + b 1 x n 3 + + b n 3 x + b n 2

n general, coeficienii R i S sunt funcii neliniare n argumentele p i q: R = R (p, q) , S = S(p, q ) . La rndul lor, coeficienii p i q depind de coeficienii a i , i = 0, , n ai polinomului Pn ( x ) . Aadar, polinomul T2 ( x ) este un divizor al polinomului Pn ( x ) dac i numai dac au loc relaiile:
R ( p, q ) = 0 , S( p, q ) = 0

(6.30)

de unde rezult coeficienii p i q. n concluzie, aplicarea metodei implic parcurgerea unui algoritm care trebuie s combine rezolvarea sistemului de ecuaii neliniare de ordinul doi (6.30) n necunoscutele p i q, pe de o parte, cu determinarea coeficienilor polinomului ct, Q n 2 ( x ) , pe de alt parte. Detalii asupra acestui algoritm sunt prezentate n subcapitolul 6.4.2 care urmeaz. Caracteristica acestei metode este faptul c ea favorizeaz acumularea i propagarea erorilor de rotunjire. Astfel, odat ce este separat un divizor, procedeul se continu asupra polinomului ct, Q n 2 ( x ) , i aa mai departe. Drept urmare, coeficienii ultimilor divizori pot fi afectai de erori de rotunjire ntr-o msur inacceptabil.
B. Metode de determinare simultan a zerourilor unui polinom

Fiind dat ecuaia (6.29), aceasta se transform astfel nct polinomul din membrul stng s fie monic ( a 0 = 1 ). Se obine astfel ecuaia:

Q n ( x ) = 0, Q n ( x ) = x n + 1 x n 1 + + n 1 x + n , i = a i / a 0 , i = 1, , n .
Se realizeaz aceast transformare deoarece folosirea polinoamelor monice accelereaz convergena proceselor iterative care intervin ulterior. Polinomului Q n ( x ) i se asociaz o matrice A, astfel nct polinomul
caracteristic al matricei s coincid cu polinomul pentru care se calculeaz rdcinile, Q n ( x ) : det( I n A ) Q n ( ) .

6.4

Rezolvarea ecuaiilor polinomiale

203

Dac se reuete construirea unei astfel de matrice, n general de form simpl, atunci valorile proprii ale acesteia vor fi chiar rdcinile polinomului Q n ( x ) . Plecnd de la aceast observaie, pentru obinerea rdcinilor polinomului dat, se aplic matricei A o metod de determinare a valorilor proprii cum este algoritmul QR de aduce la forma canonic Schur. O modalitate uzual de construire a matricei A face apel la matricele de tip Frobenius. Acestea au urmtoarea structur: 0, F = [f ij ]1i, j n , f ij = 1, n j+1 , polinomul caracteristic fiind: det( I n F) = x n + 1 x n 1 + + n 1 x + n . Caracteristica esenial a acestui tip de metod este aceea c, n general, valorile proprii calculate care coincid cu zerourile polinomului Pn ( x ) , sunt afectate n aceeai msur de erorile de rotunjire.
6.4.2 Algoritmul Bairstow

i = 1, , n 1, j = 1, n , j i + 1 , i = 1, , n 1, j = i + 1 i = n , j = 1, , n

Fie polinomul Pn ( x ) dat de relaia (6.29), ale crui rdcini trebuie determinate. Acesta se poate rescrie sub forma: Pn ( x ) = ( x 2 + p x + q) (b 0 x n 2 + + b n 3 x + b n 2 ) + R x + S .(6.31) Pentru ca polinomul x 2 + p x + q s fie divizor al polinomului Pn ( x ) , trebuie ca s fie ndeplinite condiiile (6.30). Se realizeaz notaiile:

R p (p, q) p R ( p, q ) z = ; f = ; J f = S ( p, q) q S(p, q) p

R (p, q ) q . S ( p, q ) q

Pentru rezolvarea sistemului (6.30) se aplic metoda Newton. Astfel, la iteraia [i] se poate scrie:

[J f (z
sau:

[i 1]

)] z

[ i 1]

= f (z

[i 1]

),

204

6.

Ecuaii i sisteme de ecuaii neliniare

R [i 1] [i 1] p ( p , q ) S (p [i 1] , q [i 1] ) p

R [i 1] [i 1] (p , q ) p [i 1] R (p [i 1] , q [i 1] ) q [i 1] = , (6.32) [ i 1] [ i 1] S [i 1] [i 1] q S ( p , q ) (p , q ) q (p [ 0] , q [ 0] ) de regul nul

de unde se obin estimaiile: p[i ] = p[i 1] p [i 1] , q [i ] = q [i 1] q [i 1] . Pentru aceasta, se pleac de la un punct iniial (p
[0] [0]

= 0, q = 0) . Calculele implicate de rezolvarea sistemului determinat, de ordinul doi, de ecuaii neliniare (6.32), se organizeaz astfel: R [i 1] [i 1] S [i 1] [i 1] [ i 1] [i ] = det[J f (z )] = (p , q ) (p , q ) q p R [i 1] [i 1] S [i 1] [i 1] (p , q ) (p , q ) q p

R (p [i 1] , q [i 1] ) P [i ] = S(p [i 1] , q [i 1] )

R [i 1] [i 1] (p , q ) q ; S [i 1] [i 1] (p , q ) q

Q [i ]

R [i 1] [i 1] (p , q ) R (p [i 1] , q [i 1] ) p ; = S [i 1] [i 1] [ i 1] [ i 1] (p , q ) S(p , q ) p

P [i ] Q [i ] [ i 1] ; q = , [i ] 0 . [i ] [i ] Condiia de stop pentru metoda Newton, considernd precizia impus , este: | p [i 1] + q [i 1] | | (P [i ] + Q [i ] ) / [i ] | . n continuare, se precizeaz modalitatea de obinere a elementelor necesare rezolvrii sistemului neliniar anterior. Astfel, efectund nmulirile n ecuaia (6.31) i identificnd coeficienii cu cei ai polinomului Pn ( x ) din relaia (6.29), se gsete, n general, o relaie de recuren ntre b k , pe de o parte i coeficienii a k , p i q, pe de alt parte. Aceasta este de forma: p [i 1] =
(6.33) b k = a k p b k 1 q b k 2 . Pentru ca aceast relaie de recuren s fie valabil pentru k = 0,1, , n 2 , se consider b 1 = b 2 = 0 . n plus, se noteaz: (6.34) b n 1 = R , b n + p b n 1 = S .

6.4

Rezolvarea ecuaiilor polinomiale

205

Rezult: R b n 1 = p p R b ; = n 1 q q

b b S (b n + p b n 1 ) = n + b n 1 + p n 1 = p p p p . (6.35) S b b (b n + p b n 1 ) = n + p n 1 = q q q q

Derivatele lui R i S pot fi calculate, la rndul lor, folosind formule de recuren. Astfel, se introduc notaiile: b k = c k 1 , k = 1, , n p . b k = d k 2 , k = 2, , n q

(6.36)

Se deriveaz relaia (6.31) n raport cu p i, innd cont de relaiile (6.36), se obine: (6.37) c k = b k p c k 1 q c k 2 , k = 0, , n 1, c 2 = c 1 = 0 . Analog, se deriveaz (6.31) n raport cu q i se ine cont de (6.36), obinndu-se:
d k = b k p d k 1 q d k 2 , k = 0, , n 2, d 2 = d 1 = 0 .

(6.38)

Analiznd relaiile (6.37) i (6.38), se observ c pentru k = 0, , n 2 practic este ndeplinit relaia: (6.39) dk = ck . Din relaiile (6.37), (6.38) i (6.39), rezult:
b k = c k + p c k 1 + q c k 2 , k = 0, , n 2, c 2 = c 1 = 0 .

(6.40)

innd cont de relaiile (6.40), (6.34), (6.35) i (6.36), se obine: R R = c n 2 , = c n 3 , p q S = c n 1 + b n 1 p c n 2 , p

S = c n 2 p c n 3 q

Capitolul 7 APROXIMAREA NUMERIC A FUNCIILOR

7.1

Formularea problemei

Se consider o funcie real de variabil real: f : [a , b] , a , b . n

multe aplicaii se pune problema evalurii, n orice punct x * [a , b] , a funciei

f, a derivatelor acesteia sau a integralei definite: f ( x * ), f ( x * ), f ( x * ), , f ( x ) dx, a c < d b .


c d

n funcie de natura problemei, pot exista mai multe situaii descrise n continuare. I.)
Funcia f este cunoscut analitic prin una sau mai multe expresii, n general complicate sau dificil de evaluat, derivat sau integrat. n aceast categorie intr funciile cunoscute prin una sau mai multe formule explicite, funciile cunoscute sub forma unei serii (n general infinite) i funciile care sunt soluii ale unor ecuaii difereniale (integro-difereniale).

II.) Funcia f nu este cunoscut analitic, ci printr-un ir de valori. Astfel, avnd un ir de argumente {x i }i = 0,..., n , x i [a , b], i = 0, , n distincte, acestea determin o divizare a intervalului [a , b] : [a , b ] : a x 0 < < x i < < x n b . Corespunztor, sunt cunoscute i valorile funciei f n aceste puncte: {x i , f ( x i )}i =0,..., n . n aceast situaie sunt funciile ale cror valori: se gsesc n anumite tabele uzuale specifice diferitelor domenii de aplicaie, provin n urma unor msurtori experimentale sau sunt rezultatul aplicrii unui algoritm numeric, cu numr de pai cunoscut dinainte sau nu (algoritmul este oprit la o anumit iteraie). n general, n aceste cazuri valorile funciei f sunt afectate de erori. Rezolvarea problemei generale enunate anterior se bazeaz pe gsirea unei funcii F = F( x ) cu o expresie n general simpl, uor de evaluat, derivat sau integrat, care s aproximeze ct mai bine funcia f: x * [a , b], F( x * ) f ( x * ) .

222

7.

Aproximarea numeric a funciilor

Abordarea general pentru o astfel de problem utilizeaz o mulime de funcii: M = { / : [a , b] } , unde sunt funcii, n general, elementare (simple). Mulimea M poate fi nzestrat cu o structur de spaiu liniar de funcii. Astfel, n acest spaiu, exist un numr de funcii liniar independente, care formeaz o baz de funcii de aproximare:
0 ( x ), 1 ( x ), , k ( x ), ,

c k k (x) = 0 c k
k

= 0, x [a , b] .

Ca urmare, soluia general a problemei de aproximare este de a exprima funcia aproximant, F( x ) , drept o combinaie liniar de funcii elementare aparinnd mulimii M. Fie m + 1 astfel de funcii elementare liniar independente. Atunci se poate scrie:
F( x ) = Fm ( x ) = c 0 0 ( x ) + + c m m ( x ) . (7.1)

Funcia Fm ( x ) se numete polinom generalizat, m fiind ordinul (gradul) polinomului generalizat. Aproximarea bazat pe acesta se numete aproximare cu polinoame generalizate.
Exemplul 7.1:

Dac setul de funcii elementare este k ( x ) : 1, x , x 2 , , x m , atunci aproximarea folosind: F( x ) = Pm ( x ) = c 0 + c1 x + + c m x m , (7.2)

se numete aproximare cu polinoame algebrice. Dac k ( x ) : 1, cos( x ), sin( x ), , cos(m x ), sin(m x ) , atunci aproximarea folosind:
F( x ) = Tm ( x ) = a 0 + a 1 cos( x ) + b 1 sin( x ) + + a m cos( m x ) + b m sin( m x )

se numete aproximare cu polinoame trigonometrice. Indiferent de abordare, rezolvarea problemei necesit rspuns la urmtoarele chestiuni: determinarea setului de funcii { k ( x )}k = 0,1,... ;
determinarea numrului necesar de funcii, m + 1 ; determinarea coeficienilor polinomului generalizat, {c k }k =0,1,...,m .
Pentru a rezolva acestea, precum i pentru a putea aprecia calitatea aproximrii, mulimea de funcii M trebuie s aib proprieti suplimentare. Astfel, trebuie s se poat defini pe aceast mulime o funcie care s permit aprecierea apropierii dintre funcia f ( x ) i aproximanta ei, F( x ) , oricare ar fi x [a , b ] .

7.1

Formularea problemei

223

Definiie: Fie funcia d : M M . Aceasta se numete funcie distan, dac urmtoarele proprieti sunt ndeplinite: (i) oricare ar fi f , g M , atunci d (f , g ) > 0 i d (f , g) = 0 f g ; (ii) oricare ar fi f , g M , atunci d (f , g ) = d (g, f ) ; (iii) oricare ar fi f , g, h M , atunci d (f , g ) d (f , h ) + d (h , g ) .
Mulimea M mpreun cu distana d formeaz o structur de spaiu metric. De regul, funcia d se definete prin intermediul funciei norm: || || p : M i, astfel, mulimea M are o structur de spaiu liniar normat. Distanele uzual folosite pentru cazul continuu, cnd funcia f este cunoscut analitic, sunt: a.) d (f , F) =|| f ( x ) F( x ) || = max {| f ( x ) F( x ) |} .
x[ a , b ]

n ipoteza c M este mulimea funciilor continue pe intervalul [a , b] , atunci o astfel de abordare se numete aproximare uniform. n acest caz, d (f , F) are semnificaie de eroare absolut n metric a funciei F( x ) , fa de funcia f ( x ) . b.)
d 2 (f , F) =|| f ( x ) F( x ) || 2 =

[f ( x ) F( x )]
a

dx .

n ipoteza c M este mulimea funciilor de ptrat integrabil pe intervalul [a , b] , o astfel de abordare se numete aproximare n medie ptratic. n acest caz, d 2 (f , F) nu mai are semnificaia de eroare absolut n metric a funciei F( x ) fa de funcia f ( x ) i se numete cvasimetric. Pentru cazul discret, cnd funcia f este cunoscut pe baza unui set de valori {x i , f ( x i )}i =0,...,n , distanele uzual folosite sunt: a.) d (f , F) =|| f F || = max{| f ( x i ) F( x i ) |} ,
0i n

(7.3)

n care s-au notat: f = [f ( x 0 ) f ( x n )] T i F = [ F( x 0 ) F( x n )] T . Abordarea bazat pe aceast distan reprezint aproximarea uniform pentru cazul discret. b.)
d 2 (f , F) =|| f F || 2 =
i =0

[f ( x i ) F( x i )]2

(7.4)

Abordarea bazat pe aceast distan reprezint aproximarea n medie ptratic pentru cazul discret. Indiferent de abordarea folosit, distana dintre funciile f i F se poate exprima sub forma general: d p (f , F) = (m, c 0 , c1 , , c m ) . Criteriul folosit

224

7.

Aproximarea numeric a funciilor

uzual n aproximare este ca funcia s fie minim, de unde rezult coeficienii c 0 , c1 , , c m pentru o valoare fixat a ordinului m al polinomului de aproximare i o anumit alegere a bazei de funcii de aproximare. n continuarea acestui capitol, discuia se restrnge la cazul discret i, aici, aproximarea cu polinoame algebrice.

7.2

Interpolarea polinomial

Folosind una din distanele (7.3), (7.4) i polinomul algebric (7.2), F( x ) = Pm ( x ) , cunoscnd setul de puncte {x i , f ( x i )}i =0,...,n , se impune o

condiie de tipul: d p (f , Pm ) = minim. Acest minim are chiar valoarea zero pentru m = n i:

Pm ( x i ) = f ( x i ), i = 0, , n .

Aadar, funcia aproximant F este un polinom de grad maxim n, fiind cunoscute n + 1 valori ale funciei f ( x ) . Polinomul de aproximare trece prin aceste puncte, {x i , f ( x i )}i =0,...,n . Un astfel de polinom se numete polinom de interpolare, iar procedura de detrminare a coeficienilor acestuia se numete interpolare polinomial numeric. Punctele n care funcia este cunoscut se numesc puncte de interpolare sau noduri de interpolare. Pentru funcia f cunoscut prin intermediul unui ir de valori corespunztor unei divizri a intervalului de definiie al funciei, [a,b], se dorete determinarea unui polinom de grad mai mic sau egal cu n: Pn ( x ) = c 0 + c1 x + + c n x n , astfel nct:

Pn ( x i ) = f ( x i ), i = 0, , n .

(7.5)

7.2.1 Interpolarea Lagrange Teorem: n contextul problemei de interpolare, dac punctele divizrii [a ,b ] sunt distincte, atunci oricare ar fi y 0 , y1 , , y i , , y n , cu y i = f ( x i ), i = 0, , n , exist i este unic un polinom L( x ) , de grad maxim n, pentru care sunt ndeplinite condiiile de interpolare:

L( x i ) = f ( x i ), i = 0, , n .

(7.6)

7.2

Interpolarea polinomial

225

Demonstraia folosete aa-numitul polinom de interpolare construit de Lagrange:


L( x ) = 1 (x x 1 ) (x x j ) (x x n ) 1 (x 0 x1 ) (x 0 x j ) (x 0 x n ) y0 + yj +

+ +

( x x 0 ) ( x x j1 ) 1 ( x x j+1 ) ( x x n ) ( x j x 0 ) ( x j x j1 ) 1 ( x j x j+1 ) ( x j x n ) ( x x 0 ) ( x x j ) ( x x n 1 ) 1 ( x n x 1 ) ( x n x j ) ( x n x n 1 ) 1 yn .

Polinomul L( x ) are n + 1 termeni, fiecare termen avnd n expresia sa un raport de produse de n factori. Aadar, polinomul L( x ) are gradul cel mult n. Rapoartele de produse care apar n expresia polinomului se noteaz: L j (x ) =
k j

x xk , k =0 x j x k
n

j = 0, , n .

Se constat c:

1, i = j , unde i, j {0, 1, , n} . L j (x i ) = 0, i j
Astfel, polinomul L( x ) se poate scrie sub forma:
L( x ) = L j ( x ) y j .
j= 0 n

(7.7)

(7.8)

innd cont de expresiile (7.7) i (7.8), rezult: L( x i ) = y i , i = 0, , n , deci sunt ndeplinite condiiile de interpolare (7.6). S-a demonstrat pn acum faptul c exist un polinom de interpolare. Polinoamele {L j ( x )} j=0,1,..., n formeaz baza
de interpolare Lagrange determinat de ctre divizarea a intervalului [a,b]. Se demonstreaz, n cele ce urmeaz, unicitatea polinomului de inetrpolare Lagrange. Pentru aceasta, se presupune, prin reducere la absurd, c exist un alt polinom, G ( x ) , de grad cel mult n, pentru care G ( x i ) = y i , i = 0, , n . Fie polinomul H( x ) = L( x ) G ( x ) . La rndul su, acesta este un polinom de grad maxim n. Evalund polinomul H( x ) n punctele divizrii [ a , b ] , se obine:

H( x i ) = L( x i ) G ( x i ) = 0, i 0, , n . Rezult, aadar, c un polinom de grad maxim n, H( x ) , are n + 1 zerouri, ceea ce nseamn c H este polinomul identic nul. De aici rezult c G ( x ) L( x ) . Aadar, polinomul de interpolare Lagrange este unic.

226

7.

Aproximarea numeric a funciilor

Pentru gsirea unei valori aproximative pentru f ( x * ) , nu se recomand determinarea coeficienilor c 0 , c1 , , c n ai polinomului de interpolare (7.5) i apoi evaluarea sa, deoarece numrul de operaii n virgul mobil ar crete, fapt care ar conduce la o cretere a erorilor de aproximare. Valoarea f ( x * ) se recomand a fi aproximat de L( x * ) . Pentru x * x i , i = 0, , n , evaluarea polinomului L( x * ) necesit un numr de operaii n virgul mobil de ordinul lui n 2 . Polinomul Lagrange fiind unic i realiznd interpolarea, orice alt metod de interpolare polinomial va conduce la acelai rezultat, cel puin teoretic, dac erorile de calcul nu sunt luate n considerare. Referitor la precizia estimrii (aproximrii), se enun urmtorul rezultat.
Propoziie: Fie o funcie f ( x ) continu i cu derivate continue pn la ordinul n pe intervalul [ x 0 , x n ] , f C [nx 0 , x n ] i de n + 1 ori derivabil pe acelai interval,
f D [nx+01, x n ] . n condiiile interpolrii Lagrange, are loc egalitatea:

f ( x ) = L( x ) + R n ( x ) , n care polinomul R n ( x ) este restul de interpolare Lagrange, cu expresia:


R n (x) = ( x x 0 ) ( x x 1 ) ( x x n ) ( n +1) f (c), c ( x 0 , x n ) . (n + 1)!
i = 0,..., n 1

n plus, notnd h = max {x i +1 x i } , dac M n +1 = atunci: | R n ( x ) | [h n +1 / 4 (n + 1)] M n +1 .

sup {| f ( n +1) ( x ) |} ,
x[ x 0 , x n ]

Interpolarea Lagrange, aa cum a fost definit n versiunea ei original, poate eua n anumite situaii, n sensul c se pot produce erori de aproximare semnificative.
Exemplul 7.2:

Se consider funcia Runge: y( x ) = 1 /(1 + 25 x 2 ), x [1, 1] . Se consider n + 1 puncte x i , i = 0, , n , echidistante n intervalul [1, 1] . Lungimea intervalului dintre dou puncte consecutive este: h = x i +1 x i = ( x n x 0 ) / n , i = 0, , n 1, x 0 = 1, x n = 1 . Fie n = 5 , deci punctele x i sunt: 1, 0.6, 0.2, 0.2, 0.6, 1 . Valorile y i corespunztoare se obin evalund y( x ) n punctele x i . n Figura 7.1 sunt reprezentate grafic aceste noduri de interpolare, precum i polinomul de

7.2

Interpolarea polinomial

227

interpolare Lagrange corespunztor, p 5 ( x ) , evaluat cu un pas mai mic dect cel utilizat la interpolare, h. Se observ c rezultatele aproximrii sunt afectate de erori apreciabile. n continuare, se crete gradul polinomului Lagrange la n = 20 . Sunt necesare 21 puncte care vor fi considerate, de asemenea, echidistante: h = 0.1 : 1, 0.9, 0.8, , 0, 0.1, , 0.8, 0.9, 1 . Repetnd procedeul, se obine polinomul de interpolare Lagrange p 20 ( x ) reprezentat grafic n Figura 7.1. Se observ c pentru | x |< 0.5 , aproximarea prin intermediul polinomului p 20 ( x ) este satisfctoare, dup care apar diferene semnificative. Se repet procedeul crescnd gradul polinomului de interpolare. Ca urmare, cu ct gradul n este mai mare, cu att abaterile la capetele intervalului vor fi mai mari. Funcia y( x ) este aproximat satisfctor doar pe un anumit subinterval al intervalului [1, 1] , prin polinoame Lagrange. Apare de aici ideea de a nu folosi un polinom unic, care s aproximeze o funcie f ( x ) pe ntreg intervalul [a , b] . Se folosete o mulime de polinoame, fiecare dintre acestea aproximnd ct mai bine funcia f pe un anumit subinterval al intervalului [a , b] . Acest tip de aproximare se numete
aproximare polinomial pe poriuni sau aproximare cu polinoame glisante.

y=

1 1 + 25 x 2

p 20 ( x )
p 5 (x )

Fig. 7.1. Exemplul lui Runge: eecul interpolrii Lagrange cu polinom unic

228

7.

Aproximarea numeric a funciilor

Astfel, n cazul interpolrii Lagrange, avnd n + 1 noduri de interpolare, pentru o valoare x * x i , i = 0, , n , x * [ x 0 , x n ] , se gsete subintervalul ( x k , x k +1 ) cruia i aparine valoarea x * i se construiete un polinom Lagrange de grad m < n (cel mult n). Se utilizeaz, astfel, o baz de puncte centrat n raport cu valoarea x * : {x m , , x k , x k +1 , , x m } .
k 2 k+ 2

n acest fel, erorile sunt diminuate, restul de interpolare Lagrange avnd valoare minim.
7.2.2 Interpolarea prin intermediul funciilor spline

n general, folosirea unui singur polinom de interpolare, p n ( x ) , pentru aproximarea unei funcii f ( x ) pe un ntreg interval unde funcia este cunoscut, eueaz:
, x [a , b] , | f ( x ) p n ( x ) | n

aa cum s-a prezentat n Exemplul 7.2. Apare, atunci, ideea folosirii interpolrii polinomiale pe poriuni, cum s-a menionat n comentariile anterioare. Funciile spline au fost introduse pentru a denumi funcii formate din polinoame definite pe subintervale adiacente i care se racordeaz n capetele subintervalelor mpreun cu un numr de derivate. Denumirea de spline (din limba englez, intraductibil n limba romn) provine din mecanic, reprezentnd numele unui dispozitiv folosit de desenatori pentru a trasa o curb neted. Spline este un instrument format dintr-o band metalic subire, susinut prin intermediul unor greuti. Acestea din urm pot fi astfel aranjate, nct banda metalic s treac prin anumite puncte date. Numrul greutilor poate s fie mai mic sau egal cu numrul punctelor.
Definiie: Fiind dat reeaua de puncte a intervalului [a , b] : a x 0 < x 1 < < x i < x i +1 < < x n b , se numete funcie spline de ordinul m pe reeaua , notat s ( x ) , o funcie care ndeplinete urmtoarele condiii: (i) restricia la intervalul [ x i , x i +1 ], i = 0, , n 1 , s ( x ) [ x , x
i i +1 ]

, aparine

mulimii polinoamelor algebrice de grad maxim m;

7.2

Interpolarea polinomial

229

(ii) funcia s ( x ) este continu, cu derivate continue pn la ordinul m 1 pe


1 intervalul [a , b] : s ( x ) C [m a , b] .

Dac m = 1 , atunci funciile spline se numesc liniare, dac m = 2 , atunci ele se numesc funcii spline cuadrice, iar dac m = 3 , atunci funciile spline se numesc cubice.

n continuare, discuia se refer la cazul m = 3 , avnd n vedere utilitatea practic.


Propoziie: Fiind dat funcia f ( x ) , cunoscut prin irul de puncte distincte {x i , f ( x i )}i =0,, n , unde x i [ a , b ] , cu x i x j , i, j = 0, , n , i j , exist i este unic o funcie spline cubic, funcie care interpoleaz funcia f:

s ( x i ) = y i , i = 0, , n
unde y i = f ( x i ), i = 0, , n .
not

Demonstraia acestui rezultat constituie chiar algoritmul de determinare a funciei s ( x ) . Pentru aceasta, se consider funcia spline cubic de forma: . (7.9) i = 0, , n 1 Existena i unicitatea funciei s ( x ) este echivalent cu existena i unicitatea seturilor de coeficieni {a i , b i , c i , d i }i =0,,n 1 , trebuind a fi determinai 4 n parametri. Pentru a calcula aceti parametri, se utilizeaz condiiile din definiia funciilor spline: (C1) condiii de interpolare: s ( x i ) = y i , i = 0, .n ceea ce nseamn (n + 1) condiii; (C2) continuitatea funciei s ( x ) :
x xi x<xi

s (x) [x

i , x i +1 ]

= a i (x x i ) 3 + b i (x x i ) 2 + c i (x x i ) + d i

lim s ( x ) = s ( x i ) = s ( x i + ) = lim s ( x ), i = 1, , n 1 ,
x x i x >xi

not

not

(C3)

ceea ce nseamn (n 1) condiii; continuitatea primei derivate, s ( x ) :


x xi x<xi

lim s ( x ) = s ( x i ) = s ( x i + ) = lim s ( x ), i = 1, , n 1 ,
x x i x >xi

not

not

ceea ce nseamn (n 1) condiii;

230

7.

Aproximarea numeric a funciilor

(C4)

(x) : continuitatea derivatei a doua, s


x xi x<xi

( x ) = s ( x i ) = s ( x i + ) = lim s ( x ), i = 1, , n 1 , lim s
x x i x >xi

not

not

ceea ce nseamn (n 1) condiii. Din (C1) (C4) rezult un total de 4 n 2 condiii. Pentru determinarea celor 4 n parametri, mai sunt necesare nc dou condiii suplimentare impuse funciilor spline cubice de interpolare. n funcie de cum sunt formulate aceste dou condiii, rezult diferite tipuri de funcii spline cubice. Exist cteva posibiliti de alegere a celor dou condiii suplimentare necesare, dup cum urmeaz. 1. Folosirea informaiilor furnizate de ctre perechile de interpolare, {x i , f ( x i )}i =0,, n , precum i aproximarea funciei f prin aa-numitele diferene
divizate la dreapta:

( 0) ( x i ) = f ( x i ) = y i , (1) ( x i ) = ( 2) ( x i ) = (3) ( x i ) =

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

(1) ( x i +1 ) (1) ( x i ) 1 f ( x i ), x i+2 x i 2 ( 2) ( x i +1 ) ( 2) ( x i ) 1 f ( x i ), x i +3 x i 6

i diferene divizate la stnga: ( 2) ( x i ) ( 2) ( x i 1 ) y y i 1 (1) ( x i ) = i , , ( 3) ( x i ) = . x i x i 1 x i x i 3 Folosind primele patru perechi de puncte {x i , f ( x i )}i =0,,3 , se poate calcula
diferena divizat la dreapta de ordinul 3, n punctul x 0 , care va aproxima valoarea derivatei a treia f ( x 0 ) : 1 (3) ( x 0 ) f ( x 0 ) . 6 Folosind ultimele patru perechi de puncte {x i , f ( x i )}i = n 3,,n , se calculeaz diferena divizat la stnga de ordinul 3, n punctul x n , care aproximeaz valoarea derivatei a treia f ( x n ) : 1 (3) ( x n ) f ( x n ) . 6 ( x ) [ x , x ] = 6 a i , i = 1, , n 1 . innd cont de expresia (7.9), rezult s
i i +1

Condiiile suplimentare care rezult sunt:

7.2

Interpolarea polinomial

231

(C5.1) (C5.2)

( x 0 ) = 6 (3) ( x 0 ) s ( x n ) = 6 (3) ( x n ) s

2. Funciile spline cubice pentru care sunt ndeplinite dou din condiiile: f (x 0 ) = f (x n ) (C5.1) f ( x 0 ) = f ( x n ) (C5.2) (C5.3) f ( x 0 ) = f ( x n ) se numesc funcii spline cubice periodice. 3. Funciile spline pentru care sunt ndeplinite condiiile: (x ) = 0 (C5.1) lim s
x x 0 x >x0

(C5.2)

x x n x<xn

(x) = 0 lim s

se numesc funcii spline cubice naturale. Rezult c, n acest caz, polinoamele de racord n punctele x 0 i x n sunt polinoame de gradul nti sau se comport n vecintatea punctelor x 0 i x n ca polinoame de gradul nti. De remarcat este faptul c funciile spline cubice naturale au proprietatea c au cea mai mic curbur:
xn

x0

( x )] 2 dx = [s

[s (x )

i =0 x i

n 1 x i +1

[ x i , x i +1 ]

] 2 dx = minim ,

n comparaie cu orice alt polinom de interpolare. Ca urmare, prin condiiile de racordare n noduri impuse funciei s ( x ) i derivatelor sale, funciile spline cubice naturale sunt cele mai netede funcii care interpoleaz funcia f. n continuare, discuia se restrnge la cazul funciilor spline cubice naturale. Continund demonstraia propoziiei, n cele ce urmeaz se determin coeficienii funciei s ( x ) . Prin drivarea relaiei de definiie (7.9), se obin urmtoarele expresii:

s ( x ) [ x , x
i

i +1 ]
i +1 ]

= 3 a i ( x x i ) 2 + 2 b i ( x x i ) + c i , i = 0, , n 1 ,
= 6 a i ( x x i ) + 2 b i , i = 0, , n 1 .

(x) [x , x s
i

( x i ), i = 0, , n . Se realizeaz notaiile: h i = x i +1 x i , i = 0, , n 1 , S i = s Din condiiile (C1) i (C2) rezult: s ( x i ) = y i . Cum s ( x i ) [ x , x


i i +1 ]

= di ,

rezult:

d i = y i , i = 0, , n 1 .

(7.10)

232

7.

Aproximarea numeric a funciilor

n continuare se exprim coeficienii a i , b i , c i , d i n funcie de valorile derivatelor de ordinul al doilea, S i . Se ajunge, astfel, la un sistem determinat de ecuaii algebrice liniare, avnd necunoscutele S i , i = 1, , n 1 , innd cont de faptul c S 0 = S n = 0 . Din condiia (C4) rezult: (x i ) [x , x s
i i +1 ]

= 2 b i b i = S i / 2, i = 0, , n 1 .

(7.11)

Pe de alt parte: ( x i +1 ) [ x , x s
i

i +1 ]

= 6 a i ( x i +1 x i ) + 2 b i = 6 a i h i + S i = S i +1 ,
ai =

de unde rezult c:

S i +1 S i , i = 0, , n 1 . 6 hi Din condiia de interpolare (C1) impus funciei s ( x ) , rezult c:

(7.12)

s ( x i +1 ) [ x , x
i

i +1 ]

= y i +1 .

Ca urmare: y i +1 = a i ( x i +1 x i ) 3 + b i ( x i +1 x i ) 2 + c i ( x i +1 x i ) + d i , de unde rezult, folosind (7.10), (7.11) i (7.12):

c i = ( y i +1 y i ) / h i h i (S i +1 + 2 S i ) / 6 .
Din condiia (C3) rezult: s ( x i ) [ x , x ] = s ( x i + ) = c i ,
i i +1

(7.13)

s ( x i ) [ x

i 1 , x i ]

= s ( x i ) = 3 a i 1 ( x i x i 1 ) 2 + 2 b i 1 ( x i x i 1 ) + c i 1 .

Dar s ( x i + ) = s ( x i ) i, folosind relaiile (7.11), (7.12) i (7.13), se obine: y i +1 y i h i S S i 1 2 S (S i +1 + 2 S i ) = 3 i h i 1 + 2 i 1 h i 1 hi 6 6 h i 1 2


+ y i y i 1 h i 1 (S i + 2 S i 1 ), i = 1, , n 1. h i 1 6

Efectund calculele i innd cont de condiia (C5) care definete funciile spline cubice naturale ( S 0 = S n = 0 ) rezult un sistem determinat de ecuaii algebrice liniare, de ordinul n 1 , de forma: M S = Y , n care: (7.14)

7.2

Interpolarea polinomial

233

h1 0 2 (h 0 + h 1 ) h1 2 (h 1 + h 2 ) h2 0 h2 2 (h 2 + h 3 ) M= 0 0 0 0 0 0

0 0 h3

0 0 0

0 h n 3 0 0

0 0 0 0 2 ( h n 3 + h n 2 ) h n 2 h n 2 2 (h n 2 + h n 1 ) 0 0

S = [S1 S n 1 ] T
Y = [6 ( y 2 y1 y1 y 0 y y n 1 y n 1 y n 2 T ) 6( n )] h1 h0 h n 1 h n 2

Dar punctele x i sunt distincte: x i < x i +1 , i = 0, , n 1 , deci h i > 0 , i = 0, , n 1 . De aici rezult c M este o matrice diagonal dominant, cu elemente pozitive, simetric. Aadar, matricea M este bine condiionat, de unde rezult c este nesingular. Aceasta nseamn c exist i este unic soluia S , sau, altfel spus, exist i sunt unice seturile de coeficieni {a i , b i , c i , d i }i =0,,n 1 . Ca urmare, exist i este unic funcia s ( x ) . Avnd n vedere proprietile matricei M, rezolvarea sistemului (7.14) se poate realiza prin eliminare gaussian direct, matricea sistemului fiind diagonal dominant. Structura matricei transformate este:

1 0 0 0

h1 0 0 0 2 h2 0 0 0 0

0 0

0 0 0 n 2 0 00 0

0 0 . h n 2 n 1

Funcia spline cubic natural de interpolare se determin cu urmtorul algoritm: citete {x i , y i }i =0,, n , y i = f ( x i )

iniializare: h i x i +1 x i , i = 0, , n 1 pas 1: calcul elemente sistem cu matrice superior bidiagonal (sistem transformat): 1 2 (h 0 + h 1 )

y 2 y1 y1 y 0 1 6 h h0 1 pentru i = 2, , n 1 execut

234

7.

Aproximarea numeric a funciilor

i 2 ( h i 1 + h i )

h i21 i 1

y i +1 y i y i y i 1 h i 1 i 1 i 6 h i 1 h i 1 i pas 2: rezolvare sistem cu matrice superior bidiagonal prin substituie invers: S n 1 n 1 n 1 pentru i = n 2, ,1 execut h i S i +1 Si i i
pas 3: calcul coeficieni funcie spline cubic (se consider S 0 = S n = 0 ): pentru i = 0, , n 1 execut S Si a i i +1 6 hi S bi i 2 y i +1 y i h i (S i +1 + 2 S i ) ci hi 6 di yi Pentru determinarea aproximativ a valorii f ( x * ), x * x i , i = 0, , n , x * [a , b] , se procedeaz astfel: se gsete indexul k pentru care x * [ x k , x k +1 ] ; se extrage setul de coeficieni {a k , b k , c k , d k } ; se calculeaz s ( x * )
[ x k , x k +1 ]

f (x * ) .

7.3

Aproximarea polinomial n medie ptratic

Se consider funcia f cunoscut prin punctele {x i , f ( x i )}i =1,, N . Problema este de a determina un polinom de gradul n: p n ( x ) = c 0 + c1 x + + c n x n = y( x ) ,
not

7.3

Aproximarea polinomial n medie ptratic

235

unde n N 1 , n general (uzual n << N ), care s aproximeze ct mai bine funcia dat. Utiliznd notaiile: Yi = f ( x i ) , e i = Yi y( x i ) , i = 1, , N , se spune c se realizeaz o aproximare n medie ptratic dac se minimizeaz, n raport cu setul de coeficieni {c 0 , , c n } , funcia criteriu definit prin:

S(c 0 , , c n ) = e i2 = (Yi y( x i )) 2
i =1 N i =1

(7.15)

= (Yi c 0 c1 x i c n x in ) 2
i =1

Pentru gradul n fixat al polinomului de aproximare, condiiile de minim pentru funcia criteriu S sunt: S 2S (7.16) = 0 n +1 , S = >0. S = j=0,,n j,k =0,,n c j c j c k
Condiiile de minim referitoare la derivatele pariale de ordinul nti ale funciei S (gradientul funciei S) sunt: N S = 2 (Yi c 0 c1 x i c n x in ) ( 1) = 0, c 0 i =1
N S = 2 (Yi c 0 c1 x i c n x in ) ( x i ) = 0, c1 i =1

N S = 2 (Yi c 0 c1 x i c n x in ) ( x in ) = 0. c n i =1

Se obine, astfel, urmtorul sistem determinat de ecuaii algebrice liniare, de ordinul n + 1 , cu necunoscutele c i , i = 0, , n :
N xi n x i unde prin notaia

x i x i2 x i2 x 3 i x in +1 x in + 2 (.)
se nelege

c 0 Yi x in n +1 x i c1 = (x i Yi ) , x i2n c n n ( x i Yi )

(7.17)

(.) .
i =1

Notnd vectorul necunoscutelor cu x , matricea sistemului cu A i vectorul termenilor liberi cu b , ecuaia (7.17) se scrie sub forma:

Ax =b.

(7.18)

236

7.

Aproximarea numeric a funciilor

n general, calculul elementelor sistemului (7.18) conduce la disproporii mari ntre elementele matricei, de unde rezult matrice A prost condiionate sau aproape singulare. Rezolvarea sistemului (7.18) este recomandabil pentru ordine mici ale polinomului de interpolare, n = 1 4 . n fapt, sistemul (7.18) reprezint sistemul de ecuaii normale corespunztor sistemului supradeterminat cu N ecuaii i n + 1 necunoscute, care se rezolv n sensul celor mai mici ptrate: Cx =d, (7.19)
2 n 1 x 1 x 1 Y1 x1 Y 2 n 1 x2 x2 x2 C= , d= 2. 2 n YN 1 x N x N x N Sistemul (7.19) se obine impunnd egalitile: c 0 + c1 x i + c 2 x i2 + + c n x in = Yi , i = 1, .N .

Astfel, legtura dintre sistemele (7.18) i (7.19) este: A = C T C , b = C T d . Sistemul supradeterminat (7.19) are soluie unic dac rangul matricei C este n + 1 , ceea ce este echivalent cu C T C > 0 . Aceasta este echivalent cu 2S S = > 0 , n felul acesta fiind ndeplinit i a doua condiie de c j c k j, k =0,,n minim din (7.16). Cele expuse pn acum justific, pentru aceast abordare, denumirea de aproximare polinomial n sensul celor mai mici ptrate. n general, se recomand rezolvarea sistemului (7.19) prin transformri ortogonale sau folosind descompunerea valorilor singulare. Pentru ultima abordare, se determin i gradul p 1 al polinomului de aproximare din condiia rang(C) = p < n + 1 , dac n este ales, necorespunztor, prea mare. Astfel, cu ct gradul n al polinomului de aproximare crete, cu att se vor reduce deviaiile dintre Yi p n ( x i ) = f ( x i ) p n ( x i ) . La limit, pentru n = N 1 , se obin diferene nule, deoarece: Yi = p N 1 ( x i ) = f ( x i ), i = 1, , N . Aceasta face ca p N 1 ( x ) s reprezinte un polinom de interpolare i nu unul de aproximare n medie ptratic. Un polinom de aproximare n medie ptratic trece printre punctele de aproximare, urmrindu-se minimizarea funciei criteriu. Pentru ilustrarea practic a acestor aspecte, se recomand abordarea problemei de studiu P7.1 prezentat n cadrul subcapitolului Error! Reference source not found..

7.4

Derivarea numeric

237

7.4

Derivarea numeric

Fie funcia f : [a , b] , f = f ( x ) i o divizare a intervalului [a , b] : [ a , b ] : {x i }i =0,,n , x i < x i +1 , i = 0,, n 1 . Se noteaz f i = f ( x i ), i = 0,, n . Problema derivrii numerice const n aproximarea valorilor derivatelor funciei f: f ( x * ), f ( x * ), pentru orice argument x * [a , b] , utiliznd setul de puncte {x i }i =0,,n . Aceast problem este rezolvabil n funcie de proprietile pe care le are funcia f (continuitate, derivabilitate). Astfel, dac funcia f ndeplinete condiiile necesare aproximrii numerice, atunci se gsete un polinom rezonabil de aproximare. Mai departe, acesta poate fi derivat i se poate evalua derivata sa n diverse din intervalul [a , b] . Acest principiu se aplic cu succes pentru primele dou derivate, n general. Operaiunea de derivare numeric este o problem dificil, de obicei, deoarece dac datele sunt afectate de eroare (de exemplu, zgomot de msur), atunci operaia de derivare tinde s amplifice aceste erori.
7.4.1 Derivarea numeric bazat pe interpolarea Lagrange

Fie L( x ) polinomul Lagrange care interpoleaz funcia f ( x ) : n xx n n j f ( x ) L( x ) = {[ ] f i } = Li (x) f i . i =0 i =0 j=0 x i x j


j i

Atunci funcia f ( x ) poate fi aproximat prin:

f ( x ) L( x ) = L i (x ) f i ,
i =0

unde L i ( x ) = [
ji

1 ] {[ ( x x j ) k =0 j=0 i
n n

j= 0 j i ; j k

( x x j )]} .
n

Analog, se poate aproxima i derivata a doua:

f ( x ) L( x ) = L i( x ) f i ,
i =0 n n 1 unde L ] { [ ( i( x ) = [ k =0 l=0 j=0 ( x i x j ) n j i

j=0 ji ; j k ; j l

(x x j ))]} .

238

7.

Aproximarea numeric a funciilor

7.4.2 Formule de derivare numeric bazate pe interpolarea cu funcii spline cubice

Dac x * [a , b] , atunci f ( x * ) poate fi aproximat de ctre s ( x * ) , unde s ( x ) este funcia spline cubic (natural) care interpoleaz funcia f. n acest caz, trebuie identificat intervalul [ x i , x i +1 ] unde se afl argumentul x * i atunci: f ( x * ) s ( x * ) = 3 a i (x * x i ) 2 + 2 bi (x * x i ) + ci .
[ x i , x i +1 ]

Dac se dorete determinarea valorii f ( x i ) , atunci f ( x i ) c i . Aproximarea derivatei bazat pe utilizarea rezultatelor interpolrii cu funcii spline cubice (naturale), furnizeaz un rezultat mai precis dect folosind polinoame de interpolare Lagrange de grad n = 4 . Pentru aproximarea derivatei de ordinul al doilea, se deriveaz de dou ori funcia spline cubic (natural) care interpoleaz funcia f. Se obine: (x * ) f ( x * ) s = 6 a i ( x * x i ) + 2 b i , f ( x i ) 2 b i .
[ x i , x i +1 ]

n acest fel, se obin erori comparabile cu cele produse prin evaluarea derivatei de ordinul al doilea a polinomului de interpolare Lagrange de grad n = 4 . Pentru aproximarea derivatelor de ordin superior, se folosesc funcii spline de ordin superior pentru aproximarea funciei f.
7.4.3 Formule de derivare numeric polinomial n medie ptratic bazate pe aproximarea

Se consider punctele divizrii ca fiind echidistante: x i +1 x i = h , i = 0,, n 1 , iar funcia f este cunoscut prin perechile {x i , f ( x i )}i =0,,n . Se ilustreaz aproximarea valorilor primei derivate, f ( x k ), k = 0,, n . O soluie este ca pe baza a cinci perechi de puncte, {x i , f ( x i )} , i = k 2, k 1, k , k + 1, k + 2 , s se gseasc coeficienii unui polinom de gradul al doilea, care aproximeaz funcia f, n sensul celor mai mici ptrate: p 2 ( x ) = c 0 + c1 x + c 2 x 2 . Astfel, valoarea f ( x k ) este aproximat prin p2 ( x ) = 2 c 2 x k + c1 . Se obin formulele de derivare:
f ( x k ) 1 (2 y k 2 y k 1 + y k +1 + 2 y k + 2 ), k = 2,, n 2 , 10 h

7.5

Cuadratura numeric

239

unde y i = f ( x i ), i = k 2, k 1, k , k + 1, k + 2 . Pentru aproximarea valorilor f ( x 0 ) i f ( x 1 ) , se folosesc punctele x 0 , x 1 , x 2 i x 3 , obinnd:


f ( x 0 ) 1 (21 y 0 + 13 y1 + 17 y 2 9 y 3 ), 20 h 1 f ( x 1 ) (11 y 0 + 3 y1 + 7 y 2 + y 3 ). 20 h

Pentru aproximarea valorilor f ( x n 1 ) i f ( x n ) se folosesc perechile de puncte {x i , f ( x i )} , i = n 3, n 2, n 1, n , obinnd: f ( x n 1 ) 1 (11 y n 3 y n 1 7 y n 2 y n 3 ), 20 h 1 f ( x n ) (21 y n 13 y n 1 17 y n 2 + 9 y n 3 ). 20 h

Se demonstreaz c formulele de derivare astfel obinute sunt mai precise dect cele bazate pe derivarea polinoamelor de interpolare Lagrange.

7.5

Cuadratura numeric

Se consider funcia f : [a , b] , f = f ( x ) , cunoscut prin intermediul setului de puncte {x i , f i }i =0,,n , f i = f ( x i ) . Problema este calculul valorii integralei definite I(f ) = f ( x ) dx . Se consider, fr a restrnge generalitatea,
a b

c a = x 0 i b = x n . Dac funcia f este integrabil pe intervalul [a , b] , atunci i restriciile sale la fiecare subinterval [ x i , x i +1 ], i = 0, , n 1 sunt integrabile, putndu-se scrie:
I(f ) = I i (f ), I i (f ) =
i =0 n 1 x i +1 xi

f ( x ) dx ,

i = 0, , n 1 .

Punctele x i , i = 0,, n ale intervalului [a , b] sunt ordonate astfel: a = x 0 < x 1 < < x i < x i +1 < < x n = b . Pentru aproximarea numeric a integralei definite se folosete termenul de cuadratur numeric, realiznd astfel o distincie fa de estimarea numeric a soluiilor ecuaiilor difereniale numit integrare numeric (a ecuaiilor difereniale). Spre deosebire de operaia de derivare numeric, cuadratura tinde s netezeasc sau s diminueze erorile ce afecteaz datele.

240

7.

Aproximarea numeric a funciilor

Definiii: Se numete regul (elementar) de cuadratur, o formul simpl care aproximeaz valorile integralelor elementare I i (f ) . Se numete regul compus de cuadratur, o formul care aproximeaz valoarea integralei definite I(f ) , ca o sum a regulilor (elementare) de cuadratur. 7.5.1 Regula dreptunghiului

Principiul metodei este ilustrat n Figura 7.2.


y

y = f (x )

f ( x i +1 )
f( x i + x i +1 ) 2 f (x i )

x 0

xi

x i + x i +1 2

x i +1

h i = x i +1 x i

Fig. 7.2. Regula dreptunchiului: aproximarea integrandului printr-un polinom de gradul zero

Funcia f ( x ) este aproximat pe intervalul [ x i , x i +1 ] printr-un polinom de gradul zero, deci printr-o constant: f ( x ) f (( x i + x i +1 ) / 2) . Ca urmare, se obine: x + x i +1 I i (f ) D i (f ) = h i f i , h i = x i +1 x i , i = 0,, n 1 . 2 Valoarea integralei definite pe intervalul [a , b] este aproximat prin:

7.5

Cuadratura numeric

241

n 1 n 1 x + x i +1 I( f ) D (f ) = D i (f ) = h i f i . 2 i =0 i =0 Dac funcia f nu este cunoscut analitic, atunci se vor considera trei perechi de puncte cu abscisele echidistante: ( x i 1 , f i 1 ) , ( x i , f i ) , ( x i +1 , f i +1 ) . Astfel, regula dreptunghiului devine: D i (f ) = ( x i +1 x i 1 ) f ( x i ) .

Se demonstreaz c eroarea comis utiliznd aceast regul satisface la ba 2 h f (), (a , b) . relaia: e D (f ) = I(f ) D(f ), | e D (f ) | 12
7.5.2 Regula trapezului

Principiul metodei este ilustrat n Figura 7.3.


y

y = p1 ( x )
f ( x i +1 )

y = f (x )

f (x i )

x 0

xi h i = x i +1 x i

x i +1

Fig. 7.3. Regula trapezului: aproximarea integrandului printr-un polinom de gradul unu De aceast dat, se consider funcia f aproximat printr-o dreapt, pe intervalul [ x i , x i +1 ] . Dreapta de aproximare este determinat de punctele ( x i , f i ) i ( x i +1 , f i +1 ) . Ca urmare: f ( x i ) + f ( x i +1 ) , i = 0, , n 1, I i (f ) Ti (f ) = h i 2

242

7.

Aproximarea numeric a funciilor

f ( x i ) + f ( x i+1 ) . 2 i =0 i =0 Se demonstreaz c eroarea comis, e T (f ) = I(f ) T (f ) , satisface la relaia: ba 2 | e T (f ) | h f (), (a , b) . Se constat, astfel, c regula trapezului este 24 mai precis dect cea a dreptunghiului. I(f ) T (f ) = Ti (f ) = h i
n 1 n 1

7.5.3 Regula Simpson

Principiul acestei metode este ilustrat n Figura 7.4. Se aproximeaz funcia f printr-un polinom de gradul al doilea ce trece prin punctele: x + x i +1 x i + x i +1 {x i , f ( x i )}, { i ,f }, {x i +1 , f ( x i +1 )} . 2 2
y

y = f (x )

y = p 2 (x )
x 0

xi

x i + x i +1 2

x i +1

h i = x i +1 x i

Fig. 7.4. Regula Simpson: aproximarea integrandului printr-un polinom de gradul al doilea

Integrnd formula de interpolare care se obine, rezult: S i (f ) = 1 x + x i +1 h i f ( x i ) + 4 f i + f ( x i +1 ), i = 0,, n 1, 6 2


n 1 n 1 1

x + x i +1 I(f ) S(f ) = Si (f ) = h i f ( x i ) + 4 f i + f ( x i +1 ). 2 i =0 i =0 6

(7.20)

7.5

Cuadratura numeric

243

Se demonstreaz c eroarea comis prin aplicarea regulii Simpson este: 1 n 1 5 ( 4 ) x i + x i +1 hi f e S (f ) = I(f ) S(f ), | e S (f ) | . 2850 i 0 2 Dac f nu este cunoscut analitic, atunci aproximanta Si (f ) poate fi calculat folosind punctele echidistante: x i 1 , x i , x i +1 , din prima relaie (7.24) rezultnd:
S i (f ) = 2 1 D i (f ) + Ti (f ) . 3 3

n continuare, n legtur cu expresia anterioar, se consider divizarea intervalului [a , b] ca fiind format din puncte echidistante: h = x i +1 x i , i = 0,, n 1 . n acest caz, se obin urmtoarele dezvoltri particulare:
1. Dac numrul de intervale, egal cu n, este impar, atunci se obine:
S(f ) = h (f 0 + 4 f 1 + f 2 + f 2 + 4 f 3 + f 4 + ) 3 h = (f 0 + 4 f 1 + 2 f 2 + + 4 f n 3 + 2 f n 2 + 4 f n 1 + f n ). 3

(7.21)

Relaia (7.21) se numete regula 1/3 Simpson. Se demonstreaz c eroarea comis prin aplicarea acestei formule de cuadratur este: b a 4 ( 4) | e1 / 3S (f ) | h f (), ( x 0 , x n ) . 180
2. Dac numrul de intervale n este impar, atunci folosind un polinom de interpolare de gradul trei se obine:

S(f ) =

3 h (f 0 + 3 f 1 + 3 f 2 + 2 f 3 + 3 f 4 + 3 f 5 + 8 + 2 f n 3 + 3 f n 2 + 3 f n 1 + f n ).

Aceast formul se numete regula 3/8 Simpson. Se demonstreaz c eroarea comis prin aplicarea acestei formule de cuadratur este: b a 4 ( 4) | e 3 / 8S (f ) | h f (), ( x 0 , x n ) . 80
7.5.4 Cuadratura bazat pe interpolarea cu funcii spline cubice

Pentru aproximarea valorii I(f ) , se utilizeaz rezultatele aproximrii funciei f prin interpolare cu funcii spline cubice (naturale). Integrnd, apoi, formula de interpolare, se obine:

244

7.

Aproximarea numeric a funciilor

b n 1 1 1 1 2 I(f ) = f ( x ) dx h i4 a i + h 3 h i ci + h i d i , i bi + 4 3 2 i =0 a unde h i = x i +1 x i , i = 0,, n 1 . innd cont de expresiile coeficienilor a i , b i , c i , d i , expresii prezentate la subcapitolul privind interpolarea cu funcii

spline cubice naturale, se obine:

f ( x ) dx h i
a i =0

n 1

f ( x i ) + f ( x i +1 ) b i + b i +1 . h3 i 2 12

Fa de formula trapezului, T (f ) , se observ c apare n plus, n sum, termenul h 3 i ( b i + b i +1 ) / 12 , mrindu-se, astfel, precizia aproximrii.

Capitolul 8 ECUAII DIFERENIALE ORDINARE CU CONDIII INIIALE

8.1

Formularea problemei

8.1.1 Ecuaii difereniale ordinare de ordinul nti Fie o funcie real de dou variabile reale, f = f ( t , y( t )) :

y : [a, b] I , f : [a, b] I R , unde t [a , b] se numete variabil independent, iar y = y( t ) se numete variabil dependent. Se consider ecuaia diferenial de ordinul nti de forma:

dy( t ) = f ( t , y( t ) , dt
y 0 = y( t 0 ), t 0 [a , b], y 0 I

(8.1) (8.2)

unde y 0 reprezint condiia iniial cunoscut sau precizat. Fr a restrnge generalitatea, se poate considera t 0 = a . Problema de calcul este determinarea soluiei (aproximative), y(t), a ecuaiei difereniale (8.1), cu condiia iniial (8.2), pentru orice valoare a argumentului t [a , b] . Problema astfel definit se numete problema Cauchy. Pentru rezolvarea acesteia, se enun urmtorul rezultat.
Teorem: Fie ecuaia (8.1) i condiia iniial (8.2). Dac sunt ndeplinite condiiile: funcia f este continu n raport cu argumentul t [a , b] ; (i) (ii) funcia f este lipschitzian n raport cu argumentul y I , anume L > 0 astfel nct este ndeplinit relaia:
t [a , b], y1 , y 2 I, | f ( t , y1 ) f ( t , y 2 ) | L | y1 y 2 | ,

atunci exist i este unic o soluie a problemei Cauchy.

266

8.

Ecuaii difereniale ordinare cu condiii iniiale

Metodele numerice de rezolvare a problemei Cauchy discretizeaz intervalul [a,b] ntr-o reea de puncte distincte i anume: [ a ,b ] : a = t 0 < t 1 < < t i1 < t i < t N = b . Prin anumite formule de recuren se calculeaz valorile corespunztoare y i , i = 1,..., N , drept aproximaii ale soluiei exacte y( t i ), i = 1,..., N , avnd drept punct de start valoarea precizat y 0 . n aceste condiii, mulimea de valori {y 0 , y 1 , , y N } constituie soluia
numeric a problemei Cauchy. Se spune c se realizeaz integrarea numeric a ecuaiei (8.1) cu condiia iniial (8.2), prin aplicarea unei metode de integrare numeric. Valorile h i := t i +1 t i , i = 0,1,..., N 1 se numesc pai de integrare. Intervalul [ t 0 , t N ] se numete interval de observare. Lungimea intervalelor

corespunztoare valorilor calculate care, mai departe, sunt folosite drept valori extrase din soluia numeric, se numesc pai de observare. De exemplu, dac pasul de integrare este constant: h = ( t N t 0 ) / N , atunci y i este soluia calculat la momentele t i = t 0 + i h i pasul de observare, notat
h obs , este un multiplu al pasului de integrare h: h obs = k h , k * , unde *

reprezint mulimea numerelor naturale nenule.


Exemplul 8.1:

Se consider ecuaia diferenial:


dy( t ) + a 0 y( t ) = b 0 u ( t ), dt a 1 , a 0 , b 0 , a 1 0, y 0 = y( t 0 ), t [ t 0 , t N ] a1

(8.3)

unde y 0 este condiia iniial precizat i u(t) este o funcie cunoscut analitic sau printr-un ir de valori. Pentru o valoare oarecare dar fixat a argumentului t, u(t) reprezint o valoare constant. Atunci ecuaia (8.3) se poate rescrie sub forma:

a b dy( t ) = 0 y( t ) + 0 u ( t ), y( t 0 ) = y 0 . dt a1 a1

(8.4)

Membrul drept al ecuaiei (8.4) se noteaz prin f(t,y(t)). Astfel, ecuaia (8.3) este adus la o form echivalent cu cea din (8.1). Sub aceast formulare, problema (8.4) reprezint n fapt un model matematic pentru o categorie important de fenomene sau procese din lumea real i anume sistemele dinamice liniare constante de ordinul nti. Pentru o astfel de

8.1

Formularea problemei

267

interpretare, u ( t ) se numete mrime de intrare (comand) a sistemului, iar y( t ) se numete mrime de ieire. L{ } reprezint Notnd U (s) = L{u ( t )} , Y (s) = L{y( t )} , unde transformarea Laplace i considernd condiia iniial nul, y 0 = 0 , atunci sistemul modelat prin ecuaia (8.4) este caracterizat de funcia de transfer notat G (s) :

G (s) :=

b0 Y(s) = . U(s) a 1 s + a 0

(8.5)

Dac sistemul dinamic este cunoscut prin funcia sa de transfer, se aduce acesta la forma (8.4) prin transformarea Laplace invers i considernd condiia iniial nul. n aceste condiii, a rezolva numeric ecuaia (8.4) nseamn de fapt a simula numeric comportarea sistemului dinamic liniar descris de ecuaia (8.3) sau funcia de transfer (8.5), pentru o anumit funcie de intrare u(t) precizat.
8.1.2 Ecuaii difereniale ordinare de ordin superior A. Ecuaii difereniale ordinare de ordinul n

Fie ecuaia diferenial de ordinul n:

dt dt a i , b 0 , i = 0,1,..., n; a n 0
cu condiiile iniiale cunoscute:

an

d n y( t )
n

+ a n 1

d n 1 y( t )
n 1

+ + a1

dy( t ) + a 0 y( t ) = b 0 u ( t ), , dt

(8.6)

y( t 0 ), y (1) ( t 0 ),..., y ( n 1) ( t 0 ), t 0 [a , b] ,

(8.7)

iar funcia u ( t ) este cunoscut analitic sau printr-un ir de valori. Pentru rezolvarea numeric a acestei ecuaii, aceasta se transform ntr-un sistem de n ecuaii difereniale ordinare, fiecare ecuaie fiind de ordinul nti. n acest fel, metodele pentru rezolvarea ecuaiilor difereniale de ordinul nti se extind la cazul sistemelor de ecuaii difereniale. Fiind n ecuaii de ordinul nti, se spune c astfel de sisteme au ordinul n.
Exemplul 8.2:

Se consider ecuaia diferenial (8.6), cu condiiile iniiale (8.7). i n acest caz ecuaia (8.6) reprezint un model matematic pentru sisteme dinamice liniare

268

8.

Ecuaii difereniale ordinare cu condiii iniiale

constante de ordinul n. Procednd ntr-o manier similar celei prezentate la Exemplul 8.1, un astfel de sistem poate fi cunoscut prin funcia sa de transfer:

G (s) =

a n s + a n 1 s

b0 n 1

+ + a1 s + a 0

n acest din urm caz, pentru simularea numeric a sistemului dinamic, se ajunge la forma (8.6) prin aplicarea transformatei Laplace invers i considernd condiiile iniiale nule. Ecuaia (8.6) se rescrie sub forma:
d n y( t ) dt n = a0 a dy( t ) a d n 1 y( t ) b 0 y( t ) 1 n 1 + u(t) . an an an dt an dt n 1

Se realizeaz notaiile: k = a n k / a n , k = 1,..., n; n = b 0 / a n i se definesc urmoarele variabile de lucru:


x 1 ( t ) = y( t ), dy( t ) dx 1 ( t ) = = x1 (t ) dt dt d 2 y( t ) dx 2 ( t ) x 3 (t ) = = = x 2 (t ) dt dt 2 x 2 (t) = x n (t) = d n 1 y( t ) dt n 1 = dx n 1 ( t ) = x n 1 ( t ) dt

Rezult, astfel, urmtorul sistem de ordinul n, cu ecuaii didereniale de ordinul nti, corespunztor ecuaiei (8.6): x1 ( t ) = x 2 ( t ) x ( t ) = x ( t ) 2 3 x ( t ) = x ( t ) n n 1 = x ( t ) n x 1 ( t ) n 1 x 2 ( t ) 1 x n ( t ) + n u ( t ) n la care se adaug:
y( t ) = x 1 ( t ) .

Cu urmtoarele notaii:
g ( t , x 1 ( t ), , x n ( t )) = x 1 ( t ); f i ( t , x 1 ( t ), , x n ( t )) = x i +1 ( t ), i = 1,..., n 1 ,

8.1

Formularea problemei

269

f n ( t , x 1 ( t ), , x n ( t )) = n x 1 ( t ) 1 x n ( t ) + n u ( t ) , x ( t ) = [x 1 ( t ) x n ( t )]T , f ( t , x ( t )) = [f1 ( t , x ( t )) f n ( t , x ( t ))]T ,

se obine: d x(t) = f ( t , x ( t )), dt y( t ) = g( t , x ( t )), cu condiia iniial:


[ 0] x ( t 0 ) =: x [0] = x1 x [n0]

(8.8)

] = [y(t
T

0)

y ( n 1) ( t 0 ) .

(8.9)

Ecuaia (8.8), cu condiia iniial (8.9), extinde la cazul vectorial problema (8.1) cu condiia iniial (8.2). Pentru rezolvarea problemei (8.6), (8.7), rezolvarea problemei (8.8), (8.9) constituie o etap intermediar, ceea ce intereseaz fiind obinerea funciei y(t). Pentru aceasta, au loc urmtoarele: plecnd de la i x [ 0]
[ 0] y 0 = y( t 0 ) = x 1 ( t 0 ) = x 1 , pentru fiecare argument (punct) t i se integreaz [i ] ecuaia (8.8) rezultnd x [i ] x ( t i ) i apoi se extrage valoarea y( t i ) y i = x 1 .

Ecuaiile (8.8) sunt liniare n variabilele de lucru x 1 , , x n i, eventual, u ( t ) . Aceste variabile se mai numesc variabile interne sau variabile de stare, n legtur cu Exemplul 8.2. Dac (8.6), (8.7) reprezint modelul unui sistem dinamic de ordinul n, aceste variabile de stare pot avea sau nu semnificaie fizic. Ecuaiile (8.8) se pot scrie i sub forma:

d x (t ) = A x(t ) + b u (t ) , dt T y( t ) = c x ( t )
n aceast formulare matricea A i vectorii b, c sunt:

(8.10)

0 0 A= 0 n

1 0

0 1

0 0

0 n 1

0 0 n 2 2

0 0 , 0 1 1 nxn

(8.11)

270

8.

Ecuaii difereniale ordinare cu condiii iniiale

b = [0 0 n ]T , c T = [1 0 0]1xn .
Observaie: Determinantul caracteristic al matricei A este:
det(s I n A ) = s n + 1 s n 1 + + n 1 s + n .

Ecuaia det(s I n A ) = 0 coincide cu ecuaia caracteristic ataat ecuaiei omogene a ecuaiei (8.6). Aadar, valorile proprii ale matricei A coincid cu soluiile ecuaiei caracteristice ataate problemei (8.6). Mai mult, dac se consider c ecuaia (8.6) este modelul unui sistem dinamic liniar de ordinul n, cunoscut prin funcia de transfer: G (s) = s + 1 s
n n 1

n + + n 1 s + n

rezult c valorile proprii ale matricei A coincid cu polii funciei de transfer (zerourile numitorului funciei de transfer). Matricea A este o matrice de tip Frobenius, numit i forma companion asociat ecuaiei caracteristice a ecuaiei omogene, ataat ecuaiei difereniale (8.6). Reprezentarea vectorial-matricial (8.10), dac reprezint modelul unui sistem dinamic liniar de ordinul n, se mai numete i reprezentare intrare-stareieire (u x - y), ecuaiile implicate numindu-se ecuaii de stare ale sistemului dinamic. n acest context, A se numete matrice de stare (evoluie), b se numete vector de intrare (comand), iar c se numete vector de ieire (observare).
B. Ecuaii difereniale ordinare de ordinul (n,m)

Se consider ecuaia diferenial:


an bm d n y( t ) dt
m n

+ a n 1

d n 1 y( t ) dt
n 1

+ + a1

dy( t ) + a 0 y( t ) = dt

du ( t ) + b 0 u ( t ), dt dt dt a i , b j ; i = 0,1,..., n; j = 0,1,..., m; a n 0
m

d u(t)

+ b m 1

d m 1u ( t )
m 1

+ + b1

(8.12)

cu condiiile iniiale cunoscute:


y (i ) ( t 0 ), u ( j) ( t 0 ); i = 0,1,..., n 1; j = 0,1,..., m 1; t 0 [a , b] ,

(8.13)

i u(t) o funcia cunoscut analitic sau printr-un ir de valori. Se consider

8.1

Formularea problemei

271

ndeplinit condiia: m n . Astfel, se generalizeaz subcazul A, descris de ctre ecuaiile (8.6), (8.7). Fr a restrnge generalitatea, se presupune c m = n. Pentru cazul m < n, se consider coeficienii b m +1 = b n = 0 . n continuare, se introduc notaiile:
k := a n k / a n , k = 1,..., n; 0 = 1; k := b n k / a n , k = 0,1,..., n

Cu aceste notaii i procednd ntr-o manier similar celei de la subcazul A, se obine urmtorul sistem de ecuaii difereniale: x 1 ( t ) = x 2 ( t ) x ( t ) = x ( t ) 2 3 x ( t ) = x ( t ) n n 1 = x ( t ) n x 1 ( t ) n 1 x 2 ( t ) 1 x n ( t ) + u ( t ) n la care se adaug: y( t ) = ( n n 0 ) x 1 ( t ) + ( n 1 n 1 0 ) x 2 ( t ) + + (1 1 0 ) x n ( t ) + 0 u ( t ) n aceast situaie, reprezentarea intrare-stare-ieire este urmtoarea:

(8.14)

d x(t) = A x(t ) + b u (t ) dt T y( t ) = c x ( t ) + d u ( t )
n care matricea A are aceeai form ca n (8.11), iar vectorii sunt:
b = [0 0 1]T , c = [ n n 0 1 1 0 ]T , d = [ 0 ]

Ecuaiile (8.14) trebuie completate cu condiiile iniiale:


x ( t 0 ) = [x 1 ( t 0 ) x n ( t 0 )]T

care se obin utiliznd (8.14), exprimndu-se n funcie de condiiile iniiale (8.13). Practic, se deriveaz succesiv expresia lui y( t ) din (8.14) i se ine cont de restul de relaii din (8.14). Expresiile astfel obinute se evalueaz pentru t = t 0 . n final, rezult un sistem determinat de ecuaii algebrice liniare, de ordinul n, avnd drept necunoscute condiiile iniiale x i ( t 0 ), i = 1,..., n . Expresia (8.14) se numete prima form canonic (de stare). O alt posibilitate pentru definirea variabilelor de stare conduce la sistemul de ecuaii:

272

8.

Ecuaii difereniale ordinare cu condiii iniiale

n x n ( t ) + ( n n 0 ) u ( t ) x 1 ( t ) = x ( t ) = x ( t ) x ( t ) + ( ) u ( t ) 2 1 n 1 n n 1 n 1 0 x n ( t ) = x n ( t ) 1 x n ( t ) + (1 1 0 ) u ( t )
y( t ) = x n ( t ) + 0 u ( t )

(8.15)

n acest caz, condiiile iniiale x ( t 0 ) = [x 1 ( t 0 ) x n ( t 0 )]T se obin din expresia lui y( t ) i a derivatelor sale, precum i din ecuaiile de stare (8.15), exprimndu-se n funcie de condiiile iniiale (8.13), Astfel, se obine:
x n ( t 0 ) = y( t 0 ) 0 u ( t 0 ) ,
n k i =0 n k j=0

x k (t 0 ) =

nki y (i) (t 0 ) n k j u ( j) (t 0 ),

k = 1,..., n 1 ,

0 = 1, y ( 0) ( t 0 ) = y( t 0 ), u ( 0) ( t 0 ) = u ( t 0 ) .

Reprezentarea vectorial-matricial este:

~ d x(t) ~ = A x(t) + b u(t) dt ~ ~T y( t ) = c x ( t ) + d u ( t ) ~ ~ ~ unde A = A T , ~ c T = b T , b = c, d = d , cu A, b, c T , d definite n (8.11), la prima form canonic. Ecuaiile (8.15) sunt cunoscute sub denumirea de a doua form canonic (de stare).
8.1.3 Sisteme de ecuaii difereniale

Se trateaz cazul sistemelor n care fiecare ecuaie, n parte, este o ecuaie diferenial de un anumit ordin oarecare. Pentru nceput, se consider un sistem cu n ecuaii difereniale de ordinul nti: d x (t ) = f ( t , x ( t )), dt

f ( t , x ( t )) = [f1 ( t , x ( t )) f n ( t , x ( t ))]T , cu x ( t 0 ) condiia iniial cunoscut. n general, funciile f i ( t , x ( t )), i = 1,..., n

x ( t ) = [x 1 ( t ) x n ( t )]T ,

(8.16)

8.1

Formularea problemei

273

sunt neliniare. Cele dou abordri prezentate n subcapitolul anterior se ncadreaz n aceast descriere general, cu meniunea c funciile f i ( t , x ( t )), i = 1,..., n sunt liniare. Dac ecuaiile difereniale ale sistemului (8.16) nu sunt de ordinul nti, ci de ordin superior, atunci se transform acestea n subsisteme cu ecuaii difereniale de ordin nti, utliznd metodologia prezentat anterior.
Exemplul 8.3:

Se consider sistemul de ecuaii difereniale:

d 2 y( t ) dy( t ) dz( t ) a + a1 + a 0 t y( t ) = b 0 u ( t ) 2 2 dt dt dt 3 c d z( t ) + c t 2 dz( t ) + c y( t ) z( t ) = d u ( t ) 2 1 0 0 dt dt 3


a 0 , a 1 , a 2 , b 0 , c 0 , c1 , c 2 , d 0 ,

(8.17)

cu

condiiile

iniiale

y( t 0 ), y (1) ( t 0 ),

z( t 0 ), z (1) ( t 0 ), z ( 2) ( t 0 ) precizate i funcia u(t) cunoscut.

Acest sistem modeleaz un sistem dinamic neliar complex, alctuit din dou subsisteme care interacioneaz ntre ele. Fiecare ecuaie diferenial din (8.17) corespunde unui subsistem. n ansamblu, intrarea sistemului este u(t), iar ieirile sistemului sunt y(t) i z(t), respectiv. Variabilele de stare pentru acest sistem sunt urmtoarele:

dy( t ) = x1 (t ) , dt dz( t ) d 2 z( t ) = x 3 ( t ), x 5 ( t ) = = x 4 (t) . x 3 ( t ) = z( t ), x 4 ( t ) = dt dt 2 Atunci sistemul (8.17) se poate rescrie, obinnd ecuaiile de stare: x1 ( t ) = y( t ), x 2 ( t ) =
x1 ( t ) = x 2 ( t ) b a0 a t x1 (t ) 1 x 2 (t ) x 4 (t ) + 0 u (t ) x 2 ( t ) = a2 a2 a2 x ( t ) = x ( t ) , 4 3 x 4 ( t ) = x 5 ( t ) c d x 5 ( t ) = 0 x 1 ( t ) x 3 ( t ) c1 t 2 x 4 ( t ) + 0 u ( t ) c2 c2 c2 precum i ecuaiile de ieire:

y( t ) = x 1 ( t ) , z ( t ) = x 3 ( t )

274

8.

Ecuaii difereniale ordinare cu condiii iniiale

la care se adaug condiiile iniiale cunoscute:


x ( t 0 ) = y( t 0 ) y (1) ( t 0 ) z ( t 0 ) z (1) ( t 0 ) z ( 2) ( t 0 ) .

8.1.4 Clasificarea metodelor de integrare numeric

Categoriile de metode numerice pentru rezolvarea ecuaiilor difereniale ordinare de ordinul nti sunt descrise principial, dup cum urmeaz. a) Metodele numerice directe calculeaz, la fiecare pas de integrare t i , soluia aproximant y i , utiliznd o relaie de recuren exprimat ca funcie de valoarea estimat n punctul anterior, y i 1 , i eventual ca funcie de h i 1 i t i 1 , unde h i 1 = t i t i 1 . Ca urmare, aceste metode se mai numesc i metode ntr-un pas, pas cu pas sau cu pai separai. b) Metodele numerice indirecte calculeaz, la fiecare punct de integrare t i , soluia aproximant y i , utiliznd o relaie de recuren bazat pe un numr de valori anterior calculate: y i 1 ,..., y i k ,... Ca urmare, aceste metode se mai numesc i metode n mai muli pai, cu pai legai sau multipas. n funcie de natura formulelor de integrare, ambele categorii de metode pot fi de dou tipuri, descrise n continuare. Aceast prezentare se refer la metodele numerice directe, principiul aplicndu-se i la cealalt clas de metode. 1)
Metodele explicite sau predictor utilizeaz o relaie de recuren de tipul: y i = y i 1 + E ( y i 1 , t i 1 , h i 1 ) , n acest fel prezicndu-se (estimndu-se) valoarea aproximant y i . Metodele implicite sau corector exploateaz relaii de recuren de tipul: y i = y i 1 + I ( y i 1 , t i 1 , h i 1 , y i (, t i , h i )) . De regul, n membrul drept se consider y i ca fiind obinut de la o metod de tip predictor, soluie notat cu y i,P . n membrul stng al

2)

ecuaiei anterioare se obine y i := y i,C :

y i ,C = y i 1 + I ( y i 1 , t i 1 , h i 1 , y i ,P (, t i , h i )) ,
noua valoare y i ,C corectnd valoarea estimat y i,P .

8.2

Metode directe

275

Pentru sisteme cu ecuaii didereniale de ordinul nti, se folosesc acealeai metode, prin extensie la cazul vectorial. Metodele directe i explicite au avantajul unui timp redus de calcul, precum i faptul c necesit doar cunoaterea condiiei iniiale a ecuaiei, pentru a se putea aplica. Din acest punct de vedere, se spune c aceste metode sunt autostartabile. Aceste metode pot, ns, eua n cazul unor anumite tipuri de ecuaii difereniale, aa cum se va prezenta n subcapitolul 8.5 destinat ecuaiilor difereniale stiff. Pentru astfel de probleme, singura soluie posibil este aplicarea metodelor indirecte i implicite, chiar dac sunt n general consumatoare de timp de calcul i necesit cunoaterea unor estimaii iniiale suplimentare ale soluiei. Astfel, alegerea unui tip sau altul de metod depinde de aplicaie i de timpul de calcul disponibil, n general impus de problema de rezolvat, practic realizndu-se un compromis ntre acestea (precizie de calcul i timp de calcul).

8.2

Metode directe

8.2.1 Metodele Euler

Principiul acestor tipuri de metode este ca pentru fiecare punct de integrare t i +1 , i = 0,1,..., N 1, t i +1 = t i + h i , s se opreasc primii doi termeni din dezvoltarea n serie Taylor a funciei y(t) n jurul punctului t i . Astfel, se obine expresia:
y( t i+1 ) = y( t i + h i ) = y( t i ) + h i dy( t ) h i2 d 2 y + (), [ t i , t i+1 ] (8.18) dt 2! dt 2

Ecuaia diferenial care se dorete a fi rezolvat numeric fiind:

dy( t ) = f ( t , y( t )) , dt

(8.19)

atunci, aproximnd y ( t i ) prin y i calculat la pasul anterior i neglijnd ultimul termen din (8.18), se obine formula Euler explicit (predictor): y( t i +1 ) y i +1 = y i + h f ( t i , y i ), i = 0,1,, N 1 y 0 = y( t 0 ) precizat Particulariznd dup valorile indicelui i, se obine: . (8.20)

276

8.

Ecuaii difereniale ordinare cu condiii iniiale

y1 = y 0 + h 0 f ( t 0 , y 0 ), y 2 = y1 + h1 f ( t 1 , y1 ),, y N = y N 1 + h N1 f ( t N 1 , y N 1 ) Eroarea comis prin neglijarea ultimului termen din relaia (8.18) se numete eroare de trunchiere la un pas. Aceasta este de ordinul lui h i2 , mrime notat prin O (h i2 ) . Prin aceast metod se nlocuiete curba y = y i ( t ) , pe intervalul [ t i , t i +1 ] , cu tangenta dus n punctul ( t i , y i ) la aceast curb. Principiul este ilustrat n Figura 8.1.
y

y( t 2 )

y( t )

y1 ( t ) y 2 (t)

Yi y( t i )

(T0 ) y( t 0 ) = Y0

y( t 1 )

Y2 Y1 (T1 )

(T2 )

t
t0 = 0

t1

t2

Fig. 8.1 Metoda Euler predictor: reprezentare principial

Astfel, curba y(t) reprezint soluia exact a ecuaiei difereniale de ordinul nti cu condiia iniial y( t 0 ) = y 0 , y 1 ( t ) este soluia exact a ecuaiei (8.19) cu condiia iniial y( t 1 ) = y1 , iar y 2 ( t ) este soluia exact a ecuaiei (8.19) cu condiia iniial y( t 2 ) = y 2 i aa mai departe pentru indicele i = 3,, N . Dezavantajul acestei metode este faptul c, la fiecare pas, soluia aproximativ traverseaz ctre o alt curb din familia de soluii a ecuaiei (8.19), tangenta fiind dus n captul iniial al intervalului de integrare. Astfel, erorile de aproximare sunt n general semnificative. Pentru nlturarea acestui neajuns, se modific relaia (8.20), ducndu-se tangenta n captul final al intervalului de integrare. Se obine:

y i+1 = y i + h i

dy ( t i+1 ) . dt
(8.21)

innd cont de ecuaia (8.19), se ajunge la formula Euler implicit:


y i +1 = y i + h i f ( t i +1 , y i +1 ), i = 0,1,..., N 1 .

8.2

Metode directe

277

Formula (8.21) este o relaie de recuren implicit, legtura fiind asigurat de ctre funcia f. Practic, exploatarea formulei implicite se realizeaz cu schema:
k +1] [k ] y[ i +1 = y i + h i f ( t i +1 , y i +1 ), k = 0,1,..., s; i = 0,1,..., N 1 0] pentru care estimaia iniial y[ i +1 se obine cu relaia explicit (8.20): 0] y[ i +1 = y i + h i f ( t i , y i ), i = 0,1,..., N 1 .

(8.22)

Relaia (8.22) se numete schema Euler corector. Pentru fiecare punct de integrare, t i +1 , formula (8.22) se aplic pn cnd se atinge o precizie impus . Astfel, pentru punctul de integrare t i +1 , algoritmul se oprete la un pas [s], pentru care este ndeplinit condiia:
s +1] [s ] | y[ i +1 y i +1 | .

s +1] Aceast condiie fiind ndeplinit, mai departe se consider y i+1 = y[ i +1 .

8.2.2 Metoda Taylor de ordinul p

Principiul acestei metode este ca pentru fiecare punct de integrare t i +1 , i = 0,1,..., N 1, t i +1 = t i + h i , s se opreasc primii p + 1 termeni din dezvoltarea n serie Taylor a funciei y(t) n jurul punctului t i . Metoda are la baz expresia:

y( t i +1 ) = y( t i + h i ) = y( t i ) + h i y (1) ( t i ) + + h ip p! y (p) (t i ) +

h i2 ( 2) y (t i ) + 2! y ( p+1) (), [ t i , t i +1 ].

h ip+1 (p + 1)!

n aceast expresie, se aproximeaz y( t i +1 ) y i+1 , y( t i ) y i , se neglijeaz ultimul termen i se ine cont de forma ecuaiei difereniale (8.19) care trebuie rezolvat. Se obine urmtoarea relaie:
hp h i2 (1) f ( t i , y i ) + + i f ( p 1) ( t i , y i ), 2! p! i = 0,1,..., N 1; y( t 0 ) = y 0 . y i+1 = y i + h i f ( t i , y i ) +

(8.23)

Relaia de calcul (8.23) reprezint formula de integrare Taylor de ordinul p, pentru rezolvarea acuaiilor difereniale ordinare de ordinul nti.

278

8.

Ecuaii difereniale ordinare cu condiii iniiale

Eroarea de trunchiere la un pas este de ordinul lui h ip +1 . Pentru multe probleme, acurateea soluiilor astfel determinate crete odat cu creterea ordinului metodei, p. Se observ c pentru ordinul p=1, relaia (8.23) coincide cu formula Euler predictor (8.20). Observaie: Pentru aplicarea formulei (8.23), trebuie evaluate derivatele funciei f de ordinul k = 1,2, , p 1 :

f ( k ) ( t i , y( t i )) =

d ( k 1) f ( t , y( t )) t =ti dt dy ( k 1) ( k 1) f ( t , y( t )) f ( t , y( t )) + = t =t i dt y t

.
t=ti

Notnd:

( k 1) f ( t , y( t )) , t =ti t dy ( k 1) ( k 1) fy ( t i , y( t i )) = f ( t , y( t )) dt t = t i y f t( k 1) ( t i , y( t i )) =
rezult formula de calcul:
( k 1) f ( k ) ( t i , y( t i )) = f t( k 1) ( t , y( t )) t = t + f y ( t , y( t )) t = t f ( t , y( t )) t = t ,
i i i

[ [

] ]

k = 1,..., p 1. Pentru un ordin p ridicat calculele pot deveni dificile, fiind necesare derivatele pariale de ordin superior pentru evaluarea funciei f n diverse puncte ale intervalului de integrare [ t 0 , t N ] , anume n punctele de integrare t i +1 , i = 0,1,..., N 1 . Aceast deficien este nlturat de ctre metodele RungeKutta prezentate n subcapitolul urmtor.
Exemplul 8.4:

Se consider sistemul de ecuaii difereniale:

dx 1 ( t ) / dt = t x 1 ( t ) x 2 ( t ) ; x 1 (0) = s1 , x 2 (0) = s 2 ; t [0, T] . dx 2 ( t ) / dt = x1 ( t ) + x 2 ( t )


Se utilizeaz formula Taylor de ordinul II, pentru integrarea sistemului de ecuaii, folosind un pas de integrare constant h = T / N , ntr-un numr precizat de puncte N, t i = i h , i = 1,..., N :

8.2

Metode directe

279

x [i +1] = x [i ] + h f ( t i , x [i ] ) + (h 2 / 2) f (1) ( t i , x [i ] );
[i ] x [i ] = x 1

x [2i ] , i = 0,1,..., N; x [0] = [s1 s 2 ]T .


T
T T

innd cont de urmtoarele relaii: f ( t , x ( t )) = [f 1 ( t , x ( t )) f 2 ( t , x ( t ))] = [t x 1 ( t ) x 2 ( t ) x 1 ( t ) + x 2 ( t )] ,

(1)

( t , x ( t )) =

f ( t , x ( t )) + t dx dx f f ( t , x ( t )) 1 ( t , x ( t )) + ( t , x ( t )) 2 ( t , x ( t )) x 1 dt x 2 dt

dx 1 ( t ) / dt = f 1 ( t , x ( t )), dx 2 ( t ) / dt = f 2 ( t , x ( t )) ,

se obine formula de integrare pentru rezolvarea numeric a sistemului de ecuaii difereniale, subiect al acestui exemplu:
[i ] t x [i ] x [2i ] h 2 ( t i2 + 2) x 1 ( t i + 1) x [2i ] , x [i+1] = x [i ] + h i [1 + i] [i ] [i ] [i ] 2 x x ( t + 1 ) x + 2 x + i 1 2 1 2 i = 0,1,..., N 1.

8.2.3 Metodele Runge-Kutta ordinul p

n cadrul metodelor Runge-Kutta se nlocuiesc calculele pentru derivatele de ordin superior ale funciei f, care intervin n metodele de tip Taylor, prin evaluarea acestei funcii n diverse puncte ale fiecrui interval [ t i , t i +1 ], i = 0,1,...., N 1 . Aceste evaluri elimin dezavantajul menionat pentru formula general Taylor de ordin p. Fr a restrnge generalitatea, se consider punctele de integrare echidistante, altfel spus un pas de integrare constant:
h i = t i +1 t i = h = ( t N t 0 ) / N, i = 0,1,..., N 1 .

Ca urmare, formula de integrare Taylor de ordinul p (8.23) devine: h 2 (1) h p ( p1) f (t i , y i ) + + f ( t i , y i ), 2! p! i = 0,1,..., N 1; y( t 0 ) = y 0 . y i+1 = y i + h f (0) ( t i , y i ) + Pentru nlocuirea derivatelor de ordin superior ale funciei f, se caut o relaie de recuren de tipul urmtor:

280

8.

Ecuaii difereniale ordinare cu condiii iniiale

y i+1 = y i + h [ 0 f ( t i , y i ) + 1 f ( t i + 1 h , y i + 1 h ) + 2 f (t i + 2 h, y i + 2 h ) + + p 1 f ( t i + p 1 h , y i + p 1 h ) , i = 0,1,..., N 1

sau, mai convenabil, sub forma urmtoare, unde condiia iniial y 0 este considerat a fi cunoscut (precizat):
y i +1 = y i + 0 k 0 + 1 k 1 + p 1 k k 1 ; i = 0,1,..., N 1; t i = t 0 + i h;
k 0 = h f ( t i , y i ), k 1 = h f ( t i + 1 h, y i + 1,0 k 0 ),

(8.24)

k 2 = h f ( t i + 2 h, y i + 2,0 k 0 + 2,1 k 1 ),
k p 1 = h f ( t i + p 1 h , y i + p 1, 0 k 0 + p 1,1 k 1 + + p 1,p 2 k p 2 ) (8.24), Coeficienii implicai n relaia de integrare anume i , i = 0,1,..., p 1, , , , se determin astfel nct s se realizeze coincidena cu formula Taylor de ordin p, descris generic de formula (8.23). Observaie: Metoda Runge-Kutta de ordinul p=1 coincide cu metoda Euler explicit sau Taylor de ordinul I. n acest caz particular, se poate scrie: y i+1 = y i + 0 k 0 , unde 0 = 1 i k 0 = h f ( t i , y i ), i = 0,1,..., N 1. Pentru aceast formul, eroarea de trunchiere la un pas este de ordunul lui h 2 . Se ilustreaz principiul metodelor Runge-Kutta, utiliznd formula de integrare (8.24) i considernd, n cele ce urmeaz, ordinul p = 2 . Astfel, metoda Taylor de ordinul II const n utilizarea formulei:
y i +1 = y i + h (0) h 2 (1) f (t i , yi ) + f (t i , yi ) 1! 2

(8.25)

Eroarea de trunchiere la un pas de integrare este de ordinul e T1 = O ( h 3 ) . Aa cum s-a artat n general n cadrul subcapitolului anterior, derivata de ordinul nti a funciei f este: f (1) ( t i , y i ) = f t ( t i , y i ) + f y ( t i , y i ) f ( t i , y i ) . nlocuind aceast expresie n relaia (8.25), se obine:
y i+1 = y i + h (0) h2 f (t i , y i ) + f t ( t i , y i ) + f y ( t i , y i ) f ( t i , y i ) . (8.26) 1! 2

8.2

Metode directe

281

Pe de alt parte, formula Runge-Kutta de ordinul II are expresia: y i +1 = y i + 0 k 0 + 1 k 1 ; k 0 = h f ( t i , y i ), k 1 = h f ( t i + h , y i + k 0 ).

(8.27)

Coeficienii 0 , 1 , , se determin astfel nct relaiile de calcul (8.26) i (8.27) s coincid. Pentru aceasta, n relaia (8.27) se nlocuiesc coeficienii k 0 i k 1 i se dezvolt n serie Taylor funcia f ( t i + h , y i + k 0 ) , n jurul punctului ( t i , y i ) , reinnd primii doi termeni ai dezvoltrii. Astfel, se comite o eroare de trunchiere de ordinul e T 2 = O ( h 2 ) . Se obin urmtoarele:
y i +1 = y i + 0 h f ( t i , y i ) + 1 h f ( t i + h , y i + h f ( t i , y i )) = y i + 0 h f (t i , y i ) + h h 1 h f ( t i , y i ) + f t (t i , y i ) + f y ( t i , y i ) f ( t i , y i ) (8.28) 1! 1! = y i + h ( 0 + 1 ) f ( t i , y i ) + h 2 1 f t (t i , y i ) + 1 f y (t i , y i ) f (t i , y i ) .

Din relaiile (8.26) i (8.28) rezult urmtoarele, unde c este o constant real arbitrar: 0 + 1 = 1; 1 = 1 / 2; 1 = 1 / 2 0 = 1 c; 1 = c; = 1 /( 2 c); = 1 /( 2 c). Pentru alegerea uzual c = 1 / 2 , se obine formula Runge-Kutta de ordinul II:
1 1 k 0 + k 1 ; t i = t 0 + i h , i = 0,1,..., N 1; 2 2 k 0 = h f ( t i , y i ), k 1 = h f ( t i + h , y i + k 0 ); y 0 precizat. y i+1 = y i +

Eroarea total de trunchiere la un pas este compus din eroarea e T1 de la trunchierea formulei Taylor de ordinul II i din eroarea e T 2 comis la dezvoltarea din relaia (8.28). Astfel, eroarea de trunchiere la un pas a formulelor Runge-Kutta de ordinul II este de ordinul lui h 3 . Uzual folosit este formula Runge-Kutta de ordinul IV, descris prin urmtoarele relaii de calcul: 1 y i+1 = y i + ( k 0 + 2 k 1 + 2 k 2 + k 3 ); t i = t 0 + i h , i = 0,1,..., N 1; 6 1 1 k 0 = h f ( t i , y i ), k1 = h f ( t i + h , y i + k 0 ), 2 2 1 1 k 2 = h f ( t i + h , y i + k 1 ), k 3 = h f ( t i + h , y i + k 2 ); y 0 precizat. 2 2

282

8.

Ecuaii difereniale ordinare cu condiii iniiale

Pentru aceast formul, eroarea de trunchiere la un pas de integrare este de ordinul lui h 5 .
Exemplul 8.5:

Se reia Exemplul 8.4. De aceast dat se deduc formulele de integrare Runge-Kutta de ordinul II, obinnd relaia general de calcul: x [i+1] = x [i ] + 1 1 k 0 + k1 ; 2 2

k 0 = h f ( t i , x [i ] ), k 1 = h f ( t i + h , x [i ] + k 0 );
[i ] x [i ] = x 1

x [2i ] , x [0] = [s1 s 2 ]T ; i = 0,1,..., N 1; t i = i h.


T

innd cont de expresia funciei f (Exemplul 8.4), rezult urmtorii vectori de coeficieni pentru acest exemplu: t x [i ] x [2i ] k 1,0 ; k0 = = h i [1 i] [i ] x1 + x 2 k 2, 0 ( t i + h ) ( x [i ] + k 1,0 ) ( x [i ] + k 2,0 ) k 1,1 1 2 k1 = . = h [i ] [i ] k + + + ( x k ) ( x k 2, 0 ) 2 , 1 1,0 1 2
8.2.4 Metodele Runge-Kutta cu pas autoadaptabil

O manier standard de a determina acurateea soluiei furnizate de o formul de integrare este de a calcula aceasta cu pasul de integrare h i , obinnd o prim estimaie y 1 i +1 , i de a recalcula soluia lucrnd cu pasul pe jumtate h 1 / 2 , obinnd estimaia y i2+1 , dup schema:
hi hi / 2 i /2 yi y1 y i h y1 y i2+1 i +1 ; i +1 / 2

Se compar cele dou valori final obinute i dac este ndeplinit condiia: 2 | y1 i +1 y i +1 | , unde este o precizie impus, atunci se reine drept aproximaie y i +1 = y i2+1 . Astfel, dac modificrile sunt neglijabile, atunci rezultatele sunt acceptate, iar dac nu, se njumtete din nou pasul. ns pasul de integrare nu se poate micora excesiv de mult, deoarece erorile de rotunjire se pot acumula nepermis de mult. n plus, procedeul are dezavantajul c este costisitor ca timp de calcul, datorit diferitelor evaluri ale funciei de integrat f. Ca urmare, a aprut ideea de a folosi dou formule de tip Runge-Kutta, de

8.2

Metode directe

283

ordine diferite, de exemplu Runge-Kutta II i III, Runge-Kutta IV i V etc. Abordarea se bazeaz pe evaluri ale funciei f n aceleai puncte, cu excepia unui punct suplimentar pentru formula de ordin superior. Pentru un pas de integrare anumit, se aplic cele dou formule. Dac diferena dintre valorile calculate se nscrie ntr-o anumit eroare prescris, atunci se alege valoarea corespunztoare formulei de ordin superior. Dac testul eueaz, abia atunci se recurge la njumtirea pasului de integrare, dup schema prezentat anterior. Astfel, metoda propus de Fehlberg calculeaz dou estimri pentru noua valoare y i +1 , utiliznd formulele Runge-Kutta de ordinele IV i V, dup care se compar rezultatele:
(1) ( 2) i i yi y iIV y iV +1 ; y i +1 . RK IV RK V h h

Ambele formule utilizeaz aceiai coeficieni, fiind necesare numai ase evaluri de funcii. O mbuntire a acestui principiu se bazeaz pe adaptarea pasului de integrare n funcie de natura funciei f de integrat. Astfel, pentru variaiile lente ale funciei f, pasul de integrare este crescut, iar pentru variaii brute ale funciei, pasul este micorat. Adaptarea pasului nu se realizeaz prin njumtire, ci n funcie de erorile prescris i obinut. Aceste concepte sunt detaliate n continuare.
Metoda Runge-Kutta-Moler de ordinul II-III cu pas autoadaptabil

Fie ecuaia vectorial diferenial ordinar de ordinul nti:

d x(t) = f ( t, x ( t )) dt
vectorial de integrat este f ( t , x ( t )) = [f 1 ( t , x ( t )) f n ( t , x ( t ))] . Integrarea
T

cu x ( t 0 ) condiia iniial cunoscut, unde x ( t ) = [x 1 ( t ) x n ( t )] i funcia


T

are loc pe intervalul [ t 0 , t f ] i se obine x [i ] x ( t i ), i = 1,2,...; x [ 0] = x ( t 0 ) , unde t i [ t 0 , t f ] . Se cunoate aproximaia x [i ] , obinut pentru punctul de integrare t i . Pentru determinarea aproximantului x [i +1] x ( t i +1 ) , corespunztor punctului t i +1 = t i + h , se folosesc formulele Runge-Kutta de ordinele II i III:
RK-II:

x II

[i +1]

=x

[i ]

+ (1 / 2) (k 1 + k 2 ) k 2 = h f (t i + h, x
[i ]

unde: [i ] k 1 = h f ( t i , x ),

+ k 1 ),

284

8.

Ecuaii difereniale ordinare cu condiii iniiale

eroarea de trunchiere la un pas fiind e T = O(h 3 ) ;


RK-III: x III = x
[i +1] [i ]

+ (1 / 6) (k 1 + 4 k 3 + k 2 )

unde: k 1 = h f ( t i , x [i ] ), k 2 = h f ( t i + h , x [i ] + k 1 ), k 3 = h f ( t i + h / 2, x [i ] + (1 / 4) k 1 + (1 / 4) k 2 ), eroarea de trunchiere la un pas fiind e T = O(h 4 ) . Se observ c sunt necesare doar trei evaluri ale funciei f, la fiecare pas de integrare. Cu aceste estimri calculate, se determin diferena lor, care este de ordinul lui h 3 :

1 i +1] i +1] E = x [III x [II = (k1 2 k 3 + k 2 ) [+e T O (h 3 )] . 3


Se noteaz =|| E || . Aceasta se numete eroarea calculat pentru noua estimaie x [i +1] . Corespunztor, pasul cu care s-a lucrat este: h = h . Adaptarea pasului de integrare se realizeaz impunnd condiia; || E || , unde se numete eroarea acceptabil. Aceasta din urm se calculeaz cu relaia: := tol max{|| x [i ] || ,1} , n care tol reprezint acurateea dorit (uzual,

tol = 10 3 ), iar max este funcia maximum a valorilor argument. Pentru a obine eroarea acceptabil , ar trebui s se lucreze cu un pas de integrare h . innd
cont de faptul c eroarea E este de ordinul lui h 3 , se consider c:

3 3 h h

h h 3

Pentru calculul pasului de integrare h , practic se folosete relaia:

h = S h 3

(8.29)

unde S este un parametru de siguran, avnd o valoare pozitiv subunitar, de exemplu 0.9. Strategia de calcul a soluiei problemei de integrare i de adaptare a pasului este urmtoarea: dac , atunci eroarea este acceptabil i se realizeaz urmtoarele atribuiri:

t i+1 t i + h; x [i+1] x [i] + (1 / 6) (k1 + 4 k 3 + k 2 );

8.2

Metode directe

285

i n continuare, pentru punctul de integrare t i +1 , pasul este mrit conform relaiei (8.29); altfel, > , i se adapteaz numai pasul de integrare, micorndu-se, anume: o dac 0 , atunci h nou min{h max , h } , unde h max este o valoare iniial explicat n continuare, i se reiau toate
i +1] i +1] , x [III , E, , h , h h nou . calculele n secvena: x [II

Procedura se execut n condiia dubl : ( t i+1 < t f ) i ( h h min ) , aceasta fiind i condiia de reluare a calculelor. Sunt folosite urmtoarele valori iniiale ale diverilor parametri de calcul:

h=

tf t0 t t0 t t0 ; h min = f ; h max = f . 100 20000 5

Dac la un anumit moment dat, anume pasul de integrare [k], este ndeplinit urmtoarea relaie, atunci se realizeaz o corecie a pasului de integrare:
tk + h > tf h tf tk .

Dac, ns, s-a ieit din condiia de reluare cu ( h < h min ) i ( t i +1 < t f ) , atunci algoritmul de calcul nu converge, anume nu se poate gsi o soluie. Soluia numeric a sistemului de ecuaii difereniale conine toate valorile [i ] x corespunztoarelor pailor efectuai cu succes. Punctele de integrare nu sunt, n general, echidistante. Acest algoritm poate fi folosit n dou moduri. Astfel, dac nu intereseaz ca soluia ecuaiei difereniale vectoriale s fie obinut n anumite puncte de integrare (precizate) din intervalul de observare [a,b], atunci procedura este apelat iniializnd t 0 = a i t f = b . Dac ns se dorete soluia n anumite puncte {Ti}, i = 1,2,, N ale intervalului de observare [a,b], atunci procedura este apelat repetat, iniializnd t 0 = Ti i t f = Ti +1 . Corespunztor, din irul de valori obinute pentru soluie se reine doar ultima valoare, anume cea corespunztoare punctului t f = Ti +1 . Aceasta devine valoare (condiie) iniial pentru urmtorul interval de calcul, iniial plecndu-se de la x [ 0] = x ( t 0 ) . Pentru ilustrarea practic a acestor aspecte, ct i pentru a compara diferite tipuri de metode Runge-Kutta fr i cu pas autoadaptiv, se recomand abordarea problemelor de studiu ce fac obiectul exerciiilor propuse E8.3 i E8.4.

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