Sunteți pe pagina 1din 145

7

2. ERORI
2.1. INTRODUCERE

Calculele numerice fie că sunt executate manual, fie că sunt executate pe un


calculator, implică o serie de erori de care trebuie să se ţină seamă în analiza
unui fenomen. Aceste erori pot conduce, în anumite situaţii, la crearea unei
imagini complet eronate asupra fenomenului studiat. De aceea, analiza erorii
dintr-un rezultat numeric este o problemă fundamentală.

2.2. CLASIFICAREA ERORILOR

Erorile se clasifică după mai multe criterii, şi anume:


I. Din punct de vedere al exprimării matematice, se disting:
- erori absolute;
- erori relative.
II. Din punct de vedere al cauzalităţii, distingem:
- erori inerente;
- erori de trunchiere;
- erori de rotunjire;
- erori de metodă.

2.2.1. Erori absolute şi relative

Prin număr aproximativ se înţelege aproximarea numerică a unui parametru.


Fie x valoarea exactă a unei mărimi şi x * valoarea aproximativă a aceleiaşi
mărimi.
Diferenţa:
E x  x  x* , (2.2.1)
dintre valoarea exactă a unei mărimi şi valoarea aproximativă a aceleiaşi
mărimi, se numeşte eroare absolută.
Modulul raportului dintre eroarea absolută şi valoarea exactă a mărimii
considerate
E
ex  x , (2.2.2)
x
se numeşte eroare relativă.
Deoarece valoarea exactă x, de regulă, nu este cunoscută se acceptă ca
eroarea relativă să fie exprimată prin relaţia:
8
Ex
ex  . (2.2.2’)
x*
În general, eroarea relativă se exprimă în procente.
Dacă valorile numerice sunt apropiate de 1, erorile absolută şi relativă sunt
aproximativ egale. Dacă valorile numerice sunt depărtate de 1, pot exista
diferenţe foarte mari între cele două tipuri de erori.
În continuare se vor prezenta două exemple, din care rezultă cele afirmate.

1.Fie x  1 şi x *  0.9 , valorile exactă, respectiv aproximativă ale unei


mărimi. Erorile absolută şi relativă sunt:
E x  1  0.9  0.1 ,

1  0.9
ex   0.1 sau e x  10 %.
1
2. Fie x  0.0004 şi x *  0.0003, valorile adevărată şi aproximativă ale unei
mărimi. Erorile absolută şi relativă sunt:
E x  0.0004  0.0003  0.0001,

0.0004  0.0003
ex   0.25 sau e x  25% .
0.0004
Din cele două exemple, se observă diferenţele între valorile celor două tipuri
erori. De asemenea, se observă că eroarea relativă furnizează o imagine mai
clară asupra preciziei valorii aproximative.

2.2.2. Erori inerente


Erorile inerente sunt erorile din datele iniţiale. Aceste erori pot proveni din
greşelile unor măsurători, citirea greşită a valorilor de pe scala aparatului de
înregistrare, necunoaşterea scalei aparatului de măsură, transmiterea eronată a
datelor, înregistrarea greşită a datelor în tabelul de măsurători etc.
De exemplu, măsurarea unei distanţe în metri poate conduce la o eroare
inerentă. Numai în mod accidental distanţa respectivă poate fi exactă.
Folosirea unor constante din matematică, fizică, chimie etc., poate de
asemenea constitui sursă de erori inerente în datele iniţiale. Astfel, numărul 
poate fi înregistrat ca dată iniţială cu valorile: 3.14; 3.141592; 3.1415926535,
ceea ce înseamnă că din start se porneşte cu o eroare, care este eroarea inerentă.
9
2.2.3. Erori de trunchiere

Erorile de trunchiere apar, de exemplu, prin reţinerea dintr-o serie a unui


număr finit de termeni.
Seria infinită
x x3 x5 x7
sin x = - + - + ... ,
1! 3! 5! 7!
poate fi folosită la calculul sinusului unui unghi x, dat în radiani. Datorită
faptului că nu pot fi folosiţi toţi termenii seriei în calculul sinusului, se va
introduce o eroare în rezultatul calculelor, eroare care poartă numele de eroare
de trunchiere.

2.2.4. Calculul în virgulă mobilă – Nu se cere la examen


Calculatoarele electronice operează cu două categorii de numere şi anume:
întregi şi fracţionare. În cazul operaţiilor de adunare, scădere şi înmulţire a unor
numere întregi, nu se poate vorbi despre eroare de rotunjire deoarece rezultatul
este tot un număr întreg, număr ce poate fi reprezentat exact în calculator.
Împărţirea a două numere întregi poate duce la un număr fracţionar, caz în care
apare eroarea de rotunjire. De aceea, reprezentarea internă a numerelor
fracţionare se face prin forma numită: în virgulă mobilă (floating point).
Un număr scris în virgulă mobilă este compus dintr-o fracţie numită mantisă
şi un întreg numit exponent, după cum urmează:
e
N  M b , (2.2.3)
unde:
M – este mantisa numărului;
b – baza sistemului de numeraţie;
e – exponentul bazei.
În sistemul zecimal, în virgulă mobilă, numărul N se scrie astfel:
e
N  M  10 .
Dacă 0.1  M  1 , atunci se spune că numărul N este normalizat.
În continuare, se vor prezenta câteva reguli ce trebuie respectate la efectuarea
unor operaţii aritmetice.
De exemplu, în cazul operaţiei de adunare se parcurg următoarele etape:
- se aduc cele două numere la un exponent comun, egal cu exponentul cel
mai mare;
- se adună mantisele celor două numere;
- se normalizează mantisa sumei obţinute, dacă este cazul.
10

Exemplu de calcul

Fie x1  5273.6  0.52736 104 şi x2  73.8  0.738  102 , două numere ce


urmează a fi adunate. În această formă cele două numere nu pot fi adunate,
deoarece exponenţii acestora nu sunt egali. Pentru aceasta, se denormalizează
x 2 şi se aduce la acelaşi exponent cu x1 . În urma acestei operaţii se obţine:
x2  0.738  102  0.00738 104 . Acum numerele au acelaşi exponent, astfel că
se adună mantisele şi se obţine:
x1  x2  0.52736 104  0.00738 104  0.53474 104 .
În cazul operaţiei de scădere se procedează în mod analog.

Dacă se efectuează o operaţie de înmulţire, atunci mantisele se înmulţesc aşa


cum apar în scrierea numerelor, iar exponentul produsului este egal cu suma
exponenţilor celor doi factori. Dacă este cazul, se procedează la normalizarea
rezultatului.

Exemplu de calcul

Fie numerele: x1  0.374  102 şi x2  0.169  101 , două numere ce trebuie


înmulţite. Produsul celor două numere va fi:

x1  x 2  0.374  10 2  0.169  101  0.0632  10 3  0.632  10 2

În cazul operaţiei de împărţire, se procedează la împărţirea celor două


mantise, iar exponentul câtului este egal cu diferenţa dintre exponenţii celor doi
factori. În final, se normalizează rezultatul.

2.2.5. Erori de rotunjire

Fracţiile zecimale finite, obţinute ca rezultate aproximative ale calculelor cu


numere reale, pot fi puse sub forma:

C  c110 m  c 2 10 m1  ...  c n 10 m n1 , (2.2.4)


unde c1 , c 2 , ..., c n sunt cifrele zecimale ale numărului aproximativ C.
Cifrele nenule, cele nule cuprinse între cele nenule sau cifrele care indică
ordinele păstrate în calcule, se numesc cifre semnificative.
Erorile de rotunjire apar ca urmare a limitării posibilităţilor calculatoarelor
11
electronice de a lucra cu un anumit număr de cifre semnificative.
Fie R  M  10e  P  10e s , rezultatul unei operaţii aritmetice, cu
0.1  M  1 , 0  P  1, unde s reprezintă numărul de cifre semnificative.
În cazul în care se neglijează P, se produce fenomenul de tăiere (adică se
neglijează un număr de cifre). Eroarea relativă este cu atât mai mare cu cât P se
apropie de limita superioară, iar M se apropie de limita inferioară. Din
inegalităţile de mai sus, rezultă că valoarea maximă a lui P este mai mică decât
1, iar valoarea minimă a lui M este 0.1. În acest caz, eroarea relativă este:
e s e s
P  10 1  10  s 1
eR    10 . (2.2.5)
e e
M  10 0.1  10

Din relaţia (2.2.5), se observă că eroarea relativă nu depinde de mărimea


numerelor, ci numai de numărul cifrelor din mantisă.
Cel mai adesea se foloseşte rotunjirea simetrică, şi anume:
- dacă P  0.5 se neglijează;
- dacă 0.5  P  1 se adaugă o unitate la ultima cifră semnificativă.
Eroarea relativă, în acest caz, este

ER P  10e s 0.5  10e s


eR     5  10  s . (2.2.6)
R M  10 e
0.1  10 e

Exemplu de calcul

Fie numărul aproximativ x *  0.314159265 101 . Presupunând că se


lucrează cu şase cifre semnificative numărul se scrie sub forma
x *  0.314159 101  0.265  1016 .
În cazul de faţă M  0.314159, iar P  0.265. Deoarece P  0.5 , acesta se
neglijează, astfel că numărul aproximativ se va scrie sub forma:
x *  0.314159 101 .
Dacă însă se va lucra cu şapte cifre semnificative, numărul aproximativ se va
scrie sub forma: x *  0.3141592 101  0.65  1017 , iar P  0.65  0.5 , ceea ce
înseamnă că la ultima cifră semnificativă se va aduna o unitate, astfel că
numărul aproximativ va fi: x *  0.3141593 101 .

Erorile de trunchiere şi de rotunjire se mai numesc şi erori de calcul.


12
2.2.6. Erori de metodă

La rezolvarea unei probleme cu ajutorul calculatoarelor electronice pot fi


folosite mai multe metode numerice. Fiecare din aceste metode are precizia sa,
precizie ce este influenţată de numărul operaţiilor de calcul şi felul acestora.
Deci, eroarea totală poate fi influenţată şi de eroarea de metodă.
În concluzie, eroarea totală se compune din eroarea inerentă, eroarea de
calcul şi eroarea de metodă.

2.2.7. Numărul de cifre semnificative exacte – Nu se cere la examen

Fie numărul R de forma: R  M  10m  P  10mn . Eroarea absolută se obţine


dacă se elimină P, adică E R  P  10mn . Dacă valoarea absolută a erorii absolute
E R îndeplineşte condiţia:

E R  0.5  10mn , (2.2.7)

atunci numărul R are n cifre semnificative exacte.

Exemplu de calcul

Presupunem numărul  de forma: R  3.14159265 . Pentru R1  3.1415, să


determinăm numărul de cifre semnificative exacte. În acest sens, procedăm mai
întâi la normalizarea numărului R1 şi obţinem:

R1  0.31415  101 .

Valoarea absolută a erorii absolute, E R1  R  R1 , este:

E R1  R  R1  0.314159265 101  0.31415 101 


 0.000009265 101  0.9265 10 4
Se presupune că numărul R1 are 5 cifre semnificative exacte. În acest caz, ar
trebui să fie îndeplinită condiţia:

E R1  0.5  1015  0.5  104 ,


dar se observă că E R1  0.9265 104  0.5  104 , adică numărul R1 nu are 5
cifre semnificative exacte.
Presupunem acum numărul R2  3.14159. Valoarea absolută a erorii
13
absolute, E R2  R  R1 , este:

E R2  R  R2  0.314159265 101  0.314159 101 

 0.00000265 101  0.265  10 5.


Se presupune că numărul R 2 are 6 cifre semnificative exacte. În acest caz,
trebuie să fie îndeplinită condiţia:

E R2  0.5  1016  0.5  105 .

Într-adevăr, 0.265  105  0.5  105 , ceea ce înseamnă că numărul R 2 are 6


cifre semnificative exacte.

2.3. PROPAGAREA ERORILOR

O eroare care apare la efectuarea unei operaţii aritmetice se propagă spre


următoarele operaţii, într-o măsură mai mare sau mai mică, în funcţie de felul şi
ordinea acestor operaţii.
Fie douã numere x * şi y * , ce aproximeazã mărimile x si y. Erorile absolute
ale celor două numere au expresiile:
E x  x  x* , E y  y  y * , (2.3.1)

iar erorile relative sunt:


E Ey
ex  x , e y  . (2.3.2)
x* y*
Expresiile erorilor absolute, în cele patru operaţii de bază, sunt:
a) adunarea
E x y  x  y  ( x *  y * )  E x  E y ; (2.3.3)

b) scăderea
E x y  x  y  ( x *  y * )  E x  E y ; (2.3.4)

c) înmulţirea
E xy  xy  x * y *  ( x *  E x )( y *  E y )  x * y *  x * E y  y * E x (2.3.5)
(s-a neglijat produsul E x E y , deoarece este mult mai mic în raport cu restul
termenilor);
d) împărţirea
14

x x* x*  E x x* y E x  x E y y E x  x E y
* * * *
Ex   *  *  *  (2.3.6)
y
y y y  E y y *2
y  y Ey
*
y*
2

2
(s-a considerat y *  y * E y ).
În cazul relaţiilor (2.3.5) şi (2.3.6), pentru calcul erorilor absolute se va
considera semnul egal.

Expresiile erorilor relative, în cele patru operaţii de bază, sunt:


a) adunarea
E x+y x* E x y* E y x* y*
e x+y = = +  ex +e y ; (2.3.7)
x *+y * x *+y * x * x *+y * y * x *+y * x *+y *

b) scãderea
E x y x* E x y* E y x* y*
e x y = =   ex  ey ;
x*  y * x*  y * x* x*  y * y * x*  y * x*  y *
(2.3.8)
c) înmulţirea:
E xy Ex Ey
e xy = = +  ex + e y ; (2.3.9)
x* y * x* y*

d) împărţirea:
Ex / y Ex E y
e x/y  =   ex  e y . (2.3.10)
x* / y * x* y*

Observând expresiile erorilor absolute şi relative, în cazul operaţiilor de


adunare, scădere, înmulţire şi împărţire, nu se poate trage concluzia, de exemplu,
că în cazul operaţiei de adunare eroarea creşte, iar în cazul operaţiei de scădere
eroarea scade. Acest lucru îl dictează semnul erorilor absolute, precum şi
valorile aproximative ale numerelor. De exemplu, dacă se scad două numere
aproximativ egale, eroarea relativă poate fi foarte mare. Se pot totuşi stabili
limitele superioare ale erorilor operaţiilor aritmetice. Astfel, cunoscându-se că
eroarea relativă, în cazul rotunjirii simetrice (relaţia 2.2.6), poate fi mai mică sau
s
egală cu 5 10 , unde s reprezintă numărul de cifre semnificative, se pot scrie
relaţiile:
15
Ex Ey
ex   5  10  s , e y   5  10  s . (2.3.11)
x * y *

Înlocuind relaţiile (2.3.11) în relaţiile (2.3.7), (2.3.8), (2.3.9) şi (2.3.10), se


obţin relaţiile:

x* y*  x* y* 
e x y  e x  ey  5  10  s   ;
x*  y * x*  y * *  y* *  y* 
 x x 
x* y*  x* y* 
e x y  e x  ey  5  10  s   ;
x*  y * x*  y * *  y* *  y* 
 x x 
Ex E y
e xy  =   e x  e y  10  10  s  101 s ;
x* y*
Ex E y
e x/y  =   e x  e y  10  10  s  101 s ,
x * y *

care reprezintă limitele superioare ale erorilor relative.

2.4. ERORILE ABSOLUTĂ ŞI RELATIVĂ LIMITĂ – Nu se


cere la examen

2.4.1. Eroarea absolută limită

De regulă, valorile exacte ale mărimilor iniţiale (mărimi cu care se încep


calculele) nu sunt cunoscute. Ca exemplu pot fi date valorile aproximative ce
rezultă din măsurători. În astfel de situaţii, trebuie să ne mulţumim cu
cunoaşterea unor margini pentru erorile absolute sau relative, ale valorilor
aproximative.
Prin eroare absolută limită, a unei valori aproximative x * , se înţelege un
număr pozitiv x ce nu poate fi depăşit, în valoare absolută, de mărimea erorii
absolute [18]. În acest caz, au loc inegalităţile:
 x  E x  x sau x *  x  x  x *  x .

Prin stabilirea erorii absolute limită x , se stabilesc marginile inferioară şi


superioară ale lui x. În concluzie, numărul x poate fi scris sub forma:
x  x *  x . (2.4.1)
Din relaţia (2.4.1), se observă că valoarea aproximativă x * este cu atât mai
precisă cu cât x este mai mic.
16
Dacă, în schimb, pentru o mărime x se cunosc două margini x1 şi x 2 , astfel
încât x1  x  x 2 , atunci valoarea medie x*  0.5( x1  x2 ) este o valoare
aproximativă pentru x, iar eroarea absolută limită este x  0.5( x 2  x1 ) .

2.4.2. Eroarea relativă limită

În cazul anumitor date tehnice, valorile unor mărimi sunt prezentate sub
forma:
x  x *    100%, (2.4.2)
unde marimea
x
 . (2.4.3)
x*
este eroarea relativă limită a lui x.

Exemplu de calcul

Se dă mărimea unei frecvenţe: 50 Hz  5 %. Eroarea relativă a valorii


aproximative x *  50 Hz este   0.05 . Cunoscându-se eroarea relativă limită,
se obţine eroarea absolută limită, care este x  x *    2.5 Hz . Odată
determinată eroarea absolută limită, se poate afirma că valoarea exactă a
frecvenţei se va găsi între 47.5 Hz şi 52.5 Hz.

Şi în cazul erorilor absolute şi relative limită se stabilesc formule pentru


calculul erorilor limită, în cazul celor patru operaţii aritmetice de bază. Astfel,
dacă se consideră:
x * , y * - valorile aproximative ale mărimilor exacte x şi y;
x , y - erorile absolute limită ale celor doi parametri;
 x ,  y - erorile relative limită,
atunci expresiile erorilor absolute şi relative limită, în cazul operaţiilor de
adunare, scădere, înmulţire şi împărţire, sunt :
- erorile absolute limită
adunare:  x y  x  y ; (2.4,4)
scădere:  x y  x  y ; (2.4.5)
înmulţire:  xy  y * x  x * y ; (2.4.6)
17
y * x  x *  y
împărţire: x/ y  2
; (2.4.7)
y*
- erorile relative limită
x  y
adunare:  x y  ; (2.4.8)
x*  y *
x  y
scădere:  x y  ; (2.4.9)
x*  y *
x y
înmulţire:  xy   ; (2.4.10)
x* y*
x y
împărţire: x/ y   . (2.4.11)
x* y*
1

4. REZOLVAREA ECUAŢIILOR NELINIARE


4.1. INTRODUCERE

Prin ecuaţii neliniare se înţeleg ecuaţiile algebrice şi transcendente, cu


excepţia ecuaţiilor algebrice de gradul unu.
O ecuaţie este algebrică dacă funcţia f ( x)  0 este un polinom sau poate fi
adusă la o formă polinomială, în urma unor transformări.
Ecuaţiile: 5 x 7  4 x 6  12x 3  x  14  0 şi x 3  4  15x  32  0 sunt
exemple de ecuaţii algebrice.
O ecuaţie este transcendentă dacă nu este algebrică.
Ecuaţiile x  sin 2 ( x)  e x tan( x)  3.8  0 , ln( x)  cos( x 2 )  1.48  0 sunt
ecuaţii transcendente.
În acest capitol ne vom ocupa de determinarea rădăcinilor reale ale ecuaţiilor
neliniare. Astfel, dacă  este o rădăcină reală a ecuaţiei f ( x)  0 , graficul
funcţiei f (x) intersectează axa absciselor în punctul x   (v.fig.4.1.1).

y y

y=f(x) y=f(x)

o x o x
rădăcinile rădăcinile
ecuaţiei f(x)=0 ecuaţiei f(x)=0

Fig.4.1.1. Rădăcinile ecuaţiei f ( x)  0

De regulă, ecuaţiile neliniare se rezolvă pe cale numerică, iterativ, excepţie


făcând unele ecuaţii algebrice simple de gradul doi, trei sau patru sau unele
ecuaţii transcendente, pentru care s-au stabilit metode exacte de rezolvare. De
aceea, prin rezolvarea numerică a unei ecuaţii se obţine o soluţie aproximativă,
soluţie care poate fi totuşi suficient de aproape de soluţia exactă, după cum se va
vedea în continuare .
2
Fie [a, b] un domeniu în care ecuaţia
f ( x)  0 (4.1.1)

are o soluţie unică,  .


Rezolvarea numerică a ecuaţiei (4.1.1), pornind de la o soluţie iniţială x (0) ,
conduce la obţinerea un şir de valori x (1) , x ( 2) , …, x (k ) , care converge către
soluţia unică  pentru k   , adică lim x ( k )   .
k 
Oprirea procesului iterativ, de găsire a soluţiei ecuaţiei f ( x)  0 , se face
atunci când sunt îndeplinite condiţiile:

x ( k )    1 ;
(4.1.2)
f ( x (k )   2 ,
unde 1 şi  2 sunt numere pozitive foarte mici.
Cele două condiţii (4.1.2) nu sunt echivalente, după cum se observă din
figura 4.1.2. Astfel, dacă modulul pantei funcţiei y  f (x) , în punctul x (k ) , este
mic (fig.4.1.2.a), atunci f ( x (k ) ) este suficient de mic, iar valoarea x (k )  
este mare. În figura 4.1.2.b, avem f ( x (k ) ) mare şi x (k )   mic.

Fig.4.1.2. Punerea în evidenţă a rădăcinilor aproximative

În practică se folosesc fie ambele condiţii (4.1.2), fie numai una dintre ele, în
funcţie de problema de rezolvat.
După cum s-a arătat mai înainte, în domeniul [a, b] trebuie să existe o soluţie
unică  . De aceea, la determinarea soluţiilor reale ale ecuaţiei f ( x)  0 se
parcurg două etape, şi anume:
a) separarea rădăcinilor ecuaţiei (4.1.1);
b) determinarea aproximativă a rădăcinilor, folosind o metodă numerică
adecvată.
3

4.3. METODE ITERATIVE DE REZOLVARE


A ECUAŢIILOR ALGEBRICE ŞI TRANSCENDENTE

4.3.2. Metoda Newton-Raphson

Fie f ( x)  0 o ecuaţie algebrică sau transcendentă, care în intervalul [a, b]


are o rădăcină unică  . Presupunem că derivatele f (x) şi f (x) sunt continue
şi păstrează semnul constant pentru x  [a, b] , unde a  b .
Pentru determinarea formulei de iterare, cu ajutorul căreia se obţine o
aproximantă a rădăcinii reale  , se vor folosi două metode, şi anume: o metodă
analitică, care foloseşte dezvoltarea în serie Taylor a funcţiei f (x) în jurul lui
x (k ) , şi o metodă geometrică, în care se foloseşte tangenta la curba y  f (x) în
punctul ( x ( k 1) , f ( x ( k 1) ) .

1. Fie x ( k )  x ( k 1)  x . Dezvoltând în serie Taylor funcţia f (x) , în jurul


lui x (k ) , rezultă:

x (x) 2
f ( x ( k ) )  f ( x ( k 1) )  f ( x ( k 1) )  f ( x ( k 1) )  
1! 2!
( k 1)
(4.3.8)
(x)
 f ( k 1) ( x ( k 1) )    0
(k  1)!
Dacă se reţin primii doi termeni din relaţia (4.3.8), se obţine:
x
f ( x ( k 1) )  f ( x ( k 1) )  0 ,
1!
de unde rezultă:

( k 1) f ( x ( k 1)
x (k )
x  , k  1, 2, (4.3.9)
f ( x ( k 1) )

care se numeşte formula de iterare de ordinul doi.


Procesul de obţinere iterativă a soluţiei se opreşte atunci când este îndeplinită
relaţia:

x ( k )  x ( k 1)   . (4.3.10)

Dacă din dezvoltarea în serie (4.3.8) se reţin primii trei termeni, se obţine
formula de iterare de ordinul trei. Pentru aceasta, relaţia
4

( k 1) x ( k 1) (x) 2


f (x ) f ( x ) f ( x ( k 1) )  0
1! 2!
se scrie sub forma:

 x 
f ( x ( k 1) )  x  f ( x ( k 1) )  f ( x ( k 1) )  0 ,
 2 
f ( x ( k 1) )
unde termenul x , din interiorul parantezei mari, se înlocuieşte cu  ,
f ( x ( k 1) )
adică cu eroarea din formula de iterare de ordinul doi. În acest caz, se obţine:

( k 1) 2 f ( x ( k 1) ) f ( x ( k 1) )


x (k )
x  , (4.3.11)

2 f ( x ( k 1)
2
)  f (x ( k 1)
) f ( x ( k 1)
)

care poartă numele de formulă de iterare de ordinul trei.

2. Cea de a doua metodă de determinare a formulei de iterare


Newton-Raphson porneşte de la interpretarea geometrică a relaţiei (4.3.9).
Astfel, dacă se consideră x (0)  b , f ( x ( 0) )  0 , f ( x ( 0) )  0 (v. fig.4.3.3) şi se
duce tangenta la curbă în punctul ( x ( 0) , f ( x ( 0) )) , atunci intersecţia acesteia cu
axa absciselor se notează cu x (1) şi reprezintă o aproximantă a soluţiei reale  ,
căreia îi spunem: soluţia ecuaţiei la iteraţia unu. După cum se observă, s-a
înlocuit curba y  f (x) cu tangenta în punctul ( x ( 0) , f ( x ( 0) )) . În continuare, se
duce tangenta la curbă în punctul ( x (1) , f ( x (1) )) şi intersecţia acesteia cu axa
absciselor o notăm cu x ( 2) şi reprezintă soluţia ecuaţiei la iteraţia a doua. Dacă
se consideră tangenta la curbă în punctul ( x ( k 1) , f ( x ( k 1) )) , se ia un punct
M ( x, y) pe această tangentă şi se scrie ecuaţie dreptei de pantă f ( x ( k 1) ) , care
trece prin punctul M, atunci se obţine:

y  f ( x ( k 1) )
( k 1)
 f ( x ( k 1) ) .
xx
Pentru y  0 rezultă x  x (k ) , astfel că se obţine relaţia:

( k 1) f ( x ( k 1) )
x (k )
x  ,
f ( x ( k 1) )

care este formula de iterare Newton-Raphson de ordinul doi.


5

y A( x (0) , y (0) )

y  f ( x)

B ( x (1) , y (1) )

a  b
o x ( 2) x (1 ) x (0) x
Fig. 4.3.3. Ilustrarea metodei Newton-Raphson

4.3.3. Metoda bisecţiei succesive

Fie f ( x)  0 , o ecuaţie algebrică sau transcendentă, care în intervalul [a, b]


are o rădăcină unică  , adică f (a)  f (b)  0 . Determinarea soluţiei ecuaţiei
considerate, constă în înjumătăţirea succesivă a intervalelor de incertitudine
până când se obţine o valoare care să aproximeze, cu o eroare acceptată,
rădăcina  (v.fig. 4.3.5).

y  f (x )

a x ( 2)  x (1) b
o x
a2 b2
a1 b1
Fig. 4.3.5. Ilustrarea metodei bisecţiei

Etapele parcurse pentru determinarea unei soluţii care să aproximeze


rădăcina reală  sunt:
- se fac notaţiile: a1  a , b1  b ;
6
a1  b1
- se calculează x (1)  ;
2
- dacă f (a1 )  f ( x (1) )  0 , atunci: a 2  a1 , b2  x (1) , altfel: a 2  x (1) ,
b2  b1 ;
a2  b2
- se calculează x ( 2)  ;
2
a  bk
- la etapa k avem: x ( k )  k .
2
Procesul iterativ de calcul se opreşte dacă bk  ak   sau f ( x (k ) )   ,
unde  este un număr pozitiv foarte mic.

4.3.4. Metoda coardei (sau Metoda secantei)

Fie ecuaţia algebrică sau transcendentă f ( x)  0 , care pe intervalul [a, b] are


o rădăcină reală x   . Pentru determinarea soluţiei, cu o anumită eroare
impusă, se înlocuieşte funcţia f (x) cu un polinom de interpolare de ordinul unu
de forma:
g ( x)  a1 x  a2 , (4.3.15)
astfel încât:
g (a)  f (a) , g (b)  f (b) . (4.3.16)

Dreapta g (x) intersectează axa absciselor în punctul x (1) (v. fig. 4.3.6).
Pentru aflarea lui x (1) este necesară determinarea constantelor a1 şi a 2 . Folosind
relaţia (4.3.15) şi condiţiile 4.3.16), rezultă:
f (b)  f (a) bf (a)  af (b)
a1  , a2  . (4.3.17)
ba ba

y
B(b, f (b))

a x (1) x ( 2)
o  b x
A(a, f (a))
Fig. 4.3.6. Ilustrarea metodei coardei
7

După înlocuiri în relaţia (4.3.15), se obţine:


f (b)  f (a) bf (a)  af (b)
g ( x)  x . (4.3.18)
ba ba
Pentru: x  x (1) , a1  a , b1  b , rezultă g ( x (1) )  0 , şi deci:

a1 f (b1 )  b1 f (a1 )
x (1)  . (4.3.19)
f (b1 )  f (a1 )

În continuare, se testează dacă soluţia  se află în intervalul [a, x (1) ] sau în


intervalul [ x (1) , b] . Astfel, dacă f (a )  f ( x (1) )  0 , se fac notaţiile: a 2  a1 ,
b2  x (1) , altfel: a 2  x (1) , b2  b1 , şi rezultă:

a2 f (b2 )  b2 f (a2 )
x ( 2)  .
f (b2 )  f (a2 )
La etapa k avem:
ak f (bk )  bk f (ak )
x (k )  . (4.3.20)
f (bk )  f (ak )

Procesul iterativ de calcul se opreşte dacă: bk  ak   sau f ( x (k ) )   ,


unde  este un număr pozitiv foarte mic.
Metoda mai poartă numele de metoda părţilor proporţionale, deoarece
intervalul [a, b] este împărţit în părţi proporţionale cu f (a) şi f (b) .
1

5. REZOLVAREA SISTEMELOR DE ECUAŢII


NELINIARE

5.1. INTRODUCERE

Rezolvarea sistemelor de ecuaţii neliniare se face, de regulă, cu ajutorul


metodelor iterative. Sunt puţine cazurile când se procedează la rezolvarea
analitică şi aceasta numai dacă sistemele au un număr mic de ecuaţii, iar forma
acestora este deosebit de simplă.
Metodele iterative de rezolvare a sistemelor de ecuaţii neliniare cer o
aproximaţie iniţială a soluţiei, iar această aproximaţie trebuie să se afle într-un
domeniu restrâns al soluţiei căutate. După cum este cunoscut, un sistem de
ecuaţii neliniare are mai multe soluţii, de aceea, în funcţie de aproximaţia iniţială
se obţine soluţia finală. Odată soluţia finală obţinută, aceasta trebuie analizată,
pentru a vedea în ce măsură răspunde cerinţelor procesului sau fenomenului
analizat.

5.2. METODA NEWTON-RAPHSON

Fie f1 , f 2 ,  , f n , n funcţii neliniare definite pe un domeniu X  R n , care


depind de necunoscutele x1 , x 2 , ..., x n şi formează sistemul de ecuaţii neliniare:

 f1 ( x1 , x2 ,..., xn )  0;
 f ( x , x ,..., x )  0;
 2 1 2 n
 (5.2.1)
. . . . . . . . . . . . .
 f n ( x1 , x2 ,..., xn )  0.

Vectorial, sistemul poate fi scris sub forma:


f ( x)  0 , f : X  Y , X  R n , Y  R n . (5.2.2)

Presupunem că în vecinătatea V  X există o soluţie unică  , adică


f ( )  0 .
Rezolvarea iterativă a sistemului (5.2.1) presupune cunoaşterea unei
aproximaţii iniţiale a soluţiei finale. Fie această aproximaţie de forma:
2
x1(0) , x 2(0) ,  , x n(0) . Aproximaţia considerată nu verifică ecuaţiile sistemului
(5.2.1), ceea ce înseamnă că:
 f1 ( x (0) , x (0) ,..., x n(0) )  0;
 1 2
 f 2 ( x1 , x 2(0) ,..., x n(0) )  0;
( 0 )
 (5.2.3)
 . . . . . . . . . . . . .
 f ( x (0) , x (0) ,..., x (0) )  0.
 n 1 2 n
Dacă la fiecare variabilă independentă se adaugă eroarea absolută limită, se
obţine: x1  x1(0)  x1 , x 2  x 2(0)  x 2 , …, x n  x n(0)  x n . In acest caz,
funcţiile sistemului sunt verificate, adică:
 f1 ( x (0)  x1 , x (0)  x 2 ,..., x n(0)  x n )  0;
 1 2
 f 2 ( x1  x1 , x 2(0)  x 2 ,..., x n(0)  x n )  0;
( 0 )
 (5.2.4)
. . . . . . . . . . . . .
 f ( x (0)  x , x (0)  x ,..., x (0)  x )  0.
 n 1 1 2 2 n n

Prin dezvoltarea în serie Taylor a funcţiile sistemului (5.2.4) şi eliminarea


termenilor care conţin erorile absolute limită x1 , x 2 ,  , x n în afara celor
de gradul unu, rezultă:
 (0) (0) (0) f1 f1 f1
 f1 ( x1 , x 2 ,..., x n )  x1 x  x 2 x    x n x  0;
 1 2 n
 (0) (0) (0) f 2 f f
 f 2 ( x1 , x 2 ,..., x n )  x1  x 2 2    x n 2  0;
 x1 x 2 x n (5.2.5)
. . . . . . . . . . . . .

 (0) (0) (0) f n f n f n
 f n ( x1 , x 2 ,..., x n  x1 x  x 2 x    x n x  0,
 1 2 n
ceea ce înseamnă că s-a obţinut un sistem de n ecuaţii liniare în necunoscutele
x1 , x 2 ,  , x n . Pentru rezolvarea sistemului (5.2.5) vom considera
egalitatea cu zero. Matricea coeficienţilor sistemului de ecuaţii liniare (5.2.5)
este:
f1 f1 f1
...
x1 x 2 x n
f 2 f 2 f 2
...
W ( x)  x1 x 2 x n , (5.2.6)
... ... ... ...
f n f n f n
...
x1 x 2 x n
3
şi poartă numele de matrice funcţională sau jacobianul sistemului de ecuaţii
neliniare (5.2.1). Elementele matricei funcţionale (5.2.6), se calculează cu
aproximaţia iniţială x1(0) , x 2(0) ,  , x n(0) .
Matriceal sistemul (5.2.5) poate fi pus sub forma:

W ( x ( 0 ) ) x   f ( x ( 0 ) ) , (5.2.7)
T
unde x (0)  x1(0) , x 2(0) ,  , x n(0) .
Dacă funcţiile f1 , f 2 ,  , f n , împreună cu derivatele parţiale
f i
, (i, j )  1, n , sunt continue pe vecinătatea V  X şi det W ( x (0) ) ( 0)  0,
x j x V

atunci matricea funcţională W ( x (0) ) admite o inversă W 1 ( x (0) ) şi soluţia


sistemului de ecuaţii (5.2.7) este:
x  W 1 ( x 0) f ( x (0) ) . (5.2.8)

Cu notaţia: x  x (1)  x (0) , se obţine soluţia sistemului de ecuaţii neliniare


(5.2.1) la prima iteraţie, şi anume:
x (1)  x (0)  W 1 ( x (0) )  f ( x (0) ) . (5.2.9)

La iteraţia k , soluţia este de forma:

x ( k )  x ( k 1)  W 1 ( x ( k 1) )  f ( x ( k 1) ) , k  1, 2,  . (5.2.10)

Procesul de calcul este iterativ şi se opreşte atunci când

x ( k )  x ( k 1)   , (5.2.11)

unde  este eroarea maximă admisă la calculul soluţiei sistemului dat.

5.3. METODA GRADIENTULUI

Fie sistemul de n ecuaţii neliniare (5.2.1). Se presupune că funcţiile


sistemului şi derivatele parţiale ale acestora sunt continue în domeniul de
definiţie.
Se consideră de asemenea o formă pătratică pozitiv definită
n
F ( x1 , x 2 ,..., x n )   f i 2 ( x) . (5.3.1)
i 1
Soluţia x, a sistemului iniţial, anulează şi funcţia F (x) , astfel că are loc
implicaţia
4
f ( x)  0  F ( x)  0 . (5.3.2)

Aceasta înseamnă că determinarea soluţiei sistemului f ( x)  0 este


echivalentă cu determinarea minimului nul x   , pentru funcţia F (x) . Metoda
gradientului constă tocmai în determinarea acestui minim nul. Relaţia de
determinare iterativă a soluţiei este:

x ( k )  x ( k 1)   k 1 W T ( x ( k 1) )  f ( x ( k 1) ) , (5.3.3)


unde:
f ( x ( k 1)
), W ( x ( k 1) )  W T ( x ( k 1) )  f ( x ( k 1) ) 
 k 1 
W( x ( k 1)
)  W T ( x ( k 1) )  f ( x ( k 1) ), W ( x ( k 1) )  W T ( x ( k 1) )  f ( x ( k 1) ) . (5.3.4)

Demonstraţia completă a formulei (5.3.3) se găseşte în [7].

5.4. METODA KANI

Fie sistemul de ecuaţii neliniare (5.2.1). În vecinătatea soluţiei, variabilele


sistemului pot fi exprimate ca funcţii de un parametru  care variază între 0 şi 1,
deci:
x1  x1 ();
x 2  x 2 ();
(5.4.1)
.......
x n  x n ().
Pentru o aproximaţie iniţială ( x1(0) , x 2(0) ,..., x n(0) ) , sistemul poate fi scris sub
forma:
 f 1 ( x1 , x 2 , ... , x n )  f 1 ( x1(0) , x 2(0) , ..., x (0) )  (1  );
 n
 f 2 ( x1 , x 2 , ... , x n )  f 2 ( x1 , x 2 , ..., x (0) )  (1  );
(0) (0)
 n (5.4.2)
. . . . . . . . . . . . . . . . . . . . . .
 f ( x , x , ... , x )  f ( x , x , ..., x ) )  (1  ).
( 0 ) ( 0 ) ( 0
 n 1 2 n n 1 2 n

La limită, când   1 , membrii secunzi se anulează.


Dacă se derivează funcţiile sistemului (5.4.2) în raport cu parametrul  , se
obţine:
5
 f 1 dx1 f 1 dx 2 f 1 dx n

 x d x d  . ..    f 1 ( x1(0) , x 2(0) ,..., x n(0) );
x n d
 1 2
 f 2 dx1  f 2 dx 2  ...  f 2 dx n
  f 2 ( x1(0) , x 2(0) ,..., x n( 0) );
 x1 d x 2 d x n d (5.4.3)
. . . . . . . . . . . . . . . . . . . . . . . . . .
 f dx f f dx n
 n 1  n dx 2  ...  n   f n ( x1(0) , x 2(0) ,..., x n(0) ),
 x1 d x 2 d x n d

sau sub formă matriceală:


dx
W ( x)   f ( x (o ) ) . (5.4.4)
d
Înmulţind la stânga cu W 1 ( x) , se obţine:
dx
  W 1 ( x)  f ( x ( o ) ) , (5.4.5)
d
sau:
dx   W 1 ( x)  f ( x ( o ) )  d . (5.4.6)

Trecând la diferenţe finite, rezultă:

x   W  1 ( x )  f ( x ( o ) )   . (5.4.7)

Dacă se consideră x  x ( k )  x ( k 1) , atunci soluţia sistemului se scrie sub


forma
x ( k )  x ( k 1)  W 1 ( x ( k 1) )  f ( x ( o ) )   , (5.4.8)

unde
  1 / N , k  0, N  1 .
Deci, pentru determinarea soluţiei sistemului de ecuaţii neliniare (5.2.1), se
împarte intervalul [0, 1] în N subintervale egale,  , şi se integrează numeric
pornind de la soluţia iniţială x ( 0) .

În cazul metodei Kani, precizia de calcul a soluţiei este cu atât mai mare cu
cât mărimea subintervalelor  este mai mică.
De regulă, metoda Kani se foloseşte atunci când nu sunt suficiente date
pentru a preciza o aproximaţie iniţială. Astfel, după obţinerea unei soluţii
aproximative cu metoda Kani, se introduce această soluţie, ca aproximaţie
iniţială, în metoda Newton-Raphson sau în metoda gradientului şi se obţine o
soluţie cu precizia dorită de utilizator.
1

6. REZOLVAREA SISTEMELOR
DE ECUAŢII LINIARE
6.1. INTRODUCERE

Rezolvarea sistemelor de ecuaţii liniare este una dintre cele mai frecvente
aplicaţii în calculul numeric. Metodele de rezolvare a acestor sisteme se pot
grupa în două categorii, şi anume: metode exacte şi metode iterative.
Metodele exacte se utilizează, de regulă, în cazul sistemelor cu număr mic de
ecuaţii, deoarece soluţia este afectată de erorile de rotunjire, erori ce se propagă
de la o operaţie la alta.
În cazul sistemelor cu număr mare de ecuaţii se folosesc metodele iterative,
cu ajutorul cărora se poate controla eroarea soluţiei obţinute faţă de soluţia
exactă.
Să considerăm n ecuaţii liniare, dependente de n variabile. Aceste n ecuaţii
formează un sistem de n ecuaţii liniare. Un sistem de n valori, corespunzătoare
celor n variabile, este o soluţie a acestui sistem de ecuaţii, dacă înlocuind
variabilele cu aceste valori, toate cele n ecuaţii sunt satisfăcute simultan.
Până la rezolvarea propriu-zisă a unui sistem de ecuaţii liniare, este bine să
se facă un studiu privind existenţă şi unicitatea soluţiei. De altfel, nu are sens să
se caute o soluţie a sistemului de ecuaţii liniare dacă aceasta nu există.
În acest sens, în cazul sistemelor de ecuaţii liniare pot apare mai multe
situaţii, şi anume:
a) Sistemul are soluţie unică.
Fie sistemul de ecuaţii liniare
2 x + 3 y = 6;
 (6.1.1)
3 x − 2 y = 6,
a cărui reprezentare geometrică este dată în figura 6.1.1. Cele două drepte, ale
sistemului de ecuaţii liniare (6.1.1), se intersectează în punctul A, punct ale cărui
coordonate reprezintă soluţia sistemului.
b) Sistemul nu are soluţie.
Fie sistemul de ecuaţii liniare
 x + y = 2;
 (6.1.2)
 x + y = 3.5,
2

a cărui reprezentare geometrică este prezentată în figura 6.1.2. Cele două drepte
ale sistemului de ecuaţii liniare (6.1.2) sunt paralele, astfel că sistemul nu are
soluţie.
y
y
3 x+ y=2
3
2 2x + 3y = 6 3x − 2 y = 6 2
x + y = 3.5
1 1
A
0 1 2 3 4 5 x 0 1 2 3 4 5 x
−1 −1
−2 −2
−3 −3

Fig. 6.1.1. Reprezentarea geometrică Fig. 6.1.2. Reprezentarea geometrică


a unui sistem de două ecuaţii liniare a unui sistem de două ecuaţii liniare
care are soluţie unică; cele două drepte care nu are soluţie; cele două drepte
se intersectează în punctul A. sunt paralele.

y y 3.1x − 1.9 y = 5.89


3 3x − 3 y = 9 3
2 2 3x − 2 y = 6
1 x − y =3 1

0 1 2 3 4 5 x 0 1 2 3 4 5 x
−1 −1
−2 −2
−3 −3

Fig. 6.1.3. Reprezentarea geometrică Fig. 6.1.4. Reprezentarea geometrică


a unui sistem de două ecuaţii liniare, a unui sistem de două ecuaţii liniare
care are un număr infinit de soluţii; slab convergent; cele două drepte au
cele două drepte sunt identice. pantele apropiate.

c) Sistemul are o infinitate de soluţii.


Fie sistemul de ecuaţii liniare
3 x − 3 y = 9;
 (6.1.3)
 x − y = 3,
3
a cărui reprezentare geometrică este prezentată în figura 6.1.3. Sistemul (6.1.3)
are, de fapt, o ecuaţie scrisă sub două forme. Orice punct de pe una din drepte o
verifică şi pe cealaltă, de unde rezultă că sistemul are o infinitate de soluţii.
Sistemele de ecuaţii (6.1.2) şi (6.1.3) se numesc sisteme singulare. În cazul
în care sistemul de ecuaţii liniare are un număr mare de ecuaţii, singularitatea se
determină prin calculul determinantului sistemului. Dacă determinantul este egal
cu zero sistemul este singular.
d) Sistemul este slab convergent.
Fie sistemul de ecuaţii liniare
3 x − 2 y = 6;
 (6.1.4)
3.1x − 1.9 y = 5.89,
a cărui reprezentare geometrică este prezentată în figura 6.1.4. Cele două drepte
ale sistemului liniar (6.1.4) au pantele foarte apropiate, ceea ce conduce la o
slabă condiţionare a sistemului.

6.2. METODE EXACTE PENTRU REZOLVAREA


SISTEMELOR DE ECUAŢII LINIARE

6.2.1. Metoda matricei inverse

Fie sistemul de ecuaţii liniare


a11 x1 + a12 x 2 + ... + a1 j x j + ... + a1n x n = b1 ;
a x + a x + ... + a x + ... + a x = b ;
 21 1 22 2 2j j 2n n 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a x + a x + ... + a x + ... + a x = b ; (6.2.1)
 i1 1 i2 2 ij j in n i
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a n1 x1 + a n 2 x 2 + ... + a nj x j + ... + a nn x n = bn .

Matriceal sistemul poate fi scris sub forma:
A  X = b, (6.2.2)
unde:
a11 a12  a1n
a a 22  a2n T T
A = 21 ; X = x1 x2  xn ; b = b1 b2  bn (6.2.3)
   
a n1 an2  a nn
4
Dacă det A  0 , atunci matricea A admite o inversă A −1 , iar soluţia
sistemului este de forma:

X = A −1  b (6.2.4)
Sistemul are o soluţie unică pentru orice vector b . Dacă matricea A este
singulară, sistemul va avea soluţie numai pentru anumite valori speciale ale
vectorului b şi o astfel de soluţie nu este unică.

6.2.2. Metoda eliminării gaussiene (nu se cere demonstratia la examen)

Fie sistemul de ecuaţii liniare (6.2.1)


Metoda eliminării a lui Gauss constă în eliminarea necunoscutelor situate
sub diagonala principală, după care se determină soluţia sistemului începând cu
x n şi terminând cu x1 .
Obţinerea sistemului triunghiular superior se face în (n-1) etape, după cum
urmează:
- etapa 1: presupunem că cel puţin unul din coeficienţii a11 , a 21 , ... , a n1 este
diferit de zero (dacă a11 = 0 , atunci se reorganizează ecuaţiile sistemului astfel
încât coeficientul lui x1 , de pe prima linie, să fie diferit de zero). După
reorganizarea ecuaţiilor (dacă este cazul), se definesc (n-1) multiplicatori de
forma:
a
mi = i1 , i = 2, n . (6.2.5)
a11

Prin înmulţirea liniei 1 cu multiplicatorul mi şi scăderea elementelor acestei linii


din elementele liniei i, se obţine:

aij(1) = aij − mi  a1 j , bi(1) = bi − mi  b1 , i = 2, n , j = 1, n . (6.2.6)

După prima etapă, sistemul de ecuaţii arată astfel:


a11 x1 + a12 x2 + ... + a1 j x j + ... + a1n xn = b1 ;

 0 + a 22 x2 + ... + a 2 j x j + ... + a 2 n xn = b2 ;
(1) (1) (1) (1)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 (6.2.7)
 0 + ai 2 x2 + ... + aij x j + ... + ain xn = bi ;
(1) (1) (1) (1)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 0 + a n 2 x2 + ... + a nj x j + ... + a nn xn = bn ,
(1) (1) (1) (1)

- etapa 2: se consideră un nou sistem format din (n-1) ecuaţii în


necunoscutele x i , i = 2, n , şi se presupune a 22
(1)
 0 . Folosind algoritmul
5
anterior se elimină necunoscuta x 2 ;

- etapa k: se presupune că cel puţin unul din coeficienţii


( k −1)
a kk , a k( k+−1,1k) ,( k −1)
... , a nk este diferit de zero (dacă a kk = 0 , atunci se
reorganizează ecuaţiile sistemului astfel încât coeficientul lui x k , de pe linia k,
să fie diferit de zero). Se definesc multiplicatorii:

aik( k −1)
mi = , i = k + 1, n . (6.2.8)
a k( kk−1)

Prin înmulţirea liniei k cu multiplicatorul mi şi scăderea elementelor acestei linii


din elementele liniei i, se obţine:

aij( k ) = aij( k −1) − mi  a kj


( k −1)
, bi( k ) = bi( k −1) − mi  bk( k −1) , (6.2.9)

unde: i = k + 1, n , j = k , n .

După efectuarea etapei k sistemul iniţial arată astfel:


a11 x1 + a12 x 2 + a13 x3 + ... + a1k x k + a1k +1 x k +1 + ... + a1n x n = b1 ;
 0 + a (1) x + a (1) x + ... + a (1) x + a (1) x + ... + a (1) x = b (1) ;
 22 2 23 3 2k k 2,k +1 k +1 2n n 2
 0 + 0 + a33 x3 + ... + a3k x k + a3,k +1 x k +1 + ... + a3n x n = b3( 2) ;
( 2 ) ( 2 ) ( 2 ) ( 2 )

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 0 + 0 + 0 + ... + a ( k −1) x + a ( k −1) x + ... + a ( k −1) x = b ( k −1) ;
 kk k k ,k +1 k +1 kn n k
 0 + 0 + 0 + ... + 0 + a k +1,k +1 x k +1 + ... + a k +1,n x n = bk( k+1) ;
( k ) ( k )

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 0 + 0 + 0 + ... + 0 + a n( k,k)+1 x k +1 + ... + a n( k,n) x n = bn( k ) .

(6.2.10)
După (n-1) etape sistemul devine:

a11 x1 + a12 x 2 + a13 x3 + ... + a1k x k + a1k +1 x k +1 + ... + a1n x n = b1 ;


 (1)
a 22 x 2 + a 23
(1)
x3 + ... + a 2(1k) x k + a 2(1,)k +1 x k +1 + ... + a 2(1n) x n = b2(1) ;



( 2)
a33 x3 + ... + a3( 2k ) x k + a3( 2,k)+1 x k +1 + ... + a3( 2n) x n = b3( 2) ;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 ( n −1)
 a nn x n = bn( n −1) ,
(6.2.11)
iar determinarea necunoscutelor începe cu x n şi se termină cu x1 , după cum
urmează:
6
n
b (j j −1) −  a (jij −1)  xi
bn( n −1) bn( n−1− 2) − a n( n−−1,2n)  xn i = j +1
xn = , x n −1 = ; … ; xj = ; …;
( n −1)
a nn a n( n−−1,2n)−1 a (jjj −1)
n
b1 −  a1i  xi
i =2
x1 = . (6.2.12)
a11

6.2.3. Metoda Cholesky – se cere la examen demonstratia, fara


formulele ecuatiilor 6.2.22-6.2.25

Metoda Cholesky constă în determinarea unei matrice auxiliare L de tipul


triunghiular inferior, care permite reducerea sistemului iniţial (6.2.2) la forma:
T  X = C. (6.2.13)
Înmulţind ecuaţia (6.2.13), la stânga, cu matricea triunghiular inferioară L o
va reduce la forma iniţială (6.2.2), adică:
L  T  X = L C, (6.2.14)
deci:
L  T = A, L C = b. (6.2.15)
Pentru început, se consideră un sistem de trei ecuaţii liniare cu trei
necunoscute, şi anume:
a11 x1 + a12 x 2 + a13 x3 = b1 ;

a 21 x1 + a 22 x 2 + a 23 x3 = b2 ; (6.2.16)
a 31 x1 + a 32 x 2 + a 33 x3 = b3 .

Determinarea elementelor matricelor L, T şi C se face uşor dacă se aşează


matricele sub forma:
a11 a12 a13 b1 l11 0 0 1 t12 t13 c1
a 21 a 22 a 23 b2 = l 21 l 22 0  0 1 t 23 c 2 ,
a 31 a 32 a 33 b3 l 31 l 32 l 33 0 0 1 c3

de unde rezultă:
a) ai1 = li1  1 + li 2  0 + li3  0 = li1 , i = 1,3 , (6.2.17)

adică, prima coloană a matricei L este identică cu prima coloană a matricei A;


b) a1 j = l11  t1 j + 0  t 2 j + 0  t 3 j = l11  t1 j , j = 1,3 , (6.2.18)
7
adică, prima linie a matricei T este egală cu prima linie a matricei A împărţită cu
a11 ;

c) a 22 = l 21  t12 + l 22  1  l 22 = a 22 − l 21  t12
a 23 = l 21  t13 + l 22  t 23  t 23 = (a 23 − l 21  t13 ) / l 22 (6.2.19)
a32 = l31  t12 + l32  1  l32 = a32 − l31  t12
a33 = l31  t13 + l32  t 23 + l33  1  l33 = a33 − l31  t13 − l32  t 23

b1 = l11  c1  c1 = b1 / l11
b2 = l 21  c1 + l 22  c 2  c 2 = (b2 − l 21  c1 ) / l 22 (6.2.20)
b3 = l31  c1 + l32  c 2 + l33  c3  c3 = (b3 − l31  c1 − l32  c 2 ) / l33

Elementele matricelor L, T şi C sunt obţinute succesiv.


Necunoscutele sistemului se obţin din ecuaţia matriceală T  X = C , adică:
 x1 + t12  x2 + t13  x3 = c1 ;

 x2 + t 23  x3 = c2 ; (6.2.21)
x = c ,
 3 3

începând cu ultima necunoscută şi terminând cu prima.


Formulele generale de calcul sunt:
j −1
li1 = ai1 , i = 1, n ; l ij = aij −  l ir  t rj , i  j , i = 2, n , j = 2, n ; (6.2.22)
r =1
i −1
t1 j = a1 j / a11 , t ij = (a ij −  l ir  t rj ) / l ii , i  j , i = 2, n , j = 2, n ; (6.2.23)
r =1
i −1
ci = (bi −  lir  cr ) / lii , i = 1, n ; (6.2.24)
r =1
n
xn = cn , xi = ci −  t ir  x r , i = n − 1, 1 . (6.2.25)
r =i +1

6.3. METODE ITERATIVE PENTRU REZOLVAREA


SISTEMELOR DE ECUAŢII LINIARE

6.3.1. Metoda Jacobi

Această metodă se mai numeşte şi metoda iteraţiilor simple.


Fie sistemul de ecuaţii liniare (6.2.1).
8
Se presupune că elementele aii  0 , i = 1, n şi det A  0 , unde A este
matricea coeficienţilor ecuaţiilor liniare ale sistemului.
Dacă se explicitează fiecare necunoscută a sistemului (6.2.1), în funcţie de
celelalte necunoscute, se obţine:
 x1 = (b1 − a12 x 2 − a13 x3 ... − a1 j x j − ... − a1n x n ) / a11 ;
 x = (b − a x − a x − ... − a x − ... − a x ) / a ;
 2 2 21 1 23 3 2j j 2n n 22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 x = (b − a x − a x − ... − a x − a x − ... − a x ) / a ; (6.3.1)
 i i i1 1 i2 2 i ,i −1 i −1 i ,i +1 i +1 2n n 22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 x n = (bn − a n1 x1 − a n 2 x 2 − ... − a nj x j − ... − a n.n −1 x n −1 ) / a nn .

Deci, dacă toate elementele de pe diagonala principală a matricei A sunt
diferite de zero, rezultă o metodă iterativă de forma:

xi( k +1) = (bi −  a ij  x (jk ) ) / a ii , i = 1, n , k  0 . (6.3.2)

Matriceal, sistemul (6.2.1) are forma:


A  X = b. (6.3.3)
Pentru determinarea unei relaţii matriceale de determinare iterativă a soluţiei
sistemului (6.3.3) se descompune matricea A în trei matrice, şi anume:
A =D−T−S, (6.3.4)
unde:
a11 0 0 ... 0 0 0 ... 0 0
0 a 22 0 ... 0 a 21 0 ... 0 0
D= 0 0 a33 ... 0 ; − T = a 31 a 32 ... 0 0 ;
... ... ... ... ... ... ... ... ... ...
0 0 0 ... a nn a n1 an2 ... a n,n −1 0
0 a12 a13 ... a1n
0 0 a 23 ... a 2n
− S = ... ... ... ... a1n . (6.3.5)
0 0 0 ... a n −1,n
0 0 0 ... 0

Prin introducerea relaţiei (6.3.4) în relaţia (6.3.3), se obţine:


(D − T − S)  X = b , (6.3.6)
9
sau:
D  X = (T + S)  X + b . (6.3.7)

Dacă se înmulţeşte relaţia (6.3.7), la stânga, cu D −1 se obţine:


X (k +1 ) = D −1 (T + S)  X ( k ) + D −1  b . (6.3.8)

Procesul iterativ, de determinare a soluţiei, se opreşte atunci când

X ( k +1) − X ( k )   , (6.3.9)

unde  este un număr pozitiv foarte mic.

6.3.2. Metoda Gauss-Seidel


(se cere doar demonstratia de la ora de curs)

Această metodă se mai numeşte şi metoda iteraţiilor succesive.


Dacă în metoda Jacobi se foloseau, în exclusivitate, componentele vectorului
X la determinarea componentelor vectorului X (k +1) , în metoda Gauss-Seidel,
(k )

la calculul componentelor xi( k +1) , se folosesc şi componentele x (jk +1) , cu i  j ,


i = 1, n , j = 1, n − 1 . În acest caz, relaţia de calcul este de forma:
i −1 n
x i( k +1) = (bi −  aij  x (jk +1) −  aij  x (jk ) ) / aii , i = 1, n , k  0 . (6.3.11)
j =1 j =i +1

Relaţia matriceală este de forma:


(D − T)  X ( k +1) = S  X ( k ) + b , k  0 , (6.3.12)

unde matricele D, T şi S sunt cele cunoscute de la metoda Jacobi.


Dacă det(D − T)  0 (unde (D − T) este o matrice inferior triunghiulară), se
înmulţeşte relaţia (6.3.11), la stânga, cu ( D − T) −1 , şi se obţine:

( X ( k +1) = (D − T) −1  S  X ( k ) + (D − T) −1 b . (6.3.13)

Matricea P = (D − T) −1  S se numeşte matricea Gauss-Seidel asociată


matricei A, din sistemul (6.2.1). În acest caz, soluţia sistemului este de forma:
( X ( k +1) = P  X ( k ) + (D − T) −1 b . (6.3.14)
1

7. DIFERENŢE FINITE
7.1. INTRODUCERE

Diferenţele finite sunt des utilizate în calculul numeric. Astfel, în cazul în


care o funcţie este dată tabelar şi se cere să se calculeze derivata sau integrala
acestei funcţii, se apelează la formule ce folosesc diferenţele finite. Chiar şi
funcţiile date analitic, dar a căror expresii sunt foarte complicate, se derivează
sau se integrează numeric. Majoritatea formulelor de aproximare a funcţiilor
prin interpolare au la bază, de asemenea, diferenţele finite. Unele metode de
integrare a ecuaţiilor diferenţiale folosesc cu precădere diferenţele finite.

7.2. DIFERENŢE FINITE PROGRESIVE (pozitive, la dreapta, înainte)

Fie f : [a, b]  R şi reţeaua de puncte (noduri) x0 , x1 ,, xn presupuse


echidistante, pasul h al reţelei fiind constant ( h  xi 1  xi ).
Expresia:
f ( x)  f ( x  h)  f ( x) , (7.2.1)

poartă numele de diferenţă finită progresivă de ordinul întâi a funcţiei f (x) .


Diferenţa finită progresivă de ordinul doi este:

2 f ( x)   (f ( x))  f ( x  h)  f ( x) 
(7.2.2)
 f ( x  2h)  2 f ( x  h)  f ( x )

Procedând în mod analog, se găseşte diferenţa finită progresivă de ordinul n,


care are forma:

n f ( x)  (n1 f ( x))  n1 f ( x  h)  n1 f ( x) 


 f ( x  nh)  C n1 f ( x  (n  1)h)  C n2 f ( x  (n  2)h)    (7.2.3)
 (1) k C nk f ( x  (n  k )h)    (1) n f ( x)

Formula (7.2.3), de calcul a diferenţei finite progresive de ordinul n, poate fi


scrisă şi sub formele:
n
n f ( x)   (1) k Cnk f ( x  (n  k )h) ; (7.2.4)
k 0
n
n f ( x)   (1) nk Cnk f ( x  kh) . (7.2.4’)
k 0
2
Dacă funcţia este dată numeric, adică se cunosc valorile y0 , y1 ,, y n în
nodurile x0 , x1 ,, xn , atunci au loc relaţiile:
yi  yi 1  yi ;
2 yi  yi  2  2 yi 1  yi ;
 (7.2.5)
n
n yi   (1) k C nk yi  ( nk )
k 0
În tabelul 7.2.1 se prezintă diferenţele finite progresive pentru cinci noduri
consecutive, începând cu nodul i.
Tabelul 7.2.1
Nr. y y 2 y 3 y 4 y
nod
i yi yi 2 y i 3 y i 4 y i
i 1 yi 1 yi 1 2 y 3 y i 1 i 1
i2 yi  2 yi  2  yi  2
2

i3 y i 3 yi 3
i4 yi  4

Pentru n valori ale funcţiei, numărul diferenţelor finite progresive de ordinul


unu este (n-1), al diferenţelor finite de ordinul doi este (n-2), al diferenţelor
finite de ordinul trei este (n-3), ş.a.m.d., după cum se observă din tabelul 7.2.2.
Tabelul 7.2.2
y  2 3 4
1 1 n 2n-2 3n-5
2 2 n+1 2n-1 3n-4
3 3 n+2 2n 3n-3
4 4 n+3 2n+1 3n-2
    
    4n-11
  2n-5 3n-7 4n-10
n-3 n-3 2n-4 3n-6
n-2 n-2 2n-3
n-1 n-1
n
Numărul
diferenţelor
finite n-1 n-2 n-3 n-4
progresive
(pe coloană)
3

7.3. DIFERENŢE FINITE REGRESIVE (negative, la stânga, înapoi)

Expresia:
f ( x)  f ( x)  f ( x  h) , (7.3.1)

poartă numele de diferenţă finită regresivă de ordinul întâi a funcţiei f (x) .


Diferenţa finită regresivă de ordinul doi este:

 2 f ( x)  (f ( x))  f ( x)  f ( x  h) 
(7.3.2)
 f ( x )  2 f ( x  h)  f ( x  2h)

Procedând în mod analog, se găseşte diferenţa finită progresivă de ordinul n,


care are forma:
 n f ( x)   ( n1 f ( x))   n1 f ( x)   n1 f ( x  h) 
 f ( x)  C n1 f ( x  h)  C n2 f ( x  2h)  , (7.3.3)
 (1) k C nk f ( x  kh)  , (1) n f ( x  nh)

Relaţia (7.3.3) poate fi scrisă şi sub formele:


n
 n f ( x)   (1) k Cnk f ( x  kh) ; (7.3.4)
k 0
n
 n f ( x)   (1) nk Cnk f ( x  (n  k )h) . (7.3.4’)
k 0

În cazul în care funcţia este dată numeric, diferenţele finite regresive sunt:

y i  yi  yi 1 ;
 2 yi  yi  2 yi 1  yi  2 ;
 (7.3.5)
n
 n yi   (1) k C nk yi ( nk )
k 0

În tabelul 7.3.1 se prezintă diferenţele finite regresive pentru cinci noduri


consecutive.
Pentru calculul diferenţelor finite regresive se foloseşte procedura DIFPR, dar
rezultatele se interpretează conform tabelului 7.3.2.

Tabelul 7.3.1
4
Nr. y y 2 y 3 y 4 y
nod
i4 yi  4
i3 y i 3  y i 3
i2 yi  2 yi 2  2 yi  2
i 1 yi 1 yi 1  2 yi 1  3 yi 1
i yi y i  2 yi  3 yi  4 yi
Tabelul 7.3.2
y  2 3 4
1
2 1
3 2 n
4 3 n+1 2n-2
 4 n+2 2n-1 3n-5
   2n 3n-4
    3n-3
    
n-2 n-3 2n-5 3n-8 4n-12
n-1 n-2 2n-4 3n-7 4n-11
n n-1 2n-3 3n-6 4n-10
Numărul
diferenţelor
n-1 n-2 n-3 n-4
finite regresive
(pe coloană)

7.4. DIFERENŢE FINITE CENTRALE

Diferenţa finită centrală de ordinul unu a funcţiei f (x) are forma:

f ( x)  f ( x  h)  f ( x  h) (7.4.1)
Diferenţa finită centrală de ordinul doi este:
 2 f ( x)  (f ( x))  f ( x  h)  f ( x  h) 
(7.4.2)
 f ( x  2h)  2 f ( x )  f ( x  2h)

În mod analog, se determină diferenţa finită centrală de ordinul n, care are


forma:
5
 n f ( x)  ( n1 f ( x))   n1 f ( x  h)   n1 f ( x  h) 
 f ( x  nh)  C n1 f ( x  (n  2)h)  C n2 f ( x  (n  4)h)    (7.4.3)
 (1) k C nk f ( x  (n  2k )h)    (1) n f ( x  nh)

Relaţia (7.4.3) se scrie şi sub formele:


n
 n f ( x)   (1) k Cnk f ( x  (n  2k )h) ; (7.4.4)
k 0
n
 n f ( x)   (1) nk Cnk f ( x  (2k  n)h) . (7.4.4’)
k 0

În tabelul 7.4.1 se prezintă diferenţele finite centrale pentru un număr de 7


noduri.
Tabelul 7.4.1
Nr. y y  2
y  3
y
nod
i 3 y i 3
i2 yi  2 yi 2
i 1 yi1 yi 1  2 yi 1
i yi y i  yi
2
 3 yi
i 1 yi1 yi 1  2 y i 1
i2 yi  2 y i  2
i3 y i 3

Din tabelul 7.4.1, se observă că pentru n valori ale funcţiei, numărul


diferenţelor finite centrale de ordinul unu este mai mic cu două unităţi decât
numărul nodurilor, cel al diferenţelor finite centrale de ordinul doi este mai mic
cu 4 unităţi decât cel al nodurilor ş.a.m.d.
1

8. APROXIMAREA FUNCŢIILOR
8.1. INTRODUCERE

Prin aproximarea unei funcţii y = f (x) , se înţelege înlocuirea acesteia cu o


altă funcţie convenabilă F (x) . Această operaţie se realizează atunci când funcţia
f (x) este greu de calculat (prin derivare sau integrare), iar funcţia F (x) are o
expresie mai simplă, convenabilă calculului numeric. Aproximarea funcţiilor se
face şi atunci când funcţia f (x) este obţinută grafic sau din experimentări şi se
cere imaginea analitică a acesteia.
La baza aproximării funcţiilor stau mai multe principii, şi anume:
- principiul interpolării;
- principiul celor mai mici pătrate (minipătrat Gauss);
- principiul maximelor minime (minimax Cebîşev).

8.2. APROXIMAREA FUNCŢIILOR PRIN INTERPOLARE

Fie y = f (x) , cu f : [a, b] → R , pentru care se cunosc valorile y 0 , y1 ,  , y n


în nodurile x0 , x1 ,  , xn . Se cere determinarea unei funcţii analitice F (x) ,
destul de simplă, care să aproximeze funcţia f (x) . Funcţia F (x) fiind imaginea
analitică a funcţiei f (x) , operaţia de aproximare poartă numele de interpolare şi
nu are soluţie unică deoarece prin (n+1) puncte: ( x0 , y 0 ), ( x1 , y1 ),  , ( xn , y n ) ,
se pot trasa o infinitate de curbe.
De regulă, pentru funcţia F (x) se foloseşte o combinaţie liniară de funcţii
simple, adică un polinom de funcţii de forma:
F ( x) = a0 F0 ( x) + a1 F1 ( x) +  + an Fn ( x) . (8.2.1)

Acest polinom de funcţii se particularizează în:


- polinom de puteri:
P( x) = a0 + a1 x + a2 x 2 +  + an x n , (8.2.2)

- polinom trigonometric:
2
T ( x) = a0 + a1 cos x + a2 cos 2 x +  + an cos nx +
(8.2.3)
+ b1 sin x + b2 sin 2 x +  + bn sin nx,

- polinom de exponenţiale reale:

E ( x) = a0 + a1e x + a 2 e 2 x +  + a n e nx +
(8.2.4)
−x −2 x − nx
+ b1e + b2 e +  + an e ,

- polinom de exponenţiale complexe:

Z ( x) = a 0 + a1e xi + a 2 e 2 xi +  + a n e nxi +
(8.2.5)
+ b1e − xi + b2 e −2 xi +  + a n e −nxi ,

- polinom de funcţii speciale: Legendre, Laguere, Hermite, Cebîşev.

8.2.2. Interpolarea liniară

Pentru o reţea de noduri x0 , x1 ,  , xn considerate distincte, presupunem


cunoscute valorile y 0 , y1 ,  , y n . Având în vedere că funcţia este dată tabelar, nu
putem determina valoarea funcţiei într-un punct al cărui abscisă diferă de
nodurile considerate, decât dacă apelăm la o formulă de interpolare. Se va
începe studiul aproximării funcţiilor prin interpolare cu cea mai simplă metodă,
şi anume: interpolarea liniară.
Din setul de puncte date, considerăm doar două puncte, şi anume: A( xi , yi )
şi B( xi +1 , yi +1 ) (fig. 8.2.1).
y

yi+1 B

y M

yi A

o
xi x xi+1 x
Fig. 8.2.1. Imaginea interpolării liniare
3
Pentru a determina valoarea y , într-un punct x ( xi  x  xi +1 ), vom
considera ecuaţia dreptei ce trece prin cele două puncte A şi B, şi anume:
y − yi
y = y i + i +1 ( x − xi ) . (8.2.9)
xi +1 − xi

Pentru x = x , rezultă:
yi +1 − yi
y = yi + ( x − xi ) .
xi +1 − xi

Se demonstrează [11] că eroarea de trunchiere în nodul considerat x ,


folosind interpolarea liniară, este:
f ( x )
ET ( x ) = ( x − xk )( x − xk +1 ) , (8.2.10)
2

8.2.3. Interpolarea pătratică

Deoarece, în general, funcţiile de interpolat diferă de o funcţie liniară, se


procedează la interpolarea polinomială, cu gradul polinomului mai mare sau
egal cu doi. In cazul interpolării pătratice, se consideră trei puncte consecutive
A( xi −1 , yi −1 ) , B( xi , yi ) şi C ( xi +1 , yi +1 ) (fig. 8.2.2) şi se presupune că prin cele
trei puncte trebuie să treacă graficul unei funcţii de forma:
p( x) = a0 + a1 x + a2 x 2 . (8.2.11)

unde x  ( xi −1 , xi +1 ) .
y

C (x i+1, yi+1)
A(xi-1, yi-1)

M
B(x i , yi)

o
x x
Fig. 8.2.2. Imaginea interpolării pătratice
4
Pentru determinarea coeficienţilor a0 , a1 şi a 2 , se înlocuieşte x, din relaţia
(8.2.11), succesiv cu xi −1 , x i , xi +1 şi se obţin ecuaţiile:

y i −1 = a 0 + a1 xi −1 + a 2 xi2−1 ; (8.2.12)
yi = a0 + a1 xi + a 2 xi2 ; (8.2.13)
y i +1 = a 0 + a1 xi +1 + a 2 xi2+1 . (8.2.14)

Relaţiile (8.2.12), (8.2.13) şi (8.2.14) formează un sistem de trei ecuaţii


liniare în necunoscutele a0 , a1 şi a 2 , sistem ce se poate rezolva analitic sau
numeric (de exemplu, prin metoda eliminării gaussiene).

8.2.4. Polinoame de interpolare Newton


8.2.4.1. Polinom de interpolare Newton dreapta
(cu diferenţe finite progresive)

Fie o funcţie f : [a, b] → R , pentru care se cunosc valorile yi = f ( xi ) în


nodurile x0 , x1 ,  , xn presupuse echidistante, adică: xi = xo + ih , i = 1, n , h
fiind pasul reţelei. Se pune problema determinării unui polinom de grad mai mic
sau egal cu n, care să satisfacă condiţiile de interpolare:

Pn ( xi ) = yi , i = 0, n (8.2.15)

Pentru aproximarea funcţiei f, se va considera un polinom de forma:


N nd ( x) = a0 + a1 ( x − x0 ) + a 2 ( x − x0 )( x − x1 ) + 
(8.2.16)
+ a n ( x − x0 )( x − x1 ) ( x − xn−1 )

Folosind condiţiile de interpolare (8.2.15) şi expresia (8.2.16), se obţine:


- pentru x = x0 , a0 = y0 ;
- pentru x = x1 , a0 + a1 ( x1 − x0 ) = y1 ;
- pentru x = x2 , a0 + a1 ( x2 − x0 ) + a2 ( x2 − x0 )( x2 − x1 ) = y2 ;
…………………………………………………………………
a0 + a1 ( xn − x0 ) + a2 ( xn − x0 )( xn − x1 ) + 
- pentru x = xn , ;
+ an ( xn − x0 )( xn − x1 ) ( xn − xn−1 ) = y n

Nodurile fiind echidistante, se pot scrie relaţiile:


a0 = y 0 ; (8.2.17)
a0 + a1h = y1 ; (8.2.18)
a0 + a1 2h + a2 2h 2 = y 2 ; (8.2.19)
5
……………………………………………
a0 + a1nh + a 2 n(n − 1)h 2 +  + a n n!h n = y n ; (8.2.20)

Din relaţia (8.2.17) se obţine coeficientul a 0 , şi anume:


a0 = y 0 .
Înlocuind valoarea lui a 0 în relaţia (8.2.18), se obţine:
y − y0 y0
a1 = 1 = . (8.2.21)
h h
În mod analog se obţin şi ceilalţi coeficienţi, şi anume:
2 y0 n y0
a2 = 2
,  , a n = n
. (8.2.22)
2!h n!h
Prin înlocuirea valorilor coeficienţilor din expresiile (8.2.17), (8.2.21) şi
(8.2.22), în relaţia (8.2.16), se obţine:

y0 2 y0
N nd ( x) = y0 + ( x − x0 ) + ( x − x0 )( x − x1 ) + 
1!h 2!h 2
(8.2.23)
n y0
+ ( x − x0 )( x − x1 ) ( x − xn−1 )
n!h n
Pentru întocmirea programului de calcul se face o schimbare de notaţie, şi
anume y1 = y0 . În acest caz, polinomul (8.2.23) devine:

y1 2 y1
N nd ( x) = y1 + ( x − x1 ) + ( x − x1 )( x − x 2 ) + 
1!h 2!h 2
n−1 y1
+ n −1
( x − x1 )( x − x 2 )  ( x − x n−1 ) = (8.2.23’)
(n − 1)!h
n −1 k ( x − xi )
= y1 +  k y1 
k =1 i =1 ih

Polinomul Newton de interpolare cu diferenţe finite la dreapta este avantajos


atunci când se cere să se aproximeze valoarea funcţiei pentru un x apropiat de
x0, deoarece eroarea este mai mică.

8.2.4.2. Polinom de interpolare Newton stânga


(cu diferenţe finite regresive)

Polinomul Newton de interpolare stânga are forma:


6
N ns ( x) = b0 + b1 ( x − xn ) + b2 ( x − xn )( x − xn−1 ) + 
(8.2.25)
+ bn ( x − xn )( x − xn−1 ) ( x − x1 )
Pentru determinarea coeficienţilor b0 , b1 ,  , bn se folosesc condiţiile de
interpolare:
N ns ( xi ) = yi , i = n, 0 . (8.2.26)

Astfel:
- pentru x = xn , b0 = yn ;
- pentru x = xn−1 , b0 + b1 ( xn−1 − xn ) = y n−1 ;
- pentru x = xn−2 , b0 + b1 ( xn−2 − xn ) + b2 ( xn−2 − xn )( xn−2 − xn−1 ) = yn−2 ;
…………………………………………………………………
b + b ( x − xn ) + b2 ( xo − xn )( x0 − xn−1 ) + 
- pentru x = x0 , 0 1 0 . (8.2.27)
+ bn ( x0 − xn )( x0 − xn−1 ) ( x0 − x1 ) = yn

Nodurile fiind echidistante, din relaţiile (8.2.27) se obţin coeficienţii b0 , b1 , …,


bn , de forma:

b0 = yn ;
y − y n−1 y n
b1 = n = ; (8.2.28)
h h
y − 2 yn−1 + yn−2  2 yn  n yn
b2 = n 2
= 2
; …; bn = n
.
2!h 2!h n!h
După înlocuiri în relaţia (8.2.25), se obţine:

y n  2 yn
N ns ( x) = yn + ( x − xn ) + ( x − xn )( x − xn−1 ) + 
1!h 2!h 2
(8.2.29)
 yn
n
+ ( x − xn )( x − xn−1 ) ( x − x1 )
n!h n
Polinomul Newton de interpolare stânga se recomandă a fi folosit pentru valori
ale lui x apropiate de nodul xn, în această zonă eroarea fiind mai mică.

8.2.5. Polinoame de interpolare Gauss


8.2.5.1. Polinom de interpolare Gauss dreapta (de prima speţă)

Fie f : [a, b] → R , pentru care se cunosc valorile yi = f ( xi ) în punctele


x−n , x−n+1 ,  , x−1 , x0 , x1 ,  , xn−1 , xn din intervalul [a, b] . Punctele sunt
considerate echidistante, iar pasul reţelei este h. Pentru aproximarea funcţiei f,
7
se construieşte un polinom de interpolare pornind de la un punct x 0 interior
intervalului [a, b] , care conduce la o eroare minimă de interpolare pentru
x  [ a, b] .
Polinomul Gauss de interpolare de prima speţă este de forma:

G2dn ( x) = c0 + c1 ( x − x0 ) + c2 ( x − x0 )( x − x1 ) + c3 ( x − x0 )( x − x1 )( x − x−1 ) +
+ c4 ( x − x0 )( x − x1 )( x − x−1 )( x − x2 ) + 
+ c2 n−1 ( x − x0 )( x − x1 )( x − x−1 )( x − x2 ) ( x − x−n+1 ) +
+ c2 n ( x − x0 )( x − x1 )( x − x−1 )( x − x2 ) ( x − x−n+1 )( x − xn )
(8.2.31)
sau
G2dn ( x) = c0 + c1 ( x − x0 ) + c 2 ( x − x0 )( x − x1 ) + c3 ( x − x −1 )( x − x0 )( x − x1 ) +
+ c 4 ( x − x −1 )( x − x0 )( x − x1 )( x − x 2 ) + 
+ c 2 n−1 ( x − x−n+1 )( x − x −n+ 2 )  ( x − x−1 )( x − x0 )( x − x1 )  ( x − xn−1 ) +
+ c 2 n ( x − x −n+1 )( x − x−n+ 2 )  ( x − x −1 )( x − x0 )( x − x1 )  ( x − x n ) +
(8.2.32)
Pentru determinarea constantelor c0 , c1 ,  , c2n se pun condiţiile de
interpolare:
G2dn ( xi ) = yi , i = − n, n .

Astfel:
- pentru x = x0 , c0 = y0 ;
- pentru x = x1 , c0 + c1h = y1 ;
- pentru x = x−1 , c0 − c1h + c 2 2h 2 = y −1 ;
- pentru x = x2 , c0 + c1 2h + c2 2h 2 + c3 6h 3 = y 2 ;
……………………………………………………
Folosind relaţiile anterioare, se obţin coeficienţii c0 , c1 ,  , c2n , după cum
urmează:
c0 = y 0 ;
y − y 0 y 0
c1 = 1 = ; (8.2.33)
h h
y1 − 2 y0 + y −1 2 y −1 2 n−1 y −n+1 2 n y −n
c2 = = ; …; c2 n−1 = ; c2n = .
2!h 2 2!h 2 (2n − 1)!h 2 n−1 (2n)!h 2 n
După înlocuiri în relaţia (8.2.32), se obţine:
8
y 0 2 y −1
G2dn ( x) = y0 + ( x − x0 ) + ( x − x0 )( x − x1 ) +
1!h 2!h 2
3 y −1 4 y −2
+ ( x − x−1 )( x − x0 )( x − x1 ) + ( x − x−1 )( x − x0 )( x − x1 )( x − x2 ) + 
3!h 3 4!h 4
2 n−1 y −n+1
+ ( x − x−n+1 )( x − x−n+ 2 ) ( x − x−1 )( x − x1 )( x − x2 ) ( x − xn−1 ) +
(2n − 1)!h 2 n−1
2 n y −n
+ ( x − x−n+1 )( x − x−n+ 2 ) ( x − x−1 )( x − x1 )( x − x2 ) ( x − xn−1 )( x − xn )
(2n)!h 2 n
(8.2.34)
Dacă se face schimbarea de variabilă t = ( x − x0 ) / h , rezultă:
t t (t − 1) 2 t (t 2 − 1) 3
G2dn ( x0 + th) = y 0 + y 0 +  y −1 +  y −1 +
1! 2! 3!
t (t 2 − 1)(t − 2) 4 t (t 2 − 1)(t 2 − 2 2 ) 5
+  y −2 +  y −2 +  +
4! 5!
(8.2.35)
t (t 2 − 1)(t 2 − 2 2 )  (t 2 − (n − 1) 2 ) 2 n−1
+  y −n+1 +
(2n − 1)!
t (t 2 − 1)(t 2 − 2 2 )  (t 2 − (n − 1) 2 )(t − n) 2n
+  y −n
(2n)!

8.2.5.2. Polinom de interpolare Gauss stânga (de speţa a doua)

Polinomul Gauss de interpolare de speţa a doua este de forma:

G2sn ( x) = c0 + c1 ( x − x0 ) + c 2 ( x − x −1 )( x − x0 ) + c3 ( x − x −1 )( x − x0 )( x − x1 ) +
+ c 4 ( x − x −2 )( x − x −1 )( x − x0 )( x − x1 ) + 
+ c 2 n−1 ( x − x−n+1 )( x − x −n+ 2 )  ( x − x−1 )( x − x0 )( x − x1 )  ( x − xn−1 ) +
+ c 2 n ( x − x −n )( x − x−n+1 )  ( x − x −1 )( x − x0 )( x − x1 )  ( x − x n−1 )
(8.2.36)
Pentru determinarea constantelor c0 , c1 ,  , c2n , se pun condiţiile de
interpolare:
G2sn ( xi ) = yi , i = − n, n

Astfel:
- pentru x = x0 , c0 = y0 ;
- pentru x = x−1 , c0 − c1h = y −1 ;
9
- pentru x = x1 , c0 + c1h + c 2 2h 2 = y1 ;
- pentru x = x−2 , c0 − c1 2h + c2 2h 2 − c3 6h 3 = y −2 ;
……………………………………………………
Folosind relaţiile anterioare, se obţine:
c0 = y 0 ;
y − y −1 y −1
c1 = 0 = ;
h h
y1 − 2 y0 + y −1 2 y −1 2 n−1 y −n 2 n y −n
c2 = = ; …; c2 n−1 = ; c2n = .
2!h 2 2!h 2 (2n − 1)!h 2 n−1 (2n)!h 2 n
După înlocuiri în relaţia (8.2.36), se obţine:
y −1 2 y −1
G2n ( x) = y 0 +
s
( x − x0 ) + ( x − x −1 )( x − x0 ) +
1!h 2!h 2
3 y −2 4 y −2
+ ( x − x −1 )( x − x0 )( x − x1 ) + ( x − x −2 )( x − x −1 )( x − x0 )( x − x1 ) + 
3!h 3 4!h 4
2 n−1 y −n
+ 2 n −1
( x − x −n+1 )( x − x −n+ 2 )  ( x − x −1 )( x − x1 )( x − x 2 )  ( x − x n−1 ) +
(2n − 1)!h
2 n y −n
+ ( x − x −n )( x − x −n+ 2 )  ( x − x −1 )( x − x1 )( x − x 2 )  ( x − x n−1 )
(2n)!h 2 n
(8.2.37)
Dacă se face schimbarea de variabilă t = ( x − x0 ) / h , rezultă:

t t (t + 1) 2 t (t 2 − 1) 3
G2sn ( x0 + th) = y 0 + y −1 +  y −1 +  y −2 +
1! 2! 3!
t (t 2 − 1)(t + 2) 4 t (t 2 − 1)(t 2 − 2 2 ) 5
+  y −2 +  y −3 +  +
4! 5!
(8.2.38)
t (t 2 − 1)(t 2 − 2 2 )  (t 2 − (n − 1) 2 ) 2 n−1
+  y −n +
(2n − 1)!
t (t 2 − 1)(t 2 − 2 2 )  (t 2 − (n − 1) 2 )(t + n) 2 n
+  y −n
(2n)!

8.2.6. Polinom de interpolare Lagrange

Fie f : [a, b] → R , şi x0 , x1 ,  , xn (n+1) puncte din intervalul [a, b] , pentru


care se cunosc valorile yi = f ( xi ) . Punctele sunt considerate echidistante, iar
pasul reţelei este h. Pentru aproximarea funcţiei f, se construieşte un polinom de
10
interpolare de forma:
Ln ( x) = y0b0 ( x) + y1b1 ( x) +  + yn bn ( x) , (8.2.39)

unde b0 ( x), b1 ( x),  , bn ( x) reprezintă polinoame de gradul n. Condiţiile de


interpolare sunt:

Ln ( x) = yi , i = 0, n . (8.2.40)

Pentru a obţine forma polinoamelor b0 ( x), b1 ( x),  , bn ( x) , se pun condiţiile


de interpolare (8.2.40), şi anume:
y0b0 ( x0 ) + y1b1 ( x0 ) +  + yn bn ( x0 ) = y0 ;
y0b0 ( x1 ) + y1b1 ( x1 ) +  + yn bn ( x1 ) = y1 ;
…………………….
y0b0 ( xn ) + y1b1 ( xn ) +  + yn bn ( xn ) = yn .

Prin identificare, rezultă:


b0 ( x0 ) = 1 ; b1 ( x0 ) = 0 ; bn ( x0 ) = 0 ;
b0 ( x1 ) = 0 ; b1 ( x1 ) = 1; bn ( x1 ) = 0 ; (8.2.41)
………………………….
b0 ( xn ) = 0 ; b1 ( xn ) = 0 ; bn ( xn ) = 1 .

Din relaţiile (8.2.41), rezultă că fiecare dintre polinoamele


b0 ( x), b1 ( x),  , bn ( x) are n zerouri distincte, ceea ce înseamnă că un polinom
oarecare, bk (x) , are forma:

bk ( x) = Ak ( x − x0 )( x − x1 ) ( x − xk −1 )( x − xk +1 ) ( x − xn ) . (8.2.42)

Constantele Ak se determină din condiţiile: bk ( xk ) = 1 , k = 0, n , şi sunt de


forma:
1
Ak = . (8.2.43)
( xk − x0 )( xk − x1 ) ( xk − xk −1 )( xk − xk +1 ) ( xk − xn )
Dacă se înlocuiesc relaţiile (8.2.42) şi (8.2.43) în relaţia (8.2.39), se obţine
polinomul Lagrange de interpolare, de forma:
n ( x − x0 )( x − x1 ) ( x − xk −1 )( x − xk +1 ) ( x − xn )
Ln ( x) =  yk ( x . (8.2.44)
k =0 k − x0 )( xk − x1 )  ( xk − xk −1 )( xk − xk +1 )  ( xk − xn )

Forma polinomului Lagrange se simplifică dacă se face notaţia:


wn ( x) = ( x − x0 )( x − x1 ) ( x − xk −1 )( x − xk +1 ) ( x − xn ) (8.2.45)
11
Derivata funcţiei wn (x) este:

wn ( x) = ( x − x1 ) ( x − xk −1 )( x − xk +1 ) ( x − xn ) +
+ ( x − x0 )( x − x2 ) ( x − xk −1 )( x − xk +1 ) ( x − xn ) +  (8.2.46)
+ ( x − x0 )( x − x1 ) ( x − xk −1 )( x − xk +1 ) ( x − xn ) − 1

Dacă se înlocuieşte x cu x k , se obţine:

wn ( x) = ( xk − x0 )( xk − x1 ) ( xk − xk −1 )( xk − xk +1 ) ( xk − xn ) , (8.2.47)

astfel că polinomul de interpolare Lagrange devine:

n w ( x)
Ln ( x) =  yk ( x − x n)w ( x . (8.2.48)
k =0 k n k)
Regresie liniara - exemplu rezolvat:

În urma testării acuităţii vizuale a unui grup de persoane de diferite vârste, care au permis de
conducere auto, a rezultat ca distanţele medii până la care văd suficient de bine şoferii din anumite
grupuri de vârstă sunt următoarele:

Vârstă medie (xi) Distanţa în metri (yi)


20 590
40 460
60 365
70 390
80 350

Reprezentate grafic, valorile respective arată astfel:

700

600

500
distanta

400

300

200

100

0
0 10 20 30 40 50 60 70 80 90
varsta

Folosind regresia liniară, să se determine distanţa medie până la care văd şoferii cu vârsta medie de
50 ani.

-------------------------
În cazul regresiei liniare, ecuaţia dreptei care trece printre puncte este de forma:

distanţa = a0 + a1∙vârsta,

unde cei doi coeficienti se calculează cu relaţiile:


n n n n n n n
 yi  xi2 −  xi  xi yi n  xi y i −  xi  y i
a0 = i =1 i =1 i =1 i =1 i =1 i =1 i =1
2 a1 =
n
  n
n 
2
n xi2 −   xi 
n
i =1  i =1  n xi2 −   xi 
i =1  i =1 
În aceste ecuaţii, xi si yi sunt datele experimentale (v. primul tabel), iar n = 5 reprezintă numărul de
puncte. Se calculează sumele din cele două relaţii matematice:

∑ 𝑦𝑖 = 590 + 460 + 365 + 390 + 350 = 2155

∑ 𝑥𝑖 = 20 + 40 + 60 + 70 + 80 = 270
2
⇒ (∑ 𝑥𝑖 ) = 72900

∑ 𝑥𝑖2 = 400 + 1600 + 3600 + 4900 + 6400 = 16900

∑ 𝑥𝑖 𝑦𝑖 = (20 ⋅ 590) + (40 ⋅ 460) + (60 ⋅ 365) + (70 ⋅ 390) + (80 ⋅ 350) = 107400

Înlocuind în cele două ecuaţii, se obţin următoarele valori:

a0 = 639,784
a1 = −3,866

Aşadar, ecuatia dreptei de regresie este:

𝑑𝑖𝑠𝑡𝑎𝑛𝑡𝑎 = 639,784 − 3,866 ⋅ 𝑣𝑎𝑟𝑠𝑡𝑎

Prin urmare, acuitatea vizuala a soferilor cu varsta de 50 ani se află în jurul valorii de:

𝑑𝑖𝑠𝑡𝑎𝑛𝑡𝑎 = 639,784 − 3,866 ⋅ 50 = 𝟒𝟒𝟔(𝑚)

Dacă se reprezintă grafic dreapta de regresie, se observă că trece printre puncte:

700

600

500
distanta (y)

400

300
y = -3.8664 x + 639.78
200
R² = 0.8957
100

0
0 20 40 60 80 100
varsta (x)

Toate aceste calcule pot fi făcute folosind diverse programe de calcul. De exemplu, graficul anterior
a fost facut în Excel, care are capacitatea de a identifica ecuatia de regresie şi de a o afişa pe grafic.
163
8.3. APROXIMAREA FUNCŢIILOR
PRIN METODA CELOR MAI MICI PĂTRATE
8.3.1. INTRODUCERE
În cazul aproximării funcţiilor numerice prin polinoame de interpolare,
graficul funcţiei de aproximare trece prin toate punctele impuse. Deoarece valorile
numerice ( xi , yi ) , de cele mai multe ori, reprezintă rezultatele unor experienţe
fizice, aceste valori conţin erori inerente. Erorile inerente din datele iniţiale pot
conduce la obţinerea unor funcţii analitice care nu redau cu fidelitate fenomenul
în cauză.
Fie de exemplu un set de valori obţinute experimental, a cărui reprezentare
grafică (curba punctată) este prezentată în figura 8.3.1. Din figura 8.3.1, se
observă că punctele A şi B nu se supun aceleiaşi reguli ca şi celelalte puncte. De
aceea, funcţia analitică al cărei grafic ar trece prin toate punctele considerate ar
conduce la mari variaţii ale valorilor derivatei de ordinul întâi, valori calculate în
nodurile respective. Deoarece astfel de variaţii nu sunt caracteristice fenomenelor
tehnice, se procedează la obţinerea unei funcţii analitice al cărei grafic nu trece
obligatoriu prin toate punctele considerate (curba continuă din figura 8.3.1), dar
care urmăreşte redarea cât mai fidelă a fenomenului.

Fig. 8.3.1. Ilustrarea unor date obţinute experimental

În continuare, se pune problema determinării unor funcţii analitice care să


aproximeze cât mai bine datele culese experimental.
Fie y = f (x ) , o formulă care stabileşte o relaţie de legătură între x şi y. Se
defineşte abaterea (eroarea) ca fiind diferenţa dintre valoarea adevărată y
(valoarea din tabel) şi valoarea aproximativă y , adică y − y . Se presupune, de
asemenea, că se cunosc n valori ale funcţiei tabelate.
164
Pentru determinarea funcţiei analitice de aproximare, y = f (x ) , este necesară
estimarea formei acesteia, astfel încât asemănarea dintre graficul funcţiei analitice
şi cel al funcţiei numerice să fie cât mai mare. Funcţia analitică poate fi:
polinomială, hiperbolică, exponenţială, geometrică, trigonometrică etc.

3 3

2 2

1 1

0 0
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
-1 -1

-2 -2

-3 -3
Fig. 8.3.2 Fig. 8.3.3

3 3

2 2

1 1

0 0
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
-1 -1

-2 -2

-3 -3

Fig. 8.3.4 Fig.8.3.5

1.2

1
5
0.8
4
0.6 3
0.4 2
0.2 1
0 0
0 1 2 3 0 2 4 6 8
-1
Fig. 8.3.6 Fig. 8.3.7
În figurile 8.3.2, …, 8.3.7, sunt prezentate câteva dintre funcţiile întâlnite
165
frecvent în toate domeniile de activitate, şi anume: funcţia putere, funcţia radical,
funcţia exponenţială, funcţia geometrică, funcţia hiperbolică şi funcţia
trigonometrică.
Coeficienţii funcţiei analitice, y , se determină din condiţia ca suma pătratelor
abaterilor ( y − y ) să fie minimă, adică :

( )2 .
n
S =  yi − y i (8.3.1)
i =1

Metoda de determinare a coeficienţilor funcţiei analitice, care foloseşte suma


pătratelor abaterilor, se numeşte metoda celor mai mici pătrate. Problema în cauză
a mai căpătat şi denumirea de regresie, avându-se în vedere determinarea funcţiei
analitice ca urmare a cunoaşterii valorilor tabelate.

8.3.2. Regresia liniară


Se presupun cunoscute valorile tabelate y1 , y 2 , ... , y n ale unei funcţii,
corespunzătoare nodurilor x1 , x 2 , ... , x n . Se presupune de asemenea că valorile
tabelate pot fi aproximate cu o funcţie liniară
y = a 0 + a1 x . (8.3.2)

Constantele a 0 şi a1 trebuie astfel determinate încât suma pătratelor abaterilor


să fie minimă, adică:
n
S =  ( yi − a0 − a1 xi )2 . (8.3.3)
i =1
Pentru ca S să fie minim, trebuie ca derivatele parţiale de ordinul întâi ale lui
S în raport cu necunoscutele a 0 şi a1 să fie egale cu zero, adică:

S n
=  2( yi − a 0 − a1 xi )(−1) = 0;
a 0 i =1
(8.3.4)
S n
=  2( yi − a 0 − a1 xi )(− xi ) = 0.
a1 i =1

Ordonând termenii, se obţine:


n  n
na0 +   xi a1 =  yi ;
 i =1  i =1
(8.3.5)
n  n  n
  xi a 0 +   xi2 a1 =  xi yi ,
 i =1   i =1  i =1

sau
166
n n
n  xi a0  yi
i =1  = ni =1 (8.3.5’)
n n
 xi  xi2 a1  xi y i
i =1 i =1 i =1

După rezolvarea sistemului (8.3.5’) rezultă:


n n n n n n n
 yi  xi2 −  xi  xi yi n  xi y i −  xi  y i
i =1 i =1 i =1 i =1 i =1 i =1 i =1
a0 = 2
; a1 = 2
. (8.3.6)
n   n n  n
n  xi2 −   xi  n xi2 −   xi 
i =1  i =1  i =1  i =1 
Soluţia ( a 0 , a1 ) există şi este unică atâta timp cât sunt tabelate două sau mai
multe valori ale lui x .
Înlocuind soluţia ( a 0 , a1 ) în ecuaţia dreptei, se obţine funcţia care
aproximează liniar datele iniţiale.
Pentru a stabili intensitatea legăturii dintre cele două mărimi x şi y, se
calculează coeficientul de corelaţie Pearson, dat de relaţia:
n
 ( yi − y i ) 2
i =1
r = 1− n
, (8.3.7)
 ( yi − y M ) 2

i =1
unde:
n
 yi
i =1
yM = .
n
Coeficientul r poate lua valori între 0 şi 1 şi se poate folosi inclusiv pentru
regresia neliniară.
Următoarea ecuaţie alternativă este folosită în cazul regresiei liniare, pentru
calculul coeficientului de corelaţie:
∑𝑛
1 (𝑥𝑖 −𝑥𝑀 )(𝑦𝑖 −𝑦𝑀 )
𝑟= ,
√ ∑𝑛 2 𝑛
1 (𝑥𝑖 −𝑥𝑀 ) ∑1 (𝑦𝑖 −𝑦𝑀 )
2

unde xM şi yM sunt valorile medii ale seriilor experimentale de date:


∑𝑛
1 𝑥𝑖 ∑𝑛
1 𝑦𝑖
𝑥𝑀 = 𝑦𝑀 =
𝑛 𝑛

Coeficientul de corelaţie r calculat cu cea de a doua ecuaţie poate lua valori


cuprinse între -1 şi 1. Valorile apropiate de 1 sau -1 arată o strânsă legătură între
167
variabilele x şi y. Valorile pozitive arată o corelaţie directă între cele două
variabile (atunci când una dintre variabile creşte, va creşte şi cealaltă variabilă),
iar valorile negative arată o corelaţie inversă între acestea (atunci când una dintre
variabile creşte, cealaltă scade). Figura de mai jos arată diverse valori ale
coeficientului de corelaţie pentru regresia liniară,

În această figură se observă că, în rândul de jos, coeficienţii de corelaţie au


valoarea zero, deşi este clar că există relaţii de dependenţă între cele două
variabile. Motivul constă în faptul că aceste relaţii de dependenţă sunt însă
neliniare şi nu pot fi caracterizate de coeficientul de corelaţie r calculat cu cea de
a doua formulă.
Pătratul coeficientului r calculat cu cea de a doua relaţie (r2) se numeşte
coeficient de determinare.

Exemplu de calcul
Fie datele din tabelul 8.3.2, obţinute experimental. Reprezentarea grafică a
funcţiei este dată în figura 8.3.8.
Tabelul 8.3.2
x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
y 1.1 1.4 1.2 1.6 1.4 1.8 1.5 1.9 1.7 2.1
2.5

2
y

1.5

1
0 0.2 0.4 0.6 0.8 1
x
Fig.8.3.8. Reprezentarea grafică a datelor obţinute experimental
168
Se cere să se determine expresia analitică a unei funcţii pentru aproximarea
datele experimentale, folosind metoda celor mai mici pătrate

Rezolvare
Din analiza valorilor prezentate în tabelul 8.3.2 şi a figurii 8.3.8, se constată
că datele obţinute experimental pot fi aproximate cu o dreaptă,
Programul principal de calcul este prezentat în tabelul 8.3.3.
Tabelul 8.3.3
% Program aproximarea_functiilor_metoda_cmmp_lin;
clear;
fismcmplin = fopen('fismcmplin.txt','w');
n = 10;
x = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
y = [1.1 1.4 1.2 1.6 1.4 1.8 1.5 1.9 1.7 2.1];
[a0,a1,kod] = mcmplin(n,x,y);
if kod > 0
fprintf('%s%i\n',' kod = ',kod);
return;
end
fprintf('%s%10.5f%s%10.5f\n',' a0 =',a0,' a1 =',a1);
fprintf(fismcmplin,'%s%10.5f%s%10.5f\r\n',' a0 =',a0,' a1 =',a1);
fprintf('\n');
fprintf(fismcmplin,'\r\n');
fprintf('%s\n',' poz x y y_lin');
fprintf(' =============================');
fprintf('\n');
fprintf(fismcmplin,'%s\r\n',' poz x y y_lin');
fprintf(fismcmplin,'%s\r\n',' =============================');
for i = 1 : n
y1(i) = a0+a1*x(i);
fprintf('%4i %8.3f %8.3f %8.3f\n',i,x(i),y(i),y1(i));
fprintf(fismcmplin,'%4i %8.3f %8.3f %8.3f\r\n',i,x(i),y(i),y1(i));
end
ym = 0; syypol = 0; syym = 0;
for i = 1 : n
ym = ym+y(i);
end
ym = ym/n;
for i = 1 : n
syypol = syypol+(y(i)-y1(i))*(y(i)-y1(i));
syym = syym+(y(i)-ym)*(y(i)-ym);
end
r = sqrt(1-syypol/syym);
fprintf('\n');
fprintf(fismcmplin,'\r\n');
fprintf('%s%8.3f\n',' r =',r);
fprintf(fismcmplin,'%s%8.3f\r\n',' r =',r);

figure(1)
plot(x,y,x,y,'k*','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y','fontsize',12);

figure(2)
plot(x,y,x,y,'k*',x,y1,x,y1,'k+','LineWidth',1.2);
169
xlabel('x','FontSize',12);
ylabel('y, y1','fontsize',12);

fclose(fismcmplin);
%____________________________________________________________

V alorile coeficienţilor funcţiei liniare sunt: a0 = 1.08000, a1 = 0.89091, iar


coeficientul de corelaţie Pearson are valoarea: r = 0.862.
În tabelul 8.3.4 se prezintă valorile funcţiei numerice date şi valorile functiei
de aproximare, în funcţie de abscisa sistemului de coordonate.

Tabelul 8.3.4
poz x y y_lin
===================
1 0.100 1.100 1.169
2 0.200 1.400 1.258
3 0.300 1.200 1.347
4 0.400 1.600 1.436
5 0.500 1.400 1.525
6 0.600 1.800 1.615
7 0.700 1.500 1.704
8 0.800 1.900 1.793
9 0.900 1.700 1.882
10 1.000 2.100 1.971

În figura 8.3.9 se prezintă cele două curbe: cea obţinută experimental (curba
y) şi cea de aproximare (curba y1 ).
2.5

2 ooo y
y, y1

+++ y1

1.5

1
0 0.2 0.4 0.6 0.8 1
x

Fig. 8.3.9. Reprezentarea grafică a datelor experimentale (curba y)


şi a celor de aproximare (curba y1)
170
8.3.3 Regresia polinomială
Se presupune că, după examinarea unui şir de date obţinute experimental, s-a
ajuns la concluzia că funcţia de aproximare y poate fi un polinom de gradul m
în x , adică:
y = am x m + am −1 x m −1 + ... + a1 x1 + a0 . (8.3.8)

Dacă în relaţia (8.3.8) se face substituţia: x = x i , rezultă:

y i = a m xim + a m−1 xim−1 + ... + a1 xi + a 0 . (8.3.9)

Determinarea coeficienţilor polinomului y i se face din condiţia ca suma


pătratelor abaterilor, d i = y i − y i , să fie minimă, adică:

( )
n 2
S =  d i2 =  y i − a m xim − a m −1 xim −1 − ... − a1 xi − a 0 , (8.3.10)
i =1
să fie minimă.
Pentru aceasta, trebuie ca derivatele parţiale ale lui S, în raport cu
necunoscutele a 0 , a1 ,..., a m , să fie egale cu zero, adică:

 n   n 2  n m n
 0  i  1  i  2
na +  x  a +  x  a + ... +   i  m  yi ;
 x  a =
  i = 1   i = 1   i =1  i =1
 n  n  n  n  n
  x i a 0 +   x i2 a1 +   xi3 a 2 + ... +   x im +1 a m =  x i y i ;
 i =1   i =1   i =1   i =1  i =1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 n
 x m a +  x m +1 a +  x m + 2 a + ... +  x 2 m a = x m y .
n n n n

 
i =1
i  0

 i  1  i  2
 i =1   i =1 
 i  m  i i
 i =1  i =1
(8.3.11)
Relaţiile (8.3.11) formează un sistem de m + 1 ecuaţii liniare cu tot atâtea
necunoscute, sistem ce se rezolvă printr-o metodă numerică adecvată (de
exemplu, prin metoda matricei inverse).
Exemplu de calcul
Fie datele din tabelul 8.3.6, obţinute experimental. Reprezentarea grafică a lui
y în funcţiei de x este dată în figura 8.3.10.
Tabelul 8.3.6
x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
y 1.10 1.40 1.30 1.50 1.60 1.70 1.40 1.50 1.35 1.32
171

1.8

1.6

1.4
y

1.2

1
0 0.2 0.4 0.6 0.8 1
x
Fig.8.3.10. Reprezentarea grafică a datelor obţinute experimental

Se cere să se determine expresia analitică a unei funcţii pentru aproximarea


datele experimentale, folosind metoda celor mai mici pătrate.

Rezolvare
Din analiza datelor experimentale şi a figurii 8.3.10, se constată că funcţia
tabelată se poate aproxima cu un polinom de gradul 5, de forma:
y = a0 + a1 x + a 2 x 2 + a3 x 3 + a 4 x 4 + a5 x 5 .

Coeficienţii polinomului se determină cu ajutorul procedurii mcmppoln.m,


prezentată în tabelul 8.3.5.
Programul principal de calcul se prezintă în tabelul 8.3.7.
Tabelul 8.3.7
% Program aproximarea_functiilor_metoda_cmmp_polinomiala;
clear;
p = zeros(10);
fismcmppolin = fopen('fismcmppolin.txt','w');
n = 10;
m = 5;
x(1) = 0.1; x(2) = 0.2; x(3) = 0.3; x(4) = 0.4; x(5) = 0.5;
x(6) = 0.6; x(7) = 0.7; x(8) = 0.8; x(9) = 0.9; x(10) = 1;
y(1) = 1.1; y(2) = 1.4; y(3) = 1.3; y(4) = 1.5; y(5) = 1.6;
y(6) = 1.7; y(7) = 1.4; y(8) = 1.5; y(9) = 1.35; y(10) = 1.32;
[a,kod] = mcmppolin(n,m,x,y);
if kod > 0
fprintf('%s%i\n',' kod = ',kod);
return;
end
fprintf('\n');
fprintf(fismcmppolin,'\r\n');
fprintf('%s\n',' Coeficientii polinomului de aproximare:');
172
fprintf(fismcmppolin,'%s\r\n',' Coeficientii polinomului de
aproximare:');

for j = 1 : m+1
fprintf('%s%i%s%7.3f\n',' a(',j-1,') =',a(j));
fprintf(fismcmppolin,'%s%i%s%7.3f\r\n',' a(',j-1,') =',a(j));
end

fprintf('\n');
fprintf(fismcmppolin,'\r\n');
fprintf(' poz x y y_polin');
fprintf('\n');
fprintf(' =============================');
fprintf('\n');
fprintf(fismcmppolin,' poz x y y_polin');
fprintf(fismcmppolin,'\r\n');
fprintf(fismcmppolin,' =============================');
fprintf(fismcmppolin,'\r\n');
for i = 1 : 10
x1 = (i-1)*0.1+0.1;
pj = 0;
for j = 1 : m
pj = pj+a(j+1)*x1^j;
end
p(i) = a(1)+pj;
end

for i = 1 : n
fprintf('%4i %8.3f %8.4f %8.4f\n',i,x(i),y(i),p(i));
fprintf(fismcmppolin,'%4i %8.4f %8.3f %8.4f\r\n',i,x(i),y(i),p(i));
end
ym = 0; syypol = 0; syym = 0;
for i = 1 : n
ym = ym+y(i);
end
ym = ym/n;
for i = 1 : n
syypol = syypol+(y(i)-p(i))*(y(i)-p(i));
syym = syym+(y(i)-ym)*(y(i)-ym);
end
r = sqrt(1-syypol/syym);
fprintf('\n');
fprintf(fismcmppolin,'\r\n');
fprintf('%s\n',' Coeficientul de corelatie Peason:');
fprintf(fismcmppolin,'%s\r\n',' Coeficientul de corelatie Peason:');
fprintf('%s%8.3f\n',' r =',r);
fprintf(fismcmppolin,'%s%8.3f\r\n',' r =',r);

figure(1)
plot(x,y,x,y,'k*','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y','fontsize',12);

figure(2)
plot(x,y,x,y,'ko',x,p,x,p,'k+','LineWidth',1.2)
xlabel('x','FontSize',12)
ylabel('y, p','fontsize',12 )
text(0.4,1.35,'ooo y','FontSize',10)
text(0.4,1.25,'+++ p','FontSize',10)
fclose(fismcmppolin);
%______________________________________________________________________
173
Valorile coeficienţilor funcţiei polinomiale de gradul 5 sunt: a0 = 0.728 ,
a1 = 5.729 , a 2 = −22.262 , a3 = 50.538 , a 4 = −55.454 , a5 = 22.051.
Coeficientul de corelaţie Pearson are valoarea: r = 0.872. Dacă se consideră
un polinom de gradul 4, se obţine coeficientul de corelaţie r = 0.864. Dacă, în
schimb, se măreşte gradul polinomului, curba corespunzătoare funcţiei analitice
se apropie din ce în ce mai mult de curba obţinută experimental. Aceasta nu
înseamnă că aproximarea este mai bună, deoarece pe un interval destul de mic
apar variaţii foarte mari ale valorilor derivatei de ordinul întâi.
În tabelul 8.3.8 se prezintă valorile funcţiei numerice date şi valorile functiei
de aproximare, în funcţie de abscisa sistemului de coordonate.
Tabelul 8.3.8
poz x y y_polin
====================
1 0.1000 1.100 1.1235
2 0.2000 1.400 1.3059
3 0.3000 1.300 1.4120
4 0.4000 1.500 1.4982
5 0.5000 1.600 1.5674
6 0.6000 1.700 1.5950
7 0.7000 1.400 1.5560
8 0.8000 1.500 1.4506
9 0.9000 1.350 1.3315
10 1.0000 1.320 1.3299

În figura 8.3.11, se prezintă cele două curbe: cea obţinută experimental (curba
y) şi cea de aproximare (curba p ).
1.8

1.6
y, p

1.4
ooo y
+++ p
1.2

1
0 0.2 0.4 0.6 0.8 1
x

Fig. 8.3.11. Reprezentarea grafică a datelor experimentale (curba y)


şi a celor de aproximare (curba p)
174
8.3.4. Regresia hiperbolică
Se presupune că reprezentarea grafică a funcţiei dată tabelar seamănă foarte
bine cu o funcţie hiperbolică. Se pune problema determinării expresiei analitice a
funcţiei hiperbolice
1
y= . (8.3.12)
a0 + a1 x
Pentru a folosi expresiile corespunzătoare regresiei liniare, se inversează
funcţia hiperbolică, adică:
1
= a0 + a1 x . (8.3.13)
y
În acest caz, suma pătratelor abaterilor va fi de forma:
2
n1 
S =   − a0 − a1 x  . (8.3.14)
i =1 yi 
Punându-se condiţia ca derivatele parţiale ale lui S în raport cu a 0 şi a1 să fie
egale cu zero, se obţine:
  n  n 1
 0  i  1  ;
na +  x  a =
  i =1  i =1 yi
 n (8.3.15)
 x a +  x 2 a = xi ,
n n

 i i 0  i  1  y
 =1   i =1  i =1 i

de unde rezultă:
n 1 n 2 n n x n xi n n 1
 y  xi −  xi  yi n  −  xi 
i =1 i i =1 i =1 i =1 i i =1 yi i =1 i =1 yi
a0 = 2
; a1 = 2
. (8.3.16)
n  n  n  n 
n  xi2 −   xi  n  xi2 −   xi 
i =1  i =1  i =1  i =1 

Exemplu de calcul
Fie datele din tabelul 8.3.10, obţinute experimental. Reprezentarea grafică a
funcţiei y în raport cu x este dată în figura 8.3.12.
Tabelul 8.3.10
x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
y 1.00 0.60 0.40 0.35 0.25 0.21 0.2 0.15 0.13 0.13
175
Se cere să se determine expresia analitică a unei funcţii pentru aproximarea
datelor experimentale, folosind metoda celor mai mici pătrate

Rezolvare
Din analiza datelor obţinute experimental, precum şi a figurii 8.3.12 se
constată că acestea pot fi aproximate cu o funcţie hiperbolică, şi anume
1
y= . Coeficienţii funcţiei hiperbolice se determină cu ajutorul funcţiei
a0 + a1 x
mcmphip.m, prezentată în tabelul 8.3.9.
1

0.8

0.6
y

0.4

0.2

0
0 0.2 0.4 0.6 0.8 1
x
Fig.8.3.12. Reprezentarea grafică a datelor obţinute experimental
Programul principal de calcul se prezintă în tabelul 8.3.11.
Tabelul 8.3.11
% Program aproximarea_functiilor_metoda_cmmp_hiperbolica;
clear;
fismcmphip = fopen('fismcmphip.txt','w');
n = 10;
x = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
y = [1 0.6 0.4 0.35 0.25 0.21 0.2 0.15 0.13 0.13];
[a0,a1,kod] = mcmphip(n,x,y);
if kod > 0
fprintf('%s%i\n',' kod = ',kod);
return;
end
fprintf('\n');
fprintf(fismcmphip,'\r\n');
fprintf('%s\n',' Coeficientii functiei hiperbolice:');
fprintf(fismcmphip,'%s\r\n',' Coeficientii functiei hiperbolice:');
fprintf('%s%10.5f%s%10.5f%s\n',' a0 =',a0,'; a1 =',a1,'.');
fprintf(fismcmphip,'%s%10.5f%s%10.5f%s\r\n',' a0 =',a0,'; a1
=',a1,'.');
fprintf('\n');
fprintf(fismcmphip,'\r\n');
fprintf('%s\n',' poz x y y_hip');
fprintf('%s\n',' =============================');
fprintf(fismcmphip,'%s\r\n',' poz x y y_hip');
fprintf(fismcmphip,'%s\r\n',' =============================');
for i = 1 : n
y1(i) = 1/(a0+a1*x(i));
176
fprintf('%4i %8.3f %8.3f %8.3f\n',i,x(i),y(i),y1(i));
fprintf(fismcmphip,'%4i %8.3f %8.3f %8.3f\r\n',i,x(i),y(i),y1(i));
end
ym = 0; syyhip = 0; syym = 0;
for i = 1 : n
ym = ym+y(i);
end
ym = ym/n;
for i = 1 : n
syyhip = syyhip+(y(i)-y1(i))*(y(i)-y1(i));
syym = syym+(y(i)-ym)*(y(i)-ym);
end
r = sqrt(1-syyhip/syym);
fprintf('\n');
fprintf(fismcmphip,'\r\n');
fprintf('%s\n',' Coeficientul de corelatie Peason:');
fprintf(fismcmphip,'%s\r\n',' Coeficientul de corelatie Peason:');
fprintf('%s%8.3f\n',' r =',r);
fprintf(fismcmphip,'%s%8.3f\r\n',' r =',r);
figure(1)
plot(x,y,x,y,'k*','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y','fontsize',12);
figure(2)
plot(x,y,x,y,'ko',x,y1,x,y1,'k+','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y, y1','fontsize',12);
text(0.5,0.8,'ooo y','FontSize',10)
text(0.5,0.6,'+++ y1','FontSize',10)
fclose(fismcmphip);
%______________________________________________________________________

Valorile coeficienţilor funcţiei hiperbolice sunt: a0 = 0.03590, a1 = 7.90509


. Coeficientul de corelaţie Pearson are valoarea: r = 0.965.
În tabelul 8.3.12 se prezintă valorile funcţiei numerice date şi valorile functiei
de aproximare, în funcţie de abscisa sistemului de coordonate.
Tabelul 8.3.12
poz x y y_hip
==================
1 0.100 1.000 1.210
2 0.200 0.600 0.618
3 0.300 0.400 0.415
4 0.400 0.350 0.313
5 0.500 0.250 0.251
6 0.600 0.210 0.209
7 0.700 0.200 0.180
8 0.800 0.150 0.157
9 0.900 0.130 0.140
10 1.000 0.130 0.126

În figura 8.3.13 se prezintă cele două curbe: cea obţinută experimental (curba
y) şi cea de aproximare (curba y1 ).
177
1.4

1.2

0.8 ooo y
y, y1
0.6 +++ y1

0.4

0.2

0
0 0.2 0.4 0.6 0.8 1
x

Fig. 8.3.13. Reprezentarea grafică a datelor experimentale (curba y)


şi a celor de aproximare (curba y1)

8.3.5. Regresia exponenţială


Se consideră că reprezentarea grafică a unei funcţiei tabelate seamănă foarte
bine cu o funcţie exponenţială
y = a bx, (8.3.17)

în care a şi b sunt constante pozitive.


Pentru determinarea constantelor a şi b, se logaritmează funcţia (8.3.17),
ln y = ln a + x ln b , (8.3.18)

apoi se determină constantele a şi b, astfel încât


n 2
S =  (ln yi − ln a − xi ln b ) , (8.3.19)
i =1

să fie minimă.
Dacă se fac notaţiile:
Z = ln y , A = ln a şi B = ln b , (8.3.20)

se ajunge la o ecuaţie de forma :


Z = A+ B x, (8.3.21)
iar suma pătratelor abaterilor are forma:
n
S =  (Z i − A − B  xi )2 , (8.3.22)
i =1
178
de unde rezultă coeficienţii A şi B , după modelul anterior (expresiile (8.3.7)).
n n n n n n n
 ln yi  xi2 −  xi  xi ln yi n xi ln y i −  xi  ln y i
i =1 i =1 i =1 i =1 i =1 i =1 i =1
A= 2
; B= 2
. (8.3.23)
n   n n  n 
n xi2 −   xi  n xi2 −   xi 
i =1  i =1  i =1  i =1 
În final, constantele a şi b au forma:

a = e A ; b = eB . (8.3.24)

Exemplu de calcul

Fie datele din tabelul 8.3.14, obţinute experimental. Reprezentarea grafică a


lui y în funcţie de x este dată în figura 8.3.14.
Tabelul 8.3.14
x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
y 1.10 1.15 1.23 1.50 2.50 3.00 4.00 7.00 9.70 15.1
20

15

10
y

0
0 0.2 0.4 0.6 0.8 1
x
Fig.8.3.14. Reprezentarea grafică a datelor obţinute experimental

Se cere să se determine expresia analitică a unei funcţii pentru aproximarea


datele experimentale, folosind metoda celor mai mici pătrate

Rezolvare
Din analiza datelor obţinute experimental, precum şi a figurii 8.3.14, se
constată că acestea pot fi aproximate cu o funcţie exponenţială, de forma:
y = a  b x . Determinarea constantelor a şi b se face cu ajutorul funcţiei
mcmpexp.m, prezentată în tabelul 8.3.13.
179
Programul principal de calcul se prezintă în tabelul 8.3.15.
Tabelul 8.3.15
% Program aproximarea_functiilor_metoda_cmmp_exponentiala;
clear;
fismcmpexp = fopen('fismcmpexp.txt','w');
n = 10;
y1 = zeros(n);
x = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
y = [1.1 1.15 1.23 1.5 2.5 3.0 4.0 7.0 9.7 15.1];

[a,b,kod] = mcmpexp(n,x,y);
if kod > 0
fprintf('%s%i\n',' kod = ',kod);
return;
end
fprintf('\n');
fprintf(fismcmpexp,'\r\n');
fprintf('%s\n',' Coeficientii functiei exponentiala:');
fprintf(fismcmpexp,'%s\r\n',' Coeficientii functiei exponentiala:');
fprintf('%s%10.5f%s%10.5f%s\n',' a =',a,'; b =',b,'.');
fprintf(fismcmpexp,'%s%10.5f%s%10.5f%s\r\n',' a =',a,'; b =',b,'.');
fprintf('\n');
fprintf(fismcmpexp,'\r\n');
fprintf('%s\n',' poz x y y_exp');
fprintf('%s\n',' =============================');
fprintf(fismcmpexp,'%s\r\n',' poz x y y_exp');
fprintf(fismcmpexp,'%s\r\n',' =============================');

for i = 1 : n
y1(i) = a*b^x(i);
fprintf('%4i %8.3f %8.4f %8.4f\n',i,x(i),y(i),y1(i));
fprintf(fismcmpexp,'%4i %8.3f %8.4f %8.4f\r\n',i,x(i),y(i),y1(i));
end

ym = 0; syyexp = 0; syym = 0;
for i = 1 : n
ym = ym+y(i);
end
ym = ym/n;
for i = 1 : n
syyexp = syyexp+(y(i)-y1(i))*(y(i)-y1(i));
syym = syym+(y(i)-ym)*(y(i)-ym);
end
r = sqrt(1-syyexp/syym);
fprintf('\n');
fprintf(fismcmpexp,'\r\n');
fprintf('%s\n',' Coeficientul de corelatie Peason:');
fprintf(fismcmpexp,'%s\r\n',' Coeficientul de corelatie Peason:');
fprintf('%s%8.3f\n',' r =',r);
fprintf(fismcmpexp,'%s%8.3f\r\n',' r =',r);

figure(1)
plot(x,y,x,y,'k*','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y','fontsize',12);

figure(2)
plot(x,y,x,y,'ko',x,y1,x,y1,'k+','LineWidth',1.2);
xlabel('x','FontSize',12);
180
ylabel('y, y1','fontsize',12);
text(0.4,8,'ooo y','FontSize',10)
text(0.4,6,'+++ y1','FontSize',10)
fclose(fismcmpexp);
%_____________________________________________________________________

Valorile coeficienţilor funcţiei exponenţiale sunt: a = 0.57167 , b = 21.10938


. Coeficientul de corelaţie Pearson are valoarea: r = 0.970.
În tabelul 8.3.16 se prezintă valorile funcţiei numerice date şi valorile functiei
de aproximare, în funcţie de abscisa sistemului de coordonate.
Tabelul 8.3.16
poz x y y_exp
====================
1 0.100 1.1000 0.7755
2 0.200 1.1500 1.0521
3 0.300 1.2300 1.4272
4 0.400 1.5000 1.9361
5 0.500 2.5000 2.6265
6 0.600 3.0000 3.5631
7 0.700 4.0000 4.8337
8 0.800 7.0000 6.5573
9 0.900 9.7000 8.8955
10 1.000 15.1000 12.0675

În figura 8.3.15 se prezintă cele două curbe: cea obţinută experimental (curba
y) şi cea de aproximare (curba y1 ).

20

15
y, y1

10
ooo y
+++ y1
5

0
0 0.2 0.4 0.6 0.8 1
x
Fig. 8.3.15. Reprezentarea grafică a datelor experimentale (curba y)
şi a celor de aproximare (curba y1)
181
8.3.6. Regresia geometrică
Se presupune că funcţia dată numeric se aseamănă foarte bine cu o funcţie de
tip geometric,
y = a  xb . (8.3.25)

Pentru determinarea constantelor a şi b, se procedează în mod analog funcţiei


exponenţiale. Prin logaritmarea funcţiei geometrice se obţine:
ln y = ln a + b ln x . (8.3.26)

Se fac notaţiile:
Z = ln y , A = ln a , B = b şi t = ln x , (8.3.27)

astfel că suma pătratelor abaterilor este de forma:


n
S =  (Z i − A − B  ti )2 . (8.3.28)
i =1

Punând condiţia ca această sumă să fie minimă, adică:


S S
= 0, = 0, (8.3.29)
A B
rezultă:
 n  n
 nA +  
 i t  B =  Zi ;
  i =1  i =1
 n (8.3.30)
  t  A +   t 2  B =  t Z ,
n n

 i =1 i   i 
 i =1  i =1
i i

sau
 n  n
 nA + 
 ln x 
i B =  ln yi ;
  i =1  i =1
 n 2 (8.3.31)
 ln x  A +  ln x  B = ln x ln y ,
n n

  i


 i =1
i

 i i
 i =1 i =1

de unde rezultă necunoscutele A şi B, de forma:


182
n n n n
 ln yi  (ln xi ) −  ln xi  ln xi ln y i
2

i =1 i =1 i =1 i =1
A= 2
;
n n 
n (ln xi )2 −   ln xi 
i =1  i =1  (8.3.32)
n n n
n ln xi ln y i −  ln xi  ln y i
i =1 i =1 i =1
B= 2
.
n n 
n (ln xi )2 −   ln xi 
i =1  i =1 
Constantele a şi b, ale funcţiei geometrice (8.3.25), vor fi:
a = eA, b = B. (8.3.33)

Exemplu de calcul
Fie datele din tabelul 8.3.18, obţinute experimental. Reprezentarea grafică a
valorilor funcţiei tabelate y, în funcţiei de variabila independentă x, este dată în
figura 8.3.16.
Tabelul 8.3.18
x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
y 0.03 0.50 1.00 2.00 7.00 10.00 19.00 25.00 43.00 54.00

60

40
y

20

0
0 2 4 6 8 10
x

Fig. 8.3.16. Reprezentarea grafică a datelor obţinute experimental

Se cere determinarea expresiei analitice a unei funcţii pentru aproximarea


datele experimentale, folosind metoda celor mai mici pătrate

Rezolvare
Din analiza datelor obţinute experimental, precum şi a figurii 8.3.16, se
constată că acestea pot fi aproximate cu o funcţie geometrică, de forma: y = a  x b
183
. Determinarea constantelor a şi b se face cu ajutorul funcţiei mcmpgeom.m,
prezentată în tabelul 8.3.17.

Programul principal de calcul se prezintă în tabelul 8.3.19.


Tabelul 8.3.19
% Program aproximarea_functiilor_metoda_cmmp_geometrica;
clear;
fismcmpgeom = fopen('fismcmpgeom.txt','w');
n = 10;
y1 = zeros(n);
x = [1 2 3 4 5 6 7 8 9 10];
y = [0.03 0.5 1 2 7 10 19 25 43 54];

[a,b,kod] = mcmpgeom(n,x,y);
if kod > 0
error(' kod = 1');
return;
end

fprintf('\n');
fprintf(fismcmpgeom,'\r\n');
fprintf('%s\n',' Coeficientii functiei geometrice:');
fprintf(fismcmpgeom,'%s\r\n',' Coeficientii functiei geometrice:');
fprintf('%s%10.5f%s%10.5f%s\n',' a =',a,'; b =',b,'.');
fprintf(fismcmpgeom,'%s%10.5f%s%10.5f%s\r\n',' a =',a,'; b =',b,'.');
fprintf('\n');
fprintf(fismcmpgeom,'\r\n');
fprintf('%s\n',' poz x y y_geom');
fprintf('%s\n',' =============================');
fprintf(fismcmpgeom,'%s\r\n',' poz x y y_geom');
fprintf(fismcmpgeom,'%s\r\n',' =============================');
for i = 1 : n
y1(i) = a*x(i)^b;
fprintf('%4i %8.3f %8.4f %8.4f\n',i,x(i),y(i),y1(i));
fprintf(fismcmpgeom,'%4i %8.3f %8.4f %8.4f\r\n',i,x(i),y(i),y1(i));
end
ym = 0; syygeom = 0; syym = 0;
for i = 1 : n
ym = ym+y(i);
end
ym = ym/n;
for i = 1 : n
syygeom = syygeom+(y(i)-y1(i))*(y(i)-y1(i));
syym = syym+(y(i)-ym)*(y(i)-ym);
end
r = sqrt(1-syygeom/syym);
fprintf('\n');
fprintf(fismcmpgeom,'\r\n');
fprintf('%s\n',' Coeficientul de corelatie Peason:');
fprintf(fismcmpgeom,'%s\r\n',' Coeficientul de corelatie Peason:');
fprintf('%s%8.3f\n',' r =',r);
fprintf(fismcmpgeom,'%s%8.3f\r\n',' r =',r);

figure(1)
plot(x,y,x,y,'k*','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y','fontsize',12);
184
figure(2)
plot(x,y,x,y,'ko',x,y1,x,y1,'k+','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y, y1','fontsize',12);
text(3,40,'ooo y','FontSize',10)
text(3,30,'+++ y1','FontSize',10)
fclose(fismcmpgeom);
%_______________________________________________________________

Valorile coeficienţilor funcţiei geometrice sunt: a = 0.03447 , b = 3.19981.


Coeficientul de corelaţie Pearson are valoarea: r = 0.996.
În tabelul 8.3.20 se prezintă valorile funcţiei numerice date şi valorile functiei
de aproximare, în funcţie de abscisa sistemului de coordonate.
Tabelul 8.3.20
poz x y y_geom
====================
1 1.000 0.0300 0.0345
2 2.000 0.5000 0.3167
3 3.000 1.0000 1.1592
4 4.000 2.0000 2.9104
5 5.000 7.0000 5.9436
6 6.000 10.0000 10.6516
7 7.000 19.0000 17.4434
8 8.000 25.0000 26.7421
9 9.000 43.0000 38.9829
10 10.000 54.0000 54.6122

În figura 8.3.17 se prezintă cele două curbe: cea obţinută experimental (curba
y) şi cea de aproximare (curba y1 ).
60

40 ooo y
y, y1

+++ y1
20

0
0 2 4 6 8 10
x

Fig. 8.3.17. Reprezentarea grafică a datelor experimentale (curba y)


şi a celor de aproximare (curba y1)
185
8.3.7. Regresia trigonometrică
Pentru aproximarea unei funcţii numerice se consideră o funcţie
trigonometrică de forma:
y = a0 + a1 cos(  x) , (8.3.34)
unde:
2
 = 2f = (8.3.35)
T
este pulsaţia sistemului.
Din condiţia ca suma pătratelor abaterilor
n
S =   yi − a0 − a1 cos(  x)2 (8.3.36)
i =1

să fie minimă, rezultă:


n n n n
 yi  cos2 (  xi ) −  cos(  xi )  yi cos(  xi )
a0 = i =1 i =1 i =1 i =1
2
, (8.3.37)
n  n 
n  cos 2 (  xi ) −   cos(  xi )
i =1 i =1 

n n n
n y i cos(  xi ) −  cos(  xi ) y i
i =1 i =1 i =1
a1 = 2
. (8.3.38)
n  n
n cos 2 (  xi ) −  cos(  xi )
i =1 i =1 

Exemplu de calcul
Fie datele din tabelul 8.3.22, obţinute pe cale experimentală. Reprezentarea
grafică a valorilor funcţiei tabelate y, în funcţiei de variabila independentă x, este
dată în figura 8.3.18.
Tabelul 8.3.22
x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
y 2.00 1.92 1.75 1.60 1.40 1.10 0.75 0.30 -0.10 -0.30

Se cere determinarea unei funcţii analitice care să aproximeze cât mai bine
datele experimentale, în sensul celor mai mici pătrate.
186

2.5
2
1.5
1
y

0.5
0
-0.5
0 0.2 0.4 0.6 0.8 1
x
Fig.8.3.18. Reprezentarea grafică a datelor obţinute experimental

Rezolvare
Din analiza datelor obţinute experimental, precum şi a figurii 8.3.18 se
constată că acestea pot fi aproximate cu o funcţie trigonometrică de forma:
y = a0 + a1 cos(  x) , unde  = 2 [rad/s]. Determinarea constantelor a 0 şi a1 se
face cu ajutorul functiei mcmptrig.m, prezentată în tabelul 8.3.21.
Programul principal de calcul se prezintă în tabelul 8.3.23.

Tabelul 8.3.23
% Program aproximarea_functiilor_metoda_cmmp_trigonometrica;
clear;
fismcmptrig = fopen('fismcmptrig.txt','w');
om = 2;
n = 10;
y1 = zeros(n);
x = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
y = [2.0 1.95 1.85 1.7 1.3 1.1 0.5 0.3 -0.1 -0.3];

[a0,a1,kod] = mcmptrig(n,x,y,om);
if kod > 0
fprintf('%s%i\n',' kod = ',kod);
return;
end
fprintf(fismcmptrig,'\r\n');
fprintf('%s\n',' Coeficientii functiei trigonometrice:');
fprintf(fismcmptrig,'%s\r\n',' Coeficientii functiei
trigonometrice:');
fprintf('%s%10.5f%s%10.5f%s\n',' a0 =',a0,'; a1 =',a1,'.');
fprintf(fismcmptrig,'%s%10.5f%s%10.5f%s\r\n',' a0 =',a0,'; a1
=',a1,'.');
fprintf('\n');
fprintf(fismcmptrig,'\r\n');
fprintf('%s\n',' poz x y y_trig');
fprintf('%s\n',' =============================');
187
fprintf(fismcmptrig,'%s\r\n',' poz x y y_trig');
fprintf(fismcmptrig,'%s\r\n',' =============================');
for i = 1 : n
y1(i) = a0+a1*cos(om*x(i));
fprintf('%4i %8.3f %8.4f %8.4f\n',i,x(i),y(i),y1(i));
fprintf(fismcmptrig,'%4i %8.3f %8.4f %8.4f\r\n',i,x(i),y(i),y1(i));
end
ym = 0; syytrig = 0; syym = 0;
for i = 1 : n
ym = ym+y(i);
end
ym = ym/n;
for i = 1 : n
syytrig = syytrig+(y(i)-y1(i))*(y(i)-y1(i));
syym = syym+(y(i)-ym)*(y(i)-ym);
end
r = sqrt(1-syytrig/syym);
fprintf('\n');
fprintf(fismcmptrig,'\r\n');
fprintf('%s\n',' Coeficientul de corelatie Peason:');
fprintf(fismcmptrig,'%s\r\n',' Coeficientul de corelatie Peason:');
fprintf('%s%8.3f\n',' r =',r);
fprintf(fismcmptrig,'%s%8.3f\r\n',' r =',r);
figure(1)
plot(x,y,x,y,'k*','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y','fontsize',12);
figure(2)
plot(x,y,x,y,'ko',x,y1,x,y1,'k+','LineWidth',1.2);
xlabel('x','FontSize',12);
ylabel('y, y1','fontsize',12);
text(0.2,1.3,'ooo y','FontSize',10)
text(0.2,0.7,'+++ y1','FontSize',10)
fclose(fismcmptrig);
%______________________________________________________________________

Valorile coeficienţilor funcţiei geometrice sunt: a0 = 0.35759, a1 = 1.75874.


Coeficientul de corelaţie Pearson are valoarea: r = 0.995.
În tabelul 8.3.24 se prezintă valorile funcţiei numerice date şi valorile functiei
de aproximare, în funcţie de abscisa sistemului de coordonate.

Tabelul 8.3.24
poz x y y_trig
======================
1 0.100 2.0000 2.0813
2 0.200 1.9500 1.9775
3 0.300 1.8500 1.8091
4 0.400 1.7000 1.5829
5 0.500 1.3000 1.3078
6 0.600 1.1000 0.9949
7 0.700 0.5000 0.6565
8 0.800 0.3000 0.3062
9 0.900 -0.1000 -0.0420
10 1.000 -0.3000 -0.3743
188
În figura 8.3.19 se prezintă cele două curbe: cea obţinută experimental (curba
y) şi cea de aproximare (curba y1 ).

2.5

1.5
ooo y
y, y1

1
+++ y1
0.5

-0.5
0 0.2 0.4 0.6 0.8 1
x
Fig. 8.3.19. Reprezentarea grafică a datelor experimentale (curba y)
şi a celor de aproximare (curba y1)
Regresia liniară folosind pseudoinversa

Se formează următoarele matrici folosind valorile experimentale xi şi yi, precum şi coeficienţii funcţiei
de regresie (a0 şi a1):

1 𝑥1 𝑦1
1 𝑥2 𝑦2 𝑎0
𝐴=[ ] 𝒃=[⋮] 𝒙 = [𝑎 ]
⋮ ⋮ 1
1 𝑥𝑛 𝑦𝑛

Se poate scrie următoarea relaţie matematică, reprezentând un sistem liniar în care necunoscutele sunt
a0 şi a1:
𝐴∙𝒙 =𝒃
Întrucât matricea A este dreptunghiulară (are n rânduri şi 2 coloane), sistemul are mai multe ecuaţii
decât necunoscute. Aceste sisteme sunt supradeterminate şi în general nu au soluţie. De aceea, se va
transforma sistemul existent într-un sistem cât mai „apropiat” de cel original, dar care are soluţie.
Aceasta soluţie va fi notată cu 𝑥̂. În acest scop, se înmulţeşte fiecare termen la stânga cu AT:
=> 𝐴𝑇 𝐴 ∙ 𝒙
̂ = 𝐴𝑇 𝒃
Dacă se înmulţeşte o matrice dreptunghiulară cu propria ei inversă se obţine o matrice pătratică
simetrică. În cazul nostru, ATA va fi o matrice pătratică simetrică, cu două rânduri şi două coloane.
=> (𝐴𝑇 𝐴)−1 (𝐴𝑇 𝐴) ∙ 𝒙
̂ = (𝐴𝑇 𝐴)−1 𝐴𝑇 𝒃
=> ̂ = (𝐴𝑇 𝐴)−1 𝐴𝑇 𝒃
soluţia sistemului este: 𝒙 (1)
unde (𝐴𝑇 𝐴)−1 𝐴𝑇 se numeşte pseudo-inversă.

REZOLVAREA MATRICEALĂ A EXEMPLULUI PRIVIND ACUITATEA VIZUALĂ A ŞOFERILOR :


În urma testării acuităţii vizuale a unui grup de persoane de diferite vârste, care au permis de
conducere auto, a rezultat ca distanţele medii până la care văd suficient de bine şoferii din anumite
grupuri de vârstă sunt următoarele:

Vârstă medie (xi) Distanţa în metri (yi)

20 590
40 460
60 365
70 390
80 350

-1-
700
600
500

distanta
400
Reprezentate grafic, valorile 300
respective arată astfel: 200
100
0
0 20 40 60 80 100
varsta

Să se identifice ecuaţia dreptei de regresie utilizând pseudo-inversa.

Rezolvare:
Se formează un sistem de ecuaţii liniare în care se utilizează valorile experimentale xi şi yi:

𝑎0 + 20 ∙ 𝑎1 = 590
𝑎0 + 40 ∙ 𝑎1 = 460
𝑎0 + 60 ∙ 𝑎1 = 365
𝑎0 + 70 ∙ 𝑎1 = 390
{𝑎0 + 80 ∙ 𝑎1 = 350
Acest sistem nu are soluţie (sistemul impune ca aceeaşi dreaptă să verifice valorile experimentale;
dar, punctele de coordonate (xi, yi) nu sunt coliniare!).

Se formează matricea A şi vectorii b şi x:

1 20 590
1 40 460 𝑎0
𝐴= 1 60 𝒃 = 365 𝒙 = [𝑎 ]
1
1 70 390
[1 80] [350]

Aşadar, scris matriceal sistemul anterior devine:

1 20 590
1 40 𝑎0 460
1 60 [𝑎 ] = 365
1 70 1 390
[1 80] [350]
În relaţia (1):
=> ̂ = (𝐴𝑇 𝐴)−1 𝐴𝑇 𝒃
soluţia sistemului este: 𝒙 (1)

1 20
1 1 1 1 1 1 40 5 270
𝐴𝑇 𝐴 = [ ] 1 60 = ⋯ = [ ]
20 40 60 70 80 1 70 270 16900
[1 80]

-2-
590
1 1 1 1 1 460 2155
𝐴𝑇 𝑏 = [ ] 365 = [ ]
20 40 60 70 80 390 107400
[350]

𝑎0 5 270 −1 2155 1 16900 −270 2155


 [𝑎 ] = [ ] [ ] = 11600 [ ][ ]=
1 270 16900 107400 −270 5 107400

1 7421500 639.784
[ ]=[ ]
11600 −44850 −3.866

Aşadar, ecuaţia dreptei de regresie va fi: 𝑑𝑖𝑠𝑡𝑎𝑛𝑡𝑎 = 639,784 − 3,866 ∙ 𝑣𝑎𝑟𝑠𝑡𝑎

-3-
Regresia polinomială (în acest exemplu: polinom de gradul 2) folosind
metoda matricilor de proiecţie

În cazul exemplului anterior, de această dată se cere ca, în locul unei drepte de regresie, să se identifice
un polinom de regresie de ordinul 2 care să aproximeze acuitatea vizuală a şoferilor în raport cu vârsta
acestora. Forma generală a polinomului de ordinul 2 este:
𝑦̅ = 𝑎2 𝑥 2 + 𝑎1 𝑥 + 𝑎0
Utilizând această relaţie, se formează următorul sistem de ecuaţii în care se utilizează datele
experimentale xi şi yi (vârstele xi şi distanţele yi) din tabelul de valori de mai sus:
Vârstă medie (xi) Distanţa în metri (yi)
20 590
40 460
60 365
70 390
80 350

𝑎0 + 20 ∙ 𝑎1 + 400 ∙ 𝑎2 = 590
𝑎0 + 40 ∙ 𝑎1 + 1600 ∙ 𝑎2 = 460
𝑎0 + 60 ∙ 𝑎1 + 3600 ∙ 𝑎2 = 365
𝑎0 + 70 ∙ 𝑎1 + 4900 ∙ 𝑎2 = 390
{𝑎0 + 80 ∙ 𝑎1 + 6400 ∙ 𝑎2 = 350
Acest sistem nu are soluţie (sistemul impune ca acelaşi polinom să verifice toate valorile
experimentale; dar, privit din perspectiva reprezentării grafice, punctele de coordonate (xi, yi) nu se
află toate în acelaşi timp pe curba generată de un singur polinom de gradul 2).

Matricea A şi vectorii b şi x vor fi:

1 20 400 590
1 40 1600 460 𝑎0
𝐴= 1 60 3600 𝒃 = 365 𝒙 = [𝑎1 ]
1 70 4900 390 𝑎2
[1 80 6400] [350]

Aşadar, scris matriceal, sistemul de ecuaţii anterior devine:

1 20 400 590
1 40 1600 0 𝑎 460
1 60 3600 [𝑎1 ] = 365
1 70 4900 𝑎2 390
[1 80 6400 ] [ 350]

̂ = (𝐴𝑇 𝐴)−1 𝐴𝑇 𝒃
Conform relaţiei (1), soluţia cea mai convenabilă a sistemului anterior este: 𝒙

1 20 400
1 1 1 1 1 1 40 1600 5 270 16900
𝐴𝑇 𝐴 = [ 20 40 60 70 80 ] 1 60 3600 = ⋯ = [ 270 16900 1143000 ]
400 1600 3600 4900 6400 1 70 4900 16900 1143000 80650000
[1 80 6400]

-4-
590
1 1 1 1 1 460 2155
𝐴𝑇 𝑏 = [ 20 40 60 70 80 ] 365 = [ 107400 ]
400 1600 3600 4900 6400 390 6437000
[350]
𝑎0 −1
5 270 16900 2155 774.382
 [𝑎1 ] = [ 270 16900 1143000 ] [ 107400 ] = ⋯ = [−10.608]
𝑎2 16900 1143000 80650000 6437000 0.0679

Aşadar, ecuaţia polinomului de regresie de ordinul 2 va fi:

𝑑𝑖𝑠𝑡𝑎𝑛𝑡𝑎 = 774,382 − 10,608 ∙ 𝑣𝑎𝑟𝑠𝑡𝑎 + 0,0679 ∙ 𝑣𝑎𝑟𝑠𝑡𝑎2

Folosind această relaţie, se poate estima de exemplu că un şofer cu vârsta de 50 de ani are o acuitate
vizuală de aproximativ 414 m.
Spre comparaţie, figura următoare prezintă atât dreapta de regresie cât şi polinomul de regresie de
ordinul 2:

650

600
y = -3.8664x + 639.78
550 R² = 0.8957

500
Distanta

450

400

350
y = 0.0679x2 - 10.608x + 774.38
R² = 0.9727
300
10 20 30 40 50 60 70 80 90
Varsta

-5-
1

9’. INTEGRAREA NUMERICĂ A FUNŢIILOR

9.3. INTEGRAREA NUMERICĂ A FUNCŢIILOR

9.3.1. INTRODUCERE

Fie y  f (x) o funcţie definită şi integrabilă pe intervalul [a, b] . De cele mai


multe ori este greu de determinat o primitivă, F, a integralei definite
b
I   a f ( x)dx (9.3.1)

sau dacă această primitivă există, dar are o expresie analitică foarte complicată,
folosirea în calculele ulterioare este foarte greoaie. De aceea, pentru calculul
integralei (9.3.1) se stabilesc formule aproximative simple şi uşor de folosit pe
orice calculator.
Formula:
b n
a f ( x)dx   Ai f ( xi )  R , (9.3.2)
i 0
în care Ai sunt constante independente de f, iar x0 , x1 , , xn sunt nodurile
intervalului [a, b] , poartă numele de formulă de cuadratură numerică.
În continuare, se deduc expresiile câtorva formule de integrare numerică şi
se întocmesc procedurile de calcul, scrise în limbaj Turbo-Pascal.

9.3.2. Metoda coeficienţilor nedeterminaţi – nu se cere la examen

Metoda coeficienţilor nedeterminaţi constă în determinarea coeficienţilor Ai ,


ai formulei de cuadratură numerică (9.3.2), astfel încât restul R să fie nul pentru
orice polinom de grad mai mic sau egal cu n.
Pentru demonstraţie, se aleg polinoamele particulare: 1, x, x 2 , , x n . Dacă
în formula de cuadratură (9.3.2) se înlocuieşte, pe rând, funcţia f (x) cu
polinoamele menţionate şi se pune condiţia ca restul R să fie nul, rezultă:
b
A0  1  A1  1    An  1  a dx ;
b
A0  x0  A1  x1    An  x n  a x  dx ;
2
b
A0  x02  A1  x12    An  xn2  a x 2  dx ; (9.3.3)
.................................
b
A0  x0n  A1  x1n    An  xnn  a x n  dx .

Relaţiile (9.3.3) formează un sistem de (n+1) ecuaţii liniare în necunoscutele


A0 , A1 , , An , şi anume:

ba
1 1 1  1 A0
b2  a2
x0 x1 x2  xn A1 2
b  a3
3
x02 x12 x22 2
 xn  A2  (9.3.4)
3
      
b  a n1
n 1
x0n x1n x2n n
 xn An
n 1
Deoarece nodurile intervalului [a, b] se consideră distincte, determinantul
sistemului (9.3.4) este diferit de zero (determinant de tip Vandermonde), iar
soluţia sistemului este unică. Se poate arăta că restul formulei de cuadratură este
nul pentru orice polinom de grad mai mic sau egal cu n, nu numai pentru
polinoamele particulare considerate [36].

9.3.3. Formula trapezelor de cuadratură numerică

Fie funcţia f : [a, b]  R , continuă pe [a, b] , unde a < b. Se cere să se


calculeze
b
I   a f ( x)dx .

Fie a  x1  x2   xi  xi 1    xn  b , o reţea de noduri echidistante pe


intervalul [a, b] . Ca urmare a proprietăţii de aditivitate a integralei faţă de
interval, se poate scrie:
n1 x
I    x i 1 f ( x)dx . (9.3.7)
i
i 1

Pentru determinarea formulei trapezelor de cuadratură numerică, se


aproximează funcţia f (x) , pe fiecare interval, cu un polinom Newton de
interpolare dreapta de ordinul unu. În acest caz, relaţia (9.3.7) devine:
3
n1 x n1 x yi
i 1  
I  x i 1
f ( x)dx    xi y
 i  ( x  xi )dx , (9.3.8)
i 1 i
i 1  h 
unde: yi  f ( xi ) , h  xi 1  xi este pasul reţelei, iar yi  yi 1  yi este
diferenţa finită progresivă de ordinul unu.
Dacă în relaţia (9.3.8) se face schimbarea de variabilă u  ( x  xi ) / h ,
rezultă:
n1 n1 h
I  0 i
h
1
 y  uy i 
du   2 ( yi  yi1 ) . (9.3.9)
i 1 i 1

În cazul în care funcţia f (x) este dată tabelar, adică se cunosc valorile
f ( xi ), i  1, n în nodurile reţelei, relaţia (9.3.9) devine:

h
I  ( y1  2 y 2  2 y3    2 y n1  y n ) . (9.3.10)
2
Dacă se cunoaşte expresia analitică a funcţiei f (x) şi se cere calculul
integralei I , pe intervalul [a, b] , atuncif relaţia (9.3.9)
f (xi h) capătă
f (xi 2hforma:
)
f (xi h) (xi )
h f (xi 2h)
I   f ( x1 )  2 f ( x1  h)  2 f ( x1  2h)    2 f x1  (n  1)h  f (b) (9.3.11)
2 h h h
Metoda trapezelor, de calcul al integralei definite pe intervalul [a, b] , constă
xi 2h xi h xi 2h x
în înlocuirea curbei y  f (x) cu o linie poligonală, după cum se vede în figura
9.3.1. i 2 i1 i i1 i 2
f ( x i 1 ) f ( xi 1 )
f ( xi )
f ( x2 )
f (x)
f ( xn )
f ( x1 )

o x1 x2  xi 1 xi x i  1  xn x
Fig. 9.3.1. Reprezentarea geometrică a metodei trapezelor

Eroarea de trunchiere pe intervalul [ xi , xi 1 ] , în cazul formulei de cuadratură


numerică a trapezelor, este de forma:
x h
ETi   x i 1 f ( x)dx  [ f ( xi )  f ( xi 1 )] . (9.3.12)
i 2
4
Fie F (x) o primitivă a funcţiei f (x) . Conform formulei lui Leibniz-Newton,
relaţia (9.3.12) devine:
h
ETi  F ( xi 1 )  F ( xi )  [ f ( xi )  f ( xi 1 )] . (9.3.13)
2

Dacă se dezvoltă în serie Taylor funcţiile f (x) şi F (x) , în jurul punctului


x  xi , se obţine:

h h2
f ( xi 1 )  f ( xi  h)  f ( xi )  f ( xi )  f ( i ) ;
1! 2!
h h2 h3

F ( xi 1 )  F ( xi  h)  F ( xi )  F ( xi )  
F ( xi )  F ( i ) 
1! 2! 3!
(9.3.14)
2 3
h h h
 F ( xi )  f ( xi )  f ( xi )  f ( i ),
1! 2! 3!
unde i  ( xi , xi 1 ) , F ( xi )  f ( xi ) .
După înlocuiri în relaţia (9.3.13), se obţine:
h3
ETi   f ( i ) . (9.3.15)
12
Dacă se consideră intervalul [a, b] , atunci eroarea de trunchiere, în cazul
metodei trapezelor, este
n 1 h 3 n1
ET   ETi    f ( i ) . (9.3.16)
i 1 12 i 1

1 n1
Pentru   (a, b) , astfel încât f ()   f (i ) şi tinând seama de faptul
n  1 i 1
că nodurile sunt echidistante, adică h  (b  a) /(n  1) , relaţia (9.3.16) devine:

(b  a ) 3
ET   f () . (9.3.17)
12(n  1) 2

Dacă există M  0 , astfel încât f ( x)  M , () x  (a, b) , atunci

M (b  a ) 3
ET  . (9.3.18)
12(n  1) 2
5

9.3.4. Formule Simpson de cuadratură numerică

9.3.4.1. Formula Simpson 1/3 (nu se cere demonstratia la examen; v. si


notele de curs)

Fie funcţia f : [a, b]  R , continuă pe [a, b] , unde a < b. Se cere să se


calculeze
b
I   a f ( x)dx .

Fie a  x1  x2   x2i 1  x2i  x2i 1    xn  b , o reţea de noduri


echidistante pe intervalul [a, b] . Ca urmare a proprietăţii de aditivitate a
integralei faţă de interval, se poate scrie
n 1
2 x
I   x2i 1 f ( x)dx .
2i 1
(9.3.20)
i 1

Pentru determinarea formulei Simpson 1/3 de cuadratură numerică, se


aproximează funcţia f (x) , pe fiecare interval de forma [ x2i 1 , x2i 1 ] , cu un
polinom Newton de interpolare dreapta de ordinul doi şi relaţia (9.3.20) devine:
n1
2 x  y 2i 1 2 y 2i 1 
I    x  yi 
2i 1
( x  x2i 1 )  2
( x  x 2i 1 )( x  x 2i dx , (9.3.21)
)
i 1 2i 1 
 1! h 2! h 
unde:
yi  f ( xi ) ;
h  xi 1  xi este pasul reţelei de integrare;
y 2i 1  y 2i  y 2i 1 este diferenţa finită progresivă de ordinul unu;
2 y 2i 1  y 2i  y 2i 1 este diferenţa finită progresivă de ordinul doi.
Dacă în relaţia (9.3.21) se face schimbarea de variabilă u  ( x  x2i 1 ) / h ,
rezultă:
n1 n1
2  y 2i 1 
2 2 2 h
I  h 0  y2i1  uy2i1  u(u  1) 2 
du   3 ( y 2i1  4 y 2i  y 2i1 ) .
i 1  i 1
(9.3.22)

În cazul în care funcţia f (x) este dată tabelar, adică se cunosc valorile
f ( xi ), i  1, n în nodurile reţelei de integrare, relaţia (9.3.22) devine:
6
h
I ( y1  4 y 2  2 y3  4 y 4    2 y n2  4 y n1  y n ) . (9.3.23)
3
Dacă se cunoaşte expresia analitică a funcţiei f (x) şi se cere calculul
integralei I, pe intervalul [a, b] , atunci relaţia (9.3.22) devine:
h
I  f ( x1 )  4 f ( x1  h)  2 f ( x1  2h)    4 f x1  (n  1)h  f (b) (9.3.24)
3
Metoda Simpson 1/3, de calcul al integralei definite pe intervalul [a, b] ,
constă în înlocuirea curbei y  f (x) , pe fiecare interval de forma [ x2i 1 , x2i 1 ] ,
cu un polinom de gradul doi (v.fig.9.3.2). Numărul de puncte trebuie astfel ales
încât raportul (n  1) / 2 să fie număr întreg. Dacă nu se ţine seama de acest lucru
şi mai rămâne un interval, suprafaţa corespunzătoare acestuia se calculează cu
metoda trapezelor.
Eroarea de trunchiere pe intervalul [ x2i 1 , x2i 1 ] , în cazul formulei de
cuadratură numerică (9.3.22), este de forma:
x h
ET 2i   x 2i 1 f ( x)dx  [ f ( x2i 1 )  4 f ( x2i )  f ( x2i 1 )] . (9.3.25)

f ( x1 ) f ( x1 ) f ( x1 )
2i 1 3
Procedând în mod analog formulei trapezelor, se obţine:

h 5 ( IV )
ET2i  f ( 2i ) .
90
f ( x 2 i 1 )
f ( x2 i 1 ) f ( x2i ) f ( xn )

f ( x) f ( x2 )

f ( x1)

O
x1 x2  x 2 i 1 x2 i x2 i 1  xn x
Fig. 9.3.2. Reprezentarea geometrică a metodei Simpson 1/3

Dacă se consideră intervalul [a, b] , atunci eroarea de trunchiere, în cazul


metodei Simpson 1/3, este:
7
n 1 n 1
5 2
2 h
ET   ET2i 
90
 f ( IV ) ( 2i ) . (9.3.26)
i 1 i 1
n 1
2 2
Pentru   (a, b) , astfel încât f ( IV ) ()  
n  1 i 1
f ( IV ) ( 2i ) ,

relaţia (9.3.26) devine:

h 5 (n  1) ( IV )
ET   f () . (9.3.27)
180
ba
Pentru h  rezultă:
n 1

(b  a ) 5
ET   4
f ( IV ) () . (9.3.28)
180(n  1)
Dacă există M  0 , astfel încât f ( IV ) ( x)  M , () x  (a, b) , atunci
M (b  a ) 5
ET  . (9.3.29)
180(n  1) 2

9.3.4.2. Formula Simpson 3/8 (nu se cere demonstratia la examen; v.


si notele de curs)

Fie funcţia f : [a, b]  R , continuă pe [a, b] , unde a < b. Se cere să se


calculeze
b
I   a f ( x)dx .

Fie a  x1  x2   x3i 2  x3i 1  x3i  x3i 1    xn  b , o reţea de noduri


echidistante pe intervalul [a, b] . Ca urmare a proprietăţii de aditivitate a
integralei faţă de interval, se poate scrie
n 1
3 x
I   x3i 2 f ( x)dx .
3i 1
(9.3.30)
i 1

Pentru determinarea formulei Simpson 3/8 de cuadratură numerică, se


aproximează funcţia f (x) , pe fiecare interval de forma [ x3i 2 , x3i 1 ] , cu un
polinom Newton de interpolare dreapta de ordinul trei şi relaţia (9.3.30) devine:
8
n 1
3 x y3i 2 2 y3i 2
I    x [ yi 
3i 1
( x  x3i 2 )  ( x  x3i 2 )( x  x3i 1 ) 
i 1 3i  2 1!h 2!h 2 (9.3.31)
3 y3i 2
 ( x  x3i 2 )( x  x3i 1 )( x  x3i )]dx
3!h 3
unde: yi  f ( xi ) ;
h  xi 1  xi este pasul reţelei de integrare;
y3i 2  y3i 1  y3i 2 este diferenţa finită progresivă de ordinul unu;
2 y3i 2  y3i 1  y3i 2 este diferenţa finită progresivă de ordinul doi;
3 y3i 2  2 y3i 1  2 y3i 2 este diferenţa finită progresivă de ord. trei.
Dacă în relaţia (9.3.31) se face schimbarea de variabilă u  ( x  x3i 2 ) / h ,
rezultă:
n 1
3 3 2 y3i 2 2 y3i 2 
I  h  0  y3i 2  uy3i2  u (u  1)
2
 u (u  1)(u  2)
6 
du 
i 1 
n 1
3 3h
  8
( y3i 2  3 y3i 1  3 y3i  y3i 1 ).
i 1
(9.3.32)
În cazul în care funcţia f (x) este dată tabelar, adică se cunosc valorile
f ( xi ), i  1, n , în nodurile reţelei de integrare, atunci relaţia (9.3.32) devine:

3h
I ( y1  3 y 2  3 y3  2 y 4  3 y5    2 y n3  3 y n2  3 y n1  y n ) .
8
(9.3.33)
Dacă se cunoaşte expresia analitică a funcţiei f (x) şi se cere calculul
integralei I, pe intervalul [a, b] , atunci relaţia (9.3.32) devine:
h
I  f ( x1 )  3 f ( x1  h)  3 f ( x1  2h)  2 f ( x1  3h)  3 f ( x1  4h) 
3
   3 f x1  (n  1)h  f ( x n ) 
(9.3.34)
Metoda Simpson 3/8, de calcul al integralei definite pe intervalul [a, b] ,
constă în înlocuirea curbei y  f (x) pe fiecare interval de forma [ x3i 2 , x3i 1 ]
cu un polinom de gradul trei. Numărul de puncte trebuie astfel ales încât raportul
(n  1) / 3 să fie număr întreg (v.fig.9.3.3). Dacă nu se ţine seama de acest lucru
9
şi mai rămâne un interval, pentru acesta se aplică formula trapezelor; dacă
rămân două intervale, atunci se aplică formula corespunzătoare metodei
Simpson 1/3.
f ( x3i 1) f ( x3 i  1 )
f ( x3i )
f ( xn )
f ( x3 i  2 )
f ( x)
f ( x2 )

f ( x1 )

O x 3 i 1  xn
x1 x2  x3i  2 x3i x3 i  1 x
Fig. 9.3.3. Reprezentarea geometrică a metodei Simpson 3/8

Eroarea de trunchiere, pe intervalul [ x3i 2 , x3i 1 ] , în cazul formulei de


cuadratură numerică (9.3.32), este de forma:
x 3h
ET3i  x 3i 1 f ( x)dx  [ f ( x3i 2 )  3 f ( x3i 1 )  3 f ( x3i )  f ( x3i 1 )] .
3i  2 8
(9.3.35)
sau
3h
ET3i  F ( x3i 1 )  F ( x3i 2 )  [ f ( x3i 2 )  3 f ( x3i 1 )  3 f ( x3i )  f ( x3i 1 )] .
8
(9.3.36)
Dacă se dezvoltă în serie Taylor funcţiile f (x) şi F (x) , în jurul punctului
x  x3i , se obţine:

2h ( 2h) 2
f ( x3i 2 )  f ( x3i  2h)  f ( x3i )  f ( x3i )  ( x3i ) 
1! 2!
;
( 2h) 3 (2h) 4 ( IV )
 f ( x3i )  f ( 3i )
3! 4!
h h2
f ( x3i 1 )  f ( x3i  h)  f ( x3i )  f ( x3i )  ( x3i ) 
1! 2!
;
h3 h 4 ( IV )
 f ( x3i )  f ( 3i )
3! 4!
10
h h2
f ( x3i 1 )  f ( x3i  h)  f ( x3i )  f ( x3i )  ( x3i ) 
1! 2!
;
3 4
h h
 f ( x3i )  f ( IV ) ( 3i )
3! 4!
h h2 h3
F ( x3i 1 )  F ( x3i  h)  F ( x3i )  F ( x3i )  F ( x3i )  F ( x3i ) 
1! 2! 3!
;
h 4 ( IV ) h 5 (V )
 F ( x3i )  F ( 3i )
4! 5!
2h ( 2h) 2 ( 2h) 3
F ( x3i 2 )  F ( x3i  2h)  F ( x3i )  F ( x3i )  F ( x3i )  F ( x3i ) 
1! 2! 3!
(2h) 4 ( IV ) (2h) 5 (V )
 F ( x3i )  F ( 3i )
4! 5!
unde  3i  ( x3i 2 , x3i 1 ) , F ( x3i )  f ( x3i ) .

După înlocuiri în relaţia (9.3.36), se obţine:

3h 5 ( IV )
ET3i  f ( 3i ) . (9.3.37)
80
Dacă se consideră intervalul [a, b] , atunci eroarea de trunchiere în cazul
metodei Simpson 3/8 este:
n 1 n 1
5 3
3 3h
ET   ET3i 
80
 f ( IV ) ( 3i ) . (9.3.38)
i 1 i 1
n 1
3 3
Pentru   (a, b) , astfel încât f ( IV ) ()  
n  1 i 1
f ( IV ) ( 3i ) şi ţinând seama

de faptul că nodurile sunt echidistante, adică h  (b  a) /(n  1) , relaţia (9.3.38)


devine

(b  a ) 5
ET   4
f ( IV ) () . (9.3.39)
80(n  1)

Dacă există M  0 , astfel încât f ( IV ) ( x)  M , () x  (a, b) , atunci


M (b  a ) 5
ET  . (9.3.40)
80( n  1) 4
Integrale definite - sinteză

Din punct de vedere geometric, integralele definite sunt


utilizate pentru a determina aria cuprinsa între o curbă curba y = f(x)
reprezentând graficul funcţiei f(x) şi axa ox. Astfel, în figura
alăturată, zona haşurată reprezintă aria calculată folosind
integrala:
b
a
f ( x)dx

O aplicaţie imediată şi des întâlnită a integralelor definite


presupune calculul mediei unei funcţii, folosind relaţia:

1 b
b − a a
f mediu = f ( x)dx

Din punct de vedere geometric, aceasta înseamnă că există


un dreptunghi a cărui arie este egală cu aria aflată sub curba
y = f(x). În figura alăturată, înălţimea acestui dreptunghi
este f(c), iar lungimea (b-a) reprezintă lungimea
dreptunghiului. Se consideră că media funcţiei f este f(c).
Rezolvarea numerică presupune identificarea unor metode de calcul al acestei arii. De exemplu,
pot fi însumate ariile unor dreptunghiuri cu lăţimi egale, după cum se poate observa în figura
următoare:

După cum se poate observa din figura de mai sus, este evident că aria calculată folosind această
metodă nu are ca rezultat exact aria de sub curbă. Însă, micşorând suficient de mult lăţimea fiecărui
dreptunghi, rezultatul va fi mult mai apropiat de valoarea analitică (corectă). În schimb, numărul
dreptunghiurilor va creşte, deci necesarul de resurse de calcul va fi mai mare. Figura de mai jos
ilustrează acest aspect.
Tot în figura următoare, se observă că dreptunghiurile pot fi alese cu colţul din dreapta-sus sau din
stânga-sus pe curba y = f(x).

1
Există de asemenea şi varianta în care mijlocul laturii de sus se află pe curbă (figura următoare).

Metoda dreptunghiurilor se numeşte metoda Riemann şi este utilă pentru a evidenţia principiul de
bază prin care poate fi calculată o integrală definită. Din punct de vedere practic însă, metoda este
ineficientă, deci foarte rar utilizată.

Metoda trapezelor
O alternativă superioară metodei Riemann este metoda trapezelor, care funcţionează astfel:
1. Se împarte intervalul [a, b] în n subintervale, fiecare cu lăţimea h; rezultă valorile x0 = a, x1, x2, …,
xn-1, xn = b; lăţimea unui interval va fi:
b−a
h=
n

2
2. Se calculează valorile corespunzătoare f(x0) = f(a), f(x1), …, f(xn-1), f(xn) = f(b);
3. Se aproximează funcţia de integrat pe fiecare interval, prin interpolare liniară; rezultă n trapeze cu
înălţimea constantă h. În figura următoare este prezentată o situaţie în care intervalul de integrat este
divizat în n = 5 subintervale.

Dacă se însumează ariile celor 5 trapeze, se obţine relaţia:


b−a
[𝑓(𝑎) + 2 ∑4𝑖=1 𝑓(𝑥𝑖 ) + 𝑓(𝑏)], unde h =
𝑏 𝑏−𝑎
∫𝑎 𝑓(𝑥)𝑑𝑥 = 2⋅5 5
4. Pentru cazul general cu n subintervale:

b−a  n −1
 b−a  n −1

f (a) + 2 f ( xi ) + f (b) = f ( x0 ) + 2 f ( xi ) + f ( xn )
b
a
f ( x)dx = 
2n  i =1

 2n  i =1 

Ţinând cont de definiţia mediei unei funcţii f(x), se poate de asemenea concluziona că aceasta este:
1 𝑏
𝑓(𝑎) + 2 ∑𝑛−1
1 𝑓(𝑥𝑖 ) + 𝑓(𝑏)
𝑓(𝑥) = ∫ 𝑓(𝑥)𝑑𝑥 =
𝑏−𝑎 𝑎 2𝑛

3
În cazul în care nu există o relaţie matematică pentru funcţia de integrat, ci funcţia este exprimată
prin valori discrete yi (setul de valori y0, y1, y2, …, yn obţinute experimental sau rezultate din calcule),
atunci integrarea prin metoda trapezelor se poate face cu relaţia:
h n

I= 
2
y 0 + 2 
1
yi + y n  ,

unde h are aceeaşi semnificaţie ca şi mai sus (deci, trebuie ca valorile yi să fie măsurate la
intervale [xi-1, xi] echidistante).
Deşi superioară aproximării prin sume Riemann, metoda trapezelor nu este considerată totuşi
suficient de eficientă comparativ cu alte metode. Eroarea de calcul este proporţională cu h3. Raportată
la numărul de intervale n, eroarea poate fi exprimată ca fiind o funcţie de 1/n2, cu alte cuvinte, dacă se
dublează numărul de intervale n, eroarea se va reduce de 4 ori. Reducerea excesivă a pasului (adică un
număr prea mare de intervale n) poate avea însă două efecte: fie se atinge limita de acurateţe a
sistemului de calcul, fie erorile de rotunjire cumulate devin inacceptabil de mari. În plus, un număr
prea mare de intervale are ca efect creşterea prohibitivă a necesarului de resurse de calcul.

Metoda Simpson 1/3


Acurateţea rezultatelor oferite de această metodă este net superioară metodei trapezelor. Este
necesar ca numărul de subintervale n în care se divide intervalul de integrat [a, b] să fie par, întrucât
Simpson 1/3 se bazează pe estimarea ariile unor regiuni cu lăţimea 2h. În figura de mai jos, cele n = 4
subintervale alcătuiesc 2 regiuni.

Metoda trapezelor s-a bazat pe aproximări liniare succesive, prin interpolare, ale funcţiei de
integrat. Simpson 1/3 foloseşte aproximări pătratice succesive ale funcţiei f(x). Cu alte cuvinte, pe
fiecare pereche de subintervale, funcţia va fi aproximată cu o parabolă P(x). Este de aşteptat ca o
parabolă să se “ajusteze” mai bine pe curba originală f(x) decât o dreaptă, deci ca acurateţea
rezultatului să fie mai bună decât în cazul metodei trapezelor (figura următoare - aproximarea funcţiei
f(x) cu parabola P(x) pe două subintervale alăturate).

4
Observaţie: pentru a înţelege metoda de lucru, în figura de mai sus pasul h este mare. În realitate se
alege un pas mic. Când pasul h este mic, polinomul P(x) aproximează foarte bine funcţia originală f(x).
Aria regiunii din figura de mai sus (cuprinsă între parabolă şi axa ox) se calculează ca fiind
produsul dintre bază (2h) şi o înălţime medie (ponderată, în care yi deţine cea mai mare pondere) a
graficului:
𝑦𝑖−1 + 4𝑦𝑖 + 𝑦𝑖+1 ℎ
𝐴𝑟𝑖𝑎 = 2ℎ = (𝑦𝑖−1 + 4𝑦𝑖 + 𝑦𝑖+1 )
6 3
Pentru toate regiunile intervalului de integrare [a, b], dacă se ţine cont de faptul că yi = f(xi),
h=(b-a)/n, iar f(x0) = f(a) şi f(xn) = f(b):

b−a
b

 f ( x)dx  ( f (a) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + 2 f ( x4 ) + ... + 2 f ( xn−2 ) + 4 f ( xn−1 ) + f (b))


a
3n
sau:

𝑏 𝑛−1 𝑛−2
𝑏−𝑎
∫ 𝑓(𝑥)𝑑𝑥 = [𝑓(𝑎) + 4 ∑ 𝑓(𝑥𝑖 ) + 2 ∑ 𝑓(𝑥𝑖 ) + 𝑓(𝑏)]
𝑎 3𝑛
𝑖=1,3,5... 𝑖=2,4,6...

Metoda Simpson 3/8


Funcţionează similar metodei Simpson 1/3, cu deosebirea că funcţia f(x) este aproximată prin
interpolare, pe grupuri de câte 3 subintervale, cu un polinom de ordinul 3. Prin urmare, numărul de
subintervale în care se împarte intervalul [a, b] de pe care se face integrarea trebuie să fie divizibil cu 3.
Acurateţea rezultatului va fi mai mare decât în cazul formulei de integrare Simpson 1/3, ca urmare a
faptului că un polinom de ordinul 3 se “ajustează” mult mai bine pe profilul funcţiei originale decât un
polinom de ordinul 2.

5
Relaţia de calcul al integralei I pentru un singur grup de 3 subintervale este de asemenea o medie
ponderată a “înălţimii” medii a grupului de intervale:

I=
3h
 f ( xi −2 ) + 3 f ( xi −1 ) + 3 f ( xi ) + f ( xi+1 ) = 3(b − a)  f ( xi−2 ) + 3 f ( xi−1 ) + 3 f ( xi ) + f ( xi +1 )
8 8n
Pentru întregul interval de integare [a, b], formula Simpson 3/8 este:

 n
−1 
3(b − a)  n −1
b
f ( x0 ) + 3 f ( xi ) + 2 f ( x3 j ) + f ( xn )
3

 f ( x)dx 
8n  i 3k j =1

a
 
Comparaţie practică între cele trei metode prezentate
Se cere să se rezolve următoarea integrală prin metoda trapezelor, Simpson 1/3 şi Simpson 3/8, cu
6 zecimale:
1.5
I =  e x cos( x)dx
0

Pentru a evalua acurateţea rezultatului, mai întâi se rezolvă integrala analitic, pentru a obţine
rezultatul exact:
1.5
 e x sin( x) e x cos( x) 
I =  +  = 1.893742
 2 2 0
Tabelul următor prezintă rezultatele centralizate obţinute prin cele 3 metode, precum şi erorile
absolută şi relativă, pentru n=6 subintervale şi 6 zecimale. Se observă superioritatea celor două metode
Simpson în raport cu metoda trapezelor.
Eroarea absoluta, E Eroarea relativa, e
Analitic 1.893742
Trapez 1.866943 0.026799 1.4151%
S1/3 1.893575 0.000167 0.0088%
S3/8 1.893742 0 0.0000%

6
Exemplu de calcul erori, pentru metoda trapezelor:

E = 1.893742 −1.866943 = 0.026799

E 0.026799
e= 100 = 100 = 1.415%
valoarea _ exacta 1.893742

7
Rezolvarea numerică a ecuaţiilor diferenţiale

Ecuaţiile diferenţiale sunt ecuaţii în care necunoscuta nu este o variabilă, ci o funcţie. Într-o
ecuaţie diferenţială, există cel puţin o derivată a funcţiei căutate. De exemplu, din ecuaţia următoare
se caută funcţia y(x):
y'+ y = x + 3
Această ecuaţie mai poate fi scrisă şi astfel:
dy
+ y = x + 3 sau f ' ( x) + f ( x) = x + 3 (în acest ultim caz, necunoscuta este f(x) şi este o altă
dx
denumire pentru y(x)).

Exemplu rezolvat, cu derivată de ordinul 2:


y' '+2 y'−3 y = 0
Etapele analitice de rezolvare nu sunt arătate aici, ci doar se prezintă direct cele două soluţii.
Prima soluţie este y( x) = e−3 x

Se verifică soluţia: y' ( x) = −3e−3 x ; y' ' ( x) = 9e−3 x  9e−3 x + 2(−3)e−3 x − 3e−3 x = 0 ; verificat!

A doua soluţie este y( x) = e x

Se verifică soluţia: y' ( x) =e x = y' ' ( x) ;  e x + 2e x − 3e x = 0 ; verificat!

Tipuri de ecuaţii diferenţiale


1. După ordinul maxim al derivatei; exemplul anterior prezintă o ecuaţie diferenţială de ordinul 2;
2. Ecuaţii diferenţiale ordinare (cu funcţie de o variabilă, ca în exemplul anterior - y(x)) sau parţiale
(cu funcţii de două sau mai multe variabile; de exemplu, necunoscuta poate fi o funcţie de 2
variabile: y(z, t), sau f(x, y));
3. Ecuaţii diferenţiale liniare (variabila si derivatele ei trebuie sa fie la puterea I şi sa nu fie
argumente ale unor functii neliniare; coeficienţii sunt constante sau sunt funcţii de x), sau
neliniare (conţin puteri ale funcţiei necunoscute, sau funcţii neliniare care au ca argument funcţia
necunoscută);
Ecuaţiile diferenţiale liniare pot fi reprezentate sub formă polinomială în care necunoscuta este y:
a0 ( x) y + a1 ( x) y'+... + an ( x) y ( n ) = f ( x)

Exemple de ecuaţii diferenţiale neliniare:


2
 d2y 
x  2  = sin( x) (derivata de ordinul 2 este la puterea a doua);
2

 dx 
d2y
y = sin( x) (funcţia necunoscută y(x) este înmulţită cu propria ei derivată de ordinul 2);
dx 2
𝑦 ′ + cos⁡(𝑦) = 0 (necunoscuta y este argument al functiei cos, care este neliniara).

1
Exemple de ecuaţii diferenţiale liniare:
𝑦 ′′ + 2𝑦 ′ + 𝑦 = sin⁡(𝑥) (ecuaţia este liniara în y);
𝑦 ′ − 𝑡 2 𝑦 = 0 (ecuaţia este liniara în y).

Rezolvarea numerică a ecuaţiilor diferenţiale ordinare de ordinul I prin metoda lui Euler
dy
Aceste ecuaţii au forma generală: = f ( x, y ) . Se observă că în dreapta semnului “=” se
dx
amplasează toţi termenii care nu conţin dy/dx, obţinându-se o funcţie oarecare f(x, y).
Dacă ecuaţia ar fi rezolvată analitic, s-ar obţine o relaţie matematică pentru funcţia y(x).
Metodele numerice (inclusiv metoda lui Euler) nu identifică o funcţie (formulă), ci un set de valori.
Dacă funcţia analitică y(x) şi valorile identificate prin metoda lui Euler ar fi reprezentate grafic,
acestea ar fi foarte apropiate (deşi nu s-ar suprapune perfect). Aşadar, toate metodele numerice
(inclusiv Euler) nu sunt perfecte, ci oferă o soluţie aproximativă (introduc o anumită eroare care
poate fi însă acceptabilă). În practică, de cele mai multe ori ecuaţiile diferenţiale sunt dificil sau chiar
imposibil de rezolvat analitic (cu deosebire atunci când sunt neliniare), astfel încât se folosesc metode
numerice de rezolvare în ciuda erorilor de calcul.
În figura de mai jos sunt reprezentate o funcţie y(x) determinată în urma rezolvării analitice a unei
ecuaţii diferenţiale ordinare de ordinul I (cu roşu) şi numeric (cu albastru; punctele sunt determinate
cu metoda lui Euler). Distanţa dintre cele două curbe reprezintă eroarea introdusă de Euler.

Spre deosebire de alte metode numerice, Euler introduce o eroare destul de mare, însă modul
acesteia de funcţionare trebuie cunoscut întrucât stă la baza tuturor metodelor care vor fi studiate în
cadrul acestui capitol.
Etapele rezolvării ecuaţiilor diferenţiale folosind Euler (interpretare geometrică):
Indiferent dacă rezolvarea este analitică sau
numerică, este necesar să se cunoască o condiţie
iniţială. Cu alte cuvinte, să se cunoască o
pereche de valori “de pornire” x0 şi y0 = y(x0)
(exemplele care vor urma vor fi mai edificatore).
Interpretarea geometrică a etapelor de rezolvare
poate fi urmărită în figura alăturată. Pentru o
dy
ecuaţie de forma = f ( x, y ) aceste etape sunt:
dx

2
1. Se cunoaşte condiţia inţială, respectiv punctul de coordonate x0, y0; prin urmare, se poate calcula
valoarea f(x0, y0); aceasta reprezintă de fapt panta funcţiei y(x) în punctul de coordonate (x0, y0)1;
2. Prin punctul de coordonate x0, y0 se trasează o dreaptă având panta f(x0, y0). Dacă s-ar cunoaşte
soluţia analitică (cu albastru în figura anterioară), dreapta ar fi tangentă la curbă în (x0, y0);
3. Se alege un pas h care, în toate etapele care urmează, va rămâne constant; deci: x1 = x0 + h ;
4. Din triunghiul dreptunghic cu catetele h şi y1-y0, panta f(x0, y0) se poate scrie ca fiind:
y −y
f ( x0 , y0 ) = 1 0 (similar tg(α)); prin urmare, se poate determina y1:
h
y1 = y0 + h  f ( x0 , y0 )
Se cunoaşte aşadar acum punctul de coordonate (x1, y1).
5. Se continuă etapele de mai sus, pornind de această dată din (x1, y1). Procedând în mod similar, se
determină punctul de coordonate (x2, y2):
x2 = x1 + h y2 = y1 + h  f ( x1 , y1 )

Observaţie: În figurile de mai sus, erorile (distanţele dintre punctele determinate prin metoda Euler
şi curba analitică) sunt mari ca urmare a faptului că pasul h a fost ales în mod deliberat mare, astfel
încât interpretarea geometrică să fie foarte clar vizualizată. În realitate se lucrează cu un pas h
suficient de mic pentru ca punctele de coordonate (xi, yi) să urmărească îndeaproape curba analitică.

Generalizând relaţiile anterioare, coordonatele unui punct oarecare n pot fi determinate prin metoda
Euler astfel:
xn = xn−1 + h yn = yn−1 + h  f ( xn−1 , yn−1 ) (2)

Exemplu de rezolvare a ecuaţiilor diferenţiale folosind metoda lui Euler:


𝑑𝑦
Se dă următoarea ecuaţie diferenţială: − 2𝑦 = 𝑥
𝑑𝑥

Condiţia iniţială: pentru x0 = 0  y(x0) = y0 = 0


Să se calculeze y(0.4) aplicând metoda lui Euler, cu un pas h = 0.1
--------------------------------

1 Derivata dy/dx în x0 reprezintă panta funcţiei y(x) în x0, iar aceasta este egală (după cum se observă din forma generală a ecuaţiei
diferenţiale) cu f(x0, y0);

3
dy
Se aranjează ecuaţia diferenţială, astfel încât să fie adusă sub forma = f ( x, y ) :
dx
dy
= x + 2 y (1)
dx
Din relaţia (1) se poate trage concluzia că 𝑓(𝑥, 𝑦) = 𝑥 + 2𝑦; aşadar, 𝑓(𝑥0 , 𝑦0 ) = 𝑥0 + 2𝑦0 .
Se calculează x1 şi y1 cu ajutorul ecuaţiilor generale (2):
x1 = x0 + h = 0 + 0.1 = 0.1 y1 = y0 + h  f ( x0 , y0 ) = y0 + h  (x0 + 2 y0 ) = 0 + 0.1 (0 + 2  0) = 0
Se calculează x2 şi y2 cu ajutorul ecuaţiilor generale (2):
x2 = x1 + h = 0.1 + 0.1 = 0.2 y2 = y1 + h  f ( x1 , y1 ) = y1 + h  (x1 + 2 y1 ) = 0 + 0.1 (0.1 + 2  0) = 0.01
Procedând în mod similar se calculează (x3, y3) şi (x4, y4):
x3 = x2 + h = 0.2 + 0.1 = 0.3 y3 = y2 + h  (x2 + 2 y2 ) = 0.01 + 0.1 (0.2 + 2  0.01) = 0.032

x4 = x3 + h = 0.3 + 0.1 = 0.4 y4 = y3 + h  (x3 + 2 y3 ) = 0.032 + 0.1 (0.3 + 2  0.032) = 0.0684


Aşadar, pentru x = 0.4 se obţine y(0.4) = 0.0684.

Exemplu privind eficienţa metodei lui Euler:


dy
Se dă următoarea ecuaţie diferenţială: = y;
dx
Condiţia iniţială este y(0) = 1 (sau, altfel spus: pentru x0 = 0  y(x0) = y0 = 1);
Folosind pasul h = 0.2, se obţin următoarele 4 valori ale funcţiei y(x):
(modul de calcul nu este prezentat; se recomandă să calculaţi singuri aceste valori, similar
exemplului anterior)
y1=1.2; y2=1.44; y3=1.728; y4=2.074; (aceste rezultate corespund valorilor x1=0.2; x2=0.4;
x3=0.6; x4=0.8)
Pentru a studia eficienţa metodei Euler în cazul acestui exemplu şi cu pasul h ales, este necesar ca
rezultatele obţinute să fie comparate cu cele analitice. Soluţia analitică a acestei ecuaţii este:

y( x) = e x (verificare:
dy
dx
( )
'
= e x = e x şi condiţia iniţială: pt x=0  e0 = 1 )

Analitic, rezultatele sunt2: y1=1.221; y2=1.492; y3=1.822; y4=2.226.


Se calculează erorile absolută E şi relativă e, apoi toate rezultatele se centralizează tabelar:
Ei = yi _ analitic − yi _ numeric (de exemplu: E1 = 1.221 − 1.2 = 0.021 )

Ei 0.021
ei = 100 (de exemplu: 𝑒1 = | | ∙ 100 = 1.72)
yi _ analitic 1.221

2 Exemplu de calcul: y1 = y(0.2) = e0.2 = 1.221


4
i xi yi_numeric yi_analitic (ex) Ei ei (%)

0 0 1 1 0 0

1 0.2 1.2 1.221 0.021 1.72%

2 0.4 1.44 1.492 0.052 3.49%

3 0.6 1.728 1.822 0.094 5.16%

4 0.8 2.074 2.226 0.152 6.83%

Fiind vorba despre o funcţie exponenţială (variaţie continuu crescătoare), se observă că eroarea
creşte permanent. Acest aspect este vizibil şi în graficul de mai jos, unde se poate constata că
distanţa dintre cele două curbe (y_analitic, respectiv y_numeric) creşte continuu.

5
Metoda Heun foloseşte de mai multe ori la aceeaşi etapă (la acelaşi pas) metoda lui Euler de rezolvare
a ecuaţiilor diferenţiale, pentru a obţine un rezultat superior din punct de vedere al erorii de calcul.

O bună parte dintre elementele prezentate în continuare au fost deja explicate în cursul anterior. Prin
urmare, înainte de a parcurge acest material, se recomandă să recitiţi cu atenţie cursul anterior.

1. Elemente iniţiale: ca şi în cazul metodei Euler, este necesar să cunoască o condiţie iniţială; cu
alte cuvinte, trebuie cunoscut un punct iniţial de coordonate x0 şi y0. De asemenea, trebuie să se
stabilescă un pas h constant, de obicei cu o valoare mică (v. cursul anterior).

2. Se calculează o primă pantă în punctul de coordonate (x0, y0), pe care o vom denumi panta_1 şi
care va avea aşadar valoarea f(x0, y0). În scopul interpretării geometrice, în figura următoare s-a
trasat o dreaptă cu panta panta_1, tangentă la graficul funcţiei y(x) în punctul de coordonate (x0, y0).

3. Se determină o nouă valoare a lui x, pornind din x0: x1 = x0 + h (figura următoare);

(0)
4. Cu Euler, se calculează 𝑦1 = 𝑦0 + ℎ ⋅ 𝑓(𝑥0 , 𝑦0 ) (în figura următoare s-a notat simplu, y1); ne
reamintim că f(x0, y0) este panta dreptei din figura următoare, deci se poate scrie formal:
(0)
𝑦1 = 𝑦0 + 𝑝𝑎𝑛𝑡𝑎_1 ⋅ ℎ
Până aici a fost aplicată de fapt metoda Euler, însă metoda Heun continuă cu paşii următori.
5. Se calculează o nouă pantă (pe care o vom denumi panta_2) în punctul de coordonate (x1, y1).
Aceasta va avea valoarea f(x1, y1).

- 1 -
6. Se translatează pe verticală dreapta de pantă panta_2 până când va trece prin punctul de
coordonate (x0, y0):

panta _ 1 + panta _ 2 f ( x0 , y0 ) + f ( x1 , y1( 0) )


7. Se calculeaza panta medie: panta _ medie = =
2 2

8. Se foloseşte din nou Euler pentru a recalcula y1, dar cu panta medie:

y1(1) = y0 + panta _ medie h

sau

y1(1) = y0 +
h
2

f ( x0 , y0 ) + f ( x1 , y1( 0) ) 
În figura următoare se observă că dreapta cu pantă medie este bisectoarea unghiului format de cele
două drepte anterioare. De asemenea, se observă că eroare este semnificativ mai mică decât în cazul
în care am fi aplicat doar metoda lui Euler (care se opreşte la pasul 4).

- 2 -
Se pot continua iteraţiile (media [f(x0, y0) + f(x1, noul y1)] / 2, apoi recalculare y1 etc...) pentru a
îmbunătăţi suplimentar soluţia y1, însă de cele mai multe ori se trece la determinarea următorului
punct de coordonate (x2, y2): x2 = x1 + h (etapa 3 de mai sus), apoi y2(0) = y1 + h  f ( x1 , y1 ) (etapa 4
de mai sus) etc.

Exemplu de rezolvare a ecuaţiilor diferenţiale folosind metoda Heun:


dy
Se dă următoarea ecuaţie diferenţială: = 4  e0.8 x − 0.5 y
dx
Notă: aşadar, panta va fi calculata folosind funcţia f ( x, y) = 4  e0.8 x − 0.5 y
Condiţia iniţială: pentru x0 = 0  y(x0) = y0 = 2
Să se calculeze y(1) aplicând metoda lui Heun, cu un pas h = 1. Cunoscându-se că soluţia obţinută
analitic este y(1) = 6.1946, să se calculeze şi erorile de calcul absolută şi relativă.
--------------------------------
Se calculează x1 şi y1 cu ajutorul ecuaţiilor de la paşii (3) şi (4) de mai sus:
x1 = x0 + h = 0 + 1 = 1 y1( 0) = y0 + h  f ( x0 , y0 ) = 2 + 4  e0,80 − 0,5  2 = 5

În acest moment, eroarea absolută este:


E = 6,1946 − 5 = 1,1946
Eroarea relativă este:
E
e= 100 = 19,3%
6,1946
Metoda lui Euler s-ar opri aici. Pentru a îmbunătăţi eroarea, se continuă aplicând Heun. Comasând
paşii (5), (6) şi (7) de mai sus, se calculează panta medie:

panta _ medie =
( ) (
f ( x0 , y0 ) + f ( x1 , y1( 0) ) 4  e0,80 − 0,5  2 + 4  e0,81 − 0,5  5
=
)
= 4,70108...
2 2
Noul y1 este (pasul (8) anterior): y1(1) = y0 + panta _ medie h = 2 + 4,70108 1 = 6,70108
Noua eroare relativă este:
6,1946 − 6,70108
e= 100 = 8,176%
6,1946
Această nouă eroare este de 2,4 ori mai mică decât eroare anterioară (obţinută cu Euler)!
Pentru a îmbunătăţi suplimentar precizia rezultatului, se calculează încă o dată y1. Mai întâi se
recalculează panta medie:

panta _ medie =
( ) (
f ( x0 , y0 ) + f ( x1 , y1(1) ) 4  e0,80 − 0,5  2 + 4  e0,81 − 0,5  6,70108
=
)
= 4,27581...
2 2
Noul y1 va fi deci:

- 3 -
y1( 2) = y0 + panta _ medie h = 2 + 4,275811 = 6,27581

Noua eroare relativă:


6,1946 − 6,27581
e= 100 = 1,31%
6,1946
Această eroare este de 14,7 ori mai mică decât eroarea calculată cu Euler!
După acelaşi algoritm, se poate continua cu pentru a determina punctul de coordonate (x2, y2)
x2 = x1 + h = 1 + 1 = 2

y2(0) = y1( 2) + h  f ( x1 , y1( 2) ) = 6,27581+ 4  e0,82 − 0,5  6,27581 = 9,537905


ş.a.m.d.

Notă:
În exemplul anterior s-au obţinut erori mari, întrucât s-a lucrat cu un pas h mare. În mod normal,
pasul ar trebui sa fie mai mic (cel mult 0,5).

- 4 -
217

REZOLVAREA ECUAŢIILOR DIFERENŢIALE


ORDINARE ŞI A SISTEMELOR DE ECUAŢII
DIFERENŢIALE ORDINARE
INTRODUCERE

Ecuaţiile diferenţiale ordinare sunt acele ecuaţii care depind de o singură


variabilă şi au forma generală

dn y
n
= f ( x, y, y , y , , y ( n−1) ) , (10.1.1)
dx
unde n reprezintă ordinul ecuaţiei.
Ecuaţia (10.1.1) mai poate fi scrisă şi sub formele:
F ( x, y , y , y , , y ( n ) ) = 0 , y ( n ) = f ( x, y, y , y , , y ( n−1) ) .
Pentru n = 1 , ecuaţia deferenţială (10.1.1) capătă forma:
dy
= f ( x, y ) (10.1.2)
dx
sau
y  = f ( x, y) . (10.1.3)

şi exprimă raportul de modificare a variabilei y în funcţie de modificările


variabilei x. Astfel de fenomene sunt des întâlnite în domeniul matematicii
aplicate. Pentru integrarea acestor ecuaţii diferenţiale, se cunosc o serie de
metode clasice [12, 21, 25, 28], metode care dau soluţia analitică. Sunt însă
situaţii când funcţia f ( x, y) nu are soluţie elementară sau coeficienţii acesteia
sunt obţinuţi ca rezultat al unor măsurători. În aceste situaţii, este necesară
găsirea unor metode numerice de rezolvare a ecuaţiei diferenţiale.
În acest capitol ne vom referi la ecuaţiile diferenţiale ordinare de ordinul
întâi
y  = f ( x, y ) , (10.1.4)

cu o singură condiţie iniţială:


y ( x0 ) = y 0 . (10.1.5)

Ecuaţiile diferenţiale de ordin n se transformă într-un sistem de n ecuaţii


diferenţiale de ordinul întâi.
218
O soluţie analitică a ecuaţiei diferenţiale reprezintă o expresie a lui y în
funcţie de x.
Rezolvarea numerică a problemei cu condiţii iniţiale constă în determinarea
unui număr de valori y1 , y 2 ,  , y n , care aproximează valorile adevărate
y ( x1 ), y ( x2 ),  , y ( xn ) , ale curbei integrale y = y(x) , curbă care trece prin
punctul iniţial ( x0 , y0 ) .
În acest sens se cunosc două categorii de metode, şi anume:
- metode directe (metode unipas), care necesită pentru calculul ordonatei
(aproximantei) yi +1 cunoaşterea coordonatelor punctului ( xi , yi ) şi mărimea
pasului de integrare;
- metode indirecte (metode multipas), care necesită pe lângă cunoaşterea
pasului de integrare h, şi cunoaşterea coordonatelor mai multor puncte
anterioare: ( xi , yi ) , ( xi −1 , yi −1 ) , ... . Valorile y1 , y 2 ,  , yi se determină în
general folosind metode unipas. Marea majoritate a metodelor multipas se
numesc metode predictor-corector. Avantajul acestor metode este că, în urma
calculelor se obţine şi o estimare a erorii.

METODE UNIPAS

Metoda dezvoltării în serie Taylor

Cu ajutorul acestei metode se obţine, teoretic, soluţia oricărei ecuaţii


diferenţiale, însă metoda are o aplicabilitate restrânsă ca urmare a faptului că
cere derivatele de ordin superior ale funcţiei.
Fie ecuaţia diferenţială
y  = f ( x, y) , (10.2.1)

cu condiţia iniţială
y ( x0 ) = y 0 . (10.2.2)

Se cere să se determine o aproximantă y1 , a valorii adevărate y1 ( x1 ) , de pe


curba integrală y(x) .
Dacă se dezvoltă în serie Taylor soluţia y(x) , în vecinătatea lui x 0 , se obţine
relaţia
x − x0 ( x − x0 )
y ( x) = y ( x0 ) + y ( x0 ) + y ( x0 ) + 
1! 1!
(10.2.3)
( x − x0 ) ( j ) ( j ) ( x − x0 ) ( j +1) ( j +1)
 + y ( x0 ) + y ( x0 + x),
j! ( j + 1)!
219
în care: 0    1.
Pentru x = x1 rezultă h = x1 − x0 şi soluţia (10.2.3) devine

h h2

y ( x1 ) = y ( x0 ) + y ( x0 ) + y ( x0 ) + 
1! 2!
j ( j +1)
(10.2.4)
h ( j) h
 + y ( x0 ) + y ( j +1) ( x0 + x),
j! ( j + 1)!
Din relaţia (10.2.4) se observă că, pentru determinarea valorii y( x1 ) trebuie
să cunoaştem valorile y ( x0 ) , y ( x0 ) , y ( x0 ) , , y ( j ) ( x0 ) .
Pentru a arăta greutatea aplicări acestei metode, se vor determina primele
derivate ale funcţiei y(x) .
Astfel,
y ( x) = f ( x, y );

dy ( x) d f f f f
y ( x) = = ( f ( x, y ( x)) ) = + y = +f ;
dx dx x y x y
2 f 2 f 2  f
2
f f f
y ( x) = 2 + 2 f +f + ( + f ),
x xy y 2 y x y

şi aşa mai departe.


Odată cu creşterea ordinului derivatelor funcţiei y(x) , calculele devin din ce
în ce mai greoaie. Din acest motiv, pentru determinarea soluţiei ecuaţiei
diferenţiale (10.2.1) cu ajutorul acestei metode, se reţine din dezvoltarea în serie
Taylor (10.2.4) un număr redus de termeni, astfel că valoarea determinată y1
este diferită de cea adevărată y( x1 ) . Metoda dezvoltării în sere Taylor este, de
regulă, folosită drept criteriu de apreciere şi comparare a performanţelor altor
metode de integrare numerică a ecuaţiilor diferenţiale. După cum se va vedea în
continuare, unele metode folosesc formule ce coincid cu seria Taylor până la
termenul în h, altele până la termenul în h 2 şi aşa mai departe.

Metoda lui Euler (liniilor poligonale)

Fie ecuaţia diferenţială y  = f ( x, y) , cu condiţia iniţială y( x0 ) = y0 . Dacă


din dezvoltarea în serie Taylor (10.2.4) se reţin primii doi termeni, soluţia
ecuaţiei diferenţiale (10.2.1), în nodul x1 , este de forma:

y1 = y0 + hy ( x0 ) (10.2.5)
220
sau
y1 = y0 + hf ( x0 , y0 ) , (10.2.5’)

ceea ce înseamnă că s-a înlocuit curba y(x) cu tangenta ei în punctul ( x0 , y0 ) .


În continuare, punctul ( x1 , y1 ) se consideră a fi condiţie iniţială pentru
determinarea lui y 2 . Continuând calculele se obţine un şir de valori
y1 , y 2 , , yi +1 , care aproximează valorile adevărate y( x1 ), y( x2 ), , y( xi +1 ) , de
pe curba integrală y(x) , astfel că formula lui Euler este de forma

yi +1 = yi + hf ( xi , yi ) , h = xi +1 − xi , i = 0, n − 1. (10.2.6)

După cum se observă din relaţia (10.2.6), metoda Euler foloseşte pentru
calculul lui yi +1 doar panta în punctul ( xi , yi ) .
Prin compararea formulei (10.2.6) cu dezvoltarea în serie Taylor (10.2.4) se
observă că eroarea de trunchiere este de ordinul lui h 2 , adică E y = O(h 2 ) .
Reprezentarea geometrică a formulei lui Euler, pentru integrarea ecuaţiilor
diferenţiale, este arătată în figura 10.2.1.

Fig. 10.2.1. Reprezentarea geometrică a formulei lui Euler

Din figura 10.2.1 se observă că s-a înlocuit curba integrală y(x) cu o linie
poligonală formată din segmentele A0 B1 , B1 B2 , B2 B3 , … . Se observă de
asemenea că numai în punctul A0 cele două curbe coincid. Din acest motiv,
metoda a căpătat unele modificări care conduc la îmbunătăţirea soluţiei ecuaţiei
diferenţiale date.
Această metodă mai este folosită şi ca punct de plecare pentru alte metode de
rezolvare.
221

Metoda lui Euler îmbunătăţită

Această metodă foloseşte, pentru determinarea soluţiei, media pantelor din


punctele A( xi , yi ) şi B( xi + h, yi + hyi ) . Punctul B (v.fig.10.2.2) este notat în
metoda lui Euler (metoda liniilor poligonale) cu ( xi +1 , yi +1 ) , unde
yi +1 = yi + hf ( xi , yi ) , şi se află pe dreapta 1 de pantă yi = f ( xi , yi ) . Prin
punctul B se duce dreapta  2 de pantă yi+1 , unde yi+1 = f ( xi + h, yi + hyi ) , şi
care diferă de panta y ( xi +1 ) de pe curba integrală y = y(x) . Media aritmetică a
pantelor din punctele A şi B este dată de relaţia
f ( xi , yi ) + f ( xi + h, yi + hyi ))
( xi , yi , h) = . (10.2.7)
2
şi reprezintă panta dreptei  . Prin punctul A se duce o dreaptă paralelă la
dreapta  , a cărei ecuaţie este
y = yi + ( x − xi )( xi , yi , h) (10.2.8)

Fig. 10.2.2. Reprezentarea geometrică a metodei Euler îmbunătăţită

Intersecţia dreptelor (10.2.8) şi x = xi +1 se face în punctul C, de coordonate


xi +1 , yi +1 , unde:
h
yi +1 = yi + [ f ( xi , yi ) + f ( xi + h, yi + hyi )] , i = 0, n − 1 (10.2.9)
2
sau
h
yi +1 = yi + [ f ( xi , yi ) + f ( xi + h, yi + hf ( xi , yi )] , i = 0, n − 1 . (10.2.9’)
2
Relaţia (10.2.9) poartă numele de relaţia lui Euler îmbunătăţită şi este
222
identică cu soluţia metodei seriei Taylor până la termenul în h 2 [Dorn]. Eroarea
de trunchiere este în acest caz de ordinul lui h 3 . După cum se va vedea, metoda
Euler îmbunătătită este o metodă Runge-Kutta de ordinul doi (v. § 10.2.5).
Conform relaţiei (10.2.9) s-a întocmit procedura de calcul EULERIMB,
prezentată în ANEXA I şi a cărei linie de definiţie este:

PROCEDURE EULERIMB(FCT:PROC11;X0,Y0,H:REAL;NP:INTEGER;VAR
Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali ai procedurii EULERIMB au următoarele semnificaţii:


parametrii de intrare:
FCT – numele unei proceduri, construită de utilizator, cu ajutorul căreia se
calculează valorile funcţiei f ( x, y) ; linia de definiţie a procedurii FCT este :
PROCEDURE FCT(X,Y:REAL ;VAR F:REAL;VAR KOD:INTEGER);
iar parametrii formali au următoarele semnificaţii:
parametrii de intrare: X = x, Y = y;
parametii de ieşire: F = f ( x, y) , iar parametrul KOD rezultă cu valoarea 0 când
rezolvarea este normală sau cu valoarea 1 când s-a detectat o eroare în calculul
funcţiei f ( x, y) ;

X0 = x 0 ;
Y0 = y 0 ;
H = h - pasul de integrare;
NP = n + 1 - numărul de puncte în care se integrează ecuaţia diferenţială;
parametrii de ieşire:
Y – tablou cu dimensiunea n + 1 , care conţine valoarea iniţială y 0 şi valorile
calculate y1 , y 2 , y n ;
KOD – cod de eroare, care rezultă cu valoarea 0 când funcţionarea este
normală şi cu valoarea 1 atunci când apar probleme la calculul funcţiei f ( x, y) .

Exemplu de calcul
Fie ecuaţia diferenţială
sin( x)
y =
y
cu condiţia iniţială:
y(0) = 1.
Să se integreze numeric ecuaţia dată pentru x  [0,  / 2] şi pasul reţelei de
integrare h = 0.174533 [rad], folosind metoda Euler imbunătăţită. Soluţia
numerică să se compare cu soluţia analitică.
223

Rezolvare

În urma integrării analitice a ecuaţiei diferenţiale date, folosind metoda


y2
separării variabilelor, se obţine: = − cos( x) + C . Determinând constanta de
2
integrare, folosind condiţia iniţială, se obţine C = 3 / 2 , iar expresia analitică a
soluţiei ecuaţiei diferenţiale date este:

y ( x) = 3 − 2 cos( x) .

Pentru integrarea numerică a ecuaţiei diferenţiale date, se foloseşte


procedură EULERIMB, procedură care are printre parametrii de intrare şi
procedura FCT pentru calculul valorilor funcţiei f ( x, y) . În tabelul 10.2.1 se
prezintă procedura FCT.
Tabelul 10.2.1
PROCEDURE FCT(X,Y:REAL;VAR F:REAL;VAR KOD:INTEGER);
BEGIN
KOD:=0;
IF Y <= 1.E-12 THEN
BEGIN
KOD:=1;
EXIT;
END
ELSE
F:=SIN(X)/Y;
END;

Programul principal de calcul este prezentat în tabelul 10.2.2.

Tabelul 10.2.2
PROGRAM INTEGRAREA_ECUATIEI_DIFERENTIALE;
{FOLOSIREA METODEI EULER IMBUNATATITA}
USES CRT,METODNUM;
VAR Y,Y1:VECTOR1;
VAR I,J,NP,KOD:INTEGER;
VAR X,X0,Y0,H:REAL;
F:TEXT;
{$F+}
PROCEDURE FCT(X,Y:REAL;VAR F:REAL;VAR KOD:INTEGER);
BEGIN
KOD:=0;
IF Y <= 1.E-12 THEN
BEGIN
KOD:=1;
EXIT;
END
ELSE
F:=SIN(X)/Y;
END;
{$F-}
BEGIN
ASSIGN(F,'ECUATDIF.DAT');
REWRITE(F);
CLRSCR;
NP:=10;
224
X0:=0;
Y0:=1;
H:=0.174533;
EULERIMB(FCT,X0,Y0,H,NP,Y,KOD);
WRITELN( 'NR.NOD X Y_ANALITIC Y_NUMERIC');
WRITELN(F, 'NR.NOD X Y_ANALITIC Y_NUMERIC');
FOR I:=1 TO NP DO
BEGIN
X:=(I-1)*H;
Y1[I]:=SQRT(3-2*COS(X));
WRITELN(I:4,X:13:6,Y1[I]:13:6,Y[I]:13:6);
WRITELN(F,I:4,X:13:6,Y1[I]:13:6,Y[I]:13:6);
READLN;
END;
CLOSE(F);
END.

În urma rulării programului principal de calcul din tabelul 10.2.2, rezultă


datele din tabelul 10.2.3.
Tabelul 10.2.3
NR.NOD X Y_ANALITIC Y_NUMERIC
1 0.000000 1.000000 1.000000
2 0.174533 1.015079 1.015154
3 0.349066 1.058591 1.058643
4 0.523599 1.126033 1.125968
5 0.698132 1.211574 1.211330
6 0.872665 1.309361 1.308905
7 1.047198 1.414214 1.413538
8 1.221731 1.521828 1.520936
9 1.396264 1.628713 1.627617
10 1.570797 1.732051 1.730768

Metoda lui Euler modificată

În cazul metodei Euler modificată se construieşte dreapta 1 (v. fig. 10.2.3),


de pantă y  = f ( xi , yi ) şi care trece prin punctul A. La intersecţia dreptei 1 cu
dreapta x = xi + h / 2 se găseşte punctul B de coordonate xi + h / 2, yi + h / 2 yi .
În punctul B se calculează panta
h h
( xi , yi , h) = f ( xi + , yi + yi ) . (10.2.10)
2 2
Dreapta a cărei pantă este dată de relaţia (10.2.10) o notăm cu  2 . Prin
punctul A se duce o dreapta paralelă cu  2 şi a cărei ecuaţie este:

y = yi + ( x − xi )( xi , yi , h) .

Pentru x = xi +1 , se obţine

h h
yi +1 = yi + hf ( xi + , yi + yi ) , i = 0, n − 1 . (10.2.11)
2 2
225
şi reprezintă ordonata punctului căutat, C.
Eroarea de trunchiere, în cazul metodei Euler modificată, este de ordinul lui
h3.

Fig. 10.2.3. Reprezentarea geometrică a metodei Euler modificată

Conform relaţiei (10.2.11) s-a întocmit procedura de calcul EULERMOD,


prezentată în ANEXA I.
Linia de definiţie a procedurii de calcul este:

PROCEDURE EULERMOD(FCT:PROC11;X0,Y0,H:REAL;NP:INTEGER;VAR
Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali au aceleaşi semnificaţii cu cei ai procedurii EULERIMB.

Soluţiile ambelor metode, Euler îmbunătăţită şi Euler modificată, pot fi


exprimate prin relaţia:
y = yi + h( xi , yi , h) ,

în care  poate fi pus sub forma:


( xi , yi , h) = a1 f ( xi , yi ) + a2 f ( xi + b1h, yi + b2 hyi ) . (10.2.12)

Expresia pantei (10.2.12) se particularizează, după cum urmează:

- pentru metoda Euler îmbunătăţită avem:


1
a1 = a2 = , b1 = b2 = 1 ;
2
226
- pentru metoda Euler modificată
1
a1 = 0 , a 2 = 1, b1 = b2 = .
2

Exemplu de calcul

Considerând datele problemei din exemplul 1 de la metoda Euler


îmbunătăţită, se cere să se rezolve problema cu ajutorul metodei Euler
modificată.

Rezolvare

Pentru integrarea numerică a ecuaţiei date se foloseşte procedura de calcul


EULERMOD. Programul principal de calcul este asemănător celui din tabelul
10.2.2, iar în urma rulării rezultă datele din tabelul 10.2.4.

Tabelul 10.2.4
NR.NOD X Y_ANALITIC Y_NUMERIC
1 0.000000 1.000000 1.000000
2 0.174533 1.015079 1.015212
3 0.349066 1.058591 1.059062
4 0.523599 1.126033 1.126904
5 0.698132 1.211574 1.212788
6 0.872665 1.309361 1.310810
7 1.047198 1.414214 1.415795
8 1.221731 1.521828 1.523461
9 1.396264 1.628713 1.630344
10 1.570797 1.732051 1.733650

Metoda generală Runge-Kutta

Fie ecuaţia diferenţială


y  = f ( x, y) ,

cu condiţia iniţială
y ( x0 ) = y 0 .

În cadrul acestei metode se caută construirea unei funcţii yi +1 , dependentă de


h (pasul reţelei), uşor de calculat. Se va pune condiţia ca dezvoltarea în serie
Taylor a acestei funcţii, după puterile lui h, să corespundă cu dezvoltarea în serie
a soluţiei exacte y ( xi +1 ) = y ( xi + h) până la o putere cât mai mare a lui h,
independent de f ( x, y) . Funcţia yi +1 se scrie sub forma:
227
p
y i +1 = yi +  c pj k j , i = 0, n - 1 , . (10.2.13)
j =1
unde:
p este un număr întreg;
c pj - constante ce trebuie determinate;
k j - valori ale funcţiei f ( x, y) , în puncte vecine punctului ( xi , yi ) , înmulţite
cu h , adică:
j −1
k j = hf ( j ,  j ) ,  j = xi +  j h ,  j = yi +   ji k i , j = 2, p , (10.2.14)
i =1
cu  j ,  ji constante ce trebuie determinate.
Pentru j = 1 se consideră: 1 = 0 ; 11 = 0 ; 1 = xi ; 1 = yi .
Particularizând se obţine:
k1 = hf ( xi , yi ) ;
k 2 = hf ( xi +  2 h, yi +  21k1 ) ; (10.2.15)
k3 = hf ( xi +  3 h, yi + 31k1 + 32 k 2 ) ;
...............................
Pentru p = 1 , rezultă:

yi +1 = yi + c11k1 (10.2.16)
sau
yi +1 = yi + c11hf ( xi , yi ) . (10.2.16’)

Dacă din dezvoltarea în serie Taylor,

h h2
y ( xi +1 ) = y ( xi ) + y ( xi ) + y ( xi ) + 
1! 2!
h j ( j) h ( j +1) ( j +1)
 + y ( xi ) + y ( xi + x),
j! ( j + 1)!
a soluţiei reale, se reţin termenii până la h inclusiv, se obţine:
y ( xi +1 ) = y ( xi ) + hf ( xi , yi ) . (10.2.17)

Din identificarea relaţiilor (10.2.16’) şi (10.2.17), rezultă c11 = 1 .


După înlocuire în relaţia (10.2.16’), se obţine:
yi +1 = yi + hf ( xi , yi ) , i = 0, n − 1. (10.2.18)

relaţie care este identică cu (10.2.6), adică s-a obţinut formula lui Euler.
228
Pentru p = 2 , din relaţiile (10.2.13) şi (10.2.14), rezultă:

yi +1 = yi + c21k1 + c22 k 2 =
(10.2.19)
= yi + c21hf ( xi , yi ) + c22 hf ( xi +  2 h, yi +  21hf ( xi , yi )
sau
yi +1 = yi + c21 hf ( xi , yi ) + c22 h[ f ( xi , yi ) +  2 hf x ( xi , yi ) +
, (10.2.19’)
+  21 hf y ( xi , yi ) f ( xi , yi )]
unde:
f f
f x = , f y = .
x y
Prin identificare cu dezvoltarea în serie Taylor a soluţiei exacte y( xi +1 ) în
jurul lui xi , se obţine:

c 21 + c22 = 1;
1
c 22  2 = ; (10.2.20)
2
1
c 22  21 = .
2
Relaţiile 10.2.20 formează un sistem de trei ecuaţii cu 4 necunoscute. Din
relaţia (10.2.19), se observă că c 22 trebuie să fie diferit de zero, astfel că se
presupune:
c22 = 1 / 2 (10.2.21)
şi rezultă:
1
c21 = ;
2
 2 = 1; (10.2.22)
 21 = 1.

După înlocuirea constantelor (10.2.21) şi (10.2.22) în relaţia (10.2.13), se


obţine soluţia:
1
yi +1 = yi + (k1 + k 2 ) , i = 0, n − 1 , (10.2.23)
2
în care:
k1 = hf ( xi , yi );
(10.2.24)
k 2 = hf ( xi + h, yi + hf ( xi , yi )).
229

Înlocuind relaţiile (10.2.24) în relaţia (10.2.23), se obţine formula Runge-


Kutta de ordinul doi, formulă care este identică cu formula lui Euler
îmbunătăţită.

Cazul cel mai des utilizat este p = 4 , astfel că relaţia (10.2.13) devine:

yi +1 = yi + c41k1 + c42 k 2 + c43 k3 + c44 k 4 ) , (10.2.25)

unde:
k1 = hf ( xi , yi );
k 2 = hf ( xi +  2 h, yi +  21k1 );
(10.2.26)
k 3 = hf ( xi +  3 h, yi +  31k1 +  32 k 2 );
k 4 = hf ( xi +  4 h, yi +  41k1 +  42 k 2 +  43 k 3 ).
Dezvoltând în serie Taylor după h relaţia (10.2.25) şi identificând
coeficienţii cu cei din dezvoltarea în serie Taylor a soluţiei exacte y( xi +1 ) , se
obţine un sistem de 10 ecuaţii cu 13 necunoscute. Cea mai utilizată soluţie este:
1
yi +1 = yi + (k1 + 2k 2 + 2k 3 + k 4 ) , i = 0, n − 1 , (10.2.27)
6
în care:
k1 = hf ( xi , yi );
h k
k 2 = hf ( xi + , yi + 1 );
2 2 (10.2.28)
h k
k 3 = hf ( xi + , yi + 2 );
2 2
k 4 = hf ( xi + h, yi + k 3 ).

Principalele avantaje ale acestor metode sunt:


- se autopornesc, adică pentru determinarea punctului curent ( xi +1 , yi +1 )
avem nevoie doar de informaţiile punctul precedent, ( xi , yi ) ;
- nu necesită calculul derivatelor funcţiei f ( x, y) .
Ca dezavantaj putem arăta faptul că, pentru determinarea fiecărei
aproximante se cere evaluarea funcţiei f ( x, y) pentru mai multe valori ale lui x.
Eroarea de trunchiere, în cazul metodei Runge-Kutta de ordinul patru, este
de ordinul lui h 5 .
Conform algoritmului expus, s-a întocmit procedura de calcul RUNGEKT4,
prezentată în ANEXA I, şi a cărei linie de definiţie este:
230
PROCEDURE RUNGEKT4(FCT:PROC11;X0,Y0,H:REAL;NP:INTEGER;VAR
Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali ai procedurii RUNGEKT4 au aceleaşi semnificaţii cu


parametrii procedurilor EULERIMB şi EULERMOD.

Exemple de calcul

Exemplul 1. Considerând datele exemplului 1 de la metoda Euler


îmbunătăţită, rezultă valorile din tabelul 10.2.5.

Tabelul 10.2.5
NR.NOD X Y_ANALITIC Y_NUMERIC
1 0.000000 1.000000 1.000000
2 0.174533 1.015079 1.015079
3 0.349066 1.058591 1.058592
4 0.523599 1.126033 1.126034
5 0.698132 1.211574 1.211576
6 0.872665 1.309361 1.309362
7 1.047198 1.414214 1.414216
8 1.221731 1.521828 1.521830
9 1.396264 1.628713 1.628714
10 1.570797 1.732051 1.732053

Analizând datele din tabelul 10.2.5, rezultă o apropiere foarte mare între cele
două curbe integrale, obţinute pe cale analitică şi pe cale numerică.

Exemplul 2.

Să se integreze ecuaţia diferenţială


sin 2 y
y = − ,
sin 2 x
pentru x  [ / 4,  / 3] , cu pasul h = 0.01745329 [rad] şi condiţia iniţială
y( / 4) = 1. Să se compare soluţia numerică cu soluţia analitică.

Rezolvare

Pentru integrarea numerică a ecuaţiei diferenţiale date, se foloseşte


procedura RUNGEKT4, din biblioteca METODNUM. Soluţia analitică este dată
de relaţia y = arctan(C / tan x) . Pentru x =  / 4 , rezultă C = tan(1) .
Programul principal de calcul este prezentat în tabelul 10.2.6.
231

Tabelul 10.2.6
PROGRAM REZOLVARE_ECUATII_DIFERENTIALE;
USES CRT,METODNUM;
VAR Y,Y1:VECTOR1;
VAR I,J,NP,KOD:INTEGER;
VAR c,x,X2,X0,Y0,H:REAL;
F:TEXT;
{$F+}
PROCEDURE FCT(X,Y:REAL;VAR F:REAL;VAR KOD:INTEGER);
BEGIN
KOD:=0;
IF Y <= 1.E-8 THEN
BEGIN
KOD:=1;
EXIT;
END
ELSE
F:=-SIN(2*Y)/SIN(2*X);
END;
{$F-}
BEGIN
ASSIGN(F,'ECUATDIF.DAT');
REWRITE(F);
CLRSCR;
NP:=16;
X0:=3.14159265/4;
Y0:=1;
H:=0.0174533;
C:=SIN(1)/COS(1);
RUNGEKT4(FCT,X0,Y0,H,NP,Y,KOD);
WRITELN( 'NR.NOD Y_ANALITIC Y_NUMERIC');
WRITELN(F, 'NR.NOD Y_ANALITIC Y_NUMERIC');
FOR I:=1 TO NP DO
BEGIN
X:=X0+(I-1)*H;
Y1[I]:=ATAN2(C*COS(X),SIN(X));
WRITELN(F,I:4,Y[I]:13:6,Y1[I]:13:6);
WRITELN(I:4,Y[I]:13:6,Y1[I]:13:6);
READLN;
END;
CLOSE(F);
END.

După rularea programului de calcul rezultă valorile din tabelul 10.2.7.


Tabelul 10.2.7
NR.NOD Y_ANALITIC Y_NUMERIC
1 1.000000 1.000000
2 0.984013 0.984013
3 0.967790 0.967790
4 0.951322 0.951322
5 0.934603 0.934603
6 0.917628 0.917628
7 0.900388 0.900388
8 0.882879 0.882879
9 0.865093 0.865093
10 0.847024 0.847024
11 0.828666 0.828666
12 0.810014 0.810014
13 0.791062 0.791062
14 0.771805 0.771805
15 0.752238 0.752238
16 0.732356 0.732356
232

Metoda Runge Kutta de ordinul patru


pentru rezolvarea sistemelor de ecuaţii diferenţiale ordinare

Fie sistemul de ecuaţii diferenţiale


y = f ( x, y, z );
; (10.2.29)
z  = g ( x, y, z ),
cu condiţiile iniţiale
y ( x0 ) = y 0 ;
z ( x0 ) = z 0 .

Aplicând algoritmul Runge-Kutta de ordinul patru, pentru ecuaţii diferenţiale


ordinare, se obţine soluţia sistemului (10.2.29), de forma:
1
yi +1 = yi + (k1 + 2k 2 + 2k3 + k 4 );
6
(10.2.30)
1
zi +1 = zi + (m1 + 2m2 + 2m3 + m4 ),
6
i = 0, n − 1,
unde:
k1 = hf ( xi , yi , zi ); m1 = hg ( xi , yi , zi );
h k m h k m
k 2 = hf ( xi + , yi + 1 , zi + 1 ); m2 = hg ( xi + , yi + 1 , zi + 1 );
2 2 2 2 2 2
h k m h k m
k3 = hf ( xi + , yi + 2 , zi + 2 ); m3 = hg ( xi + , yi + 2 , zi + 2 );
2 2 2 2 2 2
k 4 = hf ( xi + h, yi + k3 , zi + m3 ); m4 = hg ( xi + h, yi + k3 , zi + m3 ).

Pe baza algoritmului prezentat, s-a întocmit procedura de calcul SRUNGKT4,


prezentată în UNIT-ul METODNUM din ANEXA I.
Procedura de calcul SRUNGKT4 a fost realizată pentru cazul general, adică
pentru un sistem de ne ecuaţii diferenţiale.

PROCEDURE SRUNGKT4(FCT1:PROC12; NE,NP:INTEGER;X0,H:REAL;CIN:


VECTOR1; VAR YY:MAT;VAR KOD:INTEGER);

Parametrii formali ai procedurii SRUNGKT4 au următoarele semnificaţii:


parametrii de intrare:
FCT1 – numele unei proceduri construită de utilizator, cu ajutorul căreia se
233
calculează valorile funcţiilor f ( x, y, z) , g ( x, y, z), . Linia de definiţie a
procedurii FCT1 este :
PROCEDURE FCT1(X:REAL;Y:VECTOR1;VAR F:VECTOR1;VAR
KOD:INTEGER);
iar parametrii formali au următoarele semnificaţii:
parametrii de intrare:
X = x;
Y – tablou cu dimensiunea ne , unde ne reprezintă numărul de ecuaţii
diferenţiale ale sistemului; în tabloul Y se introduc funcţiile y = y(x) , z = z (x), ,
după cum urmează: Y[1] = y(x) , Y[2] = z (x), ;
parametrii de ieşire:
F – tablou cu dimensiunea ne , în care se introduc valorile funcţiilor
f = f ( x, y, z, ) , g = g ( x, y, z, ), , după cum urmează:
F[1] = f ( x, y, z, ) , F[2] = g ( x, y, z, ), ;
KOD – cod de eroare care rezultă cu valoarea 0 (zero) când rezolvarea este
normală sau cu valoarea 1 când s-a detectat o eroare în calculul funcţiilor
f = f ( x, y, z, ) , g = g ( x, y, z, ), ;
NE = n e - numărul de ecuaţii diferenţiale ale sistemului;
NP = n + 1 - numărul de puncte în care se integrează ecuaţiile diferenţiale ale
sistemului;
X0 = x 0 ;
H = h - pasul de integrare;
CIN - tablou cu dimensiunea n e , în care se introduc condiţiile iniţiale, şi
anume: CIN[1] = y 0 , CIN[2] = z 0 , ;
parametrii de ieşire:
YY – matrice cu dimensiunea [ne , n + 1] , care conţine valorile iniţiale y 0 ,
z 0 , , precum şi valorile calculate y1 , y 2 , y n , z1 , z 2 , z n , ;
KOD – cod de eroare, care rezultă cu valoarea 0 când funcţionarea este
normală şi cu valoarea 1 atunci când apar erori la calculul funcţiilor
f = f ( x, y, z, ) , g = g ( x, y, z, ), .

Exemple de calcul

Exemplul 1. Să se integreze numeric sistemul de ecuaţii diferenţiale


 y  = cos( x) + sin( x) + e − x − y − 2 z;
 (10.2.31)
 z  = sin( x ) − cos( x ) + 2 y − z ,
cu condiţiile iniţiale:
x 0 = 0 ; y 0 = 1; z 0 = 0 ,
pe intervalul [0,1], cu pasul de integrare h = 0.1, folosind metoda Runge-Kutta
de ordinul 4.
234

Rezolvare

Pentru integrarea numerică a sistemului de ecuaţii diferenţiale (10.2.31), se


foloseşte procedura SRUNGKT4, din biblioteca de programe METODNUM.
Programul principal de calcul este prezentat în tabelul 10.2.8.
Tabelul 10.2.8
PROGRAM SISTEME_DE_ECUATII_DIFERENTIALE;
USES CRT,METODNUM;
VAR CIN,Y,Z:VECTOR1;
YY:MAT;
I,J,NE,NP,KOD:INTEGER;
X,X0,H:REAL;
F1:TEXT;
{$F+}
PROCEDURE FCT1(X:REAL;Y:VECTOR1;VAR F:VECTOR1;VAR KOD:INTEGER);
VAR C1,C2:REAL;
BEGIN
IF X > 1.E+5 THEN
BEGIN
KOD:=1;
EXIT;
END
ELSE
F[1]:=COS(X)+SIN(X)+EXP(-X)-Y[1]-2*Y[2];
F[2]:=SIN(X)-COS(X)+2*Y[1]-Y[2];
KOD:=0;
END;
{$F-}
BEGIN
ASSIGN(F1,'SISTEMED.DAT');
REWRITE(F1);
CLRSCR;
NE:=2;
NP:=10;
X0:=0;
CIN[1]:=1;
CIN[2]:=0;
H:=0.1;
SRUNGKT4(FCT1,NE,NP,X0,H,CIN,YY,KOD);
IF KOD > 0 THEN
BEGIN
WRITELN(' KOD=',KOD);
READLN;
HALT;
END;
FOR I:=1 TO NP DO
BEGIN
X:=X0+(I-1)*H;
Y[I]:=COS(X)*(1+EXP(-X)*SIN(X));
Z[I]:=SIN(X)*(1+EXP(-X)*SIN(X));
END;
WRITELN(' Nr.nod Y_ANALITIC Y_NUMERIC Z_ANALITIC Z_NUMERIC');
WRITELN(F1,' Nr.nod Y_ANALITIC Y_NUMERIC Z_ANALITIC Z_NUMERIC');
FOR J:=1 TO NP DO
BEGIN
WRITELN(J-1:4,Y[J]:14:6,YY[1,J]:12:6,Z[J]:12:6,YY[2,J]:12:6);
WRITELN(F1,J-1:4,Y[J]:14:6,YY[1,J]:12:6,Z[J]:12:6,YY[2,J]:12:6);
READLN;
END;
CLOSE(F1);
END.
235

Soluţia analitică a sistemului de ecuaţii (10.2.31) este [12]:

y = cos( x)(1 + e − x sin( x));


(10.2.32)
z = sin( x)(1 + e − x sin( x)).

În tabelul 10.2.9 se prezintă atât soluţia analitică, cât şi soluţia numerică a


sistemului de ecuaţii (10.2.31).

Tabelul 10.2.9
Nr.nod Y_ANALITIC Y_NUMERIC Z_ANALITIC Z_NUMERIC
0 1.000000 1.000000 0.000000 0.000000
1 1.084886 1.084888 0.108852 0.108849
2 1.139481 1.139486 0.230984 0.230981
3 1.164485 1.164493 0.360217 0.360215
4 1.161490 1.161500 0.491070 0.491068
5 1.132772 1.132783 0.618836 0.618836
6 1.081093 1.081105 0.739615 0.739618
7 1.009522 1.009535 0.850309 0.850314
8 0.921275 0.921287 0.948581 0.948589
9 0.819578 0.819589 1.032798 1.032809

Exemplul 2. Fie circuitul R-L-C, din figura 10.2.4. Aplicând legea a doua
a lui Kirchhoff, rezultă
di (t )
ev (t ) = R  i (t ) + L + u c (t ) , (10.2.33)
dt
în care: i (t ) este curentul din buclă, ev (t ) - tensiunea electromotoare aplicată,
iar u c (t ) este tensiunea de pe condensator. Variaţia de tensiune pe condensator
este dată de relaţia:
du c (t ) i (t )
= , (10.2.34)
dt C
unde C este capacitatea condensatorului.

K t=0 R L

i(t)

ev uc(t) C

Fig.10.2.4. Circuit R-L-C serie


236

Relaţiile (10.2.33) şi (10.2.34) formează un sistem de două ecuaţii


diferenţiale de ordinul unu, în necunoscutele i (t ) şi u c (t ) , şi anume:

di (t ) 1
= [ev (t ) − R  i (t ) − u c (t )] ;
dt L
du c (t ) i (t )
= . (10.2.35)
dt C
Se pun condiţiile iniţiale
i(0) = 0 şi uc (0) = 0 ,
şi se cere să se rezolve sistemul de ecuaţii (10.2.35) pentru t  [0, 0.001] s, unde
t = 0 este momentul la care se închide comutatorul K (v. figura 10.2.4). Se
cunosc: ev (t ) = 15 V, R = 200  , L = 0.01 H, C = 1  F.

Rezolvare

Pentru rezolvarea sistemului (10.2.35) se apelează procedura SRUNGKT4,


din biblioteca METODNUM. Pentru actualizarea parametrilor procedurii
SRUNGKT4, se consideră: NE = 2 - numărul de ecuaţii; NP = 26 - numărul de
puncte de pe axa parametrului independent t; H = 0.00004 s - pasul reţelei de
integrare.

Programul principal de calcul este prezentat în tabelul 10.2.10.

Tabelul 10.2.10
PROGRAM SISTEME_DE_ECUATII_DIFERENTIALE;
USES CRT,METODNUM;
VAR CIN,Y,Z:VECTOR1;
YY:MAT;
I,J,NE,NP,KOD:INTEGER;
T,X0,H:REAL;
F1:TEXT;
{$F+}
PROCEDURE FCT1(X:REAL;Y:VECTOR1;VAR F:VECTOR1;VAR KOD:INTEGER);
VAR R,L,C,EV:REAL;
BEGIN
R:=200;
L:=0.01;
C:=0.000001;
EV:=15;
F[1]:=(EV-R*Y[1]-Y[2])/L;
F[2]:=Y[1]/C;
KOD:=0;
END;
{$F-}
BEGIN
ASSIGN(F1,'SISTEMED.DAT');
REWRITE(F1);
CLRSCR;
237
NE:=2;
NP:=26;
X0:=0;
CIN[1]:=0;
CIN[2]:=0;
H:=0.00004;
SRUNGKT4(FCT1,NE,NP,X0,H,CIN,YY,KOD);
IF KOD > 0 THEN
BEGIN
WRITELN(' KOD=',KOD);
READLN;
HALT;
END;
WRITELN(' Nr.nod T I UC');
WRITELN(F1,' Nr.nod T I UC');
FOR J:=1 TO NP DO
BEGIN
T:=(J-1)*H;
WRITELN(J-1:4,T:10:5,YY[1,J]:12:6,YY[2,J]:12:6);
WRITELN(F1,J-1:4,T:10:5,YY[1,J]:12:6,YY[2,J]:12:6);
READLN;
END;
CLOSE(F1);
END.

După rularea programului rezultă valorile curentului în buclă şi tensiunii pe


condensator, în funcţie de parametrul idependent t. Datele numerice sunt
prezentate în tabelul 10.2.11.
Tabelul 10.2.11
Nr.nod T I UC
0 0.00000 0.000000 0.000000
1 0.00004 0.040160 0.928000
2 0.00008 0.053847 2.873805
3 0.00012 0.054148 5.065663
4 0.00016 0.048401 7.129992
5 0.00020 0.040560 8.912743
6 0.00024 0.032630 10.375272
7 0.00028 0.025521 11.534998
8 0.00032 0.019553 12.432646
9 0.00036 0.014747 13.114988
10 0.00040 0.010985 13.626438
11 0.00044 0.008101 14.005521
12 0.00048 0.005924 14.283931
13 0.00052 0.004303 14.486849
14 0.00056 0.003106 14.633795
15 0.00060 0.002231 14.739621
16 0.00064 0.001596 14.815469
17 0.00068 0.001137 14.869605
18 0.00072 0.000807 14.908101
19 0.00076 0.000571 14.935386
20 0.00080 0.000403 14.954669
21 0.00084 0.000284 14.968259
22 0.00088 0.000199 14.977816
23 0.00092 0.000140 14.984521
24 0.00096 0.000098 14.989216
25 0.00100 0.000068 14.992498

Diagramele de variaţie ale parametrilor i (t ) şi u c (t ) sunt prezentate în figura


10.2.5.
238
0.06 16
i [A]i uc [V]
0.05 uc 14
12
0.04
10
0.03 8
6
0.02 i
4
0.01
2
0 0
0 0.0005 0.001 0.0015
t [s]
Fig. 10.2.5. Diagramele de variaţie ale parametrilor i(t) şi uc(t)
t

Metoda Runge-Kutta de ordinul patru


pentru rezolvarea ecuaţiilor diferenţiale de ordin superior

O ecuaţie diferenţială de ordinul n se transformă într-un sistem de n ecuaţii


diferenţiale de ordinul întâi.
Pentru exemplificare, se va considera ecuaţia diferenţială de ordinul doi

d2 y dy
= f ( x, y , ), (10.2.36)
dx 2 dx
cu condiţiile iniţiale:
y ( x0 ) = y0 ;
(10.2.37)
y ( x0 ) = y0 .
dy
Dacă în relaţia (10.2.36) se face notaţia v = , se obţine un sistem de două
dx
ecuaţii diferenţiale de ordinul unu
dv
= f ( x, y, v);
dx
(10.2.38)
dy
= v,
dx
cu condiţiile iniţiale:
y ( x0 ) = y 0 ;
(10.2.39)
v ( x0 ) = y0 .
239
Soluţia sistemului (10.2.38) este:
1
vi +1 = vi + (k1 + 2k 2 + 2k3 + k 4 );
6
(10.2.40)
1
yi +1 = yi + (m1 + 2m2 + 2m3 + m4 ),
6
i = 0, n − 1,
unde:
k1 = hf ( xi , yi , vi ); m1 = hvi ;
h m k k1
k 2 = hf ( xi + , yi + 1 , vi + 1 ); m2 = h(vi + );
2 2 2 2
h m k k
k3 = hf ( xi + , yi + 2 , vi + 2 ); m3 = h(vi + 2 );
2 2 2 2
k 4 = hf ( xi + h, yi + k3 , vi + m3 ); m4 = h(vi + k3 ).

Rezolvarea sistemului de ecuaţii diferenţiale (10.2.38), cu condiţiile iniţiale


(10.2.39), se face cu ajutorul procedurii SRUNGKT4 prezentată în paragraful
10.2.6.

Exemplu de calcul
Un pendul a cărui masă m se presupune concentrată în
punctul A (fig. 10.2.6) este atârnat de punctul O printr-un fir de O
lungime l . Sub acţiunea gravitaţiei, pendulul oscilează; se vor
neglija frecările şi alte influenţe. Dacă unghiul dintre pendul şi 4
l
verticală la momentul t este  , atunci asupra masei m
acţionează forţa mg vertical în jos, iar în direcţia tangentei la A
traiectoria descrisă de punctul material A forţa mg sin  , unde g E
este acceleraţia gravitaţională. După legea a doua a lui Newton 2
această forţă este egală cu produsul dintre masa m şi acceleraţia mg
d 
2
tangenţială l 2 . Pentru unghiul (t ) se obţine ecuaţia
dt
diferenţială neliniară
d 2
ml 2 = −mg sin  ; (10.2.41)
dt
sau
d 2 g
2
= − sin  . (10.2.42)
dt l
Se cere să se determine unghiul  şi derivata acestuia în raport cu timpul,
d / dt , pentru un număr de 50 de puncte, considerând pasul h = 0.047862 [s] şi
condiţiile iniţiale:
240
t = 0 ;  = 1.57079[rad], = 0 . (10.2.43)

Rezolvare

Pentru integrarea ecuaţiei diferenţiale de ordinul doi (10.2.42), se fac


notaţiile:
d dv g
=v; = − sin  , (10.2.44)
dt dt l
şi se obţine un sistem de două ecuaţii diferenţiale de ordinul unu. Sistemul
(10.2.44) se rezolvă cu ajutorul procedurii SRUNGKT4, folosind condiţiile
iniţiale (10.2.43).
Programul principal de calcul este prezentat în tabelul 10.2.12. Valorile lui
 şi ale derivatei, d / dt , au fost introduse într-o matrice YY, cu două linii şi
n+1 coloane; pe prima linie au fost introduse valorile lui  , iar pe linia a doua
valorile lui d / dt .
Tabelul 10.2.12
PROGRAM ECUATII_DIFERENTIALE_DE_ORDIN_SUPERIOR;
USES CRT,METODNUM;
VAR CIN:VECTOR1;
YY:MAT;
I,J,NE,NP,KOD:INTEGER;
X0,H,T:REAL;
F1:TEXT;
{$F+}
PROCEDURE FCT1(X:REAL;Y:VECTOR1;VAR F:VECTOR1;VAR KOD:INTEGER);
BEGIN
F[1]:=Y[2];
F[2]:=-9.81/0.981*SIN(Y[1]);
KOD:=0;
END;
{$F-}
BEGIN
ASSIGN(F1,'SISTEMED.DAT');
REWRITE(F1);
CLRSCR;
NE:=2;
NP:=50;
X0:=0;
CIN[1]:=1.57079;
CIN[2]:=0;
H:=0.047862;
SRUNGKT4(FCT1,NE,NP,X0,H,CIN,YY,KOD);
IF KOD > 0 THEN
BEGIN
WRITELN(' KOD=',KOD);
READLN;
HALT;
END;
WRITELN(' NR_NOD T FI FI_DERIVAT');
WRITELN(' ========================================');
WRITELN(F1,' NR_NOD T FI FI_DERIVAT');
WRITELN(F1,' ========================================');
FOR J:=1 TO NP DO
BEGIN
T:=(J-1)*H;
WRITELN(J-1:5,T:12:5,YY[1,J]:12:5,YY[2,J]:12:5);
241
WRITELN(F1,J-1:4,T:12:5,YY[1,J]:12:5,YY[2,J]:12:5);
READLN;
END;
CLOSE(F1);
END.

În urma rulării programului au rezultat datele din tabelul 10.2.13.


Tabelul 10.2.13
NR_NOD T FI FI_DERIVAT
========================================
0 0.00000 1.57079 0.00000
1 0.04786 1.55934 -0.47861
2 0.09572 1.52498 -0.95704
3 0.14359 1.46774 -1.43433
4 0.19145 1.38773 -1.90806
5 0.23931 1.28522 -2.37360
6 0.28717 1.16077 -2.82357
7 0.33503 1.01535 -3.24749
8 0.38290 0.85053 -3.63201
9 0.43076 0.66856 -3.96158
10 0.47862 0.47245 -4.22007
11 0.52648 0.26597 -4.39279
12 0.57434 0.05350 -4.46892
13 0.62221 -0.16018 -4.44340
14 0.67007 -0.37024 -4.31795
15 0.71793 -0.57205 -4.10070
16 0.76579 -0.76151 -3.80469
17 0.81365 -0.93524 -3.44562
18 0.86152 -1.09059 -3.03957
19 0.90938 -1.22568 -2.60112
20 0.95724 -1.33926 -2.14226
21 1.00510 -1.43057 -1.67188
22 1.05296 -1.49921 -1.19594
23 1.10083 -1.54502 -0.71789
24 1.14869 -1.56792 -0.23932
25 1.19655 -1.56792 0.23930
26 1.24441 -1.54502 0.71787
27 1.29227 -1.49921 1.19592
28 1.34014 -1.43057 1.67186
29 1.38800 -1.33926 2.14224
30 1.43586 -1.22569 2.60110
31 1.48372 -1.09060 3.03955
32 1.53158 -0.93525 3.44560
33 1.57945 -0.76152 3.80467
34 1.62731 -0.57206 4.10068
35 1.67517 -0.37025 4.31794
36 1.72303 -0.16020 4.44339
37 1.77089 0.05349 4.46892
38 1.81876 0.26596 4.39279
39 1.86662 0.47244 4.22007
40 1.91448 0.66855 3.96159
41 1.96234 0.85052 3.63202
42 2.01020 1.01534 3.24751
43 2.05807 1.16076 2.82358
44 2.10593 1.28521 2.37362
45 2.15379 1.38773 1.90808
46 2.20165 1.46773 1.43435
47 2.24951 1.52497 0.95705
48 2.29738 1.55933 0.47863
49 2.34524 1.57079 0.00002
242

În figura 10.2.7 se prezintă diagramele de variaţie ale unghiului  şi


derivatei d / dt .
6
FI [rad]
4
DFI DFI
[rad/s] 2
FI
0

-2

-4

-6
0 0.5 1 1.5 2 2.5
t [s]

Fig. 10.2.7. Diagramele de variaţie ale unghiului  şi derivatei d / dt .

METODE MULTIPAS

Metoda Adams

Metoda Adams constă în înlocuirea derivatelor din dezvoltarea în serie


Taylor

h h2 h3 h4
yi +1 = yi + f ( xi , yi ) + 
f ( xi , yi ) 
f ( xi , yi ) + f ( xi , yi ) + 
1! 2! 3! 4!
(10.3.1)
prin diferenţe regresive.
Cu notaţia f i = f ( xi , yi ) , realţia (10.3.1) devine:

h h2 h3 h4
yi +1 = yi + fi + f i + f i+ f i+  . (10.3.1’)
1! 2! 3! 4!
Dacă se foloseşte simbolul D pentru a indica derivatele lui y, atunci
dezvoltarea în serie Taylor

h h2 h3 h 4 ( IV )
yi +1 = yi + yi + yi+ yi+ yi + (10.3.2)
1! 2! 3! 4!
devine:
243
2
h h h3 3 h4 4
yi +1 = yi + Dyi + D yi +
2
D yi + D yi +  =
1! 2! 3! 4!
(10.3.3)
hD h 2 D 2 h 3 D 3 h 4 D 4
= (1 + + + + +  ) yi .
1! 2! 3! 4!
Cu ajutorul dezvoltării în serie a lui e  x ,
x x x 2 x3
e = 1 +  + ,
1! 2! 3!
operatorul diferenţial din relaţia (10.3.3) poate fi scris simbolic,

hD h 2 D 2 h 3 D 3 h 4 D 4
1+ + + + +  = e hD , (10.3.4)
1! 2! 3! 4!
astfel că:
yi +1 = e hD yi . (10.3.5)

Dacă se schimbă h cu -h în relaţia (10.3.5), se obţine:


y i −1 = e − hD y i (10.3.6)

astfel că prima diferenţă regresivă yi = yi − yi −1 devine:

yi = (1 − e − hD ) yi (10.3.7)
sau
hD h 2 D 2 h 3 D 3 h 4 D 4
yi = ( − + − +  ) yi . (10.3.8)
1! 2! 3! 4!
Relaţia (10.3.8) exprimă diferenţa finită regresivă, cu ajutorul derivatelor lui
y calculate în punctul i.
Dacă relaţia (10.3.7) se scrie simbolic sub forma:

 = 1 − e − hD , (10.3.9)
atunci diferenţa finită de ordinul doi este:

 2 = (1 − e − hD ) 2 = 1 − 2e − hD + e −2hD =
hD h 2 D 2 h 3 D 3 h 4 D 4
= 1 − 2(1 − + − + − ) +
1! 2! 3! 4!
2hD 4h 2 D 2 8h 3 D 3 16h 4 D 4
+ (1 − + − + −  ),
1! 2! 3! 4!
sau
7 4 4
 2 = h 2 D 2 − h3 D3 + h D − (10.3.10)
12
244
În mod analog, se determină diferenţa finită regresivă de ordinul trei
3 5
3 = h3 D3 − h 4 D 4 + h5 D5 −  (10.3.11)
2 4
ş.a.m.d.
Pentru a exprima derivatele lui y în funcţie de diferenţele finite regresive, se
scrie relaţia (10.3.9) sub forma:

e − hD = 1 −  , (10.3.12)
se aplică simbolic logaritmii naturali ambilor membri ai relaţiei (10.3.12), şi se
obţine:
ln e −hD = ln(1 − ) ,

de unde, prin dezvoltarea în serie a lui ln(1 − ) , rezultă:

 2 3  4
hD =  + + + + . (10.3.13)
2 3 4
Derivatele de ordin superior se obţin prin ridicarea simbolică la putere a relaţiei
(10.3.13), şi anume:
11 4 5 5
h2 D 2 =  2 + 3 +  +  + ;
12 6
3 7
h3 D3 = 3 +  4 + 5  ; (10.3.14)
2 4
17
h 4 D 4 =  4 + 2 5 +  6  ;
6
5 25
h5 D5 = 5 +  6 + 7 
2 6
Prin înlocuirea derivatelor din relaţia (10.3.1), cu dezvoltările din relaţiile
(10.3.13) şi (10.3.14), se obţine formula lui Adams, şi anume:
1 1 1 1 1
yi +1 = yi + h[ f i + ( +  2 +  3 +  4 +  5 +  ) f i +
2 2 3 4 5
1 11 5
+ ( 2 +  3 +  4 +  5 +  ) ff i +
6 12 6
1 3 7
+ ( 3 +  4 +  5 +  ) f i +
24 2 4
1
+ ( 4 + 2 5 +  ) f ( xi , yi ) + ( 5 +  ) f i +  ]
120
(10.3.15)
245
După prelucrări simple, relaţia (10.3.15) devine:
1 5 3 251 4
yi +1 = yi + h[(1 +  +  2 +  3 +  +  ) fi . (10.3.16)
2 12 8 720
sau
1 5 3 251 4
yi +1 = yi + h[( f i + f i +  2 f i +  3 f i +  fi +  ) ,
2 12 8 720
(10.3.16’)
care este formula Adams de integrare numerică a ecuaţiilor diferenţiale ordinare.
Din relaţia (10.3.16’), se observă că primele k valori ale soluţiei se
calculează cu ajutorul unei metode unipas, unde k este ordinul maxim al
diferenţelor finite regresive folosite.
Folosind relaţia:
 m f i = f i − Cm
1
f i −1 + C m2 f i −2 +  + (−1) m f i −m , m = 1, k ,

unde k este ordinul maxim al diferenţelor finite regresive utilizate în relaţia


(10.3.16’), se obţin diverse cazuri particulare, şi anume:
h
k = 1, yi +1 = yi + (3 f i − f i −1 ) , i = 1, n ; (10.3.17)
2
h
k = 2, yi +1 = yi + (23 f i − 16 f i −1 + 5 f i −2 ) , i = 2, n ; (10.3.18)
12
h
k = 3, yi +1 = yi + (55 f i − 59 f i −1 + 37 f i −2 − 9 f i −3 ) , i = 3, n ; (10.3.19)
24
h
k = 4, yi +1 = yi + (1901f i − 2774 f i −1 + 2616 f i −2 − 1274 f i −3 + 251 f i −4 ) ,
720
(10.3.20)
i = 4, n ,
ş.a.m.d.

Formula (10.3.16’) se poate obţine şi dacă se pleacă de la relaţia evidentă


x
y( xi +1 ) − y( xi ) = x i +1 f ( x, y( x))dx , (10.3.21)
i

unde y(x) este soluţia ecuaţiei diferenţiale. Prin înlocuirea funcţiei f ( x, y( x))
printr-un polinom Newton de interpolare stânga de ordinul k (v. §.8.2.4.2), se
obţine:
xi +1 f i 2 fi
yi +1 = yi +  x [ f i + ( x − xi ) + ( x − xi )( x − xi −1 ) +  +
i 1!h 2!h 2
(10.3.22)
k fi
+ ( x − xi )( x − xi −1 )  ( x − xi −k +1 )] dx .
k! h k
246
Dacă în relaţia (10.3.22) se face schimbarea de variabilă u = ( x − xi ) / h , se
obţine relaţia (10.3.16’)
Din formula (10.3.16’) sau cazurile particulare ale acesteia, prezentate în
relaţiile (10.3.17), (10.3.18), (10.3.19), (10.3.20, se observă ca metoda Adams
nu se autoporneşte. În acest caz, este necesară utilizarea unei alte metode (Euler,
Runge-Kutta, etc.) pentru determinarea soluţiei aproximative pentru primele
puncte, după care se aplică metoda Adams.

Pentru k = 3 (relaţia (10.3.19)) s-a întocmit procedura de calcul ADAMS, a


cărei linie de definiţie este:

PROCEDURE ADAMS(FCT:PROC11;RUNGEKT4:PROC13;X0,Y0,H:REAL;
NP:INTEGER;VAR Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali ai procedurii ADAMS au următoarele semnificaţii:


parametrii de intrare:
FCT – numele unei proceduri, construită de utilizator, cu ajutorul căreia se
calculează valorile funcţiei f ( x, y) ; linia de definiţie a procedurii FCT este :
PROCEDURE FCT(X,Y:REAL ;VAR F:REAL;VAR KOD:INTEGER);
iar parametrii formali au următoarele semnificaţii:
parametrii de intrare: X = x, Y = y;
parametrii de ieşire:
F = f ( x, y) ;
KOD – cod de eroare, care rezultă cu valoarea 0 când rezolvarea este
normală sau cu valoarea 1 când s-a detectat o eroare în calculul funcţiei
f ( x, y) ;
RUNGEKT4 – numele procedurii întocmită în § 10.2.5, corespunzătoare
metodei Runge-Kutta de ordinul patru; procedura este utilizată pentru calculul
aproximativ al primelor patru odonate (s-a inclus şi punctul corespunzător
condiţiei iniţiale;
X0 = x 0 ;
Y0 = y 0 ;
H = h – pasul de integrare;
NP = n + 1 –numărul de puncte în care se integrează ecuaţia diferenţială;
parametrii de ieşire:
Y – tablou cu dimensiunea n + 1 , care conţine valoarea iniţială y 0 şi valorile
calculate y1 , y 2 , y n ;
KOD – cod de eroare, care rezultă cu valoarea 0 când funcţionarea este
normală şi cu valoarea 1 atunci când apar probleme la calculul funcţiei f ( x, y) ;
247

Exemplu de calcul

Fie ecuaţia diferenţială


y = 2 y / x + x 2e x , (10.3.23)

cu condiţia iniţială y(1) = 0 .


Se cere să se integreze numeric ecuaţia diferenţială (10.3.23), pentru
x  [1, 3] , cu pasul h = 0.2 , folosind metoda Adams.

Rezolvare

Pentru integrarea numerică a ecuaţiei diferenţiale date, se apelează procedura


ADAMS, din biblioteca METODNUM. Pentru comparare, se dă soluţia analitică
a ecuaţiei, adică: y = x 2 (e x − e) .
Programul principal de calcul se prezintă în tabelul 10.3.1.

Tabelul 10.3.1
PROGRAM INTEGRAREA_ECUATIEI_DIFERENTIALE;
{FOLOSIREA METODEI EULER IMBUNATATITA}
USES CRT,METODNUM;
VAR Y,Y1:VECTOR1;
VAR I,J,ITER,NP,KOD:INTEGER;
VAR X,X0,Y0,H,EPS:REAL;
F:TEXT;
{$F+}
PROCEDURE FCT(X,Y:REAL;VAR F:REAL;VAR KOD:INTEGER);
BEGIN
KOD:=0;
IF X <= 1.E-12 THEN
BEGIN
KOD:=1;
EXIT;
END
ELSE
F:=2*Y/X+X*X*EXP(X);
END;
{$F-}

BEGIN
ASSIGN(F,'ECUATDIF.DAT');
REWRITE(F);
CLRSCR;
NP:=11;
X0:=1;
Y0:=0;
H:=0.2;
ADAMS(FCT,RUNGEKT4,X0,Y0,H,NP,Y,KOD);
WRITELN( 'NR.NOD X Y_ANALITIC Y_NUMERIC');
WRITELN(F, 'NR.NOD X Y_ANALITIC Y_NUMERIC');
FOR I:=1 TO NP DO
BEGIN
X:=X0+(I-1)*H;
Y1[I]:=X*X*(EXP(X)-EXP(1));
WRITELN(I:4,X:13:6,Y1[I]:13:6,Y[I]:13:6);
248
WRITELN(F,I:4,X:13:6,Y1[I]:13:6,Y[I]:13:6);
READLN;
END;
CLOSE(F);
END.

Rezultatele calculelor sunt prezentate în tabelul 10.3.2.

Tabelul 10.3.2
NR.NOD X Y_ANALITIC Y_NUMERIC
1 1.000000 0.000000 0.000000
2 1.200000 0.866643 0.866379
3 1.400000 2.620360 2.619741
4 1.600000 5.720962 5.719895
5 1.800000 10.793625 10.776043
6 2.000000 18.683097 18.635756
7 2.200000 30.524581 30.437082
8 2.400000 47.836193 47.693465
9 2.600000 72.639284 72.421054
10 2.800000 107.614701 107.296094
11 3.000000 156.305296 155.855295

Algoritmul predictor-corector al metodei Euler îmbunătăţită

În cazul metodelor predictor-corector, se prezice mai întâi o valoare pentru


yi +1 , după care se utilizează o altă formulă pentru a corecta această valoare. De
regulă, se notează valoarea prezisă cu yip+1 , iar valoarea corectată cu yic+1 .
Formula de corecţie se repetă până când diferenţa, în valoare absolută, a două
valori consecutive ale lui yi +1 este mai mică decât un număr pozitiv  , impus.

Dacă pentru formula predictoare se foloseşte metoda liniilor poligonale,


atunci avem relaţia

yip+1 = yi + hf ( xi , yi ) , i = 0, n − 1 . (10.3.24)

Pentru formula corectoare se utilizează relaţia (10.2.9’), în care


yi + hf ( xi , yi ) s-a înlocuit cu yip+1 , şi anume:

h
yic+1 = yi + [ f ( xi , yi ) + f ( xi +1 , yip+1 )] , i = 0, n − 1. (10.3.25)
2
Algoritmul metodei este, deci:

Pasul 1. Se calculează ordonată yip+1 , în punctul xi +1 , cu formula predictoare


(10.3.24);
Pasul 2. Se calculează yic+1 cu formula corectoare (10.3.25), considerând
249
valoarea yip+1 de la pasul 1. Pasul 2 se repetă, luând pentru yip+1 valoarea yic+1 de
la iteraţia anterioară, până când este îndeplinită condiţia:

yic+1 − yip+1   . (10.3.26)

Dacă s-a îndeplinit condiţia (10.3.26), într-un număr prestabilit de iteraţii, se


trece la calculul ordonatei punctului următor. Dacă nu este îndeplinită condiţia
(10.3.26), atunci fie numărul de iteraţii a fost ales prea mic, fie procedeul nu
converge.

Linia de definiţie a procedurii de calcul este următoarea:

PROCEDURE EULERPC(FCT:PROC11;X0,Y0,H,EPS:REAL;NP,ITER:INTEGER;VAR
Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali ai procedurii EULERPC au următoarele semnificaţii:


parametrii de intrare:
FCT – numele unei proceduri, construită de utilizator, cu ajutorul căreia se
calculează valorile funcţiei f ( x, y) ; linia de definiţie a procedurii FCT este :
PROCEDURE FCT(X,Y:REAL ;VAR F:REAL;VAR KOD:INTEGER);
iar parametrii formali au următoarele semnificaţii:
parametrii de intrare: X = x, Y = y;
parametrii de ieşire: F = f ( x, y) , iar parametrul KOD rezultă cu valoarea 0
când rezolvarea este normală sau cu valoarea 1 când s-a detectat o eroare în calculul
funcţiei f ( x, y) ;
X0 = x 0 ;
Y0 = y 0 ;
H = h – pasul de integrare;
EPS =  ;
NP = n + 1 –numărul de puncte în care se integrează ecuaţia diferenţială;
ITER – numărul de iteraţii admis la calculul ordonatei într-un punct ;
parametrii de ieşire:
Y – tablou cu dimensiunea n + 1 , care conţine valoarea iniţială y 0 şi valorile
calculate y1 , y 2 , y n ;
KOD – cod de eroare, care rezultă cu valoarea 0 când funcţionarea este
normală şi cu valoarea 1 atunci când apar probleme la calculul funcţiei f ( x, y)
sau procedeul nu converge în numărul de iteraţii admis.

Exemplu de calcul

Fie ecuaţia diferenţială (10.3.23). Se cere integrarea numerică a acesteia,


250
folosind algoritmul predictor-corector al metodei Euler îmbunătăţită.

Rezolvare

Pentru integrarea ecuaţiei date, se foloseşte procedura EULERPC, din


biblioteca de programe METODNUM. Programul principal de calcul este
prezentat în tabelul 10.3.3, iar valorile ordonatelor, de pe curbele integrale
(analitic şi numeric), sunt prezentate în tabelul 10.3.4.

Tabelul 10.3.3
PROGRAM INTEGRAREA_ECUATIEI_DIFERENTIALE;
{FOLOSIREA METODEI PREDICTOR-CORECTOR EULER IMBUNATATITA}
USES CRT,METODNUM;
VAR Y,Y1:VECTOR1;
VAR I,J,NP,KOD,ITER:INTEGER;
VAR X,X0,Y0,H,EPS:REAL;
F:TEXT;
{$F+}
PROCEDURE FCT(X,Y:REAL;VAR F:REAL;VAR KOD:INTEGER);
BEGIN
KOD:=0;
IF X <= 1.E-12 THEN
BEGIN
KOD:=1;
EXIT;
END
ELSE
F:=2*Y/X+X*X*EXP(X);
END;
{$F-}
BEGIN
ASSIGN(F,'ECUATDIF.DAT');
REWRITE(F);
CLRSCR;
NP:=11;
X0:=1;
Y0:=0;
H:=0.2;
EPS:=0.000001;
ITER:=20;
EULERPC(FCT,X0,Y0,H,EPS,NP,ITER,Y,KOD);
WRITELN( 'NR.NOD X Y_ANALITIC Y_NUMERIC');
WRITELN(F, 'NR.NOD X Y_ANALITIC Y_NUMERIC');
FOR I:=1 TO NP DO
BEGIN
X:=X0+(I-1)*H;
Y1[I]:=X*X*(EXP(X)-EXP(1));
WRITELN(I:4,X:13:6,Y1[I]:13:6,Y[I]:13:6);
WRITELN(F,I:4,X:13:6,Y1[I]:13:6,Y[I]:13:6);
READLN;
END;
CLOSE(F);
END.

Rezultatele calculelor sunt prezentate în tabelul 10.3.4.


Tabelul 10.3.4
NR.NOD X Y_ANALITIC Y_NUMERIC
1 1.000000 0.000000 0.000000
2 1.200000 0.866643 0.899910
251
3 1.400000 2.620360 2.709946
4 1.600000 5.720962 5.897002
5 1.800000 10.793625 11.094963
6 2.000000 18.683097 19.159383
7 2.200000 30.524581 31.238955
8 2.400000 47.836193 48.868709
9 2.600000 72.639284 74.091266
10 2.800000 107.614701 109.614275
11 3.000000 156.305296 159.014413

Precizia mai mică, se datorează faptului că ordonata corespunzătoare nodului


2 se calculează cu metoda liniilor poligonale Euler, după care se aplică
algoritmul predictor-corector.

Algoritmul predictor-corector al lui Adams

În cazul algoritmului predictor-corector al lui Adams, se foloseşte ca formulă


predictoare una din relaţiile: (10.3.17), ..., (10.3.20). Pentru determinarea
formulei corectoare se porneşte de la relaţia (10.3.21), în care funcţia f ( x, y( x))
se înlocuieşte cu un polinom Newton stânga de ordinul k, utilizând nodurile:
xi +1 , xi , , xi −k +2 , după cum urmează:

xi +1 f i +1  2 f i +1
yic+1 = yi +  x [ f i +1 + ( x − xi +1 ) + ( x − xi +1 )( x − xi ) +  +
i 1!h 2!h 2
 k f i +1
+ ( x − xi +1 )( x − xi ) ( x − xi −k + 2 )] dx .
k! h k
(10.3.27)
În relaţia (10.3.27) se face schimbarea de variabilă u = ( x − xi +1 ) / h , se
integrează şi se obţine:
1 1 1 1 4
yic+1 = yi + h[( f i +1 − f i +1 −  2 f i +1 −  3 f i +1 −  f i +1 +  ) .
2 12 24 720
(10.3.28)
Folosind expresiile diferenţelor regresive
f i +1 = f i +1 − f i ;
 2 f i +1 = f i +1 − 2 f i + f i −1 ;
 3 f i +1 = f i +1 − 3 f i + 3 f i −1 − f i −2 ;
............
şi particularizând relaţia (10.3.28) pentru diferiţi k, se obţine:

h
k = 1, yic+1 = yi + ( f i +1 + f i ) , i = 1, n ; (10.3.29)
2
252
h
k = 2, yic+1 = yi + (3 f i +1 + 8 f i − f i −1 ) , i = 2, n ; (10.3.30)
12
h
k = 3, yic+1 = yi + (9 f i +1 + 19 f i − 5 f i −1 + f i −2 ) , i = 3, n ; (10.3.31)
24
h
k = 4, yic+1 = yi + (269 f i +1 + 574 f i − 156 f i −1 + 34 f i −2 − f i −3 ) , (10.3.32)
720
i = 4, n ,
ş.a.m.d,
unde f i +1 = f ( xi +1 , y ip+1 ) .

Dacă se folosesc şi relaţiile (10.3.17), (10.3.18), (10,3,19), (10.3.20) ca


formule predictoare, se pot forma combinaţiile predictor-corector, după cum
urmează:
h
k = 1, yip+1 = yi + (3 f i − f i −1 ) , i = 1, n ;
2
h
yic+1 = yi + ( f i +1 + f i ) , i = 1, n ;
2
h
k = 2, yip+1 = yi + (23 f i − 16 f i −1 + 5 f i −2 ) , i = 2, n ;
12
h
yic+1 = yi + (3 f i +1 + 8 f i − f i −1 ) , i = 2, n ;
12
h
k = 3, yip+1 = yi + (55 f i − 59 f i −1 + 37 f i −2 − 9 f i −3 ) , i = 3, n ;
24
h
yic+1 = yi + (9 f i +1 + 19 f i − 5 f i −1 + f i −2 ) , i = 3, n ;
24
h
k = 4, yip+1 = yi + (1901f i − 2774 f i −1 + 2616 f i −2 − 1274 f i −3 + 251 f i −4 ) ,
720
i = 4, n
h
yic+1 = yi + (269 f i +1 + 574 f i − 156 f i −1 + 34 f i −2 − f i −3 ) ;
720
i = 4, n .

Pentru pornirea procesului de calcul al soluţiei, este necesară folosirea unei


formule unipas pentru determinarea primelor valori ale ordonatelor. De
exemplu, pentru k = 3 se poate folosi metoda Runge-Kutta de ordinul patru,
care este suficient de precisă pentru problemele tehnice.
Indiferent de setul de formule predictor-corector folosite, procesul iterativ se
opreşte atunci când diferenţa, în valoare absolută, a două valori yic+1 calculate
253
consecutiv este mai mică decât un număr   0 impus de către utilizator.
Procedura de calcul, întocmită pentru k = 3 , are următoarea linie de
definiţie:
PROCEDURE ADAMSPC(FCT:PROC11;RUNGEKT4:PROC13;X0,Y0,H,EPS:REAL;NP,
ITER:INTEGER;VAR Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali ai procedurii ADAMSPC au aceleaşi semnificaţii cu cei ai


procedurii EULERPC, corespunzătoare algoritmului predictor-corector al
metodei Euler îmbunătăţită. În plus, s-a adăugat parametrul formal
RUNGEKT4, care are numele procedurii întocmită pentru metoda unipas
Runge-Kutta de ordinul patru. Procedura RUNGEKT4 este utilizată pentru
calculul ordonatelor primelor patru puncte (considerând şi punctul corespunzător
condiţiei iniţiale).

Exemplu de calcul

Se consideră aceeaşi ecuaţie (10.3.23) şi se cere integrarea ei cu ajutorul


algoritmului predictor-corector al lui Adams. Programul de calcul este
asemănător celui din tabelul 10.3.3, iar rezultatele sunt prezentate în tabelul
10.3.5.
Tabelul 10.3.5
NR.NOD X Y_ANALITIC Y_NUMERIC
1 1.000000 0.000000 0.000000
2 1.200000 0.866643 0.866379
3 1.400000 2.620360 2.619741
4 1.600000 5.720962 5.719895
5 1.800000 10.793625 10.793906
6 2.000000 18.683097 18.685628
7 2.200000 30.524581 30.530449
8 2.400000 47.836193 47.846796
9 2.600000 72.639284 72.656396
10 2.800000 107.614701 107.640561
11 3.000000 156.305296 156.342723

Algoritmul predictor-corector al lui Milne

În cazul algoritmului propus de Milne formulele de predicţie şi corecţie sunt


[30]:
4h
yip+1 = yi −3 + (2 f i −2 − f i −1 + 2 f i ) ;
3
h
yic+1 = yi −1 + ( f i −1 4 f i + f i +1 ) ,
3
254
5
cu erori de trunchiere de ordinul lui h .
Procedura de calcul are următoarea linie de definiţie:
PROCEDURE MILNEPC(FCT:PROC11;RUNGEKT4:PROC13;X0,Y0,H,EPS:REAL;NP,
ITER:INTEGER;VAR Y:VECTOR1;VAR KOD:INTEGER);

Parametrii formali ai procedurii MILNEPC, au aceleaşi semnificaţii cu cei ai


procedurii EULERPC.

Exemplu de calcul

Considerând ecuaţia diferenţială (10.3.23), se cere integrarea acesteia pentru


x  [1, 3] , cu pasul h = 0.2 , folosind algoritmul predictor-corector al lui Milne.

Rezolvare

Pentru integrarea ecuaţiei (10.3.23) se apelează procedura MILNEPC şi


rezultă valorile din tabelul 10.3.6.

Tabelul 10.3.6
NR.NOD X Y_ANALITIC Y_NUMERIC
1 1.000000 0.000000 0.000000
2 1.200000 0.866643 0.866379
3 1.400000 2.620360 2.619741
4 1.600000 5.720962 5.719895
5 1.800000 10.793625 10.793244
6 2.000000 18.683097 18.682692
7 2.200000 30.524581 30.525266
8 2.400000 47.836193 47.837508
9 2.600000 72.639284 72.642420
10 2.800000 107.614701 107.619494
11 3.000000 156.305296 156.313128

Folosirea uneia sau alteia dintre metodele prezentate, ţine de problema pe


care utilizatorul o are de rezolvat şi de îndemânarea acestuia. După câteva
exercţii, utilizatorul poate mânui cu uşurinţă orice metodă numerică prezentată.

S-ar putea să vă placă și