Sunteți pe pagina 1din 280

Erori 1

0. Erori

§0.1. Tipuri şi surse de erori

De regulă, în matematică, prin eroare se înţelege diferenţa dintre valoarea


exactă a unui număr şi valoarea sa aproximativă. Se disting trei tipuri de erori.
1. Erorile inerente sunt cele care provin din simplificarea modelului fizic, pentru a
putea fi descris printr-un model matematic. În această categorie intră şi erorile de
date (aparatele de măsură lucrează inevitabil cu anumite abateri) .
2. Erorile de metodă (trunchiere) apar datorită faptului că formulele şi ecuaţiile
exacte se înlocuiesc cu formule şi ecuaţii aproximative, pentru a permite calculul
printr-un număr finit de operaţii aritmetice. De exemplu, numărul e este suma seriei
1 1 1
1 + + + ... + + ... , care nu poate fi calculată exact. Însumând numai un număr
1! 2! n!
finit de termeni apare în mod inevitabil o eroare de trunchiere.
3. Erorile de rotunjire se datorează faptului că în calcule, numerele cu un număr
infinit de zecimale se aproximează prin numere cu un număr finit de zecimale. Pe
de altă parte, orice calculator operează doar cu un număr finit de numere reale
(evident cu un număr finit de zecimale), în timp ce mulţimea numerelor reale este
infinită. Apare astfel o aproximare inevitabilă a numerelor reale care intervin în
calcule cu numerele reprezentate în calculator.
În acest capitol sunt analizate erorile inerente şi erorile de rotunjire,
urmând ca erorile de trunchiere să fie studiate pe parcursul cărţii, odată cu
prezentarea metodelor numerice respective.
2 Bazele Analizei Numerice

§0.2. Reprezentarea numerelor în calculator

La baza construcţiei majorităţii tipurilor de calculatoare numerice stau


elementele bistabile şi de aceea se foloseşte ca bază de reprezentare a numerelor în
calculator baza 2, ale cărei cifre sunt 0 şi 1.
Este cunoscut că orice număr real x se poate reprezenta în baza 2 sub
forma:
x = ± (α n 2 n + α n −1 2 n −1 + ... + α 0 2 0 + α −1 2 −1 + α − 2 2 −2 + ...) ,
cu α i = 0 sau 1 .
De exemplu numărul 13.5 în baza 10 se poate scrie în baza 2 sub forma:
13.5 = 1 ⋅ 2 3 + 1 ⋅ 2 2 + 0 ⋅ 2 + 1 ⋅ 2 0 + 1 ⋅ 2 −1 = 1101.1
Reprezentarea numerelor în calculator (reprezentarea internă) se face pe
un număr finit de poziţii, n , numit lungimea cuvântului, care este fixată la
construcţia calculatorului. Pentru precizii mai bune, unele calculatoare au
posibilitatea reprezentării numărului pe 2n, 3n ,… poziţii (reprezentare pe dublu
cuvânt, triplu cuvânt, …).
Pe cele n poziţii ale unui cuvânt, un număr poate fi reprezentat în virgulă
fixă (proprie numerelor întregi sau numerelor subunitare) sau în virgulă mobilă.
Majoritatea tipurilor de calculatoare numerice folosesc pentru calcule
ştiinţifice reprezentarea numerelor în virgulă mobilă. În această reprezentare,
poziţia virgulei zecimale nu este fixă. Orice număr real x se poate scrie sub forma
x = a ⋅10b sau x = a ⋅ 2b cu a < 1 şi b ∈ Z ; a se numeşte mantisa numărului real
x, iar b exponentul.
Reprezentarea în virgulă mobilă este normalizată dacă prima cifră a
mantisei este nenulă, deci dacă a ≥ 10 −1 , respectiv a ≥ 2 −1 . În acest caz
reprezentarea este unică. Cifrele semnificative ale unui număr sunt cifrele
mantisei, neluând în seamă zerourile care le preced.

Exemplul Reprezentarea normalizată, în virgulă mobilă a numărului în baza 10


x = 13.5 este: 0.135 ⋅10 2 = 0.13510 2 , indicele 10 arătând că reprezentarea este în
baza 10. În acest caz mantisa este a = 0.135, iar exponentul b =2.
În baza 2, acelaşi număr are reprezentarea normalizată în virgulă mobilă
0.110112100 = 0.11011 ⋅ 2 4 , având mantisa a = 0.11011 şi exponentul b = 100.

Pentru orice calculator numeric există numerele fixe t şi e care reprezintă


numărul de cifre ale mantisei, respectiv ale exponentului unui număr real ce poate
fi reprezentat în calculatorul respectiv (n = t + e). Numerele t şi e determină
Erori 3

împreună cu baza de numeraţie (10 sau 2) o mulţime finită de numere reale


F ⊂ R care pot fi reprezentate exact în calculator.

§0.3. Erorile de rotunjire şi calculele în virgulă mobilă

Deoarece mulţimea F a numerelor reprezentabile într-un calculator este


finită, se pune problema aproximării unui număr real x ∉ F printr-un număr
g ∈ F . Această problemă apare nu numai în datele de intrare în calculator, ci şi
pentru rezultate intermediare sau finale în urma calculelor efectuate în calculator.
x
Sunt frecvente cazurile când x, y ∈ F şi x ± y sau x ⋅ y sau nu fac parte din
y
mulţimea F.
În mod natural, orice număr x ∉ F se aproximează printr-un număr din F,
notat cu rd (x ) , care este cel mai apropiat număr de x ce aparţine lui F. Numărul
rd (x ) va satisface
x − rd ( x ) ≤ x − g , ∀g ∈ F ,
obţinându-se în multe cazuri prin rotunjire.

Exemplul 1. Fie un calculator cu t = 4 şi e = 1. Atunci


rd (0.1428510 0 ) = 0.142910 0
rd (3.1415910 0 ) = 0.3142101
rd (0.14284210 2 ) = 0.142810 2 .

În general, pentru t fixat, dacă x ∉ F , rd (x ) se poate determina astfel. Se


aduce x la forma normalizată x = a ⋅10b , cu a ≥ 10 −1 , adică
a = 0.α1α 2 ...α iα i +1... , 0 ≤ α i ≤ 9 , α1 ≠ 0 .
Se determină
def ⎧0.α α ...α , dacă 0 ≤ α t +1 ≤ 4
a' = ⎨ 1 2 t −t ,
⎩0.α1α 2 ...α t + 10 , dacă α t +1 ≥ 5
adică α t creşte cu 1 dacă α t +1 ≥ 5 şi se renunţă la celelalte zecimale începând cu
α t +1 .
~
În final, definim rd ( x ) = sign ( x ) ⋅ a '⋅10 b .
~
rd ( x ) − x
Pentru orice număr real x ≠ 0 , eroarea relativă este raportul .
x
Deoarece a ≥ 10 −1 , eroarea relativă admite următoarea margine
4 Bazele Analizei Numerice

rd ( x ) − x 5 ⋅ 10 −(t +1)
~
≤ ≤ 5 ⋅ 10 − t .
x a
~
Notăm eps = 5 ⋅10 −t . Dacă rd ( x ) = x(1 + ε ) , atunci, din inegalitatea de mai sus
rezultă ε ≤ eps . Numărul real eps se numeşte precizia calculatorului.
Pentru rotunjirea în sistemul binar se procedează analog. Se aduce x ∉ F la
forma normală x = a ⋅ 2b cu 2 −1 ≤ a < 1 şi a = 0.α1α 2 ...α iα i +1... cu α i = 0 sau 1
şi α1 = 1 .
⎧0.α1α 2 ...α t , dacă α t +1 = 0 ~
Se determină a' = ⎨ −t , iar rd (x ) = sgn ( x ) ⋅ a '⋅2 b . În
⎩0.α1α 2 ...α t + 2 , dacă α t +1 = 1
acest caz eps = 2 −t .
~ ~
În cazul în care rd (x ) ∈ F , atunci rd (x ) este chiar rd (x ) . Deoarece
numărul poziţiilor pentru exponentul e este finit, există , din păcate, numere
~
x ∉ F pentru care rd (x ) ∉ F .

Exemplul 2. Considerăm t = 4 şi e = 2. Atunci


~
a) rd (0.3179410110 ) = 0.317910110 ∉ F
~
b) rd (0.999971099 ) = 0.100010100 ∉ F
~
c) rd (0.01234510 − 99 ) = 0.123510 − 100 ∉ F
~
d) rd (0.5432110 − 110) = 0.543210 − 110 ∉ F
În cazurile a) şi b) exponentul pozitiv este prea mare ca să poată fi
reprezentat pe spaţiul alocat (e = 2). În situaţiile acestea se spune că avem depăşire
superioară a exponentului. În cazul b) depăşirea superioară a exponentului apare
abia după rotunjire. În exemplele c) şi d) are loc depăşire de exponent inferioară,
adică exponentul negativ este prea mic pentru a putea fi reprezentat pe spaţiul
alocat. În aceste două situaţii, depăşirea inferioară a exponentului poate fi prevenită
definind rd (0.01234510 − 99 ) = 0.012310 − 99 ∈ F (reprezentarea nu mai este
normalizată) şi
rd (0.5432110 − 110 ) = 0 ∈ F .
Atunci rd nu satisface egalitatea rd (x ) = x(1 + ε ) , deci eroarea relativă
poate fi mai mare ca eps.
Situaţiile de depăşire de exponent superioară sau inferioară sunt tratate de
calculatoarele numerice ca fiind excepţii.
~
În mod obişnuit, rd (x ) se defineşte prin egalitatea rd ( x ) = rd (x ) .

În continuare, ţinând seama că depăşirile de exponent superioare şi/sau


inferioare nu sunt frecvente, vom considera cazul ideal e = ∞ şi
Erori 5

rd : R → F prin rd (x ) = x(1 + ε ) cu ε ≤ eps , (∀) x ∈ R .


x
Se poate întâmpla ca rezultatul operaţiilor aritmetice x ± y , x ⋅ y , să
y
nu fie elemente ale mulţimii F, chiar dacă operanzii x şi y ∈ F .
Vom nota cu + ∗ , − ∗ , ⋅∗ , / ∗ operaţiile în virgulă mobilă corespunzătoare
operaţiilor aritmetice care sunt definite astfel:
def
x + ∗ y = rd ( x + y ) ,
def
x − ∗ y = rd ( x − y ) ,
def
pentru orice x, y ∈ F

x ⋅ y = rd ( x ⋅ y ) ,
def
x / ∗ y = rd ( x / y ) ,
deci
x + ∗ y = ( x + y )(1 + ε1 ) ,
x − ∗ y = ( x − y )(1 + ε 2 ) ,
cu ε i ≤ eps, i = 1,4 .
x ⋅∗ y = ( x ⋅ y )(1 + ε 3 ) ,
x / ∗ y = ( x / y )(1 + ε 4 ) .
Aceste operaţii în virgulă mobilă nu au proprietăţile binecunoscute ale operaţiilor
aritmetice. De exemplu:
eps
1) x + ∗ y = x , dacă y < x , unde x, y ∈ F , iar B este baza de
B
numeraţie.
Precizia maşinii eps ar putea fi definită ca fiind cel mai mic număr g ∈ F
pentru care 1 + ∗ g > 1 , adică eps = min{ g ∈ F 1 + ∗ g > 1, g > 0} .
2) Asociativitatea nu se mai păstrează, aşa cum va rezulta din următorul
exemplu.

Exemplul 3.
Fie a = 0.2337125810 − 4 , b = 0.33678429 10 2 , c = −0.3367781110 2 .
Într-un calculator cu t = 8 şi e = ∞ , operaţia + ∗ conduce la:
( )
a + ∗ b + ∗ c = 0.2337125810 − 4 + ∗ 0.61800000 10 − 3 =
= 0.0233712610 − 3 + ∗ 0.6180000010 − 3 = 0.6413712610 − 3
(a +∗ b)+ ∗ c = (0.2337125810 − 4 + ∗ 0.3367842910 2)−∗ 0.3367781110 2 =
= (0.0000002310 2 + ∗ 0.3367842910 2 ) − ∗ 0.3367781110 2 =
= 0.3367845210 2 − ∗ 0.3367781110 2 = 0.6410000010 − 3
Rezultatul exact al adunării este:
6 Bazele Analizei Numerice

a + b + c = 0.0000002337 125810 2 + 0.33678429 10 2 − 0.3367781110 2 =


= 0.641371258 10 − 3 .

Dacă E este o expresie aritmetică, va rezulta din context cum se evaluează


E. Dacă este nevoie se pot folosi paranteze care să precizeze ordinea operaţiilor.
Vom nota cu fl (E ) valoarea expresiei E obţinută din calculul în virgulă mobilă.
De exemplu:
def
fl (x + y ) = x + ∗ y

( )
def
fl ( x + ( y + z )) = x + ∗ y + ∗ z

( )
def
fl ((x + y ) + z ) = x + ∗ y + ∗ z

§0.4. Propagarea erorilor

Aşa cum am văzut în Exemplul 3 din paragraful precedent, în funcţie de


schema aleasă pentru evaluarea unei expresii am obţinut rezultate diferite în calcule
în aritmetica virgulei mobile. De aceea este necesar să distingem între diferitele
scheme de calcul, chiar dacă din punct de vedere matematic ele sunt echivalente.
Desemnăm cu termenul algoritm o secvenţă finită de operaţii elementare
care descriu cum se calculează soluţia unei probleme.
În cele ce urmează vom formaliza noţiunea de algoritm, pentru a putea
descrie propagarea erorilor.
Presupunem că numerele y1 , y 2 ,..., y m constituie soluţia unei probleme
ale cărei date de intrare sunt x1 ,..., x n . Dacă introducem vectorii coloană
⎛ x1 ⎞ ⎛ y1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ x2 ⎟ ⎜ y2 ⎟
x=⎜ ⎟, y =⎜ , atunci algoritmul pentru rezolvarea problemei de mai sus
M M ⎟
⎜ ⎟ ⎜ ⎟
⎜x ⎟ ⎜y ⎟
⎝ n⎠ ⎝ m⎠
revine la determinarea funcţiei vectoriale y = ϕ (x ) , ϕ : D → R m , D ⊂ R n , ϕ
fiind dată de m funcţii ϕ i : D → R , yi = ϕ i ( x1 ,..., x n ) , i = 1, m .
La fiecare etapă de calcul există o mulţime operand de numere, care sunt
fie numerele de intrare xi sau au rezultat din operaţii anterioare. O operaţie
elementară calculează un nou număr din unul sau mai multe elemente ale mulţimii
operand. Acest nou număr este, fie un rezultat intermediar, fie unul final şi se
adaugă mulţimii operand, care este curăţată de datele care nu mai sunt necesare
Erori 7

pentru restul calculelor. Mulţimea operand finală va consta din rezultatele dorite
y1 , y 2 ,..., y m . În concluzie, o operaţie corespunde unei transformări a mulţimii
operand. Scriind mulţimile operand consecutive ca vectori coloană
⎛ x (i ) ⎞
⎜ 1 ⎟
⎜ (i ) ⎟
(i ) ⎜ x 2 ⎟
x = ∈ R ni , putem asocia fiecărei operaţii elementare o funcţie vectorială
⎜ M ⎟
⎜ (i ) ⎟
⎜ xn ⎟
⎝ i ⎠
( )
elementară astfel: ϕ (i ) : Di → R ni +1 , Di ⊂ R ni astfel încât ϕ (i ) x (i ) = x (i +1) cu
x (0 ) = x , unde x (i +1) este o reprezentare vectorială a mulţimii operand
transformate.
Fiind dat un algoritm, şirul său de operaţii elementare dă naştere unei
descompuneri a lui ϕ într-un şir de funcţii elementare ϕ (i ) : Di → Di +1 , i = 0, r ,
, ϕ = ϕ (r ) o ϕ (r −1) o ... o ϕ (0 ) , D0 = D , Dr +1 ⊆ R nr +1 = R m .
nj
Dj ⊆R

Exemplul 1. Pentru ϕ (a, b, c ) = a + b + c să evidenţiem doi algoritmi:


a) Fie η = a + b şi y = c + η . Atunci, descompunerea de mai sus este:
⎛a + b⎞
ϕ (0 ) (a, b, c ) = ⎜⎜
c
(
⎟⎟ ∈ R 2 , ϕ (1) (u , v ) = u + v ∈ R , ϕ (a, b, c ) = ϕ (1) ϕ (0 ) (a, b, c ) . )
⎝ ⎠
b) Fie η = b + c şi y = a + η . În acest caz:
⎛ a ⎞
ϕ (0 ) (a, b, c ) = ⎜⎜
b + c
( )
⎟⎟ ∈ R 2 , ϕ (1) (u , v ) = u + v ∈ R , ϕ (a, b, c ) = ϕ (1) ϕ (0 ) (a, b, c ) .
⎝ ⎠

Un argument pentru alegerea unui algoritm îl constituie propagarea erorilor


în aritmetica virgulei mobile.
Să analizăm algoritmii a) şi b) din exemplul de mai sus pentru intrările
numerice din Exemplul 3 al secţiunii precedente. În cazul a)
η = fl ( a + b) = ( a + b)(1 + ε 1 ) ,
~
y = fl (η + c ) = (η + c )(1 + ε 2 ) = [( a + b)(1 + ε 1 ) + c](1 + ε 2 ) =
⎡ a+b ⎤
= (a + b + c) ⎢1 + ε1 (1 + ε 2 ) + ε 2 ⎥ .
⎣ a + b + c ⎦
~
y − y a + b
Eroarea relativă a lui ~y , εy = = ε1 (1 + ε 2 ) + ε 2 , sau, după
y a+b+c
a+b
renunţarea la termenii neliniari în ε avem ε y ≈ ε1 + 1 ⋅ ε 2 .
a+b+c
8 Bazele Analizei Numerice

Coeficienţii lui ε 1 şi ε 2 măsoară efectul erorilor de rotunjire ε 1 şi ε 2 asupra


erorii ε y a rezultatului.
a+b
Factorul este critic; în funcţie de care dintre numerele a + b
a+b+c
sau b + c este mai mic, este mai bine să se procedeze via (a+b)+c decât
a+(b+c) pentru a calcula a+b+c.
Metoda de mai sus, de studiu a propagării erorilor, neglijând termenii de
ordin superior, se poate extinde, conducând la analiza diferenţială a erorilor unui
algoritm , pentru a calcula ϕ ( x) , dacă ϕ = ϕ (r ) o ϕ (r −1) o ... o ϕ (0 ) .
Pentru aceasta vom investiga cum erorile ∆x asupra datelor de intrare, ca
şi erorile de rotunjire acumulate de-a lungul algoritmului afectează rezultatul final
y = ϕ (x ) .
⎛ ϕ1 ( x1 ,..., x n ) ⎞
m ⎜ ⎟
Fie ϕ : D → R , ϕ ( x) = ⎜ M ⎟ , D fiind o submulţime deschisă
⎜ ϕ ( x ,..., x ) ⎟
⎝ m 1 n ⎠
a lui R . Presupunem că funcţiile ϕ , i = 1, m , au derivate continue pe D. Fie ~
n
i x o
valoare aproximativă pentru x.
Notăm ∆x = ~ x − x , ∆x i = ~ xi − xi erorile absolute ale lui ~ x şi respectiv ~ xi .
~
x − xi
Fie ε ~xi = i , dacă xi ≠ 0 erorile relative.
xi
Înlocuind datele de intrare x cu ~ x , obţinem ~ y = ϕ (~
x ) în loc de y = ϕ ( x ) .
Dezvoltând în serie Taylor şi renunţând la termenii neliniari în ∆xi
obţinem:
( ) ∂ϕ i
(x ) = ∑ ∂ϕ i (x ) ∆ x j , i = 1, m .
n n
∆yi = ~ y i − y i = ϕ i (~
x ) − ϕ i (x ) = ∑ ~ xj − xj
j =1 ∂x j j =1 ∂x j
Matriceal putem scrie:
∆y = Dϕ (x )∆x ,
unde Dϕ (x ) este matricea jacobiană a funcţiei ϕ ,
⎛ ∂ϕ1 ∂ϕ1 ⎞
⎜ ( x) ... ( x) ⎟
⎜ 1∂x ∂x n ⎟
Dϕ ( x) = ⎜ ... ... ... ⎟ .
⎜ ∂ϕ m ∂ϕ m ⎟
⎜⎜ ( x) ... ( x) ⎟
∂x ∂x n ⎟
⎝ 1 ⎠
∂ϕ i
Cantităţile (x ) semnifică modul în care yi sunt afectaţi de erorile
∂x j
absolute ∆x j ale lui x j .
Erori 9

Dacă y i ≠ 0, i = 1, m şi x j ≠ 0, j = 1, n atunci formula pentru propagarea


erorilor relative devine:
n xj ∂ ϕ i ( x)
ε yi = ∑ ⋅ ⋅εxj (1)
j =1ϕ i ( x) ∂xj
x j ∂ϕi
Cantităţile ⋅ se numesc numere de condiţionare.
ϕi ∂ x j
Dacă numerele de condiţionare au valori (absolute) mari se spune că
respectiva problemă este rău condiţionată, altfel problema este bine condiţionată.
Pentru problemele rău condiţionate, erori relative mici în datele de intrare
x, pot cauza erori relative mari în rezultatele y , y = ϕ (x ) .

Exempul 3. Pentru y = ϕ (a, b, c) = a + b + c avem:


a b c
εy = εa + εb + εc .
a+b+c a+b+c a+b+c
Această problemă este bine condiţionată dacă termenii a, b, c sunt mici în
comparaţie cu suma lor a+b+c .

Eroarea relativă (1) pentru câteva operaţii elementare, în care operanzii x


şi y sunt nenuli, este dată în tabelul:

ϕ εϕ
x y
εx + ε y , dacă x + y ≠ 0
x+y x+ y x+ y

x y
x–y εx − ε y , dacă x − y ≠ 0
x− y x− y
x⋅ y εx +εy
x/ y εx −εy
1
x εx
2

Se observă că la înmulţire, împărţire şi extragere de rădăcină pătrată erorile


relative ale operanzilor nu se propagă puternic în rezultate. Acelaşi lucru se
întâmplă şi în cazul adunării dacă cei doi operanzi au acelaşi semn. Atunci
x y
numerele de condiţionare şi sunt în (0,1) şi o margine a erorii
x+ y x+ y
relative este ε x + y ≤ max{ ε x , ε y } .
10 Bazele Analizei Numerice

Dacă operanzii care se adună au semne diferite, atunci cel puţin unul dintre
x y
numerele de condiţionare , este mai mare ca 1 şi erorile relative
x+ y x+ y
ε x , ε y sunt amplificate. Dacă x ≈ − y atunci se abandonează calculele (apare
cancelarea rezultatului).
Pentru descrierea propagării erorilor de rotunjire într-un algoritm dat ϕ ,
vom apela tot la formula ∆y = Dϕ ( x) ⋅ ∆x .
Presupunem că ϕ admite reprezentarea ϕ = ϕ ( r ) o ϕ ( r −1) o .... o ϕ ( 0) şi că
rezultatele calculelor pornind de la vectorul datelor de intrare, x = x (0) sunt date de
relaţiile:
x = x (0) , x (1) = ϕ (0) ( x (0) ) ,…, y = x ( r +1) = ϕ ( r ) ( x ( r ) ) , ϕ (i ) ∈ C 1 ( Di ) , i = 0, r .
Notăm ψ (i ) = ϕ ( r ) o .... o ϕ (i ) : Di → R m , i = 0, r şi ψ (0) = ϕ .
Erorile din datele de intrare şi erorile de rotunjire vor perturba rezultatele
intermediare exacte x(i), obţinându-se în aritmetica virgulei mobile aproximările
~
x (i ) date de relaţiile : ~
x (i +1) = fl (ϕ (i ) ( ~
x (i ) )) . Atunci erorile absolute se pot evalua
astfel:
∆x (i +1) = [ fl (ϕ ( i ) ( ~
x ( i ) )) − ϕ ( i ) ( ~
x ( i ) )] + [ϕ ( i ) ( ~
x ( i ) ) − ϕ ( i ) ( x ( i ) )] . (2)
Dar
ϕ (i ) ( ~x (i ) ) − ϕ (i ) ( x (i ) ) ≈ Dϕ (i ) ( x (i ) )∆x (i ) (3).
Cum ϕ (i ) este o funcţie elementară, evaluarea sa în virgulă mobilă va fi
fl (ϕ (i ) (u )) = rd (ϕ (i ) (u )) ,
care pe componente devine:
fl (ϕ (ji ) (u )) = rd (ϕ (ji ) (u )) = (1 + ε j )ϕ (ji ) (u ) cu ε j ≤ eps, j = 1, ni +1 .
Aici ε j este eroarea de rotunjire generată în timpul calculului în virgulă
mobilă a componentei a j-a, a lui ϕ (i ) .
Relaţiile de mai sus se scriu matriceal sub forma
fl (ϕ (i ) (u )) = ( I + E i +1 )ϕ (i ) (u ) ,
unde I este matricea unitate de ordinul ni+1 , iar Ei+1 este matricea diagonală a
erorilor:
⎛ ε 1 0 ... ... 0 ⎞
⎜ ⎟
⎜ 0 ε 2 0 ... 0 ⎟
E i +1 = ⎜ cu ε j ≤ eps .
... ... ... ... ... ⎟
⎜ ⎟
⎜ 0 0 ... ... ε n ⎟
⎝ i +1 ⎠

Prima paranteză dreaptă din ∆x (i +1) devine:


Erori 11

fl (ϕ (i ) ( ~
x ( i ) )) − ϕ ( i ) ( ~
x ( i ) ) = Ei +1 ⋅ ϕ ( i ) ( ~
x ( i ) ) ≈ Ei +1 ⋅ ϕ (i ) ( x ( i ) ) = Ei +1 x ( i +1) = α i +1 .
Vectorul coloană α i +1 poate fi interpretat ca eroarea absolută de rotunjire apărută
atunci când se evaluează în aritmetica virgulei mobile ϕ (i ) , iar elementele
diagonale ale matricei Ei+1 pot fi interpretate ca erori relative de rotunjire
corespunzătoare. Ţinând seamă de (2) şi (3) rezultă:
∆x (i +1) = α i +1 + Dϕ (i ) ( x (i ) ) ⋅ ∆x (i ) = E i +1 ⋅ x (i +1) + Dϕ (i ) ( x (i ) ) ⋅ ∆x (i )
i ≥ 0, ∆x (0) = ∆x .
Prin urmare:
∆x (1) = Dϕ (0) ( x) ⋅ ∆x + α 1
∆x ( 2) = Dϕ (1) ( x1 )[ Dϕ (0) ( x) ⋅ ∆x + α 1 ] + α 2
………………………………………….
∆y = ∆x ( r +1) = Dϕ ( r ) ...Dϕ (0) ∆x + Dϕ ( r ) ...Dϕ (1)α1 + ... + α r +1 .
Sau dacă ţinem seama de ceea ce am notat cu ψ avem:
∆y = Dϕ ( x)∆x + Dψ (1) ( x (1) ) ⋅ α 1 + ... + Dψ ( r ) ( x ( r ) ) ⋅ α r + α r +1 =
= Dϕ ( x)∆x + Dψ (1) ( x (1) ) ⋅ E1 x (1) + ... + Dψ ( r ) ( x ( r ) ) ⋅ E r x ( r ) + E r +1 y
Aceasta arată că matricea jacobiană Dψ (i ) este importantă pentru efectul
erorilor de rotunjire intermediare α i sau Ei asupra rezultatului final.

Exemplul 5 . Fie de calculat expresia a 2 − b 2 = ( a + b)(a − b) .


Vom prezenta 2 algoritmi:
Algoritmul 1:
⎛a2 ⎞
η1 = a × a , η 2 = b × b , y = η1 − η 2 . Atunci ϕ (0) (a, b) = ⎜⎜ ⎟⎟,
⎝ b ⎠
⎛u⎞
ϕ (1) (u , v) = ⎜⎜ 2 ⎟⎟ , ϕ ( 2) ( s, t ) = s − t , ϕ = ϕ ( 2) o ϕ (1) o ϕ (0) .
⎝v ⎠
Algoritmul 2:
⎛ a ⎞
( 0) ⎜ ⎟
η1 = a + b , η 2 = a − b , y = η1 ⋅ η 2 . Atunci ϕ (a, b) = ⎜ b ⎟
⎜ a + b⎟
⎝ ⎠
⎛ u ⎞
ϕ (1) (a, b, u ) = ⎜⎜ ⎟⎟ ; ϕ ( 2) ( s, t ) = s − t , ϕ = ϕ ( 2) o ϕ (1) o ϕ (0) .
⎝ a − b ⎠
În primul caz avem:
⎛a⎞ ⎛a2 ⎞ ⎛a2 ⎞
x = x (0) = ⎜⎜ ⎟⎟ , x (1) = ⎜ ⎟ , x ( 2) = ⎜ 2 ⎟ , x (3) = y = a 2 − b 2 ,
⎝b⎠ ⎜ b ⎟ ⎜b ⎟
⎝ ⎠ ⎝ ⎠
12 Bazele Analizei Numerice

ψ (1) (u , v) = u − v 2 ,ψ ( 2) (u , v ) = u − v , Dϕ ( x) = ( 2a,−2b) ,
⎛ ε 1a 2 ⎞ ε 0⎞
Dψ (1) ( x (1) ) = (1, − 2b) , Dψ ( 2) ( x ( 2) ) = (1, − 1) , α1 = ⎜ ⎟, E1 = ⎛⎜ 1 ⎟⎟ ,
⎜ 0 ⎟ ⎜
⎝ ⎠ ⎝ 0 0⎠
⎛ a ⋅∗ a ⎞ ⎛ a 2 ⎞
deoarece fl (ϕ (0) ( x (0) )) − ϕ (0) ( x (0) ) = ⎜ ⎟ − ⎜ ⎟ (eroarea de rotunjire în
⎜ b ⎟ ⎜ b ⎟
⎝ ⎠ ⎝ ⎠
virgulă mobilă apare doar pe prima poziţie). Similar
⎛ 0 ⎞ ⎛0 0 ⎞
α 2 = ⎜⎜ 2 ⎟⎟, E 2 = ⎜⎜ ⎟⎟ , α 3 = ε 3 (a 2 − b 2 ) , ε i ≤ eps, i = 1,3.
ε b
⎝ 2 ⎠ ⎝ 0 ε 2⎠
⎛ ∆a ⎞
Dacă ∆x = ⎜⎜ ⎟⎟, ∆y = 2a∆a − 2b∆b + a 2 ε 1 − b 2 ε 2 + ( a 2 − b 2 )ε 3 .
⎝ ∆b ⎠
În cazul algoritmului 2, avem:
⎛a⎞ ⎛ a + b ⎞ ( 2)
x = x ( 0) = ⎜⎜ ⎟⎟ , x (1) = ⎜⎜ ⎟⎟ , x = y = a 2 − b 2 ; ψ (1) (u , v) = u ⋅ v ,
b
⎝ ⎠ ⎝ a − b ⎠
⎛ ε 1 ( a + b) ⎞
Dϕ ( x) = (2a,−2b) , Dψ (1) ( x (1) ) = ( a − b, a + b) ; α 1 = ⎜⎜ ⎟⎟ ,
⎝ ε 2 ( a − b) ⎠
⎛ε 0⎞
α 2 = ε 3 (a 2 − b 2 ) şi E1 = ⎜⎜ 1 ⎟⎟ ; ε i ≤ eps .
⎝ 0 ε2 ⎠
Atunci ∆y = 2a ∆a − 2b ∆b + ( a 2 − b 2 )(ε 1 + ε 2 + ε 3 ) .
Se poate da o margine a efectului erorilor de rotunjire astfel:
- în algoritmul 1:
a 2ε1 − b 2ε 2 + ( a 2 − b 2 )ε 3 ≤ ( a 2 + b 2 + a 2 − b 2 ) eps
- în algoritmul 2:
( a 2 − b 2 )(ε1 + ε 2 + ε 3 ) ≤ 3 a 2 − b 2 eps.
Când selectăm un anumit algoritm de calcul pentru un ϕ (x ) (cu alte
cuvinte, o anumită descompunere a lui ϕ în funcţii elementare), Dϕ rămâne
neschimbat; matricele jacobiene Dψ (i ) care măsoară propagarea rotunjirilor vor fi
totuşi diferite, efectul total al erorilor de rotunjire va fi:
Dψ (1)α 1 + ... + Dψ ( 2)α 2 + α r +1 .
Un algoritm este numeric mai bun decât alt algoritm pentru calculul lui
ϕ (x ) , dacă pentru o mulţime de date x, efectul total al erorilor de rotunjire este
mai mic în cazul primului algoritm.
Sisteme de ecuaţii liniare 13

1. Sisteme de ecuaţii liniare

Reamintim că un sistem de n ecuaţii algebrice liniare cu n necunoscute este


de forma:
⎧a11x1 + a12 x2 + K + a1n xn = b1

⎪a21x1 + a22 x2 + K + a2n xn = b2
⎨ (1)
⎪ ....................
⎪⎩an1 x1 + an 2 x2 + K + ann xn = bn
Dacă notăm cu A matricea coeficienţilor, cu x vectorul coloană format cu
necunoscutele sistemului şi cu b coloana termenilor liberi, sistemul (1) se scrie
sub formă matriceală :
Ax=b, (2)
unde:
⎛ a11 a12 K a1n ⎞ ⎛ x1 ⎞ ⎛ b1 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ a21 a22 L a2n ⎟ ⎜ x2 ⎟ ⎜b ⎟
A=⎜ ⎟ , x=⎜ ⎟, b=⎜ 2⎟
M M M M M
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜a ⎟ ⎜ ⎟ ⎜ ⎟
⎝ n1 an 2 K ann ⎠ ⎝ xn ⎠ ⎝ bn ⎠
Metodele numerice de rezolvare a sistemelor algebrice de ecuaţii liniare
sunt de două tipuri: metode directe şi metode indirecte (sau iterative).
Metodele directe constau în transformarea sistemului (1) într–un sistem
triunghiular echivalent, care se rezolvă uşor. Cele mai cunoscute metode directe
sunt: metoda Gauss, metoda Cholesky (utilizată pentru sistemele în care matricea A
este simetrică şi pozitiv definită) şi metoda Householder.
Metodele directe permit determinarea soluţiei exacte a sistemului în cazul
ideal, când nu avem erori de rotunjire. Numărul operaţiilor aritmetice efectuate este
de ordinul n3. Pentru sisteme cu un număr de ecuaţii mai mare de 100, metodele
directe devin inutilizabile datorită acumulării erorilor de rotunjire care alterează
soluţia.
Metodele indirecte (sau iterative) constau în construcţia unui şir {x(k)} de
vectori n–dimensionali, care converge la soluţia exactă a sistemului. Se alege ca
14 Bazele Analizei Numerice

soluţie aproximativă a sistemului un termen x(s) al şirului, al cărui ordin depinde


de precizia impusă.
O iteraţie presupune efectuarea unui număr de operaţii aritmetice de
ordinul n2. Metodele iterative sunt utilizate la rezolvarea sistemelor mari de
ecuaţii. Cele mai cunoscute metode iterative sunt: Jacobi, Gauss–Seidel, metodele
de relaxare.

§1.1. Metoda Gauss. Factorizarea LU

Fie
⎛ 0 ⎞ ⎛0⎞
⎜ ⎟ ⎜ ⎟
⎜ M ⎟ ⎜ M ⎟
⎜ 0 ⎟ ⎜ ⎟
mr = ⎜ ⎟ şi e = ⎜ 1 ⎟
r
⎜ mr +1,r ⎟ ⎜0⎟
⎜ ⎟ ⎜ ⎟
⎜ M ⎟ ⎜ M ⎟
⎜ mn , r ⎟ ⎜0⎟
⎝ ⎠ ⎝ ⎠
(elementul 1 din er se află pe linia r).
O matrice de forma Mr = In – mr⋅er T, unde erT= (0, ... , 1, ... ,0) , se numeşte
matrice Frobenius. O astfel de matrice are următoarea structură:
⎛1 0 0 L 0⎞
⎜ ⎟
⎜ O ⎟
⎜0 1 0 L ⎟
Mr = ⎜ ⎟
⎜ 0 L − mr +1,r 1 L 0 ⎟
⎜ ⎟
⎜ M ⎟
⎜0 L − m 0 L 1 ⎟
⎝ nr ⎠
De exemplu, dacă n = 4 şi r = 2 , avem:
⎛ 1 0 0 0⎞ ⎛ 0 ⎞ ⎛ 1 0 0 0⎞ ⎛ 0 0 0 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0 1 0 0⎟ ⎜ 0 ⎟ ⎜ 0 1 0 0⎟ ⎜ 0 0 0 0⎟
M2 = ⎜ − (0 1 0 0) = ⎜ − =
0 0 1 0 ⎟ ⎜ m32 ⎟ 0 0 1 0 ⎟ ⎜ 0 m32 0 0 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜0 0 0 1⎟ ⎜ m ⎟ ⎜0 0 0 1⎟ ⎜0 m ⎟
⎝ ⎠ ⎝ 42 ⎠ ⎝ ⎠ ⎝ 42 0 0 ⎠
⎛1 0 0 0⎞
⎜ ⎟
⎜0 1 0 0⎟
=⎜
0 − m32 1 0 ⎟
⎜ ⎟
⎜0 − m 0 1 ⎟
⎝ 42 ⎠
Sisteme de ecuaţii liniare 15

Propoziţia 1. Orice matrice Frobenius Mr este inversabilă şi inversa sa este:


Mr–1 = In + mr ⋅ erT.
Demonstraţie.
(In – mr ⋅ erT)( In + mr ⋅ erT)= In – mr ⋅ erT + mr ⋅ erT – mr (erT mr ) erT.
Deoarece erT ⋅ mr = 0 , rezultă:
Mr (In + mr ⋅ erT) = In, şi deci Mr–1 = In + mr ⋅ erT. ‰

Teorema 1. Fie A o matrice pătrată de ordinul n care satisface condiţia:


⎛ a11 K a1r ⎞
⎜ ⎟
(*) det⎜ M M ⎟ ≠ 0 pentru orice r = 1, n − 1 .
⎜a ⎟
⎝ r1 K arr ⎠
Atunci există o matrice inferior triunghiulară M∈M n(R) astfel încât matricea U
= MA este superior triunghiulară.
Demonstraţie. Deoarece a11≠0 , putem considera matricea Frobenius
⎛ 1 0 K 0⎞
⎜ a ⎟
⎜ − 21 1 0 K 0 ⎟
⎜ a ⎟
M 1 = ⎜ 11 .
M M⎟
⎜ a ⎟
⎜ − n1 0 K 1 ⎟⎟
⎜ a
⎝ 11 ⎠
Dacă notăm A1 = A şi A2 =M1A1 , atunci avem
⎛ a ( 2 ) a ( 2) K a ( 2) ⎞
⎜ 11 12 1n ⎟
⎜ 0 ( 2)
a22 K a2( 2n) ⎟
A2 = ⎜ ⎟,
⎜ M M M ⎟
⎜ 0 ( 2) ⎟
an( 22) K ann
⎝ ⎠
unde, notând cu aij(1) = aij, pentru i, j = 1, n , avem: a1( 2j ) = a1(1j) pentru

ai(11) a1(1j)
j = 1, n ; aij( 2) = aij(1) − , pentru orice i, j = 2, n .
(1)
a11
Observăm că

( 2)
a21a12 1 a11 a12
a22 = a22 − = ≠ 0.
a11 a11 a21 a22
Dacă notăm
16 Bazele Analizei Numerice

⎛1 0 0 K 0⎞
⎜ ⎟
⎜0 1 0 K 0⎟
⎜ ( 2) ⎟
a32
⎜ 0 − ( 2) 1 K 0⎟
M2 = ⎜ a22 ⎟,
⎜M M M M⎟
⎜ ⎟
⎜ an( 22) ⎟
⎜⎜ 0 − 0 K 1⎟
( 2)
a22 ⎟
⎝ ⎠
atunci
⎛ a (3) (3)
a12 (3)
a13 K a1(n3) ⎞⎟
⎜ 11
⎜ 0 (3)
a22 (3)
a23 K a2(3n) ⎟
⎜ ⎟
A3 = M 2 A2 = ⎜ 0 0 (3)
a33 K a3(3n) ⎟ ,
⎜ ⎟
⎜ M M M M ⎟
⎜ 0 0 0 K ann (3) ⎟
⎝ ⎠
ai(22) a2( 2j)
unde aij(3) = aij( 2) pentru i=1, 2, j = 1, n şi ai(3j ) = ai( 2j ) − , i, j = 3, n .
( 2)
a22
Un calcul simplu ne arată că
a11 a12 a13
(3) 1
a33 = a a22 a23 ≠ 0 .
(1) ( 2) 21
a11 a22
a31 a32 a33
(r )
În general, arr ≠ 0 şi se poate considera matricea Frobenius:
⎛1 0 0 L 0⎞
⎜ ⎟
⎜ O ⎟
⎜0 1 0 L ⎟
⎜ (r )

⎜ ar +1,r ⎟
Mr = ⎜0 L − 1 L 0⎟ .
(r )
⎜ arr ⎟
⎜ M ⎟
⎜ (r ) ⎟
⎜ 0 L − anr 0 L 1⎟
⎜ (r )
arr ⎟
⎝ ⎠
Dacă notăm cu Ar+1=MrAr , atunci
Sisteme de ecuaţii liniare 17

⎛ a(r +1) a(r +1) K a1(rr +1) K a1(nr +1) ⎞⎟


⎜ 11 12
⎜ 0 (r +1)
a22 K a2(rr+1) K a2(rn+1) ⎟
⎜ ⎟
⎜ M M M M ⎟

Ar +1 = ⎜ 0 0 K ar(rr+1) K ar(rn+1) ⎟⎟ ,
⎜ 0 0 K 0 ar(r++11, r)+1 K ar(r++1,1n) ⎟
⎜ ⎟
⎜ M M M M . M ⎟
⎜⎜ 0 0 K 0 an(r, +r1+)1 K an(rn+1) ⎟⎟
⎝ ⎠
ai( rr ) ar( rj)
unde ai(rj +1) = ai( rj ) , pentru i=1,r , j = 1, n , ai j( r + 1)
= ai( rj ) − ,
ar( rr)
i, j = r + 1, n .
În final se obţine matricea superior triunghiulară
⎛ a ( n) a ( n) K a ( n) ⎞
⎜ 11 12 1n ⎟
⎜ 0 a ( n) K a ( n) ⎟
U = An = M n−1...M 2 M1 A = ⎜ 22 2n ⎟ .
⎜ M .M M ⎟
⎜ 0 0 K ann ⎠( n) ⎟

Notăm cu M=Mn–1 Mn–2 ... M2 M1 şi demonstraţia teoremei este completă. ‰

Exemplu.
⎛ ⎞
⎛ ⎞
⎛ 5 2 1⎞ ⎜ 1 0 0⎟ ⎜ 5 2 1⎟
⎜ ⎟
A1 = A = ⎜ 5 − 6 2 ⎟ , M1 = ⎜⎜ − 1 1 0 ⎟⎟ ,
A2 = ⎜⎜ 0 − 8 1⎟⎟ ,
⎜− 4 4 18 9
⎝ 2 1⎟⎠ ⎜ 0 1⎟ ⎜0 ⎟
⎝ 5 ⎠
⎝ 5 5⎠
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
⎜1 0 0⎟ ⎜5 2 1⎟ ⎜ 1 0 0⎟
M 2 = ⎜ 0 1 0 ⎟ , U = A3 = ⎜ 0 − 8 1⎟ , M = M 2 M 1 = ⎜ − 1 1 0 ⎟ .
⎜ 9 ⎟ ⎜ 9⎟ ⎜ 7 9 ⎟
⎜0 1⎟ ⎜0 0 ⎟ ⎜ 1⎟
⎝ 20 ⎠ ⎝ 4⎠ ⎝ 20 20 ⎠
Considerăm sistemul
⎧ 5 x1 + 2 x2 + x3 = 12

⎨5 x1 − 6 x2 + 2 x3 = −1 ,
⎪ − 4x + 2x + x = 3
⎩ 1 2 3
18 Bazele Analizei Numerice

a cărui soluţie este x1=1, x2=2, x3=3. Sub formă matriceală sistemul se scrie:
⎛ 12 ⎞
⎜ ⎟
Ax=b , unde b = ⎜ − 1⎟ . Acest sistem este echivalent cu următorul sistem:
⎜ 3⎟
⎝ ⎠
(M2M1A)x=(M2M1)b . Efectuând calculele obţinem

⎪ 5 x1 + 2 x2 + x3 = 12

⎨ − 8 x2 + x3 = −13 .
⎪ 9 27
⎪ x3 =
⎩ 4 4

Numărul operaţiilor pentru determinarea matricei U şi a vectorului Mb


a (r )
Pentru o linie fixată i se calculează − ir , apoi se fac înmulţirile cu
(r )
arr
arj( r ) , r + 1 ≤ j ≤ n , şi se adună aij( r ) , r + 1 ≤ j ≤ n . La fel şi cu bi( r +1) . Sunt
2(n–r)+3 operaţii elementare pentru fiecare linie i, r + 1 ≤ i ≤ n , şi pentru fiecare
etapă r vor fi (n − r )[2(n − r ) + 3] operaţii. În total vor fi
∑ [2(n − r )2 + 3(n − r )] = 3 n3 + 2 n 2 − 6 n
n
2 1 7
operaţii elementare. Dacă adăugăm şi
r =1
cele n2 operaţii pentru rezolvarea sistemului triunghiular, rezultă că numărul de
2 3 7
operaţii pentru rezolvarea sistemului Ax=b este n3 + n 2 − n .
3 2 6

În continuare notăm cu Lr = M r−1 . Din Propoziţia 1 rezultă că Lr este de


forma:
⎛1 K 0 K 0⎞
⎜ ⎟
⎜M O M M⎟
⎜0 1 K 0⎟
⎜ ⎟
⎜ ar( r+)1,r ⎟
Lr = ⎜ 0 L 0⎟ .
(r )
⎜ arr ⎟
⎜M M M⎟
⎜ (r ) ⎟
⎜ 0 K anr 0 K 1⎟
⎜ arr (r ) ⎟
⎝ ⎠
Dacă notăm cu L=L1L2...Ln–1, atunci L este o matrice inferior triunghiulară de
tipul următor
Sisteme de ecuaţii liniare 19

⎛ 1 0 0 K 0⎞
⎜ ⎟
⎜l 1 .0 K 0 ⎟
L = ⎜ 21 .
M M M M⎟
⎜ ⎟
⎜l l n3 K 1 ⎟⎠
⎝ n1 l n 2
Deoarece A = M 1−1M 2−1...M n−−11U , rezultă că:
A=LU (3)
Aşadar, orice matrice pătratică ce îndeplineşte condiţia (*) din Teorema 1 admite o
descompunere unică de forma (3), unde L este inferior triunghiulară având
elementele de pe diagonala principală egale cu 1 şi U este superior triunghiulară.
Descompunerea (3) este cunoscută sub numele de factorizarea LU.

Algoritmul pentru factorizarea LU


{ Determinarea matricelor U şi L cu păstrarea matricei A }
Pentru i:=1,n execută
Pentru j:=1,n execută
uij:=aij ;
dacă i=j atunci l i i:=1 altfel l i j:=0 ;
sfârşit pentru j ;
sfârşit pentru i ;
Pentru r:=1,n–1 execută
Pentru i:=r+1,n execută
Pentru j:=r+1,n execută
uir u rj
uij := uij − ;
u rr
sfârşit pentru j ;
u
lir := ir ;
urr
sfârşit pentru i ;
sfârşit pentru r ;
Pentru i:=2,n execută
Pentru j:=1,i–1 execută
uij:=0 ;
sfârşit pentru j ;
sfârşit pentru i .

Algoritmul se află programat în MATLAB şi poate fi apelat cu secvenţa:


[L,U ] = lu ( A) { se afişează cele două matrice }
În exemplul precedent avem:
20 Bazele Analizei Numerice

⎛ ⎞ ⎛ ⎞
⎜ 1 0 0⎟ ⎜ 1 0 0⎟
L1 = ⎜ 1 1 0⎟ , L2 = ⎜ 0 1 0⎟ ,
⎜ 4 ⎟ ⎜ 9 ⎟
⎜− 0 1⎟ ⎜0 − 1⎟
⎝ 5 ⎠ ⎝ 20 ⎠
⎛ ⎞⎛ ⎞
⎜1 0 0⎟ ⎜5 2 1 ⎟ ⎛ 5 2 1⎞
⎜ ⎟
A = LU = ⎜ 1 1 0⎟ ⋅ ⎜0 −8 1 ⎟ = ⎜ 5 − 6 2⎟
⎜ 4 9 ⎟ ⎜ ⎟
9 ⎜
⎜− − 1⎟ ⎜0 0 ⎟ ⎝ − 4 2 1⎟⎠
⎝ 5 20 ⎠ ⎝ 4⎠

(r )
Observaţia 1. Dacă pivotul este “foarte mic” , adică arr << 1 , atunci
împărţirile la acest pivot produc erori de rotunjire foarte mari, care alterează
soluţia. În acest caz se recomandă schimbarea pivotului. Se poate alege un nou
pivot
π r = a ir( r ) = max {a (r )
ij ; r ≤ j≤n }
sau π r = a (jrr ) = max { a (r )
kl ; r ≤ k, l ≤ n }
Aceasta presupune schimbarea între ele a două linii şi eventual şi a două coloane.

Algoritmul Gauss pentru rezolvarea sistemelor de ecuaţii liniare


Pentru r:=1,n–1 execută
Pentru i:=r+1,n execută
Pentru j:=r+1,n execută
găseşte pivotul conform cu (β) ;
schimbă linia i cu linia pivotului şi coloana j cu coloana
pivotului dacă este cazul ;
sfârşit pentru j
sfârşit pentru i
Pentru i:=r+1,n execută
a b
bi = bi − ir i
arr
Pentru j:=r+1,n execută
air arj
aij = aij − ; ;
arr
sfârşit pentru j ;
sfârşit pentru i ;
sfârşit pentru r ;
b
xn := n ;
ann
Sisteme de ecuaţii liniare 21

Pentru i:=n–1,1,–1 execută


s:=0 ;
Pentru j:=i+1,n execută
s:=s+aij⋅xj ;
sfârşit pentru j ;
(b − s )
xi := i ;
aii
sfârşit pentru i .

§1.2. Matrice simetrice pozitiv definite

Reamintim că o matrice simetrică se numeşte pozitiv definită, dacă forma


pătratică asociată este pozitiv definită. Mai precis, dacă A este o matrice simetrică,
atunci A se numeşte pozitiv definită dacă
ϕ(x)=xTAx > 0 ,
pentru orice x≠0 , unde x = (x1 , x 2 ,..., x n )T .
Din Algebra Liniară, se ştie că o matrice simetrică A, este pozitiv definită dacă şi
numai dacă ∆r >0 pentru orice r = 1, n , unde
⎛ a11 K a1r ⎞
⎜ ⎟
∆ r = det⎜ M M ⎟.
⎜a ⎟
⎝ r1 K arr ⎠
În practică aceste condiţii sunt greu de verificat pentru matrice de dimensiuni mari.
De aceea, în continuare vom prezenta unele condiţii necesare, respectiv şi
suficiente, pentru ca o matrice simetrică să fie pozitiv definită.

Propoziţia 1. Dacă A este o matrice simetrică pozitiv definită, atunci:


(a) aii > 0 pentru orice i = 1, n ,
(b) aiiajj>aij2 pentru orice i, j = 1, n .
Demonstraţie.
⎛ a11x1 + ... + a1n xn ⎞
⎜ ⎟
ϕ (x ) = x Ax = (x1 ,..., xn ) ⋅ ⎜
T
M ⎟ = (a11x1 + a12 x2 + ... + a1n xn )x1 +
⎜ a x + ... + a x ⎟
⎝ n1 1 nn n ⎠
+ (a21x1 + a22 x2 + ... + a2n xn )x2 + ... + (an1x1 + an 2 x2 + ... + ann xn )xn
Ţinând seama că aij = aji , în continuare avem
22 Bazele Analizei Numerice

n n
ϕ (x ) = ∑ ∑ aij xi x j = a11 x12 + 2a12 x1 x2 +...+ 2a1n x1 xn +
i =1 j =1
+ a22 x22 +....+ 2a2n x2 xn +
M
2
+ann xn
⎛ 0⎞
⎜ ⎟
⎜M⎟
În particular, pentru x = ei = ⎜ 1 ⎟ avem ϕ(ei) = aii . Cum ϕ este pozitiv definită şi
⎜ ⎟
⎜M⎟
⎜ ⎟
⎝ 0⎠
ei ≠ 0 , rezultă că aii = ϕ(ei) > 0 , adică (a).
Pentru un număr real oarecare λ avem
ϕ(λei+ej)=aiiλ2+2aijλ+ajj > 0 . (1)
Pentru ca inegalitatea (1) să fie adevărată pentru orice λ∈R, trebuie ca
( )
∆ = 4 aij2 − aii a jj < 0 .
Aşadar am demonstrat că aij2 < aii a jj pentru orice i, j = 1, n , adică (b). ‰

Observaţia 2. Condiţiile care apar în Propoziţia 1 sunt doar necesare nu şi


suficiente.

Exemplu.
⎛ 3 2 − 2⎞
⎜ ⎟
Matricea A = ⎜ 2 3 2 ⎟ satisface condiţiile din Propoziţia 1, dar nu este
⎜− 2 2 3 ⎟
⎝ ⎠
pozitiv definită.
Într–adevăr,
( )
ϕ (x ) = 3 x12 + x22 + x32 + 4(x1 x2 − x1 x3 + x2 x3 ) .
⎛ 1⎞
⎜ ⎟
Dacă x = ⎜ − 1⎟ , atunci ϕ(x)=9–12=–3<0, deci ϕ nu este pozitiv definită.
⎜ 1⎟
⎝ ⎠

Definiţia 1. Spunem că matricea A este tare diagonal dominantă dacă elementele


sale satisfac inegalităţile:
n
aii > ∑ aij , i = 1, n . (d)
j =1
j ≠i
Sisteme de ecuaţii liniare 23

Dacă inegalităţile (d) devin egalităţi pentru anumiţi indici, dar nu pentru toţi,
matricea se numeşte slab diagonal dominantă.

Teorema 1. Fie A o matrice simetrică cu următoarele proprietăţi:


(i) A este tare diagonal dominantă,
(ii) aii > 0 pentru i = 1, n .
Atunci A este pozitiv definită.
Demonstraţie.
Din condiţia (i) rezultă că dacă x≠0 , atunci:
n n n n n n n
ϕ (x ) = ∑ aii xi2 + ∑ ∑ aij xi x j >∑ ∑ aij xi2 −∑ ∑ aij ⋅ xi ⋅ x j =
i =1 i =1 j =1 i =1 j =1 i =1 j =1
j ≠i j ≠i j ≠i

( )
n n
= ∑ ∑ aij ⋅ xi ⋅ xi − x j
i =1 j =1
j ≠i
Deoarece aij=aji avem şi inegalitatea:

( )
n n
ϕ (x ) > ∑ ∑ aij ⋅ x j x j − xi .
i =1 j =1
j ≠i
Adunând cele două inegalităţi rezultă
2
( )
n n
2ϕ ( x ) > ∑ ∑ aij ⋅ xi − x j ≥ 0.
i =1 j =1
j ≠i
Aşadar, ϕ(x) > 0 pentru orice x≠0 , deci ϕ este pozitiv definită. ‰

Definiţia 2. Fie M={1,2,...,n}. O matrice A se numeşte reductibilă dacă există


două submulţimi S, T ⊂ M cu proprietăţile:
(i) S≠Φ , T≠Φ
(ii) S∩T=Φ
(iii) S∪T=M
(iv) aij = 0 pentru orice i∈S şi j∈T .
Matricea A se numeşte ireductibilă dacă oricare ar fi submulţimile S şi T ale lui
M cu proprietăţile (i)–(iii), există i0∈S şi j0∈T astfel încât ai0 j0 ≠ 0 .

Cel mai simplu exemplu de matrice reductibilă este matricea diagonală.


Teorema 2. Fie A o matrice simetrică având următoarele proprietăţi:
(i) A este slab diagonal dominantă,
(ii) A este ireductibilă,
(iii) aii > 0 pentru orice i = 1, n .
24 Bazele Analizei Numerice

Atunci A este pozitiv definită.


Demonstraţie. Procedând ca în demonstraţia Teoremei 1, rezultă:
2
ϕ ( x) ≥
1 n n
(
∑ ∑ aij ⋅ xi − x j
2 i =1 j =1
) ≥ 0.
j ≠i
Vom arăta că situaţia ϕ(x)=0 pentru x≠0 nu poate avea loc. Într–adevăr, ϕ(x) se
anulează în următoarele cazuri:
1) aij = 0 pentru orice i≠j . Atunci matricea A are forma diagonală şi este
reductibilă.
2) xi = x j = α ≠ 0 pentru orice i şi j.
n n n n n
ϕ (x ) = ∑ aiiα 2 + ∑ ∑ aij xi x j ≥ ∑ (aii − ∑ aij ) ⋅ α 2 ≥ 0 .
i =1 i =1 j =1 i =1 j =1
j ≠i j ≠i
n
Cum există cel puţin un indice i0 astfel încât ∑ ai0 j < ai0i0 , rezultă
j =1
j ≠i0
ϕ(x) > 0 pentru x≠0.
3) aij=0 pentru orice pereche de indici (i,j) pentru care xi ≠ x j şi

aij≠0 dacă xi = x j ≠ 0 .
{
Fie M={1,2, ... , n} şi S = i, j ∈ M ; xi = x j ≠ 0 . }
Dacă S=M, atunci suntem în cazul 2).
Dacă S= Φ , atunci xi ≠ x j pentru orice i şi j şi evident ϕ(x) > 0 pentru
x≠0.
Aşadar, putem presupune că Φ≠S⊂M (incluziune strictă). Dacă notăm cu T=M \
S atunci S şi T satisfac condiţiile (i)–(iv) din Definiţia 2, deci A este reductibilă.
‰
Exemplu.
Fie
⎛ 2 −1 0 0⎞
⎜ ⎟
⎜ −1 2 −1 0⎟
A=⎜ .
0 − 1 2 − 1⎟
⎜ ⎟
⎜ 0 0 −1 2⎟
⎝ ⎠
Matricea A este simetrică, slab diagonal dominantă, ireductibilă şi are elementele
de pe diagonala principală strict pozitive. Din Teorema 2 rezultă că A este
pozitiv definită.
Sisteme de ecuaţii liniare 25

Oservaţia 2. Teorema 2 este utilă la stabilirea faptului că anumite matrice care


apar în rezolvarea numerică a ecuaţiilor cu derivate parţiale de tip eliptic sunt
pozitiv definite.

§1.3. Metoda Cholesky

Fie A o matrice simetrică, pozitiv definită şi


n n
ϕ (x ) = xT Ax = ∑ ∑ aij xi x j
i =1 j =1
forma pătratică asociată. Deoarece a11 > 0 avem:
2
n n ⎛ n a ⎞
ϕ (x ) = a11x12 + 2a12 x1x2 +...+ 2a1n x1xn + ∑ ∑ aij xi x j = ⎜ a11 x1 + ∑ xj ⎟ +
1j
⎜ ⎟
i =2 j =2 ⎝ j =2 a11 ⎠
n n a1i a1 j
+ ∑ ∑ aij(1) xi x j , unde aij(1) = aij − , i, j = 2, n
i =2 j =2 a11
Dacă notăm cu
n n
ϕ1 (x ) = ∑ ∑ aij(1) xi x j ,
i =2 j =2
atunci ϕ1 este la rândul său o formă pătratică pozitiv definită.
⎛ z2 ⎞
⎜ ⎟
Într–adevăr, să presupunem prin absurd că există z = ⎜ M ⎟ ≠ 0 astfel încât
⎜z ⎟
⎝ n⎠
ϕ1(z)≤ 0.
⎛ z1 ⎞
n
⎜ ⎟
a1 j ⎜z ⎟
Fie z1 = − ∑ z j şi z = ⎜ 2 ⎟ .
j= 2 a11
.
⎜ ⎟
⎜z ⎟
⎝ n⎠
În continuare avem
2
⎛ n a ⎞
ϕ ( z ) = ⎜ a11 z1 + ∑ z j ⎟ + ϕ1 (z ) = 0 + ϕ1 (z ) ≤ 0 ,
1j
⎜ ⎟
⎝ j = 2 a11 ⎠
ceea ce contrazice faptul că ϕ este pozitiv definită.
Aşadar, am demonstrat că ϕ1 este pozitiv definită. În particular, rezultă că
(1)
a22 > 0 . Mai departe procedăm cu ϕ1 aşa cum am procedat cu ϕ şi obţinem
26 Bazele Analizei Numerice

2
⎛ a2( 1j) ⎞
⎜ n ⎟
ϕ1 (x ) = ⎜ a22
(1)
x2 + ∑ x j ⎟ + ϕ 2 (x ) ,
⎜⎜ j =3
(1)
a22 ⎟⎟
⎝ ⎠
unde
n n
ϕ 2 (x ) = ∑ ∑ aij( 2) xi x j
i =3 j = 3
este pozitiv definită. În final ϕ(x) se reprezintă ca o sumă de pătrate. Mai precis
ϕ(x) admite următoarea scriere:
2
n ⎛ n aij(i −1) ⎞
⎜ (i −1) ⎟
ϕ (x ) = ∑ ⎜ aii xi + ∑ xj ⎟ ,
(i −1)
i =1 ⎜ j =i +1 aii ⎟
⎝ ⎠
unde
a (pip −1) a (pjp −1)
aij(0) = aij şi aij( p ) = aij( p −1) − , p = 1, n − 1 .
a (ppp −1)
Introducem notaţiile:
rii = aii(i −1) , i = 1, n

aij(i −1)
rij = , i< j
rii (1)
rij = 0, j<i

aij( p ) = aij( p −1) − rpi rpj , p = 1, n − 1, i, j = p + 1, n.


Cu aceste notaţii avem
2
n ⎛ n ⎞
ϕ (x ) = ∑ ⎜ ∑ rij x j ⎟ = (r11x1 + r12 x2 + ... + r1n xn )2 + (r22 x2 + ... + r2n xn )2 +
⎜ ⎟
i =1 ⎝ j =i ⎠
+ ... + (rnn xn )2
Dacă notăm cu R următoarea matrice superior triunghiulară
⎛ r11 r12 K r1n ⎞
⎜ ⎟
⎜ 0 r22 K r2 n ⎟
R=⎜ ,
M M M ⎟
⎜ ⎟
⎜0 0 K rnn ⎟⎠

atunci ϕ(x)=(xTRT)(Rx)=xT(RTR)x . Pe de altă parte, ϕ(x)=xTAx. Se obţine astfel
următoarea descompunere a matricei A
A=RTR (2)
Sisteme de ecuaţii liniare 27

unde R este o matrice superior triunghiulară.


Descompunerea (2) poartă numele de factorizarea Cholesky a matricei A şi are loc
pentru matrice simetrice pozitiv definite.

Numărul de operaţii pentru determinarea matricei R


Pentru a calcula elementele liniei a i–a a matricei R sunt necesare (n–i)(2i–1)+2i–
2 operaţii elementare şi o extragere de rădăcină pătrată. Pentru toate liniile sunt
necesare
n
n 3 n 2 5n
∑ [ (n − i)(2i − 1) + 2i − 2 ] = 3 + 2 − 6
i =1
operaţii elementare plus n extrageri de rădăcină pătrată.

Exemplu. Să se determine descompunerea Cholesky a matricei


⎛ 3 2 2⎞
⎜ ⎟
A = ⎜ 2 3 2⎟
⎜ 2 2 3⎟
⎝ ⎠
2 2 (1) 2 5 5
r11 = 3 , r12 = , r13 = , a22 = a22 − r12 = , r22 = ,
3 3 3 3
(1)
(1) 2 a23 2 (1) 2 5
a23 = a23 − r12 r13 = , r23 = = , a33 = a33 − r13 = ,
3 r22 15 3
( 2) (1) 2 7 7
a33 = a33 − r23 = , r33 =
5 5
⎛ 2 2 ⎞
⎜ 3 ⎟
⎜ 3 3 ⎟
⎜ 5 2 ⎟
R=⎜ 0 ⎟.
⎜ 3 15 ⎟
⎜ 7 ⎟
⎜ 0 0 ⎟
⎝ 5 ⎠
Se verifică imediat că A=RTR .
Rezolvarea sistemului Ax=b cu metoda Cholesky, în cazul când matricea
A este simetrică şi pozitiv definită, revine la rezolvarea a două sisteme
triunghiulare şi anume
⎧⎪ RT y = b

⎪⎩ Rx = y

Algoritmul Cholesky pentru rezolvarea sistemelor de ecuaţii liniare


Pentru p:=1,n–1 execută
28 Bazele Analizei Numerice

rpp: = a pp ;
Pentru k:=p+1,n–1 execută
a pk
rpk := ;
rpp
sfârşit pentru k ;
Pentru i:=p+1,n execută
Pentru j:=i,n execută
aij:=aij–rpirpj ;
sfârşit pentru j ;
sfârşit pentru i ;
sfârşit pentru p ;
{ Rezolvarea sistemului RTy=b }
b
y1 = 1 ;
r11
Pentru i:=2,n execută
s:=0 ;
Pentru j:=1,i execută
s:=s+rij⋅yj ;
sfârşit pentru j ;
b −s
yi := i ;
rii
sfârşit pentru i ;
{ Rezolvarea sistemului Rx=y }
y
xn = n ;
rnn
Pentru i:=n–1,1 execută
s:=0 ;
Pentru j:=i+1,n execută
s:=s+rij⋅xj ;
sfârşit pentru j ;
y −s
xi := i ;
rii
sfârşit pentru i .

Algoritmul se află programat şi în MATLAB şi se apelează cu secvenţa:


R=chol(A);
x=R\R'\b { pentru afişarea soluţiei }
Sisteme de ecuaţii liniare 29

§1.4. Metoda Householder. Factorizarea QR

O matrice Householder este o matrice de forma H = In – 2hhT, unde


h 2 = hi2 + ... + hn2 = 1 . Se observă imediat că o matrice
hT=(0,..., 0, hi, ..., hn) şi
Householder este simetrică şi are următoarea structură:
⎛1 0 ⎞
⎜ ⎟
⎜ O ⎟
⎜ 1 ⎟
H =⎜ ⎟
⎜0 1 − 2hi2 − 2hi hi +1 K − 2hi hn ⎟
⎜ ⎟
⎜ M M M ⎟
⎜ − 2hn hi − 2hn hi +1 K 1 − 2hn2 ⎟⎠

Mai mult, constatăm că H este ortogonală. Într–adevăr,
H2 = (In – 2hhT)(In – 2hhT) = In – 2hhT – 2hhT + 4h(hTh)hT.
Cum h h = 1, rezultă H2 = In. Aşadar, avem H–1 = H = HT.
T

Un calcul simplu ne arată că (hhT)x = (hTx)h , pentru orice x = (x1 , x 2 ,..., x n )T .


În continuare ne punem următoarea problemă: dat fiind un vector coloană x ≠ 0,
se poate determina o matrice Householder H , astfel încât Hx să fie colinear cu
e1 ? ( unde e1T = (1,0,...,0) ).
Cu alte cuvinte, se poate determina un vector coloană h, cu h 2 = 1 şi un număr
real σ astfel încât Hx=x–2hhTx=σ⋅e1 ?
Ţinând seama de observaţia de mai sus, aceasta revine la x–2(hTx)h=σ⋅e1, de unde
rezultă x– σ⋅e1=2(hTx)h. Aşadar, h trebuie să fie colinear cu x–σ⋅e1. Cum h 2 = 1
rezultă
x − σ ⋅ e1
h= . (1)
x − σ ⋅ e1 2
Pe de altă parte, H fiind ortogonală avem
x 2 = Hx 2 = σ ⋅ e1 = σ .
Alegem σ = –sgn(x1) x 2 şi facem convenţia sgn(x1) = 1 dacă x1 = 0.
În continuare avem
30 Bazele Analizei Numerice

⎜ ⎟ ⎜
( )
⎛ x1 + sgn( x1 ) ⋅ x 2 ⎞ ⎛ x1 + x 2 ⋅ sgn( x1 ) ⎞

⎜ x2 ⎟ ⎜ x2 ⎟
x − σ ⋅ e1 = ⎜ ⎟ =⎜ ⎟ şi
⎜ M ⎟ ⎜ M ⎟
⎜ xn ⎟ ⎜ xn ⎟
⎝ ⎠ ⎝ ⎠
2 2
x − σ e1 2 = 2 x 2 + 2 x1 ⋅ x 2 = 2 x 2 x 2 + x1 ( ) .
Înlocuind în (1) obţinem
(
⎛ x1 + x 2 sgn x1 ⎞
⎜ ⎟
)
1 ⎜ x2 ⎟
h= ⎟ . (2)
(
2 x 2 x 2 + x1 ⎜

) M ⎟
⎜ x ⎟
⎝ n ⎠
Se obţine astfel următorul algoritm pentru determinarea lui h şi deci a matricei H:
H = In – β u uT
β= x ( 2 ( x 2 + x1 ))−1
(3)
u = (( x1 + x 2 )sgn( x1 ), x2 , ..., xn )
T

sgn(x1) = 1 dacă x1 = 0.

Teorema 1. Pentru orice matrice A∈M n(R) nesingulară există o matrice


ortogonală H astfel încât matricea R = HA este superior triunghiulară.
Demonstraţie.
⎛ a11 ⎞
⎜ ⎟
⎜ a21 ⎟
Fie a1 = ⎜ , prima coloană a matricei A. Din cele arătate mai înainte rezultă
M ⎟
⎜ ⎟
⎜a ⎟
⎝ n1 ⎠
că există o matrice Householder H1 astfel încât H1a1=σ⋅e1. Matricea H1 se
determină astfel:
1/ 2
⎛ n ⎞
s = ⎜ ∑ a 2j1 ⎟ , β = (s (s + a11 )) , u = (( a11 + s )sgn(a11 ), a 21 , ..., a n1 ) ,
−1 T
⎜ ⎟
⎝ j =1 ⎠
sgn( a11 ) = 1 daca a11 = 0 , H 1 = I n − βuu T . (4)
Dacă notăm cu A1 = H1A, atunci A1 are următoarea formă:
⎛ − sgn(a ) s a (1) K a (1) ⎞
⎜ 11 12 1n ⎟
⎜ 0 (1)
a22 K a2(1n) ⎟
A1 = ⎜ ⎟
⎜ M M M ⎟
⎜ 0 an(12) K ann(1) ⎟
⎝ ⎠
Sisteme de ecuaţii liniare 31

⎛ a (1) ⎞
⎜ 22 ⎟
În continuare considerăm vectorul a2(1) = ⎜ M ⎟ şi determinăm o matrice
⎜ (1) ⎟
⎜ an 2 ⎟
⎝ ⎠
~
ortogonală H 2 ∈Mn–1(R) astfel încât
~
H a (1) = σ ⋅ e~ ,
2 2 1
unde ~
e1T = (1, 0 , ..., 0) ∈Rn–1.
⎛1 0 ⎞
Notăm cu H 2 = ⎜⎜ ~ ⎟⎟ ∈M n(R) şi cu A2 = H2A1. Matricea A2 va arăta astfel
⎝0 H2 ⎠
⎛ a ( 2) a ( 2) a ( 2) K a ( 2) ⎞
⎜ 11 12 13 1n ⎟
⎜ 0 ( 2)
a22 ( 2)
a23 K a2( 2n) ⎟
⎜ ⎟
A2 = ⎜ 0 0 ( 2)
a33 K a3( 2n) ⎟ , unde a1( 2j ) = a1(1j) , j = 1, n .
⎜ ⎟
⎜ M M M M ⎟
⎜ 0 0 ( 2) ⎟
an( 23) K ann
⎝ ⎠
~
În continuare se determină o matrice Householder H 3 ∈Mn–2(R) cu
~ ~ ~
proprietatea că H 2 a 3( 2) = σ e~1 , unde e~1T = (1, 0, ..., 0) ∈Mn–2(R). Vom nota cu
⎛I 0 ⎞
H 3 = ⎜⎜ 2 ~ ⎟⎟ ∈M n(R) şi cu A3=H3A2. Matricea A3 va avea toate elementele de
⎝ 0 H3 ⎠
sub diagonala principală, din primele trei coloane, zero. Procedeul continuă într-un
mod evident. În final, obţinem o matrice superior triunghiulară An–1 = Hn–1An–2 =
=Hn–1⋅...⋅H2H1A. Dacă notăm H=Hn–1⋅...⋅H2H1 şi cu R=HA, atunci H este
ortogonală şi R superior triunghiulară. ‰

Corolar. Pentru orice matrice nesingulară A∈M n(R) există o matrice ortogonală
Q şi o matrice superior triunghiulară R astfel încât A= QR.

Algoritmul Householder pentru rezolvarea sistemelor de ecuaţii liniare


Fie sistemul Ax =b cu A∈M n(R). Notăm cu C=(A|b)=(cij)∈M n,n+1 (R)
matricea extinsă.
Pentru i: = 1,n–1 execută
n
s := ∑ c 2j i ;
j =i
dacă s = 0 atunci A este singulară . Stop!
altfel β := (s(|cii|+s))–1 ; dacă cii = 0 atunci sgn(cii): = 1 ;
u := (0, ..., 0, (cii + s)⋅sgn(cii), ci+1,i , ..., cni)T ;
32 Bazele Analizei Numerice

Hi: = In – βuuT ; C: = HiC ;


sfârşit pentru i ;

Exemplu. Fie sistemul


⎧ 5 x1 + 2 x2 + x3 = 12

⎨ 5 x1 − 6 x2 + 2 x3 = −1
⎪− 4 x + 2 x + x = 3
⎩ 1 2 3
Soluţia exactă este x1 = 1, x2 = 2, x1 = 3.
Aplicăm metoda Householder.
⎛ 5 2 1⎞ ⎛ 12 ⎞ ⎛ 5 2 1 12 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
A = ⎜ 5 − 6 2 ⎟ ; b = ⎜ − 1⎟ , C = ⎜ 5 − 6 2 − 1⎟ ;
⎜− 4 2 1⎟ ⎜3⎟ ⎜− 4 2 1 3 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
Iteraţia I
⎛ 5⎞
⎜ ⎟
a1 = ⎜ 5 ⎟ ; c11 = 5 ; s = 66 = 8.124038405 ;
⎜ − 4⎟
⎝ ⎠
⎛13.124038405 ⎞
1 -3 ⎜ ⎟
β= = 9.379086466 ⋅ 10 ;u = ⎜ 5 ⎟;
8.124038405 ⋅ 13.124038405 ⎜ ⎟
⎝ −4 ⎠

⎛ − 0.615457455 − 0.615457455 0.492365964 ⎞


⎜ ⎟
H1 = ⎜ − 0.615457455 0.765522838 0.187581729 ⎟
⎜ 0.492365964 0.187581729 0.849934617 ⎟⎠

⎛ − 8.12403840 3.44656174 − 1.35400640⎞
⎜ ⎟
A1 = H1 A = ⎜ 0 − 5.44888848 1.10316995 ⎟ ;
⎜ 0 1.55911078 1.71746403 ⎟⎠

⎛ − 5.292934112 ⎞
⎜ ⎟
b1 = H1b = ⎜ − 7.588267109 ⎟ ; C = H1 ⋅ C = [A1 b1 ]
⎜ 8.270613687 ⎟
⎝ ⎠
Iteraţia a II–a
⎛ − 5.448888481⎞
a2(1) = ⎜⎜ 2
⎟⎟ ; s = c22 2
+ c32 = 5.667557862 ;
⎝ 1 .559110785 ⎠
⎛ 0⎞
⎜ ⎟
c22=–5.448888481 ; ; β=0.015872234 ; u = ⎜ − 11.116446343 ⎟ ;
⎜ 1.559110785 ⎟
⎝ ⎠
Sisteme de ecuaţii liniare 33

⎛1 0 0 ⎞
⎜ ⎟
H 2 = ⎜ 0 − 0.961417354 0.275093933 ⎟ ;
⎜ 0 0.275093933 0.961417354 ⎟
⎝ ⎠
⎛ - 8.124038405 3.446561747 − 1.354006401 ⎞
⎜ ⎟
A2 = H 2 A1 = ⎜ 0 5.667557862 − 0.588142797 ⎟ ;
⎜ 0 0 1.954675092 ⎟⎠

⎛ − 5.292934112 ⎞
⎜ ⎟
b2 = H 2b1 = ⎜ 9.570687333 ⎟ ; C = H 2 ⋅ C = [A2 b2 ] ;
⎜ 5.864025277 ⎟
⎝ ⎠
⎛ − 0.615457455 − 0.615457455 0.492365964 ⎞
⎜ ⎟
H = H 2 ⋅ H1 = ⎜ 0.727158367 − 0.684384346 0.053467527 ⎟ ;
⎜ 0.30406057 0.390935018 0.868744486 ⎟⎠

⎛ − 8.124038405 3.446561747 − 1.354006401 ⎞
⎜ ⎟
R= H ⋅A=⎜ 0 5.667557862 − 0.588142797 ⎟ ;
⎜ 0 0 1.954675092 ⎟⎠

Soluţia sistemului iniţial este x=R–1Hb , unde:
⎛ − 0.123091491 0.074854538 − 0.062742657 ⎞
−1 ⎜ ⎟
R =⎜ 0 0.176442839 0.053089941 ⎟ .
⎜ 0 0 0.511593975 ⎟⎠

Se obţine soluţia x1=1 ; x2= 2 ; x3= 3.000000001 .

§1.5. Norme de matrice

Cele mai utilizate norme vectoriale pe Rn sunt:


1) x ∞ = max { x1 , x2 ,..., xn }
1/ p
⎛ n p⎞
2) x p = ⎜ ∑ xi ⎟ , 1≤ p < ∞
⎜ ⎟
⎝ i =1 ⎠
unde xT = (x1, x2, ..., xn)∈Rn.

Definiţia 1. Se numeşte normă de matrice orice aplicaţie


A→ A M : M n(R)→R+
cu proprietăţile:
34 Bazele Analizei Numerice

(i) A M = 0 dacă şi numai dacă A = 0 ,


(ii) λA M = λ A M , ; λ∈R, A∈M n(R) ,
(iii) A+ B M ≤ A M + B M ,
(iv) AB M ≤ A M ⋅ B M , A, B∈M n(R).
Un exemplu de normă de matrice este norma euclidiană de matrice, care se
defineşte astfel
1/ 2
⎛ n n ⎞
A E = ⎜ ∑ ∑ aij2 ⎟ . (1)
⎜ ⎟
⎝ i =1 j =1 ⎠
Proprietăţile (i) şi (ii) sunt evidente. Pentru a demonstra proprietăţile (iii) şi (iv) se
foloseşte inegalitatea Cauchy–Buniakovski–Schwarz pe Rn. Pentru exemplificare
demonstrăm (iv). Fie C = AB. Atunci
2
⎛ n ⎞ ⎛ n 2 ⎞⎛ n 2 ⎞
cij2 = ⎜ ∑ aik bkj ⎟ ≤ ⎜ ∑ aik ⎟⎜ ∑ bkj ⎟
⎜ ⎟ ⎜ ⎟⎜ ⎟
⎝ k =1 ⎠ ⎝ k =1 ⎠⎝ k =1 ⎠
În continuare avem
n ⎛ n
2 ⎞⎟
n n n ⎛ n ⎞
2 2 2
AB E = ∑ ∑ cij2 ≤ ∑ ⎜ ∑ aik ⋅ ∑ ⎜ ∑ bkj2 ⎟ = A E ⋅ B E ,
⎜ ⎟ ⎜ ⎟
i =1 j =1 i =1 ⎝ k =1 ⎠ j =1⎝ k =1 ⎠
de unde rezultă AB E ≤ A E ⋅ B E .

Definiţia 2. O normă de matrice ⋅ M se numeşte compatibilă cu norma


vectorială ⋅ p dacă Ax p ≤ A M x p pentru orice x.

Observaţia 1. Ax 2 ≤ A E x 2 , (∀) x.

n n ⎛ n ⎞⎛ n ⎞
Ax 2 = ∑ (ai1x1 + ... + ain xn )2 ≤ ∑ ⎜ ∑ aij2 ⎟⎜ ∑ x 2j ⎟ = A E ⋅ x 2 .
2 2 2
Într–adevăr,
⎜ ⎟⎜ ⎟
i =1 i =1⎝ j =1 ⎠⎝ j =1 ⎠

Observaţia 2. Dacă λ este o valoare proprie a matricei A, atunci λ ≤ A M


pentru orice normă de matrice compatibilă cu o normă vectorială.

Într–adevăr, fie v un vector propriu al matricei A care corespunde valorii


proprii λ . Atunci avem
λ ⋅ v = λv = Av ≤ A M v ,
Sisteme de ecuaţii liniare 35

deci λ ≤ AM.
După cum se ştie, între mulţimea M n(R) a matricelor pătratice cu
elemente din R şi mulţimea L(Rn) a aplicaţiilor liniare şi continue, U : Rn→Rn ,
există o corespondenţă bijectivă. Mai precis, dacă A este matricea asociată
transformării liniare U, atunci U(eiT) = (a1i, a2i, ..., ani),
unde eiT = (0, ..., 1, ..., 0)∈Rn şi U(xT) = (Ax)T. Pe de altă parte, spaţiul L(Rn) este
un spaţiu normat în raport cu norma operatorială:
U
o
= sup { U (x ) ;
T
xT = 1 } (2)

unde cu ⋅ am notat o normă oarecare pe Rn.


Se ştie de asemenea că:
U
o
{
= inf c > 0 ; U x T ( ) ≤ c xT , (∀) x T ∈ R n } (3)

Definiţia 3. Se numeşte norma matricei A subordonată normei vectoriale ⋅


următorul număr:
Ax
A = sup { Ax ; x = 1 } = sup (4)
x≠0 x

Ca şi în cazul normei operatoriale, avem


A = inf { c > 0 ; Ax ≤ c x , (∀) x } . (5)
Din relaţia (5) rezultă în particular că Ax ≤ A ⋅ x , ∀x ∈ R n , deci norma
matriceală definită de (4) este compatibilă cu norma vectorială căreia îi este
subordonată.
Este evident că aplicaţia A → A definită de (4) satisface proprietăţile (i)–(iii)
din definiţia 1. De asemenea avem
ABx ≤ A ⋅ Bx ≤ A ⋅ B ⋅ x ,
de unde rezultă A ⋅ B ≤ A ⋅ B .
Aşadar, formula (4) defineşte într–adevăr o normă de matrice.

Definiţia 4. Dacă λ1, ..., λn sunt valorile proprii ale matricei A , atunci se notează
cu ρ(A)= max λi şi ρ(A) se numeşte raza spectrală a matricei A (în această
1≤i ≤ n
definiţie λ i pot fi reale sau complexe)

Teorema 1. Pentru A∈M n(R) avem:


n
(1) A ∞ = max ∑ aij ,
1≤i ≤n j =1
36 Bazele Analizei Numerice

n
(2) A 1= max ∑ aij ,
1≤ j ≤ n i =1

(( ))
1
T
(3) A 2= ρ A ⋅ A , 2

unde cu A p am notat norma matricei A subordonată normei vectoriale x p .

Demonstraţie.
n n n
Ax ∞ = max ∑ aij x j ≤ 1max
1≤i ≤n j =1
∑ aij ⋅ x j ≤ x ∞ 1max
≤i ≤n j =1
∑ aij
≤i ≤ n j =1

n
Rezultă A ∞ ≤ max ∑ aij . Rămâne să arătăm că există ~
x cu ~
x ∞= 1
1≤i ≤n j =1
n
astfel încât A~
x ∞ = max ∑ aij . Pentru aceasta, fie k astfel încât să avem
1≤i ≤ n j =1
n n
∑ akj = max ∑ aij
1≤i ≤ j =1
(6)
j =1
⎧ 0 dacã akj = 0

şi fie ~
x j = ⎨ akj .
dacã akj ≠ 0
⎪a
⎩ kj
n n
Evident că ~
x ∞ = 1 şi A~
x ∞ = ∑ akj = max ∑ aij . Aşadar, am demonstrat
j =1 1≤i ≤n j =1
(1). În continuare avem
n n
Ax 1= ∑ ai1x1 + ... + ain xn ≤ ∑ ( ai1 x1 + ... + ain xn ) ≤
i =1 i =1
⎛ n ⎞ ⎛ n ⎞
≤ ⎜ max ∑ aij ⎟ ⋅ ( x1 + ... + xn ) = max ⎜ ∑ aij ⎟⋅ x
⎜ 1≤ j ≤n ⎟ 1≤ j ≤n⎜⎝ i =1 ⎟ 1
⎝ i =1 ⎠ ⎠
n
de unde rezultă A 1≤ max ∑ aij .
1≤ j ≤ n i =1
Sisteme de ecuaţii liniare 37

n
Pe de altă parte dacă eTj=(0,...,1,...,0) , atunci e j = 1 şi Ae j = ∑ aij , de
1 1
i =1
n n
unde rezultă A 1 ≥ ∑ aij , pentru orice j = 1, n . Aşadar, A 1 ≥ max ∑ aij
i =1 1≤ j ≤ n i = 1
şi cu aceasta afirmaţia (2) este dovedită.
Fie B=ATA şi fie
{
µ1 = sup xT Bx ; x 2 = 1} (7)
Evident µ1 = sup{( Ax )T Ax ; x 2 = 1 }= A 2 , deci
2
A 2 = µ1 .
{
Deoarece mulţimea S = x ; x 2 = 1 } este compactă, rezultă că există v cu
proprietăţile: µ1=vTBv şi v 2 = 1 .
Vom arăta în continuare că Bv=µ1v , deci că v este un vector propriu pentru B şi
corespunde valorii proprii µ1.
T
⎛ z ⎞ ⎛ z ⎞
Într-adevăr, pentru orice z≠0 avem: ⎜ ⎟ B⎜ ⎟ ≤ µ şi deci
⎜ z ⎟ ⎜ z ⎟ 1
⎝ 2⎠ ⎝ 2⎠
2
z T Bz ≤ µ1 z 2 = µ1z T z (8)
Pe de altă parte este evident că relaţia (8) este verificată şi pentru z=0. Deci relaţia
(8) are loc pentru orice z. De asemenea avem:
vTBv=µ1vTv (9)
Dacă notăm cu C=B–µ1In , atunci avem:
zTCz≤0 , (∀) z şi (8')
vTCv=0 (9')
Fie z=v+ty , unde t∈R este oarecare şi y este un vector oarecare. Din (8') şi din
faptul că C este simetrică rezultă
vTCv+2tyT(Cv)+t2yTCy≤0 .
Ţinând seama de (9') avem
t 2 y T Cy + 2ty T (Cv ) ≤ 0 . (10)
T
Pentru ca (10) să fie adevărată pentru orice t∈R trebuie ca y Cv = 0. Cum y a
fost arbitrar rezultă 0=Cv=(B–µ1In)v=Bv–µ1v.
2
Aşadar, avem Bv=µ1v, deci µ1 este valoare proprie pentru B şi în plus µ1 = A 2 .
Pe de altă parte, fie µ o altă valoare proprie a matricei B şi fie u≠0, u 2 = 1 ,
astfel încât Bu=µu. În continuare avem
2 2
µ1 = A 2 ≥ Au 2
= u T Bu = u T µu = µ .
Aşadar, µ1 este cea mai mare valoare proprie a matricei B, deci am demonstrat şi
afirmaţia (3). ‰
38 Bazele Analizei Numerice

În particular dacă presupunem că matricea A este simetrică, rezultă că


B=A2. Fie λ1, λ2, ..., λn valorile proprii ale matricei A, care în acest caz sunt
reale. Se ştie că λ12 , λ22 , ..., λ2n sunt valorile proprii ale matricei A2. Să
presupunem că λ12 = max λ2j .
1≤ j ≤ n
Din Teorema 1 rezultă că A 2 = λ1 . Dacă, în plus, A este pozitiv definită, atunci
λi>0 pentru orice i. Să presupunem că: λ1 ≥ λ2 ≥ ... ≥ λn . Din cele de mai sus
rezultă A 2 = λ1 , unde λ1 este cea mai mare valoare proprie a matricei simetrice
şi pozitiv definite A.

§1.6. Perturbarea sistemelor liniare.


Numărul de condiţionare al unei matrice

Considerăm următorul sistem de ecuaţii liniare


⎧10 x1 + 7 x2 + 8 x3 + 7 x4 = 32
⎪ 7 x + 5 x + 6 x + 5 x = 23
⎪ 1 2 3 4
⎨ (1)
⎪ 1 8 x + 6 x 2 + 10 x3 + 9 x 4 = 33
⎪⎩ 7 x1 + 5 x2 + 9 x3 + 10 x4 = 31
a cărui soluţie exactă este x1=x2=x3=x4=1.
Să considerăm acum sistemul (1') în care am modificat “puţin” termenii liberi
⎧10 x1 + 7 x2 + 8 x3 + 7 x4 = 32.1
⎪ 7 x + 5 x + 6 x + 5 x = 22.9
⎪ 1 2 3 4
⎨ . (1')
⎪8 x1 + 6 x2 + 10 x3 + 9 x4 = 33.1
⎪⎩7 x1 + 5 x2 + 9 x3 + 10 x4 = 30.9
Soluţia sistemului (1') este x1= 9.2 ; x2= –12.6 ; x3= 4.5 ; x4= –1.1 . Aşadar, o
eroare mică, de ordinul 0.1, a termenilor liberi, produce o eroare mare, de ordinul
10, a soluţiei sistemului.
Fie acum sistemul (1") în care modificăm puţin coeficienţii sistemului
⎧ 10 x1 + 7 x2 + 8.1x3 + 7.2 x4 = 32
⎪ 7.08 x + 5.04 x + 6 x + 5 x = 23
⎪ 1 2 3 4
⎨ . (1")
⎪ 1 8 x + 5 .98 x 2 + 9 .89 x3 + 9 x 4 = 33
⎪⎩6.99 x1 + 4.99 x2 + 9 x3 + 9.98 x4 = 31
Soluţia sistemului (1") este: x1= –81 ; x2= 137 ; x3= –34 ; x4= 22 .
Să analizăm acum efectul perturbării membrului drept asupra soluţiei unui sistem
liniar Ax=b, în care matricea A este nesingulară.
Sisteme de ecuaţii liniare 39

Notăm cu δ b perturbarea membrului drept şi cu δ x perturbarea care rezultă


pentru soluţie. Avem: A(x+ δ x )=b + δ b , de unde rezultă A δ x = δb şi deci
δ x =A–1 δ b . Pentru orice normă de matrice compatibilă avem:
δx ≤ A−1 ⋅ δb (2)
Pe de altă parte b = Ax ≤ A ⋅ x , de unde rezultă:
1 A
≤ (3)
x b
δx δb
Din relaţiile (2) şi (3) obţinem ≤ A ⋅ A−1 ⋅ .
x b

Numărul de condiţionare al unei matrice se defineşte astfel


cond ( A) = A ⋅ A −1 . (4)

Aşadar, între eroarea relativă a membrului drept şi eroarea relativă a soluţiei


sistemului avem următoarea inegalitate
δx δb
≤ cond ( A) ⋅ . (5)
x b
Observăm că dacă numărul de condiţionare al matricei coeficienţilor sistemului
este mare, atunci la erori relativ mici ale termenilor liberi, pot apare erori relativ
mari pentru soluţia sistemului. În cazul exemplului (1) avem
⎛10 7 8 8 ⎞ ⎛ 25 − 41 10 − 6 ⎞
⎜ ⎟ ⎜ ⎟
⎜7 5 6 5⎟ −1 ⎜ − 41 68 − 17 10 ⎟
A=⎜ , A =⎜
8 6 10 9 ⎟ 10 − 17 5 − 3⎟
⎜ ⎟ ⎜ ⎟
⎜ 7 5 9 10 ⎟ ⎜ −6 10 − 3 2 ⎟⎠
⎝ ⎠ ⎝
şi cond2(A) ≅ 2984. (S–a folosit norma de matrice 2 ). După cum se vede,
numărul de condiţionare este destul de mare, ceea ce explică instabilitatea soluţiei
sistemului.
Numărul de condiţionare are următoarele proprietăţi:
(i) cond(In)≥1
(ii) cond(A)=cond(A–1)
(iii) cond(αA)=cond(A) pentru orice α≠0
µ1
(iv) cond 2 ( A) = , unde µ1≥µ2≥...≥µn>0 sunt valorile proprii ale matricei
µn
B=ATA
40 Bazele Analizei Numerice

max λi
(v) Dacă A este simetrică, atunci cond 2 ( A) = , unde λ1, ..., λn sunt
min λi
valorile proprii ale matricei A
(vi) Dacă A este ortogonală, atunci cond(A)=1 .
Pentru a evalua eroarea soluţiei sistemului la o perturbare a coeficienţilor
sistemului, avem nevoie de următoarele două leme.

Lema 1. Dacă A∈M n(R) şi A < 1 , atunci:


(i) A+In şi A–In sunt nesingulare, şi
1 1
(ii) ≤ ( A ± I n )−1 ≤ .
A +1 1− A
Demonstraţie.
Prezentăm demonstraţia pentru A+In .
Presupunem prin absurd că A+In este singulară. Atunci există x ≠ 0,
x = 1 astfel încât (A+In)⋅x = 0. În continuare avem x = –Ax, deci x ≤ A ⋅ x .
Rezultă A ≥ 1 ceea ce contrazice ipoteza A < 1.
Pentru a demonstra (ii) observăm că
1 = I n = (I n + A)(I n + A)−1 ≤ I n + A ⋅ (I n + A)−1 ≤ (1 + A ) ⋅ (I n + A)−1
de unde rezultă
1
≤ ( A + I n )−1 .
A +1
Pe de altă parte avem
In=(In+A)–1+A(In+A)–1 ,
de unde rezultă
(I n + A)−1 = I n − A(I n + A)−1 ≤ 1 + A ⋅ (I n + A)−1 ,
şi mai departe
1
(I n + A)−1 ≤ . ‰
1− A

Lema 2 (a perturbării). Fie A, B∈M n(R) cu proprietăţile:


(i) A −1 ≤ α

(ii) A −1 ( B − A ) ≤ k < 1 .
α
Atunci B este nesingulară şi B −1 ≤ .
1− k
Demonstraţie.
Din Lema 1 rezultă că In+A–1(B–A)=A–1B este nesingulară.
Sisteme de ecuaţii liniare 41

Cum det(A–1B) = det(A–1)⋅detB, va rezulta detB ≠ 0, deci B este nesingulară.


Tot din Lema 1 rezultă
[
B −1 A = I n + A −1 (B − A)
−1

1
]

1
.
1 − A −1 (B − A) 1 − k
Mai departe avem
( )
B −1 = B −1 A A−1 ≤ B −1 A ⋅ A−1 ≤
α
1− k
. ‰

Teorema 1. Dacă perturbăm matricea coeficienţilor sistemului Ax = b cu δA şi


A−1δA < 1 , atunci între eroarea relativă a soluţiei şi eroarea relativă a matricei
coeficienţilor are loc inegalitatea
δx cond( A) δA
≤ .
x δA A
1 − cond( A)
A
Demonstraţie.
Din egalităţile Ax=b şi (A+δA)(x+δx)=b rezultă Aδx+δAx+δAδx=0. În continuare
avem δx = –(A+δA)–1δA x şi mai departe
δx
≤ ( A + δA)−1 ⋅ δA (6)
x
Dacă alegem în Lema 2 α = A −1 şi B=A+δA, atunci

A −1 (B − A) = A−1δA < 1
şi va rezulta
A−1 A−1
B −1
= ( A + δA ) −1
≤ ≤ . (7)
1 − A−1δA 1 − A−1 ⋅ δA
Din (6) şi (7) obţinem
δx A −1 ⋅ δ A A −1 ⋅ A δA
≤ = ⋅ .
x 1− A −1
⋅ δA −1 δA A
1− A ⋅ A⋅
A
Ţinând seama de definiţia numărului de condiţionare, ultima inegalitate devine
δx cond( A) δA
≤ . ‰
x δA A
1 − cond( A)
A
42 Bazele Analizei Numerice

Observaţia 1. Dacă presupunem în plus că perturbăm şi membrul drept al


sistemului cu δ b atunci rezultă
δx cond ( A) ⎛ δA δb ⎞
≤ ⎜ + ⎟.
x δA ⎜⎝ A b ⎟⎠
1 − cond ( A)
A

Observaţia 2. Rezolvarea sistemului Ax=b, cu metoda Gauss revine la rezolvarea


a două sisteme triunghiulare Uy=b şi Lx=y. Rezolvarea fiecărui sistem necesită n2
operaţii. Dacă unul din aceste sisteme este rău condiţionat (ceea ce se poate
întâmpla chiar dacă sistemul iniţial Ax=b este bine condiţionat) metoda Gauss
conduce la erori mari.

Cu totul altfel stau lucrurile în cazul metodei Householder. Deoarece cond(Q) = 1


şi cond(QR) = cond(R), rezultă că sistemul Qy = b este bine condiţionat şi deci
că sistemul Ax = b are aceeaşi condiţionare ca sistemul Rx = y. Aşadar, algoritmul
Householder are proprietăţi de stabilitate mai bune decât algoritmul Gauss.

Observaţia 3. Pentru evaluarea numărului de condiţionare cond(A), este suficient


să cunoaştem un majorant pentru A−1 .

Calculul lui (LU )−1 este mai uşor decât calculul lui A−1 , deoarece
inversarea matricelor triunghiulare este uşoară. Să presupunem că
(LU )−1 = α şi A − LU < k
α
α
unde 0<k<1. Atunci din Lema 2 rezultă A−1 ≤
.
1− k
Într–adevăr, să alegem în Lema 2 matricea LU în loc de A şi matricea A în loc
de B. Avem
k
A−1 ( A − LU ) ≤ A−1 ⋅ A − LU ≤ α ⋅ = k < 1 .
α
α α A
Atunci rezultă A−1 ≤ şi deci cond ( A) ≤ . ‰
1− k 1− k
Sisteme de ecuaţii liniare 43

§1.7. Metode iterative de rezolvare a


sistemelor de ecuaţii liniare

Metodele directe de rezolvare numerică a sistemelor de ecuaţii liniare se


utilizează pentru sisteme care au matricea coeficienţilor densă (aproape toţi
coeficienţii sunt nenuli) şi cu un număr de ecuaţii moderat (până la 100 de ecuaţii).
Pentru sisteme mari de ecuaţii de ordinul 103 → 105 şi care au matricea
coeficienţilor rară (cu multe elemente nule), se utilizează metode iterative de
rezolvare numerică.
Să presupunem că sistemul
Ax = b (1)
se poate pune sub forma echivalentă
x = Bx + c (2)
Forma echivalentă (2) ne sugerează următorul proces iterativ:
x (m+1) = Bx (m ) + c, m ≥ 0 , (3)
unde x(0) este un vector arbitrar.
Dacă notăm cu x* soluţia exactă a sistemului, atunci avem
x*=Bx*+c (4)
Fie e(m) = x*–x(m) vectorul eroare.
Din (3) şi (4) rezultă e ( m+1) = Be ( m) , m∈N* şi mai departe
e ( m ) = B m e ( 0) (5)

Teorema 1. Dacă B < 1 , atunci şirul ( x (m ) ) este convergent şi lim x (m ) = x ∗ .


m→∞
Demonstraţie.
Este suficient să arătăm că lim e (m ) = 0 .
m→∞
Din (5) avem
e (m ) ≤ B m e (0 ) ≤ B ⋅ e (0 )
m
.

lim e (m ) = 0 .
m
Deoarece lim B = 0 , rezult㠉
m →∞ m→∞

Teorema 2. Condiţia necesară şi suficientă ca şirul ( x (m ) ) definit de (3) să fie


convergent este ca ρ ( B ) < 1 , unde cu ρ (B ) s–a notat raza spectrală a matricei B.
44 Bazele Analizei Numerice

Demonstraţie.
Este suficient să arătăm că lim B m = 0 dacă şi numai dacă ρ ( B ) < 1 . Din
m→∞
Algebra liniară se ştie că matricea B se poate aduce la forma canonică Jordan, deci
că există o matrice nesingulară C astfel încât
⎛ J p (λ1 ) L 0 ⎞
⎜ 1 ⎟
−1
C ⋅ B ⋅C = J = ⎜ M J p2 (λ 2 ) M ⎟,
⎜⎜ ⎟
⎝ 0 J pr (λ r )⎟⎠
unde
⎛λ 1 0 L 0⎞
⎜ ⎟
⎜ λ 1 M⎟
J p (λ ) = ⎜
M O 1⎟
⎜ ⎟
⎜0 λ ⎟⎠

este o celulă Jordan, λ1, ... , λr sunt valorile proprii ale matricei B şi
p1, ... , pr sunt ordinele de multiplicitate ale acestor valori proprii. Deoarece
C −1 B m C = J m , rezultă că lim B m = 0 dacă şi numai dacă lim J m = 0 . Pe
m→∞ m→∞
de altă parte, J = D + N, unde
⎛ λ1 0 0⎞
⎜ ⎟
⎜ O ⎟
⎜0 λ1 ⎟
⎜ ⎟
D=⎜ O ⎟
⎜ ⎟
⎜ λr 0⎟
⎜ O ⎟
⎜ ⎟
⎝0 0 λr ⎠
este o matrice diagonală de ordinul n, iar N este o matrice nilpotentă de ordinul
n, adică Nn = 0 .
m
k m− k k
În continuare avem J m = ∑ C m D N . Deoarece Nk=0 pentru k≥n, vom
k =0
avea
n
k m− k k
J m = ∑ Cm D N . (6)
k =0
Observăm că D ∞ = max λ1 = ρ ( B ) < 1 . Din (6) rezultă:
1≤i ≤ r
n m(m − 1)...(m − k + 1) m−k n mk
N ∞ ⋅ ( ρ ( B ) )m − k
k k
Jm ≤ ∑ D∞ N ∞< ∑
∞ k =0 k! k =0 k!
Sisteme de ecuaţii liniare 45

Cum lim m k ( ρ ( B)) m−k = 0 , rezultă că lim J m ∞ = 0 , deci că


m→∞ m →∞
lim J m = 0 .
m→∞
Reciproc, să presupunem că lim B m = 0 şi că ρ (B ) ≥ 1 . Atunci există
m→∞
un vector propriu x ≠ 0 şi o valoare proprie λ , cu λ ≥ 1 , astfel încât Bx=λx şi
deci Bmx = λm x.
Cum (λm x) nu converge la 0, rezultă că Bm nu converge la 0, ceea
ce contrazice ipoteza făcută. ‰

Una din cele mai cunoscute metode iterative este metoda Jacobi.
Să presupunem că matricea sistemului Ax=b are proprietatea aii ≠ 0, i = 1, n .
Dacă notăm cu D = diag ( a11 , ..., a nn ) şi cu E=D–A, atunci obţinem sistemul
echivalent (D–E)⋅x=b şi mai departe

x=D -1 E x + D −1b (7)

⎛ 1 1 ⎞ n aij
Cum D -1 = diag⎜⎜ , ..., ⎟⎟ , rezultă că D −1 E ∞ = max ∑ .
⎝ a11 a nn ⎠ 1≤i ≤ n j =1 a ii
j ≠i

Observăm că dacă matricea A este tare diagonal dominantă, atunci D −1 E ∞ < 1 şi


în virtutea Teoremei 1, şirul
( )
x (m +1) = D −1 E x (m ) + D −1b, m ≥ 0
(0)
(8)
este convergent pentru orice aproximaţie iniţială x . Aşadar, metoda Jacobi
constă în următoarele:
Sistemul Ax = b se pune sub forma echivalentă (7).
Scris pe componente, sistemul (7) arată astfel
⎛ ⎞
1 ⎜ n ⎟
xi = ⎜ bi − ∑ aij x j ⎟ , i = 1,n . (7’)
aii ⎜ j =1 ⎟
⎜ j ≠i

⎝ ⎠
Se obţine şirul recurent { x (m ) } unde
⎛ ⎞
1 ⎜ n ⎟
xi(m+1) = ⎜ bi − ∑ aij x (jm ) ⎟ , i = 1,n . (8’)
aii ⎜ j =1 ⎟
⎜ j ≠i

⎝ ⎠
46 Bazele Analizei Numerice

Dacă matricea A este tare diagonal dominantă, şirul ( x (m ) ) converge la


soluţia exactă a sistemului.

Exemplu. Fie sistemul


⎛ 5 − 1 − 1 − 1⎞ ⎛ x1 ⎞ ⎛ − 4 ⎞
⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜ − 1 10 − 1 − 1⎟ ⎜ x 2 ⎟ ⎜ 12 ⎟
⎜ − 1 − 1 5 − 1⎟ ⎜ x ⎟ = ⎜ 8 ⎟
⎜ ⎟⎜ 3⎟ ⎜ ⎟
⎜ − 1 − 1 − 1 10 ⎟ ⎜ x ⎟ ⎜ 34 ⎟
⎝ ⎠⎝ 4⎠ ⎝ ⎠
Soluţia exactă este x1 = 1, x2 = 2, x3 = 3, x4 = 4.
⎛5 0 0 0 ⎞ ⎛0 1 1 1⎞ ⎛ 0 0,2 0,2 0,2 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0 10 0 0 ⎟ ⎜1 0 1 1⎟ -1 ⎜ 0,1 0 0,1 0,1 ⎟
D=⎜ ⎟ , E=⎜ , D E =⎜ ,
0 0 5 0 1 1 0 1⎟ 0,2 0,2 0 0,2 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0 0 0 10 ⎟ ⎜1 1 1 0 ⎟⎠ ⎜ 0,1 0,1 0,1 0 ⎟
⎝ ⎠ ⎝ ⎝ ⎠
⎛ −0,8 ⎞
⎜ ⎟
-1 ⎜ 1,2 ⎟
D b=⎜ , D -1 E ∞ = 0.6 < 1 .
1,6 ⎟
⎜ ⎟
⎜ 3,4 ⎟
⎝ ⎠
Obţinem următorul proces iterativ:
⎧ x (m+1 ) = 0.2 x (m) + 0.2 x (m) + 0.2 x (m) − 0.8
⎪ 1 2 3 4
⎪ x (m+1 ) = 0.1x (m) (m) (m)
+ 0.1x3 + 0.1x 4 − 1.2
⎪ 2 1
⎨ (m+1 )
⎪ x3 = 0.2 x1(m) + 0.2 x 2(m) + 0.2 x 4(m) + 1.6

⎪ x 4(m+1 ) = 0.1x1(m) + 0.1x 2(m) + 0.1x3(m) + 3 .4

Dacă alegem aproximaţia iniţială x10 = x 20 = x30 = x 40 = 0 atunci după 5
iteraţii obţinem
x1(5) = 0,948; x 2(5) = 1,969; x3(5) = 2,948; x 4(5) = 3,969

O altă metodă iterativă cunoscută este metoda Gauss–Seidel şi care


corespunde următoarei spargeri a matricei coeficienţilor:
A = (D+L ) + U unde D = diag (a11, ..., ann ),
⎛ 0 0 ... 0⎞ ⎛ 0 a12 ... a1n ⎞
⎜ ⎟ ⎜ ⎟
⎜a 0 ... 0⎟ ⎜0 0 ... a 2n ⎟
L = ⎜ 21 ⎟ , iar U = ⎜ .
... ... ... ... ... ... ... ... ⎟
⎜ ⎟ ⎜ ⎟
⎜a an2 ... 0 ⎟⎠ ⎜0 0 ... 0 ⎟⎠
⎝ n1 ⎝
Sisteme de ecuaţii liniare 47

Sistemul (1) devine (D+L) x = –Ux +b şi mai departe obţinem următorul proces
iterativ:
(D+L) x(m+1) = –Ux(m) +b . (9)
Pe componente obţinem
1 ⎛⎜ i-1 n
(m ) ⎞
xi(m+1) = bi − ∑ aij x (jm+1) − ∑ aij x j ⎟⎟ , i = 1,n . (10)
aii ⎜⎝ j =1 j =i +1 ⎠
Din algoritmul (10) se observă că fiecare nouă componentă, x j , este imediat
( m+1)

utilizată la calculul următoarei componente.


Se poate arăta că procesul iterativ Gauss–Seidel este convergent dacă
matricea A este tare diagonal dominantă.
În cazul exemplului precedent obţinem
(m+1) ⎞ (m )
⎛ 5 0 0 0 ⎞ ⎛⎜ x1 ⎛ 0 1 1 1 ⎞ ⎛⎜ x1 ⎞⎟ ⎛ − 4 ⎞
⎜ ⎟ ⎜ (m+1) ⎟⎟ ⎜ ⎟ ⎜ (m ) ⎟ ⎜ ⎟
⎜ − 1 10 0 0 ⎟ ⎜ x 2 ⎜ 0 0 1 1 ⎟ x2 ⎜ 12 ⎟
⎜ − 1 − 1 5 0 ⎟ ⎜ (m+1) ⎟⎟ = ⎜ 0 0 0 1 ⎟ ⎜⎜ (m ) ⎟⎟ + ⎜ 8 ⎟
⎜ ⎟ x3 ⎜ ⎟ x3 ⎜ ⎟
⎜ − 1 − 1 − 1 10 ⎟ ⎜⎜ (m+1) ⎟⎟ ⎜ 0 0 0 0 ⎟ ⎜⎜ (m ) ⎟⎟ ⎜ 34 ⎟
⎝ ⎠ ⎝ x4 ⎠ ⎝ ⎠ ⎝ x4 ⎠ ⎝ ⎠
⎧ (m+1 ) 1 (m) (m) (m)
⎪ x1 = ⎛⎜ x 2 + x3 + x 4 − 4 ⎞⎟
5⎝ ⎠

⎪ x (m+1 ) 1 ⎛ ( m+1) ( ) ( )
+ x3 + x 4 + 12 ⎞⎟
m m
⎪⎪ 2 = ⎜ x1
10 ⎝ ⎠
sau ⎨ .
⎪ x (m+1 ) 1 ⎛ ( m+1) ( m+1) ( m) ⎞
= ⎜ x1 + x2 + x4 + 8 ⎟
⎪ 3 5⎝ ⎠
⎪ 1 ⎛ ( m+1)
⎪ x (m+1 ) = ⎜ x1 + x2
( ) + x ( ) + 34 ⎞
m+ 1 m+ 1

⎩⎪ 4 10 ⎝ 3 ⎠
Pentru x1(0) = x 2(0) = x3(0) = x 4(0) = 0, după 5 iteraţii obţinem
x1(5) = 0.995 ; x 2(5) = 1.998 ; x3(5) = 2.998 ; x 4(5) = 3.999 .

§1.8. Metode de relaxare. Principiile de bază

Metodele de relaxare sunt metode iterative şi sunt utilizate pentru


rezolvarea numerică a sistemelor liniare care au matricea coeficienţilor simetrică şi
pozitiv definită.
Fie sistemul liniar
Ax – b = 0 (1)
48 Bazele Analizei Numerice

⎛ v1 ⎞
⎜ ⎟
⎜ v2 ⎟
unde matricea A este simetrică şi pozitiv definită. Dacă v = ⎜ ⎟ este un vector de
M
⎜ ⎟
⎜v ⎟
⎝ n⎠
probă oarecare, atunci notăm cu
r= Av – b . (2)
Vectorul r se numeşte vectorul rezidual.
Scopul oricărei metode de relaxare este ca prin schimbarea sistematică a
vectorului v, vectorul rezidual corespunzător r să se micşoreze, eventual să se
anuleze.
În cele ce urmează, pentru orice doi vectori
⎛ u1 ⎞ ⎛ v1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ u2 ⎟ ⎜v ⎟
u = ⎜ ⎟ şi v = ⎜ 2 ⎟
M M
⎜ ⎟ ⎜ ⎟
⎜u ⎟ ⎜v ⎟
⎝ n⎠ ⎝ n⎠
vom nota produsul lor scalar cu
u,v = v T u = u1v1 + u 2 v 2 + ... + u n v n (3)
Asociem sistemului (1) funcţia pătratică
1 n n n 1
F (v) = ∑ ∑ aij vi v j − ∑ bi vi = Av,v − b,v (4)
2 i =1 j =1 i =1 2
Deoarece A este pozitiv definită, rezultă Q(v)>0 pentru orice v≠0, unde
Q(v) = Av,v . Observăm de asemenea că pentru orice i = 1,n avem
∂F n
= ∑ aij v j − bi ,
∂ vi j=1
deci vectorul rezidual
r = gradF . (5)

Teorema 1. Problema determinării soluţiei sistemului (1) este echivalentă cu


problema determinării punctului de minim al funcţiei pătratice (4).
Demonstraţie.
Fie v0 soluţia sistemului (1). Atunci r0=Av0–b=0. Cum
∂F
r0=gradF(v0), rezultă (v0 ) = 0 . Aşadar, v=v0 este punct critic pentru F. Pe
∂ vi
de altă parte,
n n
d 2 F(v0 ) = ∑ ∑ aij dvi dv j > 0 .
i=1 j =1
Rezultă că v=v0 este un punct de minim global pentru F.
Sisteme de ecuaţii liniare 49

Reciproc, dacă v=v0 este punct de minim pentru F atunci


∂F
(v0 ) = 0 , i = 1,n .
∂ vi
n
0
Rezultă ∑ aij v j − bi = 0, i=1,n , deci v=v0 este soluţie pentru (1). ‰
j =1

În continuare prezentăm principiul de bază al metodei relaxării. Fie v un


vector de probă oarecare, p o direcţie dată şi D = { v ′ = v + tp; t ∈ R } , dreapta
care trece prin v şi este paralelă cu p. Ne propunem să determinăm v 0′ ∈ D
astfel încât F (v 0′ ) = min{F (v ′); v ′ ∈ D} . Ţinând seama de (4), rezultă
1
F (v ′) = A(v + tp) ,v + tp − b,v + tp =
2
1 t t2 t
= Av,v − b,v + Av,p + Ap,p + Ap,v − t b,p =
2 2 2 2
t2 t2
= F (v ) + Ap,p + t Av,p − t b,p = F (v) + Ap,p + t Av − b,p =
2 2
t2
= F (v ) + Ap,p + t r,p .
2
Folosim notaţia
t2
f (t ) = F (v ′) = F (v + tp ) = F (v) +
Ap,p + t r,p (6)
2
Determinăm pe t astfel încât f (t ) = F (v ′) să fie minimă. Pentru aceasta trebuie
să avem f ′(t ) = 0 , de unde rezultă t Ap,p + r,p = 0 . Aşadar, obţinem:
r,p
t min = − (7)
Ap,p
Cum f ′′(t ) = Ap,p > 0 , rezultă că vectorul v 0′ = v + t min p este un punct de
minim pentru F( v ′) .
În continuare avem
2
1 r,p
f (t min ) = F (v0′ ) = F (v) −
2 Ap,p
de unde rezultă
2
1 r,p
∆F = F(v0′ ) − F(v) = − ≤0 .
2 Ap,p
Pentru ca ∆F<0, trebuie ca r,p ≠ 0 . Rezultă că direcţia p se alege
astfel încât p să nu fie perpendiculară pe r.
50 Bazele Analizei Numerice

Observaţia 1. Dacă r0′ = Av 0′ − b este vectorul rezidual corespunzător vectorului


v 0′ = v + t min p , atunci r0′ ,p = 0 .

Într–adevăr,
r,p
r0′ ,p = Av-b,p + t min Ap,p = r,p − Ap,p = 0 .
Ap,p
Pentru interpretarea geometrică a principiului relaxării să considerăm cazul
particular n = 2.
Ecuaţiile F(v) = constant, reprezintă ecuaţiile unor elipse concentrice, al
căror centru comun, coincide cu punctul de minim al funcţiei F. Într–adevăr,
ecuaţia F(v) = c revine la
a11v12 + 2a12 v1v 2 + a 22 v 22 − 2b1v1 − 2b2 v 2 = 2c . (8)
Deoarece A este pozitiv definită, rezultă că
⎛a a12 ⎞
δ = ⎜⎜ 11 ⎟⎟>0 ,
⎝ a12 a 22 ⎠
deci (8) reprezintă o elipsă.
Fie v0 un vector de probă oarecare şi c0=F(v0). Ecuaţia F(v)=c0
reprezintă o elipsă şi v=v0 aparţine acestei elipse. Deoarece r0=gradF(v0), rezultă
că r0 este perpendicular pe tangenta în v=v0 la elipsă. Direcţia p1 o alegem
astfel încât să nu fie perpendiculară pe r0. Fie v1=v0+tminp1 şi fie c1=F(v1).
Punctul v=v1 aparţine elipsei F(v)=c1 şi de asemenea aparţine dreptei ce
trece prin v0 şi are direcţia p1.
Fie r1=Av1–b. Din Observaţia 1, r0
rezultă că r1 este perpendicular v0
pe direcţia p1. Pe de altă parte v1
r1=gradF(v1) este perpendicular
pe tangenta în v=v1 la elipsa
F(v)=c1. Rezultă că v=v1, este p1
r1
punctul de tangenţă la elipsa
F(v)=c1 al dreptei care trece prin v0 şi are direcţia p1.

§1.9. Metoda relaxării simple

Este o metodă specifică calculelor de mână, având mai ales o semnificaţie


istorică.
Fie v un vector de probă oarecare şi fie r=Av – b vectorul rezidual
corespunzător.
Sisteme de ecuaţii liniare 51

Dacă max ri = r j , atunci alegem p=ej unde e Tj = (0,...,1,...,0) . Rezultă


1≤i ≤ n
r, p rj
t min = − =− şi
Ap,p a jj
rj
v ′ = v + t min p = v − ej (1)
a jj
Pe componente avem:
⎧ vi daca i≠ j
⎪ rj
vi′ = ⎨ . (2)
vj − daca i= j
⎪ a jj

rj
De asemenea vom avea r ′ = Av ′ − b = r − Ae j şi mai departe
a jj
⎧ rj
⎪r1′ = r1 − a1 j
⎪ a jj

⎪.................

⎨r ′j = 0 (3)

⎪...................
⎪ rj
⎪rn′ = rn − a nj
⎪⎩ a jj
2
1 rj
∆F = F (v) − F (v ′) = − <0,
2 a jj
ceea ce asigură convergenţa metodei. Deşi convergenţa este asigurată, experienţele
numerice arată că aceasta este foarte lentă. Convergenţa este îmbunătăţită dacă
matricea A este tare diagonal dominantă.

Exemplu.
⎧ − x1 + 0.2 x 2 + 0.2 x3 + 0.6 =0

⎨0.2 x1 − x2 + 0.2 x3 + 0.5 =0
⎪0.2 x + 0.2 x 2 − x3 + 0,4 =0
⎩ 1
⎛ 0⎞
(1) ⎜ ⎟
Dacă alegem v = ⎜ 0 ⎟ , atunci
⎜ 0⎟
⎝ ⎠
52 Bazele Analizei Numerice

⎛ 0.6 ⎞
( 1 ) ⎜ ⎟
r = ⎜ 0.5 ⎟ şi max(r1(1) , r2(1) , r3(1) ) = r1(1) = 0.6 .
⎜ 0.4 ⎟
⎝ ⎠
Aşadar
⎛ 1⎞
⎜ ⎟ (2) (1) r1(1) (2) (1) r1(1)
p1 = e1 = ⎜ 0 ⎟ , v = v − e1 şi r = r − Ae1 .
⎜ 0⎟ a11 a11
⎝ ⎠
Pe componente avem
⎧v ( 2) = 0.6 ⎧r (2) =0
⎪1 ⎪⎪ 1
⎪ ( 2) (2)
⎨v 2 =0 , ⎨r2 = 0.62 ,
⎪ ( 2) ⎪ (2)
⎪⎩v3 =0 ⎪⎩r3 = 0.52

(
r2( 2) = max r1(2) , r2(2) , r3(2) = 0.62 . )
Rezultă
⎛ 0⎞ (2)
⎜ ⎟ (3) (2) r2 (3) (2) r2(2)
p 2 = e2 = ⎜ 1 ⎟ , v = v − e2 şi r =r − Ae2 ;
⎜ 0⎟ a 22 a 22
⎝ ⎠
⎧v (3) = 0 .6 ⎧r (3) = 0.124
⎪1 ⎪⎪ 1
⎪ (3) (3)
⎨v 2 = 0.62 , ⎨r2 =0
⎪ (3) ⎪ (3)
⎪⎩v3 =0 ⎪⎩r3 = 0.644

r3
(3)
(
= max r1 , r2
(3) (3) (3)
, r3 ) = 0.644 .
În continuare
⎛ 0⎞
⎜ ⎟ r (3) r (3)
p3 = e3 = ⎜ 0 ⎟ , v (4) = v (3) − 3 e3 şi r (4) = r (3) − 3 Ae3 .
⎜ 1⎟ a33 a33
⎝ ⎠
⎧v ( 4) = 0.6 ⎧r (4) = 0.2528
⎪1 ⎪⎪ 1
⎪ ( 4) (4)
⎨v 2 = 0.62 , ⎨r2 = 0.1288 , etc.
⎪ ( 4) ⎪ (4)
⎪⎩v3 = 0.644 r =0
⎩⎪ 3
Sisteme de ecuaţii liniare 53

§1.10. Metoda deplasărilor succesive (Gauss - Seidel)

În metoda deplasărilor succesive, direcţia de relaxare urmează ciclic


direcţiile e1, e2, ... , en, indiferent de reziduurile respective, după care ciclul se reia.
Pentru simplificare să presupunem că avem sistemul
⎧ a11 x1 + a12 x 2 + a13 x3 − b1 = 0

⎨a 21 x1 + a 22 x 2 + a 23 x3 − b2 = 0
⎪ a x + a x +a x − b = 0
⎩ 31 1 32 2 33 3 3
⎛1⎞
⎜ ⎟
Fie v (0)
vectorul de probă iniţial şi fie p′ = e1 = ⎜ 0 ⎟ . Conform formulei (1) din §9
⎜ 0⎟
⎝ ⎠
(0)
′ ( 0 ) r1
rezultă v = v − e1 , iar pe componente
a11
⎧ (0) 1
((0) (0) (0)
⎪v1′ = v1 − a a11v1 + a12 v2 + a13v3 − b1 )
⎪⎪ 11
(0)
v
⎨ 2 ′ = v 2 .
⎪ ′ (0)
⎪v3 = v3
⎪⎩
În continuare alegem direcţia de relaxare
⎛ 0⎞
⎜ ⎟
p′′ = e2 = ⎜ 1 ⎟
⎜ 0⎟
⎝ ⎠
şi obţinem vectorul v ′′ de componente
⎧ ′′ ′
⎪v1 = v1
⎪⎪ 1
(0)
⎨v2′′ = v2 − (a v′ + a v′ + a23v3′ − b2 ) .
⎪ a22 21 1 22 2
⎪ (0)
⎪⎩v3′′ = v3
În sfârşit, pentru direcţia de relaxare
⎛ 0⎞
⎜ ⎟
p ′′′ = e3 = ⎜ 0 ⎟ ,
⎜ ⎟
⎝1⎠
54 Bazele Analizei Numerice

obţinem vectorul v′′′ de componente



⎪v′′′ = v′′
⎪⎪ 1 1
⎨v2′′′ = v2′′ .
⎪ 1
⎪v3′′′ = v3( 0 ) − (a31v1′′ + a32v2′′ + a33v3′′ − b3 )
⎩⎪ a33
După încheierea acestui ciclu, vectorul găsit va fi notat cu v(1) şi va avea
componentele:
⎧ (1) a12 ( 0 ) a13 ( 0 ) b1
⎪v1 = v1′′′ = − v − v +
⎪ a11 2 a11 3 a11
⎪⎪ ( 1 ) a21 ( 1 ) a23 ( 0 ) b2
⎨v2 = v2′′′ = − v − v + (1)
⎪ a22 1 a22 3 a22
⎪ (1) a (1 ) a (1 ) b
⎪v3 = v3′′′ = − 31 v1 − 32 v2 + 3
⎪⎩ a33 a33 a33
Efectuând calculele obţinem:
⎧a v (1) + a v (0) + a v (0) = b
⎪ 11 1 12 2 13 3 1
⎪ (1) (1) ( 0)
⎨a 21v1 + a 22 v 2 + a 23 v3 = b2 .
⎪ (1) (1) (1)
⎪a31v1 + a32 v 2 + a33 v3 = b3

În general, pentru un sistem de n ecuaţii, după (m+1) cicluri se obţine vectorul
v ( m+1) care verifică ecuaţiile:
⎧a v(m+1 ) + a v(m) + a v(m) + ... + a v(m) = b
⎪ 11 1 12 2 13 3 1n n 1
⎪⎪a v(m+1 ) + a v(m+1 ) + a v(m) + ... + a v(m) = b
21 1 22 2 23 3 2n n 2 (2)

⎪..........................................................................
⎪ (m+1 )
⎪⎩an1v1 + an 2v2(m+1 )+an3v3(m+1 ) + ... + ann vn(m+1 ) = bn

Observaţia 1. Formulele (1) coincid cu formulele (10) din §7.


Dacă notăm cu
⎛ 0 0 0... 0 ⎞
⎜ ⎟ ⎛ a11 0 L 0 ⎞
⎜ a 21 0 0... 0 ⎟ ⎜ ⎟
⎜ ⎟ T ⎜ 0 a22 L 0 ⎟
E = ⎜ a31 a32 0... 0 ⎟ , F = E şi D = ⎜ ,
M M M ⎟
⎜ ⎟ ⎜ ⎟
⎜⎜ ... ... ⎟⎟ ⎜ 0 0 L ann ⎟⎠

⎝ a n1 a n 2 ... 0 ⎠
Sisteme de ecuaţii liniare 55

atunci matricea A admite descompunerea A=E+D+F şi şirul de vectori v (m)


verifică relaţia matricială
(D+E)v(m+1) + Fv(m) = b , (3)
de unde rezultă
v(m+1)= – (D+E) –1Fv(m)+(D+E) –1b . (4)
În sfârşit, notând
M= – (D+E) –1F şi C=(D+E) –1b (5)
obţinem procesul iterativ
v(m+1)=Mv(m)+C . (6)

Exemplu. Să se găsească soluţia aproximativă obţinută după 5 iteraţii cu metoda


deplasărilor succesive, luând vectorul iniţial (0, 0, 0), pentru sistemul Ax = b,
unde:
⎛ 2 −1 0 0⎞ ⎛1⎞
⎜ ⎟ ⎜ ⎟
⎜ −1 3 −1 0⎟ ⎜1⎟
A=⎜ ⎟ , b=⎜ ⎟.
0 −1 3 −1 1
⎜ ⎟ ⎜ ⎟
⎜ 0 0 −1 2⎟ ⎜1⎟
⎝ ⎠ ⎝ ⎠
Rezolvare
⎛18 0 0 0 ⎞ ⎛ 0 -1 0 0 ⎞
⎜ ⎟ ⎜ ⎟
-1 1 ⎜ 6 12 0 0 ⎟ ⎜ 0 0 -1 0 ⎟
( D+E ) = ⎜ F=⎜
36 2 4 12 0 ⎟ 0 0 0 -1⎟
⎜ ⎟ ⎜ ⎟
⎜ 1 2 6 18 ⎟ ⎜0 0 0 0⎟
⎝ ⎠ ⎝ ⎠
⎛ 0 18 0 0 ⎞
⎜ ⎟
−1 1 ⎜ 0 6 12 0 ⎟
M = −( D + E ) F = ⎜
36 0 2 4 12 ⎟
⎜ ⎟
⎜0 1 2 6 ⎟
⎝ ⎠
⎛ 4 1 ⎞
det ( M − λI ) = λ2 ⎜ λ 2 − λ + ⎟ .
⎝ 9 36 ⎠
Valorile proprii ale matricei M sunt λ1 = 0.369 ; λ2 = 0.077 ; λ3 = 0 ; λ4 = 0 .
ρ ( M ) = 0.369 < 1 , deci procesul este convergent.
Pe componente algoritmul conduce la:
56 Bazele Analizei Numerice

Iteraţia I
⎧ (1) 1 ( 0) ( 0)
⎪ x1 = a (b − a12 x2 − a1 3x 3 − a1 4x (40) )
⎪ 11
⎪ x (1) = 1 (b − a x ( 1) − a x (0) ⎛ 0.5 ⎞
21 1 23 3 − a 24x (40) ) ⎜ ⎟
⎪ 2 a22 (1) ⎜ 0.5 ⎟
⎨ rezultă x = ⎜
⎪ x3(1) =
1
(b − a 31x (11) − a 32x (21) − a 34x (40) ) 0.5 ⎟
⎜ ⎟
⎪ a33 ⎜ 0.75 ⎟
⎝ ⎠
⎪ (1) 1
⎪ x4 = (b − a 41x (11) − a 42x (21) − a 43x (31) )
⎩ a 44
Iteraţia a II –a
⎧ ( 2) 1 ( 1) ( 1) ( 1)
⎪ x1 = a (b − a12 x2 − a1 3x 3 − a1 4x 4 )
⎪ 11
⎪ x ( 2) = 1 (b − a x ( 2) − a x ( 1) − a x ( 1) ) ⎛ 0.75 ⎞
21 23 24 ⎜ ⎟
⎪ 2 1 3 4
a22 ( 2) ⎜ 0.75 ⎟
⎨ rezultă x = ⎜
⎪ x3( 2) =
1
(b − a 31x (1 2) − a 32x (22) − a 34x (41) ) 0.83333 ⎟
⎜ ⎟
⎪ a33 ⎜ 0.91667 ⎟
⎝ ⎠
⎪ ( 2) 1 ( 2) ( 2) ( 2)
x
⎪ 4 = ( b − a x
41 1 − a x
42 2 − a x
43 3 )
⎩ a44
Iteraţia a III –a
⎧ (3) 1 ( 2)
⎪ x1 = a (b − a12 x2 − a1 3x (32) − a1 4x (42) )
⎪ 11
⎪ x (3) = 1 (b − a x ( 3) ⎛ 0.875 ⎞
21 1 − a 23x (32) − a 24x (42) ) ⎜ ⎟
⎪ 2 a22 (3) ⎜ 0.90278 ⎟
⎨ rezultă x = ⎜
⎪ x3(3) =
1
(b − a 31x (13) − a 32x (23) − a 34x (42) ) 0.93981 ⎟
⎜ ⎟
⎪ a33 ⎜ 0.96991 ⎟
⎝ ⎠
⎪ (3) 1
⎪ x4 = (b − a 41x (13) − a 42x (23) − a 43x (33) )
⎩ a 44
Iteraţia a IV –a
⎧ ( 4) 1 ( 3)
⎪ x1 = a (b − a12 x2 − a1 3x (33) − a1 4x (43) )
⎪ 11
⎪ x ( 4) = 1 (b − a x ( 4) ⎛ 0.95139 ⎞
21 1 − a 23x (33) − a 24x (43) ) ⎜ ⎟
⎪ 2 a22 ( 4) ⎜ 0.96373 ⎟
⎨ rezultă x = ⎜
⎪ x3( 4) =
1
(b − a 31x (1 4) − a 32x (24) − a 34x (43) ) 0.97788 ⎟
⎜ ⎟
⎪ a33 ⎜ 0.98894 ⎟
⎝ ⎠
⎪ ( 4) 1
⎪ x4 = (b − a 41x (1 4) − a 42x (24) − a 43x (34) )
⎩ a 44
Iteraţia a V –a
Sisteme de ecuaţii liniare 57

⎧ ( 5) 1 ( 4)
⎪ x1 = a (b − a12 x2 − a1 3x (34) − a1 4x (44) )
⎪ 11
⎪x =
( 5) 1 ⎛ 0.98187 ⎞
(b − a 21x (15) − a 23x (34) − a 24x (44) ) ⎜ ⎟
⎪ 2 a22 (5) ⎜ 0.98658 ⎟
⎨ rezultă x = ⎜ ⎟ .
1 0.99184
⎪ x3(5) = (b − a 31x (15) ( 5) ( 4)
− a 32x 2 − a 34x 4 ) ⎜ ⎟
⎪ a33 ⎜ 0.99592 ⎟
⎝ ⎠
⎪ (5) 1
⎪ x4 = (b − a 41x (15) − a 42x (25) − a 43x (35) )
⎩ a 44

Teorema 1. Dacă matricea A este simetrică şi pozitiv definită, procesul iterativ


Gauss –Seidel este convergent.
Demonstraţia rezultă din analiza descreşterii funcţiei pătratice F prin trecerea de
la o iteraţie la alta. O altă demonstraţie se bazează pe faptul că se poate arăta că
dacă A este simetrică şi pozitiv definită, atunci ρ ( M ) < 1 şi conform Teoremei 2
din §7, procesul iterativ este convergent.

§1.11. Metoda suprarelaxării

Pentru sisteme mari de ecuaţii, procesul iterativ Gauss –Seidel converge


lent, deoarece raza spectrală ρ (M ) este în vecinătatea lui 1.
Metoda suprarelaxării este o generalizare a metodei Gauss –Seidel, care
constă în introducerea unui parametru ω în vederea accelerării convergenţei. Ca şi
în metoda Gauss –Seidel, direcţia de relaxare urmează ciclic direcţiile e1, e2 , ..., en
dar se înlocuieşte tmin cu t=ω⋅tmin. Exemplificăm metoda pe cazul particular al
unui sistem de trei ecuaţii. Fie v(0) vectorul de probă iniţial. După un ciclu în care
direcţia de relaxare urmează succesiv direcţiile e1, e2 , e3 obţinem vectorul v(1)
de componente:
⎧ (1) (0)
⎪v1 = v1 −
ω
a11
( )
a11v1( 0 ) + a12 v2( 0 ) + a13v3( 0 ) − b1

⎪⎪ ( 1 ) (0)
⎨v2 = v2 −
ω
a22
( )
a21v1( 1 ) + a22 v2( 0 ) + a23v3( 0 ) − b2 (1)

⎪ (1) (0)
⎪v3 = v3 −
⎪⎩
ω
a33
( )
a31v1( 1 ) + a32 v2( 1 ) + a33v3( 0 ) − b3

Dacă ω = 1, obţinem din nou formulele (1) din §10. După efectuarea calculelor
rezultă:
58 Bazele Analizei Numerice

⎧ω-1a v( 1 ) + ( 1 − ω −1 )a v( 0 ) + a v( 0 ) + a v( 0 ) = b
11 1 11 1 12 2 13 3 1

⎪ (1 ) -1 ( 1 ) −1 (0) (0)
⎨a21v1 + a22 ω v2 + ( 1 − ω )a22 v2 + a23v3 = b2 (2)
⎪ (1) (1 ) -1 ( 1 ) −1 (0)
⎪a31v1 + a32v2 +a33ω v3 + ( 1 − ω )a33v3 = b3

Dacă introducem notaţiile
⎛ 0 0 0⎞ ⎛ a11 0 0 ⎞
⎜ ⎟ ⎜ ⎟
E = ⎜ a 21 0 0 ⎟ , D = ⎜ 0 a 22 0 ⎟ şi F=ET ,
⎜a ⎟ ⎜ 0 0 a33 ⎟⎠
⎝ 31 a32 0 ⎠ ⎝
relaţiile (2) capătă forma matricială
(E+ω –1D)v(1) + [F+(1 –ω –1)D]v(0) = b . (3)
În general, pentru un sistem de n ecuaţii, şirul de vectori v(m) satisface relaţia:
(E+ω –1D) v(m+1) + [F+(1 –ω –1)D] v(m) = b . (4)
În continuare avem
v(m+1)= – (E+ω –1D) –1 [F+(1 –ω –1)D] v(m)+ (E+ω –1D) –1b .
Notăm cu
⎪ [ ]
⎧M (ω) = −( E + ω −1 D) −1 F + (1 − ω −1 ) D
. (5)
[ ]
⎨ −1
⎪⎩C (ω) = E + ω −1 D b
Obţinem astfel procesul iterativ
v(m+1) =M(ω )v(m) + C(ω) . (6)
Pentru ω = 1 obţinem algoritmul Gauss –Seidel (vezi (4), (5), (6) din
§10).
Parametrul optim, ωopt, va fi acela pentru care raza spectrală a matricei
M(ω) va fi minimă. Evident, pentru acest parametru se obţine cea mai rapidă
convergenţă.
Se poate demonstra următoarea teoremă.

Teorema 1. Dacă matricea A este simetrică şi pozitiv definită, metoda


suprarelaxării este convergentă pentru orice 0 < ω < 2.
În particular, rezultă că metoda Gauss –Seidel este convergentă dacă A
este simetrică şi pozitiv definită, deoarece corespunde cazului particular ω = 1.
Determinarea parametrului optim, ωopt, este posibilă în cazul matricelor
bloc tridiagonale.

Definiţia 1. O matrice A se numeşte bloc tridiagonală, dacă are următoarea


structură:
Sisteme de ecuaţii liniare 59

⎛ D1 F1 0 0 L 0 ⎞
⎜ ⎟
⎜ E1 D2 F2 0 L 0 ⎟
⎜ 0 E 0 ⎟
2 D3 F3 L
A =⎜ ⎟,
⎜ M O M ⎟
⎜ ⎟
⎜ 0 L Em− 2 Dm−1 Fm−1 ⎟
⎜ 0 L 0 Em−1 Dm ⎟⎠

unde Di sunt matrice pătratice de diferite ordine, Ek şi Fk sunt, în general,
matrice dreptunghiulare. Fk are acelaşi număr de linii ca matricea Dk şi acelaşi
număr de coloane ca matricea Dk+1. Ek are acelaşi număr de linii cu Dk+1 şi
acelaşi număr de coloane cu Dk. În afara matricelor care intră în bandă, toate
elementele sunt nule. Dacă, în plus, matricele Di sunt diagonale, A se numeşte
diagonal bloc tridiagonală.

Prezentăm de asemenea fără demonstraţie următoarea teoremă.


Teorema 2. Fie A o matrice simetrică, pozitiv definită şi diagonal tridiagonală.
2
Atunci parametrul optim de relaxare este dat de relaţia ω opt = , unde
2
1 + 1 − λ1
λ1 este cea mai mare valoare proprie a matricei – D –1(E+F) .

Exemplu. Fie sistemul Ax = b din exemplul din paragraful precedent, care are
matricea diagonal bloc tridiagonală
⎛ 2 −1 0 0⎞ ⎛ 0 −1 0 0⎞
⎜ ⎟ ⎜ ⎟
⎜ −1 3 −1 0⎟ ⎜ −1 0 −1 0 ⎟
A=⎜ , E+F =⎜ ,
0 − 1 3 − 1⎟ 0 − 1 0 − 1⎟
⎜ ⎟ ⎜⎜ ⎟
⎜ 0 0 −1 2⎟
⎝ ⎠ ⎝0 0 − 1 0 ⎟⎠
⎛ 1 ⎞
⎜0 0 0⎟
⎜ 2 ⎟
⎛ 2 0 0 0⎞
⎜ ⎟ ⎜1 0 1 0⎟
⎜0 3 0 0⎟ ⎜ ⎟
D=⎜ ⎟ , − D −1 ( E + F ) = ⎜ 3 3
⎟.
0 0 3 0 1 1
⎜ ⎟ ⎜ 0 0 ⎟
⎜ 0 0 0 2⎟ ⎜ 3 3⎟
⎝ ⎠
⎜⎜ 0 0 1 0 ⎟⎟
⎝ 2 ⎠
Ecuaţia caracteristică este
60 Bazele Analizei Numerice

1
−λ 0 0
2
1 1
−λ 0
3 3 =0,
1 1
0 −λ
3 3
1
0 0 −λ
2
care este echivalentă cu
2λ −1 0 0
− 1 3λ − 1 0
= 36 λ 4 + 16 λ 2 + 1 = 0 .
0 − 1 3λ − 1
0 0 −1 2λ

4± 7
Rezultă λi = ± şi λ1 =0.60763 .
18
2
Parametrul optim de relaxare ωopt = =1.11469 .
1+ 1 − λ12
Procedeul iterativ x (m+1)
=M(ω )x + C(ω) , unde
(m)

⎛ − 0.11469 0.55734 0 0 ⎞ ⎛ 0.55734 ⎞


⎜ ⎟ ⎜ ⎟
⎜ − 0.04261 0.0924 0.37156 0 ⎟ ⎜ 0.57865 ⎟
M (ω ) = ⎜ , C (ω ) = ⎜ ,
− 0.01583 0.03433 0.02337 0.37156 ⎟ 0.58657 ⎟
⎜ ⎟ ⎜ ⎟
⎜ − 0.00882482 0.01913 0.01303 0.0924 ⎟ ⎜ 0.88426 ⎟
⎝ ⎠ ⎝ ⎠
conduce la următoarele valori ale vectorului soluţiilor pentru primele cinci iteraţii:
⎛ 0.55734 ⎞ ⎛ 0.81593 ⎞ ⎛ 0.92431 ⎞ ⎛ 0.99166 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(1) ⎜ 0.57865 ⎟ ( 2) ⎜ 0.82631 ⎟ (3) ⎜ 0.96946 ⎟ ( 4) ⎜ 0.99595 ⎟
x =⎜ , x =⎜ , x =⎜ , x =⎜ ,
0.58657 ⎟ 0.93988 ⎟ 0.98803 ⎟ 0.99825 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0.88426 ⎟ ⎜ 0.97976 ⎟ ⎜ 0.99565 ⎟ ⎜ 0.99953 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

⎛ 0.9987 ⎞
⎜ ⎟
(5) ⎜ 0.99933 ⎟
x =⎜ .
0.99978 ⎟
⎜ ⎟
⎜ 0.99993 ⎟
⎝ ⎠
Sisteme de ecuaţii liniare 61

§1.12. Metoda gradienţilor conjugaţi

Fie sistemul Ax=b, unde A este simetrică şi pozitiv definită.

Definiţia 1. Spunem că direcţiile p şi q sunt direcţii conjugate în raport cu


matricea A dacă Ap,q = p,Aq = 0 .

Fie v(0) un vector de probă şi r(0)=Av(0) – b vectorul rezidual


corespunzător. În metoda gradienţilor conjugaţi pentru rezolvarea sistemului
Ax=b, prima direcţie de relaxare se alege p(1) = – r(0) . În continuare avem:
r ( 0 ) ,p (1) r (0) ,r (0)
t min = − = , (1)
Ap (1) ,p (1) Ap (1) ,p (1)
v(1) = v(0) + q1p(1) , (2)
unde
r (0) ,p (1)
q1 = t min = − (3)
Ap (1) ,p (1)
Valoarea minimă a funcţiei F=F(v), când v parcurge dreapta ce trece
prin v(0) şi are direcţia p(1)= – r(0) este v(1).

Fie
r(1)=gradF(v(1))=Av(1) – b.
Din Observaţia 1 din §8 rezultă că
r (1) ,p (1) = − r (1) ,r (0) = 0 . (4)
Următoarea direcţie de relaxare p(2) se alege de forma p(2)= – r(1)+c1p(1) şi în plus
să fie conjugată direcţiei p(1) în raport cu A.
Aşadar, avem:
0 = Ap (2) ,p (1) = p (2) ,Ap (1) = − r (1) ,Ap (1) + c1 Ap (1) ,p (1)
de unde rezultă
r (1) ,Ap (1)
c1 = . (5)
Ap (1) ,p (1)
Avem de asemenea
62 Bazele Analizei Numerice

r (1) ,p (2)
(2) (1) (2) (1)
v =v + t min p =v − p (2) . (6)
(2) (2)
Ap ,p
În general, pentru orice k≥2 obţinem
r ( k −1) ,Ap ( k −1)
ck-1 = , (7)
Ap ( k −1) ,p ( k −1)

p ( k ) = − r ( k −1) + ck −1 p ( k −1) , (8)


r ( k −1) ,p ( k )
qk = − , (9)
Ap ( k ) ,p ( k)

vk = v ( k −1) + qk p ( k ) . (10)
Metoda gradienţilor conjugaţi este definită de formulele (7) – (10).
În continuare prezentăm unele simplificări şi proprietăţi suplimentare.
Deoarece r(k –1) este ortogonal pe direcţia p(k –1) rezultă
r ( k −1) , p ( k ) = r ( k −1) ,− r ( k −1) + c k −1 p ( k −1) = − r ( k −1) , r ( k −1)
şi deci
r ( k −1) ,r ( k −1)
qk = >0. (9’)
Ap ( k ) ,p ( k )
Pe de altă parte, din (10) avem
r ( k ) = Av ( k ) − b = Av ( k −1) + qk Ap ( k ) − b = r ( k −1) + qk Ap ( k ) .
Obţinem deci următoarea relaţia de recurenţă
r ( k ) = r ( k −1) + qk Ap ( k ) . (11)
Observăm că
r ( k ) ,r ( k −1) = 0 . (12)
Într –adevăr, din (11) rezultă
r ( k ) , r ( k −1) = r ( k −1) , r ( k −1) + q k r ( k −1) , Ap ( k ) . (13)
Pe de altă parte, ţinând seama de (8), de (9’) şi de faptul că p(k) şi p(k –1) sunt
A – conjugate, rezultă
r ( k −1) , Ap ( k )
(k −1 ) ( k −1) ( k −1)
qk r ,Ap (k)
= r ,r = − r ( k −1) , r (k −1 )
(k ) ( k −1) ( k −1)
Ap ,− r + c k −1 p
.
Din (13) şi (14) rezultă acum (12) .
Sisteme de ecuaţii liniare 63

Deoarece Ap(k) oricum trebuie calculat, rezultă că vectorul rezidual r(k) se


va calcula din relaţia de recurenţă (11) şi nu prin înlocuirea directă a lui v(k) în
expresia Av=b.
În continuare vom stabili o altă formulă pentru coeficientul ck –1.
Din (11) şi (12) rezultă

r ( k −1) ,Ap ( k −1) = r (k −1) ,


1
qk −1
(r ( k −1)
)
− r ( k − 2) =
1
qk −1
r ( k −1) ,r ( k −1) .

Ţinând seama de (7) şi de (9’) obţinem


r (k −1 ) ,Ap(k −1 ) r (k −1 ) ,r (k −1 )
ck −1 = = .
Ap(k −1 ) ,p(k −1 ) r (k −2 ) ,r (k −2 )

Algoritm pentru rezolvarea sistemelor de ecuaţii liniare cu metoda gradienţilor


conjugaţi
Calculează
r ( 0 ) = Av( 0 ) − b ; p ( 1 ) = − r ( 0 ) ;
r ( 0 ) ,r ( 0 )
q1 = ; v( 1 ) = v( 0 ) + q1 p( 1 ) ; r ( 1 ) = r ( 0 ) + q1 Ap( 1 ) ;
(1) (1)
Ap ,p
Pentru k:=2,n calculează
r (k −1 ) ,r (k −1 )
ck −1 = ; p(k) = −r (k −1 ) + ck −1 p(k −1 ) ;
(k − 2 ) (k − 2 )
r ,r

r (k −1 ) ,r (k −1 )
qk = ; v(k) = v(k −1 ) + qk p(k) ; r (k) = r (k −1 ) + qk Ap(k) ;
(k) (k)
Ap ,p
sfârşit pentru k .
În Mathcad algoritmul de mai sus este aplicat unui exempu.
64 Bazele Analizei Numerice

Metoda gradientilor conjugati

Folosind metoda gradientilor conjugati sa se gaseasca solutia sistemului de ecuatii liniare Ax=b
0
5 1 1 1 6
0
1 6 2 2 7 Vectorul de proba x n 4
A b 0
1 2 7 1 9
0
1 2 1 8 8

Algoritmul metodei gradientilor conjugati

< 0>
GrCon( A , b , x, n ) r A .x b
< 0>
p r
< 0> . < 0>
r r
q
A p .p
.
x x q .p
< 1> < 0>
r r q .A .p
for k ∈ 2 .. n
<k 1> . r< k 1>
r
c
<k 2> . r< k 2>
r
<k 1>
p r c .p
<k 1> . r< k 1>
r
q
A .p .p
x x q .p
< k> <k 1>
r r q .A .p
x

Apelarea programului si afisarea rezultatelor

1
1
GrCon( A , b , x, n ) =
1
1
Sisteme de ecuaţii liniare 65

Teorema 1. În metoda gradienţilor conjugaţi direcţiile de relaxare p(k),


(k=1,2,...) sunt conjugate două câte două în raport cu matricea A, iar vectorii
reziduali r(k), (k=0,1,...) sunt ortogonali doi câte doi.
Demonstraţie.
Demonstraţia se face prin inducţie relativ la k . Pentru k=1 avem r (1) , r (0) = 0
din (4), iar pentru prima afirmaţie nu avem ce arăta. Ipoteza de inducţie este:
r (i ) , r ( j ) = 0 pentru i≠j , 0≤i, j≤k , (15)

p (i ) , Ap ( j ) = 0 pentru i≠j , 1≤i≤j≤k . (16)


Va trebui să arătăm că
r (k +1 ) ,r (j) = 0 , pentru j = 0 ,k (17)

p ( k +1) , Ap ( j ) = 0 , pentru j = 1,k . (18)


Fie j=k, atunci
p ( k +1) , Ap ( k ) = Ap (k +1 ) ,p (k) = 0
deoarece pk şi pk+1 sunt A –conjugate.
Fie 1≤j<k , atunci
p(k+1 ),Ap(j) = -r +ck p ,Ap
(k) (k) (j)
= − r (k),Ap(j) ,

deoarece p(k),Ap(j) = 0 conform ipotezei (16).


Pe de altă parte,
Ap(j) =
qj
(
1 (j) (j-1 )
r -r )
şi din (15) rezultă r (k) ,Ap(j) = 0 .
Aşadar am demonstrat (18).
Pentru j=k, (17) este adevărată din (12).
Fie 0≤j<k. Din (11) şi (15) rezultă:
r (k +1 ) ,r (j) = r (k)+q k+1 Ap (k+1 ) ,r (j) = q k +1 Ap ( k +1) , r ( j ) =

= q k +1 Ap (k+1 ) ,-p (j) + c j −1 p (j −1 )

Ţinând seama de (18) şi de faptul că A este simetrică, rezultă r (k +1 ) ,r (j) = 0 şi


cu aceasta teorema este demonstrată. ‰

Din Teorema 1 rezultă că vectorii reziduali r(k) sunt ortogonali doi câte
doi şi deci sunt liniar independenţi (dacă sunt nenuli). Aşadar, nu pot exista (n+1)
vectori reziduali nenuli. Rezultă că în metoda gradienţilor conjugaţi soluţia exactă
66 Bazele Analizei Numerice

se găseşte în cel mult n paşi. Teoretic ar trebui ca vectorul rezidual r(n) să fie zero
şi deci v=v(n) să fie soluţia exactă a sistemului.
În practică acest lucru nu se întâmplă, deoarece în determinarea vectorilor
r(k) intervin erori de calcul, care fac ca aceştia să nu formeze un sistem ortogonal.
Deoarece în general r(n)≠0, continuăm să calculăm r(k), k>n până obţinem un
vector rezidual nul sau foarte mic ⎛⎜ r (k) <<1⎞⎟ . Această atitudine se justifică
⎝ ⎠
prin faptul că metoda gradienţilor conjugaţi este o metodă de relaxare prin care
valoarea funcţiei pătratice F=F(v) se micşorează la fiecare pas.
Metoda gradienţilor conjugaţi se dovedeşte foarte utilă pentru sistemele în
care matricea A are multe zerouri şi fiecare ecuaţie are o anumită regularitate
internă.
Astfel de sisteme apar în procesul de discretizare a problemei la limită a
ecuaţiilor cu derivate parţiale de tip eliptic.

§1.13. Metoda celor mai mici pătrate

În procesul de prelucrare şi ajustare a datelor, apar sisteme de ecuaţii


liniare supradimensionate sau subdimensionate. Abordăm pentru început problema
sistemelor supradimensionate. Fie sistemul
⎧a11 x1 +...+ a1n xn = b1

⎨.......................... , m>n . (1)
⎪a x +...+ a x = b
⎩ m1 1 mn n m

Evident, un asemenea sistem poate să nu aibă soluţie. Fie


r = Ax − b = (r1, r2 , ..., rm )T (2)
vectorul rezidual , unde
ri = ai1 x1 +...+ ain xn − bi , i = 1, m .

Considerăm funcţia pătratică


f(x) = f(x1,...,xn ) = r,r = r12 + r22 +...+ rm2 (3)

Definiţia 1. Se numeşte soluţie în sensul celor mai mici pătrate a sistemului (1),
acel vector x* , pentru care funcţia (2) are valoarea minimă.

Dacă: min f(x) = f(x* ) = 0 , atunci ri(x*)=0, pentru orice i = 1, m . Rezultă că


x∈R n
sistemul (1) este compatibil şi x=x* este soluţia exactă a sa.
Sisteme de ecuaţii liniare 67

În general, sistemul (1) nu este compatibil şi min f(x) = f(x* ) > 0 , iar x=x*
n
x∈R
este un substitut pentru soluţia sistemului şi anume soluţia în sensul celor mai
mici pătrate.
Funcţia f se poate pune sub forma
f(x)= r,r = Ax-b,Ax-b = Ax,Ax − 2 Ax,b + b,b
şi mai departe
f(x)= AT Ax,x − 2 AT b,x + b,b (4)

Teorema 1. Dacă rangA = n, atunci sistemul (1) admite o singură soluţie în


sensul celor mai mici pătrate şi aceasta este soluţia (unică) a sistemului.
AT Ax=AT b (5)
(Sistemul (5) se numeşte sistemul normal al lui Gauss).
Demonstraţie.
Punctele de extrem ale funcţiei pătratice f dată de (4), se caută printre
punctele sale critice, iar acestea, se află rezolvând sistemul:
grad f = 0
Cum grad f=ATAx –ATb, obţinem sistemul ATAx=ATb. Pe de altă parte se ştie că:
( )
rang A=rang AT =rang AT A =rang AAT . ( )
Matricea B=ATA este o matrice pătratică de ordinul n şi rangB=n,
conform celor de mai sus. Rezultă că sistemul (5) admite o soluţie unică, x=x*,
care este punct critic pentru f.
Matricea B este evident simetrică şi semipozitiv definită. Mai mult, în
ipoteza noastră, matricea B este pozitiv definită. Într –adevăr, dacă presupunem că
Bx,x = 0 , atunci rezultă Ax,Ax = 0 şi deci Ax=0. Cum rang A=n<m
rezultă x=0.
Pe de altă parte avem
n n
d 2 f(x) = ∑ ∑ bij dxi dx j > 0 ,
i =1 j =1
*
de unde rezultă că x=x este punct de minim pentru f şi cu aceasta teorema este
demonstrată. ‰

Aşadar, în ipoteza rangA=n, soluţia sistemului (1), în sensul celor mai


mici pătrate, este unică şi se află rezolvând sistemul (5). Acest sistem este simetric
pozitiv definit. Rezolvarea sa se poate face prin metoda Cholesky sau una din
metodele de relaxare.

Observaţia 1. Teoretic, soluţia sistemului (5) este x*=(ATA) –1ATb. Matricea


P=(ATA) –1AT se numeşte pseudoinversa matricei (dreptunghiu –lare) A.
68 Bazele Analizei Numerice

Se observă că dacă A este pătratică, atunci P=A –1(AT) –1AT=A –1, deci
noţiunea de matrice pseudoinversă generalizează noţiunea de matrice inversă
(pentru matrice dreptunghiulare).
Rezolvarea practică a sistemului (5) ridică probleme din cauza faptului că numărul
de condiţionare al matricei B=ATA este mare. Fie λ1 ≥ λ2 ≥...≥ λn > 0 valorile
proprii ale matricei B. Atunci:
λ
cond(B) = 1 . (6)
λn
Cum
Bx,x Bx,x
λ1 = sup ≥ max Bei ,ei = maxbii şi λn = inf ≤ min Bei ,ei = minbii ,
x≠0 x,x i i x≠0 x,x i i
rezultă
maxbii
cond( B) ≥ . (7)
minbii

Exemplul 1. (Dreapta de regresie)


Să presupunem că vrem să găsim o dreaptă y=mx+n care să treacă prin punctele:
M1(0,0) ; M2(2,1) ; M3(5,3) ; M4(8,5) ; M6(10,6)
Se obţine astfel sistemul
⎧0 ⋅ m+n=0
⎪2 ⋅ m+n=1
⎪⎪
⎨5 ⋅ m+n=3 . (8)
⎪8 ⋅ m+n=5

⎪⎩10 ⋅ m+n=6
Evident, sistemul (8) este supradimensionat şi incompatibil. Avem:
⎛ 0 1⎞ ⎛ 0⎞
⎜ ⎟ ⎜ ⎟
⎜ 2 1⎟ ⎜1⎟
⎛193 25 ⎞ ⎛117 ⎞
A = 5 1 ; b = ⎜ 3 ⎟ ; B = AT A = ⎜⎜
⎜ ⎟ ⎟⎟ ; AT b = ⎜⎜ ⎟⎟ .
⎜ ⎟ ⎜ ⎟ ⎝ 25 5 ⎠ ⎝ 15 ⎠
⎜ 8 1⎟ ⎜ 5⎟
⎜ ⎟ ⎜ ⎟
⎝10 1⎠ ⎝ 6⎠
Ecuaţiile normale ale lui Gauss sunt
⎧193m + 25n = 117
⎨ .
⎩25m + 5n = 15
21 3
Soluţia exactă este m= ,n = − , iar valorile proprii sunt λ1 = 196.268 şi
34 34
λ2 = 1.732 . Rezultă cond( B ) ≅ 113 . Dacă folosim estimarea (7) obţinem
Sisteme de ecuaţii liniare 69

maxbii 193
= = 38,6 .
minbii 5
21 3
Dreapta de regresie în acest caz este: y= x − . Această dreaptă nu trece
34 34
prin punctele Mi, dar este acea dreaptă din plan care trece cel mai aproape de
aceste puncte.
Să presupunem că vrem să determinăm dreapta de regresie corespunzătoare
punctelor M i ( xi ,yi ) , i = 1,n .
Matricele
⎛ 1 1⎞ ⎛ n(n + 1)(2n + 1) n(n + 1) ⎞
⎜ ⎟ ⎜ ⎟
⎜ 2 1⎟ T ⎜ 6 2 ⎟
A=⎜ şi B = A A =
M M⎟ ⎜ n(n + 1)
n ⎟⎟
⎜⎜ ⎟⎟ ⎜
⎝ n 1⎠ ⎝ 2 ⎠
conduc la
max bii (n + 1)(2n + 1) n 2
= > .
min bii 6 3
Pentru n=100, cond(B)>13333, deci sistemul normal al lui Gauss este prost
condiţionat.

Sistemele subdimensionate apar în probleme legate de ajustarea datelor. Să


presupunem că măsurând n cantităţi x1, x2, ... , xn, găsim valorile l1, l2, ... , ln. Pe
de altă parte, necunoscutele x1, x2, ... , xn satisfac anumite ecuaţii şi anume
⎧a11 x1 + ... + a1n xn = b1

⎨........................ , m<n . (9)
⎪a x + ... + a x = b
⎩ m1 1 mn n m
Datorită lipsei de acurateţe a măsurătorilor se pune condiţia ca suma
n
∑ (li − xi ) să fie minimă. Se obţine astfel o problemă de
2
pătratelor corecţiilor
i =1
extrem cu legături.

Exemplul 2.
Să presupunem că măsurând unghiurile x1, x2, x3 ale unui triunghi găsim
valorile l1, l2, l3. Evident avem legătura
x1+ x2+ x3 = 180° .
Impunem condiţia ca abaterile datorate impreciziei măsurătorilor să fie cât mai
mici, deci ca expresia
(x1 − l1 )2 + (x2 − l2 )2 + (x3 − l3 )2
să fie minimă.
70 Bazele Analizei Numerice

Revenind la cazul general, se pune problema să determinăm n necunoscute x1, x2,


... , xn care satisfac legăturile (9) şi care minimizează funcţia:
f(x1,...,xn ) = (x1 − l1 )2 + ... + (xn − ln )2 .
Considerăm funcţia auxiliară
Φ ( x1 ,..., xn , λ1 ,..., λm ) = ( x1 − l1 ) 2 + ... + ( xn − ln ) 2 −
− 2λ1 (a11x1 + ... + a1n xn − b1 )... − 2λm (am1x1 + ... + amn xn − bm )
Punctele critice ale funcţiei φ sunt date de sistemul
⎧ x1 − l1 − (a11λ1 + ... + am1λm ) = 0

⎪............................................
⎪⎪ xn − ln − (a1n λ1 + ... + amn λm ) = 0
⎨ . (10)
⎪a11 x1 + ................. + a1n xn − b1 = 0
⎪................................................

⎪⎩am1x1 + ................. + amn xn − bm = 0
Dacă notăm cu l = (l1 ,..., ln )T şi cu λ = (λ1 ,..., λm )T , atunci sistemul (10) se
scrie sub forma matricială
x = AT λ + l (10’)
Ax = b (10’’)
Înlocuind (10’) în (10’’) obţinem sistemul
AAT λ = b − Al . (11)
T
Dacă rang A = m , atunci rang ( AA ) = m şi sistemul (11) are soluţie unică. Mai
mult, matricea AAT este pătratică, simetrică şi pozitiv definită, deci rezolvarea
sistemului (11) se poate face cu metoda Cholesky sau una din metodele de relaxare.
Rezolvând sistemul (11) găsim multiplicatorii lui Lagrange λ1 ,..., λm , iar din
relaţia x = AT λ + l determinăm punctul de minim condiţionat al funcţiei f.
(Cum d 2φ = 2(dx12 + ... + dxn2 ) > 0 rezultă că avem într –adevăr un punct de
minim).

Exerciţii
Sisteme de ecuaţii liniare 71

Folosind metoda Gauss să se rezolve următoarele sisteme de ecuaţii liniare:


⎧ 6 x1 + x2 − x3 + x4 =2
⎪ x + 7x + 2x − x = −1
⎪ 1 2 3 4
1. ⎨
⎪− x1 + 2 x2 + 8 x3 + x4 = 12
⎪⎩ x1 − x2 + x3 + 9 x4 = −5
⎛1.0 0.1667 − 0.1667 0.1667 ⎞
⎜ ⎟
~ ⎜ 0 1.0 0.3171 − 0.1707 ⎟
R. Matricea triunghiulară A = ⎜ ,
0 0 1.0 0.2150 ⎟
⎜ ⎟
⎜ 0 0 0 1.0 ⎟⎠

⎛ 0 .333 ⎞
⎜ ⎟
~ ⎜ − 0 .1951 ⎟
vectorul termenilor liberi transformat b = ⎜ .
1 .7850 ⎟
⎜ ⎟
⎜ − 1 .0 ⎟
⎝ ⎠
⎛ 1⎞
⎜ ⎟
⎜ − 1⎟
Soluţia sistemului x = ⎜ ⎟ .
2
⎜ ⎟
⎜ − 1⎟
⎝ ⎠
⎧4 x1 + x2 − x3 + x4 =1
⎪x + 8x + x + x =7
⎪ 1 2 3 4
2. ⎨
⎪ x1 + x2 + 6 x3 + x4 = −10
⎪⎩ x1 + x2 + x3 + 7 x4 = 12
⎛1.0 0.2500 − 0.2500 0.2500 ⎞
⎜ ⎟
~ ⎜ 0 1 .0 0.1613 0.0968 ⎟
R. Matricea triunghiulară A = ⎜ ,
0 0 1 .0 0.1105 ⎟
⎜ ⎟
⎜ 0 0 0 1.0 ⎟⎠

⎛ 0.2500 ⎞
⎜ ⎟
~ ⎜ 0.8710 ⎟
vectorul termenilor liberi transformat b = ⎜ .
− 1.7789 ⎟
⎜ ⎟
⎜ 2 .0 ⎟
⎝ ⎠
Soluţia sistemului x = (–1 1 –2 2)’.
72 Bazele Analizei Numerice

⎧ 5 x1 + x2 + x3 + x4 = 14
⎪ x + 8x + 2 x + x = 127
⎪ 1 2 3 4
3. ⎨
− x
⎪ 1 2 + x + 6 x3 − x 4 = 15
⎪⎩ x1 + x2 + x3 + x4 = 10
⎛1.0 0.2000 − 0.2000 0.2000 ⎞
⎜ ⎟
~ ⎜ 0 1 .0 0.2308 0.1026 ⎟
R. Matricea triunghiulară A = ⎜ ,
0 0 1 .0 − 0.1558 ⎟
⎜ ⎟
⎜ 0 0 0 1.0 ⎟⎠

⎛ 2.8000 ⎞
⎜ ⎟
~ ⎜ 3.1026 ⎟
vectorul termenilor liberi transformat b = ⎜ .
2.3766 ⎟
⎜ ⎟
⎜ 4 .0 ⎟
⎝ ⎠
Soluţia sistemului x = (1 2 3 4)’.

Să se rezolve următoarele sisteme de ecuaţii liniare folosind metoda


Cholesky:
⎧10 x1 + x2 − x3 − x4 =9
⎪x + 9x + x − x = −6
⎪ 1 2 3 4
4. ⎨
⎪− x1 + x2 + 11x3 + x4 = 8
⎪⎩− x1 − x2 + x3 + 8 x4 = −7
⎛ 3.1623 0 0 0 ⎞
⎜ ⎟
T ⎜ 0.3162 2.9833 0 0 ⎟
R. R =⎜ . Soluţia sistemului
− 0.3162 0.3687 0.32809 0 ⎟
⎜ ⎟
⎜ − 0.3162 − 0.3017 0.3082 2.7774 ⎟
⎝ ⎠
⎛ 2.846 ⎞
⎜ ⎟
T ⎜ − 2.3129⎟
R y=b este y = ⎜ , iar cea a sistemului Rx=y , şi deci soluţia
2.9726 ⎟
⎜ ⎟
⎜ − 2.7774⎟
⎝ ⎠
⎛ ⎞
1
⎜ ⎟
⎜−1⎟
sistemului iniţial este x =⎜ ⎟ .
1
⎜ ⎟
⎜−1⎟
⎝ ⎠
Sisteme de ecuaţii liniare 73

⎧8 x1 − x2 − x3 + x4 =7
⎪− x + 6 x + x − 2 x =6
⎪ 1 2 3 4
5. ⎨

⎪ 1 2x + x + 7 x3 + x 4 = −8
⎪⎩ x1 − 2 x2 + x3 + 9 x4 = −11

⎛ 2.82843 0 0 0 ⎞
⎜ ⎟
T ⎜ − 0.35355 2.42384 0 0 ⎟
R. R =⎜ .
− 0.35355 0.361 2.59705 0 ⎟
⎜ ⎟
⎜ 0.35355 − 0.77357 0.54071 2.82564 ⎟
⎝ ⎠

⎛ 2.47487 ⎞
⎜ ⎟
T ⎜ 2.83641 ⎟
Soluţia sistemului R y=b este y = ⎜ iar cea a sistemului Rx=y , şi
− 3.13776⎟
⎜ ⎟
⎜ − 2.82564⎟
⎝ ⎠
⎛ 1⎞
⎜ ⎟
⎜ 1⎟
deci soluţia sistemului iniţial este x =⎜ ⎟ .
−1
⎜ ⎟
⎜−1⎟
⎝ ⎠

⎧6 x1 + x2 − 2 x3 − x4 = 19
⎪x + 5x + x − x = 15
⎪ 1 2 3 4
6. ⎨
⎪ − 2 x1 + x 2 + 11x3 − x4 =8
⎪⎩− x1 − x2 − x3 + 4 x4 = −10

⎛ 2.44949 0 0 0 ⎞
⎜ ⎟
T ⎜ 0.40825 2.19848 0 0 ⎟
R. R =⎜ .
− 0.8165 0.60648 3.15682 0 ⎟
⎜ ⎟
⎜ − 0.40825 − 0.37905 − 0.34954 1.88878⎟
⎝ ⎠

⎛ 7.75672 ⎞
⎜ ⎟
T ⎜ 5.3825 ⎟
Soluţia sistemului R y=b este y = ⎜ , iar cea a sistemului Rx=y , şi
3.50636 ⎟
⎜ ⎟
⎜ − 1.88878⎟
⎝ ⎠
deci soluţia sistemului iniţial este x= (3 2 1 –1)’.
74 Bazele Analizei Numerice

Folosind metoda Householder, să se rezolve sistemele:


⎧4 x1 + 3x2 − 2 x3 + x4 =2
⎪5 x + 6 x + 7 x − 8 x = −14
⎪ 1 2 3 4
7. ⎨
9
⎪ 1 x − 8 x 2 + 7 x3 − 6 x 4 = −30
⎪⎩ x1 + x2 − x3 − x4 =0
R. det(A)= –1112; descompunerea A=QR este dată de
⎛ 0.3607 − 0.3882 0.7877 − 0.3143⎞
⎜ ⎟
⎜ 0.4508 − 0.7068 − 0.5445 0.0257 ⎟
Q=⎜ ,
0.8115 0.5787 − 0.0784 0.02 ⎟
⎜ ⎟
⎜ 0.0902 − 0.1217 0.2774 0.9487 ⎟
⎝ ⎠
⎛11.0905 −2.6148 8.0249 −8.0249 ⎞
⎜ ⎟
⎜ 0 −10.1569 0.0016 1.9155 ⎟
R =⎜ .
0 0 −6.2130 5.83368⎟
⎜ ⎟
⎜ 0 0 0 −1.58889 ⎟⎠

⎛ 29.9354⎞
⎜ ⎟
⎜ − 8.2430⎟
Soluţia sistemului Qy=b este y = ⎜ ,
11.5498⎟
⎜ ⎟
⎜ −1.5888 ⎟
⎝ ⎠
iar cea sistemului Rx=y este x=(–1 1 –1 1)’.
⎧ x1 + 2 x2 − 3 x3 − 4 x4 = 16
⎪5 x − 6 x + 7 x − 8 x =2
⎪ 1 2 3 4
8. ⎨ .
⎪9 x1 + 8 x2 + 7 x3 + 6 x4 = 6
⎪⎩ 4 x1 − 3 x2 + 2 x3 − x4 = −2

R. det(A)= –2808; descompunerea A=QR este dată


⎛ 0.09017 0.17005 0.78843 − 0.58424 ⎞
⎜ ⎟
⎜ 0.45083 − 0.71359 − 0.2494 − 0.47469⎟
Q=⎜ ,
0.8115 0.55307 − 0.18504 0.03651⎟
⎜ ⎟
⎜ 0.36067 − 0.39494 0.53098 0.65727⎟
⎝ ⎠

⎛11.09054 2.88534 9.2872 0.541 ⎞


⎜ ⎟
⎜ 0 10.23107 − 2.42367 8.7419 ⎟
R =⎜ ⎟ .
0 0 − 4.3444 − 2.79972
⎜ ⎟
⎜ 0 0 0 5.69631 ⎟
⎝ ⎠
Sisteme de ecuaţii liniare 75

⎛ 6.49202 ⎞
⎜ ⎟
⎜ 5.40201⎟
Soluţia sistemului Qy=b este y = ⎜ ,
9.94384 ⎟
⎜ ⎟
⎜ − 11.39263 ⎟
⎝ ⎠
⎛ ⎞ 1
⎜ ⎟
⎜ 2⎟
iar cea sistemului Rx=y este x =⎜ ⎟ .
−1
⎜ ⎟
⎜−2⎟
⎝ ⎠
⎧4 x1 + 3x2 + 2 x3 + x4 = 2
⎪ x + 2 x + 3x + 4 x = −2
⎪ 1 2 3 4
9. ⎨ .
⎪9 x1 − 8 x2 + 6 x3 − 7 x4 = 30
⎪⎩ x1 − x2 + x3 − x4 =4

R. det(A)= –80 ; descompunerea A=QR este dată de


⎛ 0.40202 − 0.82257 0.3961 0.0697 ⎞
⎜ ⎟
⎜ 0.1005 − 0.39663 − 0.90448 − 0.12039⎟
Q=⎜ ,
0.90453 0.4028 − 0.05925 − 0.12673⎟
⎜ ⎟
⎜ 0.1005 0.06173 − 0.14663 0.98213 ⎟
⎝ ⎠

⎛ 9.94987 − 5.92972 6.63325 − 5.62821⎞


⎜ ⎟
⎜ 0 − 6.5451 − 0.3565 − 5.29041⎟
R=⎜ .
0 0 − 2.42341 − 2.66043⎟
⎜ ⎟
⎜ 0 0 0 − 0.50691⎟⎠

⎛ 28.14106 ⎞
⎜ ⎟
⎜ 11.47901 ⎟
Soluţia sistemului Qy=b este y=⎜ ,
0.23702 ⎟
⎜ ⎟
⎜ 0.50691 ⎟
⎝ ⎠
⎛ 1⎞
⎜ ⎟
⎜−1⎟
iar cea sistemului Rx=y este x =⎜ ⎟ .
1
⎜ ⎟
⎜−1⎟
⎝ ⎠
76 Bazele Analizei Numerice

⎛1 2 1 − 1⎞
⎜ ⎟
⎜2 1 − 1 3⎟
10. Pentru matricea A = ⎜ , să se calculeze:
2 1 − 1 1⎟
⎜ ⎟
⎜ 1 − 1 − 1 1⎟
⎝ ⎠
a) det(A) , A–1, det(A–1);
b) A 1, A 2, A∞; A−1 , A−1 , A−1 ;
1 2 ∞
c) cond1(A) , cond2(A) , cond∞(A) .
⎛ 0.6667 0 − 0.3333 1 ⎞
⎜ ⎟
−1 ⎜ − 0.3333 0 0.6667 − 1⎟
R. a) det(A)=6, A = ⎜ ,
1 0 .5 − 1.5 1⎟
⎜ ⎟
⎜ 0 0 .5 − 0.5 0 ⎟⎠

det(A–1)=–0.1667;
⎧ A 1 = 6, A 2 = 5.7446, A ∞ = 7 ;
⎪⎪
b) ⎨
⎪ A−1 = 3, A−1 = 2.848, A−1 = 4 .
⎪⎩ 1 2 ∞
c) cond1(A)=18, cond2(A)=12.7511, cond∞(A)=28 .

11. Să se calculeze:
a) det(A) , A–1, det(A–1);
b) A 1, A 2, A∞; A−1 , A−1 , A−1 ;
1 2 ∞
c) cond1(A) , cond2(A) , cond∞ (A)
⎛ 4 −1 5⎞
⎜ ⎟
pentru matricea A = ⎜ 3 2 − 2 ⎟ .
⎜6 1 3 ⎟⎠

⎛ 1 1 −1 ⎞
−1 ⎜ ⎟
R. a) det(A)=8, A = ⎜ − 2.625 − 2.25 2.875 ⎟ , det(A–1)=0.125 ;
⎜ − 1.125 − 1.25 1.375 ⎟
⎝ ⎠
⎧ A 1 = 6, A 2 = 5.7446, A ∞ = 7 ;
⎪⎪
b) ⎨
⎪ A−1 = 3, A−1 = 2.848, A−1 = 4 .
⎩⎪ 1 2 ∞
c) cond1(A)=68.25, cond2(A)=48.28525, cond∞ (A)=77.5 .
Folosind metoda Iacobi să se găsească soluţia aproximativă pentru
următoarele sisteme de ecuaţii liniare :
Sisteme de ecuaţii liniare 77

⎧5 x1 − x2 − x3 =5

12. ⎨ x1 + 6 x2 + x3 = −4
⎪x − x + 7 x =9
⎩ 1 2 3
R. Sistemul se poate pune sub forma x = Bx+c, unde B = D–1 ⋅ (D–A), iar D =
⎛5 0 0⎞ ⎛0 1 1⎞
⎜ ⎟ ⎜ ⎟
⎜ 0 6 0 ⎟ , E = D–A = ⎜ − 1 0 − 1⎟ ,
⎜0 0 7⎟ ⎜ −1 1 0 ⎟⎠
⎝ ⎠ ⎝
⎛ 0 0.2 0.2 ⎞ ⎛ 1 ⎞
⎜ ⎟ ⎜ ⎟
B = ⎜ − 0.16667 0 − 0.16667⎟ , c = D–1 ⋅ b = ⎜ − 0.66667⎟ , B 2 =0.41997,
⎜ − 0.14286 0.14286 0 ⎟ ⎜ 1.28571 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 0⎞
( 0) ⎜ ⎟
ρ(B)= 0.29277. Soluţia la fiecare iteraţie, pornind cu x = ⎜ 0 ⎟ , este:
⎜ 0⎟
⎝ ⎠
⎛ 1 ⎞ ⎛ 1.12381 ⎞

(1) ⎟ ( 2) ⎜ ⎟
x = ⎜ − 0.66667 ⎟ , x = ⎜ − 1.04762 ⎟ ,
⎜ 1.28571 ⎟ ⎜ 1.04762 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 1 ⎞ ⎛ 0.98939 ⎞
(3) ⎜ ⎟ ( 4) ⎜ ⎟
x = ⎜ − 1.02857 ⎟ , x = ⎜ − 0.99592 ⎟ .
⎜ 0.97551 ⎟ ⎜ 0199592 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 1⎞
⎜ ⎟
Soluţia exactă fiind x* = ⎜ − 1⎟ , eroarea care se face dacă se reţine ca soluţie
⎜ 1⎟
⎝ ⎠
aproximativă x(4) , este x* − x ( 4) = 0.01208 .

⎧ 6 x1 + x2 − x3 + x4 =2
⎪ x + 7x + x − x = −4
⎪ 1 2 3 4
13. ⎨ (să se scrie soluţia obţinută după patru
x
⎪ 1 + 2 x 2 + 8 x3 + x 4 =6
⎪⎩ x1 + x2 + x3 + 9 x4 −8
iteraţii).
R. Se poate pune sistemul sub forma x = Bx+c, unde B = D–1 ⋅ E , iar
⎛6 0 0 0⎞ ⎛ 0 −1 1 2⎞
⎜ ⎟ ⎜ ⎟
⎜ 0 7 0 0⎟ ⎜ −1 0 − 1 1⎟
D= ⎜ , E = D–A = ⎜ ,
0 0 8 0⎟ − 1 − 2 0 − 1⎟
⎜ ⎟ ⎜ ⎟
⎜0 0 0 9⎟ ⎜ 1 1 1 0 ⎟⎠
⎝ ⎠ ⎝
78 Bazele Analizei Numerice

⎛ 0 − 0.16667 0.16667 − 0.33333⎞


⎜ ⎟
⎜ − 0.14286 0 − 0.14286 0.14286 ⎟
B= ⎜ ,
− 0.125 − 0.25 0 − 0.125 ⎟
⎜ ⎟
⎜ − 0.11111 − 0.11111 − 0.11111 0 ⎟
⎝ ⎠
⎛ 0.33333 ⎞
⎜ ⎟
⎜ − 0.57143⎟
c=D ⋅ b = ⎜
–1
, B 2 =0.5989, ρ(B)= 0.27926. Soluţia pentru primele
0.75 ⎟
⎜ ⎟
⎜ − 0.88889⎟
⎝ ⎠
⎛0⎞ ⎛ 0.33333 ⎞
⎜ ⎟ ⎜ ⎟
(0) ⎜ 0 ⎟ (1) ⎜ − 0.57143⎟
4 iteraţii, pornind cu x = ⎜ ⎟ , este: x = ⎜ ,
0 0.75 ⎟
⎜ ⎟ ⎜ ⎟
⎜0⎟ ⎜ − 0.88889⎟
⎝ ⎠ ⎝ ⎠
⎛ 0.84987 ⎞ ⎛ 0.95117 ⎞ ⎛ 0.9886 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(2) ⎜ − 0.85317⎟ (3) ⎜ − 0.96542 ⎟ ( 4) ⎜ − 0.98884 ⎟
x =⎜ , x =⎜ , x =⎜ .
0.9623 ⎟ 0.97528 ⎟ 0.99689 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ − 0.94577⎟ ⎜ − 0.99544 ⎟ ⎜ − 0.99567 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 1⎞
⎜ ⎟
⎜ − 1⎟
Soluţia exactă fiind x* = ⎜ ⎟ , eroarea care se face dacă se reţine ca soluţie
1
⎜ ⎟
⎜ − 1⎟
⎝ ⎠
aproximativă x(4) , este x* − x ( 4) = 0.01682 .

⎧4 x1 − x2 − x3 + x4 = 3
⎪ x + 7 x + x − x = 14
⎪ 1 2 3 4
14. ⎨
x
⎪ 1 2 − x + 6 x3 + x 4 = 21
⎪⎩ x1 − x2 − x3 + 9 x4 = 38
R. Se poate pune sistemul sub forma x=Bx+c, unde B=D–1⋅E , iar
⎛ 4 0 0 0⎞ ⎛ 0 1 1 − 1⎞
⎜ ⎟ ⎜ ⎟
⎜ 0 7 0 0⎟ ⎜ − 1 0 − 1 1⎟
D= ⎜ , E = D–A = ⎜ ,
0 0 6 0⎟ − 1 1 0 − 1⎟
⎜ ⎟ ⎜ ⎟
⎜ 0 0 0 9⎟ ⎜ −1 1 −1 0⎟
⎝ ⎠ ⎝ ⎠
Sisteme de ecuaţii liniare 79

⎛ 0 0.25 0.25 − 0.25 ⎞


⎜ ⎟
⎜ − 0.14286 0 − 0.14286 0.14286 ⎟
B= ⎜ ,
− 0.16667 0.16667 0 − 0.16667⎟
⎜ ⎟
⎜ − 0.11111 0.11111 − 0.11111 0 ⎟
⎝ ⎠
⎛ 0.75 ⎞
⎜ ⎟
⎜ 2 ⎟
–1
c=D ⋅b = ⎜ , B 2 =0.60753, ρ(B)= 0.22758. Pentru primele 4 iteraţii,
3.5 ⎟
⎜ ⎟
⎜ 4.22222⎟
⎝ ⎠
⎛0⎞ ⎛ 0.75 ⎞
⎜ ⎟ ⎜ ⎟
(0) ⎜ 0 ⎟ (1) ⎜ 2 ⎟
pornind cu x = ⎜ ⎟ , soluţia este: x = ⎜ ,
0 3 .5 ⎟
⎜ ⎟ ⎜ ⎟
⎜0⎟ ⎜ 4.22222 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 1.06944 ⎞ ⎛ 1.00711 ⎞ ⎛ 0.99663 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
( 2) ⎜ 1.99603 ⎟ (3) ⎜ 1.98545 ⎟ ( 4) ⎜ 1.99883 ⎟
x =⎜ , x =⎜ , x =⎜ .
3.00463 ⎟ 2.99239 ⎟ 2.99784 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 3.97222 ⎟ ⎜ 3.99133 ⎟ ⎜ 3.99844 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛1⎞
⎜ ⎟
⎜ 2⎟
Soluţia exactă fiind x* = ⎜ ⎟ , eroarea care se face dacă se reţine ca soluţie
3
⎜ ⎟
⎜ 4⎟
⎝ ⎠
aproximativă x(4) , este x* − x ( 4) = 0.00417 .
Să se rezolve cu metoda Gauss–Seidel următoarele sisteme:
⎧5 x1 − 2 x2 − 2 x3 = −3

15. ⎨− x1 + 6 x2 − x3 = 2
⎪− x − 3 x + 4 x = 8
⎩ 1 2 3
⎛ 5 − 2 − 2⎞
⎜ ⎟
R. Se observă că matricea coeficienţilor sistemului A = ⎜ − 1 6 − 1⎟ este tare
⎜ −1 − 3 4 ⎟⎠

diagonal dominantă şi atunci algoritmul Gauss–Seidel este convergent.
Sistemul se poate pune sub forma x(m+1)=(D+L)–1(–Ux(m)+b), m≥0, unde:
⎛ 0 0 0⎞ ⎛ 0 − 2 − 2⎞ ⎛5 0 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
L = ⎜ −1 0 0⎟ , U = ⎜ 0 0 − 1⎟ , D = ⎜ 0 6 0 ⎟ .
⎜ −1 − 3 0⎟ ⎜0 0 0 ⎟⎠ ⎜ 0 0 4⎟
⎝ ⎠ ⎝ ⎝ ⎠
Atunci
80 Bazele Analizei Numerice

⎛ 0.2 0 0 ⎞
−1 ⎜ ⎟
( D + L) = ⎜ 0.03333 0.16667 0 ⎟ ,
⎜ 0.075 0.125 0.25 ⎟⎠

⎛0 0 .4 0 .4 ⎞

–1

–(D+L) U = ⎜ 0 0.06667 0.23333 ⎟ ,
⎜0 0.15 0.275 ⎟⎠

⎛ − 0.6 ⎞ ⎛ 0⎞

–1
⎟ ( 0) ⎜ ⎟
(D+L) b = ⎜ 0.23333 ⎟ . Se obţin pornind cu x = ⎜ 0 ⎟ , vectorii:
⎜ 2.025 ⎟ ⎜ 0⎟
⎝ ⎠ ⎝ ⎠
⎛ − 0.6 ⎞ ⎛ 0.30333 ⎞ ⎛ 0.73531 ⎞
(1) ⎜ ⎟ ( 2) ⎜ ⎟ (3) ⎜ ⎟
x = ⎜ 0.23333 ⎟ , x = ⎜ 0.72139 ⎟ , x = ⎜ 0.89203 ⎟ ,
⎜ 2.025 ⎟ ⎜ 2.61687 ⎟ ⎜ 2.85285 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0.89795 ⎞
( 4) ⎜ ⎟
x = ⎜ 0.95847 ⎟ .
⎜ 2.94334 ⎟
⎝ ⎠
⎧ 6 x1 − x2 − 2 x3 + x4 =2
⎪ 2x + 6x − x − x =8
⎪ 1 2 3 4
16. ⎨

⎪ 1 x − 3 x 2 + 8 x3 + 2 x4 =2
⎪⎩ x1 + x2 + x3 + 4 x4 = −1

R. Se observă că matricea coeficienţilor sistemului


⎛ 6 −1 − 2 1⎞
⎜ ⎟
⎜ 2 6 − 1 − 1⎟
A=⎜
−1 − 3 8 2⎟
⎜ ⎟
⎜ 1 1 1 4 ⎟
⎝ ⎠
este tare diagonal dominantă şi algoritmul Gauss–Seidel este convergent.
Sistemul se poate pune sub forma x(m+1) = (D+L)–1(–Ux(m)+b) , m≥0, unde:
⎛ 0 0 0 0⎞ ⎛0 −1 − 2 1⎞
⎜ ⎟ ⎜ ⎟
⎜ 2 0 0 0⎟ ⎜ 0 0 − 1 − 1⎟
L=⎜ , U =⎜ ,
−1 − 3 0 0⎟ 0 0 0 2⎟
⎜ ⎟ ⎜ ⎟
⎜ 1 1 1 0 ⎟⎠ ⎜0 0 0 0 ⎟⎠
⎝ ⎝
Sisteme de ecuaţii liniare 81

⎛6 0 0 0⎞
⎜ ⎟
⎜0 6 0 0⎟
D=⎜ .
0 0 8 0⎟
⎜ ⎟
⎜0 0 0 4 ⎟⎠

⎛ 0.16667 0 0 0 ⎞
⎜ ⎟
−1 ⎜ − 0.05556 0.16667 0 0 ⎟
Atunci ( D + L) = ⎜ ,
0 0.0625 0.125 0 ⎟
⎜ ⎟
⎜ − 0.02778 − 0.05729 − 0.03125 0.25 ⎟
⎝ ⎠
⎛ 0 0.16667 0.33333 − 0.16667 ⎞
⎜ ⎟
–1 ⎜ 0 − 0.05556 0.05556 0.22222 ⎟
–(D+L) U = ⎜ ,
0 0 0.0625 − 0.1875 ⎟
⎜ ⎟
⎜ 0 − 0.02778 − 0.11285 0.03299 ⎟
⎝ ⎠
⎛ 0.33333 ⎞
⎜ ⎟
–1 ⎜ 1.22222 ⎟
(D+L) b = ⎜ .
0.75 ⎟
⎜ ⎟
⎜ − 0.82639 ⎟
⎝ ⎠
⎛0⎞ ⎛ 0.5 ⎞ ⎛ 0.95573 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(0) ⎜ 0 ⎟ (1) ⎜ 1 ⎟ ( 2) ⎜ 1.02778 ⎟
Alegând x = ⎜ ⎟ , obţinem: x = ⎜ , x =⎜ ,
0 0.9375 ⎟ 0.96973 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜0⎟ ⎜ − 0.85938 ⎟ ⎜ − 0.98831⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0.99259 ⎞ ⎛ 0.99803 ⎞ ⎛ 0.99971 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(3) ⎜ 0.99937 ⎟ ( 4) ⎜ 1.00048 ⎟ (5) ⎜ 1.00006 ⎟
x =⎜ , x =⎜ , x =⎜ .
0.99592 ⎟ 0.99918 ⎟ 0.99984 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ − 0.99697 ⎟ ⎜ − 0.99942 ⎟ ⎜ − 0.9999 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎧10 x1 − x2 − x3 + x4 =7
⎪ x + 11x − x − x = −10
⎪ 1 2 3 4
17. ⎨
⎪− x1 − x2 + 12 x3 + x4 = 22
⎪⎩ x1 + x2 + x3 + 13x4 = −24
R. Se observă că matricea coeficienţilor sistemului
⎛ 10 − 1 − 1 1⎞
⎜ ⎟
⎜ 1 11 − 1 − 1⎟
A=⎜
− 1 − 1 12 1⎟
⎜ ⎟
⎜ 1 1 1 13 ⎟
⎝ ⎠
este tare diagonal dominantă şi algoritmul Gauss–Seidel este convergent.
82 Bazele Analizei Numerice

Sistemul se poate pune sub forma x(m+1)=(D+L)–1(–Ux(m)+b) , m≥0, unde:


⎛ 0 0 0 0⎞ ⎛ 0 − 1 − 1 1⎞
⎜ ⎟ ⎜ ⎟
⎜ 1 0 0 0⎟ ⎜ 0 0 − 1 − 1⎟
L=⎜ , U =⎜ ,
−1 −1 0 0⎟ 0 0 0 1⎟
⎜ ⎟ ⎜ ⎟
⎜ 1 1 1 0 ⎟⎠ ⎜0 0 0 0 ⎟⎠
⎝ ⎝
⎛10 0 0 0 ⎞
⎜ ⎟
⎜ 0 11 0 0 ⎟
D=⎜
0 0 12 0 ⎟
⎜ ⎟
⎜ 0 0 0 13 ⎟
⎝ ⎠
Atunci
⎛ 0 .1 0 0 0 ⎞
⎜ ⎟
−1 ⎜ − 0.00909 0.09091 0 0 ⎟
( D + L) = ⎜ ,
0.00758 0.00758 0.08333 0 ⎟
⎜ ⎟
⎜ − 0.00758 − 0.00758 − 0.00641 0.07692 ⎟
⎝ ⎠
⎛0 0 .1 0.1 − 0.1 ⎞
⎜ ⎟
–1 ⎜ 0 − 0.00909 0.08182 0.1 ⎟
–(D+L) U = ⎜ ,
0 0.00758 0.01515 − 0.08333 ⎟
⎜ ⎟
⎜ 0 − 0.00758 − 0.01515 0.00641 ⎟
⎝ ⎠
⎛ 0 .7 ⎞
⎜ ⎟
–1 ⎜ − 0.97273 ⎟
(D+L) b = ⎜ .
1.81061 ⎟
⎜ ⎟
⎜ − 1.96445 ⎟
⎝ ⎠
⎛0⎞ ⎛ 0 .7 ⎞
⎜ ⎟ ⎜ ⎟
(0) ⎜ 0 ⎟ (1) ⎜ − 0.97273 ⎟
Alegând x = ⎜ ⎟ , obţinem: x = ⎜ ,
0 1.81061 ⎟
⎜ ⎟ ⎜ ⎟
⎜0⎟ ⎜ − 1.96445 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 0.98023 ⎞ ⎛ 0.99793 ⎞ ⎛ 0.99993 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
( 2) ⎜ − 1.01219 ⎟ (3) ⎜ − 1.00001 ⎟ ( 4) ⎜ − 1.00001 ⎟
x =⎜ , x =⎜ , x =⎜ ,
1.99437 ⎟ 1.99958 ⎟ 1.99998 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ − 1.99711 ⎟ ⎜ − 1.99999 ⎟ ⎜ − 1.99999 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 1⎞
⎜ ⎟
( 5 ) ⎜ − 1⎟
x =⎜ ⎟ .
2
⎜ ⎟
⎜ − 2⎟
⎝ ⎠
Sisteme de ecuaţii liniare 83

Folosind metoda relaxării simple să se scrie soluţia aproximativă pentru


următoarele sisteme:
⎧8 x1 − x2 + x3 =3

18. ⎨− x1 + 6 x2 − x3 = 14
⎪x − x + 9x = −28
⎩ 1 2 3
⎛ 8 − 1 1⎞
⎜ ⎟
R. Matricea sistemului este A = ⎜ − 1 6 − 1⎟ .
⎜ 1 −1 9⎟
⎝ ⎠
⎛ 0⎞ ⎛ − 3⎞
(1) ⎜ ⎟ (1) ⎜ ⎟
Luând vectorul de probă x = ⎜ 0 ⎟ se obţine r = ⎜ − 14 ⎟ , deci prima direcţie
⎜ 0⎟ ⎜ 28 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 0⎞ ⎛ 0 ⎞
(1) ⎜ ⎟ ( 2) ⎜ ⎟
de relaxare este p = e3 = ⎜ 0 ⎟ . Rezultă x = ⎜ 0 ⎟ .
⎜1⎟ ⎜ − 3.11111⎟
⎝ ⎠ ⎝ ⎠
Analog :
⎛ − 6.11111 ⎞ ⎛0⎞ ⎛ 0 ⎞
( 2)⎜ ⎟ ( 2) ⎜ ⎟ (3) ⎜ ⎟
r = ⎜ − 10.88889 ⎟ , p = e2 = ⎜ 1 ⎟ , x = ⎜ 1.81481 ⎟ ;
⎜ 0 ⎟ ⎜0⎟ ⎜ − 3.11111⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ − 7.92593 ⎞ ⎛1⎞ ⎛ 0.99074 ⎞
⎜ ⎟ ⎜ ⎟ (3) ⎜ ⎟
r (3) = ⎜ 0 (3)
⎟ , p = e1 = ⎜ 0 ⎟ , x = ⎜ 1.81481 ⎟ ;
⎜ − 1.81481 ⎟ ⎜ 0⎟ ⎜ − 3.11111⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0 ⎞ ⎛ 0⎞ ⎛ 0.99074 ⎞
( 4) ⎜ ⎟ ( 4) ⎜ ⎟ ( 4) ⎜ ⎟
r = ⎜ − 0.99074 ⎟ , p = e2 = ⎜ 1 ⎟ , x = ⎜ 1.91994 ⎟ .
⎜ − 0.824070 ⎟ ⎜ 0⎟ ⎜ − 3.11111⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
ş. a. m. d.
⎧10 x1 + x2 − x3 − x4 =9
⎪x + 9x − x + x = −24
⎪ 1 2 3 4
19. ⎨
− x
⎪ 1 2 − x + 11 x +
3 x4 = 30
⎪⎩− x1 + x2 + x3 + 8 x4 = −32
⎛ 10 1 − 1 − 1⎞
⎜ ⎟
⎜ 1 9 − 1 1⎟
R. Matricea sistemului este A = ⎜ .
− 1 − 1 11 1⎟
⎜ ⎟
⎜ −1 1 1 8⎟
⎝ ⎠
84 Bazele Analizei Numerice

⎛ 0⎞ ⎛ − 9⎞
⎜ ⎟ ⎜ ⎟
(1) ⎜ 0 ⎟ (1) ⎜ 24 ⎟
Alegând x = ⎜ ⎟ se obţine r = ⎜ .
0 − 30 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 0⎟ ⎜ 32 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 0⎞ ⎛ ⎞0 ⎛ − 5⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(1) ⎜ 0⎟ ( 2) ⎜ 0 ⎟ ( 2) ⎜ 20 ⎟
Deci p = e4 = ⎜ ⎟ , x =⎜ ⎟ r =⎜ .
0 0 − 34 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜ − 4⎟ ⎜ 0⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
Mai departe obţinem :
⎛0⎞ ⎛ 0 ⎞ ⎛ − 8.09091⎞ ⎛0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
( 2) ⎜0⎟ (3) ⎜ 0 ⎟ (3) ⎜ 16.90909 ⎟ (3) ⎜1⎟
p = e3 = ⎜ ⎟ , x = ⎜ ; r =⎜ ⎟ , p = e2 = ⎜ ⎟ ,
1 3.090901⎟ 0 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜0⎟ ⎜ −4 ⎟ ⎜ 3.09091 ⎟ ⎜0⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0 ⎞ ⎛1⎞ ⎛ 0.99697 ⎞ ⎛ 0 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
( 4) ⎜ − 1.87879 ⎟ ( 4) ⎜ 0⎟ (5) ⎜ − 1.87879 ⎟ (5) ⎜ 0.99697 ⎟
x =⎜ ; p = e1 = ⎜ ⎟ , x = ⎜ ; r =⎜
3.09091 ⎟ 0 3.09091 ⎟ 0.88182 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ −4 ⎟ ⎜ 0⎟ ⎜ −4 ⎟ ⎜ 0.21515 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛0⎞ ⎛ 0.99697 ⎞
⎜ ⎟ ⎜ ⎟
( 5) ⎜1⎟ (6) ⎜ − 1.98956 ⎟
, p = e1 = ⎜ ⎟ x =⎜ .
0 3.09091 ⎟
⎜ ⎟ ⎜ ⎟
⎜0⎟ ⎜ −4 ⎟
⎝ ⎠ ⎝ ⎠

⎧4 x1 − 2 x2 + x3 =9

20. ⎨− 2 x1 + 6 x2 − x3 =5
⎪x − x + 5x =6
⎩ 1 2 3
⎛ 4 −2 1⎞
⎜ ⎟
R. Matricea A = ⎜ − 2 6 − 1⎟ este simetrică, tare diagonal dominantă:
⎜ 1 −1 5⎟
⎝ ⎠
4 > − 2 + 1 , 6 > − 2 + − 1 , 5 > 1 + − 1 , ∆1=4 , ∆2=20 , ∆3=94 , deci pozitv
definită şi se poate aplica metoda. Luând vectorul de probă
Sisteme de ecuaţii liniare 85

⎛0⎞ ⎛ − 9⎞ ⎛1⎞ ⎛ 2.25 ⎞


⎜ ⎟
(1) (1) ⎜ ⎟ (1) ⎜ ⎟ ( 2) ⎜ ⎟
x = ⎜ 0 ⎟ se obţin: r = ⎜ − 5 ⎟ , p = e1 = ⎜ 0 ⎟ , x = ⎜ 0 ⎟ ;
⎜0⎟ ⎜ − 6⎟ ⎜ 0⎟ ⎜ 0 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0 ⎞ ⎛0⎞ ⎛ 2.25 ⎞ ⎛ − 3.16667 ⎞
( 2) ⎜ ⎟ ( 2) ⎜ ⎟ (3) ⎜ ⎟ (3) ⎜ ⎟
r = ⎜ − 9.5 ⎟ , este p = e2 = ⎜ 1 ⎟ , x = ⎜1.58333 ⎟ ; r = ⎜ 0 ⎟
⎜ − 3.75 ⎟ ⎜0⎟ ⎜ 0 ⎟ ⎜ − 5.33333 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0⎞ ⎛ 2.25 ⎞ ⎛ − 2.1 ⎞ ⎛1⎞
(3) ⎜ ⎟ (3) ⎜ ⎟ ( 4) ⎜ ⎟ ( 4) ⎜ ⎟
, p = e3 = ⎜ 0 ⎟ , x = ⎜ 1.5833 ⎟ ; r = ⎜ − 1.06667 ⎟ , p = e1 = ⎜ 0 ⎟ ,
⎜1⎟ ⎜1.06667 ⎟ ⎜ 0 ⎟ ⎜ 0⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 2.775 ⎞
( 4) ⎜ ⎟
x = ⎜ 1.58333 ⎟ .
⎜1.06667 ⎟
⎝ ⎠

Să se scrie soluţia aproximativă pentru următoarele sisteme de ecuaţii


liniare obţinută cu metoda suprarelaxării:
⎧2 x1 − x2 =3

21. ⎨− x1 + 3 x2 − x3 = −5
⎪ − x2 + 4 x3 = 5

R. Matricea coeficienţilor sistemului este bloc tridiagonală, simetrică şi pozitiv
definită, deci metoda suprarelaxării este convergentă. Sistemul se poate pune sub
forma:
−1
⎛ 1 ⎞ ⎡ ⎛ 1⎞ ⎤
x(m+1)=Mx(m)+C, m≥0, unde: M = −⎜ E + D ⎟ ⋅ ⎢ F + ⎜1 − ⎟ D ⎥ ,
⎝ ω ⎠ ⎣ ⎝ ω⎠ ⎦
−1 ⎛ 0 0 0⎞ ⎛2 0 0⎞
⎛ 1⎞ ⎜ ⎟ ⎜ ⎟
C = ⎜ E + ⎟ ⋅ b , E = ⎜ −1 0 0⎟ , D = ⎜ 0 3 0 ⎟ , F=ET ,
⎝ ω⎠ ⎜ 0 −1 0⎟ ⎜0
⎝ ⎠ ⎝ 0 4 ⎟⎠
2
ω= , λ1 fiind cea mai mare valoare proprie a matricei –D–1(E+F),
1+ 1 − λ12
λ1=0.5 , ω =1.0718 şi considerând vectorul iniţial x(0)=b, rezultă
86 Bazele Analizei Numerice

⎛ − 1.28719 ⎞ ⎛ 1.64605 ⎞ ⎛ 1.03385 ⎞


(1) ⎜ ⎟ ( 2) ⎜ ⎟ (3) ⎜ ⎟
x = ⎜ − 0.10088 ⎟ , x = ⎜ − 0.85027 ⎟ , x = ⎜ − 0.98314 ⎟ ,
⎜ 0.95373 ⎟ ⎜ 1.04344 ⎟ ⎜ 1.0014 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 1.00661 ⎞
( 4) ⎜ ⎟
x = ⎜ − 0.99835 ⎟ .
⎜ 1.00034 ⎟
⎝ ⎠
⎧14 x1 + x2 = 13
⎪x + 5 x2 − x3 = −3
⎪ 1
22. ⎨
⎪ − x2 + 14 x3 − 2 x4 = −15
⎪⎩ − 2 x3 + 5 x4 = 7
R. Matricea coeficienţilor sistemului este bloc tridiagonală, simetrică şi pozitiv
definită, deci metoda suprarelaxării este convergentă. Sistemul se poate pune sub
forma
−1
(m+1) (m) ⎛ 1 ⎞ ⎡ ⎛ 1⎞ ⎤
x =Mx +C, m≥0, unde M = −⎜ E + D ⎟ ⋅ ⎢ F + ⎜1 − ⎟ D ⎥ ,
⎝ ω ⎠ ⎣ ⎝ ω⎠ ⎦
⎛0 0 0 0⎞ ⎛14 0 0 0 ⎞
−1 ⎜ ⎟ ⎜ ⎟
⎛ 1⎞ ⎜1 0 0 0⎟ ⎜ 0 5 0 0⎟
C = ⎜E + ⎟ ⋅b , E = ⎜ , D=⎜ , F=ET ,
⎝ ω⎠ 0 −1 0 0⎟ 0 0 14 0 ⎟
⎜ ⎟ ⎜ ⎟
⎜0 0 − 2 0 ⎟⎠ ⎜ 0 0 0 5⎟
⎝ ⎝ ⎠
2
ω= , λ1 fiind cea mai mare valoare proprie a matricei –D–1(E+F),
1+ 1 − λ12
λ1=0.2735 , ω=1.01943 şi considerând vectorul iniţial
x(0) = b, rezultă:
⎛ 0.91242 ⎞ ⎛ 1.20542 ⎞ ⎛ 0.98111 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(1) ⎜ − 3.79769 ⎟ ( 2) ⎜ − 0.79542 ⎟ (3) ⎜ − 0.99288 ⎟
x =⎜ , x =⎜ , x =⎜ ,
− 0.05784 ⎟ − 0.96444 ⎟ − 0.99882 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1.26758 ⎟ ⎜ 1.0093 ⎟ ⎜ 1.0003 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0.99985 ⎞ ⎛ 0.99999 ⎞
⎜ ⎟ ⎜ ⎟
( 4) ⎜ − 0.99987 ⎟ (5) ⎜ − 0.99999 ⎟
x =⎜ , x =⎜ .
− 0.99997 ⎟ −1 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 1.00001 ⎟ ⎜ 1 ⎟
⎝ ⎠ ⎝ ⎠

Să se găsească soluţia aproximativă obţinută cu metoda Gauss–Seidel pentru


sistemele de ecuaţii liniare următoare:
Sisteme de ecuaţii liniare 87

⎧14 x1 + x2 = 13
⎪x + 5 x2 − x3 = −3
⎪ 1
23. ⎨
⎪ − x2 + 14 x3 − 2 x4 = −15
⎪⎩ − 2 x3 + 5 x4 = 7
Să se precizeze numărul de iteraţii necesare pentru ca eroarea să se micşoreze de
10 ori.
R. Matricea A fiind simetrică şi pozitiv definită procedeul iterativ
Gauss–Seidel este convergent. Sistemul se poate pune sub forma
x(m+1)=Mx(m)+C , m≥0,
unde
⎛0 0 0 0⎞
⎜ ⎟
–1 –1 ⎜1 0 0 0⎟
M = –(D+E) F , C = (D+E) b , E = ⎜ , F = ET,
0 −1 0 0⎟
⎜ ⎟
⎜ 0 0 − 2 0⎟
⎝ ⎠
⎛14 0 0 0⎞
⎜ ⎟
⎜0 5 0 0⎟
D=⎜ .
0 0 14 0 ⎟
⎜ ⎟
⎜0 0 0 5 ⎟⎠

⎛ 0 − 0.07143 0 0 ⎞ ⎛ 0.92857 ⎞
⎜ ⎟ ⎜ ⎟
⎜ 0 0.01429 0 .2 0 ⎟ ⎜ − 0.78571⎟
Deci M = ⎜ , C =⎜ .
0 0.00102 0.01429 0.14286 ⎟ − 1.12755 ⎟
⎜ ⎟ ⎜ ⎟
⎜0 0.0004 0.000571 0.05714 ⎟⎠ ⎜ 0.94898 ⎟
⎝ ⎝ ⎠
Dacă se porneşte cu v(0) = b obţin vectorii:
⎛ 1.14286 ⎞ ⎛ 1.20204 ⎞ ⎛ 0.99353 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(1) ⎜ − 3.82857 ⎟ ( 2) ⎜ − 0.90939 ⎟ (3) ⎜ − 0.98992 ⎟
v =⎜ , v =⎜ , v =⎜ ,
− 0.3449 ⎟ − 0.95609 ⎟ − 0.99677 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1.26204 ⎟ ⎜ 1.01756 ⎟ ⎜ 1.00129 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0.99928 ⎞ ⎛ 0.99994 ⎞
⎜ ⎟ ⎜ ⎟
( 4) ⎜ − 0.99921 ⎟ (5) ⎜ − 0.99994 ⎟
v =⎜ , v =⎜ .
− 0.99976 ⎟ − 0.99998 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 1.0001 ⎟ ⎜ 1.00001 ⎟
⎝ ⎠ ⎝ ⎠
Raza spectrală este ρ(M)=0.0748, rata de convergenţă este
R(M)= –lg(ρ(M))=1.12609 şi numărul de iteraţii după care eroarea scade de 10 ori
1
este K≈ =0.88803, adică la fiecare iteraţie eroarea scade de 10 ori.
R(M )
88 Bazele Analizei Numerice

⎧ 5 x1 + x2 − x3 =5

24. ⎨ x1 + 8 x2 + x3 = 10
⎪− x + x + 15 x = 15
⎩ 1 2 3
Să se precizeze numărul de iteraţii necesare pentru ca eroarea să se micşoreze de
10 ori.
R. Matricea A fiind simetrică şi pozitiv definită procedeul iterativ
Gauss–Seidel este convergent. Sistemul se poate pune sub forma
x(m+1)=Mx(m)+C , m≥0,
unde
⎛ 0 0 0⎞ ⎛5 0 0 ⎞
–1 –1
⎜ ⎟ T
⎜ ⎟
M = –(D+E) F , C = (D+E) b , E = ⎜ 1 0 0 ⎟ , F = E , D = ⎜ 0 8 0 ⎟
⎜ −1 1 0⎟ ⎜ 0 0 15 ⎟
⎝ ⎠ ⎝ ⎠
.
⎛0 − 0.2 0.2 ⎞ ⎛ 1 ⎞
⎜ ⎟ ⎜ ⎟
Deci M = ⎜0 0.02 − 0.12 ⎟ , C = ⎜ 0.9 ⎟ .
⎜ 0 − 0.01467 0.02133 ⎟ ⎜1.0067 ⎟
⎝ ⎠ ⎝ ⎠
Dacă se porneşte cu v(0) = b obţin vectorii:
⎛ 2 ⎞ ⎛ 1.376 ⎞ ⎛ 1.05954 ⎞ ⎛ 1.04563 ⎞
(1) ⎜ ⎟ ( 2) ⎜ ⎟ (3) ⎜ ⎟ ( 4) ⎜ ⎟
v = ⎜ - 0.7 ⎟ , v = ⎜ 0.7444 ⎟ , v = ⎜ 0.78984 ⎟ , v = ⎜ 0.79364 ⎟ ,
⎜ 1.18 ⎟ ⎜1.04211⎟ ⎜ 1.01798 ⎟ ⎜ 1.0168 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 1.04463 ⎞
( 5) ⎜ ⎟
v = ⎜ 0.79386 ⎟ .
⎜1.01672 ⎟
⎝ ⎠
Raza spectrală este ρ(M)=0.06262, rata de convergenţă este
R(M)= –lg(ρ(M))=1.20326 şi numărul de iteraţii după care eroarea scade de 10 ori
1
este K≈ =0.83108, adică la fiecare iteraţie eroarea scade de 10 ori.
R(M )

Să se scrie soluţia aproximativă obţinută cu metoda gradienţilor conjugaţi aplicată


sistemelor de ecuaţii liniare:
⎧6 x1 + x2 − x3 =6

25. ⎨ x1 + 8 x2 + x3 = −8 .
⎪− x + x + 10 x3 = −12
⎩ 1 2
Sisteme de ecuaţii liniare 89

R. Matricea coeficienţilor sistemului este simetrică şi pozitiv definită şi deci se


⎛ 0⎞
(0)
⎜ ⎟
poate aplica metoda. Luând x = ⎜ 0 ⎟ ca vector de probă, se obţin rezultatele.
⎜ 0⎟
⎝ ⎠
Iteraţia I.
⎛ − 6⎞
⎜ ⎟
r =Ax0 – b= ⎜ 8 ⎟ , prima direcţie de relaxare, p(1)= –r(0) ,
(0)

⎜ 12 ⎟
⎝ ⎠
r (0) , p (1) ⎛ 0.60797 ⎞
⎜ ⎟
q1 = − = 0.10133 , x =x + q1p = ⎜ − 0.81063 ⎟ .
(1) (0) (1)
(1) (1)
Ap , p ⎜ − 1.21595 ⎟
⎝ ⎠
Iteraţia a II-a .
⎛ − 1.94684 ⎞ r (1) , r (1)
(1) ( 0) (1) ⎜ ⎟
r =r + q1 Ap = ⎜ 0.90698 ⎟ , c1 = = 0.02911
⎜ − 1.57807 ⎟ r ( 0) , r ( 0)
⎝ ⎠

⎛ 2.12151 ⎞ r (1) , p ( 2)
(2)
⎜ (1)
⎟ (1)
p = –r +c1p = ⎜ − 1.13987 ⎟ , q2 = − = 0.17916 ,
⎜ 1.22874 ⎟ Ap ( 2) , p ( 2)
⎝ ⎠
⎛ 0.98807 ⎞
(2)

(1) (2)

x =x + q2p = ⎜ − 1.01485 ⎟ .
⎜ − 0.9958 ⎟
⎝ ⎠
Iteraţia a III-a.
⎛ − 0.09062 ⎞ r ( 2 ) , r ( 2)
⎜ ⎟
r ( 2)
=r (1)
+ q2 Ap ( 2)
= ⎜ − 0.12656 ⎟ , c2 = = 3.62608 ⋅ 10 −3
(1) (1)
⎜ 0.03906 ⎟ r ,r
⎝ ⎠

⎛ 0.09832 ⎞ r ( 2) , p (3)
(3)
⎜ (2)
⎟ (2)
p = –r +c2p = ⎜ 0.12243 ⎟ , q3 = − = 0.12133 ,
⎜ − 0.03461⎟ Ap (3) , p (3)
⎝ ⎠
⎛1⎞
(3) (2) (3)
⎜ ⎟
x =x + q3p = ⎜ − 1⎟ .
⎜ − 1⎟
⎝ ⎠
90 Bazele Analizei Numerice

26. Să se determine traseul optim pentru o conductă de gaze naturale care să treacă
prin "apropierea" localităţilor Li , i=1,...,10 , care raportate la un sistem cartezian
de referinţă au coordonatele următoare:
L1(1,2), L2(2,2), L3(5,3), L4(7,4), L5(10,2), L6(11,3), L7(15,4), L8(16,5), L9(18,1),
L10(20,4).
R. Luând traseul după o dreaptă, se obţine sistemul:
⎧ a+b =2
⎪ 2a + b = 2

⎪ 5a + b = 3

⎪ 7a + b = 4
⎪⎪10a + b = 2

⎪11a + b = 3
⎪15a + b = 4

⎪16a + b = 5
⎪18a + b = 1

⎪⎩20a + b = 4
care este supradimensionat. Se formează sistemul normal al lui Gauss Bu=c, unde
⎛1505 105 ⎞ ⎛ 340 ⎞
B=ATA, c=ATb , adică: B = ⎜⎜ ⎟⎟ , c = ⎜⎜ ⎟⎟ , a cărui soluţie este
⎝ 105 10 ⎠ ⎝ 30 ⎠
u1=0.06211 , u2=2.34783 . Raportat la acel sistem de coordonate traseul conductei
trebuie să urmeze dreapta y = 0.06211x+2.34783 .
Sisteme de ecuaţii neliniare 91

2. Sisteme de ecuaţii neliniare

În acest capitol abordăm problema rezolvării numerice a sistemelor de


ecuaţii algebrice neliniare.
Considerăm următorul sistem de ecuaţii
⎧ f1 ( x1,x2 ,...,xn ) = 0

⎨............................. (1)
⎪ f ( x ,x ,...,x ) = 0,
⎩ n 1 2 n
în care cel puţin una din funcţiile f i , i = 1, n nu este liniară. Sub formă
vectorială sistemul se scrie
F ( x) = 0 , (2)
unde
x = ( x1,x2 ,...,xn )T şi F ( x) = [ f1 ( x1,...,xn ),..., f n ( x1,...,xn )]T
Dacă adunăm x în ambii membri şi notăm cu G ( x) = x + F ( x), sistemul (2) se
poate pune sub forma echivalentă
x = G ( x) (3)
Evident, există şi alte metode de a pune sistemul (2) sub forma (3).

Exemplul 1.
⎧⎪ f1(x1,x2 ) ≡ 2 x 21+ x22 − 5 = 0
⎨ (4)
⎪⎩ f 2(x1,x2 ) ≡ x1+2 x2 − 3 = 0
Se observă că prima ecuaţie nu este liniară. Acest sistem se poate pune sub forma
echivalentă
⎪⎧ x1 = 2 x 21+ x22 − 5 + x1 ≡ g1(x1,x2 )
⎨ . (4’)
⎪⎩ x2=x1+3x2 − 3 ≡ g 2(x1,x2 )
Sistemul fiind foarte simplu se poate rezolva cu metoda substituţiei. Înlocuind
x1 = 3 − 2 x2 în prima ecuaţie obţinem 9 x 22 − 24 x 2 + 13 = 0 , ecuaţie care admite
4± 3
rădăcinile x1,2 = .
3
92 Bazele Analizei Numerice

Aşadar soluţiile exacte ale sistemului sunt


⎛1− 2 3 4 + 3 ⎞ ⎛ ⎞
M1⎜ , ⎟ şi M 2 ⎜ 1 + 2 3 , 4 − 3 ⎟ .
⎜ 3 3 ⎟⎠ ⎜ 3 3 ⎟⎠
⎝ ⎝
⎡1 3⎤
Fie D = [1,2]× ⎢ , ⎥ o vecinătate a punctului M2. În această vecinătate
⎣2 2⎦
sistemul (4) se poate pune sub forma echivalentă
⎧ 2
⎪ x1 = 5 − x2 ≡ g~1 ( x1 , x2 )
⎪ 2
⎨ (4”)
⎪ 1 ~
⎪⎩ x2 = 2 (3 − x1 ) ≡ g 2 ( x1 , x2 )
(4’) şi (4”) sunt variante echivalente (de tipul (3)) ale sistemului (4), în vecinătatea
punctului M2.
În continuare prezentăm două metode numerice de rezolvare aproximativă
a sistemelor neliniare.

§2.1. Metoda aproximaţiilor succesive

Fie D ⊂ R n o mulţime convexă, mărginită şi închisă şi fie sistemul


x = G ( x) , x ∈ D .
Presupunem de asemenea că G ∈ C1 ( D) . În aceste condiţii există
∂g i
mij =sup ( x) , i = 1, n j = 1, n .
x∈D ∂x j
Notăm cu
⎛ m11 m12 ... m1n ⎞
⎜ ⎟
M = ⎜. . . . ⎟ .
⎜m ⎟
⎝ n1 mn 2 ... mnn ⎠

Teorema 1. Dacă G ∈ C1 ( D) , G ( D ) ⊂ DM ∞ < 1 , atunci sistemul


şi
x = G (x) admite o singură soluţie în domeniul D, care se află cu metoda
aproximaţiilor succesive.
Demonstraţie. Fie x ∈ D şi y ∈ D oarecare. Din Teorema lui Lagrange pentru
funcţii de mai multe variabile, rezultă că pentru orice i = 1, n , există
ξ i = x + θ i ( y − x),0 < θ i < 1,
astfel încât
Sisteme de ecuaţii neliniare 93

∂g i ∂g
g i ( x) − g i ( y ) = (ξ i )( x1 − y1 ) +...+ i (ξ i )( xn − y n ) .
∂x1 ∂xn
Ţinând seama că
∂g i
( x) ≤mij ,(∀) x ∈ D,
∂x j
rezultă
n
g i ( x) − g i ( y ) ≤ mi1 x1 − y1 + ... + min xn − yn ≤ x − y ∞ ∑ mij
j =1
şi mai departe
n
G ( x) − G ( y ) ∞ = max g i ( x) − g i ( y ) ≤ x − y ∞ max ∑ mij = x − y ∞ M ∞ .
1≤i ≤ n 1≤i ≤ n j =1

Cum M ∞ < 1 , rezultă că aplicaţia G : D → D este o contracţie.


Conform teoremei de punct fix a lui Banach rezultă că există x* ∈ D, unic,
astfel încât x* = G ( x*) . Aşadar x* este soluţia unică a sistemului (3) din
domeniul D. Această soluţie se află cu metoda aproximaţiilor succesive. Fie
x (0) ∈ D oarecare şi fie şirul aproximaţiilor succesive
x ( k +1) = G ( x ( k ) ),k ≥ 0 .
Acest şir este convergent în Rn şi limita sa x* = lim x ( k ) este soluţia sistemului
k →∞
(3) şi deci a sistemului echivalent (1), respectiv (2). Teorema lui Banach ne dă şi
evaluarea erorii şi anume
k
(k ) M ∞
x − x* ≤ x (1) − x (0) . ‰ (5)
∞ 1− M ∞

Observaţia 1. Teorema rămâne valabilă şi dacă norma M ∞ se înlocuieşte cu


altă normă de matrice, de exemplu M 1 sau M 2 .
⎡1 3⎤
Considerăm din nou sistemul (4) din exemplul 1. În domeniul D = [1,2]× ⎢ , ⎥,
⎣2 2⎦
acest sistem este echivalent cu sistemul
⎧ 2
⎪ x1 = 5 − x2 ≡ g1 ( x1 , x2 )
⎪ 2
⎨ .
⎪ 1
⎪⎩ x2 = 2 (3 − x1 ) ≡ g 2 ( x1 , x2 )
În acest domeniu, sistemul admite o singură soluţie şi anume
94 Bazele Analizei Numerice

⎧ 1+ 2 3
⎪ x1 = ≈ 1.4880338
⎪ 3
⎨ .
⎪ 4− 3
⎪⎩ x2 = 3 ≈ 0.7559831
⎡1 3⎤
Deoarece x1 ∈ [1,2] şi x2 ∈ ⎢ , ⎥ rezultă
⎣2 2⎦
1 3 − x1 3 11 5 − x22 19
≤ = g 2 ( x1, x2 ) ≤ şi ≤ = g1 ( x1 , x2 ) ≤ ,
2 2 2 8 2 8
deci 1 ≤ g1 ( x1 , x2 ) ≤ 2 .
Aşadar, dacă (x1 , x2 ) ∈ D atunci (g1 (x1 , x2 ), g 2 (x1 , x2 ))∈ D .
În continuare avem
∂g1 ∂g1 x2 ∂g 2 1 ∂g 2
=0 , =− ; =− ; =0
∂x1 ∂x2 10 − 2 x22 ∂x1 2 ∂x2
3 1
m11 = m22 = 0 ; m12 = ; m21 =
22 2
3 29
M ∞ = M 1= < 1 şi M 2= < 1.
22 44
Alegem x1(0) = 1.5 şi x2(0) = 1 (centrul dreptunghiului).
Se obţin următoarele valori pentru şirul aproximaţiilor succesive
Nr. de iteraţii 0 1 2 3 4 5 6
x1 1.5 1.414 1.490 1.478 1.488 1.487 1.488
x2 1.0 0.750 0.793 0.755 0.761 0.756 0.756

În continuare prezentăm metoda aproximaţiilor succesive pentru o singură


ecuaţie neliniară.
Fie deci ecuaţia
f ( x) = 0 , x ∈ [a, b] .
Această ecuaţie se pune sub forma echivalentă
x = g ( x) , x ∈ [a, b] .
Din Teorema 1 rezultă că dacă
g ∈ C 1 [a, b] , g : [a, b] → [a, b] şi g ′ = sup{ g ′( x) ; x ∈ [a, b] } < 1
atunci ecuaţia admite o singură rădăcină în intervalul [a, b] şi aceasta este
x* = lim xk , unde x k +1 = g ( x k ) , k ≥ 0 , iar x0 ∈ [a, b] este arbitrar.
k →∞

Exemplu 2. Fie ecuaţia


x 5 − x − 0.2 = 0 ; x ∈ [− 0.3 ; − 0.2] .
Sisteme de ecuaţii neliniare 95

Forma echivalentă este


x = x 5 − 0,2 = 0, x ∈ [− 0,3;−0,2] .
Avem g ′ = 5x 4 şi g ′ = 0.0405 < 1 .
Se poate alege x0 = −0.3 . Şirul aproximaţiilor succesive este
⎧⎪ x k +1 = x 5 − 0.2
k .

⎪⎩ x 0 = −0.3
Se obţin următoarele valori pentru şirul aproximaţiilor succesive
Numărul 0 1 2 3 4 5
iteraţiei
x −0.3 −0.20243 −0.20034 −0.20032 −0.200322 −0.20032

§2.2. Metoda Newton - Raphson

Fie D⊂Rn o mulţime convexă, mărginită şi închisă şi fie sistemul neliniar


⎧ f1(x1 ,x 2 ,...,x n ) = 0

⎨............................. . (1)
⎪ f (x ,x ,...,x ) = 0,
⎩ n 1 2 n
Presupunem că α = (α1,...,α n )T ∈ D este o soluţie izolată a sistemului
(1) şi că ( ) T
x( 0 ) = x1( 0 ) ,...,xn( 0 ) ∈ D este un punct ”apropiat” de

α ⎛⎜ adică α − x (0) << 1⎞⎟ . Presupunem, de asemenea, că funcţiile f i , i = 1, n


⎝ ⎠
1
sunt de clasă C pe D. În aceste condiţii, dacă x ∈ D se află într-o vecinătate
suficient de mică a punctului x(0) avem
f i ( x) ≈ f i ( x (0) ) + df i ( x (0) )( x − x (0) ), i = 1, n .
Rezultă că sistemul (1) se poate înlocui cu sistemul liniar apropiat
⎧ f1 ( x (0) ) + df1 ( x (0) )( x − x (0) ) = 0
⎪⎪
⎨........................................ . (2)
⎪ ( 0) ( 0) ( 0)
⎪⎩ f n ( x ) + df n ( x )( x − x ) = 0
Sub forma vectorială sistemul (2) se scrie
F ( x (0) ) + dF ( x (0) )( x − x (0) ) = 0 (3)
unde
F = ( f1 , f 2 ,..., f n )T şi dF = ( df1 ,..., df n )T .
Deoarece sistemul (3) este ”apropiat” de sistemul (1), ne aşteptăm ca soluţia
sa, x(1), să fie ”apropiată” de soluţia α a sistemului (1).
96 Bazele Analizei Numerice

Aşadar x(1) verifică relaţia


F ( x (0) ) + dF ( x (0) )( x (1) − x (0) ) = 0 .
În continuare considerăm sistemul liniar
F ( x (1) ) + dF ( x (1) )( x − x (1) ) = 0
şi ne aşteptăm ca soluţia sa, x(2), să se ”apropie” mai mult de α. Aşadar x(2)
verifică relaţia
F ( x (1) ) + dF ( x (1) )( x ( 2) − x (1) ) = 0 .
În general, considerăm şirul de vectori { x ( p) } cu proprietatea:
( p) ( p) ( p +1) ( p)
F (x ) + dF ( x )( x −x )=0 (4)
şi ne aşteptăm că x ( p ) { }
să conveargă la α.
Reamintim că pentru orice a ∈ D şi orice
h = (h1 ,...,hn )T ∈ R n , dF(a)(h) = J F (a)h,
unde
⎛ ∂f1 ∂f1 ⎞
⎜ (a ) ... (a) ⎟
⎜ ∂x1 ∂xn ⎟
J F (a) = ⎜ ... ... ... ⎟
⎜ ∂f n ∂f n ⎟
⎜⎜ ∂x (a ) ... ∂x ( a) ⎟⎟
⎝ 1 n ⎠
Dacă presupunem că JF(α) este nesingulară, atunci, din continuitate,
rezultă că există o vecinătate V a punctului x =a, astfel încât JF(x) este
nesingulară pentru orice x ∈V .
În această condiţie, din (4) rezultă
x ( p +1) = x ( p ) − J F−1 ( x ( p ) ) F ( x ( p ) ), p ≥ 0 (5)

Teorema 1. Fie D ⊂ R n o mulţime convexă, mărginită şi închisă, α∈D o


soluţie izolată a sistemului F(x) = 0 şi fie r > 0 astfel încât bila
Br (α ) = x ∈ R n{ ; x −α ∞ < r ⊂ D . }
Presupunem că
(i) F ∈ C 2 ( D)
(ii) Există M1>0 astfel încât J F−1 ( x) ≤ M 1 , x ∈ Br (α )

∂ 2 fk
(iii) Există M2>0 astfel încât ( x) ≤ M 2 , x ∈ Br (α ),
∂xi∂x j
oricare ar fi i, j , k = 1, n .
Atunci şirul { x ( p) } definit de (5) are proprietăţile:
Sisteme de ecuaţii neliniare 97

1 2 2
a) x ( p +1) − α ≤ n M 1M 2 x ( p ) − α
∞ 2 ∞

b) Dacă
1 2
2
2
n M 1M 2 x (0) − α < 1 ,

atunci şirul { x ( p) } este
( p)
convergent şi . lim x =α .
p →∞
Demonstraţie. Din formula Taylor rezultă că pentru orice k = 1, n şi orice p ∈ N,
există un punct ξ k( p ) pe segmentul de dreaptă deschis de capete α şi x(p) astfel
încât
1
( )(
f k (α ) − f k ( x ( p ) ) = df k ( x ( p ) ) (α − x ( p ) ) + d 2 f k ξ k( p ) α − x ( p )
2!
. )
Ţinând seama că
n n
∂ 2 f k ( p)
d 2 f k ( ξ (k p ) )( α − x p ) = ∑∑ ∂x ∂ x
( ξ k )( αi − xi( p ) )( α j − x (j p ) )
i =1 j =1 i j
şi de ipoteza (iii), rezultă

n n
1
f k (α ) − f k ( x ( p ) ) − df k ( x ( p ) )(α − ( x ( p ) ) ≤ M 2 ∑ ∑ α i − xi( p ) α j − x (j p ) ≤
2 i =1 j =1
1 2
≤ M 2n 2 α − x ( p) , (∀)k = 1, n .
2 ∞
În continuare, avem
1 2
F (α ) − F ( x ( p ) ) − dF ( x ( p ) )(α − x ( p ) ) = M 2 n 2 α − x ( p ) (6)
∞ 2 ∞
Pe de altă parte din (4) rezultă
− F ( x ( p ) ) + dF ( x ( p ) )( x ( p ) ) = dF ( x ( p ) )( x ( p +1) ) (7)
Cum F(α)=0, din (6) şi (7) obţinem
1 2
dF ( x ( p ) )( x ( p +1) − α ) ≤ n 2 M 2 α − x ( p ) sau
∞ 2 ∞
1 2
J F ( x ( p ) )( x ( p +1) − α ) ≤ n 2 M 2 α − x ( p ) (8)
∞ 2 ∞
În sfârşit, ţinând seama şi de ipoteza (ii) avem
( x ( p +1) − α ) = J F−1 ( x ( p ) ) J F ( x ( p ) )( x ( p +1) − α ) ≤
∞ ∞
1 2
≤ J F−1 ( x ( p ) ) ⋅ J F ( x ( p ) )( x ( p +1) − α ) ≤ M1 M 2 n 2 α − x ( p)
∞ 2 ∞
Aşadar, am demonstrat afirmaţia a).
98 Bazele Analizei Numerice

1
Dacă notăm cu c= n 2 M 1M 2 , din a) rezultă
2
2
( x ( p +1) − α ) ≤ c ( x ( p) − α ) (9)
∞ ∞
Particularizând indicele p , obţinem succesiv
2
( x (1) − α ) ≤ c ( x ( 0) − α )
∞ ∞
2 4
( x ( 2) − α ) ≤ c ( x (1) − α ) ≤ c 3 ( x ( 0) − α )
∞ ∞ ∞
.............................................................
2 p +1
1⎛ ⎞
( x ( p +1) − α ) ≤ ⎜ c ( x (0) − α ) ⎟ .
∞ c⎜ ∞⎟
⎝ ⎠

Dacă c ( x (0) − α )

< 1, atunci lim ( x ( p +1) − α )
p →∞ ∞
= 0, deci { x ( p) } este

convergent şi lim x ( p ) = α . Cu aceasta teorema este demonstrată. ‰


p →∞

Exemplu. Reluăm sistemul (4) din §1


⎧⎪ f1(x1 , x2 ) ≡ 2 x 21+ x22 − 5 = 0
⎨ .
⎪⎩ f 2 (x1 , x2 ) ≡ x1 + 2x2 − 3 = 0
⎡1 3⎤
În domeniul D = [1,2]× ⎢ , ⎥ sistemul admite o singură soluţie şi anume
⎣2 2⎦
⎧ 1+ 2 3
⎪α1 = ≈ 1.4880338
⎪ 3

⎪ 4− 3
⎪⎩α 2 = 3 ≈ 0.7559831
3 ⎛ 4 x 2 x2 ⎞
x1(0) = şi x2(0) = 1 ; J F ( x1 , x2 ) = ⎜⎜ 1 ⎟;
2 ⎝ 1 2 ⎟⎠
⎛ 1 1⎞
− ⎟
3 ⎛ 6 2⎞ ⎛ 3 ⎞ ⎜
J F ( ,1) = ⎜⎜ ⎟⎟ ; J F−1 ⎜ ,1⎟ = ⎜ 5 5⎟
2 ⎝1 2⎠ ⎝ 2 ⎠ ⎜⎜ − 1 3⎟

⎝ 10 5⎠
⎛3 ⎞ 1 ⎛3 ⎞ 1
f1 ⎜ ,1⎟ = ; f 2 ⎜ ,1⎟ = .
⎝ 2 ⎠ 2 ⎝2 ⎠ 2
Conform (5) avem
Sisteme de ecuaţii neliniare 99

⎛ 1 1⎞⎛1⎞ ⎛3⎞
⎛ x (1) ⎞ ⎛ 3 ⎞
⎜ − ⎟⎜ ⎟ ⎛3⎞ ⎛0⎞ ⎜ ⎟
⎜ 1 ⎟=⎜ ⎟− ⎜ 5 5⎟⎜ 2⎟ = ⎜ ⎟ −⎜1⎟ =⎜ 2⎟ .
⎜ x (1) ⎟ ⎜ 2 ⎟
⎜− 1 3⎟ ⎜ 1⎟ ⎜ 2⎟ ⎜ ⎟ ⎜ 3⎟
⎝ 2 ⎠ ⎝1⎠ ⎜ ⎟⎜ ⎟ ⎝1⎠ ⎝4⎠ ⎜ ⎟
⎝ 10 5⎠⎝ 2⎠ ⎝4⎠
Primele 3 iteraţii sunt prezentate în tabelul următor
Numărul iteraţiei 0 1 2 3
x1 1.5 1.5 1.488095 1.488034
x2 1.0 0.75 0.755952 0.755983

⎛ 1 − x2 ⎞
⎜ ⎟
4 x1 − x2 4 x1 − x2 ⎟
J F−1 ( x) = ⎜
⎜ 1 4 x1 ⎟
⎜ − 2( 4 x − x ) 2(4 x1 − x2 ) ⎟⎠
⎝ 1 2
⎡1 3⎤
x1 ∈ [1,2] ; x2 ∈ ⎢ , ⎥
⎣2 2⎦
⎧ 1 + x2 1 + 4 x1 ⎫ 9
J F−1 ( x) = max ⎨ , ⎬≤ .
∞ ⎩ 4 x1 − x2 2( 4 x1 − x2 ) ⎭ 5
9
Aşadar, putem lua M 1 = .
5
∂ 2 f1 ∂ 2 f1 ∂ 2 f1 ∂ 2 f2 ∂ 2 f2 ∂ 2 f2
= 4; =0 ; =2 ; = = =0
∂x12 ∂x1 x2 ∂x22 ∂x12 ∂x1∂x2 ∂x22
şi deci M2 = 4 .
⎛3⎞ ⎛ 1,488 ⎞ 2
x = ⎜⎜ 2 ⎟⎟ , α ≅ ⎜⎜
( 0)
⎟⎟ , x (0) − α ≈ 0.06 .
⎝1⎠ ⎝ 0,756 ⎠ ∞

1 2 1 9
M 1M 2 n 2 x (0) − α ≈ ⋅ ⋅ 4 ⋅ 4 ⋅ 0.06 = 0.864 < 1
2 ∞ 2 5
Rezultă că algoritmul Newton −Raphson este convergent în acest caz.

Observaţia 1. Metoda Newton expusă aici are un inconvenient major şi anume


faptul că la fiecare pas trebuie calculată inversa J F−1 ( x ( p ) ) . Din motive de
continuitate, putem presupune că într-o vecinătate suficient de mică a punctului
x(0) avem J F−1 ( x ( p ) ) ≅ J F−1 ( x (0) ) . Se obţine astfel metoda Newton modificată
⎧⎪v ( p +1) = v ( p ) − J F−1 ( x (0 ) ) F (v (p ) ) , p≥0
⎨ (0 ) (0 ) (10)
⎪⎩v =x
Observăm că v(1)=x(1) dar, în general v(p)≠x(p) pentru p>1 .
L. Kantorovici a studiat metoda Newton modificată şi a dat condiţii
suficiente care asigură convergenţa algoritmului (10).
100 Bazele Analizei Numerice

În continuare să analizăm metoda Newton−Raphson pentru o singură


ecuaţie neliniară.
F(x)=0 , x∈[a,b] . (11)
Presupunem că ecuaţia (11) admite o singură rădăcină α∈[a,b].
Algoritmul (5) revine la
⎧ f (x p )
⎪ x p +1 = x p − , p≥0
⎨ f '(x p ) (12)
⎪ x ∈ [ a, b]
⎩ 0

O
a
x2 x1 x0 b x
A

Din punct de vedere geometric, xp+1 reprezintă abscisa punctului în care tangenta
la graficul funcţiei f în punctul Mp[xp, f(xp)] întâlneşte axa Ox.
Într-adevăr, ecuaţia tangentei la grafic în punctul M0[x0, f(x0)] este
y − f(x0) = f’(x0)(x − x0) .
Fie x1 abscisa punctului în care această tangentă întâlneşte axa Ox.

Avem
0 − f(x0) = f’(x0)(x1 − x0)
şi mai departe
f ( x0 )
x1 = x0 −
f ' ( x0 )
adică prima iteraţie din (12).
1
Fie m1 = inf{⏐f’(x)⏐ ; x∈[a,b]} . Atunci putem lua M 1 = . Evident
m1
m2 = sup{⏐f"(x)⏐ ; x∈[a,b]} . Algoritmul este convergent dacă
1 2
M 1M 2 x0 − α < 1 .
2
Sisteme de ecuaţii neliniare 101

Exemplul 2. Fie ecuaţia F(x) ≡ x3 - 2x - 5 = 0 ; x∈[2,3] . Ecuaţia admite o


singură rădăcină reală α ∈ (2,3) .
F(2) = −1 < 0 ; F(3) = 16 > 0 .
Algoritmul este
⎧ x3 − 2 x p − 5
⎪ x p +1 = x p − p , p≥0
⎨ 3 x 2p − 2 (13)

⎩ x0 ∈ (2,3) arbitrar
1
f’(x) = 3x2 −2 ; M 1 = ; f"(x) = 6x ; M2 = 18
10
1 2 9
M 1M 2 x0 − α < < 1 ,
2 10
de unde rezultă convergenţa şirului {xp} definit de (13). Valorile obţinute dupa
primele 5 iteraţii sunt trecute în tabelul de mai jos.

Numărul 0 1 2 3 4 5
iteraţiei
x 2.5 2.16418 2.09714 2.09456 2.09455 2.09455

Exerciţii

1. Să se găsească soluţia aproximativă a sistemului


⎧⎪ y 3 − 20 x − 1 =0
⎨ 3
⎪⎩ x + xy − 10 y + 10 = 0
situată în dreptunghiul D =[-1, 1]×[0, 2], folosind metoda aproximaţiilor
succesive.
⎛ y 3 − 1 ⎞⎟

⎛ g ( x, y ) ⎞ ⎜⎜ 20 ⎟
R. Considerăm G : D → D unde G ( x, y ) = ⎜⎜ 1 ⎟⎟ = ⎟
⎝ g 2 ( x , y ) ⎠ ⎜ ⎟
⎜ x 3 + xy + 10 ⎟
⎜ ⎟
⎝ 10 ⎠
⎛ 3⎞
⎛ ∂g ⎞ ⎜0 ⎟ 3
M = (mij )1≤i, j ≤ 2 = ⎜ sup i ⎟ =⎜ 5 ⎟ , iar M ∞= , deci G
⎜ x∈D ∂x j ⎟ 1 1
⎠1≤i, j ≤ 2 ⎜⎜ ⎟ 5
⎝ ⎟
⎝ 2 10 ⎠
102 Bazele Analizei Numerice

este o contracţie şi şirul aproximaţiilor succesive x(p+1) = G(x(p)) converge la


soluţia sistemului.
Valorile obţinute după primele 3 iteraţii sunt trecute în tabelul de mai jos.
Numărul iteraţiei 0 1 2 3
x 0.5 -0.0437 0.00583 -0.000679
y 0.5 1.0375 0.99545 0.99993

2. Să se găsească soluţia aproximativă a sistemului


⎧⎪ x 3 + y 3 − 6 x + 3 = 0
⎨ 3
⎪⎩ x − y 3 − 6 y + 2 = 0
⎡1 5⎤ ⎡1 1 ⎤
situată în dreptunghiul D = ⎢ , ⎥ × ⎢ , ⎥ , folosind metoda aproximaţiilor
⎣2 6⎦ ⎣6 2⎦
succesive.
⎧ x3 + y 3 1
⎪⎪ x = +
R. Punem sistemul sub forma 6 2 şi atunci
⎨ 3 3
⎪y = x − y + 1
⎪⎩ 6 3
⎛ 3 3 ⎞
⎜ g1 ( x, y ) = x + y + 1 ⎟
G ( x, y ) = ⎜ 6 2 ⎟ este o contracţie a lui D. Într-adevăr,
⎜ 3
x −y 3
1⎟
⎜ g 2 ( x, y ) = + ⎟
⎝ 6 3⎠
⎛ ⎛ 5 ⎞2 1 ⎛ 1 ⎞2 1 ⎞
⎜⎜ ⎟ ⋅ ⎜ ⎟ ⋅ ⎟
⎛ ⎞ ⎜
M = (mij )1≤i, j ≤ 2 = ⎜ sup i ⎟
∂ g 6
= ⎜ ⎝ ⎠2
2 ⎝2⎠ 2⎟ , iar
⎜ x∈D ∂x j ⎟ 2 ⎟
⎝ ⎠1≤i, j ≤ 2 ⎜ ⎛ 5 ⎞ 1 ⎛ 1 ⎞ 1 ⎟
⎜⎜ 6 ⎟ ⋅ 2 ⎜ 2 ⎟ ⋅ 2 ⎟
⎝⎝ ⎠ ⎝ ⎠ ⎠
M ∞ = 0.47222 , deci G este o contracţie şi şirul aproximaţiilor succesive
x(p+1) = G(x(p)) converge la soluţia sistemului. Considerând x0=0.5 şi y0=0.5
avem:
Numărul iteraţiei 0 1 2 3
x 0. 0.54167 0.53266 0.53256
5
y 0. 0.33333 0.35365 0.35115
5

3. Să se găsească soluţia aproximativă a ecuaţiei e-x+10x-5=0


situată în intervalul [0, 1] , folosind metoda aproximaţiilor succesive.
Sisteme de ecuaţii neliniare 103

5 − e− x
R. Ecuaţia se poate pune sub forma x = = ϕ ( x) , unde ϕ(x) este o
10
contracţie şi şirul aproximaţiilor succesive x = ϕ (x) converge la soluţia ecuaţiei.
Valorile obţinute după primele 5 iteraţii sunt trecute în tabelul de mai jos.

Nr. de iteraţii 0 1 2 3 4 5
x 0 0. 0.43297 0.43514 0.43528 0.43529
4

5
⎛1⎞
⎜ ⎟
3
x5 − x* ≤ ⎝ ⎠ x1 − x0 = 0.00525 .
1
1−
3
4. Să se găsească soluţia aproximativă din cadranul întâi pentru sistemul
⎪⎧ x1 + 3 lg x1 − x22 =0
⎨ 2
⎪⎩2 x1 − x1 x2 − 5 x1 + 1 = 0
folosind metoda Newton.
R. Şirul aproximaţiilor succesive x ( p +1) = x ( p ) − J F−1 ( x ( p ) ) F ( x ( p ) ) , p ≥ 0
unde:
⎛ ∂f1 ∂f1 ⎞
⎛ x + 3 lg x1 − x22 ⎞ ⎜ ⎟
∂x ∂x2 ⎟
F ( x, y ) = ⎜ 21 ⎟ , J F (x ) = ⎜ 1
( p)
.
⎜ 2 x − x x − 5 x + 1⎟ ∂
⎜ f2 ∂f 2 ⎟
⎝ 1 1 2 1 ⎠ ⎜ ∂x
⎝ 1 ∂x2 ⎟⎠
Se obţin:
⎛ - 0.19112 0.25482 ⎞ ⎛ 3.59209 ⎞
J −1 ( x (0) ) = ⎜⎜ ⎟⎟ , x (1) = ⎜⎜ ⎟⎟ ;
⎝ - 0.31853 0.09137 ⎠ ⎝ 2.32015 ⎠
⎛ - 0.12916 0.16685 ⎞ ⎛ 3.49059 ⎞
J −1 ( x (1) ) = ⎜⎜ ⎟⎟ , x ( 2) = ⎜⎜ ⎟⎟ ;
⎝ - 0.25343 0.049 ⎠ ⎝ 2.26341 ⎠
⎛ - 0.13672 0.1773 ⎞ ⎛ 3.48745 ⎞
J −1 ( x ( 2) ) = ⎜⎜ ⎟⎟ , x (3) = ⎜⎜ ⎟⎟ ;
⎝ - 0.26238 0.05379 ⎠ ⎝ 2.26163 ⎠
⎛ - 0.13697 0.17765 ⎞ ⎛ 3.48744 ⎞
J −1 ( x (3) ) = ⎜⎜ ⎟⎟ , x ( 4) = ⎜⎜ ⎟⎟
⎝ - 0.26267 0.05395 ⎠ ⎝ 2.26163 ⎠
⎛ - 0.13697 0.17765 ⎞ ⎛ 3.48744 ⎞
J −1 ( x ( 4) ) = ⎜⎜ ⎟⎟ , x (5) = ⎜⎜ ⎟⎟ ş. a. m. d.
⎝ - 0.26267 0.05395 ⎠ ⎝ 2.26163 ⎠
5. Să se găsească soluţia aproximativă ( x>0 , y>0 ) pentru sistemul
104 Bazele Analizei Numerice

⎧⎪ x 2 − y =0
⎨ 2 2
⎪⎩ x + y − 3x = 0
folosind metoda Newton.
R. Şirul aproximaţiilor x ( p +1) = x ( p ) − J F−1 ( x ( p ) ) F ( x ( p ) ) , p ≥ 0 unde:
⎛ ∂f1 ∂f1 ⎞
⎛ x −y ⎞
2 ⎜ ⎟
∂x ∂x2 ⎟

F ( x, y ) = 2 ⎟ , J F (x ) = ⎜ 1
( p)
.
⎜ x + y 2 − 3x ⎟ ⎜ ∂f 2 ∂f 2 ⎟
⎝ ⎠ ⎜ ∂x
⎝ 1 ∂x2 ⎟⎠
⎛ 1⎞
Se obţin următoarele rezultate dacă se porneşte cu x (0) = ⎜⎜ ⎟⎟ :
⎝ 1⎠
⎛ 0.66667 0.33333 ⎞ ⎛1.33333 ⎞
J −1 ( x (0) ) = ⎜⎜ ⎟⎟ , x (1) = ⎜⎜ ⎟⎟ ;
⎝ 0.33333 0.66667 ⎠ ⎝1.66667 ⎠
⎛ 0.38961 0.11688 ⎞ ⎛1.22511 ⎞
J −1 ( x (1) ) = ⎜⎜ ⎟⎟ , x ( 2) = ⎜⎜ ⎟⎟ ;
⎝ 0.03896 0.31169 ⎠ ⎝1.48918 ⎠
⎛ 0.44138 0.1482 ⎞ ⎛1.21353 ⎞
J −1 ( x ( 2) ) = ⎜⎜ ⎟⎟ , x (3) = ⎜⎜ ⎟⎟ ;
⎝ 0.08148 0.36311⎠ ⎝1.47253 ⎠
⎛ 0.44792 0.15209 ⎞ ⎛1.21341 ⎞
J −1 ( x (3) ) = ⎜⎜ ⎟⎟ , x ( 4) = ⎜⎜ ⎟⎟
⎝ 0.08714 0.36914 ⎠ ⎝1.47237 ⎠
⎛ 0.44799 0.15213 ⎞ ⎛1.21341 ⎞
J −1 ( x ( 4) ) = ⎜⎜ ⎟⎟ , x (5) = ⎜⎜ ⎟⎟ .
⎝ 0.0872 0.3692 ⎠ ⎝1.47237 ⎠

6. Folosind metoda Newton să se aproximeze soluţia pozitivă a sistemului de


ecuaţii neliniare
⎧ x2 + y 2 + z 2 = 1 ⎛ 0 .5 ⎞
⎪⎪ 2 2 ( 0) ⎜ ⎟
⎨2 x +y − 4 z = 0 , considerând X = ⎜ 0 .5 ⎟ .
⎪3 x 2 − 4 y + z 2 = 0 ⎜ 0 .5 ⎟
⎪⎩ ⎝ ⎠
R. Şirul aproximaţiilor x ( p +1) = x ( p ) − J F−1 ( x ( p ) ) F ( x ( p ) ) , p ≥ 0 , unde :
⎛ x2 + y2 + z2 − 1⎞⎟ ⎛ x⎞
⎜ ⎜ ⎟
F ( X ) = ⎜ 2x2 + y2 − 4z ⎟ ; X = ⎜ y⎟ ;
⎜ 2 ⎟ ⎜z⎟
⎜ 3x − 4y + z2 ⎟ ⎝ ⎠
⎝ ⎠
Sisteme de ecuaţii neliniare 105

⎛ ∂f1 ∂f1 ∂f1 ⎞


⎜ ⎟
⎜ ∂x ∂y ∂z ⎟ ⎛ 2 x 2 y 2 z ⎞
⎜ ∂f ∂f 2 ∂f 2 ⎟ ⎜ ⎟
JF (X ) = ⎜ 2 ⎟ = ⎜ 4 x 2 y -4 ⎟ .
⎜ ∂x ∂y ∂z ⎟ ⎜ ⎟
⎜ ∂f 3 ∂f 3 ∂f 3 ⎟ ⎝ 6 x -4 2 z ⎠
⎜ ∂x ∂y ∂z ⎟⎠

⎛ 0 .5 ⎞
( 0) ⎜ ⎟
Se obţin următoarele rezultate dacă se porneşte cu X = ⎜ 0 .5 ⎟ :
⎜ 0 .5 ⎟
⎝ ⎠
⎛ 0.375 0.125 0.125 ⎞ ⎛ 0.875 ⎞
⎜ ⎟ (1) ⎜ ⎟
J F−1 ( X (0) ) = ⎜
0.35 0.05 − 0.15 ⎟ ; X = ⎜ 0.5 ⎟
⎜ 0.275 − 0.175 0.025 ⎟ ⎜ 0.375 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 0.23552 0.05792 0.07336 ⎞ ⎛ 0.78982 ⎞
−1 (1) ⎜ ⎟ ( 2) ⎜ ⎟
J F ( X ) = ⎜ 0.36486 0.04054 -0.14865 ⎟ ; X = ⎜ 0.49662 ⎟
⎜ 0.2973 -0.18919 0.02703 ⎟ ⎜ 0.36993 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 0.26276 0.08104 ⎞
0.06359 ⎛ 0.78521 ⎞
⎜ ⎟ (3) ⎜ ⎟
J F−1 ( X ( 2) ) = ⎜ 0.36652 -0.149 ⎟ ; X = ⎜ 0.49661 ⎟
0.04023
⎜ 0.29855 0.02701 ⎟⎠
-0.18978 ⎜ 0.36992 ⎟
⎝ ⎝ ⎠
7. Să se găsească soluţia aproximativă ( x>0 , y>0 ) pentru sistemul
⎧⎪ x 2 − y =0
⎨ 2 2
⎪⎩ x + y − 3x = 0
folosind metoda Newton modificată.
R. Şirul aproximaţiilor succesive x ( p +1) = − J F−1 ( x (0) ) F ( x ( p ) ) , p ≥ 0
unde:
⎛ ∂f1 ∂f1 ⎞
⎛ x2 − y ⎞ ⎜ ⎟
F ( x, y ) = ⎜ 2 ⎟ , J F ( x ( p ) ) = ⎜ ∂x1 ∂x2 ⎟
.
⎜ x + y 2 − 3x ⎟ ⎜ ∂f 2 ∂f 2 ⎟
⎝ ⎠ ⎜ ∂x
⎝ 1 ∂x2 ⎟⎠
⎛ 1⎞
Se obţin următoarele rezultate dacă se porneşte cu x (0) = ⎜⎜ ⎟⎟ :
⎝ 1⎠
106 Bazele Analizei Numerice

⎛ 0.66667 0.33333 ⎞ ⎛1.23077 ⎞


J −1 ( x (0) ) = ⎜⎜ ⎟⎟ , x (1) = ⎜⎜ ⎟⎟ ,
⎝ 0.33333 0.66667 ⎠ ⎝1.46154 ⎠
⎛1.20791 ⎞ ⎛1.21586 ⎞ ⎛1.21217 ⎞
x ( 2) = ⎜⎜ ⎟⎟ , x (3) = ⎜⎜ ⎟⎟ , x ( 4) = ⎜⎜ ⎟⎟ ,
⎝1.46908 ⎠ ⎝1.47494 ⎠ ⎝1.47093 ⎠
⎛1.21341 ⎞
x ( 47) = ⎜⎜ ⎟⎟ .
⎝1.47237 ⎠
Valori şi vectori proprii 107

3. Vectori şi valori proprii

Reamintim că dacă A este o matrice pătratică, atunci un vector x ∈ R n


se numeşte vector propriu în raport cu A, dacă x ≠ 0 şi există un număr λ
(real sau complex) astfel încât Ax = λx . Numărul λ se mai numeşte şi valoarea
proprie. Valorile proprii ale matricei A sunt rădăcinile polinomului caracteristic
P (λ ) = det ( A − λI ) şi sunt invariante la transformările de similitudine ale lui A;
acest lucru înseamnă că valorile proprii ale matricei A coincid cu valorile proprii
ale matricei C −1 AC , oricare ar fi matricea nesingulară C.
Dacă matricea A este simetrică, atunci valorile sale proprii sunt reale şi
există o bază ortonormală formată din vectori proprii, deci cu proprietatea
Avi = λi vi , i = 1, n , în raport cu care matricea A se reduce la forma diagonală
⎛ λ1 0 0 ... 0 ⎞
⎜ ⎟
⎜ 0 λ2 0 ... 0 ⎟
D=⎜ (1)
... ... ... ... ... ⎟
⎜ ⎟
⎜0 0 0 λ n ⎟⎠

Baza v1 ,..., v n se poate alege astfel încât λ1 ≥ λ 2 ≥ ... ≥ λ n . Dacă, în plus, A este
şi pozitiv definită, atunci λ1 ≥ ... ≥ λ n > 0 şi
Ax, x
λ1 = A 2
= sup
.
x, x x≠0
Fie V matricea de trecere de la baza canonică a spaţiului Rn la baza
v1 , v 2 ,..., v n . Se verifică imediat că V T V = I , deci V este ortogonală. Rezultă că
V −1 = V T şi că D = V T ⋅ AV.
În practică, valorile proprii ale matricei A nu se determină rezolvând
numeric ecuaţia caracteristică det( A − λI ) = 0 , deoarece, aşa cum vom arăta în
continuare, rădăcinile unui polinom sunt foarte ”sensibile” la orice modificare a
coeficienţilor polinomului.
Într-adevăr, fie polinomul
108 Bazele Analizei Numerice

f ( x) = a n x n + a n −1 x n −1 + ... + a1 x + a 0 ,
şi fie
h( x ) = f ( x ) + ε g ( x )
polinomul modificat, în care ε > 0 este arbitrar, iar
g ( x ) = bn x n + bn −1 x n −1 + ... + b1 x + b0
este un polinom oarecare. Cum g este arbitrar, putem considera că
bi = ai , i = 1, n sau bi = 0 pentru i ≠ j şi b j = a j etc. Aşadar, cazul
considerat este practic cazul cel mai general. Fie x1 , x 2 ,..., x n rădăcinile
polinomului f. Pentru simplificare, vom presupune că aceste rădăcini sunt simple,
deci că f ( x k ) = 0 şi f ′( x k ) ≠ 0, k = 1, n .
Să presupunem că vrem să determinăm rădăcinile ecuaţiei h(x) = 0
cu una din metodele numerice cunoscute, de exemplu metoda Newton - Raphson.
Ne aşteptăm ca pentru ε > 0 foarte mic, rădăcinile ecuaţiei h(x) = 0 să fie
apropiate de rădăcinile ecuaţiei iniţiale f(x) = 0. Notăm cu zk o rădăcină oarecare
a ecuaţiei h(x) = 0. Conform algoritmului Newton avem
h( x k ) ε g ( xk )
z k = xk − = xk − (2)
h ′( x k ) f ′( x k ) + ε g ′( x k )
Dacă notăm cu
g ( xk )
q(ε ) = ,
f ′( x k ) + ε g ′( x k )
atunci
g ( x k ) g ′( x k )
q ′(ε ) = − . (3)
[ f ′( x k ) + ε g ′( x k )]2
Cum q (ε ) ≈ q (0) + ε q ′(0) pentru ε > 0 suficient de mic, din (2) şi (3) rezultă
⎛ g(x ) g ( x k ) g ′( x k ) ⎞⎟ g ( xk )
z k = xk − ε ⎜ k
−ε ≈ xk − ε . (4)
⎜ f ′( x k )
⎝ [ f ′( x k ) ]2 ⎟
⎠ f ′( x k )
Să presupunem că bi = 0 pentru i ≠ j şi b j = a j . Aşadar, modificarea
polinomului f constă în faptul că se înlocuieşte coeficientul a j cu coeficientul
a~ j = (1 + ε )a j , iar ceilalţi coeficienţi rămân neschimbaţi. Din (4) rezultă
a j x kj
z k − xk ≈ ε . (5)
f ′( x k )

Exemplul 1. Fie
12
f ( x) = ∏ ( x − k ) = ( x − 1)( x − 2)...( x − 12) .
k =1
Evident
Valori şi vectori proprii 109

x k = k , k = 1,12 şi f ′( x k ) = ( −1) k (12 − k )! ( k − 1)!


Conform (5) avem
aj k j
z k − xk = ε .
(12 − k )!(k − 1)!
Se poate arăta că a7 = − 6.926.634 .
Să presupunem că ε = 10 −11 , ceea ce înseamnă că modificarea
coeficientului a7 se face cu cantitatea ε ⋅ a 7 = −0.0000692663 4 ≈ −0.00007 .
Acest lucru este oricând posibil datorită erorilor inerente la introducerea datelor. Să
analizăm efectul acestei modificări asupra rădăcinii x9 = 9 a ecuaţiei f(x) = 0. Un
calcul direct ne arată că
z 9 − x9 = 0.00137 ≈ 0.0014 .
Aşadar, modificând un singur coeficient şi anume a7 cu 0.00007, rădăcina
x9 se modifică cu 0.0014. Raportul dintre modificarea rădăcinii x9 şi modificarea
coeficientului a7 este 20, ceea ce arată sensibilitatea rădăcinilor unui polinom la
modificarea coeficienţilor.
Din cele de mai sus rezultă că nu se recomandă determinarea valorilor
proprii ale unei matrice pe calea rezolvării numerice a ecuaţiei caracteristice.
Metoda recomandată este să se aducă, printr-un procedeu oarecare,
matricea la forma diagonală şi atunci valorile proprii se determină global (toate
odată), ele fiind, de fapt, elementele de pe diagonala principală. Se urmăreşte deci,
ca prin transformări de similitudine, care nu modifică valorile proprii, să micşorăm,
eventual până la dispariţie, elementele nediagonale ale matricei, astfel încât, în
final, să obţinem practic matricea diagonală.

§3.1. Metoda rotaţiilor a lui Jacobi

Fie A o matrice simetrică. Metoda Jacobi constă în efectuarea unei suite


de transformări de similitudine ale matricei A utilizând cele mai simple matrice
ortogonale netriviale (matricele de rotaţie) de forma
110 Bazele Analizei Numerice

p q
↓ ↓
⎛1 0 0 . . 0⎞
⎜ ⎟
⎜0 1 0 . . 0⎟
⎜ O . . ⎟
⎜ ⎟ ←p
⎜0 . . cos ϕ . . . sin ϕ . . 0 ⎟
⎜ ⎟
⎜ . 1 . ⎟ (1)
U =⎜M . O . M⎟
⎜ ⎟ ←q
⎜ . 1 . ⎟
⎜ 0 . . − sin ϕ . . . cos ϕ . . 0 ⎟
⎜ ⎟
⎜ . . O ⎟
⎜ . . 0 1 0⎟
⎜ ⎟
⎜0 . . 0 0 1 ⎟⎠

Aşadar, elementele matricei U sunt:
⎧u ii = 1 dacă i ≠ p şi i ≠ q

⎪u pp = cos ϕ , u pq = sin ϕ
⎨ (2)
⎪u qp = − sin ϕ , u qq = cos ϕ
⎪u = 0 în rest
⎩ ij
O asemenea matrice este ortogonală ( U T U = I şi deci U −1 = U T ) şi
reprezintă din punct de vedere geometric o rotaţie de unghi ϕ în planul determinat
de direcţiile ep şi eq. Notăm cu A ′ = U T A şi cu A˝ = A ′U = U T AU . În cazul
particular n = 5, p = 2 şi q = 4, matricea A˝ arată astfel
a11 a12cosϕ−a14sinϕ a13 a12sinϕ+a14cosϕ a15
a21cosϕ− a22cos ϕ−2a24sinϕ a23cosϕ−
2
(a22−a44)sinϕcosϕ+ a25cosϕ−
a41sinϕ cosϕ+a44sin ϕ
2
a43sinϕ a24cos2ϕ a45sinϕ
a31 a32cosϕ−a34sinϕ a33 a32sinϕ+a34cosϕ a35
a21sinϕ+ (a22−a44)sinϕ a23sinϕ+ a22sin2ϕ+2a24sinϕ a25sinϕ+
a41cosϕ cosϕ+a24cos2ϕ a43cosϕ cosϕ+ a44cos2ϕ a45cosϕ
a51 a52cosϕ−a54sinϕ a53 a52sinϕ+a54cosϕ a55

În general, elementele matricei A´ sunt


⎧aij′ = aij dacă i ≠ p şi i ≠ q
⎪⎪
⎨a ′pj = a pj cos ϕ − a qj sin ϕ j = 1, n (3)

′ = a pj sin ϕ + a qj cos ϕ
⎪⎩a qj ,
iar cele ale matricei A˝ sunt
Valori şi vectori proprii 111

⎧aij′′ = aij′ dacă j ≠ p şi j ≠ q


⎪⎪
⎨aip ′′ = aip
′ cos ϕ − aiq′ sin ϕ , i = 1, n . (4)

⎪⎩aiq ′′ = aip
′ sin ϕ + aiq′ cos ϕ
Din (3) şi (4) rezultă
⎧a ′′ = a cos 2 ϕ − 2a cos ϕ sin ϕ + a sin 2 ϕ
⎪ pp pp pq qq
⎪⎪a ′′ = a sin 2 ϕ + 2a cos ϕ sin ϕ + a cos 2 ϕ
qq pp pq qq . (5)

⎪a ′pq
′ = (a pp − a qq ) sin ϕ cos ϕ + a pq cos 2ϕ

′′ = a ′pq
⎪⎩a qp ′
Cum intenţia noastră este ca elementul nediagonal cel mai mare (în valoare
absolută) să se anuleze în urma rotaţiei, vom alege liniile p şi q astfel încât apq să
fie cel mai mare element (în valoare absolută) de deasupra diagonalei principale şi
vom pune condiţia ca a ′pq ′ = 0 . Ţinând seama de (5) rezultă
1
(a pp − a qq ) sin 2ϕ + a pq cos 2ϕ = 0
2
şi mai departe
a qq − a pp
ctg 2ϕ = . (6)
2a pq
Aşadar, unghiul de rotaţie se află din relaţia (6). Introducem notaţiile
a qq − a pp
θ= şi tgϕ = t . (7)
2a pq
1 − tg 2ϕ
Cum ctg 2ϕ = , din (6) şi (7) rezultă t 2 + 2θ ⋅ t − 1 = 0 . Rezolvând
2tgϕ
această ecuaţie obţinem
1
t1,2 = −θ ± θ 2 + 1 = .
θ ± θ 2 +1
Pentru a evita ca numitorul să fie mic, luăm
⎧ 1
⎪ dacă θ ≠ 0
t = ⎨θ + sgn(θ ) θ 2 + 1 . (8)

⎩1 dacă θ = 0
Conform unor formule elementare de trigonometrie avem
112 Bazele Analizei Numerice

⎧ 1
⎪c = cos ϕ =
⎪ 1+ t2 . (9)
⎨ t
⎪ s = sin ϕ =
⎪⎩ 1+ t2
1 1
Din (8) şi (9) rezultă că t ≤ 1, c≥ , s≤ şi deci că
2 2
⎡ π π⎤
ϕ ∈ ⎢−
, ⎥ .
⎣ 4 4⎦
Dacă notăm cu S(B) suma pătratelor elementelor nediagonale ale unei matrice B
oarecare, atunci din (3) şi (4), un calcul direct ne conduce la
[ ]
S ( A′′) = S ( A) − 2a 2pq + 2a ′pq
′2 .
Aşadar, dacă alegem unghiul rotaţie ϕ conform (8) şi (9) rezultă
′ =0 şi deci S ( A′′) = S ( A) − 2a 2pq .
a ′pq (10)
Deoarece aij2 ≤ a 2pq pentru i ≠ j , vom avea
2
S ( A) ≤ n(n − 1)a 2pq sau − S ( A) ≥ −2a 2pq . (11)
n(n − 1)
Din (10) şi (11) rezultă
⎛ 2 ⎞
S ( A′′) ≤ S ( A)⎜⎜1− ⎟⎟ < S ( A) pentru n ≥ 2 . (12)
⎝ n(n − 1) ⎠
Să considerăm acum un şir de rotaţii în urma cărora se obţin matricele A0
, A1 , A2 , ... , Ak , ... unde A0=A , A1=A′′ , A2 = A1′′ , etc.
Din (12) rezultă
k
⎛ 2 ⎞
S ( Ak ) ≤ ⎜⎜1− ⎟⎟ S ( A) . (13)
⎝ n(n − 1) ⎠
2
Cum 1− ∈ (0,1) pentru n > 2, din (13) rezultă lim S ( Ak ) = 0 .
n(n − 1) k →∞
Aşadar, la limită şirul {Ak } tinde la matricea diagonală.
Se poate demonstra următoarea teoremă

(k )
Teorema 1. Fie λi valorile proprii ale matricei A şi fie a jj elementele
diagonale ale matricei Ak . Atunci
a (jjk ) − λ j ≤ S ( Ak ) .

Deoarece a (pq
k)
este cel mai mare (în valoare absolută) element
nediagonal al matricei Ak, rezultă
Valori şi vectori proprii 113

S ( Ak ) ≤ (n 2 − n)(a (pq
k) 2
) < n 2 (a (pq
k) 2
) .
Din Teorema 1 obţinem
a (jjk ) − λ j < n a (pq
k)
. (14)
Inegalitatea (14) poate fi luată drept criteriu de oprire. Din inegalitatea
n a (k )
pq < ε , va rezulta numărul k al rotaţiilor necesare pentru a aproxima valorile
(k )
proprii λj ale matricei A cu elementele diagonale a jj ale matricei Ak. Şirul
de matrice Ak se calculează recursiv
⎧⎪ Ak = U T A k −1 U k , k ≥ 1
k . (15)

⎪⎩ A0 = A
Algoritm pentru determinarea valorilor proprii prin metoda rotaţiilor a lui Jacobi
Intrare A , ε ;
Repetă
Determină : max := elementul maxim în valoare absolută de
deasupra diagonalei principale a matricei A ;
Fie (p , q) poziţia acestui element ;
Calculează cu formulele (7) , (8) , (9) respectiv θ , t , c , s ;
Determină U prin înlocuirea în In a elementelor ipp şi iqq cu
c şi ipq cu s, iar iqp cu -s ;
n n
2
Calculează A := UT⋅A⋅U ; calculează S := ∑ ∑ aij
i =1 j =1
j ≠i
până când S<ε .

Exemplul 1. Pentru matricea


⎛ 3 1 1⎞
⎜ ⎟ 1
A = ⎜ 1 3 1 ⎟ , a12 = 1 ; p = 1; q = 2 ; θ = 0 ; t = 1; c = s =
⎜ 1 1 3⎟ 2
⎝ ⎠
⎛ 1 1 ⎞
⎜ 0⎟
⎜ 2 2 ⎟ ⎛2 0 0 ⎞
⎜ 1 1 ⎟ T ⎜ ⎟
U1 = ⎜ − 0 ⎟ ; A1 = U 1 AU 1 = ⎜ 0 4 2 ⎟ ; a 23 = 2 ; p = 2; q = 3
2 2 ⎜0

0 0 1⎟
⎟ ⎝ 2 3 ⎟⎠
⎜⎜ ⎟
⎝ ⎠
3−4 1 9 2 3 2 1
θ = =− ; 1+θ 2 = ; t=− ; 1+ t2 = ; c = ; s=−
2 2 2 2 8 2 2 3 3
114 Bazele Analizei Numerice

⎛ ⎞
⎜ ⎟
⎜1 0 0 ⎟ ⎛2 0 0⎞
⎜ 2 1 ⎟ ⎜ ⎟
U2 = ⎜0 − ⎟; A2 = U 2T A1U 2 = ⎜ 0 5 0⎟
⎜ 3 3 ⎟ ⎜0
⎜ ⎟ ⎝ 0 2 ⎟⎠
1 2
⎜0 ⎟
⎝ 3 3 ⎠
Rezultă: λ1 = 2 ; λ 2 = 5 ; λ3 = 2 .

§3.2. Metoda Householder pentru


tridiagonalizarea matricelor simetrice

Pentru matricele simetrice tridiagonale există o metodă specială de


determinare a valorilor proprii, bazată pe conceptul algebric de şir Sturm; această
metodă va fi prezentată în paragraful următor.
Prezintă deci interes cunoaşterea unor metode de tridiagonalizare a matricelor
simetrice. Cele mai cunoscute metode din această categorie sunt metoda Givens şi
metoda Householder.
Aşa cum am văzut în Capitolul I, §4, pentru orice vector x ∈ R n , x ≠ 0,
există o matrice Householder H, astfel încât Hx = σ e1 , unde σ este un număr
real. Algoritmul pentru determinarea matricei H este prezentat în (3), respectiv
(4). Fie A ∈ M n (R ) o matrice simetrică şi fie ai = ( a1i , a 2i ,..., a ni ) T , i = 1, n ,
vectorii săi coloană.
Căutăm o matrice Householder H1 astfel încât
⎛ a11 ⎞
⎜ (1) ⎟
⎜ a 21 ⎟
H 1a1 = ⎜ 0 ⎟
⎜ ⎟
⎜ M ⎟
⎜ ⎟
⎝ 0 ⎠
⎛1 0 ⎞ ~
Pentru aceasta, alegem H1 de forma H 1 = ⎜⎜ ~ ⎟⎟ , unde H1 este
⎝ 0 H 1⎠
matricea Householder de ordinul (n-1) cu proprietatea că
Valori şi vectori proprii 115

⎛ a 21 ⎞ ⎛⎜ a (1) ⎞⎟
⎜ ⎟ 21
~ ⎜ ⋅ ⎟ ⎜ 0 ⎟
H1 ⋅ ⎜ =⎜ ⎟.
⋅ ⎟ ⎜ M ⎟
⎜ ⎟
⎜a ⎟ ⎜
⎝ n1 ⎠ ⎝ 0 ⎟⎠
Conform algoritmului (4) descris în Capitolul I §4 avem:
2
s = ( a 21 + ... + a n21 )1 / 2 , β = ( s( a 21 + s ) −1 , u = ( a 21 + s ⋅ sgn( a 21 ), a31 , ..., a n1 ) T ,
~
sgn( a 21 ) = 1 dacă a 21 = 0 , H 1 = I n −1 − β uu T .
Dacă notăm cu a~ = ( a ,..., a ) T , atunci
1 21 n1

⎛ − s ⋅ sgn(a 21 ) ⎞
⎜ ⎟
~~ ⎜ 0 ⎟
H1a1 = ⎜ ⎟
⎜ M ⎟
⎜ 0 ⎟
⎝ ⎠
⎛ a11 ⎞
⎜ ⎟
⎜ − s ⋅ sgn(a 21 ) ⎟
⎛ 1 0 ⎞⎛ a11 ⎞ ⎛ a11 ⎞ ⎜ ⎟.
Mai departe avem H 1a1 = ⎜⎜ ~ ⎟⎟⎜⎜ ~ ⎟⎟ = ⎜⎜ ~ ~ ⎟⎟ = ⎜ 0
⎝ 0 H a H
1 ⎠⎝ 1 ⎠ ⎝ 1 1 ⎠ ⋅ a ⎟
⎜ M ⎟
⎜ ⎟
⎝ 0 ⎠
Fie A1 = H1AHT1. Atunci
⎛ a11 − s ⋅ sgn(a 21 ) 0 ... 0 ⎞
⎜ (1) (1) ⎟
⎜ − s ⋅ sgn(a 21 ) a 22 a 23 ... a 2(1n) ⎟
⎜ (1) (1) (1) ⎟
⎜ 0 a32 a33 ... a3n ⎟
A1 = ⎜ . ⎟ .
⎜ ⎟
⎜ ... ... ... ... ... ⎟
⎜ . ⎟
⎜⎜ (1) (1) (1) ⎟⎟
⎝ 0 an2 a n3 ... a nn ⎠
În continuare se caută o matrice Householder H2 cu proprietatea că elementele
a i(22) (i = 4, n) din matricea A2 = H2A1H2T sunt nule, etc.

Algoritm pentru tridiagonalizarea matricei A


A0 := A ;
Pentru i:=1,n-1 calculează
1/ 2
⎛ n ⎞
s := ⎜ ∑ a ij2 ⎟
⎜ j =i +1 ⎟
(
; β := s ( ai +1,i + s ) )−1 ;
⎝ ⎠
116 Bazele Analizei Numerice

( )
u = ai +1,i + s ⋅sgn(ai +1,i ), ai + 2,i , ..., a n i T ;
dacă ai,i+1 ≥ 0 atunci sgn(ai,i+1) := 1 altfel sgn(ai,i+1) := −1 ;
~
H i := I n −1 − β ⋅ u ⋅ u T ;
⎛ Ii 0 ⎞
H i := ⎜⎜ ~ ⎟⎟ ;
⎝0 Hi ⎠
Ai := H i Ai −1 H iT ;
sfârşit pentru i.

§3.3. Determinarea valorilor proprii ale matricelor


simetrice tridiagonale

Următoarea teoremă precizează mulţimea din planul complex (respectiv


intervalul din R ) în care se află valorile proprii ale unei matrice.
Teorema 1 . (Gerschgorin). Fie A o matrice pătratică de ordinul n,
n
ri = ∑ aij şi Di = { z ∈ C; z − aii < ri } ; i = 1, n.
j =1
j ≠i
n
Dacă λ este valoarea proprie a matricei A, atunci λ ∈ U Di .
i =1
Demonstraţie. Fie λ o valoare proprie a matricei A şi fie x = ( x1 ,..., x n ) T un
vector propriu corespunzător lui λ. Atunci x ≠ 0 şi Ax = λx. Rezultă
a i1 x1 + ... + a ii xi + ... + a in x n = λxi
sau
n
∑ aij x j = (λ − aii ) xi , i = 1, n (1)
j =1
j ≠i

Fie p ∈ {1,2,..., n} astfel încât xp = x ∞ > 0 .


Din (1) rezultă
n xj n
λ − a pp ≤ ∑ a pj ≤ ∑ a pj = r p .
j =1 xp j =1
j≠ p j≠ p
n
Aşadar, λ ∈ D p ⊂ U Di .
i =1
Valori şi vectori proprii 117

În cazul particular când A ∈ M n (R) şi are toate valorile proprii reale,


rezultă că
n
λ ∈ U [aii − ri , aii + ri ] ⊂ R . ‰
i =1

⎛1 2 1 ⎞
⎜ ⎟
Exemplul 1. Fie A = ⎜ 2 − 3 − 2 ⎟ , r1=3; r2=4; r3=3.
⎜1 − 2 2 ⎟
⎝ ⎠
λ ∈ [− 2, 4] ∪ [− 7, 1] ∪ [− 1, 5] = [− 7, 5] .
O matrice simetrică tridiagonală este de forma
⎛ a1 b1 0 0 ... ... ... 0 ⎞
⎜ ⎟
⎜ b1 a 2 b2 0 ... ... ... 0 ⎟
⎜0 b 0 ⎟
2 a3 b3 ... ... ...
J =⎜ ⎟ . (2)
⎜ ... ... ... ... ... ... ... ... ⎟
⎜ ⎟
⎜0 0 0 0 ... bn −2 a n −1 bn −1 ⎟
⎜0 0 0 0 ... 0 bn −1 a n ⎟⎠

Pentru o astfel de matrice avem
aii = a i ; r1 = b1 ; rn = bn −1 ; ri = bi −1 + bi , i = 2, n − 1 .
Fie a = min (ai − ri ) şi b = max (ai + ri ) .
1≤i ≤ n 1≤i ≤n
Valorile proprii ale matricei A vor aparţine intervalului [a,b].

Definiţia 1. Un şir ordonat şi finit de polinoame reale f n , f n −1 , ..., f1 , f 0 se


numeşte şir Sturm, dacă:
1. Polinoamele vecine nu au rădăcini comune;
2. f0 nu are rădăcini reale;
3. Dacă x = α este o rădăcină a unuia din polinoamele intermediare
f i , i = 1, n − 1, atunci f i −1 (α ) f i +1 (α ) < 0 ;
4. Dacă f n (α ) = 0 , atunci pentru h > 0, suficient de mic, avem
f (α − h) f (α + h)
sgn n = −1 şi sgn n = +1 .
f n−1 (α − h) f n−1 (α + h)
În continuare, pentru orice x ∈ R, notăm cu S(x) numărul schimbărilor
de semn din şirul
f n ( x ), f n −1 ( x ), ... , f1 ( x ), f 0 ( x ),
după ce am eliminat elementele nule.

Teorema 2. (Sturm) Fie f n , f n −1 ,..., f1 , f 0 un şir Sturm de polinoame.


Dacă numerele reale a şi b, a < b, nu sunt rădăcini ale polinomului fn şi
118 Bazele Analizei Numerice

dacă polinomul fn nu are rădăcini multiple, atunci S(a) ≥ S(b) şi diferenţa


S(a)−S(b) este egală cu numărul rădăcinilor reale ale polinomului fn din
intervalul (a, b).
Demonstraţie. Deoarece polinoamele sunt funcţii continue, atât timp cât x
crescând, nu întâlneşte nici o rădăcină a vreunuia din polinoamele din şir, semnele
polinoamelor din şir nu se schimbă şi deci S(x) rămâne neschimbat. Rămâne să
analizăm următoarele cazuri posibile:
a) x = α este rădăcină pentru unul din polinoamele intermediare. Fie
i ∈{1,2,...,(n −1)} astfel încât f i (α ) = 0 . Din Definiţia 1 rezultă f i −1 (α ) f i +1 (α ) < 0 .
Să presupunem că f i −1 (α ) < 0 şi f i +1 (α ) > 0 . Din continuitate rezultă că
există h > 0 astfel încât f i −1 ( x ) < 0 şi f i +1 ( x ) > 0 pentru orice
x ∈ [α − h, α + h ] . Avem următoarea situaţie

x fi--1(x) fi(x) fi+1(x)


α-h - ± +
α - 0 +
α+h - m +
Rezultă S(α + h) = S(α - h).
În mod analog, dacă f i −1 (α ) > 0 şi f i +1 (α ) < 0 avem următorul tabel
ale semnelor
x fi-1(x) fi(x) fi+1(x)
α-h + ± -
α + 0 -
α+h + m -
Rezultă, de asemenea S(α + h) = S(α- h).
b) x = α este o rădăcină a polinomului fn. Evident, în acest caz fn-1(α) ≠ 0
(Definiţia 1, proprietatea 1).
Din continuitate şi din proprietatea 4 a Definiţiei 1, rezultă că nu putem
avea decât următoarele situaţii

x fn-1(x) fn(x) x fn-1(x) fn(x)


α-h - + α-h + -
α - 0 α + 0
α+h - - α+h + +

Aşadar, la trecerea printr-o rădăcină a polinomului fn, S scade cu o unitate


(S(α + h) = S(α− h) −1).
În definitiv, am demonstrat că numărul rădăcinilor reale ale polinoamelor
fn, cuprinse în intervalul (a,b) este egal cu
Valori şi vectori proprii 119

S(a) -S(b). ‰

Exemplul 2.
y
Fie polinoamele:
f 3 ( x) = x 3 − 3 x 2 + 1 ;
f 2 ( x) = x 2 − 3x + 1 ;
f2 f3
f1 ( x ) = x − 1 ;
f 0 ( x) = 1 f1
Din reprezentarea grafică a f0

polinoamelor se observă că ele formează un şir


Sturm. Alegem a = −1 şi b = 3.
O x
f3(−1) =−3; f2(−1) = 5; f1(−1) =−2;
f0(−1) = 1
f3(3) = 1; f2(3) = 1; f1(3) = 2;
f0(3) = 1; S(−1) = 3; S(3) = 0;
Numărul rădăcinilor reale ale polinomului
f3 cuprinse în intervalul (−1, 3) este 3.
Fie J matricea simetrică tridiagonală
dată de (2) şi fie
λ − a1 − b1 0 0 ... 0 0
− b1 λ − a 2 − b2 0 ... 0 0
P (λ ) = det(λI − J ) = 0 − b2 λ − a3 − b3 ... 0 0
... ... ... ... ... ... ...
0 0 0 0 ... − bn −1 λ − an
Introducem următoarele notaţii
⎧ f 0 (λ ) = 1

⎪ f1 (λ ) = λ − a1
⎪ f (λ ) = (λ − a ) f (λ ) − b 2 f (λ )
⎪ 2 2 1 1 0
⎨ 2
(3)
⎪ f 3 ( λ ) = ( λ − a 3 ) f 2 ( λ ) − b2 f 1 ( λ )
⎪...............................................

⎪ f (λ ) = (λ − a ) f (λ ) − b 2 f
⎩ n n n −1 n −1 n − 2 (λ )
Se observă imediat că f n (λ ) ≡ P (λ ) este polinomul caracteristic ataşat
matricei A.

Teorema 3. Dacă bi ≠ 0 , i = 1, n − 1 , atunci fiecare polinom f k , k = 0, n ,


are exact k rădăcini reale simple. Mai mult, pentru orice 1 ≤ k ≤ n − 1, rădăcinile
polinomului fk separă rădăcinile polinomului fk+1.
120 Bazele Analizei Numerice

Demonstraţie. Polinomul f1 admite rădăcina λ1(1) = a1 . Din (3) şi din ipoteza


b1 ≠ 0 rezultă f 2 (λ1(1) ) = −b12 < 0 .
Pe de altă parte, deoarece f 2 (λ ) = λ 2 + ... şi deci lim f 2 (λ ) = +∞,
λ →±∞
rezultă că există λ1( 2) , λ(22) rădăcini reale ale lui f2, astfel încât
λ1( 2) < λ1(1) < λ(22) .
Ţinând din nou seama de (3) şi de ipoteza b2 ≠ 0 , rezultă
f 3 (λ1( 2) ) = −b22 f1 (λ1( 2) ) > 0 şi f 3 (λ(22) ) = −b22 f1 (λ(22) ) < 0
Cum f 3 (λ ) = λ3 + ... avem lim f 3 (λ ) = −∞ şi lim f 3 (λ ) = +∞ .
λ →−∞ λ →∞
Aşadar, polinomul f3 admite 3 rădăcini reale simple
λ1(3) ∈ (−∞, λ1( 2) ) , λ(23) ∈ (λ1( 2) , λ(23) ) şi λ(33) ∈ (λ(22) , ∞) .
Prin inducţie matematică se poate arăta că fk are k rădăcini reale simple şi separă
rădăcinile polinomului fk+1 . ‰

f2
λ 2(3)

λ 1(3) λ 1(2) λ 2(2)


λ 3(3)
f1 λ 1(1)

f3

Corolarul 1. Orice matrice simetrică tridiagonală ireductibilă are n valori


proprii reale distincte.
Într-adevăr, conform Definiţiei 2, Capitolul I, §2, dacă matricea J este
ireductibilă, atunci bi ≠ 0 , i = 1, n − 1 . Afirmaţia rezultă acum din Teorema 3 şi
din observaţia că f n (λ ) ≡ P (λ ) este polinomul caracteristic al matricei J.

Teorema 4. Dacă J este o matrice simetrică tridiagonală ireductibilă şi


Valori şi vectori proprii 121

f 0 (λ ) = 1; f1 (λ ) = λ − a1 ; f k (λ ) = (λ − a k ) f k −1 (λ ) − bk2−1 f k −2 (λ ), k = 2, n,
atunci f n , f n −1 , ... , f1 , f 0 este un şir Sturm.
Demonstraţie. Evident f 0 (λ ) ≠ 0 , pentru orice λ ∈ R . Fie k ∈ {1, 2 , ..., n − 1} şi
α ∈ R astfel încât f k (α ) = 0 . Atunci f k +1 (α ) = −bk2 f k −1 (α ) . Din Teorema 3
rezultă f k +1 (α ) ≠ 0 şi f k −1 (α ) ≠ 0 , iar din egalitatea precedentă rezultă
f k +1 (α ) f k −1 (α ) < 0 .
Fie x = α1 cea mai mare rădăcină a polinomului fn. Din Teorema 3 şi din
faptul că lim f n ( x) = lim f n−1 ( x) = +∞ rezultă f n −1 (α1 ) > 0 şi mai departe că
x→∞ x→∞
f n (α1 + h) f (α − h)
sgn = 1 şi sgn n 1 = −1
f n−1 (α1 + h) f n−1 (α1 − h)
pentru h > 0 suficient de mic. Dacă x = α2 este următoarea rădăcină a
polinomului fn, vom avea f n −1 (α 2 ) < 0 şi deci, pentru h > 0 suficient de
mic
f (α + h) f (α − h)
sgn n 2 = 1 şi sgn n 2 = −1 ş. a. m.d. ‰
f n−1 (α 2 + h) f n−1 (α 2 − h)

fn

f n -1

O α2 x
α1
Valori şi vectori proprii 123

Teorema 5. Fie J o matrice simetrică tridiagonală ireductibilă şi fie a ∈ R


oarecare. Atunci numărul valorilor proprii ale matricei J, mai mari ca a, este
egal cu S(a).

Afirmaţia rezultă din Teorema 4, Teorema 2 şi din observaţia că dacă


b>α1, unde α1 este cea mai mare rădăcină a polinomului fn, atunci S(b)=0,
deoarece f i (b) > 0, i = 0, n .
Teorema 5 ne permite să determinăm valorile proprii ale unei matrice
simetrice tridiagonale ireductibilă cu metoda înjumătăţirii.
Fie a, b ∈ R astfel încât
a < λn < ... < λ2 < λ1 < b .
Evident S(a) = n şi S(b) = 0. Fie c mijlocul intervalului [a, b].
Dorim să localizăm valoarea proprie λk

a c λk b
Dacă S(c) ≥ k, atunci la dreapta lui c se află k valori proprii, deci
inclusiv λk. În acest caz notăm a1 = c, b1 = b. Dacă dimpotrivă S(c) < k, atunci
λk ∈ (a,c) şi notăm a1 = a, b1 = c.
a +b
Să presupunem că λk ∈ (c,b). Fie c1 = 1 1 . Dacă S(c1) ≥ k, atunci
2
notăm a2 = c1, b2 = b1, iar dacă S(c1) < k, atunci a2 = a1, b2 = c1 etc.
b−a a p + bp
Rezultă că λk∈(ap,bp), unde b p -a p = . Putem alege λ k ≈
2p 2
b−a
şi eroarea care se face va fi mai mică decât .
2p

⎛ 2 1 0⎞
⎜ ⎟
Exemplul 3. Fie A = ⎜ 1 2 1 ⎟ . Atunci r1 = 1, r2 = 2, r3 = 1 ,
⎜ 0 1 2⎟
⎝ ⎠
a = min(2−1, 2−2, 2−1) = 0; b = max(2 + 1, 2 + 2, 2 + 1) = 4.
Din Teorema Gershgorin rezultă că valorile proprii se află în intervalul
[0,4].
Fie λ3 < λ2 < λ1 aceste valori proprii. Să presupunem că vrem să
determinăm valoarea proprie λ1. Notăm cu
a+b
c= = 2.
2
f0(λ) = 1 ; f1(λ) = λ−2 ; f2(λ) = (λ−2)2 −1 ; f3(λ) = (λ−2)3 −2(λ−2)
f0(2) = 1 ; f1(2) = 0 ; f2(2) =−1 ; f3(2) = 0 ; S(2) = 1.
124 Bazele Analizei Numerice

Rezultă că în intervalul [2,4] se află o singură valoare proprie, deci


2+4
λ1 ∈ [ 2,4]. Fie c1 = =3 ,
2
f 0 (3) = 1; f1 (3) = 1; f 2 (3) = 0; f 3 (3) = −1; S (3) = 1.
3+ 4 7
Rezultă λ1 ∈ [3,4]. Fie c2 = = .
2 2
⎛7⎞ ⎛7⎞ 3 ⎛7⎞ 5 ⎛7⎞ 3 7
f 0 ⎜ ⎟ = 1 ; f1 ⎜ ⎟ = ; f 2 ⎜ ⎟ = ; f 3 ⎜ ⎟ = ; S ( ) = 0 .
⎝2⎠ ⎝2⎠ 2 ⎝2⎠ 4 ⎝2⎠ 8 2
7
Aşadar, la dreapta lui nu se află nici o valoare proprie. Rezultă
2
7
λ1 ∈ (3, ) etc.
2

Exerciţii

1. Folosind metoda rotaţiilor a lui Jacobi să se calculeze valorile şi vectorii proprii


⎛1 1 3 ⎞
⎜ ⎟
pentru matricea A = ⎜1 3 1 ⎟ .
⎜3 1 1 ⎟
⎝ ⎠

R. max aij = 3 = a13 , p = 1 , q = 3 . Rezultă că


i< j

a qq − a pp a33 − a11 1 − 1
θ= = = = 0 şi t=1 ,
2a pq 2a13 6

1 1 t 1
cos ϕ = = ; sinϕ = = , iar
1+ t 2 2 1+ t 2 2
Valori şi vectori proprii 125

⎛ 1 1 ⎞
⎜ 0 ⎟
⎜ 2 2⎟
U1 = ⎜ 0 1 0 ⎟ .
⎜ 1 1 ⎟
⎜− 0 ⎟
⎝ 2 2⎠

⎛ 1 1 ⎞ ⎛ 1 1 ⎞
⎜ 0 − ⎟ ⎛ 1 1 3⎞ ⎜ 0 ⎟
(1) T
⎜ 2 2⎟ ⎜ ⎟ ⎜ 2 2⎟
A = U1 ⋅ A ⋅ U1 = ⎜ 0 1 0 ⎟ ⋅ ⎜ 1 3 1⎟ ⋅ ⎜ 0 1 0 ⎟=
⎜ 1 1 ⎟ ⎜ ⎟ ⎜ 1 1 ⎟
⎜ 0 ⎟ ⎝ 3 1 1⎠ ⎜ − 0 ⎟
⎝ 2 2 ⎠ ⎝ 2 2⎠
⎛− 2 0 0 ⎞
⎜ ⎟
=⎜ 0 5 2⎟
⎜ 0 2 4 ⎟⎠

max a (1) = 2 = a 23
(1)
, p = 2 , q = 3 . Rezultă că
i < j ij

a qq − a pp a (1) − a 22
(1)
33 4−5 1 1 1
θ= = = =− şi , t = =−
2a pq (1) 2 2 2 2 2 2
2a 23 θ + sgn θ 1 + θ 2

1 2 t 1
cos ϕ = = ; sinϕ = =− , iar
1+ t 2 3 1+ t2 3

⎛ ⎞
⎜ ⎟
⎜1 0 0 ⎟
⎜ 2 1 ⎟
U2 = ⎜0 − ⎟ .
⎜ 3 3⎟
⎜ 1 2 ⎟
⎜⎜ 0 ⎟
⎝ 3 3 ⎟⎠
126 Bazele Analizei Numerice

⎛ ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟
⎜1 0 0 ⎟ ⎛− 2 0 0 ⎞ ⎜1 0 0 ⎟
( 2) T (1)
⎜ 2 1 ⎟ ⎜ ⎟ ⎜ 2 1 ⎟
A = U 2 ⋅ A ⋅U 2 = ⎜0 ⎟⋅⎜ 0 5 2 ⎟ ⋅ ⎜0 − ⎟=
⎜ 3 3⎟ ⎜ ⎜ 3 3⎟
0 2 4 ⎟⎠ ⎜
⎜ 1 2⎟ ⎝ 1 2 ⎟
⎜⎜ 0 − ⎟
3 ⎟⎠ ⎜⎜ 0 ⎟
3 ⎟⎠
⎝ 3 ⎝ 3

⎛ − 2 0 0⎞
⎜ ⎟
⎜ 0 6 0⎟
⎜ 0 0 3⎟
⎝ ⎠

Deoarece S(A(2)) = 0 am obţinut chiar valorile proprii exacte pentru matricea A .


⎛ 1 1 1 ⎞
⎜ ⎟
⎜ 2 6 3 ⎟
⎜ 2 1 ⎟
V = U1 ⋅ U 2 = ⎜ 0 − ⎟ reprezintă matricea de trecere de la baza în
⎜ 3 3⎟
⎜ 1 1 1 ⎟
⎜− ⎟
⎝ 2 6 3 ⎠
care matricea A este dată ( canonică ) la baza în care A are forma diagonală. Se
ştie de la cursul de Algebră liniară că această bază este dată de coloanele matricei
de trecere . Deci vectorii proprii se obţin ca fiind coloanele matricei de trecere,
astfel:

⎛ 1 ⎞ ⎛ 1 ⎞
⎛ 1 ⎞ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ 6⎟ ⎜ 3 ⎟
⎜ 2 ⎟ ⎜ 2⎟ ⎜ ⎟
1 ⎟
λ1 = −2 , v1 = ⎜ 0 ⎟ , λ 2 = 6 , v 2 = ⎜ ⎟ , λ3 = 3 , v 3 = ⎜ .
⎜ 1 ⎟ ⎜ 3⎟ ⎜ 3 ⎟
⎜− ⎟ ⎜ 1 ⎟ ⎜ 1 ⎟
⎜ 2 ⎟ ⎜ ⎟ ⎜− ⎟
⎝ ⎠ ⎜ 6⎟ ⎜ ⎟
⎝ ⎠ ⎝ 3⎠

2. Folosind metoda Jacobi să se determine valorile proprii aproximative ale


⎛1 2 4 3⎞
⎜ ⎟
⎜2 1 3 5⎟
matricei A = ⎜ .
4 3 1 4⎟
⎜ ⎟
⎜3 5 4 1 ⎟⎠

R. Procedând ca în exerciţiul de mai sus se obţin succesiv:


Valori şi vectori proprii 127

⎛1 0 0 0 ⎞
⎜ ⎟
⎜ 0 0.70711 0 0.70711⎟
U1 = ⎜ ,
0 0 1 0 ⎟
⎜ ⎟
⎜ 0 − 0.70711 0 0.70711⎟⎠

⎛ 1 − 0.70711 4 3.53553 ⎞
⎜ ⎟
⎜ − 0.70711 −4 − 0.70711 0 ⎟
A1 = ⎜ ,
4 − 0.70711 1 4.94975 ⎟
⎜ ⎟
⎜ 3.53553 0 4.94975 6 ⎟⎠

⎛1 0 0 0 ⎞
⎜ ⎟
⎜0 1 0 0 ⎟
U2 = ⎜ ,
0 0 0.85171 0.52401⎟
⎜ ⎟
⎜0 0 − 0.52401 0.85171⎟⎠

⎛ 1 − 0.70711 1.55422 5.10729 ⎞
⎜ ⎟
⎜ − 0.70711 −4 − 0.60225 − 0.37053 ⎟
A2 = ⎜ ⎟ ,
1.55422 − 0.60225 − 2.04527 0
⎜ ⎟
⎜ 5.10729 − 0.37053 0 9.04527 ⎟⎠

⎛ 0.89965 0 0 0.43661⎞
⎜ ⎟
⎜ 0 1 0 0 ⎟
U3 = ⎜ ,
0 0 1 0.52401⎟
⎜ ⎟
⎜ − 0.43661 0 0 0.89965 ⎟⎠

⎛ − 1.4786 − 0.47438 1.39825 0 ⎞


⎜ ⎟
⎜ − 0.47438 −4 − 0.60225 − 0.64207 ⎟
A3 = ⎜ ,
1.39825 − 0.60225 − 2.04527 0.67858 ⎟
⎜ ⎟
⎜ 0 − 0.64207 0.67858 11.52386 ⎟⎠

⎛ 0.63301 0 0.77414 0⎞
⎜ ⎟
⎜ 0 1 0 0⎟
U4 = ⎜ ,
− 0.77414 0 0.63301 0⎟
⎜ ⎟
⎜ 0 0 0 1 ⎟⎠

128 Bazele Analizei Numerice

⎛ − 3.1886 0.16595 0 − 0.52532 ⎞


⎜ ⎟
⎜ 0.16595 −4 − 0.74847 − 0.64207 ⎟
A4 = ⎜ ,
0 − 0.74847 − 3.3526 0.42955 ⎟
⎜ ⎟
⎜ − 0.52532 − 0.64207 0.42955 11.52386 ⎟
⎝ ⎠

şi aşa mai departe se obţine la iteraţia a noua

⎛ 0.1458 0 0 0.98931⎞
⎜ ⎟
⎜ 0 1 0 0 ⎟
U9 = ⎜ ,
0 0 1 0 ⎟
⎜ ⎟
⎜ − 0.98931 0 0 0.1458 ⎟⎠

⎛ − 4.18733 0.01986 − 0.00427 0 ⎞


⎜ ⎟
⎜ 0. 01986 − 0 .21355 0. 00026 0 . 00452 ⎟
A9 = ⎜ , S(A9)=0.02944 ,
− 0.00452 0.00026 11.58733 0.00062 ⎟
⎜ ⎟
⎜ 0 0.00452 0.00062 − 3.18645 ⎟⎠

valorile proprii exacte fiind:

λ1=−3.18646 , λ2=−4.18743 , λ3=−0.21344 , λ4=11.58733 .

3. Să se determine valorile proprii aproximative ale matricei

⎛1 1 1 4⎞
⎜ ⎟
⎜1 1 0 5⎟
A=⎜
1 0 1 4⎟
⎜ ⎟
⎜4 5 4 1 ⎟⎠

folosind metoda Jacobi .

R. Procedând ca în exerciţiul de mai sus se obţine succesiv:

⎛1 0 0 0 ⎞
⎜ ⎟
⎜ 0 0.70711 0 0.70711⎟
U1 = ⎜ ,
0 0 1 0 ⎟
⎜ ⎟
⎜ 0 − 0.70711 0 0.70711⎟⎠

Valori şi vectori proprii 129

⎛ 1 − 2.12132 1 3.53553 ⎞
⎜ ⎟
⎜ − 2.12132 −4 − 2.82843 0 ⎟
A1 = ⎜ ,
1 − 2.82843 1 2.82843 ⎟
⎜ ⎟
⎜ 3.53553 0 2.82843 6 ⎟⎠

⎛ 0.88807 0 0 0.4597 ⎞
⎜ ⎟
⎜ 0 1 0 0 ⎟
U2 = ⎜ ,
0 0 0 0 ⎟
⎜ ⎟
⎜ − 0.4597 0 0 0.88807 ⎟⎠

⎛ − 0.83013 − 1.88389 − 0.41216 0 ⎞
⎜ ⎟
⎜ − 1.88389 −4 − 2.82843 − 0.97517 ⎟
A2 = ⎜ ,
− 0.41216 − 2.82843 1 2.97155 ⎟
⎜ ⎟
⎜ 0 − 0.97517 2.97155 7.83013 ⎟⎠

⎛1 0 0 0 ⎞
⎜ ⎟
⎜0 1 0 0 ⎟
U3 = ⎜ ,
0 0 0.93659 0.35043 ⎟
⎜ ⎟
⎜0 0 − 0.35043 0.93659 ⎟⎠

⎛ − 0.83013 − 1.88389 − 0.38602 − 0.14443 ⎞


⎜ ⎟
⎜ − 1.88389 −4 − 2.30734 − 1.90451 ⎟
A3 = ⎜ ⎟ ,
− 0.38602 − 2.30734 − 0.11183 0
⎜ ⎟
⎜ − 0.14443 − 1.90451 0 8 .94196 ⎟
⎝ ⎠

⎛1 0 0 0⎞
⎜ ⎟
⎜0 0.4217 0.90674 0⎟
U4 = ⎜ ,
0 − 0.90674 0.4217 0⎟
⎜ ⎟
⎜0 0 0 1 ⎟⎠

⎛ − 0.83013 − 0.44441 − 1.87097 − 0.14443 ⎞


⎜ ⎟
⎜ − 0.44441 0.96123 0 − 0.83313 ⎟
A4 = ⎜ ,
− 1.87097 0 − 5.07308 − 1.72689 ⎟
⎜ ⎟
⎜ − 0.14443 − 0.83313 − 1.72689 8..94196 ⎟
⎝ ⎠

şi aşa mai departe se obţine la iteraţia a zecea


130 Bazele Analizei Numerice

⎛ 0.99999 0.005 0 ⎞
⎜ ⎟
⎜ − 0.005 0.99999 0 0⎟
U 10 = ⎜ ,
0 0 1 0⎟
⎜ ⎟
⎜ 0 0 0 1 ⎟⎠

⎛ 9.22995 − 0.02005 − 0.00611 0.02598 ⎞


⎜ ⎟
⎜ − 0.02005 1.01318 0.00089 0 ⎟
A10 = ⎜ , S(A10)=0.05855 ,
− 0.00611 0.00089 − 0.26839 − 0.0252 ⎟
⎜ ⎟
⎜ 0.02598 0 − 0.0252 − 5.97535 ⎟⎠

valorile proprii exacte fiind:

λ1=1.01373 , λ2=−0.26828 , λ3=−5.9755 , λ4=9.23005 .

Să se aducă la forma tridiagonală matricele următoare folosind metoda


Householder.

⎛ 4 1 −1 1⎞
⎜ ⎟
⎜1 5 0 1⎟
4. A=⎜
−1 0 6 0⎟
⎜ ⎟
⎜1 1 0 7 ⎟⎠

4 1
2
R. s= ∑ a1, j =1.73205 , β = =0.21132 ,
j =2 s ( a1,2 + s )

⎛ a 2,1 + s ⎞ ⎛1 + 1.73205 ⎞
⎜ ⎟ ⎜ ⎟
u = ⎜ a3,2 ⎟ = ⎜ −1 ⎟ ,
⎜ ⎟ ⎜ ⎟
⎝ a 4, 2 ⎠ ⎝ 1 ⎠
⎛ − 0.57735 0.57735 − 0.57735 ⎞
~ T ⎜ ⎟
H 1 = I 3 − β ⋅ u ⋅ u = ⎜ 0.57735 0.78867 0.21132 ⎟ ,
⎜ − 0.57735 0.21132 0.78867 ⎟
⎝ ⎠
⎛1 0 0 0 ⎞
⎜ ⎟
⎜ 0 − 0.57735 0.57735 − 0.57735 ⎟
H1 = ⎜ ,
0 0.57735 0.78867 0.21132 ⎟
⎜ ⎟
⎜ 0 − 0.57735 0.21132 0.78867 ⎟
⎝ ⎠
Valori şi vectori proprii 131

⎛ 4 − 0.57735 0 0 ⎞
⎜ ⎟
T ⎜ − 0.57735 − 5.33333 2.13076 4.79743 ⎟
A1 = H 1 ⋅ A ⋅ H 1 = ⎜ ;
0 2.13076 5.95534 0.83333 ⎟
⎜ ⎟
⎜ 0 4.79743 0.83333 5.37799 ⎟⎠

4 1
2
s= ∑ a 2, j = 0.52493 , β = =0.02581 ,
j =3 s ( a1,2 + s )
⎛ a1 + s ⎞ ⎛ 2.13076 + 0.52493⎞
u = ⎜ 3,21 ⎟=⎜ ⎟⎟ ,
⎜ a ⎟ ⎜⎝ 4.79743 ⎠
⎝ 4, 2 ⎠
~ ⎛ − 0.40591 − 0.91391⎞
H 2 = I 2 − β ⋅ u ⋅ u T = ⎜⎜ ⎟⎟ ,
⎝ − 0.91391 0.40591 ⎠

⎛1 0 0 0 ⎞
⎜ ⎟
⎜0 1 0 0 ⎟
H2 = ⎜ ,
0 0 − 0.40591 − 0.91391⎟
⎜ ⎟
⎜0 0 − 0.91391 0.40591 ⎟⎠

⎛ 4 − 0.57735 0 0 ⎞
⎜ ⎟
T ⎜ − 0.57735 − 5.33333 − 5.24933 0 ⎟
A2 = H 2 ⋅ A1 ⋅ H 2 = ⎜ .
0 − 5.24933 6.09139 0.77290 ⎟
⎜ ⎟
⎜ 0 0 0.77290 5.24193 ⎟⎠

⎛5 1 1 2⎞
⎜ ⎟
⎜1 7 −1 1⎟
5. A=⎜
1 −1 6 1⎟
⎜ ⎟
⎜2 1 1 8 ⎟⎠

4 1
2
R. s= ∑ a1, j =2.44948 , β = =0.11835 ,
j =2 s ( a1,2 + s )
132 Bazele Analizei Numerice

⎛ a 2,1 + s ⎞ ⎛1 + 1.73205 ⎞
⎜ ⎟ ⎜ ⎟
u = ⎜ a3,2 ⎟ = ⎜ 1 ⎟ ,
⎜ ⎟ ⎜ ⎟
⎝ a 4, 2 ⎠ ⎝ 2 ⎠
⎛ − 0.40824 − 0.40824 − 0.81649 ⎞
~ T ⎜ ⎟
H 1 = I 3 − β ⋅ u ⋅ u = ⎜ − 0.40824 0.88164 − 0.23670 ⎟ ,
⎜ − 0.81649 − 0.23670 0.52659 ⎟
⎝ ⎠
⎛1 0 0 0 ⎞
⎜ ⎟
⎜ 0 − 0.57735 0.57735 − 0.57735 ⎟
H1 = ⎜ ,
0 0.57735 0.78867 0.21132 ⎟
⎜ ⎟
⎜ 0 − 0.57735 0.21132 0.78867 ⎟
⎝ ⎠

⎛ 5 0.81649 0 0 ⎞
⎜ ⎟
T ⎜ − 0.57735 5.83333 − 1.76598 4.63299 ⎟
A1 = H 1 ⋅ A ⋅ H 1 = ⎜ ;
0 − 1.76598 6.77447 1.20585 ⎟
⎜ ⎟
⎜ 0 4.63299 1.20585 5.72552 ⎟⎠

4 1
2
s= ∑ a 2, j = 4.95815 , β = =0.02999 ,
j =3 s ( a1,2 + s )
⎛ a1 + s ⎞ ⎛ − 1.76598 − 4.95815 ⎞
u = ⎜ 3,21 ⎟=⎜ ⎟⎟ ,
⎜ a ⎟ ⎜⎝ 4.63299 ⎠
⎝ 4,2 ⎠
~ ⎛ − 0.35617 0.93441 ⎞
H 2 = I 2 − β ⋅ u ⋅ u T = ⎜⎜ ⎟⎟ ,
⎝ 0.93441 0.35617 ⎠

⎛1 0 0 0 ⎞
⎜ ⎟
⎜0 1 0 0 ⎟
H2 = ⎜ ,
0 0 − 0.35617 0.93441 ⎟
⎜ ⎟
⎜0 0 0.93441 0.35617 ⎟⎠

⎛ 5 0.81649 0 0 ⎞
⎜ ⎟
T ⎜ 0.81649 5.83333 4.95815 0 ⎟
A2 = H 2 ⋅ A1 ⋅ H 2 = ⎜ .
0 4.95815 5.05593 0.55078 ⎟
⎜ ⎟
⎜ 0 0 0.55078 7.44406 ⎟⎠

6. Să se găsească cea mai mare valoare proprie în valoare absolută, pentru matricea
Valori şi vectori proprii 133

⎛4 1 0 0⎞
⎜ ⎟
⎜1 5 −1 0⎟
A=⎜
0 −1 6 1⎟
⎜ ⎟
⎜0 0 1 7 ⎟⎠

folosind polinoamele Sturm.

R. r1 = 2 , r2 = 2 , r3 = 2 , r4 = 1 , iar rădăcinile polinomului caracteristic se află


în intervalul [a, b] , unde :

a = min (aii − ri ) = min{ 4−2, 5−2, 6−2, 7−1 } = 3 şi


1≤i ≤4

b = max (aii + ri ) = max{ 4+2, 5+2, 6+2, 7+1 } = 8 .


1≤i ≤4

Polinoamele Sturm pentru această matrice sunt:

f0(λ) = 1 , f1(λ) = λ −a11 = λ−4 ,

2
f2(λ) = (λ −a22) f1(λ)− a12 f0(λ) = (λ −5) (λ −4)− 1 ,

2
f3(λ) = (λ −a33) f2(λ)− a 23 f1(λ) = (λ −6)f2(λ) – f1(λ) ,

2
f4(λ) = (λ −a44) f3(λ)− a34 f2(λ) = (λ −7)f3(λ) – f2(λ) .

Schimbările de semn în şirul Sturm de mai sus :

f0(a) = 1 , f1(a) = −1 , f2(a) = 1 , f3(a) = −2 , f4(a) = 7 ,

arată că la dreapta lui a se află 4 rădăcini ale ecuaţiei caracteristice,

f0(b) = 1 , f1(b) = 4 , f2(b) = 11 , f3(b) = 18 , f4(b) = 7 ,

iar la dreapta lui b nu se află nici o rădăcină a ecuaţiei caracteristice.

a+b
Luând c = , f0(c) = 1, f1(c) = 1.5 , f2(c) = −0.25, f3(c) = −1.375,
2

f4(c) = 2.3125 ,

la dreapta lui c se află 2 rădăcini ale ecuaţiei caracteristice şi atunci a := c;


134 Bazele Analizei Numerice

a+b
c= , f0(c) = 1, f1(c) = 2.75 , f2(c) = 3.8125, f3(c) = 0.10938,
2

f4(c) = −3.83984 ,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice , a := c ;

a+b
c= , f0(c) = 1, f1(c) = 3.375 , f2(c) = 7.01563, f3(c) = 6.27148,
2

f4(c) = −4.66382 ,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice , a := c ;

a+b
c= , f0(c) = 1, f1(c) = 3.6875 , f2(c) = 8.91016, f3(c) = 11.3439,
2

f4(c) = −1.10814 ,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice , a := c ;

a+b
c= , f0(c) = 1, f1(c) = 3.84375 , f2(c) = 9.93066, f3(c) = 14.46591,
2

f4(c) = 2.27495,

la dreapta lui c nu se află nici o rădăcină a ecuaţiei caracteristice , b := c ;

a+b
c= , f0(c) = 1, f1(c) = 3.76563 , f2(c) = 9.41431, f3(c) = 12.85651,
2

f4(c) = 0.42896,

la dreapta lui c nu se află nici o rădăcină a ecuaţiei caracteristice, ş. a. m. d.


La iteraţia a 16−a se obţine aproximaţia c = 7.74529, iar P(c) = 0.00023 , P(λ)
fiind polinomul caracteristic.

7. Să se găsească cea de−a doua valoare proprie pentru matricea

( |λ1|>|λ2|>|λ3|>|λ4| )
Valori şi vectori proprii 135

⎛5 2 0 0⎞
⎜ ⎟
⎜2 6 1 0⎟
A=⎜
0 1 6 2⎟
⎜ ⎟
⎜0 0 2 8 ⎟⎠

folosind polinoamele Sturm.

R. r1 = 2 , r2 = 3 , r3 = 3 , r4 = 2 , iar rădăcinile polinomului caracteristic se află


în intervalul [a, b] , unde :

a = min (aii − ri ) = min{ 5−2, 6−3, 6−3, 8−2 } = 3 şi


1≤i ≤4

b = max (aii + ri ) = max{ 5+2, 6+3, 6+3, 8+2 } = 10 .


1≤i ≤4

Polinoamele Sturm pentru această matrice sunt:

f0(λ) = 1 , f1(λ) = λ −a11 = λ−5 ,

2
f2(λ) = (λ −a22) f1(λ)− a12 f0(λ) = (λ −6) (λ −5)− 4 ,

2
f3(λ) = (λ −a33) f2(λ)− a 23 f1(λ) = (λ −6)f2(λ) – f1(λ) ,

2
f4(λ) = (λ −a44) f3(λ)− a34 f2(λ) = (λ −8)f3(λ) – 4f2(λ) .

Schimbările de semn în şirul Sturm de mai sus :

f0(a) = 1 , f1(a) = −2 , f2(a) = 2 , f3(a) = −4 , f4(a) = 12 ,

arată că la dreapta lui a se află 4 rădăcini ale ecuaţiei caracteristice,

f0(b) = 1 , f1(b) = 5 , f2(b) = 16 , f3(b) = 59 , f4(b) = 54 ,

iar la dreapta lui b nu se află nici o rădăcină a ecuaţiei caracteristice.


Luând

a+b
c= , f0(c) = 1, f1(c) = 1.5 , f2(c) = −3.25, f3(c) = 17.6875,
2

f4(c) = 2.3125 ,
136 Bazele Analizei Numerice

la dreapta lui c se află 2 rădăcini ale ecuaţiei caracteristice şi atunci a := c;

a+b
c= , f0(c) = 1, f1(c) = 3.25 , f2(c) = 3.3125, f3(c) = 4.20312,
2

f4(c) = −12.19921 ,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice , b := c ;

a+b
c= , f0(c) = 1, f1(c) = 2.375 , f2(c) =−0.73437, f3(c) = −3.38476,
2

f4(c) = 5.05297 ,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice , a := c ;

a+b
c= , f0(c) = 1, f1(c) = 2.8125 , f2(c) = 1.09765, f3(c) = − 0.82299,
2

f4(c) = − 4.23631,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice , b := c ;

a+b
c= , f0(c) = 1, f1(c) = 2.59375 , f2(c) = 0.13378 , f3(c)= − 2.38052,
2

f4(c) = 0.43193,

la dreapta lui c se află două rădăcini ale ecuaţiei caracteristice , a := c ;

a+b
c= , f0(c) = 1, f1(c) = 2.70312 , f2(c) = 0.60375 , f3(c) = − 1.67484,
2

f4(c) = −1.91781,

la dreapta lui c se află o rădăcină a ecuaţiei caracteristice, ş. a. m. d.


La iteraţia a 20−a se obţine aproximaţia c = 7.61384 , iar P(c) = 0.00001 , P(λ)
fiind polinomul caracteristic.
Interpolarea funcţiilor 137

4. Interpolarea funcţiilor

Fie f : [a,b] → R şi fie x0, x1, ..., xn , (n+1) puncte distincte din
intervalul [a,b] , numite noduri.
Problema interpolării funcţiei f în nodurile xi, i = 0, n , constă în determinarea unei
funcţii g : [a,b] → R, dintr−o clasă de funcţii cunoscută, cu proprietatea
g(xi)=f(xi), i = 0, n .
Pusă sub această formă generală problema poate să nu aibă soluţie sau să
aibă o infinitate de soluţii.
Cea mai utilizată clasă de funcţii de interpolare este clasa polinoamelor,
datorită uşurinţei cu care se integrează şi se derivează.
Interpolarea funcţiilor prezintă o importanţă deosebită pentru cazul când
funcţia nu este definită printr−o relaţie analitică, ci printr−un tablou de valori, ce
reprezintă, de exemplu, rezultatele unei experienţe. Chiar şi atunci când funcţia este
dată printr−o relaţie analitică, dar această relaţie este complicată se poate alege
interpolarea în locul calculului direct.

§4.1. Polinomul de interpolare al lui Lagrange

Teorema 1. Fie f : [a,b] → R şi x0, x1, ..., xn , (n+1) noduri din intervalul [a,b].
Atunci există un polinom unic Pn, de gradul n, care interpolează funcţia f în
nodurile xi, i = 0, n ( f(xi)=Pn(xi) , i = 0, n ). Acest polinom se numeşte polinomul
de interpolare al lui Lagrange.
Demonstraţie.
Căutăm un polinom Pn sub forma următoare:
Pn(x)=L0(x) ⋅f(x0)+ L1(x) ⋅f(x1)+...+ Ln(x) ⋅f(xn),
unde Li sunt polinoame de gradul n ce urmează să fie determinate. Deoarece
dorim ca Pn(xi)=f(xi), vom pune condiţiile:
138 Bazele Analizei Numerice

⎧ 1 dacã j=i
Li ( x j ) = δ ij = ⎨ .
⎩0 dacã j ≠ i
Deoarece Li(xj)=0 pentru i≠j , rezultă că Li admite rădăcinile
x0, x1, ..., xi−1, xi+1,..., xn.
Aşadar,
Li(x)=ai(x−x0)...(x−xi−1)(x−xi+1)...(x−xn).
Cum Li(xi)=1, rezultă
1
ai = .
(xi − x0 )...(xi − xi −1 )(xi − xi +1 )...(xi − xn )
În concluzie avem
n
Pn ( x) = ∑ Li ( x) f ( xi ) (1)
i =0
unde
n (x − x j )
Li ( x) = ∏ . (2)
j =0 ( xi − xj)
j ≠i

Evident polinomul (1) are gradul n şi are proprietatea Pn(xi)=f(xi) , i = 0, n .


Fie Qn un alt polinom de gradul n cu proprietatea Qn(xi)=f(xi), i = 0, n şi fie
R=Pn−Qn. Deoarece gradR≤ n şi R(xi)=0, i = 0, n rezultă că R este polinom
identic nul, deci că Pn=Qn. ‰

Exemplu. Fie nodurile x0=−1, x1=1, şi x2=2 şi f(x0)=2, f(x1)=f(x2)=1. Atunci


P2 ( x) =
(x − 1)(x − 2) 2 + (x + 1)(x − 2)1 + (x + 1)(x − 1) 1 .
(− 1 − 1)(− 1 − 2) (1 + 1)(1 − 2) (2 + 1)(− 2 − 1)
1
(
Efectuând calculele obţinem P2 ( x) = x 2 − 3x + 8 .
6
)
În continuare vom nota eroarea în fiecare punct cu
E(f;x)=f(x)−Pn(x) (3)
Evident E(f;xi)=0, i = 0, n . Introducem de asemenea notaţia:
n
U n+1 ( x) = ∏ (x − xi ) (4)
i =0

Teorema 2. Dacă f∈C(n+1)[a,b] , atunci pentru orice x∈[a,b], există ξx∈(a,b)


astfel încât
f ( n +1) (ξ x )
E ( f ; x) = U ( x) (5)
(n + 1)! n+1
Interpolarea funcţiilor 139

Demonstraţie.
Considerăm funcţia auxiliară
E ( f ; x)
g (t ) = f (t ) − Pn (t ) − U n+1 (t ), t ∈ [a,b], x ≠ xi
U n+1 ( x)
Observăm că g se anulează în (n+2) puncte distincte x0, x1,..., xn, x. Din teorema
lui Rolle rezultă că există ξx∈(a,b) astfel încât g(n+1)(ξx)=0.
Cum
g (n+1) (t ) = f (n+1) (t ) −
E( f ; x)
(n +1)!
Un+1(x)
rezultă
f (n+1) (ξ x )
E( f ; x) = U ( x) . ‰
(n + 1)! n+1
Corolar. Dacă există M>0 astfel încât ⏐f (n+1)(x)⏐≤ M pentru orice x∈[a,b],
atunci:
M
E ( f ; x) ≤ U n+1 ( x) , x ∈ [a,b ] .
(n + 1)!

Exemplu. Fie funcţia f(x)=ln x şi nodurile 0.4; 0.5; 0.7; 0.8. Evaluăm eroarea în
punctul x=0.6.
U4(0.6)=(0.2)(0.1)(−0.1)(−0.2)=0.0004 .
6 6
f IV (x) = − ≤ ≅ 234 .4 , x ∈[0.4; 0.8] .
4
x (0,4)4
Rezultă
1
E( f ; 0.6) ≤ 234.4⋅ 0.0004 ≅ 0.0039 ,
24
acest număr fiind doar un majorant al erorii.
Dacă folosim următoarele valori în noduri

X 0.4 0.5 0.7 0.8


f(x) −0.916291 −0.693147 −0.356675 −0.223144

şi calculăm polinomul lui Lagrange obţinem: P3(0.6)=−0.509975 .


Pe de altă parte ln(0.6)=−0.510826 . Rezultă că E(f; 0.6)=−0.000851 , ceea ce
confirmă afirmaţia de mai sus.

Observaţia 1. Dacă f=Q este un polinom de grad cel mult n, atunci E(f;x)=0,
oricare x∈[a,b].
Afirmaţia rezultă din Teorema 2 deoarece, în acest caz f (n+1)(x)=0 .
140 Bazele Analizei Numerice

Observaţia 2. E(f+g;x)=E(f;x)+E(g;x)
Într−adevăr, dacă Pnf este polinomul de interpolare pentru f şi Png este
polinomul de interpolare pentru g , atunci Pnf + Png este polinomul de interpolare
pentru f+g şi deci
E ( f + g ; x ) = f ( x ) + g ( x ) − Pnf ( x ) − Png ( x ) = E ( f ; x ) + E ( g ; x ) .
În continuare vom presupune că nodurile sunt echidistante, deci că
xi=x0+i⋅h, i = 0, n , unde
x −x
h= n 0 . (6)
n
Considerăm de asemenea schimbarea de variabilă
x=x0+th (7)
Înlocuind (6) şi (7) în (2) obţinem:
~
Li (t ) = Li ( x0 + th) = ∏
n
(t − j )
j =0 (i − j )
j ≠i
Folosind notaţia:
n
π n+1 (t ) = t (t − 1)(t − 2)...(t − n) = ∏ (t − j ) (8)
j =0
obţinem:
~ (−1) n−i π n+1 (t ) (−1) n−i i π n+1 (t )
Li (t ) = = Cn
i!(n − i )! t − i n! t −i
Obţinem astfel expresia polinomului lui Lagrange pentru noduri
echidistante
~ π (t ) n f ( xi )
Pn (t ) = n +1 ∑ (−1) n −i Cni . (9)
n! i =0 t −i
Eroarea devine:
~ π (t )
E (t ) = n+1 h n+1 f ( n+1) (ξ t ) . (10)
(n + 1)!
În continuare considerăm un şir de diviziuni {∆n} ale intervalului [a,b] cu
lim ∆ n = 0, ∆ n : a = x (n) ( n) ( n)
0 < x1 < ... < xn = b .
n →∞
Notăm cu Pn − polinomul lui Lagrange care interpolează funcţia f în nodurile
xi( n) ,
i = 0,n . Dacă n este mare, Pn coincide cu f într−un număr mare de
noduri, deci ne aşteptăm ca eroarea
En(f;x)=f(x)−Pn(x)
să fie mică, eventual ca lim En ( f ; x) = 0 .
n→∞
Interpolarea funcţiilor 141

Ajungem astfel la următoarea întrebare:


În ce condiţii şirul de polinoame { Pn } converge punctual (eventual uniform) la
funcţia f pe intervalul [a,b] ?
În anul 1912, S. N. Bernstein a arătat că pentru funcţia f(x)=⏐x⏐,
2i
x∈[−1,1], dacă alegem nodurile echidistante xi( n) = −1 + , i = 0, n , atunci
n
lim Pn ( x) ≠ f ( x) dacă x∉{−1,0,1}.
n→∞
S−ar putea crede că acest lucru se datorează faptului că funcţia modul nu
este derivabilă în origine. Următorul exemplu dat de C. Runge în 1901 arată că
există funcţii indefinit derivabile pentru care {Pn} nu converge la f .
1
Fie f ( x) = , x ∈ [- 5,5] .
1 + x2
Evident f∈C∞[−5,5]. Fie nodurile echidistante
10
xi = −5 + i , i=0 ,n .
n
Se poate arăta că lim Pn ( x) = f ( x) dacă ⏐x⏐≤c şi lim Pn ( x) ≠ f ( x) dacă
n→∞ n→∞
⏐x⏐>c, unde c ≅ 3.6334 este o rădăcină a ecuaţiei:
(5+x)ln(5+x)+(5−x)ln(5−x)−5ln26−2arctg5=0.
În anul 1914, S. N. Bernstein a arătat că pentru orice sistem de noduri
{xi( n ) }, i=0,n din intervalul [a,b] , dat dinainte, există o funcţie continuă
f : [a,b] → R astfel încât şirul polinoamelor lui Lagrange {Pn} care interpolează
funcţia f în aceste noduri nu converge uniform la f pe [a,b].
Există totuşi şi situaţii când convergenţa are loc. Se poate demonstra
următoarea teoremă:

Teorema 3. Dacă f∈C∞( R) şi se dezvoltă în serie Taylor pe R, atunci pentru orice


sistem de noduri distincte şi echidistante {xi( n ) } , i=0 ,n din [a,b] , şirul
polinoamelor { Pn } care interpolează funcţia f în aceste noduri converge uniform
la f pe [a,b].
Se pune întrebarea dacă interpolarea cu polinoame Lagrange este utilă în
practică, din moment ce aşa cum am văzut, în general şirul polinoamelor de
interpolare { Pn } nu converge la f.
Răspunsul este că interpolarea Lagrange este utilă. Se constată în practică
faptul că pentru un punct α∈[a,b], eroarea f (α ) − Pn (α ) scade până la un
punct, pe măsură ce n creşte, şi deci, pentru n relativ mic, Pn(α) aproximează
acceptabil valoarea f(α). Pentru valori mari ale lui n, interpolarea Lagrange nu
este recomandată.
Din cele prezentate până acum, rezultă că şirul polinoamelor de interpolare
asociate unei funcţii continue nu converge uniform, în mod necesar, la această
142 Bazele Analizei Numerice

funcţie. Se pune întrebarea dacă o funcţie continuă poate fi aproximată uniform cu


polinoame. Răspunsul a fost dat de K. Weierstrass în anul 1885.

Teorema 4. Fie f : [a,b] → R continuă. Atunci, pentru orice ε > 0, există un


polinom Qε astfel încât
f − Qε = sup{ f ( x) − Qε ( x) ; x ∈ [a, b] } < ε .
1
Evident, dacă luăm ε = , rezultă că există un şir de polinoame {Qn} care
n
converge uniform pe [a,b] la funcţia f. Din teorema lui Weierstrass rezultă că
polinoamele algebrice pe [a,b] sunt, în raport cu funcţiile continue pe [a,b] , în
aceeaşi relaţie ca numerele raţionale Q faţă de numerele reale R.
Teorema lui Weierstrass este extrem de importantă în analiza matematică,
în general, şi în analiza numerică, în special. Dintre numeroasele demonstraţii date
acestei teoreme, cea mai cunoscută este demonstraţia dată de S. N. Bernstein, în
anul 1912. Bernstein a arătat cum se poate construi şirul de polinoame care
aproximează funcţia f şi anume:
n
⎛k⎞
Bn ( x) = ∑ Cnk (1 − x) n −k x k f ⎜ ⎟ , x ∈ [0,1] .
k =0 ⎝n⎠
Acest şir de polinoame, care se numesc polinoame Bernstein, au
u
proprietatea Bn ⎯⎯→ f pe [0,1]. Trecerea de la [0,1] la [a,b] se face cu
uşurinţă printr−o schimbare de variabilă. Evident, polinoamele Bernstein nu sunt
polinoame de interpolare. Din păcate, convergenţa şirului { Bn } către f este
destul de înceată, şi din această cauză, în practică, polinoamele Bernstein nu se
folosesc la aproximarea directă a funcţiilor. Teorema lui Weierstrass este
importantă prin implicaţiile sale teoretice, dar şi practice, aşa cum vom vedea, de
exemplu, la integrarea numerică.

§4.2. Interpolarea iterativă. Metoda Aitken

În acest paragraf vom nota polinomul lui Lagrange care interpolează


funcţia f în nodurile xi, i = 0, n cu Pn(x;x0,x1,...,xn). Evident,
P0(x; x0) = f(x0).

Teorema 1. Are loc următoare relaţie de recurenţă:


1 Pn−1 ( x; x0 , x1,..., xn−2 , xn−1 ) xn−1 − x
Pn ( x; x0 , x1 ,..., xn ) = .
xn − xn−1 Pn−1 ( x; x0 , x1 ,..., xn−2 , xn ) xn − x
Demonstraţie.
Fie
Interpolarea funcţiilor 143

1 Pn−1 ( x; x0 , x1,..., xn−2 , xn−1 ) xn−1 − x


Q(x)= .
xn − xn−1 Pn−1 ( x; x0 , x1,..., xn−2 , xn ) xn − x
Observăm că pentru orice i = 0, n − 2 avem
1 f ( xi ) xn−1 − x
Q( xi ) = = f ( xi ) .
xn − xn−1 f ( xi ) xn − x
În continuare, avem:
1 f ( xn−1 ) 0
Q( xn−1 ) = = f ( xn−1 ) ,
xn − xn−1 Pn−1 ( xn−1; x0 ,..., xn−2 , xn ) xn − xn−1
1 Pn−1 ( xn ; x0 ,..., xn−2 , xn−1 ) xn−1 − xn
Q ( xn ) = = f ( xn ) .
xn − xn−1 f ( xn ) 0
Aşadar, Q este un polinom de gradul n care interpolează funcţia f în
nodurile xi, i = 0, n . Din unicitatea polinomului de interpolare al lui Lagrange,
rezultă că Q=Pn.
Metoda Aitken este bine ilustrată de următorul tabel:
x0 x0−α f(x0)
x1 x1−α f(x1) P1(α;x0,x1)
x2 x2−α f(x2) P1(α;x0,x2) P2(α;x0,x1,x2)
x3 x3−α f(x3) P1(α;x0,x3) P2(α;x0,x1,x3) P3(α;x0,x1,x2,x3)
M M M M M M O
xn xn−α f(xn) P1(α;x0,xn) P2(α;x0,x1,xn) P3(α;x0,x1,x2,xn) K Pn(α;x0,x1,...,xn)

Algoritmul de interpolare iterativă ( metoda Aitken)


Pentru i := 1 , n execută
yi := f(xi) , di := xi − α ;
sfârşit pentru i ;
Pentru i := 2 , n execută
Pentru j := i , n execută
yi −1d j − y j d i −1
y j :=
x j − xi −1
sfârşit pentru i
sfârşit pentru j .
144 Bazele Analizei Numerice

§4.3. Polinoame Cebîşev

Polinoamele Cebîşev sunt definite pe intervalul [−1,1] prin relaţia:


Tn(x) = cos(n⋅arccos(x)) . (1)
Deoarece
Tn+1(x)+Tn−1(x)=cos[(n+1)arccosx]+ cos[(n−1)arccosx]=2xcos(n⋅arccosx),
rezultă următoarea relaţie de recurenţă:
Tn+1(x)=2xTn(x)−Tn−1(x), n ≥1 (2)
Cum
T0(x)=1 şi T1(x)=x,
din (2) rezultă
T2(x)=2x2−1, T3(x)=4x3−3x, T4(x)=8x4−8x2+1, T5(x)=16x5−20x3+5x etc.
Observăm că Tn(x)=2n−1xn+...
Dacă Tn(x)=0, atunci
π
n⋅arccos(x)=(2k+1) ,
2
de unde rezultă
π
xk=cos(2k+1) , k = 0, n-1 . (3)
2n
Aşadar, polinomul Tn are n rădăcini reale distincte, date de formula (3).
Pe de altă parte, avem
sin(n ⋅ arccos(x))
Tn′ ( x) = n ⋅ .
1 − x2
Dacă Tn′ (x) =0, atunci n⋅arccos(x)=kπ , şi deci
⎛ kπ ⎞
yk = cos⎜ ⎟, k = 1, n − 1 (4)
⎝ n ⎠
sunt zerourile derivatei Tn′ . Se observă că rădăcinile derivatei Tn′ separă
rădăcinile polinomului Tn. Într−adevăr,
π π π
(2k + 1) ⋅ < (k + 1) ⋅ < (2k + 3) ⋅ ,
2n n 2n
de unde rezultă
π π π
xk=cos(2k+1) > yk +1 = cos(k + 1) > xk +1 = cos(2k + 3) .
2n n 2n
Constatăm de asemenea că
⎡ ⎛ ⎛ kπ ⎞ ⎞⎤
⎟ ⎟⎟⎥ = cos (kπ ) = (−1) .
k
Tn ( y k ) = cos ⎢n ⋅ arccos ⎜⎜ cos ⎜
⎣ ⎝ ⎝ n ⎠ ⎠⎦
Interpolarea funcţiilor 145

Cum ⏐Tn(x)⏐≤1, x∈[−1,1], rezultă că yk, k = 1, n − 1 , sunt puncte de extrem


local pentru Tn. Pe de altă parte, avem Tn(−1)=(−1)n şi Tn(1)=1.
Aşadar, Tn are (n+1) puncte de extrem local şi îşi schimbă semnul de n
ori pe intervalul [−1,1].
Prezentăm în continuare tabelul de variaţie pentru polinoamele T3 şi T4 .
3 1 1 3
− −
x −1 2 2 0 2 2 1
T3′ + 0 − 0 +
T3 −1 Ê 0 Ê 1 Ì 0 Ì −1 Ê 0 Ê 1

1 1

x −1 2 0 2 1
T4′ − 0 + 0 − 0 +
T4 1 Ì −1 Ê 1 Ì −1 Ê 1

Următorul rezultat datorat lui Cebâşev pune în evidenţă o proprietate


remarcabilă a zerourilor polinoamelor Cebîşev.

π
Teorema 1. Fie xk = (2k + 1) , k = 0, n , zerourile polinomului Cebîşev Tn+1.
2n
Atunci, oricare ar fi (n+1) puncte distincte, zi, i = 0, n din intervalul [−1,1],
avem
sup ( x − x0 )( x − x1 )...( x − xn ) ≤ sup ( x − z0 )( x − z1 )...( x − z n ) .
x∈[−1,1] x∈[−1,1]
Demonstraţie. Deoarece
Tn+1(x)=2n(x−x0)...(x−xn) ,
rezultă că trebuie sa arătăm că
1
sup T ( x) ≤ sup ( x − z0 )( x − z1 )...( x − z n ) , (∀) zi ∈ [− 1,1] .
n n +1
x∈[−1,1] 2 x∈[−1,1]
Presupunem prin absurd că există z 0 , z1 ,..., z n ∈ [− 1,1] astfel încât
1 1
sup qn +1 ( x) < sup T ( x) = (5)
n n +1
x∈[−1,1] x∈[−1,1] 2 2n
unde
qn +1 ( x ) = ( x − z0 )( x − z1 )...( x − z n ) . (6)
Fie
1
rn ( x) = Tn +1 ( x) − qn +1 ( x), x ∈ [− 1,1] .
2n
146 Bazele Analizei Numerice

Evident, rn este un polinom de grad cel mult n. Observăm ca rn are


acelaşi semn cu Tn+1 în cele (n+2) puncte de extrem ale polinomului Tn+1.
Într−adevăr, fie yk un asemenea punct. Presupunem că Tn+1(yk)=1. Dacă rn(yk)≤0,
atunci
1 1
qn +1 ( y k ) = − rn ( y k ) ≥ ,
n
2 2n
ceea ce contrazice relaţia (5). Dacă Tn+1(yk)=−1 şi presupunem că rn(yk)>0, atunci
1 1
− qn +1 ( yk ) = rn ( yk ) + > ,
n
2 2n
ceea ce contrazice relaţia (5). Aşadar, rn îşi schimbă semnul de (n+2) ori, deci
rn are (n+1) rădăcini. Acest lucru nu este posibil decât dacă rn(x)=0, (∀)x∈[−1,1].
1
Rezultă atunci că Tn +1 = qn +1 , ceea ce contrazice relaţia (5). ‰
2n
Revenim acum la evaluarea erorii în interpolarea Lagrange.
Fie (n+1) noduri xi în [−1,1] şi f∈C(n+1)[−1,1]. Dacă Pn este
polinomul lui Lagrange care interpolează funcţia f în nodurile xi, i = 0, n ,
atunci
f ( n+1) (ξ x )
f ( x) − Pn ( x) = ⋅ ( x − x0 )...( x − xn ) (7)
(n + 1)!
(vezi Capitolul 4, §1, Teorema 2).
Din (7) rezultă că
f ( n+1)
f − Pn ∞ = sup f ( x) − Pn ( x) ≤ ∞ sup ( x − x )...( x − x ) .
0 n
−1≤ x≤1 ( n + 1)! −1≤ x≤1
Aşadar, eroarea f − Pn ∞ va fi minimă dacă
sup ( x − x0 )...( x − xn )
−1≤ x≤1
va fi minimă. Pe de altă parte, din Teorema 1 rezultă că acest lucru se întâmplă
dacă alegem nodurile
π
xi = cos(2i + 1) , i = 0, n
2(n + 1)
(adică xi sunt zerourile polinomului Cebîşev Tn+1 ). Din cele de mai sus rezultă că
are loc următoarea teoremă:

Teorema 2. Fie Pn* polinomul lui Lagrange care interpolează funcţia f în nodurile
π
xi = cos(2i + 1) , i = 0, n .
2(n + 1)
Interpolarea funcţiilor 147

1
Atunci f − Pn* ≤ . f ( n +1)
Pentru acele funcţii care au
∞ n ∞
2 (n + 1)!
1 u
proprietatea că lim f (n+1) = 0 va rezulta că şirul Pn* ⎯⎯→ f .
n
n→∞ 2 (n + 1)! ∞

§4.4. Funcţii spline cubice

Fie
∆: a=x0<x1<...<xi−1<xi<...<xn=b
o diviziune oarecare a intervalului [a,b].
Se numeşte funcţie spline cubică o funcţie
s : [a,b] → R
cu următoarele proprietăţi:
(i) Restricţia lui s la fiecare subinterval [xi−1, xi] este un polinom de grad
cel mult trei;
(ii) s, s', s" sunt continue pe [a,b].
În continuare ne punem problema interpolării unei funcţii f : [a,b] → R
cu ajutorul unei funcţii spline cubice. Cu alte cuvinte, ne punem problema să găsim
o funcţie spline cubică s, astfel încât
s(xi) = f(xi) , i = 0, n .
Deoarece restricţia lui s la subintervalele [xi−1,xi] este un polinom de
grad cel mult trei, rezultă că
s(x)=ai+bix+cix2+dix3
pentru orice x∈[xi−1, xi]. Determinarea funcţiei s presupune deci determinarea a
4n coeficienţi (ai , bi , ci , di).
Să evaluăm acum de câte condiţii dispunem. Faptul că
s(xi) = f(xi), i = 0, n
ne asigură (n+1) condiţii. Pe de altă parte, din continuitatea lui s şi a derivatelor
s' şi s", rezultă:
s(k)(xi−0)= s(k)(xi+0) , i =1, n −1 , k = 0,2 ,
care ne asigură 3(n−1) condiţii. În total, dispunem deci de (4n−2) condiţii, cu
două mai puţin decât numărul coeficienţilor ce urmează a fi determinaţi.
Dacă se cunosc derivatele f'(a) şi f'(b), atunci adăugăm condiţiile
s'(a) = f'(a) şi s'(b) = f'(b).
Dacă nu se cunosc aceste derivate, atunci se aproximează
f'(a)≅ y 0′ şi f'(b)= y 0′
şi se pun condiţiile s'(a) = y 0′ şi s'(b) = y n′ . Dacă nu avem nici o informaţie
despre f'(a) şi f'(b) se pot pune condiţiile:
148 Bazele Analizei Numerice

s"(a) = s"(b) = 0 .
În acest caz se obţine aşa numita funcţie spline cubică naturală.
Înainte de a prezenta teorema fundamentală privind existenţa funcţiilor
spline cubice, reamintim următorul rezultat de algebră liniară.

Propoziţia 1. Orice matrice pătratică strict diagonal dominantă este nesingulară.


Demonstraţie. Fie A∈ M n(R) cu proprietatea:
n
aii > ∑ aij . (1)
j =1
j ≠i
Dacă vom arăta că sistemul Ax=0 admite numai soluţia banală, va rezulta
că detA ≠ 0.
Presupunem prin absurd că există α ≠ 0 astfel încât Aα = 0.
Fie
α j = α ∞ = max{ α1 , α 2 , ..., α n } .
Cum α este soluţie pentru sistemul Ax = 0 rezultă
aj1α1+ ...+ ajjαj+...+ ajnαn = 0 sau
n
α
a jj + ∑ a jk α k = 0 . (2)
k =1 j
k≠ j
În continuare avem
n αk n
a jj ≤ ∑ a jk αj
≤ ∑ a jk ,
k =1 k =1
k≠ j k≠ j
ceea ce contrazice (1). ‰

Teorema 1. Pentru orice (n+3) numere date y 0′ , y0, y1, ..., y n ,y n′ , există o
funcţie spline cubică s, unică cu proprietăţile:
s(xi)=yi , 0≤i≤n , s´(x0) = y 0′ , s´(xn) = y n′ .
Demonstraţie.
Vom nota cu Mi = s"(xi), i = 0, n . Deoarece s" este liniară pe intervalul [xi
, xi+1], rezultă că s′′ este de forma s"(x)=αx+β . Din condiţiile Mi=s"(xi) şi
Mi+1 = s"(xi+1) rezultă
M − Mi M x − M i +1xi
a = i +1 şi β = i i +1 ,
hi hi
unde hi = xi+1−xi. Aşadar pe intervalul [xi , xi+1] , avem:
( x − x) M i + ( x − xi ) M i +1
s" ( x) = i +1 , i=0,n-1 . (3)
hi
Integrând de două ori obţinem
Interpolarea funcţiilor 149

( xi +1 − x) 3 M i + ( x − xi )3 M i +1
s ( x) = + C ( xi +1 − x) +
6hi . (4)
+ D ( x − xi ), i=0 ,n-1
unde C şi D sunt constante arbitrare.
Punând condiţiile de interpolare s(xi) = yi , 0≤i≤n, rezultă
y hM y hM
C = i − i i şi D = i +1 − i i +1 . (5)
hi 6 hi 6
Înlocuind (5) în (4) obţinem pentru x∈ [xi , xi+1] şi i = 0, n − 1 :
( xi +1 − x) 3 M i + ( x − xi )3 M i +1
s ( x) = +
6hi
( xi +1 − x) yi + ( x − xi ) yi +1
+ − (6)
hi
(x − x)M i + (x − xi )M i +1
− i +1 hi , i=0 ,n-1 .
6
Să observăm că funcţia s definită în (6) este continuă pe [a,b].
Într−adevăr
⎡ (x − x)3 Mi−1 + (x − xi−1)3 Mi (xi − x) yi−1 + (x − xi−1) yi
lim s(x) = lim ⎢ i + −
x→xi x→xi ⎢
⎣ 6hi −1 h i −1
x<x i x<x i

(x − x)Mi−1 + (x − xi−1)Mi ⎤ hi3-1Mi hi2−1Mi


− hi−1 i =
⎥ 6h + yi − = yi
6 ⎦ i−1 6

şi analog lim s ( x) = yi .
x → xi
x > xi
În continuare vom pune condiţia ca derivata s' să fie continuă pe [a,b].
Din (6) rezultă:
− ( xi +1 − x) 2 M i + ( x − xi ) 2 M i +1 yi +1 − yi
s ' ( x) = +
2hi hi (7)
( M i +1 − M i )hi
− ,
6
pentru x∈(xi , xi+1), i = 0, n − 1 .
Punem condiţia ca lim s ' ( x) = lim s ' ( x) şi obţinem
x → xi x → xi
x < xi x > xi

hi2−1M i yi − yi −1 ( M i − M i −1 )hi −1 h2M yi − yi ( M i +1 − M i ) hi


+ − = − i i + +1 −
2hi −1 hi −1 6 2hi hi 6
150 Bazele Analizei Numerice

şi mai departe
hi −1 h + hi −1 h y −y y − yi −1
M i −1 + i M i + i M i +1 = i +1 i − i (8)
6 3 6 hi hi −1
pentru orice i = 1, n − 1 .
La cele (n−1) ecuaţii date de (8) adăugăm două ecuaţii care corespund
condiţiilor: s'(x0)= y 0′ şi s'(xn)= y 0′ .
Ţinând seama de (7) aceste ecuaţii sunt:
h0 h y − y0
M 0 + 0 M1 = 1 − y 0′ (9)
3 6 h0
hn −1 h y − yn −1
M n −1 + n −1 M n = yn′ − n . (10)
6 3 hn −1
Din (8), (9) şi (10) rezultă următorul sistem AM=b, unde

⎛ h0 h0 ⎞
⎜ 0 0 L 0 0 0 ⎟
⎜ 3 6 ⎟
⎜ h0 h0 + h1 h1
0 L 0 0 0 ⎟
⎜ 6 3 6 ⎟
⎜ h1 h1 + h2 h2 ⎟
A=⎜ 0 6 3 6
L 0 0 0 ⎟
⎜ ⎟
⎜ M M. M M O M M M ⎟
⎜ 0 hn −2 hn− 2 + hn −1
hn−1 ⎟
0 0 0 L
⎜ 6 3 6 ⎟
⎜ hn−1 ⎟
hn−1
⎜ 0 0 0 0 L 0 ⎟
⎝ 6 3 ⎠
⎛ y1 − y0 ⎞
⎜ − y0′ ⎟
⎜ h0 ⎟
⎛M0 ⎞ ⎜ y 2 − y1 y1 − y0 ⎟
⎜ ⎟ ⎜ − ⎟
⎜ M1 ⎟ ⎜ h1 h0 ⎟
M =⎜ ⎟ , iar b = ⎜ M ⎟.
M y − y y − y
⎜ ⎟ ⎜ n n −1 − n -1 n−2 ⎟
⎜M ⎟ ⎜ hn −1 ⎟
⎝ n⎠ hn − 2
⎜ y n − y n −1 ⎟
⎜ y ′ − ⎟
⎜ n
hn −1 ⎟
⎝ ⎠
Observăm că matricea A este simetrică, tridiagonală şi strict diagonal
dominantă. Un asemenea sistem are soluţie unică, care se obţine uşor cu algoritmul
Gauss. Înlocuind în (6) această soluţie, găsim funcţia spline cubică pe care o
căutam. Evident această funcţie este unică, deoarece soluţia (M0, M1,...,Mn) este
unică. ‰
Interpolarea funcţiilor 151


Exemplu: Să se determine valorile funcţiei f în punctul folosind
24
interpolarea spline cubică, ştiind că:

xi 0 π π π π
6 4 3 2
y i = f ( xi ) 0 0.5 0.70711 0.86603 1

şi că valorile lui f ' în punctele x 0 şi x 4 sunt: y ' 0 = 1 , y ' 4 = 0 .


R. Aplicăm teorema 1 şi vom găsi funcţia spline cubică s ce interpolează funcţia
f , dacă determinăm coeficienţii M i , i = 0, 3 .
Coeficienţii M i se determină prin rezolvarea sistemului liniar AM = b, unde
y1 y0
h0 h0 y'0
0 0 0 h0
3 6
y2 y1 y1 y0
h0 h0 h1 h1
0 0 h1 h0
6 3 6
h1 h1 h2 h2 y3 y2 y2 y1 ⎛M0 ⎞
⎜ ⎟
A 0 0 b ⎜ M1 ⎟
6 3 6 h2 h1
, M = ⎜M2 ⎟
h2 h2 h3 h3 y4 y3 y3 y2 ⎜ ⎟
0 0 ⎜M3 ⎟
6 3 6 h3 h2 ⎜ ⎟
⎝M4 ⎠
h3 h3
0 0 0 y4 y3
6 3 y'4
h3

⎛ − 5.15454 ⋅ 10 −3 ⎞
⎜ ⎟
⎜ − 0.50616 ⎟
⎜ ⎟
şi hi = xi+1 – xi , i = 0, 3 . Obţinem că: M = ⎜ − 0.70767 ⎟ .
⎜ − 0.88161 ⎟
⎜⎜ ⎟⎟
⎝ − 1.02524 ⎠

Punctul ∈ [x1 , x 2 ] . Scriem funcţia de interpolare s pe acest interval:
24
152 Bazele Analizei Numerice

( x 2 − x) 3 M 1 + ( x − x1 ) 3 M 2 ( x 2 − x) y1 + ( x − x1 ) y 2
s ( x) = + −
6h1 h1
( x 2 − x) M 1 + ( x − x1 ) M 2
− h1
6
⎛ 5π ⎞
Calculăm valoarea funcţiei s în punctul dat: s⎜ ⎟ = 0.60875 .
⎝ 4 ⎠

Deci, valoarea aproximativă a lui f în punctul este 0.60875.
24

Funcţiile spline cubice au următoarea proprietate de optimizare.

Teorema 2. Fie G mulţimea funcţiilor g : [a,b] → R, de clasă C2 cu


proprietăţile:
(i) g(xi)=yi , 0≤i≤n
'
(ii) g'(x0)= y0
(iii) g'(xn)= y n′
b b
∫ [g"( x)] dx = ∫ [s" ( x)] 2 dx .
2
Atunci : inf
g ∈G
a a
Demonstraţie.
Dacă notăm cu k(x) = s(x) −g(x), unde g∈G, atunci
b b b b
∫ [g"(x)] dx = ∫ [s"(x)] dx − 2∫ s"(x)k"(x)dx + ∫ [k"(x)] dx .
2 2 2

a a a a
Mai departe avem
b n −1 xi +1
∫ s"( x)k"( x)dx = ∑ ∫ s"( x)k"( x)dx =
a i =0 xi

n −1⎛ xi +1 ⎞
⎜ xi +1 ⎟
= ∑ ⎜ s" ( x)k ( x) x − ∫ s ( x)k ( x)dx ⎟ .
′ ′′′ ′
i =0 ⎜⎝ ⎟
i
xi ⎠
Deoarece s'''(x)=αi este o constantă pe [xi,xi+1] şi k(xi) = k(xi+1) = 0 , i = 0, n − 1 ,
rezultă
xi +1
∫ s′′′(x)k ′(x)dx = 0
xi
şi mai departe
Interpolarea funcţiilor 153

b n −1
∫ s"( x)k"( x)dx = ∑ [s"( xi +1 )k ′( xi +1 ) − s"( xi )k ′( xi )] =
a i =0
= s" (b)k ′(b) − s" (a) k ′(a) = 0 .
deoarece k'(a) = k'(b) = 0. Aşadar
b b b
∫ [g"( x)] dx = ∫ [s" ( x)] dx + ∫ [k " ( x)] 2 dx .
2 2

a a a
b b
∫ [s" (x)] dx ≤ ∫ [g" (x)] 2 dx pentru orice g∈G.
2
Rezultă
a a
b
∫ [k"(x)]
2
Egalitatea are loc dacă dx = 0 , deci dacă k"(x)=0,
a
(∀) x∈[a,b]. Aşadar functia k este liniară pe [a,b].
Din condiţiile de interpolare k(xi)=0 pentru i = 0, n , rezultă k(x)=0,
(∀)x∈[a,b] şi deci că
b b
∫ [s"( x)] dx = ginf ∫ [g"( x)] dx .
2 2
‰
∈G
a a
Se poate demonstra de asemenea următoarea teoremă.

Teorema 3. Fie f∈C4[a,b] şi M4=sup{⎜f (x)⎢; x∈[a,b]} şi fie xi( n) = a + ih,


IV

b−a
i = 0,n , noduri echidistante, unde h = . Dacă sn este funcţia spline cubică
n
cu proprietăţile:
sn(xi(n) ) = f (xi(n) ) , i = 0, n ; s n′ ( a ) = f ' ( a ) şi sn′ (b) = f ' (b) ,
atunci pentru orice x∈[a,b] avem:
5 1 3
f(x)− sn(x) ≤ M4h4 , f '(x)− sn′ (x) ≤ M4h3, f " ( x) − sn" ( x) ≤ M 4 h 2 .
384 24 8
Aşadar, din Teorema 3 rezultă că şirul funcţiilor spline cubice {sn} care
interpolează funcţia f în nodurile echidistante {x }
(n )
i converge uniform pe
u u
intervalul [a,b] către funcţia f. Mai mult: sn′ ⎯⎯→ f ′ şi sn′′ ⎯⎯→ f " pe
intervalul [a,b].
În continuare vom defini funcţiile B−spline cubice şi vom arăta că orice
funcţie spline cubică care interpoleză funcţia f în nodurile x0, x1, ..., xn se
reprezintă ca o combinaţie liniară unică de funcţii B−spline cubice. Fie
∆: a=x0<x1<...<xi−1<xi<...<xn=b
154 Bazele Analizei Numerice

o diviziune a intervalului [a,b] cu noduri echidistante (xi = x0+ih, unde


b−a ~
h= ). Asociem acestei diviziuni, diviziunea ∆ care are în plus şase noduri
n
auxiliare, de asemenea echidistante.
~
∆ : x −3 < x −2 < x −1 < x0 < x1 < ... < x n < x n +1 < x n + 2 < x n+3 .
Definim pentru orice i = − 1, n + 1 , funcţia B−spline cubică Bi astfel:
⎧ ( x − xi − 2 ) 3 x ∈ ( xi − 2 , xi −1 ]
⎪ 3 2 2 3
⎪ h + 3h ( x − xi −1 ) + 3h( x − xi −1 ) − 3( x − xi −1 ) x ∈ ( xi −1 , xi ]
1 ⎪ 3
Bi ( x ) = ⎨ h + 3h 2 ( xi +1 − x) + 3h( xi +1 − x) 2 − 3( xi +1 − x) 3 x ∈ ( xi , xi +1 ]
h3 ⎪ 3
⎪ ( xi + 2 − x) x ∈ ( xi +1 , xi + 2 ]
⎪⎩0 x ∉ [ xi − 2 , xi + 2 ]

Graficul funcţiei Bi arată astfel:


4

xi−2 xi−1 xi xi+1 xi+2


Din definiţia funcţiilor Bi rezultă că
⎧4 dacã j=i

Bi ( y j ) = ⎨1 dacã j = i-1 sau j=i+1
⎪0 dacã j ∉ {i-1;i;i+1}

3 3
Se verifică uşor că Bi′ ( xi −1 ) =, Bi′ ( xi +1 ) = − şi Bi′ ( x j ) = 0 dacă
h h
j ∉{xi−1; xi+1} . Se observă de asemenea că Bi∈C2(R), deci este o funcţie spline
cubică.

Propoziţia 2. Funcţiile B−1, B0, ..., Bn+1 sunt liniar independente pe R.


Demonstraţie. Fie combinaţia liniară
λ−1B−1(x)+ λ0B0(x)+ λ1B1(x)+...+ λn+1Bn+1(x)=0, x∈R.
Dacă dăm lui x succesiv valorile x−1, x0, ..., xn+1 obţinem sistemul:
Interpolarea funcţiilor 155

⎧4λ−1 + λ0 = 0
⎪λ + 4λ + λ = 0
⎪⎪ −1 0 1
⎨ L
⎪λ + 4λn + λn +1 = 0
⎪ n −1
⎪⎩λn + 4λn +1 = 0
Deoarece matricea sistemului este strict diagonal dominantă, deci
nesingulară, rezultă că sistemul admite numai soluţia banală
λ1 = λ2 = ... = λn+1 = 0 . ‰

În continuare notăm cu B3(∆) spaţiul liniar generat de funcţiile Bi,


i = − 1, n + 1 .

Teorema 4. Există o funcţie unică B ∈ B 3(∆) care interpolează funcţia f în


nodurile xi , i = 0, n .
Demonstraţie. Fie
B(x)= a−1B−1(x)+ a0B0(x)+ a1B1(x)+...+ an+1Bn+1(x), x∈R. (11)
Punând condiţia ca B să interpoleze funcţia f în nodurile x0, x1 ,..., xn rezultă
B ′( x0 ) = a −1B−′ 1 ( x0 ) + a0 B0′ ( x0 ) + ... + a n +1Bn′ +1 ( x0 ) = f ′( x0 )
B ( xi ) = a −1B−1 ( xi ) + a0 B0 ( xi ) + ... + an +1Bn +1 ( xi ) = f ( xi ) i=0 ,n
B ′( xn ) = a −1B−′ 1 ( xn ) + a0 B0′ ( xn ) + ... + a n +1Bn′ +1 ( xn ) = f ′( xn )
Se obţine sistemul:
⎧ 3 3
⎪ − h a−1 + h a1 = f ′( x0 )
⎪ a + 4a + a = f ( x )
⎪ −1 0 1 0
⎪ a0 + 4a1 + a 2 = f ( x1 )
⎨ (12)
⎪ L
⎪ a n −1 + 4a n + a n +1 = f ( xn )
⎪ 3 3
⎪− a n −1 + an +1 = f ′( xn )
⎩ h h
Sistemul (12) are (n+3) ecuaţii liniare şi (n+3) necunoscute
a−1, a0, ..., an+1.
Eliminând necunoscuta a−1 din primele două ecuaţii şi necunoscuta an+1
din ultimele două ecuaţii, obţinem sistemul echivalent:
156 Bazele Analizei Numerice

⎧ h
⎪4a0 + 2a1 = f ( x0 ) + 3 f ′( x0 )
⎪a + 4 a + a = f ( x )
⎪⎪ 0 1 2 0
⎨ L (13)
⎪a + 4an −1 + a n = f ( xn −1 )
⎪ n−2
⎪2 a h
+ 4a n = f ( xn ) + f ′( xn )
⎪⎩ n −1 3
Matricea coeficienţilor sistemului (13) este strict diagonal dominantă, deci sistemul
(13) are soluţie unică. Aşadar, sistemul (12) are soluţie unică.
Înlocuind această soluţie în (11) obţinem funcţia B căutată, care evident
este unică. ‰

Teorema 5. Fie s : [a,b] → R o funcţie spline cubică care interpolează funcţia f


în nodurile x0, x1,..., xn . Atunci există a−1, a0, a1,..., an+1∈R, unic determinate,
astfel încât
s(x) = a−1B−1(x)+ a0B0(x)+...+ an+1Bn+1(x), (∀) x∈[a,b].
Demonstraţie.
Din Teorema 4 rezultă că există B∈B3(∆) astfel încât B interpolează
funcţia f în nodurile x0, x1,..., xn. Funcţia B este de clasă C2 pe R şi este
polinomială de gradul trei pe porţiuni. Rezultă că restricţia lui B la intervalul
[a,b] este o funcţie spline cubică, care interpolează f în nodurile x0, x1,..., xn .
Cum asemenea funcţie este unică (conform Teoremei 1 ) rezultă
s(x)=B(x)=a−1B−1(x)+ a0B0(x)+...+ a−n+1Bn+1(x), (∀) x∈[a,b].
Unicitatea coeficienţilor
a−1, a0, a1, ..., an+1
este asigurată de Teorema 4. ‰

Pachetul de programe MATLAB conţine funcţia spline care permite


interpolarea unei funcţii f în punctele x1, x2, ..., xn , (∀)n∈N* , finit, printr−o
funcţie spline cubică, dacă se cunosc valorile y1, y2, ..., yn ale
funcţiei în nodurile x1<x2<...<xn . Secvenţa de apelare este:
yi=spline(x,y,xi).

π π π
Exemplu. Să se determine valorile funcţiei f în punctele , , , folosind
12 8 5
interpolarea spline cubică, ştiind că:
xI 0 π π π π
6 4 3 2
yi=f(xi) 0 1 1 3 1
2 2 2
utilizând MATLAB.
În mediul MATLAB se scriu comenzile:
Interpolarea funcţiilor 157

% interpolarea cu functii spline cubice folosind pachetul de programe


Matlab
function [x,y,xi,yi]=cub
% Nodurile
x=[0,pi/6,pi/4,pi/3,pi/2];
% Valorile functiei in noduri
y=[0,1/2,1/2^(1/2),3^(1/2)/2,1];
% Valorile in care se interpoleaza functia
xi=[pi/12,pi/8,pi/5];
% Apelarea functiei Matlab spline care face interpolarea
yi=spline(x,y,xi);
Funcţia considerată este f(x)=sinx şi putem compara valorile de interpolare
cu cele "exacte":
zi=sin(xi);
Pentru reprezentarea grafică a funcţiei interpolate se poate folosi
următoarea secvenţa MATLAB.
% Reprezentarea grafica a functiei interpolate
plot(x,y,xi,yi,'*',xi,zi,'o');
axis([0,pi/2,0,1.2]); % se stabilesc intervalele de reprezentare pe
axe
title('Interpolarea cu spline cubice');
xlabel('Unghiul');
ylabel('Valorile functiei'); grid

Exerciţii

Folosind polinomul de interpolare a lui Lagrange să se determine valoarea


aproximativă a funcţiilor date de tabelele următoare în punctele a menţionate în
fiecare caz.
1.
x −3 −2 0 1 3
y=f(x) 91 23 1 −1 73
a=−1.
158 Bazele Analizei Numerice

R.
5 5 a− xj a − x2 a − x3 a − x4 a − x5
P4 (a ) = ∑ yi ∏ = y1 ⋅ ⋅ ⋅ +
i =1 j =1 xi −xj x1 − x2 x1 − x3 x1 − x4 x1 − x5
j ≠i
a − x1 a − x3 a − x4 a − x5 a − x1 a − x2 a − x4 a − x5
+ y2 ⋅ ⋅ ⋅ + y3 ⋅ ⋅ ⋅ +
x2 − x1 x2 − x3 x2 − x4 x2 − x5 x3 − x1 x3 − x2 x3 − x4 x3 − x5
a − x1 a − x2 a − x3 a − x5 a − x1 a − x2 a − x3 a − x4
+ y4 ⋅ ⋅ ⋅ + y5 ⋅ ⋅ ⋅ =
x4 − x1 x4 − x2 x4 − x3 x4 − x5 x5 − x1 x5 − x2 x5 − x3 x5 − x4
−1+ 2 −1 −1−1 −1− 3 −1+ 3 −1 −1−1 −1− 3
= 91 ⋅ ⋅ ⋅ + 23 ⋅ ⋅ ⋅ +
− 3 + 2 − 3 − 3 −1 − 3 − 3 − 2 + 3 − 2 − 2 −1 − 2 − 3
−1+ 3 −1+ 2 −1−1 −1− 3 −1+ 3 −1+ 2 −1 −1− 3
+ ⋅ ⋅ ⋅ − ⋅ ⋅ ⋅ +
3 2 −1 −3 1+ 3 1+ 2 1 1− 3
−1+ 3 −1+ 2 −1 −1−1
+ 73 ⋅ ⋅ ⋅ =5 .
3 + 3 3 + 2 3 3 −1
2.
x 0 π π π 2π π
6 4 3 5 2
y=f(x) 0 0.5 1.70711 0.86603 0.95106 1


a= .
8
⎛ 3π ⎞
R. P5 ⎜ ⎟ = 0.92388 .
⎝ 8 ⎠
Folosind metoda Aitken să se găsească valoarea aproximativă a funcţiilor
date de tabelele următoare în punctele menţionate în fiecare caz în parte.
3.
x −2 −1 0 1 3
y=f(x) −12 −5 −4 −3 23

a=0.5 .
R. Urmărind calculele ca în Teorema 1 §4.2 obţinem tabelul următor în care
ultima celulă dă valoarea aproximativă a funcţiei în punctul dat.

−2 −2.5 −12
−1 −1.5 −5 5.5
0 −0.5 −4 −2 −5.75
1 0.5 −3 −4.5 −2 −−3.875
3 2.5 23 5.5 5.5 −3.875 −3.875
Interpolarea funcţiilor 159

4.
x 0 30 45 60 90
y=f(x) 0 0.5 0.70710 0.86602 1

a=36 .
R.
0 −36 0
30 −6 0.5 0.6
45 9 0.70710 0.56568 0.58627
60 24 0.86602 0.51961 0.58392 0.58768
90 54 1 0.4 0.58 0.58752 0.58780

5. Să se determine valorile funcţiei f în punctul 0.5 folosind interpolarea spline


cubică, ştiind că:

xi 0 0.25 0.75 1
y i = f ( xi ) 1 0.96923 0.75484 0.60653

şi că valorile lui f ' în punctele x 0 şi x3 sunt: y '0 = 0 , y '3 = −0.60653 .

R. Vom găsi funcţia spline cubică s ce interpolează funcţia f , dacă determinăm


coeficienţii M i , i = 0, 2 . Coeficienţii M i se determină prin rezolvarea sistemului
de ecuaţii liniare AM = b, unde

y1 y0
h0 h0 y' 0
0 0 h0
3 6
h0 h0 h1 h1 y2 y1 y1 y0
0
6 3 6 h1 h0
A b
h1 h1 h2 h2 y3 y2 y2 y1
0
6 3 6 h2 h1
h2 h2 y3 y2
0 0 y' 3
6 3 h2

iar hi = xi+1 – xi , i = 0, 2
160 Bazele Analizei Numerice

⎛M0 ⎞ ⎛ − 1.00712 ⎞
⎜ ⎟ ⎜ ⎟
⎜ M1 ⎟ ⎜ − 0.93936 ⎟
iar M = ⎜ . Obţinem că: M = ⎜
M2 ⎟ − 0.347 ⎟
⎜ ⎟ ⎜ ⎟
⎜M ⎟ ⎜ 0.01396 ⎟
⎝ 3⎠ ⎝ ⎠

Punctul 0.5 ∈ [x1 , x 2 ] . Scriem funcţia de interpolare s pe acest interval:

( x 2 − x) 3 M 1 + ( x − x1 ) 3 M 2 ( x 2 − x) y1 + ( x − x1 ) y 2
s ( x) = + −
6h1 h1
( x 2 − x) M 1 + ( x − x1 ) M 2
− h1
6
Calculăm valoarea funcţiei s în punctul dat: s (0.5) = 0.882 .
Deci, valoarea aproximativă a lui f în punctul 0.5 este 0.882.

6. Să se determine valorile funcţiei f în punctul 3 folosind interpolarea spline


cubică, ştiind că:

xi 1 2 4 5
y i = f ( xi ) 0.5403 0.70121 0.80805 0.83382

şi că valorile lui f ' în punctele x 0 şi x3 sunt: y ' 0 = 0.28049 , y '3 = 0.02152 .

⎛ − 0.33459 ⎞
⎜ ⎟
⎜ − 0.0483 ⎟
R. Obţinem că: M = ⎜ . Valoarea funcţiei f în punctul 3 este
− 0.01028 ⎟
⎜ ⎟
⎜ − 7.60083 ⋅ 10 −3 ⎟
⎝ ⎠
aproximată de s (3) = 0.76928 .
Integrarea şi derivarea numerică 161

5. Integrarea şi derivarea numerică

Fie f : [a,b] → R o funcţie integrabilă. Dacă putem găsi o primitivă F a


funcţiei f, atunci conform formulei Leibniz−Newton avem
b
∫ f ( x )dx = F (b) − F (a ) .
a
Dacă nu putem găsi o primitivă F a funcţiei f, atunci pentru calculul
b
integralei ∫ f ( x )dx vom folosi o metodă numerică aproximativă.
a
O abordare firească este să aproximăm funcţia f printr−un polinom, de
exemplu prin polinomul de interpolare a lui Lagrange şi să integrăm acest polinom.
Prin formulă de integrare numerică (cuadratură numerică) se înţelege o
formulă de următorul tip
b
∫ w( x ) f ( x )dx = A1 f ( x1 ) + ... + An f ( xn ) + R( f ) (1)
a
unde { xi } se numesc noduri, iar { Ai } se numesc coeficienţi.
Funcţia w este o funcţie fixată, integrabilă, care se numeşte funcţia
pondere. În multe cazuri w(x)=1, (∀) x ∈ [a,b]. Despre funcţia f se presupune că
este integrabilă pe [a,b] şi definită în nodurile { xi }.
Cu R( f ) se notează eroarea de aproximare a integralei.

Definiţia 1. Formula (1) se spune că este exactă pentru funcţia f dacă R( f ) = 0,


deci dacă
b
∫ w( x ) f ( x )dx = A1 f ( x1 ) + A2 f ( x2 ) + ... + An f ( xn ) .
a
Formula (1) se spune că este de gradul m dacă:
(i) este exactă pentru orice polinom de grad cel mult m ;
(ii) există un polinom de gradul (m+1) pentru care formula (1)
nu este exactă.
162 Bazele Analizei Numerice

Teorema 1. Pentru orice n noduri distincte, x1, ..., xn , există n constante A1, A2,
..., An (care nu depind de f ) astfel încât formula
b

∫ w( x) f ( x )dx = A1 f ( x1 ) + A2 f ( x2 ) + ... + An f ( xn ) + R( f )
a
este exactă pentru orice polinom de grad cel mult (n−1).
Demonstraţie. Fie
n
Pn −1 ( x) = ∑ Li ( x) f ( xi )
i =1
polinomul lui Lagrange, care interpolează funcţia f în nodurile { xi }, i = 1, n .
Reamintim că
n x− xj
Li ( x) = ∏ .
j =1 xi − x j
j ≠i
Dacă notăm cu
E(f ; x) = f(x)−Pn−1(x) ,
atunci
n
f ( x) = ∑ Li ( x) f ( xi ) + E ( f ; x)
i =1
şi mai departe
b n⎛b ⎞ b
⎜ ⎟
∫w( x ) f ( x )dx = ∑∫ ⎜ ∫
w( x ) Li ( x )dx f ( xi ) + w( x ) E ( f ; x )dx .

a i =1 ⎝ a ⎠ a
Notăm cu
b


Ai = w( x ) Li ( x )dx , i = 1, n .
a
Evident Ai nu depind de f , ci de a, b, nodurile xi şi de ponderea w.
Dacă notăm cu
b


R( f ) = w( x ) E ( f ; x )dx ,
a
atunci
b

∫ w( x) f ( x )dx = A1 f ( x1 ) + A2 f ( x2 ) + ... + An f ( xn ) + R( f ) .
a
Dacă f este un polinom de grad cel mult (n−1), atunci E(f;x)=0 şi deci
R( f )=0 (Capitolul IV, §1, Observaţia 1). ‰
Există trei tipuri de formule de integrare numerică:
Integrarea şi derivarea numerică 163

1. Formule Newton−Côtes,
2. Formule Gauss,
3. Formule Romberg.
În cele ce urmează vom prezenta primele două tipuri de formule.

§5.1. Formule Newton-Côtes

Presupunem intervalul [a,b] finit, nodurile echidistante


b−a
xi = a+ih, unde h = şi w(x)=1, pentru orice x∈[a,b].
n
n x− xj
Fie Li ( x) = ∏ şi fie Pn − polinomul Lagrange care
i =0 xi − x j
j ≠i
interpolează funcţia f în nodurile x0, x1, ..., xn . Avem
n
Pn ( x) = ∑ Li ( x) f ( xi ) .
i =0
Dacă facem schimbarea de variabilă x=a+t⋅h, atunci , aşa cum s−a văzut
în § 4.1, avem
n ( −1) n −i C i π
~ n n +1 (t )
Pn (t ) = Pn (a + th) = ∑ f ( xi ) şi
i =0 n! t −i
~ π (t )
E ( f ; t ) = n+1 h n+1 f ( n+1) (ξ t ) ,
(n + 1)!
unde
π n +1 (t ) = t (t − 1)(t − 2)...(t − n) .
În continuare avem
b b b
∫ f ( x)dx = ∫ Pn ( x)dx + ∫ E ( f ; x)dx .
a a a
Cu schimbarea de variabilă x=a+th, obţinem
b n~ n~
∫ f ( x)dx = ∫ Pn (t )hdt + ∫ E ( f ; t )hdt =
a 0 0
n ⎛ (− 1)n −i C i nπ ⎞ h n+2 n
n +1 (t ) ⎟
= h ∑⎜ n
∫ dt f ( x i ) + ∫ π n +1 (t ) f
( n +1)
(ξ t )dt .

i =0⎝ n ! t − i ⎟ ( n + 1)!
0 ⎠ 0

Introducem notaţiile:
164 Bazele Analizei Numerice

(−1) n −i C ni nπ
n +1 (t )
di = ∫ dt , i=0 ,n (2)
n! 0 t −i
şi
h n+ 2 n ( n +1)
R( f ) = ∫ π n+1 (t ) f (ξ t )dt . (3)
(n + 1)! 0
Numerele { di }, i = 0, n , se numesc coeficienţii Newton−Côtes. Prin
urmare avem
b n
∫ f ( x)dx = ∑ Ai f ( xi ) + R( f ) (4)
a i =0
unde Ai = hdi , i = 0, n .
Primele trei formule Newton−Côtes au nume speciale.
Dacă n=1 obţinem formula trapezelor. În acest caz h = b−a,
(−1)1 C10 1 t (t − 1) 1
1 (−1) 0 C11 1 t (t − 1) 1 1
d0 = ∫ dt = − ∫ (t − 1) dt = , d 1 = ∫ dt = ∫ tdt =
1!
0
t
0
2 1! 0 t −1 0 2
Rezultă
h
A1 = A2 = .
2
Formula trapezelor este
b b−a
∫ f ( x)dx = [ f (a) + f (b)] + R( f ) (5)
a 2
h3 1
R( f ) = ∫ f " (ξ t ) t (t − 1)dt .
2 0
Dacă f∈C2[a,b] şi notăm cu M2=sup{ ⎜f"(x)⎢; x∈[a,b] } atunci
3
(b − a ) M 2 1 (b − a ) 3
R( f ) ≤ ∫ t (t − 1) dt = M2 (6)
2 0 12

y f

O a b x
Integrarea şi derivarea numerică 165

Din punct de vedere geometric formula trapezelor (5) revine la a aproxima


aria mulţimii plane mărginită de graficul funcţiei f , axa Ox şi dreptele x = a,
x= b cu aria trapezului haşurat în figură.
b−a
Dacă n=2 obţinem formula Simpson. În acest caz h = ,
2
(−1) 2 C 20 2 t (t − 1)(t − 2) 12 1
d0 = ∫ dt = ∫ (t 2 − 3t + 2)dt =
2! 0 t 20 3
(−1)1 C 12 2 t (t − 1)(t − 2) 2 4
d1 = ∫ dt = − ∫ (t 2 − 2t )dt =
2! 0 t −1 0 3
0 2 2
(−1) C 2 t (t − 1)(t − 2) 12 1
d2 = ∫ dt = ∫ (t 2 − t )dt = .
2! 0 t−2 20 3
Formula Simpson este
b b−a⎡ a+b ⎤
∫ f ( x)dx = ⎢ f (a) + 4 f ( ) + f (b)⎥ + R( f ) . (7)
a 6 ⎣ 2 ⎦
Se poate arăta că dacă f∈C4[a,b] atunci
M 4 (b − a) 5
R( f ) ≤ (8)
2880
unde M4=sup{ ⎜f IV (x) ⎢; x∈[ a,b ] }. În sfârşit, dacă n=3, atunci
b−a 3 9
h= ; d 0 = d 3 = ; d1 = d 2 = .
3 8 8
Se obţine formula 3/8 a lui Simpson
b b−a
∫ f ( x)dx = [ f (a) + 3 f (a + h) + 3 f (a + 2h) + f (b)] + R( f ) . (9)
a 8
Pentru o mai bună aproximare a integralei se folosesc formulele
Nexwton−Côtes repetate.
Dacă împărţim intervalul [ a, b ] în n subintervale egale şi aplicăm
formula (5) fiecărui interval [ xi−1, xi ] , obţinem:
b n xi n x −x
∫ f ( x ) dx = ∑ ∫ f ( x)dx = ∑ i i −1
[ f ( xi −1 ) + f ( xi )] + Ri ( f ) .
a i =1 x i =1 2
i −1
b−a
Cum xi − xi −1 = , x0 = a şi xn = b avem
n
b b−a⎡ n −1 ⎤
∫ f ( x ) dx = ⎢ f ( a ) + f (b ) + 2 ∑ f ( xi ) ⎥ + R ( f ) (10)
a 2n ⎣ i =1 ⎦
unde
166 Bazele Analizei Numerice

3
M2 ⎛b − a⎞ M2
R( f ) ≤ n ⎜ ⎟ = 2
(b − a )3 . (11)
12 ⎝ n ⎠ 12n
Formula (10) se numeşte formula trapezelor repetată.

Dacă împărţim intervalul [a,b] în 2n subintervale egale şi aplicăm


formula Simpson (7) fiecărui interval [x2i−2,x2i], obţinem formula Simpson
repetată
b b−a⎡ n n−1 ⎤
∫ f ( x)dx = ⎢ f ( a ) + f (b) + 4 ∑ f ( x 2i −1 ) + 2 ∑ f ( x2i )⎥ + R( f ) (12)
a 6n ⎣ i =1 i =1 ⎦
unde
M4
R( f ) ≤ (b − a )5 . (13)
2880n 4
Dacă notăm cu
b−a⎡ n−1 ⎤
σ nT = ⎢ f (a) + f (b) + 2 ∑ f ( xi )⎥
2n ⎣ i =1 ⎦
şi cu
b−a⎡ n n −1 ⎤
σ nS = ⎢ f (a ) + f (b) + 4 ∑ f ( x 2i −1 ) + 2 ∑ f ( x 2i )⎥ ,
6n ⎣ i =1 i =1 ⎦
atunci se poate arăta că σ nT şi σ nS sunt sume Riemann, sau combinaţii liniare
de sume Riemann ataşate funcţiei f şi că
b b
lim σ nT = ∫ f ( x)dx, lim σ nS = ∫ f ( x)dx .
n→∞ a n→∞ a
Calculul aproximativ al integralelor definite folosind pachetul de programe
MATLAB
În MATLAB se află programate metodele trapezelor, Simpson şi 3/8
Simpson (funcţiile trapz, quad şi quad8).
Pentru calculul integralelor definite cu formula trapezelor trebuie să se
cunoască X, vectorul absciselor şi Y, vectorul (matricea) valorilor funcţiei
(funcţiilor) corespunzătoare absciselor date de X.
Secvenţa de apelare este: Z=trapz(X), când se calculează o singură
integrală şi Z este un număr, valoarea integralei, sau Z =trapz(X,Y), când se
calculează mai multe integrale deodată şi Z este vectorul valorilor integralelor
calculate. Această funcţie consideră h=1, iar atunci când h ≠ 1 , se înmulţeşte cu
h funcţia trapz, aşa cum se va vedea în exemplul următor.

2.5
2
Exemplul 1. Să se calculeze valoarea aproximativă a integralei ∫ sin( x )dx ,
0.5
folosind funcţia MATLAB trapz , şi luând pasul h=0.1 .
Integrarea şi derivarea numerică 167

Fişierul de tip m cu care se realizează această cerinţă este:


% Calculul integralelor cu metoda trapezelor
function z=trapez
x=.5:0.1:2.5; %limita inferioara: pasul: limita superioara
y=sin(x.^2); % integrandul
z=0.1*trapz(y); % se inmulteste cu pasul, implicit pasul fiind 1
disp('Valoarea aproximativa a integralei');
Apelarea se face scriind trapez, iar valoarea afişată este 0.3924 .
Pentru calculul integralelor definite cu una din formulele Simpson trebuie
să se cunoască X, vectorul absciselor şi să se creeze un fişier de tip m care
conţine secvenţa de definire a funcţiei de integrat. Funcţiile quad şi quad8 se
apelează cu una din formele:
quad('f',a,b) quad8('f',a,b)
quad('f',a,b,err) quad8('f',a,b,err)
quad('f',a,b,err,urma) quad8('f',a,b,err,urma)
unde: f - este numele unui fişier funcţie (de tip m ) care conţine descrierea
funcţiei de integrat;
a, b - sunt limitele de integrare;
err - eroarea relativă admisă între doi paşi consecutivi (implicit este
10−3);
urma - dacă este diferită de zero, se afişează pe ecran valorile
intermediare.
Dacă nu se cunoaşte expresia analitică a funcţiei, ci doar X , vectorul
absciselor, şi Y, vectorul valorilor funcţiei în aceste puncte, atunci se interpolează
funcţia şi se consideră fişierul f, de tip m, care conţine funcţia de interpolare,
după care se calculează integrala din această funcţie.
Pentru exemplu de mai sus se creează fişierul f cu funcţia de integrat:
% Fisierul cu functia de integrat numit f de tip m
function g=f(x)
g=sin(x.^2); % integrandul
după care se apelează cu secvenţa: quad('f',0.5,2.5,0.00001) şi se va afişa valoarea
0.3890 . Am considerat eroarea relativă dintre doi paşi consecutivi 10−5.
unde: f - este numele unui fişier funcţie (de tip m ) care conţine descrierea
funcţiei de integrat;
a, b - sunt limitele de integrare;
err - eroarea relativă admisă între doi paşi consecutivi (implicit este 10−3);
urma - dacă este diferită de zero, se afişează pe ecran valorile
intermediare.
Dacă nu se cunoaşte expresia analitică a funcţiei, ci doar X , vectorul
absciselor, şi Y, vectorul valorilor funcţiei în aceste puncte, atunci se interpolează
funcţia şi se consideră fişierul f, de tip m, care conţine funcţia de interpolare,
după care se calculează integrala din această funcţie.
Pentru exemplu de mai sus se creează fişierul f cu funcţia de integrat:
% Fisierul cu functia de integrat numit f de tip m
168 Bazele Analizei Numerice

function g=f(x)
g=sin(x.^2); % integrandul
după care se apelează cu secvenţa: quad('f',0.5,2.5,0.00001) şi se va afişa valoarea
0.3890. Am considerat eroarea relativă dintre doi paşi consecutivi 10−5.

§5.2. Formule Gauss

Aşa cum am văzut în Teorema 1, pentru orice n noduri distincte


x1, ..., xn , există n constante A1, ..., An , astfel încât formula
b
∫ w( x) f ( x)dx = A1 f ( x1 ) + A2 f ( x 2 ) + ... + An f ( x n ) + R( f ) (1)
a
este exactă pentru orice polinom de grad cel mult (n−1). În anumite cazuri,
această formulă este exactă şi pentru polinoame de grad mai mare.
De exemplu, formula Simpson, care corespunde la 3 noduri echidistante,
este exactă pentru polinoame de grad cel mult 3.
În cele ce urmează vom stabili care este gradul maxim de exactitate al
formulei (1). Vom arăta că pentru n noduri, gradul maxim de exactitate este
(2n−1) şi această se întâmplă pentru formula Gauss, când nodurile sunt rădăcinile
unor polinoame ortogonale.
De acum înainte vom presupune că 0 ≤ w, w este continuă pe [a,b] şi
w(x) = 0 numai pentru un număr finit de puncte din [a,b].

Definiţia 1. Dacă
b
∫ w( x) f ( x) g ( x)dx = 0
a
atunci spunem că funcţiile f şi g sunt ortogonale pe [a, b] în raport cu ponderea
w.

Teorema 1. Pentru orice n ∈ N , există un polinom Pn* , de gradul n, care este


ortogonal pe [a, b] în raport cu ponderea w, pe orice polinom de grad cel mult
(n−1). Acest polinom este unic în afara unui factor constant de multiplicare nenul.
Demonstraţie.
Demonstraţia este constructivă. Vom arăta că se pot determina
a0, a1, ..., an astfel încât

∫ w( x) (a0 + a1 x + ... + a n x )Q( x) dx = 0


b
n

a
pentru orice polinom Q de grad cel mult (n−1).
Integrarea şi derivarea numerică 169

Observăm că dacă f este ortogonal pe g atunci λf este ortogonal pe g. Rezultă


că putem presupune an = 1. Observăm de asemenea că dacă f este ortogonal pe g1
şi g2 , atunci f este ortogonal pe α1g1+α2g2 , oricare ar fi constantele α1 şi α2.
Rezultă că este suficient să determinăm a0, a1, ..., an−1 astfel încât pentru orice
m∈{0, 1, ..., n−1} să avem:

∫ w( x)(a0 + a1 x + ... + a n−1 x )


b
n −1
+ x n x m dx = 0 (2)
a

Dacă introducem notaţia


b
k
∫ w( x) x dx = c k (3)
a
atunci, dându−i lui m pe rând valorile 0, 1, ..., (n−1) în relaţia (2) obţinem:
⎧a 0 c0 + a1c1 + ... + a n−1c n −1 = −c n
⎪a c + a c + ... + a c = −c
⎪ 0 1 1 2 n −1 n n +1
⎨ (4)
⎪ M
⎪⎩a 0 c n −1 + a1c n + ... + a n −1c 2n −2 = −c 2n −1
Problema ar fi rezolvată dacă am arăta că detC ≠ 0, unde
⎛ c0 c1 L c n −1 ⎞
⎜ ⎟
⎜ c1 c 2 L cn ⎟
C =⎜ .
M M M M ⎟
⎜ ⎟
⎜c ⎟
⎝ n −1 c n L c 2n −2 ⎠
Presupunem prin absurd că detC = 0. Atunci există λ0, λ1, ..., λn−1 nu
toţi nuli, astfel încât
⎧ λ0 c0 + λ1c1 + ... + λ n−1c n −1 =0
⎪ λ c
⎪ 0 1 + λ1c 2 + ... + λ n −1c n =0
⎨ (5)
⎪ M
⎪⎩λ0 c n −1 + λ1c n + ... + λ n−1c 2n −2 = 0 .
Înlocuind expresiile coeficienţilor ck daţi de relaţiile (3) în (5) rezultă:
⎧ b
(
⎪ ∫ w(x) λ0 + λ1 x + ... + λn −1 x )
n −1
dx = 0
⎪⎪ a
⎨ M . (6)
⎪ b
(
⎪ ∫ w(x) λ0 x
n −1
)
+ λ1 x n + ... + λn−1 x 2n − 2 dx = 0
⎪⎩ a
Amplificând pe rând, prima relaţie cu λ0, a doua cu λ1 , şi aşa mai
departe, şi adunându−le, rezultă
170 Bazele Analizei Numerice

b
[
∫ w( x) λ0 + λ1 x + ... + λ n−1 x
n −1 2
]dx = 0 (7)
a
Din (7) rezultă:
w(x) [λ0+λ1x+ ... +λn−1xn−1]2 = 0
pentru orice x∈[a,b]. Cum w se anulează numai într−−un număr finit de puncte
din [a,b], rezultă λ0+λ1x+ ...+λn−1xn−1=0. Am ajuns astfel la o contradicţie.
Aşadar, detC ≠ 0 deci sistemul (4) admite soluţie unică.
Dacă notăm cu a 0* , a1* , ..., a n* −1 soluţia sistemului (4), atunci
Pn* ( x) = a 0* + a1* x + ... + a n*−1 x n−1 + x n
şi cu aceasta teorema este demonstrată. ‰

Polinoamele ortogonale { Pn* } au diferite denumiri în funcţie de


ponderea w şi de intervalul [a,b].

Intervalul Ponderea Numele polinomului Pn*


[−1,1] w(x)=1 Polinomul Legendre
[−1,1] 1 Polinomul Cebîşev de speţa I
w(x)=
1− x2
[−1,1] Polinomul Cebîşev de speţa II
w(x)= 1 − x 2
(− ∞, ∞ ) 2 Polinomul Hermite
w(x)= e − x
[0, ∞ ) w(x)=e−x Polinomul Laguerre
α β
[−1,1] w(x)=(1−x) (1+x) , Polinomul Jacobi
α,β >−1

În continuare vom exemplifica cum se pot construi polinoamele ortogonale


{ }
Pn* cu ajutorul Teoremei 1.
Fie [a,b] = [−1,1] şi w(x)=1.
1 ⎧ 2
1 k +1 ⎪⎪ k + 1 pentru k par
k x
c k = ∫ x dx = =⎨ (8)
−1 k +1 ⎪
−1
⎪⎩0 pentru k impar
Să construim de exemplu polinomul Legendre de gradul 3. Sistemul (4)
devine:
Integrarea şi derivarea numerică 171

⎧ c 0 a 0 + c1a1 + c 2 a 2 = −c3

⎨c1a 0 + c 21a1 + c3 a 2 = −c 4 (9)
⎪ c a + c a + c a = −c
⎩ 2 0 3 1 4 2 5
Înlocuind (8) în (9) rezultă
⎧ 2
⎪2 a 0 + 3
a2 =0
⎪⎪ 2 2
⎨ a1 =−
⎪ 3 5
⎪ 2a +
2
a2 =0
⎪⎩ 3 0 5
3 3
care admite soluţia: a0 = a2 = 0 ; a1 = − . Aşadar, P3* ( x) = x 3 − x .
5 5
Primele şase polinoame Legendre sunt:
1 3 6 3 10 15
1 ; x ; x2 − ; x3 − x ; x4 − x2 + ; x5 − x3 + x
3 5 7 35 9 63
1
Fie [a,b] = [−1,1] şi w(x)= .
2
1− x
1 1 1 x
1
c0 = ∫ dx = arcsin x −1 = π ; c1 = ∫ dx = 0 .
−1 1 − x 2 −1 1 − x 2
1 xk
Pentru calculul coeficienţilor c k = ∫ dx , facem schimbarea de
−1 1− x2
variabilă x = sin t şi obţinem
π π
2 k −1 2 k −2 k −1
c k = ∫ sin k xdx = ∫ sin xdx = ck −2 .
π k π k
− −
2 2
Rezultă ck = 0 pentru orice k impar şi
π 3 π 5 3 π
c2 = ; c 4 = ⋅ ; c 6 = ⋅ ⋅ etc.
2 4 2 6 4 2
Să determinăm polinomul Cebîşev de speţa I, T3* . Sistemul (4) devine
⎧ π
⎪ πa 0 + 2
a2 =0
⎪⎪ π 3π
⎨ a1 =−
⎪ 2 8
⎪π a + π
a2 =0
⎪⎩ 2 0 4
172 Bazele Analizei Numerice

3 3
care admite soluţia: a0 = a2 = 0, a1 = − . Aşadar T3* = x 3 − x .
4 4
În Capitolul IV, §3 am arătat că polinomul Cebîşev de gradul trei este:
T3(x)=4x3−3x. După cum am precizat în Teorema 1, polinomul ortogonal se
determină în afara unui factor constant de multiplicare.
Observăm că avem T3 = 4 T3* şi în general Tn=2n−1 Tn* , n∈N.

Teorema 2. Fie Pn* un polinom de gradul n care este ortogonal pe intervalul


[a,b] în raport cu ponderea w, pe orice polinom de grad mai mic ca n. Atunci
zerourile polinomului Pn* sunt reale, simple şi aparţin intervalului [a, b].
Demonstraţie.
Fie xi , i = 1, k , zerourile polinomului Pn* şi fie mi ordinul de multiplicitate al
zeroului xi. Rezultă
Pn* ( x) = ( x − x1 ) m1 ⋅ ... ⋅ ( x − x k ) mk ,
unde m1+ m2+...+ mk = n. Presupunem că numerotarea zerourilor s−a făcut astfel
încât x1, ..., xl , l ≤ k sunt zerouri reale, aparţin intervalului [a, b] şi au ordinele
de multiplicitate impare.
Dacă l = n , teorema este demonstrată.
Să presupunem că l < n . Considerăm atunci polinomul
Ql(x)=(x−x1)(x−x2)...(x−xl).
(Dacă l = 0, atunci alegem Q0 = 1). Rezultă că polinomul produs Pn* ( x )Ql ( x )
păstrează semn constant pe [a,b], deci
b
*
∫ w( x) Pn ( x)Ql ( x)dx ≠ 0 ,
a
ceea ce contrazice faptul că Pn* este ortogonal pe Q l. ‰

Prin formulă de cuadratură Gauss se înţelege orice formulă


b
∫ w( x) f ( x)dx = A1 f ( x1 ) + A2 f ( x 2 ) + ... + An f ( x n ) + R( f ) , (1)
a
unde nodurile x1, x2, ..., xn sunt zerourile polinomului Pn* care este ortogonal pe
[a, b], în raport cu ponderea w , pe orice plinom de grad mai mic ca n. Vom avea
astfel formule de cuadratură de tip Gauss−Legendre, Gauss−Cebîşev,
Gauss−Hermite etc.

Teorema 3. Orice formulă de cuadratură de tip Gauss are gradul de exactitate


2n−1.
Integrarea şi derivarea numerică 173

Demonstraţie. Din Teorema 1 din introducerea în Capitolul V , ştim că formula


(1) este exactă pentru polinoame de grad mai mic ca n. Fie Qm un polinom de
gradul m, unde m∈{ n, n+1, ..., (2n−1) }. Din teorema împărţirii avem
Qm ( x ) = Qm − n ( x ) ⋅ Pn* ( x) + Rn −1 ( x ) ,
unde Rn−1 este un polinom de gradul n−1. Fie xk, k = 1, n , zerourile polinomului
Pn* . Evident, rezultă
Qm(xk) = Rn−1(xk), k = 1, n . (10)
În continuare avem:
b b b
*
∫ w( x)Qm ( x)dx = ∫ w( x) Pn ( x)Qm−n ( x)dx + ∫ w( x) Rn−1 ( x)dx .
a a a
Deoarece Pn* este ortogonal pe Qm−n rezultă:
b b
∫ w( x)Qm ( x)dx = ∫ w( x) Rn−1 ( x)dx .
a a

Ţinând seama că formula (1) este exactă pentru Rn−1 obţinem


b
∫ w( x)Qm ( x)dx = A1 Rn−1 ( x1 ) + ... + An Rn−1 ( x n ) .
a
În sfârşit, ţinând seama şi de (10) rezultă
b
∫ w( x)Qm ( x)dx = A1Qm ( x1 ) + ... + An Qm ( x n ) ,
a
deci formula (1) este exactă pentru orice polinom de grad mai mic ca 2n.
Pe de altă parte dacă notăm cu g = ( Pn* )2, atunci g este un polinom de
grad 2n şi restul
b n b
R( g ) = ∫ w( x) g ( x)dx − ∑ Ai g ( xi ) = ∫ w( x) g ( x)dx > 0 .
a i =1 a
Aşadar, formula (1) nu este exactă pentru g, deci gradul de precizie al
acestei formule este 2n−1. ‰

Observaţia 1. Orice formulă de cuadratură care are gradul de precizie (2n−1)


este o formulă Gauss.
Într−adevăr, considerăm formula
b
∫ w( x) f ( x)dx = A1 f ( z1 ) + A2 f ( z 2 ) + ... + An f ( z n ) + R( f ) (11)
a
cu gradul de exactitate (2n−1). Notăm cu
Un(x)=(x−z1)...(x− zn).
174 Bazele Analizei Numerice

Dacă Q este un polinom de grad mai mic ca n, atunci polinomul produs


UnQ , are gradul cel mult 2n−1 şi formula (11) este exactă pentru acest polinom.
Rezultă
b n
∫ w( x)U n ( x)Q( x)dx = ∑ AiU n ( z i )Q( z i ) = 0 .
a i =1
Rezultă că Un este un polinom de gradul n, care este ortogonal, în
raport cu ponderea w, pe orice polinom de grad cel mult (n−1) . Din Teorema 1
rezultă că Un = c Pn* şi deci că z1, ..., zn sunt zerourile polinomului Pn* . Aşadar,
formula (11) este o formulă Gauss.

Observaţia 2. Coeficienţii Ak din formula Gauss sunt pozitivi.


Într−adevăr, fie xk, k = 1, n , zerourile polinomului Pn* , şi fie
n
Qj(x) = ∏ (x − x j ) 2 .
i =1
i≠ j
Evident, gradQj = 2n−2 şi Qj(xi) = 0 dacă i≠j. Deoarece Qj ≥ 0 şi
formula (1) este exactă pentru Qj rezultă
b n
0 < ∫ w( x)Q j ( x)dx = ∑ Ai Q j ( xi ) = A j Q j ( x j ) ,
a i =1
deci Aj > 0.
În particular, obţinem
b
∫ w( x)Q j ( x)dx
a
Aj = , j=1,n . (12)
Q j (x j )
Formula (12) permite calculul coeficienţilor din formula Gauss.

Teorema 4. Fie xi( n ) , i=1,n , zerourile polinomului Pn* şi fie Ai( n ) , i = 1, n ,


coeficienţii din formula Gauss corespunzătoare.
n
Dacă f : [a,b] → R este continuă şi I n = ∑ Ai( n ) f ( xi( n) ) , atunci
i =1
b
lim I n = ∫ w( x) f ( x)dx .
n→∞ a
Demonstraţie. Din teorema Weierstrass (Capitolul IV, Teorema 4) rezultă că
pentru orice ε > 0 există un polinom Pε astfel încât
f ( x) − Pε ( x) < ε pentru orice x∈[a, b] .
Fie n > grad Pε . Atunci formula Gauss este exactă pentru Pε şi avem:
Integrarea şi derivarea numerică 175

b b n
∫ w( x) f ( x) dx − I n = ∫ w( x) f ( x) dx − ∑ Ai f ( xi ) ≤
( n) ( n)

a a i =1

[ ]
b n
∫ w( x) [ f ( x) − Pε ( x)] dx + ∑ Ai Pε ( xi ) − f ( xi ) ≤
( n) (n) ( n)

a i =1
b n
≤ ∫ w( x) f ( x) − Pε ( x) dx + ∑ Ai( n) Pε ( xi( n) ) − f ( xi( n) ) <
a i =1
⎛b n ⎞ b

< ε ∫ w( x) dx + ∑ Ai (n) ⎟
= 2ε ∫ w( x)dx .
⎜ ⎟
⎝a i =1 ⎠ a
b n
( n)
Am folosit faptul că ∫ w( x)dx = ∑ Ai .
a i =1
Aşadar,
b
lim I n = ∫ w( x) f ( x)dx
n→∞ a
şi cu aceasta teorema este demonstrată. ‰

Exemplu. Formula Gauss−Legendre cu trei noduri


Polinomul Legendre de gradul trei este
3
P3* ( x) = x 3 − x
5
şi are zerourile
3 3
x1 = − ; x 2 = 0; x3 = .
5 5
Vom avea
1 3 3
∫ f ( x)dx = A1 f (− ) + A2 f (0) + A3 f ( ) + R( f ) . (13)
−1 5 5
Punând condiţia ca formula (13) să fie exactă pentru 1, x şi x2 obţinem
sistemul:

⎪ A1 + A2 + A3 = 2
⎪⎪ 3 3
⎨− A0 + A3 = 0
⎪ 5 5
⎪ 3A +3A =2
⎪⎩ 5 0 5 3 3
5 8
care admite soluţia: A0 = A3 = şi A1 = .
9 9
176 Bazele Analizei Numerice

Formula Gauss−Legendre de ordinul trei este


1 5 3 8 5 3
∫ f ( x)dx = f (− ) + f (0) + f ( ) + R( f ) .
−1 9 5 9 9 5

§5.3. Integrarea numerică a integralelor duble

Fie f : D ⊂ R2 → R o funcţie continuă, unde D=[ a,b ]× [c,d] este un


dreptunghi. Atunci:
b⎛d ⎞
∫∫ f ( x, y )dxdy = ∫ ⎜⎜ ∫ f ( x, y )dy ⎟⎟dx (1)
D a⎝ c ⎠
Pentru fiecare integrală simplă putem aplica o formulă de integrare
numerică. De exemplu, dacă aplicăm formula trapezelor obţinem
bd−c
∫∫ f ( x, y )dxdy ≅ ∫ [ f ( x, c) + f ( x, d )]dx =
D a 2
.
b−a d −c
= [ f (a, c) + f (a, d ) + f (b, c) + f (b, d )]
2 2
Aşadar, formula trapezelor pentru integrala (1) este
(b − a)(d − c)
∫∫ f ( x, y)dxdy = [ f (a, c) + f (a, d ) + f (b, c) + f (b, d )] + R( f ) . (2)
D 4

În mod asemănător, formula Simpson va fi


(b − a)(d − c)
∫∫ f ( x, y )dxdy = [ f (a, c) + f (a, d ) + f (b, c) + f (b, d ) +
D 36 (3)
~
4[ f (a, y1 ) + f (b, y1 ) + f ( x1 , c) + f ( x1 , d ) + 16 f ( x1 , y1 )] + R ( f )

a+b c+d
unde x1 = , y1 = .
2 2
Pentru o mai bună aproximare a integralei se folosesc formulele repetate.
Dacă domeniul de integrare nu este un dreptunghi, atunci se construieşte
un dreptunghi D* , cu laturile paralele cu axele de coordonate şi care include
dreptunghiul D . Considerăm funcţia auxiliară
Integrarea şi derivarea numerică 177

⎧ f ( x, y ) dacă ( x,y) ∈ D
f * ( x, y ) = ⎨
⎩0 dacă ( x,y) ∈ D*\D

Integrala pe D se va aproxima cu y
*
∫∫ f ( x, y )dxdy ≅ ∫ f ( x, y )dxdy ,
D D*

iar ultima integrală se calculează cu D


una din formule (2) sau (3). D*

O x

§5.4. Diferenţe divizate. Polinomul de interpolare al lui Newton

Fie Pn ( x; x 0 ,..., x n ) polinomul Lagrange care interpolează funcţia

f : [a , b] → R în nodurile x 0 ,..., x n şi fie

Q (x ) = Pn ( x; x 0 ,..., x n −1 , x n ) − Pn −1 (x; x 0 ,..., x n −1 ) (1)

Evident, Q este un polinom de gradul n, care se anulează în nodurle x 0 , x1 , ... ,

x n −1 , deoarece Q(xi) = f(xi) − f(xi) = 0, pentru orice i = 0, n − 1 . Rezultă că

polinomul Q este de forma:


Q(x) = a(x−x0) ... (x−xn) . (2)
Coeficientul a se numeşte diferenţa divizată de ordinul n corespunzătoare
nodurilor x0, x1, ... , xn şi funcţiei f şi se notează cu f[x0, x1, ..., xn] .
Aşadar, avem:
Q(x) = (x−x0) ... (x−xn) f [ x0, x1, ..., xn] (3)
Din (1) rezultă, pe de o parte, că f[x0, x1, ..., xn] este coeficientul lui xn în
polinomul lui Lagrange Pn(x; x0, x1, ... , xn), iar pe de altă parte că avem relaţia:
Pn(x; x0, x1, ..., xn) = Pn-1(x; x0, x1, ..., xn-1) +
+(x−x0)...(x−xn−1) f[ x0, ... , xn] (4)
178 Bazele Analizei Numerice

Particularizându-l pe n obţinem:
P0(x;x0) = f(x0)
P1(x;x0, x1) = f(x0) + (x−x0) f[ x0, x1]
P2(x;x0, x1, x2) = f(x0) + (x−x0) f[ x0, x1]+ (x−x0) (x−x1) f[ x0, x1, x2]
......................
Pn(x) = f(x0) + (x−x0) f[ x0, x1] +...+ (x−x0)...(x−xn−1) f[ x0, x1, ..., xn] (5).
Forma (5) a polinomului de interpolare poartă numele de polinomul de
interpolare al lui Newton.
În continuare prezentăm principalele proprietăţi ale diferenţelor divizate.
1) Diferenţa divizată de ordinul n este invariantă la permutarea nodurilor, adică:
f[ x0, x1, ..., xn]= f [ xi0 , xi1 , ..., xin ] .

Într-adervăr ştim că polinomul de interpolare al lui Lagrange are forma:


(x − x1 ) ⋅ ... ⋅ (x − x n )
Pn ( x; x0 ,..., x n ) = f (x ) + ⋅ ⋅ ⋅ +
(x0 − x1 ) ⋅ ... ⋅ (x0 − xn ) 0
(6)
(x − x0 ) ⋅ ... ⋅ (x − x n−1 )
+ f (x )
(x n − x1 ) ⋅ ... ⋅ (x n − xn−1 ) n
Egalând coeficientul lui xn din (3) şi (6) obţinem:
f ( x0 ) f ( xn )
f [x0 , x1 ,..., xn ] = + ... + (7)
( x0 − x1 )...(x0 − xn ) ( xn − x0 )...(xn − xn−1 )
Cum expresia din membrul drept al relaţiei (7) este simetrică în raport cu cu
nodurile x0, x1, ..., xn , rezultă că diferenţa divizată dordinul n , f[ x0, x1, ..., xn] este
invariantă în raport cu permutarea nodurilor.
f [x1 ,..., x n ] − f [x0 ,..., x n−1 ]
2) f [x0 ,..., x n ] =
x n − x0
Pentru a demonstra această proprietate observăm pentru început că polinomul lui
Lagrange verifică următoarea relaţie:
( x − x0 ) Pn−1 ( x; x1 ,...x n ) − ( x − x n ) Pn−1 ( x; x 0 , x1 ,...x n−1 )
Pn ( x; x0 ,..., x n ) =
x n − x0
(8)
Într-adevăr, dacă notăm cu R( x) membrul drept al relaţiei (6) obţinem:
(x − x n )
R( x0 ) = − 0 f ( x0 ) = f ( x0 )
x n − x0
Integrarea şi derivarea numerică 179

(x n − x0 )
R( x n ) = − f ( xn ) = f ( xn )
x n − x0
Pentru nodurile xi , i = 1, n − 1 avem
( x − x 0 ) f ( xi ) − ( xi − x n ) f ( xi )
R ( xi ) = − i = f ( xi )
x n − x0
Aşadar, R ( xi ) = f ( xi ), i = 0, n, deci R ( x) ≡ Pn (x; x 0 ,..., x n ) conform unicităţii
polinomului de interpolare Lagrange. Egalând coeficientul lui xn din membrul
stâng al relaţiei (8) cu coeficientul lui xn din membrul drept al acestei relaţii
f [x1 ,..., x n ] − f [x0 ,..., x n−1 ]
obţinem f [x0 ,..., x n ] = .
x n − x0
3) Dacă f este de clasă C n+1 , atunci pentru orice t ∈ [a, b] , t ≠ xi , i = 0, n
f ( n+1) (ξ t )
avem f [x0 , x1 ,..., x n , t ] = , unde ξ t∈ [a, b ] .
(n + 1)!
Într-adevăr, fie Pn +1 ( x ) = Pn +1 ( x; x 0 ,..., x n , t ) polinomul Lagrange care
interpolează funcţia f în nodurile x 0 ,..., x n , t . Atunci avem
Pn+1(x) = Pn(x) + (x−x0) ... (x−xn) f[ x0, x1, ..., xn, t].
Deoarece Pn +1 (t ) = f (t ) rezultă că eroarea în punctul t este
E(f;t) = f(t) − Pn(t) = (t−x0) ... (t−xn) f[ x0, x1, ..., xn, t]. (9)

Pe de altă parte din Teorema 2, §4.1 ştiim că dacă f este de clasă C n+1 , atunci
există ξ t∈ [a, b ] astfel încât

f ( n+1) (ξ t )
E( f ; t) = (t − x0 )...(t − x n ) (10)
(n + 1)!
Din (9) şi (10) rezultă

f ( n+1) (ξ t )
f [x0 , x1 ,..., x n , t ] = , unde ξ t ∈ [a, b]. (11)
(n + 1)!

4) Teorema 1 (Hermite−Gennochi). Fie x0, x1,..., xn , (n+1) puncte distincte din


intervalul ( a, b) şi fie f∈C(n)(a,b). Atunci:

f [x 0 , x1 ,..., x n ] = ∫ ... ∫ f ( n ) (t 0 x 0 + t1 x1 + ... + t n x n )dt1 ...dt n


Tn
180 Bazele Analizei Numerice

⎧⎪ n ⎫⎪ n
unde Tn = ⎨(t1 ,..., t n ) ∈ R n t i ≥ 0, i=1,n, ∑ t i ≤ 1⎬ , iar t0 = 1 − ∑ ti .
⎪⎩ i=1 ⎪⎭ i =1

Demonstraţie. Fie T1 = [0, 1] iar t0 = 1−t1.


1 1 1
∫ f ′(t 0 x0 + t1 x1 )dt1 = ∫ f ′[x0 + t1 ( x1 − x0 )]dt1 = f [x0 + t1 ( x1 − x0 )] 0 =
1

0 0 x1 − x0
f ( x1 ) − f ( x0 )
= = f [x0 , x1 ]
x1 − x0

T2 ={ (t1,t2)⏐t1+t2≤1, t1≥0, t2≥0 }, iar t0 = 1−t1−t2.


1 ⎛ 1− t1 ⎞
⎜ f " ( x + t ( x − x ) + t ( x − x ) )dt ⎟dt =
∫∫ f " ( x 0 t 0 + x1t1 + x 2 t 2 ) dt1dt 2 = ∫⎜ ∫ 0 1 1 0 2 2 0 2 ⎟ 1
T2 0⎝ 0 ⎠
1
⎛ 1 1− t ⎞
= ∫ ⎜⎜ f ′(x0 + t1 ( x1 − x0 ) + t 2 ( x 2 − x0 ) ) 0 1 ⎟⎟dt1 =
x − x0
0⎝ 2 ⎠

1 ⎡ ⎤
1 1
= ⎢ ∫ f (x 2 + t1 ( x1 − x 2 )dt1 − ∫ f ′( x0 + t1 ( x1 − x0 )dt1 ⎥ =

x 2 − x0 ⎢ ⎥⎦
⎣0 0
1
= ( f [x1 , x2 ] − f [x0 , x1 ] ) = f [x0 , x1 , x2 ]
x2 − x0

t2 În continuare demonstraţia se face prin inducţie


(0,1) matematică.
T2 Trecerea de la Tn la Tn+1 este asemănătoare cu
O (1,0) t1 trecerea de la T1 la T2 . ‰

Corolarul 1. Dacă f ∈ Cn+2(a,b) . Atunci există


d
f [x0 ,..., x n , x ] = f [x0 ,..., x n , x, x ] .
dx
Demonstraţie. Din Teorema 1 rezultă

f [x 0 , x1 ,..., x n , x ] = ∫ ... ∫ f ( n +1) (t 0 x 0 + t1 x1 + ... + +t n +1 x)dt1 ...dt n dt n +1 (12)


Tn +1
Integrarea şi derivarea numerică 181

Membrul drept este o integrală cu parametru şi anume cu parametrul x.


(n+1) 1
Deoarece f este de clasă C rezultă că această integrală este derivabilă, deci că
d
există f [x0 ,..., x n , x ] . Mai departe, ţinând seama de (7) şi (9) rezultă:
dx
d f [x 0 ,..., x n , x + h ] − f [x 0 ,..., x n , x ]
f [x 0 ,..., x n , x ] = lim =
dx h →0 h
f [x 0 ,..., x n , x + h ] − f [x, x 0 ,..., x n ]
= lim = .
h →0 h
= lim f [x, x 0 ,..., x n , x + h ] = f [x, x 0 ,..., x n , x ] =
h →0
= f [x 0 ,..., x n , x, x ]
‰

§5.5. Derivarea numerică

Aproximarea numerică a derivatelor se foloseşte de regulă în două situaţii.


Prima situaţie se referă la calculul derivatelor unei funcţii dată printr−un tabel de
valori. A doua situaţie se referă la aproximarea derivatelor în cadrul metodelor
numerice de rezolvare a ecuaţiilor diferenţiale sau cu derivate parţiale.
O cale firească de abordare a derivării numerice, este aceea de a aproxima
derivata funcţiei f prin derivata polinomului Lagrange Pn ( x; x 0 ,..., x n ) care
interpolează funcţia f în nodurile x0, x1, ..., xn. În continuare notăm derivata
numerică a funcţiei f cu Dh f şi o definim prin:

Dh f ( x) def Pn′ ( x; x 0 ,..., x n ) . (1)

Aşadar folosim aproximarea f ′( x ) ≈ Dh f ( x ) .

Pentru n = 1 avem P1 (x; x 0 , x1 ) = f ( x 0 ) + (x − x 0 ) f [x 0 , x1 ] deci


f ( x1 ) − f (x0 ) f ( x1 ) − f ( x0 )
f ′( x) ≈ P1′(x; x0 , x1 ) = f [x0 , x1 ] = = , ∀x
x1 − x0 h
Aşadar, pentru două noduri avem aproximarea:
182 Bazele Analizei Numerice

f ( x1 ) − f (x0 )
f ′( x0 ) ≈ (2)
h
Pentru n = 2 avem
P2 (x; x 0 , x1 , x 2 ) = f ( x 0 ) + (x − x 0 ) f [x 0 , x1 ] + (x − x 0 )(x − x1 ) f [x 0 , x1 , x 2 ] deci

P2′ (x; x0 , x1 , x2 ) = f [x0 , x1 ] + [2 x − (x0 + x1 )] f [x0 , x1 , x2 ] , ∀x


Dacă presupunem în plus că nodurile sunt echidistante rezultă:
P2′ (x 0 ; x 0 , x1 , x 2 ) = f (x 0 , x1 ) + (x 0 − x1 ) f [x 0 , x1 , x 2 ] =
f (x1 ) − f (x 0 ) f [x1 , x 2 ] − f [x 0 , x1 ]
= − (x1 − x 0 ) =
x1 − x 0 x 2 − x0
f (x 2 ) − f (x1 ) f (x1 ) − f (x 0 )

f (x1 ) − f (x 0 ) h h
= −h =
h 2h
− 3 f (x 0 ) + 4 f (x1 ) − f (x 2 )
=
2h
Aşadar, pentru trei noduri echidistante avem aproximarea:
− 3 f (x0 ) + 4 f (x1 ) − f (x 2 )
f ′( x0 ) ≈ (3)
2h
În continuare ne propunem să evaluăm eroarea la derivarea numerică. Dacă notăm
cu Un(x) = (x−x0) ... (x−xn) , atunci din relaţiile (10) şi (11) de la §5.4 rezultă
E(f;x)=f(x)−Pn(x; x0 , ..., xn) = Un(x)f [x0 , ..., xn, x].
Ţinând seama acum şi de Corolarul 1 obţinem:
f ′ (x)−Dhf(x) = Un'(x) f[x0, ..., xn, x] + Un(x) f[x0, ..., xn, x, x].

Aplicând din nou relaţia (10) din §5.4 rezultă


~
f ( n +1) (ξ x ) f ( n + 2) (ξ x )
f ′( x) − Dh f ( x) = U n′ ( x) + U n ( x) (4)
(n + 1)! (n + 2)!

Pentru n = 1 , U 1 ( x ) = (x − x 0 )(x − x1 ) şi U 1′ ( x ) = 2 x − (x 0 + x1 ) . Aşadar în acest


caz
~
f " (ξ x0 ) f ′′′(ξ x0 ) h
f ′( x 0 ) − D h f ( x 0 ) = U 1′ (x 0 ) +0 =− f " (ξ x0 ) (5)
2! 3! 2
Integrarea şi derivarea numerică 183

f ( x1 ) − f (x0 )
În concluzie, în cazul a două noduri avem f ′( x0 ) ≈ şi eroarea este
h
dată de relaţia
f ( x1 ) − f (x0 ) h
f ′( x0 ) − = − f " (ξ x0 ) (6)
h 2
unde ξ x0 ∈ ( x0 , x1 ) .

În cazul a 3 noduri echidistante n = 2 avem:


~
f ′′′(ξ x0 ) f iv (ξ x0 )
f ′( x0 ) − P2′ f ( x0 ; x0 , x1 , x 2 ) = U 2′ ( x0 ) + U 2 ( x0 )
3! 4!
cum U 2 ( x ) = (x − x 0 )(x − x1 )(x − x 2 ) rezultă pe de o parte că U 2 (x 0 ) = 0 iar pe

de altă parte că U 2′ ( x) = (x 0 − x1 )(x 0 − x 2 ) = 2h 2 .


Aşadar eroarea de aproximare a derivatei va fi:

h2
f ′( x0 ) − P2′ f ( x0 ; x 0 , x1 , x 2 ) = f ′′′(ξ x0 ), unde ξ x 0 ∈ ( x 0 , x 2 ) .
3
În concluzie, în cazul a 3 noduri echidistante derivata se aproximează cu expresia:
− 3 f (x0 ) + 4 f (x1 ) − f (x 2 )
f ′( x0 ) ≈ = Dh f ( x 0 )
2h

h2
iar eroarea care se face este f ′( x0 ) − Dh f (x0 ) = f ′′′(ξ x0 ) (7)
3
În sfârşit să vedem cum se poate aproxima derivata de ordinul 2.
În cazul a 3 noduri echidistante avem
f ′′( x 0 ) = P2′′ ( x0 ; x0 , x1 , x 2 ) = 2 f [x 0 , x1 , x 2 ] =
f ( x 2 ) − 2 f ( x1 ) + f ( x 0 ) (8)
=
2
h
Se poate arăta că eroarea în acest caz este

h 2 IV
f " ( x0 ) − P2′′( x0 ) = − f (ξ x0 ) , unde ξ x0 ∈ ( x0 , x2 ) (9)
12
Derivarea numerică în MATLAB.
184 Bazele Analizei Numerice

MATLAB permite aproximarea derivatei numerice a unei funcţii folosind


diferenţele divizate, prin intermediul funcţiei diff.

Exemplu 1.
Să se aproximeze derivata funcţiei f(x) = ln(x4+x2+1) pe intervalul [0.5, 2.5] în
puncte echidistante (h = 0.1) folosind MATLAB. Secvenţa care realizeză această
aproximare este:
% Calculul derivatei numerice
x = 0.5:0.1:2.5; % punctele in care se face aproximarea
f(x) = log(x.^4+x.^2+1); % functia a carei derivata se doreste
disp('Valorile derivatei');
df = diff(log(x.^4+x.^2+1))./diff(x)
Se va afisa:
Valorile derivatei
1.2657 1.4967 1.6947 1.8499 1.9597 2.0270 2.0579 2.0600 2.0406
2.0060 1.9612 1.9100 1.8552 1.7989 1.7423 1.6866 1.6323 1.5798
1.5293 1.4809
Pentru calculul derivatei folosind diferenţele centrate se poate scrie secvenţa
MATLAB:
% Calculul derivatei numerice folosind diferentele divizate
x=0.55:0.1:2.5; % punctele in care se face aproximare
g=log(x. ^4+x. ^2+1; % functia a carei derivata se doreste
dg=g(3:length(g))−g(1:length(g)−2);
dx=x(3:length(x))−x(1:length(x)−2);
disp(‘Valorile derivatei’);
dy=dg./dx % derivata in punctele x=0.6 , 0.7 pana la 2.4
Se afişează rezultatele:
Valorile derivatei
Integrarea şi derivarea numerică 185

1.3812 1.5957 1.7723 1.9048 1.9934 2.0424 2.0589 2.0503 2.0233


1.9836 1.99356 1.8826 1.8270 1.7706 1.7145 1.6595 1.6060 1.5545
1.5051
Pentru a folosi polinomul de interpolare Newton pentru calculul derivatelor de
ordinul întâi şi doi pentru funcţia de mai sus, se poate scrie secvenţa MATLAB:
% Calculul derivatelor de ordinul intai si doi
% folosind polinomul de interpolare Newton in x(1)
x=0.5.0.1:1.3;
h=x(2)−x(1);
y=log(x.^4+x.^2+1); % functia ale carei derivate se aproximative
se calculeaza
d1y=diff(y);
d2(y)=diff(d2y);
d3y=diff(d2y);
d4(y)=diff(d3y);
d1f=(1/h)*(d1y(1)−d2y(1)/2+d3y(1)/3−d4y(1)/4),
d2f=(1/h^2)*(d2y(1)−d3y(1)+(11/12)*d4y(1));
disp(‘Derivata de ordinul intai in x(1)’);
disp(d1f);
disp(‘Derivata de ordinul doi in x(1)’);
disp(d2f);
Se afişează rezultatele:
Derivata de ordinul intai in x(1)
1.1416
Derivata de ordinul doi in x(1)
2.5519

Exemplul 2. Fie funcţia dată prin tabelul de valori:

xi 0 2
f(xi) 1 5
Să se calculeze f ′(0) folosind derivata polinomului de interpolare al lui
Lagrange.
Aproximând funcţia cu polinomul de interpolare al lui Lagrange, conform
(2) rezultă
f ( x1 ) − f ( x0 ) 5 −1
f ′( x0 ) ≈ , f ′( x0 ) ≈ =2 .
h 2
186 Bazele Analizei Numerice

Exemplul 3. Fie funcţia dată prin tabelul de valori:


xi 2 4 6
f(xi) 3 11 27

Să se calculeze f ′( 2) şi f ′′( 2) .
Aproximând funcţia cu polinomul de interpolare al lui Lagrange, conform
(3) rezultă
− 3 f (x0 ) + 4 f (x1 ) − f (x2 ) − 3 ⋅ 3 + 4 ⋅ 11 − 27
f ′( x0 ) ≈ , f ′(2) = =2 .
2h 2⋅2
De asemenea conform (8)

f ( x2 ) − 2 f ( x1 ) + f ( x0 ) 27 − 2 ⋅ 11 + 3
f ′′( x0 ) = , f ′′(2) = =2.
2 4
h
Integrarea şi derivarea numerică 187

Exerciţii

Folosind metoda trapezelor să se calculeze valoarea aproximativă a


următoarelor integrale:
π
2 sin x
1. ∫ dx , considerând n = 5 subintervale egale.
π x
12
π π π π π
R. h= , xi = +i⋅ , i = 1,4 , a = , b= , I=1.003 .
12 12 12 12 2

π
2 cos x
2. ∫ dx , considerând n = 4 subintervale egale.
π x
10
π π π π π
R. h= , xi = +i⋅ , i = 1,3 , a = , b= , I=0.86398 .
10 10 10 10 2
x2
3 −
3. 2 dx , considerând n = 4 subintervale egale.
∫e
0
3
R. h= = 0.75 , xi = 3 ⋅ i , i = 1,3 , a = 0 , b = 3 , I = 2.24845 .
4
Pentru fiecare din cele trei exerciţii de mai sus să se calculeze valoarea
aproximativă a integralei dublând valoarea lui n .

Să se calculeze valoarea aproximativă a următoarelor integrale folosind metoda


lui Simpson, considerând m , numărul de subintervale egale, specificat în fiecare
caz în parte:
π
2 cos x
5. ∫ dx (m = 8 )
π x
10
π π π π π
R. n=4, h= , xi = +i⋅ , i = 1,7 , a = , b= ,
20 10 20 10 2
I = 0.8452 .
188 Bazele Analizei Numerice

π
2 sin x
6. ∫ dx (m = 8 )
π x
12
5π π π π π
R. n=4, h= , xi = +i⋅ , i = 1,7 , a = , b= ,
96 12 96 12 2
I = 1.00966 .
x2
3 −
7. 2 dx , (m = 8 )
∫e
0
3 3
R. h= = 0.375 , xi = ⋅ i , i = 1,7 , a = 0 , b = 3 , I = 2.24991 .
8 8
8. Fie funcţia dată prin tabelul de valori:
xi 0 2
f(xi) -1 3

Să se calculeze f ′(0) folosind derivata polinomului de interpolare al lui


Lagrange.
R. f ′(0) = 2
9. Fie funcţia dată prin tabelul de valori:
xi 0 1 2
f(xi) 1 4 15
Să se calculeze f ′(0) şi f ′′(0) folosind derivata polinomului de
interpolare al lui Lagrange.
R. f ′(0) = −1 , f ′′(0) = 8
10. Fie funcţia dată prin tabelul de valori:
xi 0 2 4
f(xi) 1 9 65

Să se calculeze f ′(0) şi f ′′(0) folosind derivata polinomului de


interpolare al lui .
R. f ′(0) = −8 , f ′′(0) = 12
Integrarea şi derivarea numerică 189

11. Folosind formula Gauss−Legendre de ordinul 4, să se calculeze valoarea


x2
3 −
aproximativă a integralei 2 dx .
∫e
0
b
R. În general pentru calculul aproximativ al integralelor ∫ f ( x)dx se face
a
b−a b+a
schimbarea de variabilă x= t+ , pentru a avea limitele de integrare
2 2
–1 şi 1 şi astfel se obţine formula
b b−a n
∫ f ( x)dx = ∑ Ai f ( xi ) . (2)
a 2 i =1
2
1 ⎛ 3t +3 ⎞
3 1 − ⎜ ⎟
Se ajunge la integrala ∫ e 2⎝ 2 ⎠ dt căreia i se poate aplica formula
2 −1
Gauss−Legendre de ordinul 4. Polinomul Legendre de gradul 4 este
6 3
P4 ( x) = x 4 − x 2 + , are rădăcinile x1 =–0.8611 , x2 = –0.34 , x3 = 0.34 ,
7 35
x4 = 0.8611 . Coeficienţii Ai formula Gauss−Legendre de ordinul 4 sunt:
A1 = 0.34785 = A4 , A2 = 0.65215 = A3 . I = 1.25018 .
12. Folosind formula Gauss−Legendre de ordinul 5, să se calculeze valoarea
2
2
aproximativă a integralei ∫ cos x dx .
0
R. Se face schimbarea de variabilă x = t+1 , pentru a avea limitele de
1
2
integrare –1 şi 1 şi astfel se ajunge la integrala ∫ cos(t + 1) dt căreia i se
−1
poate aplica formula Gauss−Legendre de ordinul 5. Polinomul Legendre de gradul
10 15
5 este P5 ( x) = x 5 − x 3 + x , are rădăcinile
9 63
x1 =–0.90618 , x2 = –0.53847 , x3 = 0 , x4 = 0. 53847, x5 = 0.90618 .
Coeficienţii Ai formula Gauss−Legendre de ordinul 5 sunt:
A1 = 0.23693 = A5 , A2 = 0.47863 = A4 , A3 = 0.56889 . I = 0.46123 .
1
13. Să se determine valoarea aproximativă a integralei ∫ sin x 2 dx folosind
0
formula Gauss−Legendre de ordinul 3.
190 Bazele Analizei Numerice

1
2
R. Înlocuind x cu t+1 integrala devine ∫ sin(t + 1) dx şi acesteia i se
−1
poate aplica formula Gauss−Legendre de ordinul 3. Ţinând seama de Exemplul
din Capitolul 5 §2 se obţine I=0.31028 .

Să se calculeze valoarea aproximativă a următoarelor integrale duble:


14. ∫∫ e
(
− x2 + y2 )dxdy , mulţimea de integrare fiind precizată de
D
a) D = { (x,y)∈R2 | |x|≤0.5 , |y|≤1 } ,
b) D = { (x,y)∈R2 | x2+y2≤4 , x≥0 , y≥0 }
folosind formula trapezelor cu n = 4 subintervale egale pe axa Ox şi m = 4
subintervale egale pe axa Oy.
b⎛d ⎞
R. Pentru calculul integralei I = ∫∫ f ( x, y )dxdy = ∫ ⎜ ∫ f ( x, y )dy ⎟dx unde D
⎜ ⎟
D a⎝ c ⎠
= [a, b]×[c, d] se foloseşte formula trapezelor repetată
h⋅k
I= { f (a, c) + f (a, d ) + f (b, c) + f (b, d ) +
4
⎡ m−1 m −1 n −1 n −1 ⎤
+ 2⎢ ∑ f ( a, y j ) + ∑ f (b, y j ) + ∑ f ( xi , c) + ∑ f ( xi , d ) + ⎥ +
⎣⎢ j =1 j =1 i =1 i =1 ⎦⎥
n −1m−1
+ 4 ∑ ∑ f ( xi , y j ) }
i =1 j =1
(1)

unde
b−a d −c
h= , k= , xi = a + ih , i = 1,n-1 , y j = c + jk , j = 1,m-1
n m
a) a = −0.5 , b = 0.5 , c = −1 , d = 1 , h = 0.25 , k = 0.5 , I = 1.33754
b) Se trece la coordonate polare pentru a transforma sfertul de disc de rază
2 din cadranul întâi într−un dreptunghi
⎧ ⎡ π⎤
⎪ x = ρ ⋅ cos θ θ ∈ ⎢0, 2 ⎥
⎪ ⎣ ⎦
⎨ , iar iacobianul este J = ρ
⎪ y = ρ ⋅ sin sθ ρ ∈ [0, 2]


şi se aplică formula de mai sus integralei
Integrarea şi derivarea numerică 191

π
( )
2 2 2⎛ 2 2 ⎞
I = ∫∫ e − x + y dxdy = ∫ ⎜ ∫ ρ ⋅ e − ρ dρ ⎟dθ
⎜ ⎟
D 0⎝0 ⎠
şi rezultă I = 0.73332 .

15.
(
∫∫ 2
)
ln x 2 + y 2
dxdy , mulţimea de integrare fiind precizată de
2
D x + y
a) D = { (x,y)∈R2 | 1≤x≤2 , 0≤y≤2 } ,
b) D = { (x,y)∈R2 | 1≤x2+y2≤4 , 0≤x , 0≤y }
folosind formula trapezelor cu n = 2 subintervale egale pe axa Ox şi m = 4
subintervale egale pe axa Oy.
R. a) Înlocuind în formula (1)

a = 1 , b = 2 , c = 0 , d = 2 , h = 0.5 = k şi f ( x, y ) =
( )
ln x 2 + y 2
x2 + y2
se obţine I = 0.636 .
b) Trecând la coordonate polare se aplică formula (1) pentru
π 2 ln ρ
a=1, b=2, c=0, d= , f ( ρ ,θ ) =
2 ρ
şi se obţine I = 0.73976 .
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 191

6. Rezolvarea numerică
a problemei Cauchy pentru ecuaţii diferenţiale

§6.1. Generalităţi

Ecuaţiile diferenţiale reprezintă unul dintre cele mai importante


instrumente matematice, necesar pentru înţelegerea unor rezultate din mecanică,
fizică, etc.
În acest capitol prezentăm metode numerice pentru rezolvarea problemei
Cauchy pentru ecuaţii diferenţiale.
Fie D = [a, b] x J ⊂ R2, f : D→ R şi (x0, y0)∈D. Problema Cauchy
pentru ecuaţia diferenţială
y ′ = f ( x, y ) , (1)
constă în determinarea unei soluţii a ecuaţiei (1) , adică a unei funcţii derivabile
y : I ⊂[a, b]→ R astfel ca pentru orice x∈I, (x, y(x))∈D şi y ′ = f ( x, y ( x)) ,
(∀) x ∈ I care satisface condiţia iniţială
y(x0) = y0 . (2)
După cum este cunoscut, găsirea soluţiei exacte a problemei (1)-(2) nu este
posibilă decât în anumite cazuri. De exemplu, determinarea soluţiei exacte, prin
tehnici clasice, a ecuaţiei aparent simple
y ′ = x 2 + y 2 , y (0) = 1 ,
nu este posibilă. Se justifică astfel necesitatea recurgerii la metode aproximative
pentru rezolvarea problemei Cauchy.
Reamintim, pentru început, câteva rezultate privind existenţa, unicitatea şi
stabilitatea soluţiei acestei probleme.

Definiţie. Funcţia f : D→ R se numeşte lipschitziană în raport cu y∈J, dacă


există o constantă L > 0 astfel ca pentru orice (x, y)∈D şi (x, z)∈D are loc
inegalitatea
f ( x, y ) − f ( x , z ) ≤ L y − z . (3)
192 Bazele Analizei Numerice

∂f
Observaţie. Dacă există şi este mărginită pe D, atunci f este lipschitziană
∂y
pe D. Într-adevăr, din Teorema lui Lagrange rezultă
∂ f
f ( x, y ) − f ( x , z ) = ( x, c)( y − z ),
∂ y
pentru un anumit c între y şi z, deci putem alege
∂ f
L = max ( x, y ) . (4)
( x, y )∈D ∂ y

În ce priveşte existenţa şi unicitatea soluţiei problemei (1)-(2), are loc


următoarea teoremă.

Teorema 1. Presupunem că sunt îndeplinite condiţiile:


(i) f este continuă pe [a, b] în raport cu x ;
(ii) f este lipschitziană pe D în raport cu y ;
(iii) (x0, y0) este punct interior lui D.
Atunci pentru un α > 0 convenabil, există o soluţie unică pe I=[x0–α, x0+α] a
problemei (1) - (2).

∂f
Exemplul 1. Fie ecuaţia y ′ = 1 + sin( xy ) , D = [0,1] × R . Deoarece = xcos xy ,
∂y
conform observaţiei de mai sus, putem lua L = 1. Atunci pentru orice (x0, y0) cu
0 < x0 < 1 există o soluţie a problemei Cauchy pentru ecuaţia dată pe un anumit
interval [x0–α, x0+α] ⊂ [0, 1].

După cum se ştie, soluţia problemei (1)−(2) se află cu metoda


aproximaţiilor succesive.
Fie
y0(x) = y0,
x
y n ( x) = y 0 + ∫ f (t , y n−1 (t ))dt , x ∈ I , n = 1, 2, ... .
x0
Atunci şirul de funcţii (yn)n este uniform convergent pe intervalul I şi
limita sa y = lim y n este soluţie unică a problemei (1)-(2). Mai mult, are loc
n →∞
MLn C n +1 LC
y ( x) − y n ( x) ≤ e , (5)
(n + 1)!
unde
M = sup f ( x, y 0 ) , C = max( a − x 0 , b − x 0 ) .
x∈I
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 193

Metoda aproximaţiilor succesive (Picard) este o metodă aproximativă de


rezolvare a problemei Cauchy. Se aproximează soluţia y(x) cu y n (x) şi se
cunoaşte o evaluare a erorii.

Exemplul 2. Fie ecuaţia y ′ = y , y (0) = 1 , D = [− 1, 1]× R . Atunci M=1, L


= 1. Şirul aproximaţiilor succesive este:
x
y1 ( x) = 1 + ∫ 1 ⋅ dt = 1 + x ,
0
x x2
y 2 ( x) = 1 + ∫ (1 + t )dt = 1 + x + ,
0 2
x t2 x x2 x3
y 3 ( x) = 1 + ∫ (1 + t + )dt = 1 + + +
0 2 1! 2! 3! ,
............................................................
x x 2 x3 xn
y n ( x) = 1 + + + + ... + .
1! 2! 3! n!
Este clar că y n → y = ex, care este soluţia exactă a problemei.

Metoda aproximaţiilor succesive are dezavantajul că presupune calculul


unor integrale, lucru dificil de realizat. Din această cauză, această metodă este mai
puţin folosită în practică, metoda având o importanţă deosebită, mai ales din punct
de vedere teoretic.
În ceea ce priveşte stabilitatea soluţiei problemei (1)-(2), ne interesează
comportamentul soluţiei la modificări mici ale funcţiei f(x,y) şi ale datei iniţiale y0.
Considerăm, deci, problema perturbată
y ′ = f ( x, y ) + δ ( x ) , (6)
y ( x0 ) = y 0 + ε , (7)
cu aceleaşi ipoteze asupra funcţiei f ca în Teorema 1. Presupunem, în plus, că
δ (x) este continuă pe [a, b]. Atunci problema (6)-(7) are soluţie unică, notată
y ( x; δ , ε ) .

Teorema 2. Presupunem satisfăcute ipotezele Teoremei 1 şi că funcţia δ (x) este


continuă pe [a, b]. Atunci problema (6)-(7) va avea soluţie unică y ( x; δ , ε ) pe un
interval [x0-α, x0+α] , α > 0, uniform pentru toate perturbările ε şi δ (x) ce
satisfac:
ε ≤ ε0 , δ ∞ ≤ ε0 ,
cu ε 0 suficient de mic. În plus, dacă y(x) este soluţia problemei neperturbate,
atunci
194 Bazele Analizei Numerice

max y ( x) − y ( x; δ , ε ) ≤ k ( ε + α δ ∞ ) , (8)
x − x0 ≤α
cu k = 1 /(1 − α L) .

Utilizând acest rezultat, se poate afirma că problema (1)-(2) este corect


pusă sau stabilă. Deci dacă se fac mici modificări în ecuaţia diferenţială sau în
data iniţială, atunci soluţia nu se modifică semnificativ.
Soluţia y depinde continuu de datele problemei, anume funcţia f şi
data iniţială y0. Din punct de vedere fizic, semnificaţia Teoremei 2 constă în
faptul că pentru fenomene fizice descrise de ecuaţii diferenţiale, mici abateri sau
erori în condiţiile iniţiale sau în însăşi legea de evoluţie, nu deformează prea
puternic procesul. Rezultatul este important cu atât mai mult cu cât asemenea
perturbaţii sau erori sunt întotdeauna inevitabile. Se poate întâmpla ca o problemă
să fie stabilă, dar prost condiţionată în raport cu calculul numeric, deşi asemenea
situaţii nu apar prea des în practică.
Pentru a înţelege mai bine când aceasta se poate produce, vom estima
perturbările soluţiei y(x), datorate perturbărilor în problemă. Vom simplifica
discuţia considerând numai perturbările ε în data iniţială y0 ; perturbările δ (x)
intervin în răspunsul final conform (8).
Perturbăm deci, valoarea iniţială y0 ca în (7). Fie y(x;ε) soluţia
perturbată. Atunci
y ′( x; ε) = f ( x, y ( x; ε )), x 0 − α ≤ x ≤ x 0 + α ,

y ( x0 ; ε ) = y 0 + ε
Dacă y(x) este soluţia problemei neperturbate (1)-(2) şi z(x) = y(x;ε) − y(x)
este eroarea, atunci
∂ f ( x, y ( x))
z ′( x; ε ) = f ( x, y ( x; ε )) − f ( x, y ( x)) ≈ ⋅ z ( x; ε ) , (9)
∂ y
z ( x0 ; ε ) = ε .
Aproximarea (9) este valabilă când y(x; ε) este suficient de aproape de
y(x) , ceea ce se întâmplă pentru valori mici ale lui ε şi intervale mici
[x0-α, x0+α].
Ecuaţia diferenţială aproximativă (9) se poate integra uşor. Se obţine
⎡ x ∂f (t , y (t )) ⎤
z ( x; ε ) ≈ ε exp ⎢ ∫ dt ⎥.
⎢⎣ x0 ∂t ⎥⎦
Dacă derivata parţială satisface
∂ f
(t , y (t )) ≤ 0, x 0 − t ≤ α ,
∂ y
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 195

atunci z ( x; ε ) rămâne mărginită de ε când x creşte. În acest caz, se spune că


problema Cauchy este bine condiţionată. Ca exemplu de comportare opusă,
considerăm problema
y ′ = λy + g ( x) , y (0) = y 0 , (10)
∂f
cu λ > 0 . Cum = λ , putem calcula exact z ( x; ε ) = ε e λx .
∂y
Atunci perturbarea lui y(x) se măreşte când x creşte.

Exemplul 3. Ecuaţia diferenţială


y ′ = 100 y − 101e − x , y (0) = 1, (11)
are soluţia y ( x; ε ) = e − x + ε e100 x , care se depărtează rapid de soluţia exactă.
Spunem că problema (11) este prost condiţionată.

Revenim acum la problema (1)-(2). Din considerente practice, se


presupune că x0 = a , adică se înlocuieşte condiţia (2) cu
y(a) = y0 . (12)
Această presupunere nu este restrictivă, pentru că dacă am găsit un
algoritm care rezolvă problema (1)-(12), atunci cu acest algoritm putem rezolva şi
problema (1)-(2). Într-adevăr, fie I1 = [a, x 0 ] şi I 2 = [x 0 , b] .
Pe intervalul I1 facem schimbarea de variabilă X = x 0 − x . Atunci
y ( x) = y ( x 0 − X ) = Y ( X ) şi ecuaţia (1) devine
Y ′( X ) = − f ( X , Y ) , X ∈ [0, x 0 − a ] , (13)
iar condiţia iniţială (12) devine
Y(0) = y0 . (14)
Metodele numerice pentru rezolvarea problemei (1)-(12) constau în
alegerea unor noduri (de obicei, echidistante) x k = a + kh, k∈N şi determinarea
unor valori aproximative ale soluţiei exacte y(x) în aceste noduri, valori pe care
le notăm cu yk. Aşadar yk ≅ y(xk) .

Se cunosc două clase importante de metode numerice pentru rezolvarea


problemei Cauchy.
1. Metode directe (uni-pas) în care y k este calculat, printr-o relaţie de
recurenţă, în funcţie numai de valoarea y k −1 calculată anterior. În această
categorie intră metoda Taylor şi metodele Runge-Kutta.
2. Metode indirecte (cu mai mulţi paşi) în care y k se calculează printr-o
relaţie de recurenţă în funcţie de valorile precedente y k − m ,..., y k − 2 , y k −1 .
În această categorie intră metodele Adams-Bashforth, Adams-Moulton şi
metoda predictor-corector.
196 Bazele Analizei Numerice

§6.2. Metode directe

Metoda lui Taylor (1685-1731). Fie nodurile echidistante xn = x0+nh ,


x0 = a şi y=y(x) soluţia exactă a problemei (1)-(2).
Aşadar y ′( x) = f ( x, y ( x)) , y ( x 0 ) = y 0 .
Presupunem că f este diferenţiabilă de un număr suficient de ori. Cum
x1 = x0+h , din formula lui Taylor rezultă
h h2 h p ( p)
y ( x1 ) = y ( x 0 + h) = y ( x 0 ) + y ′( x 0 ) + y ′′( x 0 ) +....+ y ( x 0 ) + R p +1 ,
1! 2! p!
unde
y ( p +1) (ξ ) p +1
R p +1 = h , ξ ∈ ( x 0 , x1 ) .
( p + 1)!
Din y ′( x) = f ( x, y ( x)) rezultă succesiv
∂f ∂f
y ′′( x) = ( x, y ( x)) + ( x, y ( x)) y ′( x) =
∂x ∂y
∂f ∂f
= ( x, y ( x)) + ( x, y ( x)) f ( x, y ( x)) ,
∂x ∂y
∂2f ∂2f ⎛∂ 2 f ∂ 2 f ⎞ ∂ f ⎛ ∂ f ∂f ⎞
y ′′′( x) = + ⋅ y′ + ⎜ + y ′⎟ f + ⎜⎜ + ⋅ y ′ ⎟⎟ =
∂x∂y ⎜ ⎟
∂x 2 ⎝ ∂x∂y ∂y ∂y ⎝ ∂x ∂ y
2
⎠ ⎠
2
∂2 f ∂2 f ∂ 2 f 2 ∂f ∂f ⎛ ∂f ⎞
= +2 f + f + ⋅ + ⎜⎜ ⎟⎟ ⋅ f etc.
∂x 2 ∂x∂y ∂y 2 ∂y ∂x ⎝ ∂y ⎠
Atunci:
y ′( x 0 ) = f ( x 0 , y ( x 0 )) = f ( x 0 , y 0 ) ,
∂f ∂f
y ′′( x 0 ) = ( x 0 , y 0 ) + ( x0 , y 0 ) f ( x0 , y 0 ) ,
∂x ∂y
∂2f ∂2f ∂2f
y ′′′( x 0 ) = ( x0 , y 0 ) + 2 ( x0 , y 0 ) f ( x0 , y 0 ) + ( x0 , y 0 ) f 2 ( x0 , y 0 ) +
∂x 2 ∂x∂y ∂y 2

2
∂f ∂f ⎛ ∂f ⎞
( x0 , y 0 ) ⋅ ( x0 , y 0 ) + ⎜⎜ ( x0 , y 0 ) ⎟⎟ ⋅ f ( x0 , y 0 )
+ etc.
∂x ∂y ⎝ ∂y ⎠
Pentru p = 3 obţinem
h h2 h3
y ( x1 ) = y 0 + y ′( x 0 ) + y ′′( x 0 ) + y ′′′( x 0 ) + R4 .
1! 2! 3!
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 197

Aproximăm soluţia exactă în x1 , deci y(x1) , cu


h h2 h3
y1 = y 0 + y ′( x0 ) + y ′′( x 0 ) + y ′′′( x 0 ),
1! 2! 3!
eroarea fiind dată de
1
y ( x1 ) − y1 = R4 ≤ M 4 ⋅ h4 , unde M 4 = sup y IV ( x) ,
4! x∈[a , x1 ]
IV
unde y (x) se calculează ca mai sus.
În continuare, considerând soluţia problemei (1) ce satisface y(x1) = y1,
deci pornind cu punctul (x1, y1) , se determină y2 care aproximează pe y(x2) ,
ş.a.m.d. În general, y(xn) se aproximează cu yn , dat de
h h2 h3
y n = y n −1 + y ′( x n−1 ) + y ′′( x n −1 ) + y ′′′( x n −1 ) .
1! 2! 3!
Evident, erorile se acumulează.

y 3
Exemplul 4. Fie ecuaţia y ′ = 1 −, y (1) = . Alegem h = 0.1 . În acest caz
x 2
y ∂f y ∂f 1 ∂ f 2
2y ∂ 2 f 1 ∂2f
f ( x, y ) = 1 − , = , =− , =− , = , =0 .
x ∂x x 2 ∂y x ∂x 2 x 3 ∂x∂y x 2 ∂y 2
⎛ 3⎞ 1
Atunci y ′(1) = f ⎜1, ⎟ = − , y ′′(1) = 2 , y ′′′(1) = −6 .
⎝ 2⎠ 2
Deci x0 = 1 , x1 = 1.1 . Aproximăm y(1.1) cu y1 dat de
3 0.1 ⎛ 1 ⎞ (0.1) 2 (0.1) 3
y1 = + ⎜ − ⎟ + ⋅ 2 + ( −6) .
2 1! ⎝ 2 ⎠ 2! 3!
x 1
Obţinem y1 = 1.459 . Pe de altă parte, soluţia exactă a problemei este y = + ,
2 x
deci y(1.1) = 1.459090 .

Dezavantajul metodei Taylor constă în faptul că presupune calculul


derivatelor y(2), y(3), ... , y(k), ... , la fiecare pas, ceea ce este dificil de realizat.
Această deficienţă este înlăturată de metodele care urmează.

Dacă p = 1 se obţine metoda lui Euler (1707-1783). În acest caz


valorile aproximative yn ale lui y(xn) sunt date de
y n = y n −1 + h f ( x n −1 , y n−1 ) , n ≥ 1 , (15)
unde, evident, y0 = y(x0) .
198 Bazele Analizei Numerice

Metoda lui Euler are o interpretare geometrică foarte simplă: dacă s-a
determinat valoarea yn-1, pentru a determina yn , se consideră soluţia ecuaţiei (1)
care trece prin (xn-1, yn-1) (deci care satisface y(xn-1)=yn-1 ) ; se duce apoi tangenta
la graficul acestei soluţii, în punctul (xn-1, yn-1) ; se intersectează această tangentă
cu dreapta x=xn , obţinându-se yn. Din acest motiv, metoda lui Euler se mai
numeşte şi metoda liniilor poligonale. După cum se observă din figura de mai jos,
erorile se acumulează.

y2

y1
y (x 2)
y (x 1 )

y0

O x0 xx01 x2 x

Exemplul 5. Folosind metoda Euler să se determine soluţia aproximativă a


următoarei probleme Cauchy
⎧ y 1
⎪ y′ = y2 − −
⎨ x 4x 2
⎪⎩ y (1) = 0.5
în punctul x=2 în doi paşi.
În acest caz
x0=1 , y0=0.5 , n=2 , h = 0.5 , x1=1+0.5=1.5 , x2=2.
Atunci:
⎛ 0.5 1 ⎞
y1 = y 0 + h ⋅ f ( x0 , y 0 ) = 0.5 + 0.5⎜⎜ 0.5 2 − − ⎟⎟ = 0.25 ,
⎝ 1 4 ⋅ 12 ⎠
y 2 = y1 + h ⋅ f ( x1 , y1 ) = 0.14236 .

Metodele Runge-Kutta se deosebesc de metoda lui Taylor prin faptul că înlocuiesc


calculul derivatelor funcţiei f, prin evaluări ale lui f în diverse puncte. Metoda a
fost introdusă de matematicianul german Carl David Runge în 1895 şi dezvoltată
de un alt matematician german, Wilhelm Kutta, în 1901. Vom analiza în detaliu
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 199

metoda Runge-Kutta de ordinul doi. Valorile aproximative yn ale lui y(xn) sunt
date de
y n = y n −1 + a1h f ( x n−1 , y n −1 ) + a 2 h f ( x n−1 + b1h, y n −1 +
(16)
+ b2 h f ( x n−1 , y n −1 )) , n ≥ 1 ,
iar y0 = y(x0) . Constantele a1, a2, b1, b2 urmează a fi determinate. Dacă notăm
∂f ∂f
f = f ( x n −1 , y n−1 ) , f x = ( x n −1 , y n−1 ) , f y = ( x n −1 , y n −1 ) , atunci, din
∂x ∂y
formula lui Taylor pentru funcţii de două variabile, obţinem
(
y n = y n −1 + a1 h f + a 2 h f + b1 h f x + b2 h f y f + O(h 2 ) = )
(17)
( )
= y n −1 + (a1 + a 2 ) f ⋅ h + a 2 b1 f x + a 2 b2 f f y ⋅ h 2 + O(h 3 ) .
Pe de altă parte, din metoda lui Taylor, avem
h2
h
y n = y n −1 + f +
1! 2!
( )
f x + f y ⋅ f + O(h 3 ) . (18)
Identificând coeficienţii lui h şi h2 din (17) şi (18), rezultă

⎪a1 + a 2 = 1

⎪ 1
⎨a 2 b1 = (19)
⎪ 2
⎪ 1
⎪⎩a 2 b2 = 2 .

Deoarece sistemul (19) are 3 ecuaţii şi 4 necunoscute, una din necunoscute


poate fi aleasă arbitrar. De exemplu, dacă alegem b2 = α, atunci b1 = α , deci
⎧a1 + a 2 = 1

⎪ 1
⎨a 2α =
⎪ 2
⎪⎩b2 = α ,
astfel că formulele (16) se mai scriu
200 Bazele Analizei Numerice


⎪ y n = y n −1 + h(a1 g1 + a 2 g 2 ) , n ≥ 1


⎪g = f ( x , y )
⎪ 1 n −1 n −1


⎨ g 2 = f ( x n−1 + α h , y n −1 + α h g1 ) (20)


⎪a1 + a 2 = 1


⎪ 1
⎪a 2 α = .
⎩ 2
1
Pentru a1 = a 2 = , α = 1 , se obţine metoda Euler îmbunătăţită
2
h
y n = y n −1 + [ f (x n−1 , y n −1 ) + f (x n−1 + h, y n −1 + h f (x n−1 , y n −1 ))] , n ≥ 1 .
2
(21)
1
Pentru a1 = 0, a2 = 1 , α = , se obţine metoda Euler modificată
2
⎛ h h ⎞
y n = y n −1 + h f ⎜ x n −1 + , y n −1 + f ( x n −1 , y n −1 )⎟ , n ≥ 1 . (22)
⎝ 2 2 ⎠

Exemplul 6. Folosind metoda Euler îmbunătăţită să se determine soluţia


aproximativă a următoarei probleme Cauchy
⎧ y 1
⎪ y′ = y2 − −
⎨ x 4x 2
⎪⎩ y (1) = 0.5
în punctul x=2 în doi paşi.
În acest caz x0=1 , y0=0.5 , h = 0.5 , x1=1.5 , x2=2.
h
Cum y1 = y 0 + ⋅ [ f (x 0 , y 0 ) + f (x 0 + h, y 0 + h ⋅ f ( x 0 , y 0 ) )] , prin calcul
2
se obţine y1 = 0.32118 .
Similar
h
y 2 = y1 + ⋅ [ f ( x1 , y1 ) + f (x1 + h, y1 + h ⋅ f ( x1 , y1 ) )] =
2
= 0.32118 + 0.25 ⋅ (− 0.22207 − 0.12341) = 0.23481.

Exemplul 7. Folosind metoda Euler modificată să se determine soluţia


aproximativă a problemei Cauchy din Exemplul 6, în punctul x=2 în doi paşi.
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 201

⎛ h h ⎞
În acest caz y1 = y 0 + h ⋅ f ⎜ x 0 + , y 0 + f ( x 0 , y 0 ) ⎟ , deci y1 = 0.34031 , iar
⎝ 2 2 ⎠
h h
y 2 = y1 + h ⋅ f ( x1 + , y1 + f ( x1 , y1 )) = 0.25868 .
2 2

În continuare prezentăm metoda Runge-Kutta de ordinul patru în forma


particulară sub care este cel mai des utilizată ( W.Kutta - 1901).
h
y n = y n −1 + (g1 + 2 g 2 + 2 g 3 + g 4 ) , n ≥ 1 , (23)
6
unde
g1 = f ( x n −1 , y n−1 ),
h h
g 2 = f ( x n −1 + , y n −1 + g1 ),
2 2
h h
g 3 = f ( x n −1 + , y n −1 + g 2 ),
2 2
g 4 = f (x n−1 + h, y n −1 + hg 3 ),
şi y0 = y(x0).

Exemplul 8. Folosind metoda Runge-Kutta de ordinul 4 să se determine soluţia


aproximativă a problemei Cauchy din Exemplul 6, în punctul x=2 în doi paşi.
Folosind notaţiile din Exemplul 6 se obţine:
g1 = f ( x 0 , y 0 ) = −0.5 ,
h h
g 2 = f ( x 0 + , y 0 + ⋅ g1 ) = f (1.25, 0.5 − 0.25 ⋅ 0.5) = −0.31937 ,
2 2
h h
g 3 = f ( x 0 + , y 0 + ⋅ g 2 ) = f (1.25, 0.5 − 0.25 ⋅ 0.31937) = −0.31959 ,
2 2
g 4 = f ( x 0 + h, y 0 + h ⋅ g 3 ) = f (1.5, 0.5 − 0.5 ⋅ 0.31959) = −0.22218 ,
deci
h
y1 = y 0 + ⋅ [g1 + 2 ⋅ (g 2 + g 3 ) + g 4 ] = 0.33332 .
6
Pentru y 2 calculăm mai întâi
g1 = f ( x1 , y1 ) = −0.22222 ,
h h
g 2 = f ( x1 + , y1 + ⋅ g1 ) = −0.1632 ,
2 2
h h
g 3 = f ( x1 + , y1 + ⋅ g 2 ) = −0.16322 ,
2 2
g 4 = f ( x1 + h, y1 + h ⋅ g 3 ) = −0.125 .
În consecinţă
202 Bazele Analizei Numerice

h
y 2 = y1 + ⋅ [g1 + 2 ⋅ (g 2 + g 3 ) + g 4 ] = 0.24999 .
6

Această metodă se poate aplica şi pentru sisteme de ecuaţii diferenţiale.


Fie sistemul de ecuaţii diferenţiale
⎧ dy1
⎪⎪ dx = f1 ( x, y1 , y 2 )
⎨ (24)
⎪ dy 2 = f ( x, y , y ),
⎩⎪ dx
2 1 2

cu condiţia iniţială
⎧⎪ y1 ( x 0 ) = y10
⎨ . (25)
⎪⎩ y 2 ( x 0 ) = y 20
Formulele (23) se scriu în acest caz astfel
⎛ y1n ⎞ ⎛ y1,n −1 ⎞ h ⎛ g11 ⎞ h ⎛ g 21 ⎞ h ⎛ g 31 ⎞ h ⎛ g 41 ⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟ + ⎜⎜
⎟ ⎟⎟ + ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ , n ≥ 1 ,
⎝ y 2n ⎠ ⎝ y 2,n −1 ⎠ 6 ⎝ g12 ⎠ 3 ⎝ g 22 ⎠ 3 ⎝ g 32 ⎠ 6 ⎝ g 42 ⎠
unde:
g11 = f1 ( x n−1 , y1,n −1 , y 2,n −1 )
(27)
g12 = f 2 ( x n −1 , y1,n −1 , y 2,n −1 )
⎛ h h h ⎞
g 21 = f1 ⎜ x n −1 + , y1,n−1 + g11 , y 2,n −1 + g12 ⎟
⎝ 2 2 2 ⎠
⎛ h h h ⎞
g 22 = f 2 ⎜ x n −1 + , y1,n −1 + g11 , y 2,n −1 + g12 ⎟
⎝ 2 2 2 ⎠
⎛ h h h ⎞
g 31 = f1 ⎜ x n −1 + , y1,n−1 + g 21 , y 2,n −1 + g 22 ⎟
⎝ 2 2 2 ⎠
⎛ h h h ⎞
g 32 = f 2 ⎜ x n−1 + , y1,n −1 + g 21 , y 2,n−1 + g 22 ⎟
⎝ 2 2 2 ⎠
(
g 41 = f1 x n −1 + h, y1,n −1 + hg 31 , y 2,n −1 + hg 32 )
(
g 42 = f 2 x n −1 + h, y1,n −1 + hg 31 , y 2,n−1 + hg 32 )
şi
y1,0 = y1 ( x 0 )
.
y 2, 0 = y 2 ( x 0 )
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 203

Asupra consistenţei, stabilităţii şi convergenţei metodelor directe

Orice metodă directă pentru rezolvarea probelemei Cauchy poate fi scrisă


sub forma generală
y n = y n −1 + hΦ ( x n −1 , y n −1 , h) , n ≥ 1, (28)
y0 = y(x0) ,
unde funcţia Φ ( x, y, h) se numeşte funcţie de creştere. Pentru h ≠ 0, relaţia (28)
se scrie sub forma
y n − y n −1
= Φ ( x n −1 , y n −1 , h) . (29)
h

Definiţie. Dacă y(x) este soluţia exactă a problemei Cauchy (1)-(2), se numeşte
eroare de trunchiere a metodei, funcţia
y ( x + h) − y ( x )
t ( x, h ) = − Φ ( x, y ( x), h), (30)
h
unde x ∈ [x 0 , b ) şi h > 0 astfel ca x+h ≤ b .

Definiţie. Se spune că formula (28) dă o aproximare consistentă a problemei (1),


(2), dacă t(x,h) → 0 când h → 0 , uniform în raport cu x ∈ [x 0 , b ) .

Din (30) se vede că, pentru o metodă consistentă, avem


y ′( x) = Φ ( x, y ( x),0) = f ( x, y ( x)) .

Definiţie. Se spune că formula (28) dă o aproximare consistentă de ordin p , dacă


există N ≥ 0 , h0 > 0 şi un întreg pozitiv p astfel ca sup t ( x, h) ≤ N ⋅ h p ,
x0 ≤ x≤b
pentru orice h∈(0, h0].

Propoziţia 1. Metoda lui Taylor de ordin p este consistentă de ordin p. Metodele


Runge-Kutta de ordinul p dat sunt metode consistente de ordinul p.
Demonstraţie. Pentru metoda dată de formula lui Taylor de ordinul p, avem
hp
t ( x, h ) = y ( p +1) (ξ ) , unde x < ξ < x + h .
( p + 1)!
1
Alegând N = sup y ( p +1) ( x) , rezultă consistenţa de ordinul p. ‰
x0 ≤ x≤b ( p + 1)!

Spre exemplu, metoda lui Euler este consistentă de ordinul 1. Pentru


metodele Runge-Kutta este dificil să obţinem o formă explicită a lui N.
Până acum am considerat erorile de trunchiere, adică erorile ce apar prin
discretizarea ecuaţiei diferenţiale. Ne interesează însă, în ce măsură soluţia ecuaţiei
204 Bazele Analizei Numerice

cu diferenţe, adică a ecuaţiei obţinută prin discretizare (deci şirul (yn)n),


aproximează soluţia y(x) a ecuaţiei diferenţiale.
Aşadar, vom aborda problema ″convergenţei″ soluţiei ecuaţiei cu diferenţe
la soluţia ecuaţiei diferenţiale. Această convergenţă trebuie definită cu atenţie. De
exemplu, dacă analizăm comportarea şirului (yn)n, când h → 0 , pentru n
fixat, nu vom obţine un concept util, deoarece, în acest caz x n = x 0 + nh → x 0 ,
iar pe noi ne interesează ce se întâmplă pentru x ≠ x 0 . Deci trebuie să considerăm
comportarea şirului (yn)n când h → 0, cu x = xn = x0+nh fixat. Pentru a obţine o
soluţie pentru valoarea x ≠ x 0 fixată, trebuie să mărim numărul de paşi ceruţi
pentru a ajunge la x din x0, dacă pasul h descreşte.

Definiţie. Metoda numerică directă se numeşte convergentă dacă pentru orice


x∈[x0, b] , avem
lim y n = y ( x) (31)
h →0
x=xn=x0+nh .

Această definiţie se datorează lui G. Dahlquist.


În studiul convergenţei metodelor directe, este utilă următoarea lemă.

Lema 1. Au loc inegalităţile:


1 + x ≤ e x , (∀) x ∈ R , (32)
m mx
0 ≤ (1 + x ) ≤ e , (∀) x ≥ 1 , m ∈ N . (33)
Demonstraţie. Cum (33) este consecinţă imediată a lui (32), este suficient să
justificăm (32). Dar (32) este consecinţă imediată a formulei lui Taylor, deoarece
x2 ξ
ex =1+ x + e ,
2
unde ξ este între 0 şi x. ‰

În continuare, vom analiza convergenţa metodelor directe.


Fie e n = y ( x n ) − y n , n ≥ 0 . Deci en reprezintă eroarea globală dintre
soluţia exactă şi soluţia aproximativă în nodurile xn .
Din (30), obţinem
y ( x n ) = y ( x n −1 ) + hΦ ( x n −1 , y ( x n −1 ), h) + ht ( x n −1 , h) .
Scăzând (28) din această egalitate, avem
e n = e n −1 + h[Φ ( x n−1 , y ( x n −1 ), h) − Φ ( x n −1 , y n −1 , h] + ht ( x n −1 , h) (33’)
Evident e0 = 0 .
Din nefericire, faptul că t(xn-1,h) este mic, nu este suficient pentru a
asigura că en este mic. Ar trebui să arătăm că
max e n ≤ C max t ( x n , h) ,
n n
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 205

unde constanta C este independentă de h ; este ceea ce numim stabilitatea


metodei de aproximare.
În cele ce urmează, presupunem că funcţia de creştere Φ satisface condiţia
lui Lipschitz
Φ ( x, y , h ) − Φ ( x, z, h ) ≤ K y − z , x ∈ [x0 , b] , y , z ∈ R , h > 0 . (34)
şi că metoda este consistentă de ordin p cu constanta N.
Considerăm mai întâi cazul K > 0. Atunci din (33’) rezultă că există
h0 > 0 astfel ca pentru h∈(0,h0] să avem
e n ≤ e n −1 (1 + hK ) + Nh p +1 .
Aplicând această inegalitate recursiv rezultă
e n ≤ (1 + hK )n e0 + Nh p +1[1 + (1 + hK ) + ... + (1 + hK ) n −1 ] .
Deoarece e0 = 0, din Lema 1, rezultă că
(1 + hK ) n − 1 e nhK − 1 e ( xn − x0 ) K − 1
e n ≤ Nh p ≤ Nh p = Nh p .
K K K
Pentru K = 0, se obţine imediat
e n ≤ ( x n − x 0 )Nh p .
Am demonstrat deci următoarea teoremă.

Teorema 3. Dacă metoda (28) este consistentă de ordin p, cu constanta N, iar


funcţia Φ satisface condiţia lui Lipschitz (34), atunci există h0>0, astfel ca pentru
h∈(0, h0] avem
⎧ e ( xn − x0 ) K − 1
⎪ Nh p , dacă K ≠ 0
y( xn ) − y n ≤ ⎨ K (35)
⎪ p
⎩( x n − x 0 ) Nh , dacă K = 0 ,
unde y(x) este soluţia exactă a problemei Cauchy. Deci metoda este
convergentă.

Această teoremă s-a obţinut pornind de la principiu important al analizei


numerice, care se poate enunţa astfel:

CONSISTENŢĂ + STABILITATE ⇒ CONVERGENŢĂ

Definiţie. O metodă numerică directă se numeşte convergentă de ordinul p∈ N


dacă există C > 0 astfel încât y ( x n ) − y n ≤ Ch p , oricare ar fi xn = x∈[x0, b].

Teorema 3 spune că o metodă numerică consistentă de ordinul p∈ N şi


pentru care funcţia de creştere satisface condiţia Lipschitz (34) este convergentă de
ordinul p . Numărul p introdus de Teorema 3 nu este unic determinat (dacă
206 Bazele Analizei Numerice

există): dacă h < 1 şi p este ordin de convergenţă, atunci şi p ′ cu 0< p ′ < p


este un ordin de convergenţă pentru această metodă. Se poate pune problema
determinării unui ordin de convergenţă maximal pentru o metodă dată. În practică
este suficient să se determine un ordin de convergenţă convenabil.
Metodele prezentate mai sus au ordine de convergenţă diferite.
Spre exemplu se poate arăta că metoda lui Euler îmbunătăţită are ordin de
convergenţă 2, dacă există L > 0 astfel încât
∂f
( x, y ) ≤ L , ( ∀)( x, y ) ⊂ [a, b] × J .
∂y
În funcţie de L, se poate determina K din (34).
Ţinând seama de (21) pentru această metodă avem
1
Φ ( x, y , h) = [ f ( x, y ) + f ( x + h, y + h f ( x, y ))] .
2
Atunci
1
Φ ( x , y , h ) − Φ ( x , z , h ) ≤ f ( x, y ) − f ( x, z ) +
2
1
+ f ( x + h, y + h f ( x, y )) − f ( x + h, z + h f ( x, z )) ≤
2
L2 h0
L y − z + L[ y − z + h f ( x , y ) − f ( x , z ) ] ≤ ( L +
1 1
≤ ) y − z , h ≤ h0 ,
2 2 2
L2 h0
deci K = L + .
2
În acest caz, din formula Taylor rezultă
t ( x, h) = h 2 ( R3 ( x) + Q3 ( x, h)),
unde R3(x) este eroarea de la formula Taylor, iar Q3(x,h) eroarea care se face
oprind termenii de ordinul doi din formula Runge-Kutta. Dacă derivatele lui y şi
ale lui f sunt mărginite, atunci metoda Euler îmbunătăţită are ordinul de
consistenţă 2.
În încheiere, menţionăm că metoda folosită în studiul stabilităţii soluţiei
problemei Cauchy se poate aplica şi în cazul metodei Euler.
Considerăm metoda numerică (analoagă problemei Cauchy):
z n = z n−1 + h[ f ( x n −1 , z n −1 ) + δ ( x n −1 )] , n ≤ 1 (36)
z0 = y0 + ε .
Comparăm cele două soluţii numerice ( z n ) n , ( y n ) n , când h → 0.
Fie en = zn-yn , n ≥ 0. Atunci z0 = ε . Scăzând (15) din (36), obţinem
e n = e n −1 + h[ f ( x n −1 , z n−1 ) − f ( x n −1 , y n−1 )] + hδ ( x n −1 ),
care are aceeaşi formă ca (23). Utilizând acelaşi procedeu ca îndemonstraţia
Teoremei 3, rezultă
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 207

e (b − x0 ) L − 1
max z n − y n ≤ e (b − x0 ) ε + ⋅ δ ∞ .
n L
În consecinţă, există constantele k1, k2 , independente de h, astfel ca
max z n − y n ≤ k1 ε + k 2 δ ∞ . (37)
n
Această inegalitate este analoagă inegalităţii (8) din cazul problemei
Cauchy iniţiale. Aşadar metoda Euler este stabilă numeric. De altfel, toate metodele
numerice pentru problema Cauchy au această formă de stabilitate, imitând
stabilitatea problemei iniţiale. Analiza se poate simplifica, luând δ(x) = 0 şi
considerând numai efectul perturbării iniţiale y0 . Nu vom analiza aici problema
erorilor de rotunjire.

§6.3. Metode indirecte (cu mai mulţi paşi)

Metoda Adams-Bashforth. Să presupunem că printr-o metodă directă (de


exemplu, de tip Runge-Kutta) s-au determinat valorile y1, ..., yn în nodurile
x1, ..., xn, unde yk ≈ y(xk). Se pune problema determinării unei valori aproximative
yn+1 pentru y(xn+1) (y(x) este soluţia exactă a problemei Cauchy). Integrând
(1) pe intervalul [xn, xn+1], obţinem:
xn +1
y ( x n+1 ) − y ( x n ) = ∫ f ( x, y ( x))dx. (38)
xn
Pentru a calcula integrala, folosim o metodă numerică, de exemplu o
metodă Newton-Côtes pentru nodurile echidistante xn-m, ..., xi, ..., xn, m ≤ n,
xi = xn+(i-n)h, i = n − m, n .
Dacă x∈[xn, xn+1], atunci există t∈[0,1] astfel încât
x = xn + th. (39)
Fie Pm polinomul de interpolare Lagrange corespunzător tabelului
x xn-m ... xi ... xn
y fn-m ... fi ... fn

unde fi = f(xi,yi), i = n − m, n .
Vom aproxima valoarea exactă y(xn+1) prin
x n+1
y n +1 = y n + ∫ Pm ( x)dx. (40)
xn
n
După cum se ştie Pm ( x) = ∑ Li ( x) f ( xi , yi ), unde
i=n−m
208 Bazele Analizei Numerice

n x− xj n (t − j + n)h
Li ( x) = ∏ = ∏ =
j = n − m xi − xj j = n − m (i − j ) h
j ≠i j ≠i
m
(−1) n − i ∏ (t + k )
(t + m)...(t + n − i + 1)(t + n − i − 1)...t k =0
= = .
(i − n + m)...1(−1)...[− (n − i )] (i − n + m)!(n − i )!(t + n − i )
Făcând schimbarea de variabilă (39) în (40), obţinem:
m
1
(−1) n −i ∏ (t + k )
n
k =0
y n +1 = y n + ∫ ( ∑ ⋅ h f i )dt
0 i = n − m (i − n + m)!( n − i )!(t + n − i )
Dacă notăm cu
m
∏ (t + k )
( −1) n − i ⋅ h 1
Ai = ⋅ ∫ k =0 dt , (41)
(i − n + m)!(n − i )! 0 t + n − i
obţinem
n
y n +1 = y n + ∑ Ai f i , (42)
i=n−m
cunoscută sub numele de formula Adams-Bashforth.
În continuare vom explicita formula (42) pentru valori particulare ale lui
m. Astfel pentru m = 1, deci când se folosesc nodurile xn şi xn-1, formula (42)
devine
y n +1 = y n + An −1 f n −1 + An f n ,
unde conform (41)
1
(−1) −1 h 1 t (t + 1) t2 h
An −1 = ⋅∫ dt = − h =− ,
0!⋅1! 0 t + 1 2 2
0
1
(−1) 0 h 1 t (t + 1) ⎛ t2 ⎞ 3
An = ⋅∫ dt = h⎜ + t ⎟ = h .
1!⋅ 0! 0 t ⎜ 2 ⎟
⎝ ⎠ 0 2
În consecinţă pentru m = 1, formula lui Adams-Bashforth se scrie
h
y n +1 = y n + (3 f n − f n −1 ) . (43)
2
Similar, pentru m = 2 se obţine
h
y n +1 = y n + (23 f n − 16 f n −1 + 5 f n − 2 ) , (44)
12
iar pentru m = 3
h
y n +1 = y n + (55 f n − 59 f n −1 + 37 f n − 2 − 9 f n − 3 ) . (45)
24
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 209

În ceea ce priveşte evaluarea erorii, scăzând (40) din (38) obţinem


xn +1
y ( x n+1 ) − y n +1 = y ( x n ) − y n + ∫ [ f ( x, y ( x)) − Pm ( x)]dx ,
xn
deci
x n+1
y ( x n +1 ) − y n +1 ≤ y ( x n ) − y n + ∫ f ( x, y ( x)) − Pm ( x) dx.
xn
Deci eroarea din metoda lui Adams-Bashforth este mai mică decât suma
dintre eroarea din metoda Runge-Kutta folosită în calculul lui yn şi eroarea de la
integrarea numerică. În cazul m = 1, se obţine folosind schimbarea de
variabilă (39) :
x n+1
M 2 x n+1 M2 1 3
∫ f ( x, y ( x)) − Pm ( x) dx ≤ ∫ ( x − xn )( x − xn −1 )dx = ∫ h t (t + 1)dt =
xn 2 x 2 0
n
5 3
= h M2,
12
unde
M 2 = sup f ′′( x, y ( x)) .
x∈[a , b ]
Deci eroarea de integrare în acest caz este de ordinul h3.
Să menţionăm acum că integrând (1) pe [xn-1, xn+1], în locul lui (38) se
poate considera
x n+1
y ( xn +1 ) = y ( x n −1 ) + ∫ f (x, y ( x) )dx . (46)
x n−1
Se poate proceda apoi ca mai sus. Această metodă este atribuită lui E. J.
Nyström (1925). Pentru m = 1, de exemplu, se obţine
yn+1 = yn-1 + 2hf(xn, yn). (47)
Metodele Adams-Bashforth şi Nyström sunt cunoscute ca metode explicite,
deoarece relaţia de recurenţă (42) sau cea corespunzătoare pentru metoda Nyström
nu conţin f(xn+1, yn+1); ele exprimă explicit yn+1 în funcţie de yn, yn-1, ... , yn-m.

Exemplul 1. Folosind metoda Adams-Bashforth de ordin trei să se determine


soluţia aproximativă a următoarei probleme Cauchy
⎧ y 1
⎪ y′ = y2 − −
⎨ x 4x2
⎪⎩ y (1) = 0.5
în punctul x=2.25, determinând soluţia în x=2 cu metoda Runge-Kutta de ordinul
patru în patru paşi.
210 Bazele Analizei Numerice

Pentru a aplica metoda Runge-Kutta de ordin patru luăm: x0=1 , y0=0.5,


x − x0
x=2 , n=4 , h = = 0.25 , x1=x0+h=1+0.25=1.25, x2=1.5 , x3=1.75 , x4=2
n
şi obţinem y1=0.4 , y2=0.33333 , y3=0.28571 , y4=0.25 .
Pentru a determina valoarea aproximativă a soluţiei în x=2.25 folosim
metoda Adams-Bashforth de ordin trei

h
y5 = y 4 + (55 f 4 − 59 f 3 + 37 f 2 − 9 f1 ) ,
12
unde
f 2 = f ( x2 , y 2 ) = −0.22222, f 3 = f ( x3 , y3 ) = −0.16327 , f 4 = f ( x 4 , y 4 ) = −0.125,
obţinându-se y(2.25)≈y5=0.22307 ( soluţia exactă fiind y(2.25)=0.22222).

Metoda Adams-Moulton. Presupunem că printr-o metodă directă am


determinat valorile aproximative y1, ..., yn în nodurile xk = x0+kh, k = 1, n şi că
xn+1 < b. Fie Pm+1 polinomul de interpolare Lagrange corespunzător tabelului
x xn-m ... xn xn+1
f fn-m ... fn fn+1

Formula corespunzătoare lui (40) este:


xn+1
y n +1 = y n + ∫ Pm +1 ( x)dx . (48)
xn
Procedând ca mai sus, obţinem
n +1
y n +1 = y n + ∑ Bi f i , (49)
i=n−m
unde
m
1 ∏
(t + k )
(−1) n +1−i h k = −1
(i − n + m)! (n + 1 − i )! ∫ t + n − i
Bi = ⋅ dt , i = n − m, n + 1 , (50)
0
cunoscută sub numele de formula Adams-Moulton.
Vom particulariza acum această formulă. Pentru m = 0 se obţine
h
y n +1 = y n + ( f n +1 + f n ), (51)
2
pentru m = 1
h
y n +1 = y n + (5 f n +1 + 8 f n − f n −1 ), (52)
12
pentru m = 2
h
y n +1 = y n + (9 f n +1 + 19 f n − 5 f n −1 + f n − 2 ) . (53)
24
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 211

Deoarece fn+1 = f(xn+1, yn+1), necunoscuta yn+1 apare şi în membrul


drept, deci, în general nu se poate explicita.De aceea metoda Adams-Moulton este
o metodă implicită.
De obicei (49) trebuie rezolvată ca o ecuaţie algebrică printr-o metodă
iterativă. Se alege y n( 0+)1 , apoi se calculează
y n(1+) 1 = F ( y n(0+)1 ) , y n( 2+)1 = F ( y n(1+) 1 ) etc.,
unde F apare din scrierea convenabilă a lui (49) sub forma yn+1 = F(yn+1).
( 0)
Pentru a calcula o aproximaţie bună y n +1 , se poate utiliza o formulă
explicită, de exemplu, Adams-Bashforth.
Se poate demonstra următoarea teoremă.

Teorema 4. Fie şirul recurent


n
y n( k++11) = y n + ∑ Bi f i + Bn +1 f ( xn +1, yn( k+)1 ) , k ∈N . (54)
i =n−m
Dacă funcţia f satisface condiţiile Teoremei 1 şi h este ales astfel încât
Bn +1 ⋅ L < 1, L fiind constanta lui Lipschitz, atunci şirul y n( k+)1 este convergent şi
n +1
limita sa y n +1 = lim y n( k+)1 satisface ecuaţia y n +1 = y n + ∑ Bi f i .
k →∞ i=n−m

Eroarea din metoda Adams-Moulton se poate estima ca şi în cazul metodei


Adams-Bashforth.

Exemplul 2. Folosind metoda Adams-Moulton de ordin unu să se determine soluţia


aproximativă a următoarei probleme Cauchy
⎧ y 1
⎪ y′ = y2 − −
⎨ x 4x2
⎪⎩ y (1) = 0.5
în punctul x=1.5, considerând soluţia y(0)(1.5) obţinută cu metoda Euler
modificată, cu h = 0.05. Atunci y(0)(1.5) = 0.333406 şi cum
h
y n( k++11) = y n + (5 f n +1 + 8 f n − f n −1 ) , k=0,1,2...
12
obţinem
y 5(1) = 0.333403 , y 5( 2) = 0.333331
212 Bazele Analizei Numerice

Metoda predictor-corector ( Adams-Bashforth-Moulton )

Presupunem că printr-o metodă directă am determinat valorile


aproximative y1, ..., yn în nodurile x1, ..., xn.
Fie m1, m2 ≤ n şi xn+1 = xn+h ≤ b.
În prima etapă (etapa predictor) se determină valoarea aproximativă yn+1
cu metoda Adams-Bashforth, pentru m = m1.
Valoarea astfel determinată se notează cu y n(0+)1 , şi este folosită în
continuare în etapa a doua (etapa corector) pentru determinarea valorii yn+1 cu
metoda Adams-Moulton cu m = m2.
Cele mai utilizate metode predictor-corector sunt:
⎧ ( 0) h
⎪⎪ y n +1 = y n + 2 (3 f n − f n −1 ) (m1 = 1)
1) ⎨
⎪⎩ n +1 n [(
⎪ y ( k +1) = y + h f x , y ( k ) + f
2
n +1 n +1) ] n (m2 = 0)
⎧ ( 0) h
⎪⎪ y n +1 = y n + 12 (23 f n − 16 f n −1 + 5 f n −2 ) (m1 = 2)
2) ⎨
⎪⎩ n +1 n ( (
12
)
⎪ y ( k +1) = y + h 5 f x , y ( k ) + 8 f − f
n +1 n +1 n )
n −1 (m2 = 1)
⎧ ( 0) h
⎪⎪ y n +1 = y n + 24 (55 f n − 59 f n−1 + 37 f n −2 − 9 f n −3 ) (m1 = 3)
3) ⎨
⎪⎩ n +1 n ( (
24
n +1 n +1)
⎪ y ( k +1) = y + h 9 f x , y ( k ) + 19 f − 5 f
n )
n −1 + f n − 2 (m2 = 2) .

Exemplul 3. Folosind metoda Adams-Bashforth-Moulton de ordin (3,2) să se


determine soluţia aproximativă a următoarei probleme Cauchy
⎧ y 1
⎪ y′ = y2 − −
⎨ x 4x2 ,
⎪⎩ y (1) = 0.5
în punctul x=2.25, considerând soluţia y(0)(2.25) obţinută în exemplul 1.
Ca şi în exemplul 1 avem: x0=1 , y0=0.5 , x=2 , n=4, h = 0.25 ,
x1=x0+h=1+0.25=1.25, x2=1.5 , x3=1.75 , x4=2 şi obţinem y1=0.4 , y2=0.33333 ,
y3=0.28571 , y4=0.25 .
Pentru a determina valoarea aproximativă a soluţiei în x=2.25 folosim
metoda Adams-Bashforth de ordin trei

h
y5 = y 4 + (55 f 4 − 59 f 3 + 37 f 2 − 9 f1 ) ,
12
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 213

si obţinem y(2.25)≈y5=0.22307 . Notăm y 5(0) = 0.22307 şi aplicăm în continuare

metoda Adams-Moulton de ordin 2. Obtinem: y 5(1) = 0.22219 ; y 5( 2) = 0.22219 .

În continuare vom aborda un anumit tip de stabilitate pentru a ilustra


anumite idei, care nu pot fi prezentate în cazul metodei Euler. Am arătat la metoda
Euler, că metodele numerice pentru problema Cauchy au o anumită formă de
stabilitate, imitând stabilitatea problemei Cauchy. În particular acest tip de
stabilitate caracterizează şi metoda (47) dată de
y n +1 = y n −1 + 2h f ( x n , y n ) , n ≥ 1 .
Din păcate, această stabilitate nu este satisfăcătoare pentru scopuri practice.
Vom arăta această metodă nu este convenabilă în raport cu un anumit sens de
stabilitate pe care o vom defini. Deoarece relaţia de recurenţă depinde de f(x,y)
este greu să dăm rezultate generale privind stabilitatea numerică a unei astfel de
metode. Este instructiv să căutăm, cu metoda de mai sus, soluţia numerică a
problemei
y ′ = λy , y (0) = 1 , λ ∈ R , (55)
a cărei soluţie este y ( x) = e λx . Această problemă o vom utiliza ca problemă
model. Dacă o metodă numerică se comportă rău cu o problemă atât de simplă ca
(55), este puţin probabil ca aceasta să fie bună pentru ecuaţii diferenţiale mai
complicate. În acest caz (47) devine
y n +1 = y n −1 + 2hλy n , n ≥ 1 . (56)
Vom calcula soluţia exactă a acestei ecuaţii şi o vom compara cu soluţia
exactă a ecuaţiei (55), y ( x) = e λx . Ecuaţia (56) este un exemplu de ecuaţie liniară
cu diferenţe de ordin 2. Există o teorie generală pentru ecuaţii liniare cu diferenţe
de ordin p. Multe metode pentru rezolvarea ecuaţiilor diferenţiale au un analog în
rezolvarea ecuaţiilor cu diferenţe, fiind un ghid în a rezolva (56). Vom începe
căutând soluţii liniar independente pentru ecuaţii cu diferenţe. Acestea sunt
combinate sub forma soluţiei generale.
Similar cu soluţiile exponenţiale ale ecuaţiilor diferenţiale liniare, căutăm
soluţii pentru (56) de forma
yn = r n , n ≥ 0 , (57)
pentru un anumit r necunoscut. Înlocuind în (56), pentru a găsi condiţii necesare
pentru r , obţinem
r n +1 = r n −1 + 2hλr n .
n −1
Împărţind cu r , rezultă
r 2 = 1 + 2λhr . (58)
Este valabilă şi reciproca. Dacă r satisface (58), atunci yn dat de (57)
satisface (56). Ecuaţia (58) se numeşte ecuaţie caracteristică pentru metoda
(47). Rădăcinile sale sunt
214 Bazele Analizei Numerice

r0 = hλ + 1 + h 2 λ2 , r1 = hλ − 1 + h 2 λ2 . (59)
Soluţia generală a lui (56) este
y n = β 0 r0n + β1r1n , n ≥ 0 . (60)
Coeficienţii β0 şi β1 din (60) se determină din condiţiile ca y0 şi y1 să
coincidă cu ce se obţine din (60) pentru n = 0 şi n = 1.
⎧β 0 + β1 = y 0

⎩ β 0 r0 + β1r1 = y1 .
Soluţia acestui sistem este
y −ry y r −y
β 0 = 1 1 0 , β1 = 0 0 1 .
r0 − r1 r0 − r1
λh
Dar y0 = 1, y1 = e (acestea sunt valorile soluţiei exacte). Atunci, folosind
formula lui Taylor, obţinem
e λh − r1
β0 = = 1 + O ( h 2 λ2 )
2 2
2 1+ h λ
r0 − e λh
β1 = = O(h 3λ3 ) .
2 2
2 1+ h λ
Pentru aceste valori, β 0 → 1 şi β1 → 0 , când h → 0 . În
consecinţă β1r1n → 0 când h→0, deci din (60) rezultă că termenul β 0 r0n ar

trebui să corespundă soluţiei exacte e λxn . De fapt


r0n =e λx n
[
1 + O(h ) . 2
]
Într-adevăr
1 2 2
r0 = λh + 1 + λ h + O(h 4 ),
2
1
e λh = 1 + λh + λ 2 h 2 + O (h 3 ) .
2
Atunci
[
r0 = e λh + O( h 3 ) = e λh 1 + O (h 3 ) ,]
deoarece e λh = 1 + O (h) .
În consecinţă
r0n = e λxn [1 + nO (h 3 )] = e λxn (1 + O (h 2 )) .
Pentru a vedea dificultatea utilizării formulei (60) în rezolvarea numerică a
ecuaţiei (55), să examinăm cu atenţie, valorile relative ale lui r0 şi r1.
Pentru 0 < λ < ∞ are loc r0 > r1 > 0, (∀)h .
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 215

Atunci termenul r1n va creşte mai puţin rapid decât r0n şi termenul corect
în (60), β 0 r0n va domina. Totuşi pentru λ < 0 , vom avea 0 < r0 < 1 , r1 < -1 ,
h > 0. În consecinţă, β1r1n va domina β 0 r0n când n creşte pentru h fixat,
necontând cât de mic este h ales iniţial. Termenul β 0 r0n →0 când n → ∞, pe
când termenul β1r1n creşte în magnitudine, alternând ca semn când n creşte.
Termenul β1r1n se numeşte soluţie parazită a metodei numerice (56), deoarece
nu corespunde unei soluţii a ecuaţiei diferenţiale originale y ′ = λy . Ecuaţia
originală are o familie de soluţii cu un parametru, depinzând de valoarea iniţială
y0, dar aproximaţia (56) are familia de soluţii (60), cu doi parametri, care depinde
de y0 şi y1. Noua soluţie β1r1n este o creaţie a metodei numerice; pentru
problema (55) cu λ < 0 ea face ca soluţia numerică să se depărteze de soluţia
corectă când
xn → +∞. Din cauza acestei comportări, spunem că metoda (47) este slab stabilă.

Exemplul 4. Fie problema model y ′ = − y cu y(0) = 1 şi h = 0.25 . Se aplică


metoda (47) cu y0 = 1 şi y1 determinat cu metoda Euler. Pentru xn = 2.25 soluţia
yn devine negativă şi alternează ca semn la fiecare pas.
∂f
Se constată că dacă are semn negativ, atunci instabilitatea slabă apare
∂y
uzual în rezolvarea problemei Cauchy prin metoda (47).
xk yk y(xk) xk yk y(xk)
0 1 1 1.75 0.89844 0.173774
0.25 0.75 0.77880 2 0.244141 0.135353
0.5 0.625 0.606531 2.25 -0.32227 0.105399
0.75 0.4375 0.472367 2.5 0.260254 0.082085
1 0.40625 0.367879 2.75 -0.162354 0.063928
1.25 0.234375 0.286505 3 0.341431 0.049787
1.5 0.289063 0.223130

Exemplul 5. Fie problema y′ = x − y 2 , y(0) = 0. Soluţia acestei ecuaţii


diferenţiale este strict crescătoare pentru x ≥ 0. Dar f ( x, y ) = x − y 2 , deci
∂f
= −2 y < 0 pentru y > 0. Ne aşteptăm la o anumită instabilitate. Luând h =
∂y
0.25 se constată că de la xn=2.25 soluţia numerică începe să descrească, ajungând
în xn = 3.25 să fie negativă.

xk yk xk yk
216 Bazele Analizei Numerice

0 0 2 1.2914
0.25 0 2.25 1.145864
0.5 0.125 2.5 1.759889
0.75 0.242188 2.75 0.847244
1 0.470673 3 2.775987
1.25 0.631421 3.25 -1.505808
1.5 0.896326 3.5 3.267258
1.75 0.979721 3.75 -5.093296

Integrarea numerică a ecuaţiilor diferenţiale de ordinul întâi în MATLAB


În MATLAB funcţiile ode23(fxy,x0,x,y0) şi ode45(fxy,x0,x,y0) sau
ode23(fxy,x0,x,y0,err,urma) şi ode45(fxy,x0,x,y0,err,urma) rezolvă ecuaţii
diferenţiale de ordinul întâi
y’ = f(x,y),
y(x0) = y0,
prin metoda Runge-Kutta de ordinul doi, respectiv patru, parametrii având
următoarele semnificaţii:
fxy este numele fişierului de tip m care conţine funcţia f(x,y) ,
(x0,y0) sunt coordonatele punctului iniţial, iar
x este punctul în care se cere valoarea aproximativă a soluţiei y ,
err este precizia soluţiei, implicit 10-3, respectiv 10-6 ,
urma atunci când are valoare diferită de zero se tipăresc rezultatele
intermediare.

Exemplu. Să se determine valoarea aproximativă a soluţiei următoarei probleme


Cauchy
y’ = xy2+x3+1,
y(0) = 1 ,
în punctul x = 2 , pasul fiind stabilit în mod automat de funcţia ode23 (ode45) .
Se creează fişierul de tip m numit fxy care conţine f(x,y) cu secvenţa
% Fisierul cu functia f(x,y) este de tip m
function f=fxy(x,y)
f=x*y^2+x^3+1;
după care se apelează funcţia ode45 astfel
[x,y]=ode45(‘fxy’,0,2,1,0.0001,1) ;
disp(‘Solutia aproximativa intre x0 si x’);
disp(x);
disp(y);
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 217

Exerciţii
Folosind metoda Taylor de ordinul 3 să se găsească soluţia aproximativă a
următoarelor probleme Cauchy în punctele menţionate.
⎧ y ′ = xy
1. ⎨ în 4 paşi.
⎩ y (0) = 1 în x = 1
R. h = 0.25
x x0=1 x1=1.25 x2=1.5 x3=1.75 x4=2
y' 0 0.25781 0.56772 1.00432
y' ' 1 1.16106 1.70316 2.84558
y' ' ' 0 1.3374 3.26439 6.7164
y 1 1.03125 1.13544 1.3391 1.69659
⎧ 4x
⎪ y′ =
2. ⎨ y în 4 paşi.
⎪⎩ y (1) = 2 în x = 2
R. h = 0.25
x x0=1 x1=1.25 x2=1.5 x3=1.75 x4=2
y' 2 2.05128 2.07279 1.00432
y' ' -2 -1.81149 -1.5867 2.84558
y' ' ' 0 0.335864 0.3667 6.7164
y 2 2.4375 2.89465 3.36421 3.84191

Să se determine soluţia aproximativă a ecuaţiilor diferenţiale următoare


folosind metoda Euler şi Euler îmbunătăţită.
⎧ 2x
⎪ y′ = y −
3. ⎨ y
⎪⎩ y (0) = 1 în x = 1 cu pasul h = 0.2 .
R. Cu metoda Euler pentru
xi = x0+ih , yi+1 = yi+hf(xi,yi) , i=0, 1, ... n , n=5 ,
obţinem:
i xi yi f(xi,yi)
0 0 1 1
1 0.2 1.2 0.8667
2 0.4 1.3733 0.7805
3 0.6 1.5294 0.7458
4 0.8 1.6786 0.7254
5 1 1.8237
Cu metoda Euler îmbunătăţită
h
y i +1 = y i + [ f ( xi −1 , y i −1 ) + f ( xi −1 + h , y i −1 h f ( xi −1 , y i −1 ))]
2
218 Bazele Analizei Numerice

obţinem:
xi 0 0.2 0.4 0.6 0.8 1
yi 1 1.1867 1.3484 1.4938 1.6272 1.7542

⎧ 2
y′ = − y −
⎪⎪ x2
4. ⎨
⎪ y (1.5) = 2 în x = 2.5 cu pasul h = 0.2 .
⎪⎩ 3
R. Cu metoda Euler pentru
xi = x0+ih , yi+1 = yi+hf(xi,y) , i=0, 1, ... n , n=5 ,
obţinem:
xi 1.5 1.7 1.9 2.1 2.3 2.5
yi 0.66667 0.75556 0.77979 0.76898 0.74142 0.70709

Cu metoda Euler îmbunătăţită


h
y i = y i −1 + [ f ( xi −1 , y i −1 ) + f ( xi −1 + h, y i −1hf ( xi −1 , y i −1 ))]
2
obţinem:
xi 1.5 1.7 1.9 2.1 2.3 2.5
yi 0.66667 0.72323 0.73822 0.72971 0.70865 0.68148

Folosind metoda Runge-Kutta de ordinul patru să se determine soluţia


aproximativă a următoarelor ecuaţii diferenţiale de ordinul întâi în condiţiile
precizate în fiecare caz în parte.
⎧ y 2 8
⎪ y′ = + y − 2
5. ⎨ x x în 5 paşi.
⎪⎩ y (1) = 2 în x = 2

R. h = 0.2

x x0=1 x1=1.2 x2=1.4 x3=1.6 x4=1.8 x5=2


g1 -2 -1.39534 -1.03432 -0.80563 -0.65645
g2 -1.73521 -1.23279 -0.92905 -0.73552 -0.60971
g3 -1.61511 -1.17043 -0.89411 -0.71505 -0.59759
g4 -1.34582 -1.01161 -0.7942 -0.65032 -0.55593
y 2 1.66512 1.42467 1.24218 1.09694 0.97604
⎧⎪ y ′ = 0.25 y + x 2
2
6. ⎨ în 4 paşi.
⎪⎩ y (0) = −1 în x = 1
R. h = 0.25
Rezolvarea numerică a problemei Cauchy pentru ecuaţii diferenţiale 219

x x0=0 x1=0.25 x2=0.5 x3=0.75 x4=1


g1 0.25 0.28158 0.43039 0.68916
g2 0.25024 0.34354 0.54889 0.86348
g3 0.25023 0.34007 0.54305 0.85678
g4 0.2822 0.43109 0.68984 1.0619
y -1 -0.93612 -0.84946 -0.71178 -0.49547

7. Folosind metoda Adams-Bashforth de ordin 3 să se determine soluţia


aproximativă a următoarei probleme Cauchy :
⎧ y2 y 3
⎪ y' = − −
⎨ 3 x x2
⎪ y (3) = 1

în punctul x=3.5, luând h=0.1 şi determinând cu metoda Runge-Kutta de ordin 4
valaorea lui y(3.4).

R. Folosind metoda Runge-Kutta de ordin 4 se determină y(3.4)=0.88235, şi


aplicând formula Adams Bashforth pentru m=3 găsim y(3.5)=0.85714

8. Folosind metoda Adams-Bashforth de ordin 3 să se determine soluţia


aproximativă a următoarei probleme Cauchy :
⎧ y
⎪ y' = −
⎨ x
⎪⎩ y (2) = 0.5
în punctul x=2.5, luând h=0.1 şi determinând cu metoda Runge-Kutta de ordin 4
valoarea lui y(2.4).

R. Folosind metoda Runge-Kutta de ordin 4 se determină y(2.4)=0.41666, şi


aplicând formula Adams Bashforth pentru m=3 găsim y(2.5)=0.40000 .

9. Folosind metoda Adams-Moulton de ordin 2 să se determine soluţia problemei


⎧ 2 2y 2
⎪ y' = y − −
Cauchy ⎨ x x2
⎪⎩ y (1) = 2
în punctul x=2.25, luând h=0.25 şi determinând cu metoda Runge-Kutta de ordin
4 valoarea lui y(2.25).

R. Cu metoda Runge-Kutta de ordin 4 se determină valoarea aproximativă


y(2.25)=0.88717, iar după 3 iteraţii cu metoda Adams-Moulton se obţine rezultatul
y(2.25)=0.88704.
220 Bazele Analizei Numerice

10. Folosind metoda Adams-Moulton de ordin 2 să se determine soluţia problemei


Cauchy
⎧ y2 y 3
⎪ y' = − −
⎨ 3 x x2
⎪ y (3) = 1

în punctul x=3.5, luând h=0.1 şi determinând cu metoda Euler îmbunătăţită
valoarea lui y(3.4).

11. Folosind metoda Adams-Bashforth-Moulton pentru m1=3 şi m2=2 să se


determine soluţia aproximativă după 3 iteraţii a problemei Cauchy de la exerciţiul
9.
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 221

7. Rezolvarea numerică a problemelor la limită


pentru ecuaţii cu derivate parţiale de tip eliptic

Fie G ⊂ R2 o mulţime deschisă, conexă şi mărginită, a cărei frontieră C


este netedă pe porţiuni. Aşadar C poate fi o juxtapunere de mai multe curbe. În
continuare vom presupune că C este juxtapunerea a două curbe C1 şi C2 şi
este orientată în sens trigonometric.

y
C1

C2

O x

Considerăm ecuaţia cu derivate parţiale de ordinul al doilea


∆u + p( x, y ) u = f ( x, y ) , ( x, y ) ∈ G , (1)
unde
∂ 2u ∂ 2u
∆ u= + , p ∈ C ( 2) (G ) ,
2 2
∂x ∂ y
şi f este continuă pe porţiuni pe G. Considerăm de asemenea următoarele
condiţii la limită:
u C1 = ϕ , unde ϕ ∈ C (0) (C1 ) este cunoscută, (2)
∂ u
+ α ⋅ u C2 = γ , (3)
∂ n
222 Bazele Analizei Numerice

∂u
unde α, γ ∈ C(0)(C2) sunt cunoscute , iar este derivata după normala
∂n
exterioară la C2 .
Problema la limită pentru ecuaţia (1) constă în determinarea unei funcţii
u ∈ C(2)(G) ∩ C(1)( G ), care verifică ecuaţia (1) şi condiţiile la limită (2) şi (3) .
Dacă p = f = 0 şi C = C1, obţinem problema Dirichlet pentru ecuaţia
Laplace
⎧∆ u = 0,
⎨ (4)
⎩u C = ϕ .
Dacă p = f = 0 , C = C2 şi α = 0, obţinem problema Neumann pentru
ecuaţia Laplace
⎧∆ u = 0,

⎨∂ u (5)
⎪⎩ ∂ n C = γ .
Dacă p = 0 şi f ≠ 0 obţinem ecuaţia Poisson
∆u = f . (6)
Evident şi pentru ecuaţia Poisson putem considera problema Dirichlet sau
problema Neumann
⎧∆ u = f ⎧∆ u = f

⎨ , respectiv ⎨ ∂ u .
⎩u C = ϕ ⎪⎩ ∂ n C = γ
Dacă f=0 şi p≠0 se obţine ecuaţia vibraţiilor ∆ u + p(x,y) u=0 .
Aşadar, problema la limită (1)+(2)+(3), deşi nu reprezintă cazul cel mai
general, este suficient de generală pentru a acoperi cazurile uzuale de probleme la
limită pentru ecuaţii cu derivate parţiale de tip eliptic în plan.
În continuare, notăm cu
⎧ ⎫
D = ⎨u ∈ C 2 (G ) ∩ C 1 (G ) ; u C = ϕ ⎬ (7)
⎩ 1 ⎭
şi cu
⎡1 1 ⎤
J (u) = ∫∫ ⎢ (grad u)2 − p(x, y) u 2 + f (x, y) u⎥ dxdy +
G ⎣2 2 ⎦
(8)
⎡1 ⎤
+ ∫ ⎢ α(s) u 2 − γ (s)u⎥ ds
C2 ⎣ 2 ⎦
şi ne punem următoarea problemă variaţională:
să se minimizeze funcţionala J pe mulţimea D .
Pentru ca această problemă să aibă soluţie trebuie mai întâi ca mulţimea D
să fie nevidă. Vom presupune aşadar, că există cel puţin o funcţie u ∈ D . Atunci
D = u + D0 , unde
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 223

{
D0 = h ∈ C 2 (G ) ∩ C 1 (G ) ; h C = 0
1
} .
Se observă că D nu depinde de funcţia u , în sensul că oricare ar fi u 0 ∈ D
avem D = u0 + D0 .

Teorema 1. Dacă există u 0 ∈ D astfel încât J (u 0 ) = min{J (u ) ; u ∈ D} , atunci u0


este soluţie pentru problema la limită (1)+(2)+(3). Dacă p ( x, y ) ≤ 0 pentru orice
(x,y)∈G şi α(s)≥ 0 pentru orice s∈C2 , atunci are loc şi afirmaţia reciprocă şi
anume: dacă u0 este soluţie a problemei la limită (1)+(2)+(3), atunci
J (u 0 ) = min{ J (u ) ; u ∈ D } şi u0 este singurul punct de minim al funcţiei J pe

{ }
D.
Demonstraţie. Fie u0 ∈ D astfel încât J (u 0 ) = min J (u ) ; u ∈ D ,

h ∈ C (1) (G ) cu proprietatea h C = 0 şi ϕ : [− a, a ] → R , a > 0 , definită astfel


1
ϕ (t ) = J (u 0 + t h) . Cum
ϕ (t ) = J (u 0 + t h) ≥ J (u 0 ) = ϕ (0) ,
rezultă că t = 0 este un punct de minim pentru ϕ şi deci ϕ ′ (0) = 0. Pe de altă
parte, ţinând seama de (8) avem
⎧ ⎡ ∂u 2 ⎫
∂h ⎞ ⎤⎥ ⎪
2
⎪ 1 ⎢⎛ 0 ∂h ⎞ ⎛ ∂u 0
ϕ (t ) = ∫∫ ⎨ ⎜ + t ⎟ + ⎜⎜ + t ⎟⎟ ⎬ dxdy +
G⎪ 2 ⎢⎝ ∂x ∂x ⎠ ⎝ ∂y ∂y ⎠ ⎥ ⎪
⎩ ⎣ ⎦⎭
⎛ 1 ⎞
+ ∫∫ ⎜ − p ( x, y )(u 0 + t h )2 + f ( x, y )(u 0 + t h )⎟ dx dy +
G⎝ 2 ⎠
S 1
⎡ ⎤
+ ∫ ⎢ α ( s )(u 0 + t h )2 − γ ( s )(u 0 + t h )⎥ ds ,
0⎣2 ⎦
unde S este lungimea curbei C2 , iar
⎧ x = x( s )
⎨ , s ∈ [0, S ]
⎩ y = y(s)
este reprezentarea sa normală.
Un calcul direct ne conduce la
⎡⎛ ∂ u ∂ h ∂ u 0 ∂ h ⎞ ⎤
ϕ ′(0) = ∫∫ ⎢⎜⎜ 0 + ⎟⎟ − p ( x, y )u 0 h + f ( x, y ) h⎥ dx dy +
G ⎣⎝ ∂ x ∂ x ∂ y ∂y⎠ ⎦
(9)
S
+ ∫ [α ( s )u 0 − γ ( s )]h ds .
0
Din formula Green rezultă
224 Bazele Analizei Numerice

⎛ ∂ u 0 ∂ h ∂u 0 ∂ h ⎞ ⎡ ∂ ⎛ ∂ u ⎞ ∂ ⎛ ∂u ⎞ ⎤
∫∫ ⎜⎜ + ⎟⎟dxdy = ∫∫ ⎢ ⎜ h 0 ⎟ + ⎜⎜ h 0 ⎟⎟⎥ dxdy −
G ⎝ ∂ x ∂x ∂y ∂y ⎠ G ⎣ ∂x ⎝ ∂ x ⎠ ∂ y ⎝ ∂ y ⎠ ⎦
⎛ ∂ 2u0 ∂ 2u0 ⎞
− ∫∫ h⎜ + ⎟dxdy = ∫ − h ∂u 0 dx + h ∂u 0 dy − ∫∫ h∆u dxdy .
⎜ ⎟ 0
G ⎝ ∂x
2
∂y 2 ⎠ C ∂y ∂x G
Deoarece h C = 0 , rezultă că avem
1

⎛ ∂u 0 ∂ h ∂ u 0 ∂h ⎞ ⎡ ∂u ∂u ⎤
∫∫ ⎜⎜ + ⎟⎟ dxdy = ∫ h ⎢− 0 dx + 0 dy ⎥ −
G ⎝ ∂x ∂x ∂y ∂y ⎠ C2 ⎣ ∂ y ∂x ⎦
(10)
− ∫∫ h∆u 0 dxdy .
G

r
Dacă notăm cu τ versorul tangentei
la curba C2, atunci
r dx r dy r r r C2
τ = i+ j = cos α i + cos β j . α r
ds ds τ
Pe de altă parte, versorul π+α β
normalei exterioare la curba C2 este α
r r r
n = cos β i + cos(π + α ) j . β
Ţinând seama de aceste
observaţii, mai departe avem
r
n
S
∂u 0 ∂u ⎛ ∂u dx ∂u 0 dy ⎞
∫ −h dx + h 0 dy = ∫ h⎜⎜ − 0 + ⎟ds =
C2
∂y ∂x 0 ⎝
∂y ds ∂x ds ⎟⎠
(11)
S S
⎛ ∂u ∂u ⎞ ∂u ∂u
= ∫ h⎜⎜ 0 cos β + 0 cos(α + π )⎟⎟ ds = ∫ h 0 ds = ∫ h 0 ds.
0 ⎝
∂x ∂y ⎠ 0
∂n C2
∂n
Cum ϕ ′(0) = 0, din (9), (10) şi (11) rezultă
0 = ϕ ′(0) = ∫∫ [− ∆u 0 − p( x, y )u 0 + f ( x, y )] ⋅ hdxdy +
G
(12)
⎡ ∂u ⎤
+ ∫ ⎢ 0 + α ( s )u 0 − γ ( s )⎥ ⋅ hds.
∂n
C2 ⎣ ⎦

Egalitatea (12) are loc pentru orice h ∈ C (1) (G ) cu proprietatea h C = 0 ;


1

în particular şi pentru o funcţie h ∈ C (1) (G ) , nulă pe C. Atunci obţinem


∫∫ [− ∆u 0 − p( x, y )u 0 + f ( x, y )] ⋅ hdxdy = 0 , (13)
G
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 225

pentru orice h ∈ C (1) (G ) , h C = 0 . Dintr-o cunoscută lemă de calcul variaţional


1
rezultă
− ∆u 0 − p ( x, y )u 0 + f ( x, y ) = 0 ,
adică ecuaţia (1).
Înlocuind acum în (12), rezultă
⎡ ∂ u0 ⎤
∫ ⎢ + α ⋅ u 0 − γ ⎥ ⋅ hds = 0 ,
C ⎣ ∂ n
2 ⎦
(1)
pentru orice h ∈ C (G ) , h C = 0 .
1
Printr-un raţionament asemănător cu cel precedent deducem
∂ u0
+ α ⋅ u0 =γ ,
∂n C2

adică (3) .
În continuare demonstrăm afirmaţia reciprocă. Fie u0 o soluţie a
problemei la limită (1)+(2)+(3), v ∈ D şi h = v-u0. Evident h ∈ D0.
Ţinând seama de definiţia funcţionalei J dată de (8) rezultă
J (v) − J (u 0 ) = J (u 0 + h) − J (u 0 ) =
⎡ 1 1 ⎤
= ∫∫ ⎢grad u 0 grad h + (grad h) 2 − pu 0 h 2 − ph 2 + f h ⎥ dx dy +
2 2
G⎣ ⎦
⎛ 1 2 ⎞
+ ∫ ⎜⎝α u 0 h + 2 α h − γ h ⎟ ds.

C2
Cum f = ∆ u0 + pu0 (deoarece u0 satisface (1)), mai departe avem
⎡ 1 1 ⎤
J (v) − J (u 0 ) == ∫∫ ⎢grad u 0 grad h + (grad h) 2 − ph 2 + h∆u 0 ⎥ dx dy +
2 2
G⎣ ⎦
⎛ 1 2 ⎞
+ ∫ ⎜⎝α u 0 h + 2 α h − γ h ⎟ ds.

C2
Ţinând seama de (10) şi (11) rezultă
⎡1 1 ⎤
J (v) − J (u 0 ) = ∫∫ ⎢ ( grad h) 2 − p h 2 ⎥ dxdy +
G ⎣2 2 ⎦
(14)
⎡⎛ ∂u ⎞ 1 ⎤
+ ∫ ⎢⎜ 0 + α u 0 − γ ⎟ ⋅ h + α h 2 ⎥ ds .
C2 ⎣⎝
∂n ⎠ 2 ⎦
Deoarece u0 satisface (3), egalitatea (14) devine
⎡1 1 ⎤ 1
J (v) − J (u 0 ) = ∫∫ ⎢ (grad h) 2 − p h 2 ⎥ dx dy + ∫ α h 2 ds . (15)
G ⎣2 2 ⎦ C2 2
Cum p(x,y) ≤ 0 pe G şi α(s) ≥ 0 pe C2, din (15) rezultă
226 Bazele Analizei Numerice

1 2
J (v) − J (u 0 ) ≥ ∫∫ (grad h) dx dy ≥ 0 .
2G
Observăm că dacă h = v − u0 ≠ 0 atunci ∫∫ (grad h) 2 dx dy > 0 . Într-adevăr, în
G
caz contrar, ar rezulta grad h = 0 şi deci că h este constantă pe G . Cum
h C = 0 , rezultă h = 0, ceea ce contrazice ipoteza făcută. Aşadar J(v) > J(u0)
1
dacă v ≠ u0.
Rămâne să demonstrăm unicitatea elementului u0. Fie u1∈D, u1≠u0,
astfel încât J (u1 ) = min{ J (u ) ; u ∈ D } . Conform celor demonstrate mai
înainte rezultă J(u1) > J(u0) .
Analog avem J(u0) > J(u1). Rezultă astfel o contradicţie şi cu aceasta
teorema este demonstrată. ‰

Observaţia 1. Funcţionala (8) are sens şi pentru funcţii u dintr-o clasă mai largă
şi anume funcţii de clasă C1.

Analizând demonstraţia Teoremei 1 constatăm că dacă funcţia u0


minimizează funcţionala J pe mulţimea
~
D = { u ∈ C 1 (G ) ∩ C 0 (G ) ; u C = ϕ },
1
atunci u0 satisface ecuaţia ce derivă din ϕ ′ (0) = 0 şi anume
∫∫ [grad u 0 grad h − pu 0 h + fh]dxdy + ∫ (αu 0 h − γ ⋅ h )ds = 0 , (16)
G C2

pentru orice h ∈ C (1) (G ) ∩ C (0) (G ) cu proprietatea h C = 0 .


1
Evident u0 nu mai este soluţie (clasică) a problemei la limită (1)+(2)+(3).
~
O funcţie din D care verifică (16) poartă numele de soluţie slabă a problemei la
limită (1) + (2) + (3).
Pentru rezolvarea numerică a problemei la limită (1)+(2)+(3), se consideră
o reţea pătratică de drepte paralele cu axele de coordonate:
x = xi = a + ih , i = 1, m ,
y = y j = b + jh , j = 1, n ,
care acoperă întreg domeniul G . Punctele Mij(xi , yj) se numesc nodurile reţelei,
iar h, pasul reţelei.
O primă metodă de rezolvare numerică a problemei la limită (1)+(2)+(3)
constă în discretizarea ecuaţiei (1) şi a condiţiilor la limită (2)+(3) în nodurile
reţelei, obţinându-se un sistem de ecuaţii liniare.
Soluţia acestui sistem aproximează, în nodurile reţelei, soluţia problemei la
limită (1)+(2)+(3).
În continuare vom numi această metodă, metoda reţelelor. O a doua
metodă constă în discretizarea integralei (8) din problema variaţională, rezultând o
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 227

funcţie pătratică, care apoi se minimizează. Vom numi această metodă, metoda
energiei.
Prezentăm cele două metode pe următorul exemplu.

Exemplul 1. Fie G dreptunghiul ABCD de laturi AB = 5 şi AD = 4.


Se cere să se determine o funcţie u ∈ C ( 2) (G ) ∩ C (1) (G ) care este soluţie
pentru ecuaţia Poisson
∆ u = f(x,y), (x,y)∈G , (17)
unde
⎧4 dacă ( x, y ) ∈ G1
f ( x, y ) = ⎨ y
⎩0 dacă ( x, y ) ∉ G1
C
D
4 7 10 13 16
1
5 8 11 14 17
2
6 G1 9 12 G2 15 18
3

A B x
Figura 1
şi care verifică condiţiile la limită
u AB = u DC = 0 , (18)
∂u
AD = 0 , (19)
∂x
∂u
+ u BC = 0 . (20)
∂x
Interpretarea fizică este următoarea: o membrană elastică are marginile AB
şi CD fixe, marginea AD liberă, iar marginea BC este rezemată elastic. Funcţia
căutată u = u(x,y) reprezintă deplasarea membranei sub acţiunea unei încărcări
continue f = f(x,y), care este aplicată perpendicular pe membrană.

§7.1. Metoda reţelelor (a diferenţelor finite)

Pentru discretizarea problemei (17)+(18)+(19)+(20) considerăm o reţea


pătratică de pas h = 1. Deoarece u = 0 pe AB şi CD, nodurile de pe aceste
laturi nu prezintă interes. Cele 18 noduri în care urmează să determinăm funcţia u
228 Bazele Analizei Numerice

sunt notate în figură. Valorile funcţiei u = u(x,y) şi ale funcţiei f în aceste


noduri le vom nota cu u1, u2, ..., u18, respectiv f1, f2, ..., f18.
∂ 2u
Pentru discretizarea ecuaţiei (17) va trebui să aproximăm derivatele
∂ x2
∂ 2u
şi în nodurile reţelei. Ne propunem să facem această aproximare în nodul
∂ y2
∂ 2u ∂ 2u
11. Aşadar, aproximăm derivatele şi în nodul 11 cu derivatele lor
∂ x2 ∂ y2
numerice în acest nod. Conform (19), §5.4 , rezultă
⎛ ∂ 2u ⎞ ⎛ ∂ 2u ⎞
⎜ ⎟ = u8 − 2u11 + u14 şi ⎜ ⎟ = u10 − 2u11 + u12 .
⎜ ∂ x2 ⎟ 2 ⎜ 2⎟
h2
⎝ ⎠11 h ⎝ ∂ y ⎠11
Înlocuind în ecuaţia Poisson (17), obţinem
u8 − 2u11 + u14 u10 − 2u11 + u12
+ = f11
h2 h2
şi mai departe
4u11 − u8 − u14 − u10 − u12 + h 2 f11 = 0 . (21)
În fiecare din cele 12 noduri −1
interioare vom obţine câte o ecuaţie
liniară de tipul (21).
Modul de alcătuire al ecuaţiei de
tip (21) este pus simbolic în evidenţă de
figura 2. −1 −1
Dacă nodul este interior, dar este 2
4u+h f
de tipul 4, atunci va trebui să ţinem
seama că u CD = 0 .
Ecuaţia corespunzătoare nodului
4 va fi −1
Figura 2
4u 4 − u 5 − u 7 − u1 + h 2 f 4 = 0 . (21’)
Aşadar, celor 12 noduri interioare le corespund 12 ecuaţii liniare cu 18
necunoscute u1, u2, ..., u18. Cele 6 ecuaţii liniare care lipsesc se obţin din
condiţiile la limită (19) şi (20).
∂u
În nodurile de pe laturile AD şi BC aproximăm derivata cu derivata
∂x
numerică dată de (17), §5.4 .
⎛ ∂u ⎞ − 3u1 + 4u 4 − u 7
De exemplu în nodul 1 avem ⎜ ⎟ = .
⎝ ∂x ⎠1 2h
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 229

∂u
Cum AC = 0, rezultă ecuaţia liniară
∂x
− 3u1 + 4u 4 − u 7 = 0 . (22)
Ecuaţii asemănătoare se obţin datorită nodurilor 2 şi 3.
∂u
Deoarece pe latura BC avem condiţia la limită +u = 0 , în nodul 16
∂x BC
obţinem
− 3u16 + 4u13 − u10
+ u16 = 0
2h
şi mai departe
− 3u16 + 4u13 − u10 + 2hu16 = 0 . (23)
Ecuaţii asemănătoare se obţin datorită nodurilor 17 şi 18.
În final se obţine un sistem de 18 ecuaţii liniare cu 18 necunoscute u1, u2,
..., u18. Rezolvând acest sistem se obţin valorile aproximative ale funcţiei u în
nodurile reţelei.

§7.2. Metoda energiei

Problema la limită din Exemplul 1 este un caz particular al problemei la


limită (1)+(2)+(3) şi anume:
G este dreptunghiul ABCD, C1 = AB ∪ CD , C 2 = AD ∪ BC ,
p(x,y)=0, (x,y)∈G, ϕ C = 0 , α AD = 0 , α BC = 1 , γ C = 0 .
1 2
Funcţionala J asociată acestei probleme la limită, va fi un caz particular al
funcţionalei (8) şi anume
⎡1 ⎤ 1
J (u ) = ∫∫ ⎢ ( grad u ) 2 + f ( x, y )u ⎥ dx dy + ∫ u 2 dy . (24)
G ⎣2 ⎦ 2 BC
Conform Teoremei 1, problema la limită (17)+(18)+(19)+(20) este
echivalentă cu următoarea problemă variaţională:
să se găsească o funcţie u ∈ C 2 (G ) ∩ C 1 (G ) care satisface condiţia
u AB = u DC = 0 (25)
şi care minimizează funcţionala (24) .
Introducem notaţiile:
1 ⎡⎛ ∂u ⎞ ⎛ ∂u ⎞ ⎤
2 2
1
J 1 (u ) = ∫∫ ( grad u ) 2 dx dy = ∫∫ ⎢⎜ ⎟ + ⎜⎜ ⎟⎟ ⎥ dx dy , (26)
2 2 ⎢ ∂x ⎠ ⎝ ∂y ⎠ ⎥⎦
G G ⎣⎝
J 2 (u ) = ∫∫ f ( x, y )u ( x, y ) dx dy , (27)
G
230 Bazele Analizei Numerice

1 2
J 3 (u ) = ∫ u dy (28)
BC 2
şi considerăm reţeaua pătratică de pas h = 1 din figura 1. Metoda energiei constă
în aproximarea integralei J = J1 + J2 + J3 în nodurile reţelei, aproximare în urma
căreia se obţine o funcţie pătratică F = F(u1, u2, ..., u18) .
Problema minimizării funcţionalei J cu condiţia la limită (25), se va
înlocui cu problema minimizării funcţiei pătratice F cu aceeaşi condiţie la limită.
Condiţia necesară de minim pentru F şi anume, gradF = 0, ne conduce la un
sistem de 18 ecuaţii liniare în necunoscutele u1, u2, ..., u18.

Observaţia 1. Există două avantaje majore ale metodei energiei în raport cu


metoda reţelelor. Primul constă în faptul că în metoda energiei nu este necesară
discretizarea condiţiilor la limită (19) şi (20) şi nici a derivatelor parţiale de
ordinul doi. Al doilea constă în aceea că, termenii pătratici din expresia lui F,
constituie o formă pătratică pozitiv definită. Drept urmare, sistemul de ecuaţii
liniare, care rezultă din minimizarea funcţiei pătratice F, este simetric şi pozitiv
definit şi astfel avem acces la metodele de relaxare pentru rezolvarea sa.

∂u
Pentru discretizarea integralei J1 va trebui să aproximăm derivatele
∂x
∂u
şi . Ne propunem să facem această aproximare în pătratul haşurat, G2. Pe
∂y
segmentul orizontal determinat de nodurile 11 şi 14 avem
∂u u14 − u11
≈ ,
∂x h
iar pe segmentul orizontal determinat de nodurile 12 şi 15 avem
∂u u15 − u12
≈ .
∂x h
Media aritmetică a pătratelor acestor expresii constituie o aproximare bună
2
⎛ ∂u ⎞
pentru derivata ⎜ ⎟ în centrul pătratului G2. Aşadar, avem:
⎝ ∂x ⎠

[ ]
2
⎛ ∂u ⎞ 1
⎜ ⎟ ≈ 2 (u14 − u11 ) + (u15 − u12 ) .
2 2
(29)
⎝ ∂x ⎠ 2h
2
⎛ ∂u ⎞
Un rezultat asemănător obţinem pentru ⎜⎜ ⎟⎟ şi anume:
⎝ ∂y ⎠

[ ]
2
⎛ ∂u ⎞ 1
⎜⎜ ⎟⎟ ≈ (u14 − u15 )2 + (u11 − u12 )2 . (30)

⎝ ⎠y 2 h 2
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 231

Ţinând seama că aria pătratului G2 este h2, din teorema de medie pentru
integrala dublă rezultă
1
[
J 1 ≈ (u14 − u11 )2 + (u15 − u12 )2 + (u14 − u15 )2 + (u11 − u12 )2 .
4
]
(31)
Pentru aproximarea integralei J2 folosim metoda trapezelor pentru
integrala dublă (§5.3 , (1) ). Avem
h2
J2 ≈ [ f11u11 + f14 u14 + f15 u15 + f12 u12 ] . (32)
4
Pentru aproximarea integralei J3 se foloseşte metoda dreptunghiurilor şi se obţine
h 2
J 3 ≈ u16
2
( 2
+ u17 2
+ u18) . (33)
Aşadar, integrala J = J1 + J2 + J3 se va aproxima cu o funcţie pătratică
F = F(u1, u2, ..., u18) , care provine din adunarea expresiilor (31)+(32)+(33).
Funcţia pătratică F se compune dintr-o formă pătratică pozitiv definită provenind
din discretizarea integralelor J1 şi J3 şi o formă liniară provenind din
discretizarea integralei J2. Pentru ca F să fie minimă trebuie ca gradF = 0.
∂F
Contribuţia celulei G2 în va fi
∂u11
2 2
1
[(u11 − u12 ) − (u14 − u11 )] + h f11 = 1 (− u14 + 2u11 − u12 ) + h f11 .(34)
2 4 2 4
Datorită celorlalte trei celule vecine, care au în comun cu G2 , nodul 11,
∂F
în vor apare şi expresiile
∂u11
2 2
1
(− u8 + 2u11 − u12 ) + h f11 , 1 (− u10 + 2u11 − u14 ) + h f11 ,
2 4 2 4
2
1
(− u8 + 2u11 − u10 ) + h f11 .
2 4
Deoarece variabila u11 intervine în expresia lui F, numai datorită
∂F
celulelor care au comun nodul 11, rezultă că se compune din suma celor
∂u11
patru expresii de mai sus. Rezultă că
∂F
= 4u11 − u14 − u10 − u8 − u12 + h 2 f11 = 0 . (35)
∂u11 −1

Contribuţia nodului 11 în gradF = 0


este pusă în evidenţă de schema (în cruce)
−1 −1
din Figura 3. Deoarece u CD = 0 , un nod 4u+h2f
interior de tipul nodului 4 ne conduce la
ecuaţia
Figura 3
−1
232 Bazele Analizei Numerice

∂F
= 4u 4 − u 5 − u 7 − u1 + h 2 f 4 = 0 . (35’)
∂u 4
Să analizăm acum contribuţia în gradF = 0 a unui nod de pe AD, de
exemplu a nodului 2. În acest caz sunt numai două celule vecine care au în comun
nodul 2. Expresia cu care intervine u2 în F va fi

[ ]
2 2
1
(u 5 − u 2 )2 + (u1 − u 2 )2 + h f 2 u 2 + ⎡⎢ 1 (u 5 − u 2 )2 + (u 2 − u 3 )2 ⎤⎥ + h f 2 u 2 .
4 4 ⎣4 ⎦ 4
Contribuţia nodului 2 în gradF = 0 revine la
2
1
[− (u5 − u 2 ) − (u1 − u 2 ) − (u5 − u 2 ) + (u 2 − u3 )] + h f 2 = 0 .
2 2
Se obţine astfel ecuaţia
1 1 h2
2u 2 − u 5 − u1 − u 3 + f2 = 0 . (36)
2 2 2
Modul de alcătuire a ecuaţiei (36) este pus în 1
evidenţă de schema din Figura 4. −
2
În cazul nodului 1 vom avea
1 h2
2u1 − u 4 − u2 + f1 = 0 ,
2 2
−1
deoarece u CD = 0 . În mod analog, nodului 3 îi
2
2 h
1 h 2u + f
corespunde ecuaţia 2u 3 − u 6 − u2 + f3 = 0 .
2 2 2
1
În sfârşit, rămâne să analizăm nodurile de − Figura 4
pe latura BC, de exemplu nodul 17. Şi în acest 2
caz avem numai două celule vecine.
Contribuţia nodului 17 în gradF datorită discretizării integralelor J1 şi
J2 va fi
1 1 h2
2u17 − u14 − u16 − u18 + f17 = 0.
2 2 2
h
La această expresie trebuie să adăugăm şi termenul ⋅ 2u17 = hu17 care
2
provine din discretizarea integralei J3. Aşadar, nodului 17 îi corespunde
ecuaţia
2
(2 + h )u17 − u14 − 1 u16 − 1 u18 + h f17 = 0 . (37)
2 2 2
Modul de alcătuire al ecuaţiei
(37) este pus în evidenţă de schema din 1

Figura 5. 2

−1
h2
( 2 + h)u + f
2

1

Figura 5 2
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 233

Deoarece u CD = 0 , nodului 16 îi corespunde ecuaţia


2
(2 + h )u16 − u13 − 1 u17 + h f16 = 0 .
2 2
O ecuaţie analoagă obţinem pentru nodul 18.
În cazul concret considerat, când funcţia f este dată de
⎧4 dacă ( x, y ) ∈ G1
f ( x, y ) = ⎨ ,
⎩0 dacă ( x, y ) ∉ G1
rezultă f5 =f6 =f8 =f9 = 4 şi fi = 0 în rest. Precizăm de asemenea că h=1.
În final se obţine următorul sistem de ecuaţii liniare
AU+b = 0,
în care A este matricea coeficienţilor necunoscutelor u1, u2, ..., u18,
U = ( u1, u2, ..., u18)T , iar b = ( b1, b2, ..., b18)T. Componentele vectorului b sunt
toate nule cu excepţia componentelor b5, b6, b8 şi b9 care sunt egale cu 4.
Matricea A arată astfel
⎛ 1 ⎞
⎜ 2 − 0 −1 0 0 ⎟
⎜ 2 ⎟
⎜ − 1 2 − 1 0 −1 0 ⎟
⎜ 2 2 ⎟
⎜ 1 ⎟
⎜ 0 − 2 0 0 −1 ⎟
⎜ 2 ⎟
⎜ −1 0 0 4 −1 0 −1 0 0 ⎟
⎜ 0 −1 0 −1 4 −1 0 −1 0 ⎟
⎜ ⎟
⎜ 0 0 −1 0 −1 4 0 0 −1 ⎟
⎜ ⎟
⎜ −1 0 0 4 −1 0 −1 0 0 ⎟
⎜ ⎟
⎜ 0 − 1 0 − 1 4 − 1 0 − 1 0 ⎟
⎜ 0 0 −1 0 −1 4 0 0 −1 ⎟
⎜ ⎟
⎜ −1 0 0 4 −1 0 −1 0 0 ⎟
⎜ ⎟
⎜ 0 −1 0 −1 4 0 0 −1 0 ⎟
⎜ 0 0 − 1 0 − 1 4 0 0 − 1 ⎟
⎜ ⎟
⎜ −1 0 0 4 −1 0 −1 0 0⎟
⎜ ⎟
⎜ 0 −1 0 −1 4 −1 0 −1 0 ⎟
⎜ ⎟
⎜ 0 0 −1 0 −1 4 0 0 −1 ⎟
⎜ 1
⎜ −1 0 0 3 − 0 ⎟⎟
2
⎜ 1 1⎟
⎜ 0 −1 0 − 3 − ⎟
⎜ 2 2⎟
⎜ 1
⎜ 0 0 −1 0 − 3 ⎟⎟
⎝ 2 ⎠
(38)
234 Bazele Analizei Numerice

Observăm că matricea sistemului este simetrică, ireductibilă şi slab


diagonal dominantă. Conform Teoremei 2 din §1.2 , rezultă că această matrice este
pozitiv definită. Numărul ecuaţiilor sistemului liniar, este egal cu numărul
nodurilor. Pentru o reţea cu un număr mic de noduri, sistemul se poate rezolva cu
metoda Cholesky. De asemenea se poate folosi metode relaxării simple sau metoda
Gauss - Seidel.
Dacă reţeaua se alege mai fină, numărul ecuaţiilor creşte rapid. Cea mai
indicată metodă de rezolvare în acest caz este metoda suprarelaxării.
Noi ştim să determinăm parametrul optim de relaxare pentru o matrice
simetrică, pozitiv definită, diagonal bloc tridiagonală (§1.11 , Teorema 2).
În cazul de faţă, matricea sistemului este simetrică, pozitiv definită şi bloc
tridiagonală, dar nu este diagonal bloc tridiagonală. Să observăm însă că structura
matricei coeficienţilor este legată de numerotarea nodurilor. Pentru acelaşi număr
de noduri, dacă se schimbă numerotarea, se schimbă şi matricea sistemului. Să
considerăm din nou o reţea formată din 18 noduri pe care le împărţim în două părţi.
O jumătate din noduri au culoarea neagră, iar cealaltă jumătate au culoarea albă.
Numerotarea o facem astfel încât
orice segment paralel cu axele uneşte
1 11 4 14 7 17
noduri de culori diferite (vezi Figura 6).
Pentru nodul 6, schema în cruce din Figura 10 3 13 6 16 9
3 ne conduce la ecuaţia
2 12 5 15 8 18
4u 6 − u13 − u14 − u15 − u16 + h 2 f 6 = 0 .
Pentru nodul 10, schema din
Figura 4 ne conduce la ecuaţia
Figura 6
1 1 h2
2u10 − u1 − u 2 − u 3 + f10 = 0 etc.
2 2 2
Se obţine următorul sistem

u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 b


1
2 − -1 0
2
1
2 − 0 -1 0
2
4 -1 -1 -1 -1 1
4 -1 0 -1 -1 0
4 -1 0 -1 -1 1
4 -1 0 -1 -1 0
4 -1 0 -1 -1 0
4 -1 -1 0 -1 0
1 1
3 -1 − − 0
2 2
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 235

1 1
− − -1 2 0
2 2
-1 0 -1 -1 4 0
-1 -1 0 -1 4 1
-1 -1 -1 -1 4 1
-1 0 -1 -1 4 0
-1 -1 0 -1 4 0
-1 -1 -1 -1 4 0
1
-1 0 − 3 0
2
1
-1 − 3 0
2
(39)
Matricea acestui sistem este simetrică, pozitiv definită şi diagonal bloc
tridiagonală.
Definiţie. Fie M={1,2,3, ... ,n}. O matrice pătratică A∈Mn(R) se numeşte de tip
(A) , dacă există două submulţimi S şi T ale lui M, nevide, cu proprietăţile: (i)
S∪T=M (ii) S∩T=φ (iii) Dacă aij≠0, atunci sau i=j sau i∈S şi j∈T.

Să observăm că matricea (38) de tipul (A). Într-adevăr, submulţimile


S = {1,3,5,7,9,11,13,15,17} şi T = {2,4,6,8,10,12,14,16,18} satisfac proprietăţile
(i)-(iii).
Se poate arăta că o matrice este de tipul (A), dacă prin permutări simultane
de linii şi coloane, poate fi adusă la forma diagonal bloc tridiagonală.
O matrice de tipul (A) poate avea mai multe reprezentări diagonal bloc
tridiagonale. Matricea (39) este una dintre aceste reprezentări ale matricei (38).

1 2 4 7 10 13
3 5 8 11 14 16
6 9 12 15 17 18
Figura 7

Numerotarea din Figura 6 este tipică pentru aducerea unei matrice de tip
(A) la forma diagonal bloc tridiagonală.
O numerotare a nodurilor pe diagonală, ca în Figura 7, conduce de
asemenea la o matrice diagonal bloc tridiagonală. Lăsăm în seama cititorului
deducerea matricei sistemului de ecuaţii liniare ce corespunde acestei numerotări.

Definiţie. Pentru o matrice de tip (A), un sistem de numerotare a nodurilor, căruia


îi corespunde o matrice diagonal bloc tridiagonală, se numeşte consistent.

Reamintim că pentru o matrice simetrică, pozitiv definită, diagonal bloc


tridiagonală, parametrul optim de relaxare este
236 Bazele Analizei Numerice

2
ω opt = ,
1+ 1 − λ12
unde λ1 este cea mai mare valoare proprie a matricei -D-1(E+F) (Teorema 2,
§1.11).
Se poate demonstra că, pentru o matrice de tipul (A), parametrul optim de
relaxare este independent de sistemul particular consistent de numerotare a
nodurilor.
În cazul exemplului nostru, pentru reţeaua cu 18 noduri avem:
λ1 = 0.837319 şi ωopt = 1.29306 .
Pentru a obţine o soluţie cu 6 zecimale exacte, sunt necesare 50 de iteraţii
cu metoda Gauss-Seidel şi numai 16 cu metoda suprarelaxării.
Pentru o reţea cu 77 de noduri, λ1 = 0.957686 şi ωopt = 1.5530 . Pentru a
obţine o soluţie cu 6 zecimale exacte sunt necesare 200 de iteraţii cu metoda
Gauss-Seidel şi numai 35 cu metoda suprarelaxării.
În încheierea acestui capitol vom analiza pe scurt cazul când frontiera
domeniului G este o curbă C (Figura 8). R2
Considerăm o reţea pătratică, de pas h, h R1
R3
care acoperă domeniul G şi notăm cu G’ C 1 2 3
domeniul haşurat (format din celulele
conţinute în interiorul domeniului G). 4 5 6 7
Să presupunem că se cunosc valorile
funcţiei u pe curba C. 8 9 10 11

Notăm cu a distanţa de la nodul 1 la


punctul R1. Dreapta determinată de punctele
(0,u5) şi (a+h,u(R1)) are ecuaţia Figura 8
u ( R1 ) − u 5
y − u5 = x.
a+h
Punând condiţia ca pentru x = h , să rezulte y = u1, obţinem
au + hu ( R1 )
u1 = 5 . (40)
a+h
Pe parcursul discretizării, variabila u1 se va înlocui cu expresia din
membrul drept al relaţiei (40), astfel încât variabila u1 va dispare din sistemul
final. Nodul 1 se numeşte nod eliminat, iar nodul 5 se numeşte nod auxiliar. Nu
acelaşi lucru se întâmplă cu nodul u2. Acesta este nod eliminat din punct de
vedere al punctului R2 de pe frontieră, dar, în acelaşi timp este nod auxiliar pentru
punctul R3. Rezultă că variabila u2 nu va dispare din sistemul final.

Exerciţii
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 237

1
1. Aplicând metoda reţelei pentru h = k = să se determine soluţia ecuaţiei lui
4
∂ 2u ∂ 2u
Laplace, + = 0 , într-un pătrat cu vârfurile A(0,0), B(0,1), C(1,1), D(1,0)
∂x 2 ∂y 2
şi cu condiţiile la limită următoare: u AB = y , u BC = 30(1 − x 2 ) , u CD = 0 ,
u AD = 0 .
R. Facem următoarele notaţii:
(
x 0 = 0 , y 0 = 0 , xi = x 0 + ih, i = 0, 4 , y j = y 0 + jk , j = 0, 4 ; u ij = u xi , y j )
Determinăm valorile la limită ale funcţiei u şi obţinem:
1 1 3
u (0, ) = 7.5 , u (0, ) = 15 (1), u (0, ) = 22.5 , u (0,1) = 30
4 2 4
1 1 3
u ( ,1) = 28.125 , u ( ,1) = 22.5 , u ( ,1) = 13.125 .
4 2 4

Vom numerota nodurile reţelei ca in figura de mai jos:


30 28.125 22.5 13.125 0

u13 • u23 • u33 •


22.5 0

u12 • u22 • u32 •


15 0

u11 • u21 • u31 •


7.5 0

0 0
0 0 0
Vom înlocui derivatele parţiale de ordin 2 în ecuaţia lui Laplace, pentru
nodurile interioare reţelei.
Obţinem astfel ecuaţiile:

u 21 + u 01 + u12 + u10 − 4u11 = 0


u 22 + u 02 + u13 + u11 − 4u12 = 0
u 23 + u 03 + u14 + u12 − 4u13 = 0
u 31 + u11 + u 22 + u 20 − 4u 21 = 0
u 32 + u12 + u 23 + u 21 − 4u 22 = 0
u 33 + u13 + u 24 + u 22 − 4u 23 = 0
u 41 + u 21 + u 32 + u 30 − 4u 31 = 0
238 Bazele Analizei Numerice

u 42 + u 22 + u 33 + u 31 − 4u 32 = 0
u 43 + u 23 + u 34 + u 32 − 4u 33 = 0

Înlocuind în ecuaţiile de mai sus valorile la limita specificate, obţinem


sistemul de ecuaţii:
⎧u 21 + u12 − 4u11 = −7.5
⎪u + u + u − 4u = −15
⎪ 22 13 11 12
⎪u 23 + u12 − 4u13 = −22.5 − 28.125

⎪u 31 + u11 + u 22 − 4u 21 = 0

⎨u 32 + u12 + u 23 + u 21 − 4u 22 = 0
⎪u + u + u − 4u = −22.5
⎪ 33 13 22 23
⎪u 21 + u 32 − 4u 31 = 0

⎪u 22 + u 33 + u 31 − 4u 32 = 0
⎪⎩u 23 + u 32 − 4u 33 = −13.125

Rezolvând acest sistem se obţin valorile: u11 = 6.077 , u12 = 12.422 ,


u13 = 19.47 , u 21 = 4.386 , u 22 = 9.141 , u 23 = 14.833 , u 31 = 2.327 , u 32 = 4.922 ,
u 33 = 8.22 .

1
2. Aplicând metoda reţelei pentru h = k = să se determine soluţia ecuaţiei lui
4
Laplace cu condiţiile la limită specificate în figura de mai jos, daca vârful din
stânga jos al plăcii are coordonatele (0,0).

5000 10000 10000 10000 5000

u13 • u23 • u33 •


0 0

u12 • u22 • u32 •


0 0

u11 • u21 • u31 •


0 0

0 0 1
0
R. Din cauza simetriei condiţiilor la0limită 0faţă de axa x = , vom avea:
2
u11 = u 31 , u12 = u 32 , u13 = u 33 (1)
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 239

Aceste relaţii reduc numărul valorilor necunoscute ale funcţiei u, în


punctele interioare reţelei, la 6.
Vom înlocui derivatele parţiale de ordin 2 în ecuaţia lui Laplace, pentru
nodurile (1,1), (1,2), (1,3), (2,1), (2,2), (2,3).
Obţinem astfel ecuaţiile:

u 21 + u 01 + u12 + u10 − 4u11 = 0


u 22 + u 02 + u13 + u11 − 4u12 = 0
u 23 + u 03 + u14 + u12 − 4u13 = 0
u 31 + u11 + u 22 + u 20 − 4u 21 = 0
u 32 + u12 + u 23 + u 21 − 4u 22 = 0
u 33 + u13 + u 24 + u 22 − 4u 23 = 0
Ţinând cont că u i 0 = 0, i = 1, 3 , u 0 j = 0, j = 1, 3 , u14 = u 24 = u 34 = 10000 ,
şi înlocuind în ecuaţiile de mai sus valorile la limita specificate, obţinem sistemul
de ecuaţii:
⎧u 21 + u12 − 4u11 = 0
⎪u + u + u − 4u = 0
⎪ 22 13 11 12
⎪⎪u 23 + u12 − 4u13 = −10000

⎪2u11 + u 22 − 4u 21 = 0
⎪2u12 + u 23 + u 21 − 4u 22 = 0

⎪⎩2u13 + u 22 − 4u 23 = −10000
Rezolvând acest sistem se obţin valorile: u11 = 714 , u12 = 1875 ,
u13 = 4286 , u 21 = 982 , u 22 = 2500 , u 23 = 5268 , după cum se observă şi in
figura de mai jos.
5000 10000 10000 10000 5000

0 • •
4286 5268 4286
• 0

0 • •
1875 2500 1875
• 0

0
714
• 982
• 714
• 0

0 0
0 0 0
240 Bazele Analizei Numerice

3. Problema deformării elastice a unei plăci pătrate sub acţiunea unei forţe
∂ 2u ∂ 2u
constante se reduce la rezolvarea ecuaţiei = 1 , cu valori la limită egale
+
∂x 2 ∂y 2
cu 0. Să se determine soluţia ecuaţiei, folosind metoda reţelelor, dacă latura plăcii
1
pătrate se ia egală cu 1, iar distanţa h = .
4

R. u11 = u13 = u 33 = u 31 = 0.0429 , u12 = u 32 = u 21 = u 23 = 0.0547 ,


u 22 = 0.0703 .

4. Fie G domeniul plan ABCDE din fig.1, AB = 1.5, BC = 0.5, DE = 1, AE = 1.


Formulaţi problema la limită corespunzătoare problemei de minim pentru
funcţionala
1
J (u ) = ∫∫ (grad u )2 dxdy − ∫ u ds ,
2G CD
definită pe mulţimea funcţiilor u ∈ C ( 2) (G ) ∩ C (1) (G ) , care satisfac: u = 0 pe BC,
u = 1 pe DE şi EA.

R. Procedând ca în demonstraţia teoremei 1, se obţine problema la limită


⎧∆ u = 0 în G
⎪ ∂u E D
⎪⎪ = 0 pe AB
(1) ⎨ ∂n
20 19 18 17 16
∂u
⎪ = 1 pe CD 11 12 13 14 15 C
⎪ ∂n
⎪⎩u = 0 pe BC , u = 1 pe DE şi EA. 10 9 8 7 6

1 2 3 4 5 B
A

5. Fie G trapezul ABCD, AB = 1.5, DA = 1, Fig. 1.


DC = 0.5 (fig.2). Să se determine funcţionala asociată problemei la limită:
D C

⎪∆ u + 2 = 0 în G

(2) ⎨u = 0 pe AB, CD şi DA
⎪ ∂u
⎪ = 0 pe BC
⎩ ∂n
B
A
1
R. J (u ) = ∫∫ (grad u )2 dxdy − 2 ∫∫ u dxdy. Fig. 2.
2
G G

6. Fie G trapezul ABCD, AB = 1.5, DA = 1, DC = 0.5 (fig.2). Să se determine


funcţionala asociată problemei la limită:
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 241

⎧∆ u = 1 în G
⎪u = 1 pe AB

⎪ ∂u
(3) ⎨ ∂n = 0 pe BC .
⎪u = 0 pe CD
⎪ ∂u
⎪2u + = 1 pe DA
⎩ ∂n
1
R. J (u ) = ∫∫ (grad u )2 dxdy + ∫∫ u dxdy + ∫ (u 2 − u ) ds .
2G G DA

7. Să se discretizeze problema la limită (1), folosind metoda energiei pentru


funcţionala asociată acestei probleme, alegând reţeaua şi numerotarea nodurilor ca
în fig.1.

R. Folosim notaţiile şi tehnica prezentată la metoda energiei. Fie


1
J 1 (u ) = ∫∫ ( grad u )2 dxdy , J 2 (u ) = − ∫ u ds .
2G CD
Integrala J 1 + J 2 se va aproxima cu o funcţie pătratică F = F (u1 , u 2 , ... , u19 , u 20 ) .
Condiţia gradF = 0 , conduce în cazul unui nod interior, de exemplu nodul
7, la ecuaţia (vezi (35)):
∂F
= 4u 7 − u 4 − u 6 − u8 − u14 = 0 .
∂u 7
În cazul nodurilor de pe AB, cum este cazul nodului 2, ţinând seama că
nodul 2 este comun la 2 celule, rezultă:
∂F 1 1
= 2u 2 − u 9 − u1 − u 3 = 0 .
∂u 2 2 2
Ţinând seama că u = 1 pe AE şi u = 0 pe BC, obţinem:
∂F 1 1
= 2u1 − u10 − − u 2 = 0 ,
∂u1 2 2
∂F 1
= 2u5 − u6 − u4 = 0.
∂u5 2
În cazul nodului 17, se procedează ca în cazul nodului 7, ţinând seama că
u = 1 pe DE. În consecinţă:
∂F
= 4u17 − u18 − u16 − u14 − 1 = 0 .
∂u17
Să analizăm acum cazul nodului 16. Pentru a aproxima J 1 pe celula D, 16,
17, ţinem seama că:
242 Bazele Analizei Numerice

2 2 2 2
⎛ ∂u ⎞ ⎛ u16 − u17 ⎞ ⎛ ∂u ⎞ ⎛ 1 − u17 ⎞
⎜ ⎟ ≈⎜ ⎟ , ⎜⎜ ⎟⎟ ≈ ⎜ ⎟ .
⎝ ∂x ⎠ ⎝ h ⎠ ⎝ ∂y ⎠ ⎝ h ⎠

Deci, pe această celulă,


1
[
J 1 (u ) ≈ (u16 − u17 )2 + (1 − u17 )2 .
2
]
Similar, pe celula C,15,16
1 2
J 1 (u ) ≈ u15
2
[
+ (u16 − u15 )2 . ]
Pentru a aproxima J 2 , cum ecuaţia dreptei CD este y = − x + 8h ,
ds = 2dx , deci
6h
J 2 (u ) = ∫ u ( x,− x + 8h) 2 dx ≈ h 2 (1 + 0 + 2u16 ) ,
4h
conform formulei trapezelor.
Ţinând seama şi de aceasta şi aportul celulelor vecine, rezultă:
∂F 3 3
= 3u16 − u15 − u17 + 2 2hu16 = 0 ,
∂u16 2 2
∂F 3
= 5u15 − u16 − u14 − u 6 = 0 .
∂u15 2
Similar obţinem:
3
5u17 − u16 − u14 − u18 − 1 = 0 ,
2
4u18 − u17 − u13 − u19 − 1 = 0
4u 20 − u11 − u19 − 2 = 0 .
În final se obţine următorul sistem de ecuaţii liniare:
AU + b = 0,
unde A este matricea coeficienţilor necunoscutelor u1 , u 2 , ..., u18 ,
U = (u1 , u 2 , ..., u18 )T , iar b = (b1 , b2 , ..., b18 )T ,
Matricea A arată astfel:
Rezolvarea numerică a problemelor la limită pentru e.d.p. de tip eliptic 243

⎛ 1 ⎞
⎜ 2 − 0 0 0 0 0 0 0 −1 ⎟
⎜ 2 ⎟
⎜− 1 2 −
1
0 0 0 0 0 −1 0 ⎟
⎜ 2 2 ⎟
⎜ 1 1 ⎟
⎜ 0 − 2 − 0 0 0 −1 0 0 ⎟
⎜ 2 2 ⎟
⎜ 0 1 1 ⎟
0 − 2 − 0 −1 0 0 0
⎜ 2 2 ⎟
⎜ 1 ⎟
⎜ 0 0 0 − 2 −1 0 0 0 0 ⎟
⎜ 2 ⎟
⎜ 0 0 0 0 −1 4 −1 0 0 0 0 0 0 0 −1 ⎟
⎜ 0 0 0 −1 0 −1 4 −1 0 0 0 0 0 −1 0 ⎟
⎜ ⎟
⎜ 0 0 −1 0 0 0 −1 4 −1 0 0 0 −1 0 0 ⎟
⎜ 0 −1 0 0 0 0 0 −1 4 −1 0 −1 0 0 0 ⎟
⎜ ⎟
⎜ −1 0 0 0 0 0 0 0 −1 4 −1 0 0 0 0 ⎟
⎜ 0 0 0 0 0 0 0 0 0 −1 4 −1 0 0 0 0 0 0 0 − 1⎟
⎜ ⎟
⎜ 0 0 0 0 0 0 0 0 −1 0 −1 4 −1 0 0 0 0 0 −1 0 ⎟
⎜ ⎟
⎜ 0 0 0 0 0 0 0 −1 0 0 0 −1 4 −1 0 0 0 −1 0 0⎟
⎜ 0 0 0 0 0 0 −1 0 0 0 0 0 −1 4 −1 0 −1 0 0 0⎟
⎜ 3 ⎟
⎜ 0 0 0 0 0 −1 0 0 0 0 0 0 0 −1 5 − 0 0 0 0⎟
⎜ 2 ⎟
⎜ 0

0 0 0 0 0 0 0 0 0 0 0 0 0 −
3
2
(3 + 2 2 )h −
3
2
0 0 0⎟

⎜ 3 ⎟
⎜ 0 0 0 0 0 0 0 0 0 0 0 0 0 −1 0 − 5 −1 0 0⎟
⎜ 2 ⎟
⎜ 0 0 0 0 0 0 0 0 0 0 0 0 −1 0 0 0 −1 4 −1 0 ⎟
⎜ 0 0 0 0 0 0 0 0 0 0 0 −1 0 0 0 0 0 − 1 4 − 1⎟
⎜ ⎟
⎝ 0 0 0 0 0 0 0 0 0 0 −1 0 0 0 0 0 0 0 −1 4 ⎠
T
⎛ 1 ⎞
b = ⎜ − ,0,0,0,0,0,0,0,0,−1,−1,0,0,0,0,0,−1,−1,−1,−2 ⎟ .
⎝ 2 ⎠

8. Să se discretizeze problema la limită (2), folosind metoda energiei pentru


funcţionala asociată acestei probleme, alegând reţeaua şi numerotarea nodurilor ca
în fig.2.

9. Să se discretizeze problema la limită (3), folosind metoda energiei pentru


funcţionala asociată acestei probleme, alegând reţeaua şi numerotarea nodurilor ca
în fig.2.
Introducere în metoda elementului finit 245

8. Introducere în metoda elementului finit

Formularea variaţională a diferitelor probleme la limită împreună cu


cerinţele mai slabe de regularitate conduc în mod natural la metode aproximative
de rezolvare numite, de obicei, metode directe. Aplicarea acestor metode
transformă problema în găsirea punctelor staţionare ale unei funcţii de un număr
finit de variabile reale.
Rezolvarea aproximativă a problemelor la limită pentru ecuaţii diferenţiale
şi cu derivate parţiale s-a dezvoltat pe trei direcţii principale:
a) metoda diferenţelor finite,
b) metoda elementului finit,
c) metoda elementului de frontieră.
În metoda diferenţelor finite, sistemul de ecuaţii diferenţiale sau cu
derivate parţiale valabil pentru orice punct al domeniului de analiză se transformă
într-un sistem de ecuaţii valabile numai pentru anumite puncte ale domeniului,
puncte ce definesc reţeaua de discretizare a domeniului.
Dezavantajul principal al acestei metode îl constituie utilizarea unei reţele
rectangulare de discretizare a domeniului de analiză. Deci folosirea ei pe domenii
cu contururi sau suprafeţe curbe introduce o serie de dificultăţi şi de artificii de
calcul. Totodată apar numeroase probleme de stabilitate şi de convergenţă a
soluţiilor, fapt ce impune determinarea condiţiilor specifice de apariţie şi respectiv,
de evitare a lor, pentru fiecare clasă de probleme.
În metoda elementului finit, se utilizează, ca punct de plecare un model
integral al fenomenului studiat. Acest model poate fi obţinut, de exemplu, cu
ajutorul calculului variaţional. Această metodă se bazează pe aproximarea locală pe
porţiuni sau subdomenii. Datorită folosirii unui model integral ca bază de plecare şi
a unor seturi de funcţii continue pe porţiuni, metoda elementului finit nu mai este
condiţionată de existenţa unei reţele rectangulare. Cu ajutorul ei se pot discretiza
practic corpuri geometrice oarecare. Datorită performanţelor sale ridicate, metoda
elementului finit a devenit aproape o metodă standard de analiză şi proiectare în
ingineria construcţiilor şi alte domenii.
În acest capitol vom studia metoda elementului finit.
246 Bazele Analizei Numerice

§8.1. Spaţii Hilbert

Spaţiul euclidian Rn se distinge printre toate spaţiile de dimensiune finită


n, prin faptul că în el este definit un produs scalar legat de normă printr-o relaţie
simplă: pătratul normei unui element este produsul scalar al acestui element cu el
însuşi. De aceea este natural să se considere spaţii în care este definit un produs
scalar şi norma să fie definită de produsul scalar ca mai sus.

Definiţia 1. Spaţiul vectorial real H se numeşte spaţiu prehilbertian dacă


pentru fiecare pereche de elemente x, y din H este definit un număr real x, y ,
numit produs scalar al elementului x cu elementul y, astfel încât sunt îndeplinite
următoarele condiţii:
(i) x, y = y, x , (∀) x, y ∈ H
(ii) α ⋅ x + β ⋅ y, z = α x, z + β y, z , (∀ ) x, y, z ∈H, α, β∈ R.
(iii) x, x ≥ 0, x, x = 0 ⇔ x = θH

Din definiţia produsului scalar rezultă imediat:


a) x, α ⋅ y + β ⋅ z = α x, y + β x, z , (∀) x, y, z ∈H, α, β∈R.
b) x, θ H = θ H , x = 0 .
Ca şi în cazul spaţiilor euclidiene se poate demonstra
c) x, y ≤ x, x ⋅ y, y , (∀) x, y ∈ H (inegalitatea Cauchy-
Buniakowski-Schwarz)
Într-un spaţiu prehilbertian H se defineşte
x = x, x , x ∈ H . (1)
Din (iii) şi (1) se obţine:
d) x ≥ 0, (∀) x ∈ H ; x = 0 ⇔ x =θH
e) αx = α x , (∀) x ∈ H , α ∈ R .
Totodată din c) rezultă
f) x + y ≤ x + y , (∀) x, y ∈ H (inegalitatea triunghiului).
În concluzie, (1) defineşte o normă pe H, deci (H, ⋅ ) este un spaţiu
normat.

Definiţia 2. Un şir (xn)n din H converge la elementul x din H şi vom nota


xn→ x, dacă şirul numeric ( x n − x )n converge la 0, deci dacă pentru orice
ε>0, există nε∈N* astfel încât x n − x < ε , (∀) n ≥ nε . Un şir (xn)n din H
Introducere în metoda elementului finit 247

se numeşte şir fundamental (Cauchy) dacă pentru orice ε>0 există nε∈N*
astfel ca x n − x m < ε , (∀) n, m ≥ nε .

Evident, orice şir convergent este şir Cauchy, afirmaţia reciprocă nefiind,
în general, adevărată.

Definiţia 3. Un spaţiu normat în care orice şir Cauchy este convergent se


numeşte complet (Banach). Un spaţiu prehilbertian complet se numeşte spaţiu
Hilbert (de la numele matematicianului german D. Hilbert).

Se poate arăta uşor că orice şir convergent este mărginit.


Propoziţia următoare semnalează proprietăţi simple specifice spaţiilor
prehilbertiene.

Propoziţia 1. Fie H un spaţiu prehilbertian


2 2 2 2
(i) x+ y + x− y = 2( x + y ) (identitatea paralelogramului)
(ii) Dacă xn→x şi yn→y, atunci 〈xn, yn〉→〈x,y〉 (continuitatea
produsului scalar)
Demonstraţie.
(i) Din definiţia normei se obţine
2 2 2
x+ y = x + y, x + y = x + 2 x, y + y

2 2 2
x − y = x − y , x − y = x − 2 x, y + y .
Aducând cele două egalităţi obţinem (i). De remarcat că această identitate
este generalizarea următoarei proprietăţi din geometria elementară: suma pătratelor
diagonalelor unui paralelogram este egală cu suma pătratelor laturilor sale.
(ii) Folosind inegalitatea lui Cauchy-Buniakowski-Schwarz obţinem
x, y − x n , y n ≤ x, y − y n + x − x n , y n ≤ x ⋅ y − y n + x − x n ⋅ y n .
Cum şirul (yn)n este mărginit, rezultă că membrul drept al inegalităţii
converge la 0, deci x n , y n → x, y . ‰

Un interes fundamental îl reprezintă spaţiile Hilbert. Acestea reprezintă


generalizarea imediată a spaţiilor euclidiene deoarece „geometria” lor este mai
apropiată de geometria euclidiană decât geometria oricăror alte spaţii Banach.
Spaţiile Hilbert au numeroase proprietăţi specifice spaţiilor euclidiene care nu sunt
generice spaţiilor Banach (de exemplu, identitatea paralelogramului). În continuare,
vom da un exemplu de spaţiu Hilbert, important în teoria ecuaţiilor diferenţiale şi
cu derivate parţiale.
248 Bazele Analizei Numerice

Exemplul 1. Fie G o submulţime deschisă, conexă şi mărginită a lui Rn. Notăm


cu L2 (G ) = { u : G → R ; u ∫ u ( x)dx < ∞} .
2
măsurabilă şi
G
Vom identifica în L2(G), orice două funcţii care coincid aproape peste
tot (a.p.t) pe G. Este clar că dacă λ ∈ R şi u ∈ L2(G), atunci λu∈ L2(G). Fie
acum u,v ∈ L2(G). Din inegalitatea
[ ]
[u ( x) + v( x)]2 ≤ 2 u 2 ( x) + v 2 ( x) , (∀) x ∈ G ,
obţinem că
⎡ ⎤
∫ [u ( x) + v( x)] dx ≤ 2 ⎢ ∫ u ( x)dx + ∫ v ( x)dx ⎥ < ∞ .
2 2 2
G ⎢⎣G G ⎥⎦
În consecinţă, u+v ∈ L (G), deci L (G) este un spaţiu vectorial real.
2 2

Totodată pentru orice u,v∈L2(G), avem


( u( x) − v( x) )2 ≥ 0 , (∀) x ∈ G,
de unde
[u ( x)v( x)]2 ≤ 1 [u 2 ( x) + v 2 ( x)] , (∀) x ∈ G ,
2
deci are sens numărul real
def
u, v = ∫ u ( x)v( x)dx . (2)
G
Se verifică uşor că L2(G) este un spaţiu prehilbertian. Conform (1),
pentru orice u∈L2(G) se poate defini norma
1/ 2
⎛ ⎞
u 2 = ⎜⎜ ∫ u 2 ( x)dx ⎟⎟ . (3)
⎝G ⎠
Se poate demonstra

Teorema 1. L2(G) este un spaţiu Hilbert.

Definiţia 4. Fie H un spaţiu Hilbert. O mulţime D ⊂ H se numeşte densă în H,


dacă pentru orice x∈H există un şir (xn)n în D astfel ca xn → x.

De remarcat că dacă D ⊂ D ′ ⊂ H şi D este densă în H, atunci şi D ′


este densă în H.

Exemplul 2. Dacă G ⊂ Rn şi u : G → R, definim suportul lui u ca


suppu = {x ∈ G; u ( x) ≠ 0 } . Considerăm mulţimea C 0∞ (G ) , a funcţiilor reale
ϕ, cu suport compact în G (adică anulându-se în afara unei mulţimi compacte
din G, ce depinde de funcţia considerată), indefinit derivabile. Aceste funcţii vor
fi numite funcţii test. Evident că în raport cu adunarea funcţiilor test şi înmulţirea
Introducere în metoda elementului finit 249

cu numere reale a funcţiilor test, C 0∞ (G ) este un spaţiu vectorial. Există foarte


multe funcţii test.
De exemplu, se poate arăta că, pentru orice funcţie continuă f, cu suport
compact, există totdeauna o funcţie test ϕ ce o aproximează oricât de bine, adică
pentru orice ε > 0 există ϕ astfel ca, pentru orice x, f ( x) − ϕ ( x) < ε .
Vom admite fără demonstraţie că mulţimea C 0∞ (G ) este densă în L2(G).

Observaţia 1. Dacă D este densă în H şi 〈x, y〉 = 0, pentru orice y din D,


atunci x = θH.
Într-adevăr, dacă z∈H, atunci există (yn)n din D astfel ca yn → z.
Ţinând seama de continuitatea produsului scalar, rezultă x, z = 0 . Alegând z=x,
se obţine că x = θH.

Definiţia 5. Fie H un spaţiu Hilbert. Elementele x, y, ∈ H se numesc


ortogonale şi se notează x ⊥ y, dacă x, y = 0 . Elementul x ∈ H este
ortogonal pe mulţimea E ⊂ H şi se notează x ⊥ E, dacă x este ortogonal pe
fiecare element din E. Mulţimea tuturor elementelor ortogonale pe o mulţime dată
E formează un subspaţiu vectorial închis al lui H, numit complementul
ortogonal al mulţimii E şi se notează E⊥.

Teorema următoare este fundamentală în teoria spaţiilor Hilbert şi în


rezolvarea aproximativă a unor probleme la limită pentru ecuaţii diferenţiale şi cu
derivate parţiale.

Teorema 2. Fie H0 un subspaţiu închis al spaţiului Hilbert H şi H 0⊥


complementul ortogonal al lui H0. Orice element x ∈ H se poate reprezenta în
mod unic sub forma
x = x ′ + x ′′ , x ′ ∈ H 0 , x ′′ ∈ H 0⊥ (4)
Mai mult, în x ′ se atinge distanţa dintre x şi H0, adică
x − x ′ = min x − y . (5)
y∈H 0
Demonstraţie. Notăm cu d = inf x − y şi alegem elementele xn ∈H0 astfel
y∈H 0
ca
2 1
x − xn <d2 + , n = 1,2,... (6)
n2
Din identitatea paralelogramului se obţine
x n − x m + ( x − x m ) + ( x − x n ) = 2⎛⎜ x − x m + x − x n ⎞⎟
2 2 2 2
. (7)
⎝ ⎠
250 Bazele Analizei Numerice

Dar
2 2
( x − xm ) + ( x − xn ) = 4 x − ( xm + xn ) / 2 .
xm + xn
Deoarece ∈ H 0 , rezultă
2
2
( x − x m ) + ( x − x n ) ≥ 4d 2 . (8)
Ţinând seama de (6) şi (8), din (7) obţinem
2 ⎛ 1 1 ⎞ 2 2
x n − x m ≤ 2⎜⎜ d 2 + + d2 + ⎟ − 4d 2 = + .
2 2⎟ 2
⎝ n m ⎠ n m2
Deci şirul (xn)n este şir Cauchy şi cum H este complet, există

x = lim x n . Deoarece H0 este închis, rezultă x ′ ∈ H 0 . Trecând la limită în
n →∞
(6), găsim x − x ′ ≤ d , iar din x ′ ∈ H 0 , avem x − x ′ ≥ d , deci
x − x′ = d . (9)
Vom arăta acum că x ′′ = x − x ′ este ortogonal pe H0 şi deci
x ′′ ∈ H 0⊥ .
Fie y un element nenul din H0. Pentru orice λ∈R, avem

x + λy ∈ H 0 , deci
2 2
x ′′ − λy = x − ( x ′ + λy ) ≥d2,
adică
2 2
x − x ′ − 2λ x ′′, y + λ 2 y ≥ d2.
Având în vedere (9), obţinem
2
− 2λ x ′′, y + λ 2 y ≥0 .
x ′′, y 2
În particular, pentru λ= , se deduce x ′′, y ≤ 0, deci
2
y
x ′′, y = 0 , adică x ′′ ⊥ y. Astfel reprezentarea (4) şi relaţia (5) sunt stabilite.
Rămâne să arătăm unicitatea reprezentării (4). Fie

x = x1′ + x1′′ , x1′ ∈ H 0 , x1′′ ∈ H 0 . Din (4) se obţine x ′ − x1′ = x1′′ − x ′′.
Cum x ′ − x1′ ∈ H 0 , iar x1′′ − x ′′ ∈ H 0⊥ , rezultă (x ′ − x1′ ) ⊥ (x1′′ − x ′′), deci
x ′ − x1′ , x ′ − x1′ = 0. În consecinţă x ′ = x1′ , x1′′ = x ′′ . Teorema este demonstrată.
‰
Definiţia 6. Elementele x ′ şi x ′′ unic definite de elementul x se numesc
proiecţiile elementului x pe subspaţiul H0, respectiv H 0⊥ .
După cum este cunoscut nu orice şir Cauchy de numere raţionale are limită
în Q , ci în R. De fapt în R noţiunile de şir convergent şi şir Cauchy sunt
echivalente (altfel spus, R este complet). În mod similar orice spaţiu prehilbertian
Introducere în metoda elementului finit 251

poate fi inclus într-un spaţiu Hilbert (deci complet). Se numeşte completatul unui
spaţiu prehilbertian H, cel mai mic spaţiu Hilbert care îl conţine pe H ca
subspaţiu. Un rezultat cunoscut de analiză funcţională precizează că orice spaţiu
prehilbertian admite un completat. În spaţiul completat, vom face distincţie între
elementele „vechi” din H şi elementele „noi” sau ideale obţinute prin completare.
Din teoreme cunoscute ale analizei funcţionale rezultă că dacă u este un
element ideal din completat, atunci există un şir de elemente (un)n ⊂ H, ce
converge la u, deci H este dens în completat.

§8.2. Teorema variaţională fundamentală

Fie H un spaţiu Hilbert real, D ⊂ H un subspaţiu dens şi A : D → H un


operator liniar.

Definiţia 7. Operatorul A se numeşte strict pozitiv dacă Au, u > 0 , oricare ar


fi u ≠ θH. Operatorul A se numeşte simetric dacă Au, v = u , Av , pentru
orice u, v ∈ D.

În cele ce urmează vom presupune că operatorul A este simetric şi strict


pozitiv. Fie f ∈ H. Funcţionala pătratică
F (u ) = Au , u − 2 f , u , u ∈ D , (10)
se numeşte funcţionala energetică a operatorului A. Are loc

Teorema 3. Pentru ca u0 ∈D să realizeze minimul funcţionalei energetice este


necesar şi suficient ca acesta să satisfacă
Au0 = f . (11)
Dacă un astfel de element există, el este unic.
Demonstraţie. Necesitatea. Presupunem că u0 ∈ D realizează minimul
funcţionalei (10). Fie h un element arbitrar din D şi t un număr real arbitrar.
Atunci
F (u0 + th) ≥ F (u0) . (12)
Rezultă că funcţia reală ϕ (t ) = F (u 0 + th ) îşi atinge minimul pentru t=0,
deci dacă ϕ este derivabilă în 0, atunci ϕ ′(0) = 0 . Cum A este simetric, un
calcul direct conduce la
t −1 [ϕ (t ) − ϕ (0)] = 2 Au 0 − f , h + t Ah, h , (∀) h ∈ D .
Trecând la limită cu t → 0, obţinem
Au 0 − f , h = 0 , (∀) h ∈ D
şi cum D este dens în H, rezultă Au0 = f (Observaţia 1).
252 Bazele Analizei Numerice

Suficienţa . Să presupunem acum că u0 satisface ecuaţia (11). Dacă


u∈D, u≠u0, atunci u = u0 + v, v≠ θ H . Atunci, cum A este simetric, prin calcul
obţinem
F(u) = F(u0) + 2 Au 0 − f , v + Av, v .
Dar u0 satisface ecuaţia (11), deci
F(u) = F(u0) + Av, v .
Operatorul A fiind strict pozitiv şi v≠ θ H , rezultă că Av, v > 0 şi în
consecinţă F(u) > F(u0). Aceasta înseamnă că în punctul u0 funcţionala (10) îşi
atinge minimul.
Pentru unicitate, să presupunem că există încă un element u1 în care F îşi
atinge minimul. Conform celor de mai sus F(u1) > F(u0). În acelaşi mod ca mai
sus, se poate arăta că F(u0) > F(u1). Din contradicţia obţinută rezultă că
funcţionala (10) îşi poate atinge minimul într-un singur punct şi teorema este
demonstrată. ‰

Observaţia 2. Teorema stabileşte echivalenţa între problema rezolvării ecuaţiei


Au = f şi aceea a aflării minimului funcţionalei energetice (10); dacă una din
aceste probleme este rezolvabilă, atunci şi cealaltă este rezolvabilă şi soluţia uneia
dintre ele este şi soluţia celeilalte. Teorema nu stabileşte dacă aceste probleme au
soluţie. Mai mult, este posibil să nu avem soluţie pentru problema formulată.

Exemplul 3. Să considerăm următoarea ecuaţie diferenţială foarte simplă


d 2u
− = f ( x) , x ∈ (0,1) , u (0) = u (1) = 0 . (13)
dx 2
Fie
H = L ((0, 1)), Au = −u ′′ , D = { u ∈ C 2 ((0,1)) ∩ C1 ([ 0, 1 ]) ; u (0) = u (1) = 0 } .
2

Cum C 0∞ ((0,1) ) ⊂ D , rezultă că D este subspaţiu dens în H. Să


arătăm că operatorul A este simetric. Fie u, v∈D. Atunci, integrând prin părţi,
obţinem
1 1 1
1
Au, v = − ∫ u ′′( x)v( x)dx = − u ′( x)v( x) 0 + ∫ u ′( x)v ′( x)dx = ∫ u ′( x)v ′( x)dx = u , Av .
0 0 0
1
Totodată Au, u = ∫ u ′ 2 ( x) dx > 0 , deoarece în caz contrar u este
0
constantă şi din condiţiile la limită, rezultă că u = 0. Conform Teoremei 3, pentru
ca u0∈D să fie o soluţie a problemei (13), este necesar şi suficient ca u0 să
realizeze pe D minimul următoarei funcţionale
1
[ ]
F (u ) = ∫ u ′ 2 ( x) − 2 f ( x)u ( x) dx . (14)
0
Introducere în metoda elementului finit 253

În plus, dacă un astfel de element există, el este unic.

Exemplul 4. Fie ecuaţia diferenţială


− x ′′(t ) + σ (t ) x (t ) = f (t ) , t ∈ (0,1) , (15)
cu condiţiile la limită
x(0) = x(1) = 0 , (16)
iar σ(t) este o funcţie pozitivă neidentic nulă şi continuă pe [0, 1] .
Fie
H = L (0, 1), D = { u ∈ C 2 ((0,1)) ∩ C1 ([ 0, 1 ]) ; u (0) = u (1) = 0 } şi
2

A : D → H , Ax (t ) = − x ′′(t ) + σ (t ) x (t ) .
Pentru x,y∈D, integrând prin părţi avem
1 1 1
Ax, y = ∫ (− x ′′(t ) + σ (t ) x(t ) ) y (t )dt = ∫ x ′(t ) y ′(t )dt + ∫ σ (t ) x(t ) y (t )dt = x, Ay ,
0 0 0
deci A este simetric.
Totodată
1 1 1
Ax, x = ∫ x ′ 2 (t )dt + ∫ σ (t ) x 2 (t )dt ≥ ∫ x ′ 2 (t )dt > 0
0 0 0
pentru x(t) ≠ 0 (vezi Exemplul 3). Aşadar A este strict pozitiv. Aplicând Teorema
3, rezultă că, pentru ca x0∈D să fie o soluţie a problemei (15), (16), este necesar şi
suficient ca x0 să realizeze pe D minimul funcţionalei
1 1 1
F (u ) = ∫ x ′ 2 (t )dt + ∫ σ (t ) x 2 (t )dt − 2 ∫ f (t ) x(t )dt . (17)
0 0 0
De asemenea, dacă există un astfel de element, el este unic.

Exemplul 5. Fie G⊂ R2, o mulţime deschisă, conexă şi mărginită şi C frontiera


sa. Se caută u ∈ C 2 (G ) ∩ C1 (G ) , care satisface
∂ 2u ∂ 2u
− ∆u = − − = f ∈ L2 (G )
în G (18)
2 2
∂x ∂y
şi condiţia la limită
u C =0 . (19)
În acest caz,
H = L2 (G ) , A = −∆ , D = { u ∈ C 2 (G ) ∩ C1 (G ) ; u C = 0} .
Cum D conţine C 0∞ (G ) , rezultă că D este densă în H.
De asemenea, pentru u, v∈D, conform formulei Green-Riemann, rezultă
⎛ ∂ 2u ∂ 2u ⎞
− ∆ u , v = ∫∫ − ⎜ + ⎟v dx dy = − ∫ ∂u ⋅ vds + ∫∫ ⎛⎜ ∂u ∂v + ∂u ∂v ⎞⎟ dx dy ,
⎜ ⎜ ⎟
G ⎝∂ x
2
∂ y 2 ⎟⎠ C ∂n G ⎝ ∂x ∂ x ∂ y ∂ y ⎠
254 Bazele Analizei Numerice

n fiind versorul normalei exterioare la C.


Cum v∈D, v C = 0 , deci
⎛ ∂u ∂v ∂u ∂v ⎞
− ∆u , v = ∫∫ ⎜⎜ + ⎟⎟ dx dy = u,−∆v ,
G ⎝ ∂x ∂x ∂y ∂y ⎠
adică operatorul A este simetric. În plus
∂u ∂u
− ∆ u , u = ∫∫ [( ) 2 + ( ) 2 ] dx dy > 0 , (∀) u ≠ 0 ,
G ∂x ∂y
deci A este strict pozitiv.
Conform Teoremei 3, u0∈D este o soluţie a problemei (18), (19) dacă şi
numai dacă u0 realizează pe D minimul funcţionalei
∂u ∂u
F (u ) = ∫∫ [( ) 2 + ( ) 2 ] dxdy − 2∫∫ f ( x, y )u ( x, y )dxdy . (20)
G ∂x ∂y G

Observaţia 3. Problema clasică nu are sens decât pentru funcţii u care sunt de
clasă C 2 (G ) ∩ C1 (G ) . Funcţionala corespunzătoare are sens pentru funcţii de
clasă C1 (G ) ∩ C 0 (G ) . Deci prin trecerea de la problema clasică la funcţionala
energetică, condiţiile de regularitate pot fi slăbite. Altfel spus, problema de minim
pentru funcţionala energetică se poate pune pe o clasă mai largă de funcţii. Spre
∂u ∂u
exemplu, funcţionala (20) are sens dacă , , f ∈ L2 (G ) , deci nu mai este
∂x ∂y
necesar ca u să admită derivate parţiale de ordinul al doilea, iar derivatele
parţiale de ordinul întâi nu trebuie să fie neapărat continue. Totodată, existenţa şi
unicitatea soluţiei clasice, (adică a problemei (18), (19)) nu se poate garanta dacă
funcţia f nu este regulată. Se poate arăta că orice soluţie a problemei de minim
care este de clasă C2(G), este soluţie clasică a problemei considerate.
Altfel spus, problema de minim pentru funcţionala energetică se poate
pune pe o clasă mai largă de funcţii.

§8.3. Metoda Ritz


Creatorul metodei directe clasice este considerat matematicianul elveţian
W. Ritz (1878-1909). Vom considera o funcţională F, definită pe un spaţiu
corespunzător H, de funcţii admisibile. Se caută o funcţie u0 astfel ca
F(u 0 ) = min F (u ) = d . (21)
u∈H
Funcţia u0 care minimizează funcţionala se aproximează cu o funcţie u
dintr-un subspaţiu n-dimensional oarecare Kn⊂ H. Evident F(u) ≥ d, pentru
orice u∈Kn. Aşadar, dacă funcţiile ϕ i ( x ) , i = 1, n , formează o bază a
subspaţiului Kn, atunci vom căuta soluţia aproximativă sub forma
Introducere în metoda elementului finit 255

n
u ( x) = ∑ ci ϕ i ( x) , (22)
i =1
numerele reale c1, c2, ... ,cn , urmând a fi determinate. Înlocuind u dat de (22) în
funcţionala F, rezultă F(u) = Φ(c1, c2, ..., cn) şi deci problema minimizării
funcţionalei F este înlocuită cu problema determinării extremelor funcţiei
Φ : Rn → R. De remarcat că cele două probleme nu sunt echivalente, deoarece s-a
trecut de la funcţionala F la funcţia Φ, prin intermediul funcţiilor ϕ1, ϕ2, ..., ϕn ,
iar alegerea acestora este la dispoziţia noastră; eficienţa acestei metode, care se
mai numeşte şi metoda Rayleigh-Ritz, depinde în mare măsură de alegerea
funcţiilor ϕ1, ϕ2, ... , ϕn. Valorile parametrilor c1, c2, ... ,cn se determină, după
cum se cunoaşte, din sistemul de ecuaţii
∂Φ
= 0 , i = 1, n , (23)
∂ ci
adică
∂ ⎛ n ⎞
F ⎜ ∑ c j ϕ j ⎟ = 0 , i = 1, n .
∂ ci ⎜⎝ j =1 ⎟

În secţiunile următoare, vom arăta pe exemple concrete, cum se aleg
funcţiile ϕ1, ... , ϕn.
În continuare, vom prezenta metoda Rayleigh-Ritz ca metodă de cea mai
bună aproximare „în energie”. Fie D un subspaţiu dens al unui spaţiu Hilbert
H, iar A : D → H un operator liniar, simetric şi pozitiv definit. Presupunem că
pentru un f∈H dat, ecuaţia Au = f admite o soluţie unică u0∈D. Fiind dat un
subspaţiu n-dimensional Kn⊂D, vrem să aproximăm soluţia prin un∈Kn,
K n = Sp ( {ϕ1 ,..., ϕ n }) . Deci căutăm un = c1ϕ1 + ... + cnϕn astfel ca u 0 − u n să
fie mică. În ipotezele formulate asupra operatorului A , vom defini un produs
scalar, numit „produs energie” în D, astfel
u, v A = Au, v , iar u A = Au , u .
Vom nota cu HA completatul lui D în raport cu norma ⋅ A . Spaţiul
HA se numeşte spaţiul energetic al operatorului A. Conform Teoremei 2, există
şi este unic un element un∈Kn , element de cea mai bună aproximaţie, adică
u 0 − u n A = min u 0 − v A . (24)
v∈K n

Definiţia 8. Vectorul unic un cu proprietatea (24) se numeşte aproximanta


Rayleigh-Ritz a soluţiei u0 după subspaţiul finit dimensional Kn.
Dacă K n = Sp ( { ϕ1 ,..., ϕ n }) , atunci aproximanta Rayleigh-Ritz a soluţiei
u0 a ecuaţiei Au = f este dată de
un = c1ϕ1 + ... + cnϕn .
Fie funcţia
256 Bazele Analizei Numerice

2
g(c1, c2 , ... ,cn )= u n − u 0 A .
Determinăm (c1, ..., cn) punctul de minim al funcţiei g. Deoarece
n n
g (c1 ,..., c n ) = A(u n − u 0 ), u n − u 0 = ∑ [ ∑ ci c j Aϕ i , ϕ j − 2ci f , ϕ i ] +
i =1 j =1
+ Au 0 , u 0 ,
din condiţiile
∂g
= 0 , i = 1, n ,
∂ ci
rezultă că c1, ... ,cn sunt soluţii ale sistemului liniar
n
∑ ϕi ,ϕ j c
A j
= f , ϕ i , i = 1, n , (25)
j =1
sistem care s-ar putea obţine direct din (23), ţinând seama de formula (10), care
dă funcţionala energetică a operatorului A.

§8.4. Metoda lui Kantorovici (metoda semidiscretă)

Metoda constă în căutarea soluţiei aproximative sub forma


n
u = ∑α i ⋅ ϕi ,
i =1
unde coeficienţii α i , i = 1, n , nu mai sunt scalari, ci funcţii de una din
variabilele independente, de exemplu x1, iar funcţiile ϕi sunt funcţii de
variabilele rămase, x2, ... ,xm , adică
n
u ( x1 ,..., x m ) = ∑ α i ( x1 )ϕ i ( x 2 ,..., x m ) .
i =1
Această metodă se leagă de numele matematicianului rus L. V. Kantorovici
şi stă la baza metodei elementului finit de rezolvare a problemelor nestaţionare
(dependente de timp).

π π
Exemplul 6. Fie G = {(x, y ) ; − < x, y < } . Să aplicăm metoda lui
2 2
Kantorovici la rezolvarea aproximativă a ecuaţiei
∂ 2u ∂ 2u
+ =2, (26)
∂ x2 ∂ y2
care satisface condiţiile la limită
Introducere în metoda elementului finit 257

⎛ π⎞ π
u ⎜ x, ± ⎟ = 0 , x ≤ ,
⎝ 2⎠ 2
(27)
⎛ π ⎞ π
u⎜ ± , y ⎟ = 0 , y ≤ .
⎝ 2 ⎠ 2
Se alege ca subspaţiu aproximant Kn , subspaţiul funcţiilor de un singur
argument y, care conform (27) satisfac
⎛ π⎞ ⎛π ⎞
ϕ i ⎜ − ⎟ = ϕ i ⎜ ⎟ = 0 , i = 1, n .
⎝ 2⎠ ⎝2⎠
Soluţia aproximativă se caută de forma
n
u ( x, y ) = ∑ α i ( x)ϕ i ( y ), (28)
i =1
unde funcţiile α i , i = 1, n , se determină astfel ca u să minimizeze funcţionala
F corespunzătoare problemei date. În acest caz
⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤
F (u ) = ∫∫ ⎢⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + 4⎥ dx dy .
G ⎢⎣⎝ ∂ x ⎠ ⎝∂ y⎠ ⎥

Ţinând seama de (28), avem
π
2
F (u ) = ∫ Φ (α 1 , α 2 ,..., α n )dx =J (α 1 , α 2 ,..., α n ) ,
π

2
unde
π π
n n d ϕi d ϕ j
2 d αi d α j 2
Φ(α 1 ,α 2 ,...,α n ) = ∑ ∑ {α iα j ∫ dy + ∫ ϕ iϕ j ⋅ dy } +
i =1 j =1 π d y d y dx dx π
− −
2 2
π
n 2
+ ∑ α i ∫ 4ϕ i dy . (29)
i =1 π

2
Deoarece funcţiile ϕ i , i = 1, n , sunt cunoscute, integralele în (29) se pot
calcula exact. Se pune deci problema determinării extremalelor funcţionalei
J (α 1 , α 2 ,..., α n ) . Conform unui rezultat clasic de calcul variaţional, coeficienţii
α i , i = 1, n sunt daţi de sistemul Euler-Lagrange
∂Φ d ⎛∂Φ⎞
− ⎜ ⎟ = 0 , i = 1, n .
∂ α i dx ⎜⎝ ∂ α i′ ⎟⎠
258 Bazele Analizei Numerice

În consecinţă funcţiile necunoscute α i , i = 1, n , care apar în soluţia


aproximativă (28), se obţin din sistemul de ecuaţii diferenţiale

∑ (α j cij − α ′′j d ij ) = bi ,
n
i = 1, n , (30)
j =1
unde
π π π
dϕ i dϕ j
2 2 2
cij = ∫ dy , d ij = ∫ ϕ i ϕ j dy , bi = − ∫ 2ϕ i dy ,
π dy dy π π
− − −
2 2 2
cu condiţiile
⎛ π⎞ ⎛π ⎞
α i ⎜ − ⎟ = α i ⎜ ⎟ = 0 , i = 1, n .
⎝ 2⎠ ⎝2⎠
În general, metoda semidiscretă se poate aplica cu condiţia ca problema
unidimensională să poată fi rezolvată nemijlocit şi exact.

§8.5. Metoda lui Galerkin

Am prezentat în §8.3 metoda Ritz pentru determinarea soluţiei


aproximative a ecuaţiei
Au = f . (31)
În ipotezele formulate acolo, soluţia ecuaţiei Au = f minimizează
funcţionala energetică
F(u) = Au, u − 2 f , u . (32)
Astfel (vezi Exemplul 3), dacă A = – ∆, funcţionala energetică este
∂u ∂u
F (u ) = ∫∫ [( ) 2 + ( ) 2 ] dx dy − 2∫∫ f u dx dy . (33)
G ∂x ∂y G
Utilizarea integrării prin părţi, adică a formulei Green, pentru
transformarea funcţionalei (32) într-o formă care cere o regularitate mai slabă a
funcţiilor admisibile (cum se întâmplă de exemplu în (33)), este unul din succesele
n
de bază ale metodei elementului finit. Aproximanta Ritz u = ∑ ci ϕ i a soluţiei
i =1
problemei variaţionale satisface

F (u ) = 0 , i = 1, n ,
∂ ci
adică
Au , ϕ i − f , ϕ i = 0 , i = 1, n , (34)
Introducere în metoda elementului finit 259

numai când avem un operator A de forma cerută (de remarcat, că, sistemul (34)
nu este altceva decât o rescriere a sistemului (25) ).
Ideea metodei lui Galerkin este de a considera soluţii aproximative pentru
ecuaţia (31), de forma de mai sus, unde coeficienţii ei se determină din sistemul
Au − f , ϕ i = 0 , i = 1, n , (35)
chiar dacă A nu satisface condiţiile din §8.3. Astfel de soluţii aproximative
au fost considerate de matematicianul rus B. G. Galerkin (1878-1945).
Aşadar sistemul (35) se poate utiliza chiar dacă operatorul A este
neliniar.
În consecinţă, metoda elementului finit se poate utiliza pentru rezolvarea
unei clase largi de probleme, mult mai interesante decât clasa problemelor care
provin din probleme variaţionale. Totuşi, este de dorit ca (35) să poată fi integrat
prin părţi, pentru a slăbi regularitatea cerută funcţiilor ϕi.
Deci metoda lui Galerkin este absolut generală. Ea se poate aplica cu
succes la ecuaţii de tipuri diferite: eliptice, hiperbolice, parabolice, chiar dacă ele
nu sunt legate de probleme variaţionale, ceea ce reprezintă un avantaj faţă de
metoda lui Ritz. Totuşi, pentru probleme legate de probleme variaţionale, ea se
găseşte într-o interdependenţă strânsă cu metoda lui Ritz, iar în multe cazuri este
echivalentă cu aceasta din urmă, în sensul că ambele conduc la aceeaşi soluţie
aproximativă.

Exemplul 7. Vom prezenta acum o problemă de tip Neumann-Dirichlet pentru


operatorul lui Laplace în dimensiune 2. Fie G o mulţime deschisă şi conexă din
R2, cu frontiera C netedă pe porţiuni.
De asemenea, fie C1, C2 o partiţie a lui C, lungimea lui C1 fiind strict
r
pozitivă şi n versorul normalei exterioare la C.
Să considerăm acum problema clasică următoare:
să se găsească funcţia u ∈ C 2 (G ) ∩ C 1 (G ) astfel ca
− ∆u = f în G, (36)
u = 0 pe C1, (37)
∂u
= g pe C2, (38)
∂n
f fiind o funcţie reală definită şi continuă pe G, iar g o funcţie reală definită şi
continuă pe C2.
De remarcat că este vorba de ecuaţia lui Poisson, cu membrul secund −f
(semnul ˝−˝ se introduce din motive tehnice). Condiţia Dirichlet pe C1 este
omogenă, ceea ce nu este restrictiv. Într-adevăr, dacă u satisface −∆ u=f în
∂u
G, u = h pe C1 şi = g pe C2 şi dacă ştim să găsim o funcţie u0 suficient
∂n
de regulată, care ia valorile h pe C1, atunci funcţia u~ = u − u 0 verifică (36),
260 Bazele Analizei Numerice

∂u 0
(37), (38) cu f înlocuit cu f+∆u0 şi g înlocuit cu g − . A trece de la h pe
∂n
C1 la u0 pe G înseamnă că se face o prelungire, u0 fiind o prelungire a lui h
(există o infinitate).
Datorită prelungirii h→ u 0 şi apoi a translaţiei u → u~ = u − u 0 ,
rezultă că ipoteza condiţiei Dirichlet omogene pe C1 nu este o restricţie.
În continuare, vom multiplica ecuaţia cu derivate parţiale cu o funcţie test,
apoi vom integra pe G, utilizând formula lui Green şi ţinând seama de condiţiile
la limită (37), (38).
Fie acum spaţiile vectoriale reale W şi V, definite astfel:
{
W = v : G → R ; v ∈ C 2 (G ) ∩ C1 (G ) , v = 0 pe C1 , }
{
V = v : G → R ; v ∈ C (G ) ∩ C (G ) , v = 0 pe C 1 , grad v marginit pe G } .
1 0

Problema clasică (36)-(38) se poate formula astfel:


găsiţi u∈W care verifică (36) şi (38).
De remarcat că integrând prin părţi, dacă u∈W şi v∈V, are loc prima
formulă Green:
∂u
− ∫∫ ∆u ⋅ vdxdy = ∫∫ grad(u ) ⋅ grad(v)dxdy − ∫ vds . (39)
G G C ∂ n
2
Din această identitate, ţinând seama de (36) şi (38), rezultă că
a (u , v) = ∫∫ f ⋅ v dxdy + ∫ g ⋅ v ds , (∀) v ∈ V , (40)
G C2
unde
a(u , v) = ∫∫ grad u ⋅ grad v dxdy .
G
Aşadar, a(⋅,⋅) este o formă biliniară şi simetrică.
Mulţi autori prezintă ca problemă variaţională asociată problemei
(36)-(38) următoarea problemă:
găsiţi u∈V astfel încât să aibă loc (40).
Problema clasică nu are sens decât pentru funcţii având regularitatea lui
W. Pentru problema variaţională, este suficientă regularitatea lui V. Aşadar
trecând de la problema clasică la problema variaţională, condiţiile de regularitate
au fost slăbite. Se poate arăta că orice soluţie u a problemei variaţionale care
este în W, este soluţie a problemei clasice.
Totodată u∈V este soluţie a problemei variaţionale dacă şi numai dacă
minimizează pe V funcţionala
1 ⎡ ⎤
F (v) = a (v, v) − ⎢ ∫∫ fv dxdy + ∫ gvds ⎥
2 ⎢⎣G C2 ⎥⎦
(comparaţi cu (33) ). Formularea variaţională permite introducerea, explicarea şi
justificarea metodelor numerice. Pentru a discretiza problema clasică în elemente
finite, este nevoie să punem în prealabil problema sub forma variaţională. Nu este
Introducere în metoda elementului finit 261

deloc necesară funcţionala F. Ea este introdusă din simplul motiv că în


numeroase probleme similare, dar de interes fizic sau mecanic, funcţionala F(v)
are o interpretare mecanică interesantă, legea fizică corespunzătoare scriindu-se
adesea sub forma unei probleme de minim.
În concluzie sistemul (35) se scrie, după integrarea prin părţi, astfel:
a(u , ϕ i ) = ∫∫ f ⋅ ϕ i dxdy + ∫ g ⋅ ϕ i ds , i = 1, n . (41)
G C2

§8.6. Aproximarea funcţiilor

În mod obişnuit, elementele finite se definesc în cadrul procesului de


discretizare ca rezultat al descompunerii unui domeniu de studiu în mai multe
subdomenii cu interior disjunct. Conexiunea acestor domenii se face prin
intermediul nodurilor , care nu sunt altceva decât puncte selectate în domeniul
considerat în care se specifică valorile funcţiei studiate sau ale funcţiei şi ale
derivatelor sale până la un anumit ordin. Într-un sens mai larg, elementul finit
apare ca un model de aproximare cu proprietăţi fizice, geometrice şi funcţionale.
Geometric, elementul finit reproduce într-o formă idealizată părţi dintr-un corp
supus analizei.
În problemele în care funcţia este dată implicit de o ecuaţie (diferenţială,
integrală, etc.) valorile funcţiei sunt parametrii necunoscuţi ai problemei. În
problemele de interpolare, valorile funcţiei sunt cunoscute de la început.
Aşadar, funcţiile de interpolare permit aproximarea funcţiilor având ca
puncte de reper valorile nodale ale funcţiei sau valorile nodale ale funcţiei şi ale
derivatelor sale până la un anumit ordin. Deoarece structura acestor funcţii de
interpolare depinde de structura nodală a elementului, respectiv de forma lui, ele
se mai numesc şi funcţii de formă. Aceste funcţii de formă vor juca rolul funcţiilor
coordonate ϕ i , i = 1, n , din metodele prezentate în secţiunile anterioare. Deşi se
pot concepe multe tipuri de funcţii de interpolare, se folosesc aproape în
exclusivitate funcţiile polinomiale, datorită uşurinţei relative cu care acestea pot fi
derivate, respectiv integrate.

8.6.1. Aproximarea prin polinoame pe porţiuni.


Cazul unidimensional
Aşadar, ne propunem să aproximăm o funcţie de o variabilă reală f, pe
un interval finit [a, b]. Vom considera o diviziune a acestui interval
∆: a = x0 < x1 <...< xn = b.
262 Bazele Analizei Numerice

Se obţin astfel n subintervale [ xi , xi +1 ] , i = 0, n − 1 . Mai întâi vom


aborda problema aproximării prin polinoame liniare pe porţiuni. Funcţia de
interpolare liniară pe porţiuni depinde de valorile funcţiei f în nodurile xi .
Aceste valori le notăm cu fi = f(xi ) , i = 0, n . Pe fiecare subinterval [xi, xi+1],
funcţia de interpolare este un polinom de forma ϕ i ( x ) = a i ⋅ x + bi , unde ai şi
bi se determină în mod unic din condiţiile ϕ i ( x j ) = δ ij , 0 ≤ i, j ≤ n (δij -
simbolul lui Kronecker).
Astfel din ϕ0(x0) = 1, ϕ0(xi) = 0, i = 1, n , obţinem
⎧ x1 − x
⎪ , x ∈ [ x0 , x1 ]
ϕ 0 ( x ) = ⎨ x1 − x0 (42)
⎪0 , x ∈ [ x1 , x n ].

Totodată, pentru i fixat, 1 ≤ i ≤ n − 1, din ϕ i ( xi ) = 1 , ϕ i ( x j ) = 0 , j ≠ i, rezultă
⎧ x − xi −1
⎪x − x , x ∈ [ xi −1 , xi ]
⎪ i i −1
⎪ xi +1 − x
ϕi ( x ) = ⎨ , x ∈ [ xi , xi +1 ] (43)
⎪ xi +1 − x i
⎪ 0 , în rest.
⎪⎩
În sfârşit din ϕn(xn) = 1, ϕn(xi) = 0, i = 1, n − 1 , avem
⎧ 0 , x ∈ [ x0 , x n −1 ]
⎪ x−x
ϕ n ( x) = ⎨ n −1 . (44)
, x ∈ [ x n−1 , x n ]
⎪⎩ x n − x n−1
Funcţiile ϕ i , i = 0, n , reprezintă cel mai simplu tip de funcţii de formă
şi se reprezintă astfel
y

xn x
O x0 x1 xi-1 xi x xn-1

Cu ajutorul acestor funcţii acoperiş, funcţia de interpolare este dată de formula


n
p1 ( x) = ∑ f i ϕ i ( x) . (45)
i =0
Introducere în metoda elementului finit 263

Se arată uşor că funcţiile ϕ i , i = 0, n sunt liniar independente, adică din


α 0ϕ 0 + α 1ϕ1 + ... + α nϕ n = 0 , rezultă α 0 = α 1 = ... = α n = 0 (este suficient să
scriem relaţia dată în nodurile xi , i = 0, n ). Vom nota cu L(∆), spaţiul vectorial
real de dimensiune n+1, generat de funcţiile ϕ i , i = 0, n , deci al funcţiilor
continue de forma
n
g ( x) = ∑ ciϕ i ( x) , ci ∈ R , i = 0, n . (46)
i =0
Să remarcăm, în particular că funcţiile de formă ϕ i ( x) , i = 1, n − 1, sunt
nule în afara intervalului [xi-1, xi+1], deci au suport compact. Funcţia p1 este
locală în sensul că dacă x∈[xi, xi+1] , i = 0, n − 1 , depinde numai de fi şi fi+1 .
Se poate arăta că dacă funcţia f pe care vrem s-o aproximăm este suficient
de netedă (de exemplu, admite derivată de ordinul al doilea), atunci interpolarea
prin polinoame liniare pe porţiuni, ne dă o aproximaţie de ordinul al doilea atât în
norma spaţiului L2[a, b], dată de (3), cât şi în norma Cebîşev. Aşadar avem
f − p1 2 ≤ k h 2 f ′′ 2 , (k > 0), (47)
respectiv
f − p1 ∞ = sup f ( x) − p1 ( x) ≤ k1h 2 f ′′ ∞ , (k1 > 0) . (48)
x∈[a ,b ]
În continuare menţionăm că pentru aproximarea soluţiilor problemelor
bilocale pentru ecuaţii diferenţiale se pot folosi funcţiile B-spline (§4.4).
Vom avea însă nevoie ca funcţiile generatoare să se anuleze în
extremităţile intervalului pe care căutăm soluţia ecuaţiei diferenţiale considerate.
De remarcat că funcţiile B2, ... , Bn-2 se anulează în x0, ..., xn , iar
funcţiile B-1, B0, B1, Bn-1, Bn, Bn+1 nu se anulează. De aceea vom proceda după
cum urmează. Vom determina constantele a, b, c, d şi α, β, γ, δ astfel ca
funcţiile:
~ ~
B0 ( x) = aB−1 ( x) + bB0 ( x) , B1 ( x) = cB0 ( x) + dB1 ( x) ,
~ ~
Bn −1 ( x) = α Bn−1 ( x) + β Bn ( x) , Bn ( x) = γ Bn ( x) + δ Bn +1 ( x),
să satisfacă condiţiile:
~ ~ ~ ~
B0 ( x 0 ) = 0 ; B0 ( x1 ) = 1 ; B1 ( x 0 ) = 0 ; B1 ( x −1 ) = 1 ;
~ ~ ~ ~
Bn −1 ( x n +1 ) = 1 ; Bn−1 ( x n ) = 0 ; Bn ( x n −1 ) = 1 ; Bn ( x n ) = 0 .
De aici rezultă
~ ~
B0 ( x) = B0 ( x) − 4 B−1 ( x) ; B1 ( x) = B0 ( x) − 4 B1 ( x) ;
~ ~
Bn −1 ( x) = Bn ( x) − 4 Bn −1 ( x) ; Bn ( x) = Bn ( x) − 4 Bn+1 ( x) .
~
Deci funcţiile generatoare B - spline le vom considera
~ ~ ~ ~ ~ ~
B0 , B1 , B2 , ..., Bn −1 , Bn , unde Bi ( x) = Bi ( x) , i = 2, n − 2 .
264 Bazele Analizei Numerice

8.6.2. Aproximarea prin polinoame pe porţiuni.


Cazul bidimensional

Vom aborda problema aproximării unei funcţii reale definită pe un


domeniu mărginit G⊂ R2, de frontieră C. Ne vom ocupa întâi de interpolarea
prin elemente finite triunghiulare.
Să presupunem, pentru simplitate, că frontiera C a domeniului G este o
linie frântă. Atunci, este totdeauna posibil să acoperim foarte exact G cu o
mulţime de triunghiuri Tk , k = 1, p , numite elemente finite şi care constituie
(abstracţie făcând de frontiera lor) o partiţie a lui G.
Se realizează astfel o triangularizare a domeniului. Să notăm cu
Ai , i = 1, s , vârfurile triunghiurilor. Unele vor fi în interiorul lui G, altele pe
C. Aceste vârfuri se mai numesc noduri de discretizare.
Triunghiurile se aleg astfel ca:
- un vârf al unui triunghi Tk nu trebuie să fie niciodată interior unei laturi a altui
triunghi, dar poate fi comun mai multor triunghiuri;
- nici un triunghi să nu fie plat; este de dorit să se evite unghiurile foarte
apropiate de 00 sau 1800 (vom vedea de ce).
De remarcat că, o triangularizare de tip elemente finite este mult mai suplă
decât o reţea de tip diferenţe finite şi permite urmărirea mai fină a frontierei
domeniului. Totodată, contrar diferenţelor finite, căutăm o aproximare a soluţiei
u, nu numai în nodurile Ai, ci peste tot în G.
Vom căuta soluţia problemei de interpolare ca o funcţie polinomială pe
porţiuni, înţelegând prin porţiuni triunghiurile. Mai precis, în fiecare triunghi
Tk = A p Aq Ar , vom căuta o aproximaţie de primul grad în x şi y, deci o funcţie
u(x, y) = Ax + By + C. Constantele A, B, C se pot determina în funcţie de
valorile lui u în cele trei vârfuri A p ( x p , y p ) , Aq ( x q , y q ) , Ar ( x r , y r ) , notate
u p , u q , u r , respectiv.
Aşadar A, B, C reprezintă soluţia sistemului liniar
⎧ Ax p + By p + C = u p

⎨ Ax q + By q + C = u q (49)

⎩ Ax r + By r + C = u r ,
de determinant
xp yp 1
xq − x p y q − y p
∆ = xq yq 1 = = ±2S , (50)
xr − x p y r − y p
xr y r 1
Introducere în metoda elementului finit 265

S fiind aria triunghiului A p Aq Ar . Deci, dacă nici un triunghi nu este aplatizat,


determinantul ∆ este nenul. Aşadar o funcţie u ca mai sus, este definită în mod
unic, pe fiecare triunghi, prin valorile sale în cele trei vârfuri.
Să considerăm acum urma funcţiei u(x,y) pe una din laturile triunghiului
A p Aq Ar , să zicem ApAq. Este o funcţie de gradul întâi de abscisă (oblică) ξ
de-a lungul lui ApAq (se scrie sub forma Dξ + E ); această funcţie este deci unic
determinată de valorile sale în cele două vârfuri.
Presupunând că funcţia de interpolare, definită pe întreg G, ia aceeaşi
valoare în fiecare nod, comun mai multor triunghiuri, rezultă că este continuă de la
un triunghi la triunghiul vecin, de-a lungul laturii comune. Deci, în condiţiile
impuse, funcţia de interpolare este continuă (aceasta justifică cerinţa ca un vârf al
unui triunghi să nu fie interior unei laturi a altui triunghi).
Aşadar fiind dată o funcţie u continuă pe G, vom numi funcţie de
interpolare pe porţiuni a lui u, funcţia continuă pe G , luând aceleaşi valori ca
şi u în toate nodurile (vârfurile) de triangularizare şi polinomială de gradul unu în
fiecare triunghi.
Vom începe cu construirea unei baze canonice într-un triunghi. Pentru
comoditate, să notăm triunghiul A p Aq Ar cu A1A2A3 şi să-l studiem deocamdată
independent de alte triunghiuri.
Considerăm funcţiile λ1 ( x, y ) , λ 2 ( x, y ) , λ3 ( x, y ) afine, care satisfac
λi ( A j ) = δ ij (simbolul lui Kronecker), i, j = 1, 2, 3 . Conform celor de mai sus
fiecare funcţie există şi este unică şi
1
λ1 ( x, y ) = [( y 2 − y 3 )x + (x3 − x 2 ) y + x 2 y 3 − x3 y 2 ] ,

1
λ 2 ( x, y ) = [( y 3 − y1 )x + ( x1 − x3 ) y − x1 y 3 + x3 y1 ] ,
∆ (51)
1
λ3 ( x, y ) = [( y1 − y 2 )x + ( x 2 − x1 ) y + x1 y 2 − x 2 y1 ] ,

∆ = (x 2 − x1 )( y 3 − y1 ) − ( x3 − x1 )( y 2 − y1 ) .
Aceste funcţii sunt liniar independente, deoarece
α 1λ1 ( x, y ) + α 2 λ 2 ( x, y ) + α 3 λ3 ( x, y ) = 0 ⇒ α 1 = α 2 = α 3 = 0,
după cum se vede uşor, scriind relaţia în punctele A1, A2, A3 .
În consecinţă funcţiile λ1 ( x, y ) , λ 2 ( x, y ) , λ3 ( x, y ) formează o bază,
numită baza canonică, în spaţiul vectorial al polinoamelor de gradul întâi, relativ
la triunghiul A1A2A3.
În plus, dacă se caută funcţia polinomială de gradul întâi, care ia în
A1 , A2 , A3 valorile impuse u1, u2, u3, răspunsul este simplu
u ( x, y ) = u1λ1 ( x, y ) + u 2 λ 2 ( x, y ) + u 3 λ3 ( x, y ), (52)
ceea ce justifică adjectivul canonic.
266 Bazele Analizei Numerice

Fie acum P spaţiul vectorial real al funcţiilor continue şi afine pe


porţiuni, pe G . Este clar că dimensiunea lui P coincide cu numărul vârfurilor,
dim P = s ( P depinde evident de triangularizarea domeniului aleasă). Baza
canonică a lui P este dată de funcţiile ψ i ( x, y ) , i = 1, s, unde
ψ i ( A j ) = δ ij , i, j = 1, s .
Atunci pentru orice u∈P are loc
s
u ( x, y ) = ∑ u iψ i ( x, y ) , u i = u ( Ai ) , i = 1, s .
i =1
Pentru aceasta este necesară definirea unei corespondenţe biunivoce între
numărul global al nodului şi numărul triunghiului din care acesta face parte şi
numărul local al nodului în triunghi. Ce putem spune despre o funcţie ψ i ( x, y ) ?
Suportul lui ψ i este format numai din triunghiurile care îl au pe Ai ca vârf ; el
este deci mic, cu atât mai mic cu cât triangularizarea este mai fină, aceasta fiind
una dintre caracteristicile metodei elementului finit. Dacă punctul Ai este interior
lui G, ψi este nulă pe C, dar dacă Ai∈C, ψ i este nenulă în
segmentele de frontieră care ajung în Ai. Dacă se reprezintă pe axa Oz valorile
lui ψ i se obţine graficul lui ψ i . Este o suprafaţă poliedrală (adică formată
din feţe plane). Această suprafaţă este o piramidă a cărei înălţime este verticala din
Ai, adică 1 şi a cărei bază se întinde până la punctele imediat vecine A j , Ak ,...,
piramidă prelungită de planul orizontal.

Ai interior lui G Ai pe frontiera lui C a lui G

1
Ap
Ai
Ap Al
Ai Ak
Aj Ak
Graficul lui ψ i

În continuare, ne vom ocupa de interpolarea prin elemente finite


dreptunghiulare. Domeniile de tip dreptunghiular, adică domeniile cu laturile
paralele cu axele de coordonate apar în multe probleme ale fizicii şi tehnicii. Prin
urmare elementul dreptunghiular are mare importanţă.
Ne propunem să aproximăm o funcţie u definită pe domeniul
dreptunghiular G = [a,b] × [c, d]. Fie ∆ x : a = x0<x1< ... <xn = b o diviziune a
Introducere în metoda elementului finit 267

lui [a, b] cu n+1 puncte, ∆ y : c=y0< y1< ... < ym o diviziune a lui [c, d] cu
m+1 puncte şi ∆= ∆ x × ∆ y diviziunea lui G.
Elementul finit dreptunghiular tipic este [xi, xi+1]×[yj, yj+1]. Putem
considera polinoamele liniare pe porţiuni din cazul unidimensional, ϕi , date de
(42)-(44). Atunci funcţia de interpolare este dată de
n m
p( x, y ) = ∑ ∑ u i , j ϕ i ( x)ϕ j ( y ) , (53)
i =0 j =0
unde
u i, j = u ( xi , y j ) , i = 0, n , j = 0, m .
Pe elementul dreptunghiular [xi, xi+1]×[yj, yj+1] , funcţia de interpolare are forma
p i , j ( x, y ) = u i , j ϕ i ( x)ϕ j ( y ) + u i +1, j ϕ i +1 ( x)ϕ j ( y ) +
(54)
+ u i , j +1ϕ i ( x)ϕ j +1 ( y ) + u i +1, j +1ϕ i +1 ( x)ϕ j +1 ( y ) .
Baza canonică în spaţiul funcţiilor de forma
n m
p( x, y ) = ∑ ∑ ci, j ϕ i ( x)ϕ j ( y ) , ci, j ∈ R , i = 0, n , j = 0, m ,
i =0 j =0
este dată de funcţiile
ψ ij ( x, y ) = ϕ i ( x)ϕ j ( y ) , i = 0, n , j = 0, m . (55)

§8.7. Metoda elementului finit pentru probleme bilocale

Se consideră următoarea ecuaţie diferenţială foarte simplă


− u ′′( x) = f ( x) , 0 < x < 1 , u (0) = u (1) = 0 , f ∈ L2 (0,1) (56)
(Exemplul 3).
Problema rezolvării acestei ecuaţii este echivalentă cu cea a minimizării
funcţionalei
1 1
F (u ) = ∫ u ′ 2 ( x) dx − 2 ∫ f ( x) u ( x) dx
0 0
pe mulţimea
W = { u ∈ C 2 ([ 0 , 1 ]) ∩ C 1 ([ 0 , 1 ]) ; u ( 0 ) = u (1) = 0} .
Pentru orice u, v∈W, are loc
1
u , v A = ∫ u ′(x ) v ′( x) dx .
0
268 Bazele Analizei Numerice

Vrem să aproximăm soluţia problemei bilocale (56) folosind polinoamele


liniare pe porţiuni (§8.6.1). Aceste funcţii sunt continue, dar nu sunt derivabile,
deci nu aparţin lui W . În consecinţă, W nu este „spaţiul bun” pentru rezolvarea
aproximativă a acestei probleme, folosind polinoamele liniare pe porţiuni. Pentru a
stabili spaţiul convenabil vom proceda după cum urmează. Introducem o noţiune
nouă. Funcţia g se numeşte derivata în sensul distribuţiilor a funcţiei w şi se
notează g = w ′ dacă şi numai dacă satisface
1 1
1
∫ wϕ ′ dx = − ∫ g ϕ dx , (∀)ϕ ∈ C , ϕ (0) = ϕ (1) = 0 . (57)
0 0
Dacă funcţia w are derivată continuă w′ , atunci aceasta coincide cu
derivata în sensul distribuţiilor a lui w. Bineînţeles că, derivata în sensul
distribuţiilor poate exista fără ca derivata în sens clasic să existe.
De exemplu, o funcţie w continuă, care are derivată mărginită cu
excepţia unui număr finit de puncte, are derivată în sensul distribuţiilor. În punctele
în care derivata în sens clasic există, cele două derivate coincid.
Astfel pe intervalul [-1, 1] , funcţia w(x) = ⎢x ⎢ nu este derivabilă în x
= 0 , dar admite derivată în sensul distribuţiilor funcţia g(x) = sign(x) .
Fie
H 01 ( (0, 1) ) = { u ∈ L2 (( 0, 1 )) ; u ′( x) ∈ L2 (( 0, 1 )) ; u (0) = u (1) = 0 }
(este vorba de derivata în sensul distribuţiilor).
Spaţiul W este dens în H 01 (( 0, 1 )) . De fapt, H 01 (( 0, 1 )) este chiar
spaţiul energetic al operatorului Ax (t ) = − x ′′(t ) .
Aşadar, pentru construirea aproximantelor Ritz, vom folosi polinoamele
liniare pe porţiuni, construite în §8.6.1 .
Fie π : 0 = x 0 < x1 < x 2 <...< x n < x n +1 = 1, o diviziune cu noduri
1
echidistante a intervalului [0, 1], xi = ih, h = şi ϕ i , i = 1, n , funcţiile
n +1
⎧ x − xi −1
⎪ h , xi −1 ≤ x ≤ xi
⎪x − x

ϕ i ( x) = ⎨ i +1 , xi ≤ x ≤ xi +1 , i = 1, n. (58)
⎪ h
⎪0 , în rest
⎪⎩
Funcţiile ϕ i ∈ H 01 ((0,1)) , i = 1, n . Căutăm soluţia sub forma
n
u~ = ∑ c j ϕ j , constantele cj determinându-se din sistemul (25), unde
j =1
1 1
ϕi ,ϕ j = ∫ ϕ i′ ( x)ϕ ′j ( x)dx, iar f , ϕ i A = ∫ f ( x)ϕ i ( x)dx
A
0 0
Introducere în metoda elementului finit 269

(derivatele sunt în sensul distribuţiilor).


Este un sistem de n ecuaţii, numite nodale, de forma Bx = d, unde
elementele matricei B sunt
1
bij = ∫ ϕ i′ ( x)ϕ ′j ( x)dx , i, j = 1, n, x = (c1 , c 2 ,..., c n ) T , d = ( d1 , d 2 ,..., d n ) T ,
0
1
d i = ∫ f ( x)ϕ i ( x)dx , i = 1, n .
0
Matricea B se numeşte matrice de rigiditate şi este simetrică şi pozitiv
definită.
În consecinţă, sistemul Bx = d admite soluţie unică. Prin calcul obţinem
⎧2
⎪h , daca i = j
⎪⎪ 1
bij = ⎨− , daca i-j = 1
⎪ h
⎪0 , în rest .
⎪⎩
De asemenea
1 xi 1 xi +1
di = ∫ f ( x )( x − x i −1 ) dx + ∫ f ( x)( xi +1 − x)dx .
hx h x
i −1 i
~
Aproximând aceste integrale cu formula trapezului, obţinem d i = h f ( xi ) ,
~
deci în locul sistemului Bx = d, avem de rezolvat sistemul Bx = d , cu membrul
drept obţinut prin aplicarea unei formule de integrare numerică.
Matricea de rigiditate B s-a calculat exact, având polinoame pe porţiuni şi
integrarea făcându-se uşor. În alte cazuri matricea B se obţine tot prin calculul
aproximativ al unor integrale.
Se pune problema alegerii acestor formule, în sensul că trebuie arătat că
formulele de cuadratură aplicate ne dau o convergenţă bună , deci o
compatibilitate în rezolvarea problemelor puse de metodele variaţionale.
Practic, în cele mai multe cazuri, alegând ca funcţii de bază polinoamele pe
porţiuni, matricea B se calculează exact, integrarea făcându-se exact. Cum însă
funcţia f nu este, de obicei, un polinom, problema este de a calcula aproximativ
di.
În cazul de mai sus, avem
270 Bazele Analizei Numerice

⎛ 2 − 1 0 ... 0 0⎞
⎜ ⎟ ⎛ f ( x1 ) ⎞
⎜ ⎟ ⎜ ⎟
⎜ − 1 2 − 1 ... 0 0 ⎟ ⎜ f ( x2 ) ⎟
1 ⎜ ⎟
B= ⎜ ... ... ... ... ... ⎟ , d = ⎜ ... ⎟
2 ⎜ ... ⎟
h
⎜0 ⎜ f ( x n −1 ) ⎟
0 0 ... 2 − 1⎟ ⎜ ⎟
⎜ ⎟
⎜ ⎟ ⎝ f (x n ) ⎠
⎝0 0 0 ... − 1 2 ⎠
Aplicând ecuaţiei − u ′′(x ) = f ( x ) , metoda standard cu diferenţe finite, se
obţine exact acelaşi sistem de ecuaţii.
În cazul metodei elementului finit, soluţia aproximativă găsită,
aproximează soluţia exactă în orice punct al intervalului [0, 1].

Să considerăm acum problema mai generală


− x ′′(t ) + σ (t ) x(t ) = f (t ) , 0 ≤ t ≤ 1 ,
x(0) = x(1) = 0 , (59)
σ (t ) > 0 şi continuă pe [0,1] .
Problema este abordată variaţional în Exemplul 4. Considerăm deci
operatorul
Ax (t ) = − x ′′(t ) + σ (t ) x (t ) .
Dacă funcţia f este continuă pe [0,1] , atunci există soluţie unică a
problemei (59) şi x ∈ C 2 ( [0,1] ) . Pentru determinarea aproximaţiei element finit
~
x (t ) a soluţiei x(t) vom folosi, pentru început, polinoamele spline cubice.
Fie π : 0 = t 0 < t1 <...< t n = 1 , o diviziune cu noduri echidistante şi
~ ~ ~ ~
funcţiile B0 , B1 , ..., Bn , din §8.6.2. În acest caz ϕ i (t ) = Bi (t ) , i = 0, n . Aceste
funcţii aparţin domeniului de definiţie al operatorului A.
Aproximaţia element finit ~
x (t ) a soluţiei exacte x(t), va fi
n ~
~
x (t ) = ∑ ci Bi (t ), unde c = (c 0 , c1 , ..., c n ) T este soluţia sistemului algebric liniar
i =0
n ~ ~ ~
∑ ABi , B j ⋅c j = f , Bi , i = 0, n .
j =0
În acest caz, elementele matricei de rigiditate sunt

[ ]
~ ~ 1 ~ ~ ~ ~
bi, j = ABi , B j = ∫ Bi′ (t ) B ′j (t ) + σ (t ) Bi (t ) B j (t ) dt , i, j = 0, n ,
0
iar
1 ~
d i = ∫ f (t ) Bi (t )dt , i = 0, n .
0
Introducere în metoda elementului finit 271

Matricea de rigiditate sau matricea energie va fi o matrice bandă de tip 7.


Matricea energie şi termenul liber se pot calcula folosind, de exemplu, metoda lui
Gauss cu două noduri.
În ceea ce priveşte eroarea, se poate demonstra

Teorema 4. În ipotezele de mai sus şi dacă f ∈ C 2 [0,1] , atunci există o constantă


K, independentă de n, astfel încât
x−~ x ∞ = sup x(t ) − ~
x (t ) ≤ Kh 3
x∈[0,1]
(unde h este pasul reţelei) .

Să analizăm acum situaţia în care funcţiile de formă nu aparţin domeniului


operatorului A, cum este cazul când acestea sunt polinoamele liniare pe porţiuni
date de (58). Vom proceda ca în exemplul de la începutul secţiunii. Deci
n
~
x (t ) = ∑ ci ϕ i (t ), cu ϕi date de (58). Acum
i=1
1
( )
b ij = ∫ ϕ i′ϕ ′j + σϕ iϕ j dt , i, j = 1, n
0
(derivatele sunt luate în sensul distribuţiilor).
Matricea de rigiditate va fi o matrice bandă de tip 3.
Se poate demonstra

Teorema 5. În ipotezele de mai sus şi dacă f ∈ C[0, 1] , există o constantă K


independentă de n, astfel ca
x−~ x ∞ ≤ Kh .
Se observă că dacă în aproximare folosim funcţii de bază mai netede,
obţinem o aproximare mai bună. Se ajunge însă la un sistem liniar algebric cu mai
multe elemente nenule. În cazul polinoamelor cubice spline se obţine o matrice
bandă de tip 7, în timp ce în cazul polinoamelor pe porţiuni de grad întâi, se obţine
o matrice bandă de tip 3.

§8.8. Metoda elementului finit pentru probleme la limită


pentru ecuaţia lui Laplace în plan

⎛ π π⎞ ⎛ π π⎞
Fie G = ⎜− , ⎟ × ⎜− , ⎟ ⊂ R 2 şi C frontiera sa. Se cere să se
⎝ 2 2⎠ ⎝ 2 2⎠
găsească soluţia ecuaţiei
272 Bazele Analizei Numerice

∂ 2u ∂ 2u
+ = 2, (60)
∂ x2 ∂ y2
cu condiţiile la limită
⎛ π⎞ π
u⎜ x , ± ⎟ = 0 , x ≤
⎝ 2⎠ 2
(61)
⎛ π ⎞ π
u⎜ ± , y ⎟ = 0 , y ≤ .
⎝ 2 ⎠ 2
Problema este abordată variaţional în Exemplul 5, rezolvarea sa fiind
echivalentă cu cea a minimizării funcţionalei
∂u ∂u
F (u ) = ∫∫ [( ) 2 + ( ) 2 ] dx dy + 2 ∫∫ u ( x, y ) dx dy
G ∂x ∂y G
pe mulţimea
W = { u ∈ C 2 (G ) ∩ C1 (G ) ; u = 0 pe C} .
Pentru orice u,v∈W, are loc
(u, v )−∆ = ∫∫ ( ∂u ⋅ ∂v + ∂u ⋅ ∂v ) dx dy .
G ∂x ∂x ∂y ∂y
Pentru găsirea soluţiei aproximative a problemei (60)-(61), vom folosi
elementele finite dreptunghiulare construite în secţiunea 6.2, care nu aparţin lui W.
În consecinţă W nu este „spaţiul bun” pentru rezolvarea acestei probleme cu
elemente finite dreptunghiulare.
Pentru a depăşi această dificultate, să constatăm, mai întâi, că noţiunea de
derivată în sensul distribuţiilor, introdusă în secţiunea anterioară pentru funcţii de o
variabilă, se extinde, în mod corespunzător la funcţii de mai multe variabile.
∂u
De exemplu, funcţia g(x,y) este , în sensul distribuţiilor, dacă
∂x
satisface
∂ϕ
∫∫ g ⋅ ϕ dx dy = − ∫∫ u dx dy , (∀ ) ϕ ∈ C 1 , ϕ = 0 pe C .
G G ∂ x
Fie
∂u ∂u
H 01 (G ) = {u ∈ L2 (G ) ; u , , ∈ L2 (G ) , u = 0 pe C}
∂x ∂ y
(derivatele parţiale sunt luate în sensul distribuţiilor) .
Spaţiul W este dens în H 01 (G ) , H10 (G ) fiind spaţiul energetic al
operatorului -∆. Spaţiul H 01 (G ) este spaţiu Hilbert în raport cu produsul scalar
∂u ∂v ∂ u ∂v
u , v = ∫∫ (uv + ⋅ + ⋅ ) dx dy .
G ∂ x ∂x ∂y ∂ y
Introducere în metoda elementului finit 273

Pentru găsirea soluţiei aproximative, partiţionăm domeniul G în (n+1)2


pătrate, folosind 2n paralele (echidistante) cu axele de coordonate.
Funcţiile de bază utilizate sunt ψ ij , i, j = 1, n , date de (55) şi satisfac
condiţiile la limită (61). Căutăm soluţia aproximativă de forma
n n
u~ ( x, y ) = ∑ ∑ cijψ ij ( x, y ), (62)
i =1 j =1
constantele cij , i, j = 1, n , urmând a fi determinate din următorul sistem obţinut
din (25)
n n ∂ψ kl ∂ψ ij ∂ψ kl ∂ψ ij
∑ ∑ c kl ⋅ ∫∫ [ + ] dx dy + 2∫∫ψ ij dx dy = 0 ,
k =1l =1 G ∂x ∂ x ∂y ∂ y G (63)
i, j = 1, n
sau încă
n n
∑ ∑ a ij kl c kl + 2 ∫∫ψ ij dxdy = 0 , i, j = 1, n
k =1 l =1 G
unde
∂ϕ k ∂ϕ ∂ϕ ∂ϕ j
aij kl = ∫∫ [ ( x) i ( x)ϕ l ( y )ϕ j ( y ) + l ( y ) ( x)ϕ k ( y )ϕ i ( y )] dx dy,
G ∂x ∂x ∂y ∂y
funcţiile ϕ i , i = 1, n , fiind date de (43).
Mai întâi să calculăm
xi +1 y i +1
2
∫∫ψ ij dxdy = ∫∫ ϕ i ( x)ϕ j ( y )dxdy = ∫ ϕ i ( x)dx ⋅ ∫ ϕ j ( x)dx = h .
G G xi −1 y i −1
Ţinând seama de suportul funcţiilor ψ ij ( x, y ) , sistemul (63) se mai
scrie sub forma
i +1 j +1
2
∑ ∑ aij kl c kl + 2h = 0 , i, j = 1, n .
k =1−1 l = j −1
Calcule elementare arată că:
π π π π
2 h 2 2h 2 1 2 2
2 2
∫ ϕ i −1 (t )ϕ i (t )dt = , ∫ ϕ i (t )dt = , ∫ ϕ i′−1 (t )ϕ i (t )dt = − , ∫ ϕ i′ (t )dt = .
π 6 π 3 π h π h
− − − −
2 2 2 2
1
În consecinţă aij kl = − , k = i − 1, i + 1 , l = j - 1, j + 1 , cu excepţia
3
8
elementului aij ij = , deci sistemul (64) devine
3
274 Bazele Analizei Numerice

1 i +1 j +1 2
3cij − ∑ ∑ c kl + 2h = 0 , i, j = 1, n . (65)
3 k =i −1 l = j −1
Soluţia exactă a problemei considerate este
8 ∞ (− 1)k +1 ch(2k − 1) y
2
⎛π ⎞
u ( x, y ) = −⎜ ⎟ + x 2 + ⋅ ∑ cos(2k − 1)x .
⎝2⎠ π k =1(2k − 1)3 ch((2k − 1)π / 2)
Valorile soluţiei aproximative în nodurile din figura :

⎛ π⎞ ⎛π π ⎞
⎜ 0, ⎟ ⎜ , ⎟
⎝ 2⎠ 10 9 7 ⎝2 2⎠
4
8 6
3
5
2
(0,0)
1
sunt date în următorul tabel :
Nodul n=3 n=7 N = 15 Soluţia exactă
1 - 1,534 - 1,473 - 1,459 - 1,454
2 - 1,321 - 1,308 - 1,304
3 - 0,950 - 0,907 - 0,897 - 0,894
4 - 0,370 - 0,362 - 0,359
5 - 1,394 - 1,381 - 1,376
6 -1,089 - 1,078 - 1,075
7 - 0,566 - 0,559 - 0,556
8 - 1,278 - 1,146 - 1,135 - 1,132
9 - 0,666 - 0,660 - 0,658
10 - 0,698 - 0,692 - 0,690

În continuare, reluăm problema Dirichlet-Neumann din Exemplul 7, pe


care o vom concretiza. Considerăm pătratul G = (0,1) × (0,1) ⊂ R 2 , din figură, cu
frontiera C1 ∪ C 2 , unde C1 = OC ∪ CB ∪ BA şi C2=OA.

Problema (36)-(38) se scrie

- ∆u=f în G, (66)
u = 0 pe OC, CB şi BA, (67)
Introducere în metoda elementului finit 275

∂u ∂u
=− = g pe OA (68)
∂x ∂y
Vom considera o reţea de tip y
1 C1
diferenţe finite, cu pasul h = k = pe C B
n
OC , respectiv OA. Decupăm apoi
fiecare pătrat astfel obţinut în două
triunghiuri şi obţinem o triangularizare de
tip elemente finite. Fie u~ ( x, y ) soluţia C1 C1
aproximativă definită pe G şi nu numai
în puncte izolate, cum se întâmplă în
cazul diferenţelor finite. Vom utiliza x
pentru triangularizarea de mai sus, spaţiul O C2 A
P al funcţiilor continue pe G şi afine pe
porţiuni construite în secţiunea 6.2. Aceste funcţii nu aparţin însă spaţiului
V = C1 (G ) ∩ C 0 (G ) din exemplul 7. În consecinţă, V nu este „spaţiul bun”,
alegerea bună fiind spaţiul
∂u ∂u
H 1 (G ) = {u ∈ L2 (G ) ; u , , ∈ L2 (G )}
∂x ∂y
(derivatele sunt considerate în sensul distribuţiilor), pentru care P este subspaţiu.
Căutăm soluţia u~ de forma
s
u~ ( x, y ) = ∑ ciψ i ( x, y ), (69)
i =1
s fiind numărul vârfurilor, funcţiile ψ i , i = 1, s sunt funcţiile de bază
corespunzătoare triangularizării, iar coeficienţii ci , i = 1, s , urmează a fi
determinaţi. Pentru simplitatea expunerii, vom presupune că vârfurile de pe C1
ocupă ultimele poziţii, n+1, n+2, ..., s. Aşadar vom avea ci = 0 , i = n + 1, s ,
necunoscutele propriu-zise fiind ci , i = 1, n . În definitiv
n
u~ ( x, y ) = ∑ ciψ i ( x, y ), (70)
i =1
necunoscutele ci trebuind determinate din condiţia ca u~ să satisfacă sistemul
(41), adică
n
∑ a(ψ j ,ψ i )c j = ∫∫ fψ i dxdy + ∫ gψ i dx , i = 1, n , (71)
j =1 G C2
unde
a ψ j ,ψ i = ∫∫ gradψ i ⋅ gradψ j dxdy .
G
276 Bazele Analizei Numerice

Notând
aij = a(ψ i ,ψ j ) , i, j = 1, n , bi = ∫∫ fψ i dxdy + ∫ gψ i dx , i = 1, n , (72)
G C2
sistemul (71) se scrie
n
∑ aij c j = bi , i = 1, n . (73)
j =1
Aşadar se pune problema rezolvării unui sistem de n ecuaţii liniare,
numite nodale. Dacă x este vectorul coloană al necunoscutelor cj şi b B B

vectorul coloană termen liber din (73), atunci sistemul (73) se scrie sub forma
Ax = b, (74)
unde matricea A = (aij ) , i, j=1,n , se numeşte „matrice de rigiditate” şi este
evident simetrică. Mai mult, matricea A este şi pozitiv definită.
Într-adevăr
n n ⎛ n n ⎞
x T Ax = ∑ ∑ a(ψ j ,ψ i )ci c j = a⎜ ∑ c jψ j , ∑ ciψ i ⎟ = ∫∫ (grad u~ )2 dx dy ≥ 0 .
i =1 j =1
⎜ j =1 i =1

⎝ ⎠ G
P
T
P
~
Totodată x Ax=0, implică grad u = 0 în mulţimea conexă G, deci u~
este constantă pe G. Dar u~ se anulează pe C1, deci u~ =0 în G şi în consecinţă
B B

x=0, adică A este pozitiv definită. Prin urmare matricea A este nesingulară, deci
sistemul (73) admite soluţie unică.
Matricea A nu este numai simetrică ci şi rară (are multe zerouri). Într-
adevăr supp ψ i este constituit din mulţimea triunghiurilor care îl au pe Ai ca B B

vârf. Deci elementul aij are şanse să fie nenul, dacă şi numai dacă Ai şi Aj
B B B B B B

sunt vârfuri ale cel puţin unui acelaşi triunghi.


Elementul aij este integrala pe supp ψ i ∩ supp ψ j , adică pe o reuniune
de triunghiuri. Integrala fiind „funcţie aditivă de mulţime”, se va calcula pe fiecare
triunghi şi adunând rezultatele obţinute.
Spre exemplu, în figura alăturată aij este integrala din gradψ i ⋅ gradψ j
pe cele două triunghiuri marcate, integrandul (constant) având o expresie diferită
pe fiecare din cele două triunghiuri în chestiune.
În practică se procedează astfel: se
iniţializează coeficienţii aij cu zero. Se
trece în revistă fiecare triunghi, adunând Aj
B

valorile care reprezintă contribuţia


acestui triunghi la coeficienţii aij
AiB

corespunzători (până în acest moment


aceştia reprezintă contribuţiile aduse de
triunghiurile precedente). Vectorul
coloană b se poate calcula în acelaşi
timp cu matricea A.
Introducere în metoda elementului finit 277

De remarcat că aii > 0 , ( ∀) i = 1, n . Matricea A nu este totdeauna


diagonal dominantă. A fiind simetrică şi pozitiv definită pentru rezolvarea
sistemului (74) se poate aplica o factorizare de tip Cholesky.
Bineînţeles că se pot aplica şi metode iterative.
Pentru calculul termenului liber în (73), vom utiliza o formulă de
cuadratură numerică şi anume:
h( A p ) + h( Aq ) + h( Ar )
∫∫ h( x, y ) dx dy ≅ S (T ) , (75)
T 3
dacă T este triunghiul Ap, Aq, Ar, respectiv B B B B B B

b v(a) + v(b)
∫ v( x) dx ≅ (b − a) . (76)
a 2
Formula (76) nu este altceva decât formula trapezului; are o precizie de
ordinul 2: dacă f este regulată (local de clasă C2 ) şi b-a = h→ 0 , atunci P P

integrala pe (a,b), care este de ordin h, este aproximată de ordinul O(h3). În P P

ceea ce priveşte (75), este formula echivalentă formulei (76) în dimensiune 2; are o
precizie de ordinul 2.
Având în vedere simplitatea
şi repetitivitatea reţelei, este 3
2
suficient să scriem (71) într-un nod
interior lui G şi într-un nod pe OA
4
(extremităţile se exclud dacă u~ = 0
în O şi A). Să analizăm mai întâi 1
cazul unui nod interior lui G , ca în 0
figura alăturată. Vom utiliza o
numerotare locală, nodul fiind notat 5
cu indicele „0”, iar celelalte cu 1, 6
2, 3, 4, 5, 6. Funcţia ψ 0, B B

reprezentată pe axa Oz este o piramidă de înălţime 1 pe verticala din nodul 0 şi a


cărei bază se întinde până la nodurile imediat vecine, 1, 2, 3, 4, 5, 6 , prelungită
în planul orizontal.
Aşadar supp ψ 0 este hexagonul 123456. Din (73) se obţine
6
∑ a 0i ci = b0 , (77)
i =0
cu a0i şi b0 date de (72). Prin translaţie şi simetrie se constată că a01 = a04 ,
B B B B B B B B

a02 = a05 , a03 = a06 .


B B B B B B B B

Pe fiecare triunghi din suppψ0, gradψ0 este un vector constant, B B B B

deoarece în fiecare triunghi ψ0 are forma r r B B

ψ0(x,y) = Ax + By + C, deci gradψ 0 = Ai + Bj .


B B

De exemplu, dacă nodul 0 are coordonatele (ih, jh), h fiind pasul


reţelei, atunci pe triunghiul 012, impunând condiţiile
ψ0(ih, jh) = 1 , ψ0((i+1)h, jh) = 0 , ψ0(ih, (j+1)h) = 0 ,
B B B B B B
278 Bazele Analizei Numerice

se obţine
1 1 ⎛ 1 1⎞
A=− , B = − , deci gradψ 0 = ⎜ − ,− ⎟ .
h h ⎝ h h⎠
De remarcat că gradψ0 nu depinde de i şi j. În mod asemănător se
B B

poate calcula gradψ0 şi pe celelalte triunghiuri care compun suppψ0 şi de


B B B B

asemenea gradψ0 , i = 1,6 .


B B

În consecinţă, integrala pe fiecare triunghi este egală cu produsul dintre


h2
aria triunghiului cu un produs scalar obişnuit.
2
Să calculăm acum a 0i , i = 1,6 . Suppψ0 este hexagonul 123456.
B B

Avem:
⎛ 1 1⎞ ⎛1 1⎞
pe 012 , gradψ 0 = ⎜ − ,− ⎟ ; pe 045 , gradψ 0 = ⎜ , ⎟ ;
⎝ h h⎠ ⎝h h⎠
⎛ 1⎞ ⎛ 1⎞
pe 023 , gradψ 0 = ⎜ 0, − ⎟ ; pe 056 , gradψ 0 = ⎜ 0, ⎟ ;
⎝ h⎠ ⎝ h⎠
⎛1 ⎞ ⎛ 1 ⎞
pe 034 , gradψ 0 = ⎜ , 0 ⎟ ; pe 061 , gradψ 0 = ⎜ − , 0 ⎟;
⎝h ⎠ ⎝ h ⎠
suppψ 0 ∩ suppψ 1 = 012 ∪ 061 :
⎛1 ⎞ ⎛1 1⎞
pe 012 , gradψ 1 = ⎜ , 0 ⎟ ; pe 061 , gradψ 1 = ⎜ , ⎟.
⎝h ⎠ ⎝h h⎠
suppψ 0 ∩ supp ψ 2 = 012 ∪ 023;
⎛ 1⎞ ⎛1 1⎞
pe 012 , gradψ 2 = ⎜ 0, ⎟ ; pe 023 , gradψ 2 = ⎜ , ⎟.
⎝ h⎠ ⎝h h⎠
supp ψ 0 ∩ supp ψ 3 = 023 ∪ 034 :
⎛ 1 ⎞ ⎛ 1⎞
pe 023 , gradψ 3 = ⎜ − , 0 ⎟ ; pe 034 , gradψ 3 = ⎜ 0, ⎟;
⎝ h ⎠ ⎝ h⎠
În consecinţă:
a00 = ∫∫ (gradψ 0 )2 dxdy , S = 012 ∪ 023 ∪ 034 ∪ 045 ∪ 056 ∪ 061,
S
deci
h2
⎛ 2 1 1 2 1 1 ⎞
a 00 = ⎜⎜ + + + + + ⎟⎟ = 4
2⎝ h2 h2 h2 h2 h2 h2 ⎠
a 01 = a 04 = ∫∫ gradψ 0 ⋅ gradψ 1 dxdy , S = 012 ∪ 061 , deci
S .
a 01 = a 04 = −1
Introducere în metoda elementului finit 279

a 02 = a 05 = ∫∫ gradψ 0 ⋅ gradψ 2 dxdy , S = 012 ∪ 023 , deci


S .
a 02 = a 05 = −1
a 03 = a 06 = ∫∫ gradψ 0 ⋅ gradψ 3 dxdy , S = 023 ∪ 034 , deci
S .
a 03 = a 06 = 0
Deoarece ϕ0=0 pe C2, conform (72), b0 = ∫∫ fψ 0 dxdy,
B B B B

S
S = 012 ∪ 023 ∪ 034 ∪ 045 ∪ 056 ∪ 061 , deci
h2 ⎛ 1 1 1 1 1 1 ⎞ 2
⎜ f 0 ⋅ 1 + f 0 ⋅ 1 + f 0 ⋅ 1 + f 0 ⋅ 1 + f 0 ⋅ 1 + f 0 ⋅ 1⎟ = h f 0 ,
b0 ≅
2 ⎝3 3 3 3 3 3 ⎠
conform formulei (75) şi ţinând seama că ψ0 se anulează în nodurile 1, 2, 3, 4, B B

5, 6 şi ia valoarea 1 în nodul 0. S-a notat cu f0 valoarea funcţiei f în nodul 0. B B

Aşadar ecuaţia nodală (77) se scrie


4c0 – c1 – c4 – c2 – c5 = h2f0, B B B B B B B B B B P P B B

sau
c − 2c0 + c 4 c 2 − 2c0 + c5
− 1 − = f0 . (78)
h2 h2
Se regăseşte discretizarea ecuaţiei –∆ u = f, cu diferenţe finite, după
binecunoscuta schemă „în cruce”.
Să analizăm acum cazul unui
2
nod pe OA, numerotarea locală fiind
3
cea din figură.
Aceste noduri sunt similare cazului
nodului interior fiind evident de două ori
mai puţine.
În consecinţă a00 = 2 , a02 = –1,
4 0 1
B B B B

a03 = 0 (ultimele două valori fiind ca


B B

1
acolo), iar a01 = a04 = − (deoarece se
2
B B B B

h2
ia în calcul un singur triunghi). Din aceleaşi motive ∫∫ fψ 0 dxdy ≈ f0
G 2
0 1
⎛1 1 ⎞
(3 triunghiuri în loc de 6) şi ∫ gψ 0 dx = ∫ + ∫ ≈ h ⋅ ⎜ g 0 ⋅ 1 + g 0 ⋅ 1⎟ , unde g0
⎝2 2 ⎠
B

C2 4 0
, f0 sunt valorile lui g respectiv f în nodul 0. S-au utilizat iarăşi (75) şi (76)
B B B

şi faptul că ψ0 este 1 în nodul 0 şi se anulează în celelalte.


B B

h2
Aşadar, în acest caz b0 = f 0 + hg 0 . Ecuaţia nodală corespunzătoare
2
este
280 Bazele Analizei Numerice

2
1
c 2 − 2c0 +(c4 + c1 ) = −hg 0 − h f 0 . (79)
2 2
În ceea ce priveşte convergenţa metodei, dacă h este mărimea
elementelor finite (de exemplu diametrul), atunci lema lui Bramble şi Hilbert
precizează că
u − u~ = O(h),
unde
1/ 2
⎛ ∂u
2
∂u
2 ⎞
u =⎜ u 2 ⎟ ,
2
+ +
⎜ L (G ) ∂ x 2 ∂ y ⎟
⎝ L (G ) L2 (G ) ⎠
deci aproximarea este de ordinul 1. Pentru obţinerea unei aproximări de ordin mai
mare, se impune utilizarea unor polinoame de grad mai mare (nu de gradul unu),
deci introducerea unor elemente finite noi care comportă mai multe noduri.

Exerciţii

Să se determine funcţionalele asociate problemelor la limită:


d ⎡ du ⎤
1. Se caută u ∈ C 2 [ a , b] care satisface: − p ( x) ⎥ + q( x)u ( x) = f ( x) ,
dx ⎢⎣ dx ⎦
u(a)=u(b)=0, unde p ∈ C 1 ([a, b]), q ∈ C ([a, b]), f ∈ L2 (a, b), p ( x ) ≥ p 0 > 0,
q( x) ≥ 0 .

b
R. F (u ) = ∫ [ p( x)u ' 2 ( x) + q ( x)u 2 ( x) − 2 f ( x)u ( x)] dx .
a
2. Fie G ⊂ R 2 un domeniu mărginit de curba C. Se caută u ∈ C 2 (G ) care
satisface:
∂ 2u ∂ 2u
∆u = − − = f , f ∈ L2 (G ) , în G,
2 2
∂x ∂y
∂u
+ σ ( P)u |C = 0, σ ∈ C 0 (C ), unde σ ( P) ≥ σ 0 > 0 .
∂n
R. F (u ) = ∫∫ ( grad u ) 2 dxdy + ∫ σ ( P)u 2 ds − ∫∫ f ( x)u ( x)dxdy .
G C G

3. Fie G ⊂ R 2 un domeniu mărginit de curba C. Se caută u ∈ C 4 (G ) care


satisface:
Introducere în metoda elementului finit 281

⎧∆(∆u ) = f , f ∈ L2 (G ) în G

⎨ ∂u .
⎪⎩u | C = | C = 0
∂n
∂ 2u 2 ∂ 2u 2 ∂ 2u ∂ 2u
R. F (u ) = ∫∫ [( ) +( ) +2 ] − 2 ∫∫ f ( x)u ( x)dxdy .
2
G ∂x ∂y 2 ∂x 2 ∂y 2 G

4. Fie triunghiul A1A2A3 , unde Ai(xi, yi) , i=1, 2, 3. Dacă Pj = Aj, j=1, 2, 3, iar P4,
B B B B B B B B B B B B B B B B B B

P5, P6 sunt mijloacele laturilor A1A2, A2A3, A3A1 respectiv, să se arate că funcţia
B B B B B B B B B B B B B B B B

polinomială de gradul al doilea care ia în punctele Pj valorile uj, j = 1, 6 este B B B B

6
u ( x, y ) = ∑ u j µ j ( x, y ) , unde µ j = λ j (2λ j − 1) , j = 1, 2, 3 , µ 4 = 4λ1λ 2 ,
j =1
µ 5 = 4λ 2 λ3 , µ 6 = 4λ3 λ1 , funcţiile λi fiind date de (51).

5. Folosind elemente finite triunghiulare, să se găsească soluţia aproximativă a


∂ 2u ∂ 2u
problemei la limită: + = 4 , ( x, y ) ∈ G , u ( x, y ) = x 2 + y 2 pe frontiera
∂x 2 ∂y 2

lui G, G = {( x, y ) ∈ R 2 x ≤ 1, y ≤ 1} .

S-ar putea să vă placă și