Sunteți pe pagina 1din 97

Capitolul 1.

Rezolvarea sistemelor de ecuatii liniare



Dupa cum se stie, sistemele de ecuatii liniare care admit solutie unica pot fi
rezolvate analitic, prin metode elementare. De altfel, posibilitatea rezolvarii analitice
se intalneste si in multe alte situatii, uneori la probleme foarte complicate (de
exemplu la unele ecuatii diferentiale sau integrale), dar nu intotdeauna se cunoaste
apriori aceasta posibilitate. Programele de calcul simbolic (Mathematica, Matlab,
Mapple, etc.) pot identifica astfel de situatii, astfel ca inainte de abordarea numerica a
problemei este util sa se verifice daca se pot identifica solutii analitice, care ar
conduce la o mult mai mare viteza de calcul si la o precizie oricat de buna.
Motivul principal pentru care sistemele de ecuatii liniare au beneficiat de o
atentie deosebita in cadrul metodelor numerice il constituie faptul ca solutiile
analitice, desi exista, implica de regula calcule algebrice extensive si genereaza
expresii extrem de lungi. Abordarea numerica aducea o economie importanta de timp
chiar si inainte de aparitia calculatoarelor numerice (primele metode de acest tip au
aparut in secolele 18 si 19), dar in momentul de fata se poate considera ca rezolvarea
numerica a unor sisteme destul de mari de ecuatii liniare se face practic instantaneu.
Un alt punct de interes pentru metodele numerice de rezolvare a sistemelor de
ecuatii liniare il constituie faptul ca astfel de sisteme, de regula de dimensiuni mari,
apar in numeroase alte probleme care nu au o rezolvare analitica directa si fac
obligatorie abordarea numerica (de exemplu in probleme de aproximare si interpolare
a functiilor, in anumite metode de rezolvare a ecuatiilor diferentiale si integrale, etc.).
De aceea, cunoasterea cat mai completa a rezolvarilor numerice a sistemelor de
ecuatii liniare este absolut necesara pentru multe dintre capitolele de calcul numeric
care vor fi prezentate in cele ce urmeaza.
Exista si unele dificultati legate de abordarea numerica in acest domeniu. Se
va observa ca exista situatii in care apar erori mult mai mari decat cele datorate
preciziei finite a sistemului de calcul (care are in mod inerent erori de rotunjire
nenule) datorate faptului ca sistemul este rau conditionat. Aceasta inseamna ca una
sau mai multe ecuatii din sistem nu difera foarte mult de o combinatie liniara a
celorlalte ecuatii, ceea ce il apropie de situatia in care numarul de necunoscute este
mai mare decat numarul de ecuatii liniar independente, astfel ca sistemul tinde sa
devina nedeterminat. In legatura cu acest fenomen se va defini un asa numit numar de
conditionare al matricei coeficientilor care poate da indicatii legate de erorile
estimarii solutiilor, indiferent de algoritm si de sistemul de calcul.
Forma generala a unui sistem de n ecuatii cu n necunoscute este:

11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
...
...
...........................................
...
n n
n n
n n nn n n
a x a x a x b
a x a x a x b
a x a x a x b
+ + + =

+ + + =

+ + + =

(1.1)
sau concis:

1
, 1, 2,..
n
ij j i
j
a x b i n
=
= =

(1.2)
Considerand trei matrici: A matricea coeficientilor variabilelor (patrata), X
matricea necunoscutelor (coloana) si B matricea termenilor liberi (coloana), avand
urmatoarele forme:

1 1
1 11 12
2 2
21 22 2
1 2
...
. .
; ;
. .
. .
n
n
n n nn
n n
x b
a a a
x b
a a a
a a a
x b








= = =










A X B

. .

(1.3)
se observa ca in ecuatiile 0H(1.2) membrul stang este echivalent cu inmultirea
matricilor A si X, iar membrul drept contine elementele matricii B, deci sistemul se
poate scrie matriceal sub forma:
. = A X B (1.4)
Cea mai evidenta cale de rezolvare ar fi inmultirea la stanga a ambilor membri
ai acestei ecuatii cu
1
A , de unde rezulta direct solutiile:

1
.

= X A B (1.5)
Exista mai multe metode de rezolvare care se bazeaza pe aflarea matricii
inverse a coeficientilor, dar exista si altele, indirecte, bazate pe iteratii, sau care
speculeaza anumite caracteristici speciale ale matricii in unele cazuri particulare. Un
astfel de caz va fi prezentat in continuare, pentru ca unele metode incearca mai intai
sa reduca problema la conditiile acestui caz particular, care este usor de rezolvat.

1.1 Matrici superior si inferior triunghiulare. Substitutie inversa si
directa.

Vom numi matrice superior triunghiulara o matrice care are toate elementele
de sub diagonala principala nule, deci avand urmatoarea proprietate:

0, pentru
; , 1, 2,..
0, pentru
ij
ij
a i j
i j n
a i j
= >

(1.6)
si urmatoarea forma

1 11 12
22 2
0 ...
0 0
n
n
nn
a a a
a a
a




=




A

. .

(1.7)
Un sistem caracterizat de o matrice a coeficientilor superior triunghiulara este
rezolvabil usor prin procedeul denumit substitutie inversa. Denumirea este data de
faptul ca se incepe de la ultima ecuatie si se calculeaza pe rand substituind variabilele
deja calculate catre primele ecuatii.
Intr-adevar, din ultima ecuatie, avand in vedere ca toti coeficientii primelor
1 n variabile sunt nuli, rezulta:

n
n
nn
b
x
a
= (1.8)
In penultima ecuatie, numai ultimele doua necunoscute au coeficienti nenuli.
Dar deoarece
n
x este deja cunoscut, se poate determina
1 n
x

:

1 1,
1
1, 1
n n n n
n
n n
b a x
x
a

= (1.9)
Continuind in acest mod, pentru ecuatia i , coeficientii primelor 1 i
necunoscute sunt nuli iar necunoscutele
1 2
, ,...,
i i n
x x x
+ +
au fost deja determinate.
Ecuatia se scrie deci

, 1 1
...
ii i i i i in n i
a x a x a x b
+ +
+ + + = (1.10)
de unde se obtine necunoscuta
i
x :

1
n
i ij j
j i
i
ii
b a x
x
a
= +

=

(1.11)
Procedeul se va repeta pana la obtinerea tuturor necunoscutelor folosind
formula generala 1H(1.11).
In alte cazuri este intilnita o matrice inferior triunghiulara, in care toate
elementele de deasupra diagonalei sunt nule. Rezolvarea este similara, dar in ordine
inversa: se porneste de la prima ecuatie si se fac substitutii pe rand, catre ultima
ecuatie. Acest procedeu se va numi in continuare substitutie directa.

1.2 Metoda de eliminare Gauss. Pivotarea

Daca matricea coeficientilor nu este triunghiulara, cum se intampla in marea
majoritate a cazurilor, se pot face asupra sa anumite transformari care sa o aduca la
forma triunghiulara. Aceste transformari se bazeaza pe urmatoarele operatii care se
pot efectua asupra sistemului 2H(1.1) si care in mod evident pastreaza validitatea
sistemului:
1. Inmultirea unei ecuatii cu o constanta, echivalenta cu inmultirea unei linii din
matricea coeficientilor si a elementului corespunzator din matricea termenilor
liberi cu constanta respectiva.
2. Adunarea sau scaderea a doua ecuatii, echivalenta cu adunarea sau scaderea a
doua linii din matricea coeficientilor si a elementelor corespunzatoare din
matricea termenilor liberi.
3. Schimbarea ordinii de sumare in membrul stang (echivalenta cu permutarea a
doua coloane din matricea coeficientilor ) sau a ordinii ecuatiilor (echivalenta
cu permutarea a doua linii din matricea coeficientilor si a elementelor
corespunzatoare din matricea termenilor liberi ).
Transformarile de acest tip se fac de regula in scopul obtinerii de elemente nule
sub diagonala principala, astfel ca matricea sa devina inferior triunghiulara iar
sistemul sa fie rezolvat apoi prin substitutie inversa.
Sa consideram ca, folosind transformari de tipul celor mentionate, dorim sa facem
0 toate elementele de sub diagonala din prima coloana. Pentru aceasta, va trebui sa
inmultim prima linie cu o constanta corespunzatoare
2
msi sa o scadem din a doua,
apoi sa inmultim prima linie cu o alta constanta
3
m si sa o scadem din a treia, s.a.m.d.
Pentru anularea elementului de pe prima coloana din lina i , va trebui satisfacuta
conditia:

1 11
0
i i
a a m = (1.12)
de unde rezulta constanta cu care trebuie inmultita prima linie pentru anularea
elementului din prima coloana a liniei i :

1
11
i
i
a
m
a
= (1.13)
Elementul
11
a folosit pentru determinarea constantei de multiplicare a primei
linii il vom numi in continuare element pivot, desi denumirea nu este in intregime
corecta, dupa cum se va vedea mai tarziu.
Facand operatia:

'
1
; 2, 3..., ; 1, 2...,
ij ij j i
a a a m i n j n = = =
pentru liniile 2, 3,..., n si coloanele 1, 2,..., n, se va obtine o matrice echivalenta, dar
cu elementele aflate in prima coloana sub diagonala nule. Prima coloana a unei
matrici superior triunghiulare a fost formata.

1 11 12
' '
22 2
' '
32 3
' '
2
0 ...
...
0
0
n
n
n
n nn
a a a
a a
a a
a a





=






A

. .

(1.14)
In continuare, pentru a forma a doua coloana, trebuiesc anulate elementele
' ' '
32 42 2
, ,...,
n
a a a . Aceasta se va face in mod similar, dar folosindu-se ca pivot elementul
de pe diagonala celei de a doua linii,
'
22
a . Conditia de anulare a unui element din linia
i a celei de a doua coloane este:

' '
2 22
0
i i
a a m = (1.15)


Constanta de multiplicare a celei de a doua linii este deci:

'
2
'
22
i
i
a
m
a
= (1.16)
iar operatiile asupra celorlalte linii:

'' ' '
2
; 3, 4..., ; 2, 3,...,
ij ij j i
a a a m i n j n = = = (1.17)
Este evident ca elementele nule din prima coloana raman nule deoarece din ele
se scade constanta inmultita cu
'
1 j
a care este deja nul. Din aceasta cauza nu mai este
nevoie sa le calculam, deci indexarea lui j poate sa inceapa de la 2.
S-au obtinut astfel zerouri sub diagonala si in a doua coloana.

1 11 12
' '
22 2
'
3
'
0 ...
... 0 0
0 0
n
n
n
nn
a a a
a a
a
a





=






A

. .

(1.18)
Acelasi procedeu se aplica succesiv si pentru restul coloanelor (cu exceptia
ultimei care nu mai trebuie sa contina nici un 0), astfel ca in final matricea sistemului
ramane superior triunghiulara.
Trebuie avut in vedere, ca pentru ca sistemul sa nu se modifice, aceleasi
operatii trebuiesc efectuate si asupra matricii coloana a termenilor liberi (ceea ce se
schimba in membrul drept al fiecarei ecuatii trebuie schimbat similar si in membrul
stang) .
Este mai avantajos, pentru simplificarea programului ca matricile A si B sa fie
reunite intr-o matrice extinsa, numita si matricea sistemului, cu n linii si 1 n+
coloane, iar operatiile descrise sa se faca pentru 1, 2,..., 1 j n = + . Exista insa si
posibilitatea ca operatiile in cele doua matrici sa se efectueze separat.
Sintetizand, in etapa in care se anuleaza elementele de sub diagonala pe
coloana k se vor face urmatoarele operatii:

'
'
; 1, 2, 1
ik
i
kk
a
m k n
a
= = (1.19)

'' ' '
; 1, 2,..., 1; 1, 2..., ; , 1..., 1
ij ij kj i
a a a m k n i k k n j k k n = = = + + = + + (1.20)
Programul 1.1 rezolva un sistem de ecuatii liniare prin metoda Gauss si
substitutie inversa. Intrarile in program sunt matricea sistemului si matricea
termenilor liberi, iar iesirea este o coloana cu solutiile, la care se aduaga si listele de
verificare.

Programul 1.1 Metoda Gauss pentru un sistem de ecuatii liniare
ai = 883, 1, 0, 4<, 82, 3, 0, 3<, 85, 0, 2, 5<, 81, 0, 0, 3<<; H Matri cea si stemul ui L
b= 82, 1, 1, 3<; H Matri cea termeni l or l i beri L
n= Length@bD; HDi mensi unea matri ci i L
a= Tabl e@0, 8n<, 8n+1<D; H Formarea matri ci i exti nse L
x= Tabl e@0, 8n<D;
For@i = 1, i n, i ++,
For@j = 1, j n, j ++,
a@@i , j DD = ai @@i , j DD; a@@i , j +1DD = b@@i DD DD;
H Ul ti nul el ement al f i ecarei l i ni i este termenul l i ber L
Pri nt@Matri xForm@aDD;
ForAk= 1, k n1, k++,
ForAi = k+1, i n, i ++,
m=
a@@i , kDD
a@@k, kDD
; H Constanta pentru l i ni a k L
For@j = k, j n+1, j ++,
a@@i , j DD = a@@i , j DD ma@@k, j DD; H Noi l e el emente di n l i ni a k L
D;
E;
E;
Pri nt@Matri xForm@aDD; H Matri cea exti nsa, superi or tri unghi ul araL
H Rezol varea pri n substi tuti e i nversa L
x@@nDD =
a@@n, n+1DD
a@@n, nDD
ForAj = n1, j 1, j ,
x@@j DD =
a@@j , n+1DD
k=j +1
n
a@@j , kDD x@@kDD
a@@j , j DD
;
Pri nt@x@@j DD D;
E H Af i sarea sol uti i l or L
ai . xH Veri f i carea sol uti i l or L
b

Trebuie insa subliniat ca de multe ori metoda Gauss prezentata simplificat mai sus
nu poate fi aplicata, sau da erori foarte mari. Aceasta se intampla cand in cadrul uneia
dintre etapele diagonalizarii, pivotul este nul sau repectiv foarte mic.
In cazul in care unul din pivoti este nul, expresia 3H(1.19) va da rezultat infinit,
semnalat ca o eroare (generand in procesor o intrerupere interna numita exceptie de
tip abort ). De asemenea, daca pivotul de la numitor are o valoare foarte mica,
rezultatul va fi foarte mare si va fi rotujit automat cu o eroare apreciabila sau poate
chiar sa nu incapa in locatia de memorie care i-a fost destinata, fenomen denumit
depasire de registru.

Programul 1.2 Metoda Gauss cu pivotare partiala (pe coloane)

ai = 880, 1, 0, 4<, 82, 3, 0, 3<, 85, 0, 2, 5<, 81, 0, 0, 3<<; H Matri cea si stemul ui L
b= 82, 1, 1, 3<; H Matri cea termeni l or l i beri L
n= Length@bD; HDi mensi unea matri ci i L
a= Tabl e@0, 8n<, 8n+1<D;
x= Tabl e@0, 8n<D;
H Formarea di recta a matri ci i exti nse L
For@i = 1, i n, i ++, a@@i DD = Fl atten@J oi n@ai @@i DD, 8b@@i DD<DD D;
Pri nt@Matri xForm@aDD;
ForAk= 1, k n1, k++,
H Pi votare parti al a Hi ntre l i ni i L, cautare el ement maxi mdi n col oana L
For@r = k+1, r <=n, r ++, I f @a@@k, kDD <a@@r, kDD, a@@8k, r<DD = a@@8r, k<DD; D; D;
ForAi = k+1, i n, i ++,
m=
a@@i , kDD
a@@k, kDD
; H Constanta pentru l i ni a k L
For@j = k, j n+1, j ++,
a@@i , j DD = a@@i , j DD ma@@k, j DD; H Noi l e el emente di n l i ni a k L
D;
E;
E;
Pri nt@Matri xForm@aDD; H Matri cea exti nsa, superi or tri unghi ul araL
H Rezol varea pri n substi tuti e i nversa L
x@@nDD =
a@@n, n+1DD
a@@n, nDD
ForAj = n1, j 1, j ,
x@@j DD =
a@@j , n+1DD
k=j +1
n
a@@j , kDD x@@kDD
a@@j , j DD
;
Pri nt@x@@j DD D;
E H Af i sarea sol uti i l or L
ai . xH Veri f i carea sol uti i l or L
b

Din aceste considerente, de cele mai multe ori programele care folosesc
metoda Gauss se completeaza cu instructiuni care fac alegerea cea mai buna a
pivotului inainte de prelucrarea fiecarei coloane, folosind posibilitatea de permutare a
liniilor si coloanelor matricii (extinse), procedeu denumit in general pivotare. Prin
permutare intre coloane si/sau linii se aduce in pozitia de pivot elementul cel mai
mare in valoare absoluta din restul liniei si/sau coloanei repective. In acest mod,
impartirea 4H(1.19) se va face cu erorile de rotunjire cele mai mici posibile.
Daca pivotarea se face numai intre linii sau numai intre coloane, avem o
pivotare partiala, iar daca se folosesc si pivotari de linii si de coloane avem pivotare
totala. Programul 1.2 este realizat prin completarea programului 1.1 cu unele
instructiuni de pivotare partiala si pot rezolva sisteme care nu ar putea fi rezolvate de
acesta, de exemplu daca primul element al primei linii este 0.
Se observa ca in linia referitoare la pivotare s-a folosit sintaxa specifica
programului Mathematica pentru inversarea a doua elemente dintr-o lista
{x, y} = {y, x}
Aceasta este echivalenta cu secventa
t = a@@kDD; a@@kDD =a@@rDD; a@@rDD = t

in care [[ ]] a k desemneaza toate elementele liniei k.
Evident, intr-un limbaj obisnuit de programare (de exemplu C++) care nu
poate lucra simultan cu toate elementele unei linii se va folosi secventa mai detaliata:
For@s = 1, s n+1, s++, t =a@@k, sDD; a@@k, sDD = a@@r, sDD; a@@r, sDD = tD



1.2 Metoda Gauss-J ordan

Analiza metodei Gauss de aducere a unei matrici oarecare la o forma superior
triunghiulare sugereaza ca, pentru cazurile in care acest lucru este posibil, exista o
matrice M care inmultita cu matricea coeficientilor A sa conduca la o matrice superior
trunghiulara U:
M.A =U (1.21)
Tot asa, pentru o matrice nesingulara A, exista o matrice, numita matricea
inversa,
1
A , care inmultita cu A sa conduca la o matrice unitara I :

-1
A .A =I (1.22)
unde

1 0 ... 0
0 1... 0
.............
0 0 ...1



=



I (1.23)
Aceasta echivalenta intre un set de transformari aplicate cu o matrice si
inmultirea unei alte matrici cu matricea data, sugereaza posibilitatea efectuarii de
calcule matriceale pentru identificarea unor transformari utile. Un exemplu in acest
sens il constituie metoda Gauss Jordan care, folosind un program destul de simplu
genereaza o cantitate surprinzator de mare de informatii.
Pentru rezolvarea problemei initiale data de ecuatia 5H(1.4) se formeaza mai
intai o matrice extinsa de dimensiuni (2 1) n n + , prin reunirea coloanelor matricii
coeficientilor, a matricii termenilor liberi si a coloanelor unei matrici unitare,

e
= A A B I (1.24)
Daca efectuam anumite prelucrari ale acestei matrici care sa aduca primele n
coloane la forma unei matrici unitare, acest set de prelucrari ar fi echivalent cu
inmultirea la stanga a matricei extinse cu matricea inversa a coeficientilor. Intr-
adevar, prin aceasta inmultire, tinand cont ca
1
.

= A A I ,
1
.

= A B X si
1 1
.

= A I A ,
obtinem:
( )
1 1 1
. .
e

= = A A A A B I I X A (1.25)
Se observa ca se obtine in primele n coloane o matrice unitara si in plus, ca
produse secundare se obtin: in coloana 1 n+ chiar solutia, iar in urmatoarele n
coloane matricea inversa a coeficientilor.
Prin urmare, efectuand transformari care sa aduca primele n coloane la o
matrice unitara vom obtine in final atat solutia cat si matricea inversa, care poate fi de
asemenea utila in problema respectiva.
Programul 1.3 Metoda Gauss Jordan pentru rezolvarea sistemelor de ecuatii
liniare
A= 884, 3, 1, 3<, 82, 3, 0, 1<, 83, 1, 0, 3<, 81, 0, 1, 0<<;
b= 812, 24, 36, 6<;
n= Length@bD;
HFormarea matri cei exti nse parti al e L
AE1= Tabl e@0, 8n<, 8n+1<D;
For@i = 1, i n, i ++, AE1@@i DD =Fl atten@J oi n@A@@i DD, 8b@@i DD<DDD;
HFormarea matri cei exti nse total e L
a= Transpose@J oi n@Transpose@AE1D, I denti tyMatri x@nDDD;
Pri nt@Matri xForm@aDD;
HPermutarea l i ni i l or matri cei exti nse parti al e L
p= 0;
For@r = 1, r n, r ++,
For@k= r +1, k <=n, k++, I f @Abs@a@@r, rDDD < Abs@a@@k, rDDD, p++;
For@c= 1, c 2 n+1, c++, t =a@@r, cDD; a@@r, cDD = a@@k, cDD; a@@k, cDD = tD DD; D
Pri nt@pD; H numarul de permutari de l i ni i L;
Pri nt@Matri xForm@aDD;
d= H1L
p
; HVal oare i ni ti al a a determi nantul ui , daca este necesarL
ForAi = 1, i n, i ++,
d= da@@i , i DD;
a@@i DD =
a@@i DD
a@@i , i DD
;
Pri nt@Matri xForm@aDD;
For@s = 1, s n, s++,
I f @s i , a@@sDD = a@@sDD a@@i DD a@@s, i DDD;
D; E;
Pri nt@Matri xForm@aDD;
Pri nt@"Det@aD=", dD
x= Tabl e@a@@j , n+1DD, 8j , n<D;
Pri nt@"x=", Matri xForm@xDD;
Ai = Tabl e@a@@i , j DD, 8i , n<, 8j , n+2, 2 n+1<D;
Pri ntA"A
1
=", Matri xForm@Ai DE;
A. Ai Matri xFormH Veri f i carea matri ci i i nverse obti nute L
A. x H Veri f i carea sol uti i l or L
b
Det@AD H Veri f i carea determi nantul ui L

Aceste transformari trebuiesc facute in asa fel incat sa se obtina elemente nule
atat dedesubtul cat si deasupra diagonalei. In plus, fiecare element pivot trebuie sa se
imparta la el insusi pentru ca in final sa se obtina numai valori 1 pe diagonala
primelor n coloane.
De mentionat ca se poate obtine chiar si determinantul matricei coeficientilor
prin inmultirea elementelor matricii diagonalizate (inainte de a fi facute 1) si tinand
seama ca fiecare permutare schimba semnul determinantului.
Practic, mai intai se imparte fiecare linie cu elementul sau de diagonala, astfel
ca el sa devina 1. In continuare, relatiile care vor alcatui algoritmul sunt aceleasi ca si
la metoda Gauss, doar ca se aplica la fiecare linie atat pentru liniile de dedesubtul ei
cat si pentru cele de deasupra, ceea ce face ca limitele de variatie ale indicilor sa se
modifice:

'
'
; 1, 2, ;
ik
i
kk
a
m k n k i
a
= = (1.26)

'' ' '
; 1, 2,..., ; 1, 2..., ; ; 1, 2..., 2 1
ij ij kj i
a a a m i n k n k i j n = = = = + (1.27)
Un exemplu de implementare a acestui algoritm este ilustrat de programul 1.3.
S-a facut o mica simplificare fata de programele anterioare folosind posibilitatea
mediului Mathematica de a opera cu o intreaga linie a unei matrici, astfel ca se poate
elimina bucla care opereaza succesiv asupra elementelor unei linii. Astfel, a[[i,j]]
reprezinta elementul din linia i si coloana j, iar a[[i]] reprezinta intreaga linie i.
Programul furnizeaza matricea solutiilor, matricea inversa si valoarea determinantului
matricii coeficientilor.

1.4. Factorizarea Doolittle

Exista numeroase metode de rezolvare a unor sisteme de ecuatii liniare care
utilizeaza decompozitia (factorizarea) unei matrici, adica transformarea acesteia intr-
un produs de doua sau mai multe matrici cu proprietati avantajoase.
Un prim exemplu, pe care il tratam in continuare, il constituie factorizarea
Doolittle, care presupune exprimarea matricii coeficientilor printr-un produs intre o
matrice superior triunghiulara U (Upper) si una inferior triunghiulara L (Lower).
In plus se impune ca elementele diagonale ale matricii L sa fie unitare:
A =L.U (1.28)

1 11 12
22 2 12
1 2
1 0 0
0 ... 1 ... 0
;
0 0 1
n
n
nn n n
u u u
u u l
u l l




= =




U L

. . . .

(1.29)
Elementele acestora au deci proprietatile:

0, pentru
0, pentru
; 1 ; , 1, 2,..
0, pentru
0, pentru
ij
ij
ii
ij
ij
l i j
u i j
l i j n
u i j
l i j
= >
= >

= =


<

(1.30)
Explicitand relatia 6H(1.28) pe elemente sub forma:

1
; , 1, 2,...,
n
ij ik kj
k
a l u i j n
=
= =

(1.31)
si tinand cont de proprietatile 7H(1.30), rezulta relatiile:

1
1 1
; , 1, 2,...,
j j
ij ik kj ik kj ij jj
k k
a l u l u l u i j n

= =
= = + =

(1.32)

1
1 1
; , 1, 2,...,
i i
ij ik kj ik kj ij
k k
a l u l u u i j n

= =
= = + =

(1.33)
In prima relatie s-a tinut cont ca primul indice al lui
kj
u , care este chiar indice
de sumare, poate fi doar mai mic sau egal cu al doilea. In a doua relatie s-a tinut cont
ca al doilea indice al lui
ik
l , care este chiar indice de sumare, poate fi doar mai mic
sau egal cu primul si in plus 1
ii
l = .
Rezulta urmatoarele relatii care permit determinarea succesiva a tuturor
elementelor matricilor L si U:

1
1
; , 1, 2,...,
j
ij ik kj
k
ij
jj
a l u
l i j n
u

= =

(1.34)

1
1
; , 1, 2,...,
i
ij ij ik kj
k
u a l u i j n

=
= =

(1.35)
Astfel, pentru 1 i = se obtin:

11 11 11
12 12
1 1
1;
.............
n n
l u a
u a
u a
= =
=
=
(1.36)
Pentru 2 i = obtinem:

21
21 22 22 21 12
11
22 23 22 21 12
2 2 21 1
;
1;
.............
n n n
a
l u a l u
u
l u a l u
u a l u
= =
= =
=
(1.37)
Pentru 3 i = obtinem:

31
31 33 33 31 13 32 23
11
32 11 12
22 34 34 31 13 32 24
22
33
3 3 31 1 32 2
;
;
1;
.............
n n n n
a
l u a l u l u
u
a l u
l u a l u l u
u
l
u a l u l u
= =

= =
=
=
(1.38)
Se continua astfel pana la n si se poate observa ca elementele necesare intr-o
etapa sunt deja cunoscute dintr-o etapa anterioara, astfel ca se pot determina toate
elementele celor doua matrici.








Programul 1.4 Rezolvarea sistemului prin factorizare Doolittle

di m= 10;
A= Tabl e@Random@Real , 10D, 8di m<, 8di m<D; H Numere al eatoare i ntre 1 si 10L
B= Tabl e@Random@Compl ex, 10+10I D, 8di m<D;
Pri nt@Matri xForm@ADD;
Pri nt@Matri xForm@BDD;
n= Length@BD;

L= Tabl e@0, 8n<, 8n<D;
U= L; H Sau i ni ti al i zat cu 0 matri ci l e L si U L
ForAk= 1, k n, k++,
L
Pk, kT
=1; H El ementel e de pe di agonal a l ui L sunt 1 L
ForAj = k, j n, j ++,
U
Pk, j T
=A
Pk, j T

m=1
k1
L
Pk, mT
U
Pm, j T
; H Pentru l i ni a k se cal cul eaza el emntel e l ui U L
H pentru k=1, rezul ta U
@@1, j DD
=A
@@1, j DD
L
H U
@@m, j DD
se cunosc, deoarece suma este cu m<k deci sau cal cul at anteri orL
H L
@@k, mDD
se cal cul asera anteri or di n bucl a urmatoare L
ForAi = k+1, i n, i ++,
L
Pi , kT
=
i
k
j
j
j
j
A
Pi , kT

m=1
k1
L
Pi , mT
U
Pm, kT
y
{
z
z
z
z
U
Pk, kT
; H Pentru l i ni a i , se cal cul eaza el ementel e l ui L L
H pentru k=1, rezul ta L
@@2, 1DD
=A
@@2, 1DD
U
@@1, 1DD
= A
@@2, 1DD
A
@@1, 1DD
L
H U
@@m, kDD
si L
@@i , mDD
sunt dej a cal cul ate, deoarece suma este pentru m<k L
E; E; E
Pri nt@Matri xForm@LDD;
Pri nt@Matri xForm@UDD;

Matri xForm@A L. UD H Veri f i cari f actori zare L
Max@Abs@A L. UDD

Y= Tabl e@0, 8n<D;
H Forward Substi tuti on pentru a af l a Y L
Y
PnT
=
B
PnT
L
Pn, nT
;
ForAi = 1, i n, i ++,
Y
Pi T
=
i
k
j
j
j
j
B
Pi T

j =1
i 1
L
Pi , j T
Y
Pj T
y
{
z
z
z
z
L
Pi , i T
; E;
H Back substi tuti on pentru a af l a X L
X= Tabl e@0, 8n<D;
X
PnT
=
Y
PnT
U
Pn, nT
;
ForAi = n1, i 1, i ,
X
Pi T
=
i
k
j
j
j
j
Y
Pi T

j =i +1
n
U
Pi , j T
X
Pj T
y
{
z
z
z
z
U
Pi , i T
; E;
Pri nt@Matri xForm@XDD;
A. XH Veri f i cari sol uti e L
B
Max@Abs@A. X BDD


Pentru rezolvarea unui sistem de ecuatii liniare de tipul 8H(1.4) se scrie:
A.X =B L.(U.X) =B L.Y =B (1.39)
unde s-a introdus o matrice auxiliara Y =U.X .
Mai intai se rezolva in raport cu Y ecuatia L.Y =B tinand cont ca L este
inferior triunghiulara. Aceasta permite utilizarea procedeului de substitutie directa
mentionat in paragraful 1.1: din prima linie se determina prima necunoscuta, din a
doua linie a doua necunoscuta, s.a.m.d.
Dupa determinarea lui Y, se poate determina X din ecuatia Y =U.X , unde se
tine seama ca U este superior triunghiulara si deci se poate aplica procedeul de
substitutie inversa.
Programul 1.4 rezolva un sistem de ecuatii liniare prin factorizare Doolittle,
urmata de substitutie directa si apoi substitutie inversa.Matricile sunt calculate aici
aleator, avand si unele valori complexe, avand in vedere ca programul Mathematica
poate trata direct astfel de valori. In unele limbaje de programare (Fortran) acest lucru
este de asemenea posibil, in timp ce in majoritatea celor uzuale (de exemplu C++)
trebuiesc incluse si modulele pentru calculul cu numere complexe.

1.5 Factorizarea Crout

Ca si in cazul factorizarii Doolitle, la factorizarea Crout se face exprimarea
matricii coeficientilor sistemului printr-un produs intre o matrice inferior triunghiulara
si una superior triunghilara. Deosebirea consta in faptul ca de aceasta data matricea
superior triunghiulara are elementele diagonale egale cu 1.
A=L.U (1.40)

1 11 12
2 12 22
1 2
0 1 0
... ... 0 0 1
;
0 0 1
n
n
n n nn
u l u
u l l
l l l




= =




U L

. . . .

(1.41)
Elementele celor doua matrici au deci proprietatile

,
1;
0,
kj
kk kj
u k j
u u
k j
<
= =

>

(1.42)

,
0,
ik
ik
l k i
l
k i
<
=

>

(1.43)

Conform relatiilor 9H(1.40)-10H(1.43), separand termenul diagonal
11
1 u = , se poate
scrie

1
1 1
1
i i
ii ij ji ij ji ii ii
j j
a l u l u l u

= =
= = +

(1.44)
de unde se poate obtine termenul diagonal al matricei U

1
1
i
ii ii ij ji
j
l a l u

=
=

(1.45)
Pentru un element oarecare al matricii A, tinand cont de relatia 11H(1.43) avem

1
1 1
i i
ij ik kj ik kj ii ij
k k
a l u l u l u

= =
= = +

(1.46)
de unde rezulta elementul omolog al matricii U

1
1
i
ij ik kj
k
ij
ii
a l u
u
l

=

(1.47)
Pentru acelasi element al matricii A, tinand cont de relatia 12H(1.42)

1
1 1
j j
ij ik kj ik kj ij jj
k k
a l u l u l u

= =
= = +

(1.48)
Deoarece 1
jj
u = , putem afla si elementul corespunzator al matricii L prin
relatia

1
1
j
ij ij ik kj
k
l a l u

=
=

(1.49)
Programul 1.5 rezolva un sistem de ecuatii liniare prin metoda Crout.
Matricile sunt calculate aici aleator, avand si unele valori complexe, avand in vedere
ca programul Mathematica poate trata direct astfel de valori. Asa cum s-a specificat
anterior, in unele limbaje de programare (Fortran) acest lucru este de asemenea
posibil, in timp ce in majoritatea celor uzuale (de exemplu C++) trebuiesc incluse si
modulele pentru calculul cu numere complexe.

Programul 1.5 Rezolvarea unui sistem de ecuatii liniare prin metoda Crout
di m= 20;
A= Tabl e@Random@Real , 10D, 8di m<, 8di m<D;
B= Tabl e@Random@Compl ex, 10+10I D, 8di m<D;
Pri nt@Matri xForm@ADD;
Pri nt@Matri xForm@BDD;
n= di m;

L= Tabl e@0, 8n<, 8n<D;
U= L;
ForAk= 1, k n, k++,
L
Pk, kT
=A
Pk, kT

m=1
k1
L
Pk, mT
U
Pm, kT
;
ForAj = k, j n, j ++,
U
Pk, j T
=
i
k
j
j
j
j
A
Pk, j T

m=1
k1
L
Pk, mT
U
Pm, j T
y
{
z
z
z
z
L
Pk, kT
;
H Se observa ca pentru j =k,
U
@@k, kDD
=1 deoarece numi torul L
@@k, kDD
stabi l i t anteri or este exact numaratorul L
ForAi = k+1, i n, i ++,
L
Pi , kT
=
i
k
j
j
j
j
A
Pi , kT

m=1
k1
L
Pi , mT
U
Pm, kT
y
{
z
z
z
z
;
E; E; E
Pri nt@Matri xForm@LDD;
Pri nt@Matri xForm@UDD;

Matri xForm@A L. UD
Max@Abs@A L. UDD

Y= Tabl e@0, 8n<D;
Y
PnT
=
B
PnT
L
Pn, nT
;
ForAi = 1, i n, i ++,
Y
Pi T
=
i
k
j
j
j
j
B
Pi T

j =1
i 1
L
Pi , j T
Y
Pj T
y
{
z
z
z
z
L
Pi , i T
; E;
X= Tabl e@0, 8n<D;
X
PnT
=
Y
PnT
U
Pn, nT
;
ForAi = n 1, i 1, i ,
X
Pi T
=
i
k
j
j
j
j
Y
Pi T

j =i +1
n
U
Pi , j T
X
Pj T
y
{
z
z
z
z
U
Pi , i T
; E
Pri nt@Matri xForm@XDD;
Max@Abs@A. X BDD



1.6 Factorizarea Cholesky

In cazul in care matricea sistemului este simetrica, se poate folosi aceasta
particularitate pentru a se micsora volumul de calcule, prim metoda factorzarii
Choleski. Matricea coeficientilor se exprima de asemenea ca produs intre o matrice
inferior triunghiulara si una superior triunghiulara, dar cu particularitatea ca una este
transpusa celeilalte, deci elementele celor doua matrici sunt simetrice, deci trebuie
determinat doar un set de astfel de elemente:

A=U.L (1.50)

ij ji
u l = (1.51)
Din relatiile 13H(1.50) si 14H(1.51), pentru un element diagonal, prin separarea
ultimului termen se deduce

1
2 2 2
1 1 1
n k k
kk km mk km km kk
m m m
a l u l l l

= = =
= = = +

(1.52)
de unde rezulta elementele de pe diagonale

1
2
1
k
kk kk km
m
l a l

=
=

(1.53)
De asemenea pentru un element nediagonal se poate scrie

1
1 1 1
k k k
ik im mk im km im km ik kk
m m m
a l u l l l l l l

= = =
= = = +

(1.54)
de unde rezulta elementele nediagonale ale matricilor triunghiulare

1
1
k
ik im km
m
ik
kk
a l l
l
l

=

(1.55)
Programul 1.6 rezolva un sistem de ecuatii liniare cu matricea coeficientilor
simetrica prin metoda Cholesky. Matricile sunt calculate aici aleator, avand ca si in
cazurile anterioare si unele valori complexe.

Programul 1.6 Rezolvarea unui sistem de ecuatii liniare cu matricea
coeficientitor simetrica prin metoda Cholesky

di m= 10;
A= Tabl e@0, 8di m<, 8di m<D; H Se i ni ti al i zeaza matri cea L
H Se construi este matri cea ca matri ce si metri ca L
For@i = 1, i di m, i ++,
For@j = 1, j i , j ++,
A@@i , j DD = Random@Real , 10D;
A@@j , i DD = A@@i , j DD; D; D;
B= Tabl e@Random@Compl ex, 10+10I D, 8di m<D;
Pri nt@Matri xForm@ADD;
Pri nt@Matri xForm@BDD;
n= di m;

L= Tabl e@0, 8n<, 8n<D;
U= L;
H Ai ci este al gori tmul Chol esky L
ForAk= 1, k n, k++,
L
Pk, kT
=
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A
Pk, kT

m=1
k1
HL
Pk, mT
L
2
;
ForAi = k+1, i n, i ++,
L
Pi , kT
=
i
k
j
j
j
j
A
Pi , kT

m=1
k1
L
Pi , mT
L
Pk, mT
y
{
z
z
z
z
L
Pk, kT
;
E;
E;
U= Transpose@LD;
Pri nt@Matri xForm@LDD;
Pri nt@Matri xForm@UDD;

A L. U Matri xFormH Veri f i carea f actori zari i L

Y= Tabl e@0, 8n<D;
H Forward substi tuti on L
Y
PnT
=
B
PnT
L
Pn, nT
;
ForAi = 1, i n, i ++,
Y
Pi T
=
i
k
j
j
j
j
B
Pi T

j =1
i 1
L
Pi , j T
Y
Pj T
y
{
z
z
z
z
L
Pi , i T
; E;
H Back substi tuti on L
X= Tabl e@0, 8n<D;
X
PnT
=
Y
PnT
U
Pn, nT
;
ForAi = n1, i 1, i ,
X
Pi T
=
i
k
j
j
j
j
Y
Pi T

j =i +1
n
U
Pi , j T
X
Pj T
y
{
z
z
z
z
U
Pi , i T
; E
Pri nt@Matri xForm@XDD;
Max@Abs@A. X BDD
H Veri f i carea sol uti ei L


1.7 Metodele iterative J acobi si Gauss-Siedel. Suprarelaxarea

In anumite probleme este preferata in mod natural o apropiere iterativa de
solutia exacta. In cazul in care iteratiile implica si sisteme de ecuatii liniare, se poate
aplica metoda J acobi de rezolvare a sistemului matriceal
A.X=B (1.56)
Pentru aceasta se face o descompunere a matricii coeficientilor intr-o suma de trei
matric: una formata cu elementele de pe diagonala, alta cu elementele de sub
diagonala si una cu elementele de deasupra diagonalei
A=D+L+U (1.57)
Elementele acestor matrici sunt deci deja cunoscute, fiind urmatoarele

,
0,
,
0,
ij ij ij
ij
ij
ij
ij
d a
a i j
l
i j
a i j
u
i j
=
>
=

<

<
=

>

(1.58)
Tinand seama de relatiile 15H(1.56) si 16H(1.57) se poate scrie urmatoarea ecuatie
matriceala
D.X=B-L.X-U.X (1.59)
Prin inmultire la stanga in ambii membrii cu inversa matricii diagonale se
poate exprima matricea necunoscutelor la iteratia 1 k+ in functie de matricea
necunoscutelor la iteratia anterioara k

1
-
k k + ( ) -1 ( ) -1
X = D .(L+U).X +D .B (1.60)
Relatia 17H(1.59) scrisa pe componente este

1
( 1) ( ) ( )
1 1 1
n i n
k k k
ij j i ij j ij j
j j j i
d x b a x a x

+
= = = +
=

(1.61)
Tinand cont de definitia elementelor matricii diagonale

ij ij ij
d a = (1.62)
rezulta ecuatia metodei iterative Jacobi 18H(1.60) scrisa pe componente

1
( 1) ( ) ( )
1 1
1
i n
k k k
i i ij j ij j
j j i
ii
x b a x a x
a

+
= = +

=



(1.63)
Implementarea acestei metode este mai simpla decat la metodele anterioare
deoarece nu este necesara factorizarea matricii ci doar descompunerea ei. Din pacate
metoda este de multe ori slab convergenta, in special cand gradul de independenta
linaiara ala ecuatiilor este redus (numarul de conditionare este mare). Aceasta poate
conduce la erori si timp de calcul mai mari decat in cazul celorlalte metode.
Pentru accelerarea calculelor este preferata in practica metoda Gauss-Siedel
care este foarte apropiata de aceasta.
Tinand seama tot de relatiile 19H(1.56) si 20H(1.57) se poate scrie urmatoarea ecuatie
matriceala

(D+L).X=B-U.X (1.64)
Prin inmultire la stanga in ambii membrii cu inversa matricii (D+L) diagonale
se poate exprima matricea necunoscutelor la iteratia 1 k+ in functie de matricea
necunoscutelor la iteratia anterioara k

( 1) k k +
= +
-1 ( ) -1
X -(D+L) .U.X (D+L) .B (1.65)
Relatia 21H(1.64) scrisa pe componente este

( 1) ( )
1 1
( ) ( )
i n
k k
ij j i ij j
j j i
x b x
+
= = +
=

D+L U (1.66)
unde s-a tinut cont ca ( ) 0
ij
= D+L pentru j i > si ( )
ij
U =0 pentru j i . Aceasta se
poate scrie si sub forma

1
( 1) ( 1) ( )
1 1
i n
k k k
ii i ij j i ij j
j j i
a x a x b a x

+ +
= = +
+ =

(1.67)
unde s-a tinut cont de definitiile22H(1.58) ale elementelor matricii diagonale si ale
matricilor triunghilare.
Rezulta ecuatia metodei iterative Gauss-Siedel scrisa pe componente

1
( 1) ( 1) ( )
1 1
1
i n
k k k
i i ij j ij j
j j i
ii
x b a x a x
a

+ +
= = +

=



(1.68)

Se observa ca ecuatia metodei Gauss-Siedel difera de cea a metodei Jacobi
numai in ceea ce priveste termenul al doilea din membrul drept, care contine valorile
necunoscutelor la iteratia curenta
( 1) k
j
x
+
si nu pe cele de la iteratia anterioara
( ) k
j
x .
Acest lucru este posibil, deoarece daca in fiecare iteratie valorile necunoscutelor se
calculeaza pe rand cu indice crescator, la calculul necunoscutei
( 1) k
i
x
+
sunt cunoscute
deja valorile
( 1)
0
k
x
+
,
( 1)
1
k
x
+
,,
( 1)
1
k
i
x
+

. Evident, deoarece acestea sunt mai apropiate de


valoarea corecta decat omoloagele lor de la iteratia anterioara, procedeul are o
convergenta mai mare si este intotdeauna preferat in practica.
In programul 1.7 este exemplificata aplicarea metodei Gauss-Siedel pentru un
sistem de ecuatii liniare rau conditionat (prima ecuatie si a doua sunt destul de
aproapeproportinale). Se constata ca, pentru un numar dat de iteratii, meoda conduce
la eroari mult mai mici decat metoda Jacobi.

Programul 1.7 Rezolvarea unui sistem de ecuatii liniare prin metoda Gauss-
Siedel
Cl ear@"`"D;
A= 886, 3, 2<, 83, 1. 51, 1<, 82, 1, 3<<;
B= 81. 2, 3. 1, 2<;
Pri nt@Matri xForm@ADD;
Pri nt@Matri xForm@BDD;
n= Length@BD;
Xo= Tabl e@100. , 8n<D; H Val ori l e ghi ci te, i ni ti al e L
X= Xo; H Noi l e val ori produse dupa i terati e L
Nk= 2500; H Numar maxi mde i terati i L
k= 0;
Whi l eAk Nk,
ForAi = 1, i n, i ++,
X
Pi T
=
i
k
j
j
j
j
B
Pi T

j =1
i 1
A
Pi , j T
X
Pj T

j =i +1
n
A
Pi , j T
Xo
Pj T
y
{
z
z
z
z
A
Pi , i T
;
E; H Gasi rea noi l or aproxi mati i L
Xo= X; H Pentru i terati a urmatoare el e devi n val ori vechi L
k++E;
Pri nt@Matri xForm@XDD;
Max@Abs@A. X BDD


O imbunatatire in continuare a vitezei de convergenta se poate obtine folosind
metoda suprarelaxarii.
Daca in relatia 23H(1.68) se aduna si se scade
( ) k
i
x , incluzind termenul scazut in
ultima suma se obtine relatia echivalenta
( ) k
i
x

1
( 1) ( ) ( 1) ( ) ( ) ( )
1
1
i n
k k k k k k
i i i ij j ij j i i
j j i
ii
x x b a x a x x R
a

+ +
= =

= + = +



(1.69)
Semnificatia acestei relatii este ca la valoarea din iteratia precedenta se aduna
un corector dat de restul membrului drept,
( ) k
i
R .
Uneori acest corector se ajusteaza cu un coeficient subunitar sau supraunitar
w, care asigura o convergenta marita, metoda numindu-se in acest caz suprarelaxare
si este descrisa de relatia

( 1) ( ) ( )
; [0, 2]
k k k
i i i
x x wR w
+
= + (1.70)
sau desfasurat

1
( 1) ( ) ( 1) ( )
1
i n
k k k k
i i i ij j ij j
j j i
ii
w
x x b a x a x
a

+ +
= =

= +



(1.71)
Deoarece coeficientul de suprarelaxare w, optimal pentru un anumit sistem nu
poate fi cunoscut apriori, acest procedeu este util atunci cand trebuiesc rezolvate cat
mai rapid un numar mare de sisteme asemanatoare. Se experimenteaza pe un sistem
diferite valori ale coeficientului de suprarelaxare w cautandu-se pe cel care asigura
cea mai buna precizie dupa un numar dat de iteratii. Acest coeficient va fi considerat
in continuare optimal si pentru celelalte sisteme.
In programul 1.8 este exemplificata aplicarea suprarelaxarii pentru un sistem
de ecuatii liniare foarte rau conditionat (prima ecuatie si a doua sunt aproape
proportinale). Se constata ca, pentru un numar dat de iteratii, folosirea unui coeficient
1.633 w= micsoreaza eroarea cu mai multe ordine de marime.

Programul 1.8 Rezolvarea unui sistem de ecuatii liniare prin iteratie Gauss-
Siedel cu suprarelaxare
Cl ear@"`"D;
A= 886, 3, 2<, 83, 1. 5001, 1<, 82, 1, 3<<;
B= 81. 2, 3. 1, 2<;
Pri nt@Matri xForm@ADD;
Pri nt@Matri xForm@BDD;
n= Length@BD;
Xo= Tabl e@100. , 8n<D; H Val ori l e ghi ci te, i ni ti al e L
X= Xo; H Noi l e val ori produse dupa i terati e L
Nk= 2000; H Numar maxi mde i terati i L
k= 0;
Whi l eAk Nk,
ForAi = 1, i n, i ++,
X
Pi T
= Xo
Pi T
+1. 633
i
k
j
j
j
j
B
Pi T

j =1
i 1
A
Pi , j T
X
Pj T

j =i
n
A
Pi , j T
Xo
Pj T
y
{
z
z
z
z
A
Pi , i T
;
E; H Gasi rea noi l or aproxi mati i L
Xo= X; H Pentru i terati a urmatoare el e devi n val ori vechi L
k++E;
Pri nt@Matri xForm@XDD;
Max@Abs@A. X BDD


1.9 Matrici tridiagonale. Eliminare Gauss
Exista numeroase cazuri in care sistemele de ecuatii sunt caracterizate de
matrici rare, adica matrici care au un numar important de elemente nule. Este de
asteptat ca astfel de sisteme sa poata fi rezolvate mai rapid, nefiind necesare
numeroase operatii aritmetice care implica aceste elemente nule. De la caza la caz,
astfel de situatii pot fi exploatate favorabil prin algoritmi specifici.
Exista si cazuri, cu un grad destul de mare de generalitate, pentru care s-au
dezvoltat deja algoritmi, in special daca elementele nenule prezinta anumitre simetrii
topologice. Cea mai raspandita situatie care implica matrici rare, atat in aplicatii
directe cat si provenita din alte metode numerice (se va vedea la fuctii spline si la
metoda diferentelor finite), este cea a matricilor tridiagonale, care va fi tratata in
continuare.
O matrice tridiagonala are elementele de pe diagonala principala si pe cele de
deasupra sau dedesubtul ei nenule iar restul sunt nule. Un sistem care implica o astfel
de matrice are deci forma

1 1 1 1
1 2 2 2 2
1
0............0
............0
...............................
0 0 0...
n n n n
d c x b
a d c x b
a d x b




=



. .
(1.72)
Se observa ca matricea coeficientilor sistemului este

1
, 1
1 1
1 , 1
............................................
0...... ................0
0............... .....0
.............................................
i
i ii
i i i
i i i
i i i
i i i
d
d a
a d c
A c a
a d c
a a

+
+ +



=



= =


1 1, 1
1,
1 1, 2
i i
i i i
i i i
a
a a
c a
+ + +
+
+ + +
=

(1.73)
Avand in vedere ca majoritatea elementelor de sub diagonala sunt deja nule, se
poate aplica mult mai usor decat in cazul unei matrici dense (normale) metoda Gauss.
Punand conditia de anulare a unui element subdiagonal


'
1
0
i i i i
a a m d
+
= = (1.74)
rezulta multiplicator pentru linia 1 i +

1
i
i
i
a
m
d
+
= (1.75)
unde
i
d este elementul pivot.
Tinand cont ca operatia trebuie facuta pe intraga linie 1 i +

'
1 1 1 i i i i
d d m c
+ + +
= (1.76)
rezulta ca celelalte elemente care se modifica pe linia 1 i + sunt
(1.77)

'
1 1
i
i i i
i
a
d d c
d
+ +
= (1.78)

'
1 1
i
i i i
i
a
b b b
d
+ +
= (1.79)
In aceste relatii avem 1, 2,..., 1 i n = .
Matricea devine si mai rara, si in plus superior triunghiulara

'
1
'
2
'
'
' '
1 1
'
.....................................
............0 ..........
' ;
............0 0
......................................
i i
i i i
n
b
b
d c
A B
b d c
b
+ +








= =








.
.
(1.80)
Prin urmare necunoscutele se pot determina din relatii cu numai trei termeni

' '
1 i i i i i
d x c x b
+
+ = (1.81)
Deci si substitutia inversa se realizeaza mult mai rapid deoarece in relatiile
finale nu mai apar sume ca in cazul matricilor dense

'
1
'
i i i
i
i
b cx
x
d
+

= (1.82)
unde 1, 2,...,1 i n n = .
Evident, ultima necunoscuta este data de

'
'
n
n
n
b
x
d
= (1.83)
Programul 1.9 rezolva un sistem de ecuatii liniare cu matrice tridiagonala prin
metoda Gauss folosind relatiile 24H(1.78), 25H(1.79), 26H(1.82) si 27H(1.83), unde s-au notat cu
[ ] d i elementele diagonale ale matricii superior triunghiulare obtinute.

Programul 1.9 Rezolvarea unui sistem de ecuatii liniare cu matrice
tridiagonala prin metoda Gauss
A=
i
k
j
j
j
j
j
j
j
j
j
j
j
j
j
2 5 0 0 0
3 4 2 0 0
0 1 5 2 0
0 0 3 3 1
0 0 0 3 4
y
{
z
z
z
z
z
z
z
z
z
z
z
z
z
; H Matri cea tri di agonal a L
b= 83, 2, 1, 4, 5<; H Matri cea termeni l or l i beri L
B= b; H Copi e pentru veri f i care L
n= Length@bD;
Pri nt@Matri xForm@ADD;
x= Tabl e@0, 8n<D;
d@1D = A@@1, 1DD;
ForAi = 1, i n1, i ++, H Obti nerea matri ci i superi or tri unghi ul are L
d@i +1D =A@@i +1, i +1DD
A@@i +1, i DD
d@i D
A@@i , i +1DD;
b@@i +1DD = B@@i +1DD
A@@i +1, i DD
d@i D
b@@i DD;
E;
x@@nDD =
b@@nDD
d@nD
;
ForAi = n1, i 1, i , H Substi tuti e i nversa L
x@@i DD =
b@@i DD A@@i , i +1DD x@@i +1DD
d@i D
;
E;
x H Af i sarea sol uti i l or L
A. x B
H Veri f i carea L




1.10 Matrici tridiagonale. Factorizare Doolittle

Tot pentru cazul matricilor rare de tip tridiagonal prezentam algoritmul
Doolittle pentru care volumul de calcule se micsoreaza de asemenea foarte mult.
Pentru sistemul
= A X B (1.84)
caracterizat de o matrice tridiagonala, se face factorizarea
= A L U (1.85)
unde matricile factori au formele

11 12
21 22 23
1 1
0..............0 1 0............0 0
1............0 0 0 ............0
;
0 0............ 1 0 0 0..............
n n nn
u u
l u u
l u




= =



L U
. . . . . . . . .
(1.86)
si deci elementele lor sunt


/ . , 1 / . , 1
;
0/ . , 1 0/ . , 1
ij ij
ij ij
l i j i j u i j i j
l u
i j i j i j i j
= = + = =
= =

< > + > <

(1.87)
Din relatia 28H(1.85) rezulta pentru elementele de deasupra diagonalei

, 1 , 1 , 1
1
1
,
n
k k km mk kk k k
m
a l u l u
+ + +
=
= =

(1.88)
unde s-a tinut cont de 29H(1.87) din care rezulta ca { 1, } { 1, } { } m k k k k k + = .
Prin urmare, elementele nediagonale ale matricii U sunt chiar elementele
nediagonale ale matricii initiale A.

, 1 , 1 k k k k
u a
+ +
= (1.89)
Tot din relatia 30H(1.85) rezulta pentru elementele de dedesubtul diagonalei

, 1 , 1 , 1 1, 1
1
n
k k km mk k k k k
m
a l u l u

=
= =

(1.90)
unde s-a tinut cont de 31H(1.87) din care rezulta ca { 1, } { 2, 1} { 1} m k k k k k = .
Prin urmare, elementele nediagonale ale matricii L sunt

, 1
, 1
1, 1
k k
k k
k k
a
l
u


= (1.91)
Din relatia 32H(1.85) se observa imediat ca primul element diagonal al matricii U
este egal cu primul element diagonal al matricii A.
11 11
a u =

11 11
u a = (1.92)

Din relatia pentru elementele diagonale

, 1 1,
1
1
n
kk km mk k k k k kk kk
m
a l u l u l u

=
= = +

(1.93)
unde s-a tinut cont de 33H(1.87) din care rezulta { 1, } { 1, } { 1, } m k k k k k k = ,
rezulta celelalte elemente diagonale

1,
, 1 1,
k k
kk kk k k k k
a
u a l u


= (1.94)
si deci

, 1 1, kk kk k k k k
u a l a

= (1.95)
Relatiile de factorizare 34H(1.89),35H(1.91),36H(1.92) si 37H(1.95) implica mult mai putine
calcule decat in cazul matricilor dense, deoarece bu implica sumari dupa n termeni.
De asemenea, ca si in cazul metodei Gauss pentru matrici tridiagonale, determinarea
necunoscutelor prin substitutie inversa si similar prin substitutie directa implica un
volum mult mai mic de calcule.

Capitolul II
Interpolarea si aproximarea functiilor

Desi din punct de vedere semantic interpolarea are un sens diferit de
aproximare, in practica analizei numerice ele se bazeaza pe aceleasi procedee
matematice, astfel ca in cele ce urmeaza vor fi tratate unitar.
Dupa cum arata si nuantarea denumirilor, exista doua categorii importante de
aplicatii ale acestor procedee.
O prima categorie este intalnita in aplicatii de natura experimentala, atunci
cand se colecteaza o lista de date numerice, reprezentand valorile determinate
experimental ale unei functii ( ) ( ) ( ) { }
1 2
, ,...,
n
Y f x f x f x = , pentru anumite valori
(alese sau impuse) ale argumentului { }
1 2
, ,...,
n
X x x x = , ca in figura 2.1. Daca dorim
sa determinam prin calcul valoarea functiei intr-un punct
i
x care nu apartine multimii
de valori experimentale,
i
x X , trebuie sa recurgem la un procedeu de interpolare.
Astfel de procedee sunt recomandate in special pentru cazul unor functii cu variatii
rapide si cu un numar redus de valori cunoscute, deoarece o simpla unire a punctelor
cunoscute prin segmente de dreapta poate furniza, dupa cum se observa in figura 2.1,
o valoare destul de departata de cea reala.


x
1
x
f (x )
a
f(x )
f(x)
i
i
i
Functie aproximata
Functia exacta
x
x
2
x
3
x
4
x
5
x
6
Figura 2.1 Interpolarea unei functii intr-un punct

O a doua categorie o constituie aplicatiile cu caracter mai teoretic, in care o
functie, cunoscuta analitic dar foarte complicata, este folosita in calcule de mare
complexitate, si/sau cronofage, eventual fara solutii analitice in termeni de functii
elementare. In astfel de cazuri este utila aproximarea functiei de la bun inceput prin
functii mai simple care sa permita continuarea calculelor analitice sau cel putin
usurarea lor. O astfel de situatie este prezentata in figura 2.2, in care o functie dificil
de prelucrat analitic este aproximata printr-o functie mult mai comoda, de tip
polinomial.

- 0. 75 - 0. 5 - 0. 25 0. 25 0. 5 0. 75
0. 9
0. 95
1. 05
1. 1
1. 15
1. 2
1. 25

Figura 2.2 Aproximarea functiei hypergeometrice
2 1
(1/ 3,1/ 3, 2/ 3; ) F x (linie
continua) printr-un polinom de grad 9 (linie punctata)

Aproximarea unei functii complicate ( ) f x se poate face cu o combinatie
liniara de n functii elementare liniar independente
i


1
( ) ( )
n
i i
i
f x a x
=
=

(2.1)
Se pot folosi in acest scop monoame, functii trigonometrice elementare sau
diverse tipuri de polinoame ortogonale dupa cum se va prezenta mai departe.
Uneori este necesara o combinare a metodelor de rezolvare pentru cele doua
clase de probleme pentru aproximarea unei functii necunoscute ale carei valori sunt
determinate experimental intr-un numar de puncte dar sunt afectate de perturbatii si
erori. Cel mai raspandit procedeu folosit in astfel de cazuri este cel de minimizare
globala a erorilor in sensul celor mai mici patrate.
Mentionam de asemena ca, in afara de importanta practica, aceste metode au si
o importanta teoretica, fiind folosite de numeroase alte metode numerice mai
complexe (derivarea, rezolvarea ecuatiilor diferentiale si a celor integrale, etc.).

2.1 I nterpolarea Newton

Cea mai raspandita alegere a functiilor elementare pentru formula de
aproximare sau interpolare 38H(2.1) o constituie functiile de tip monom
i
x , astfel ca se
obtine o functie polinomiala. Conform teoremei Weierstrass, orice functie continua pe
un interval finit [ ] , a b poate fi aproximata cu o precizie oricat de buna printr-o functie
polinomiala.
O prima posibilitate de aproximare de acest tip o constituie interpolarea
Newton, care foloseste urmatoarea dezvoltare a unei functii ( ) f x definita pe un
interval [ ] , a b :

0 1 1 2 1 2
1 1 2 1 1
( ) ( ) ( )( )
... ( )( )...( ) ( ) ( ) ( )
n n n n n
f x a a x x a x x x x
a x x x x x x R x P x R x

= + + +
+ + + = +
(2.2)
unde
1
( )
n
P x

este polinomul aproximant, de grad 1 n , iar ( )


n
R x este restul
aproximarii, presupus foarte mic in modul si care este un polinom de grad n.
Coeficientii
i
a ai dezvoltarii sunt dati de urmatoarele formule care definesc asa
numitele diferente divizate
, 1 1
( , ,..., )
k k
DD x x x

:

0 1
2 1
1 2 1
2 1
3 2 2 1
2 3 2 1
3 1
1 2 1 2 1
1
1
( );
( ) ( )
( , );
( , ) ( , )
( , , );
...................................................................
( , ,... ) ( , ,... )
(
n n n n
n n
n
a f x
f x f x
a DD x x
x x
DD x x DD x x
a DD x x x
x x
DD x x x DD x x x
a DD x
x x

= =

= =

= =

, 1,..., 1
);
n
x x

(2.3)
Prin urmare, formula de interpolare Newton poate fi scrisa sub forma:
1
1 , 1 1 1 1
2 1 1
( ) ( ) ( , ,..., ) ( ) ( , ,..., , ) ( );
k n n
k k i n n i
k i i
f x f x DD x x x x x DD x x x x x x


= = =
= + +

(2.4)
Demonstratia se poate face prin inductie completa. Astfel pentru 1 n=
formula este adevarata deoarece ea se poate scrie:

1
1
1
( ) ( )
( ) ( )
f x f x
f x f x
x x
+
= +
+
1
( ) x x ( ); f x = (2.5)
Presupunand acum ca ea este valabila pentru n, putem sa o scriem pentru
1 n n = + :
1 1 1
1 1 1 1 1
2 1 1
( ) ( ) ( , ,...., ) ( ) ( , ,..., , ) ( )
k n n
k k i n n i
k i i
f x f x DD x x x x x DD x x x x x x
+ +
+
= = =
= + +

(2.6)
Separand factorul cu indice 1 i n = + din produs si explicitand coeficientul
acestuia conform definitiilor diferentelor divizate 39H(2.3), termenul final din 40H(2.6)
devine:

1
1 1
1
1 1 1 1
1
1 1
( , ,...., , ) ( )
( , ,...., ) ( , ,...., , )
( ) ( )
n
n n i
i
n
n n n n
n i
i n
DD x x x x x x
DD x x x DD x x x x
x x x x
x x
+
+
=
+
+
= +

(2.7)
Separand si ultimul termenul cu indice 1 k n = + din suma din relatia 41H(2.6) si
schimband semnul si la numitorul si la numaratorul fractiei din 42H(2.7) obtinem

1
1 1 1 1 1
1
( ) ( ) ( , ,..., ) ( ) ( , ,..., ) ( )
n
k k i n n i
i
f x f x DD x x x x x DD x x x x x
+
+
=
= + +
1 1
2 1
1 1 1 1
1
( , ,...., ) ( , ,...., , )
k n
k i
n n n n
n
DD x x x DD x x x x
x x

= =
+
+
+
+
+

1
( )
n
x x
+
+
1
1
( )
n
i
x x
=

(2.8)
Se observa ca aceasta relatie se reduce la relatia 43H(2.4) pentru n, pe care am
presupus-o adevarata, ceea ce incheie demonstratia.
Formula de interpolare Newton poate fi scrisa si ca formula de aproximare a
unei functii printr-un polinom:

1
1 , 1 1
2 1
( ) ( ) ( , ,..., ) ( )
k n
k k i
k i
f x f x DD x x x x x

= =
+

(2.9)
Restul interpolarii polinomiale este prin urmare ultimul termen din
dezvoltarea 44H(2.4)

1 1
1
( ) ( , ,..., , ) ( );
n
n n n i
i
R x DD x x x x x x

=
=

(2.10)
Acesta se poate estima folosind functia ajutatoare:

1 1 1
1
( ) ( ) ( ) ( , ,..., , ) ( )
n
n n n i
i
Q t f t P t DD x x x x t x

=
=

(2.11)
Aceasta functie are pe intervalul [ ] , a b un numar de 1 n+ radacini deoarece
pentru t x = ea este nula conform relatiei 45H(2.4), iar pentru cele n valori
i
t x =
produsul se anuleaza si functia ( )
i
Q x se anuleaza de asemenea conform relatiei 46H(2.4)

; ( ) 0;
; ( ) 0; 1, 2,...,
i i
t x Q t
t x Q x i n
= =
= = =
(2.12)
Daca ( ) Q t are 1 n+ radacini, inseamna ca derivata de ordinul intai '( ) Q t are
n radacini, derivata de ordinul doi ''( ) Q t are 1 n radacini, si asa mai departe, iar
derivata de ordinul n are o radacina. Fie [ ] , a b aceasta radacina

( )
( ) 0
n
Q = (2.13)
Luad t = in relatia 47H(2.11) si tiand cont ca derivata de ordinul n in raport cu
t a produsului din 48H(2.11) este ! n , obtinem

( ) ( )
1
( ) ( )
n n
n
f P

1 1
( , ,..., , ) ! 0
n n
DD x x x x n

= (2.14)
unde al doilea termen este nul deoarece este derivata de ordin n a unui polinom de
grad 1 n .
Rezulta

( )
1 1
( )
( , ,..., , )
!
n
n n
f
DD x x x x
n

= (2.15)
si inlocuind in relatia 49H(2.10) se obtine formula

( )
1
( )
( ) ( )
!
n n
n i
i
f
R x x x
n

=
=

(2.16)
Aceasta este doar o estimare a restului, deoarece nu se cunoaste valoarea
exacta pentru care se anuleaza derivata de ordin n a functiei ( ) Q t , dar arata ca
valoarea absoluta a restului scade foarte rapid cu n datorita factorialului de la
numitor. Totusi, in zonele in care functia variaza foarte rapid, cum ar fi de exemplu la
capetele intervalelor (dincolo de care functia ar fi identic nula), este posibil ca si
numaratorul sa aiba valori mari iar restul sa devina important, contribuind la asa-
numitul fenomen Rungecare va fi prezentat mai departe.
Programul 2.1 prezinta aproximarea unei functii printr-un polinom prin
metoda de interpolare Newton, iar programul 2.2 prezinta aproximarea unei functii
cunoscuta doar prin un numar finit de valori numerice in puncte de esantionare
neechidistante.








Programul 2.1 Aproximarea unei functii printr-un polinom de interpolare
Newton de grad 15
f @x_D = 3Cos@2x+ 1D 2Si nA
x
2
3E; H f uncti a de aproxi mat L
g1= Pl ot@f @xD, 8x, 0, 2<, Pl otStyl e Bl ueD; H graf i cul f uncti ei L
n= 16; H numarul de termeni ai pol i nomul ui L
ForAk= 1, k<= n, r@kD =
2.
n
k; k++E; H punctel e de esanti onareL
ForAi = 1, i n,
DD@i +1, i D =
f @r@i + 1DDf @r@i DD
r@i + 1Dr@i D
; H di f erentel e f i ni te di recte L
i ++E;
ForAj = 3, j <= n,
ForAi = 1, i < j 1,
DD@j , j i 1D =
DD@j , j i D DD@j 1, j i 1D
r@j D r@j i 1D
; Hdi f erente f i ni te recursi veL
i ++E;
j ++E;
p@x_D = f @r@1DD+
k=2
n
DD@k, 1D
l =1
k1
Hx r@l DL; H Pol i nomul de i nterpol are L
g2= Pl ot@p@xD, 8x, 0, 2<, Pl otStyl e RedD;
Show@g1, g2D; H graf i cel eambel or f uncti i L
Pri nt@"PHxL=", Expand@p@xDDD;


Cele doua functii afisate in final au grafice perfect suprapuse:

1 2 3 4 5 6
- 1
1
2
3
4
5


Polinomul de grad 15 obtinut de program este urmatorul:
PHxL=1. 88067 3. 86244x 4. 01909x
2
+ 4. 95796x
3
1. 28767x
4
+
1. 74569x
5
1. 9508x
6
+ 1. 07521x
7
0. 418778x
8
+ 0. 134868x
9
0. 0341521x
10
+
0. 00618301x
11
0. 00075202x
12
+ 0. 0000580942x
13
2. 5785510
6
x
14
+ 5. 0216210
8
x
15




Programul 2.2 Aproximarea unei functii cunoscuta intr-un numar de puncte,
printr-un polinom de interpolare Newton

r = 81. , 3, 4, 6, 8, 9, 11, 12, 14<; H punctel e de esanti onare L
y= 82, 1, 0, 3, 5, 7, 8, 7, 5<; H val ori l e corespunzatoare al e f uncti ei L
n= Length@rD;
l = 8<;
For@k= 1, k n, k++, AppendTo@l , 8r@@kDD, y@@kDD<DD;
g1= Li stPl ot@l , Pl otJ oi ned True, Pl otStyl e Bl ueD;
ForAi = 1, i <= n1,
DD@i +1, i D =
y@@i +1DDy@@i DD
r@@i +1DDr@@i DD
;
i ++E;
ForAj = 3, j <= n,
ForAi = 1, i < j 1,
DD@j , j i 1D =
DD@j , j i D DD@j 1, j i 1D
r@@j DD r@@j i 1DD
;
HPri nt@"DD@", j , ", ", j i 1, "D=", DD@j , j i 1DD; L
i ++E;
j ++E;
p
N
@x_D =y@@1DD +
k=2
n
DD@k, 1D
l =1
k1
Hxr@@l DDL;
g2= Pl ot@p
N
@xD, 8x, 1, Max@rD<, Pl otStyl e RedD;
Show@g1, g2D;
Pri nt@"P
N
HxL=", Expand@p
N
@xDDD;


Graficul obtinut in urma interpolarii polinomiale pentru punctele date este
urmatorul:

2 4 6 8 10 12 14
2
4
6
8


Polinomul de interpolare obtinut pentru punctele date este urmatorul:

P
N
HxL=37. 5631+88. 1934x 71. 2328x
2
+ 27. 9811x
3

6. 10102x
4
+ 0. 777721x
5
0. 0575849x
6
+ 0. 00229166x
7
0. 0000378749x
8



2.2 I nterpolarea Lagrange

O alta metoda de interpolare polinomiala, echivalenta cu cea prezentata
anterior dar beneficiind de formule mai simple este interpolarea Lagrange.
O functie ( ) f x continua pe intervalul [ ] , a b si ale carei valori sunt cunoscute
in n puncte poate fi aproximata printr-un polinom de grad 1 n

1
( ) ( )
n
f x P x

(2.17)
folosind formula

1
1 1
( ) ( ) ( )
n n
j
n i
i j i j
j i
x x
f x P x f x
x x

= =


(2.18)
Aceasta relatie se mai poate scrie si sub forma

1
( ) ( ) ( )
n
i i
i
f x f x L x
=

(2.19)
unde functiile ( )
i
L x sunt polinoamele Lagrangeavand expresia

1
( )
n
j
i
j i j
j i
x x
L x
x x
=

(2.20)
Ca si in cazul interpolarii Newton, trebuie sa existe egalitate stricta in relatia
50H(2.19) in punctele in care functia este cunoscuta,
i
x , iar in afara lor sa existe o
diferenta cat mai mica, reprezentata de acelasi rest dat de relatia 51H(2.16).

1
( ) ( ) ( )
n
i i i i
i
f x f x L x
=
=

(2.21)

1
( ) ( ) ( ) ( )
n
i i n
i
f x f x L x R x
=
= +

(2.22)
Pentru demonstarea formulei, scriem mai intai forma desfasurata a
polinoamelor Lagrange

1 2 1 1
1 2 1 1
( )( )...( )...( )( )...( )
( )
( )( )...( )...( )( )...( )
k i i n
i
i i i k i i i i n
x x x x x x x x x x x x
L x
x x x x x x x x x x x x
+
+

=

(2.23)
Se observa ca pentru
i
x x = rezulta ( ) 1
i i
L x = , deoarece fiecare factor de la
numarator se simplifica cu unul de la numitor.
Pentru
k
x x = unde k i , exista la numarator un factor ( ) 0
k k
x x = , astfel ca
( ) 0
i k
L x = .
Rezulta urmatoarea proprietate a polinoamelor Lagrange:
( )
i k ik
L x = (2.24)
Calculand cu relatia 52H(2.18) valoarea functiei polinomiale intr-un punct
j
x ,
rezulta:

1
1
( ) ( ) ( )
n
n j i ij j
i
P x f x f x

=
= =

(2.25)
astfel ca este demonstrata relatia 53H(2.21).
Aparent, formula de interpolare Lagrange este mai simpla decat cea de
interpolare Newton si este folosita mai des in calculele analitice. De remarcat insa ca
in calcule numerice interpolarea Newton poate sa fie mai eficienta, deoarece
coeficientii dezvoltarii se calculeaza recursiv, spre deosebire de cazul interpolarii
Lagrange.
Programul 2.3 ilustreaza metoda de aproximare si interpolare a unei functii
folosind polinoame Lagrange. In mediul Mathematica acest program este deosebit de
rapid datorita performantelor deosebite ale rutinelor de calculare a produselor.

Programul 2.3 Aproximarea unei functii folosind un polinom Lagrange de
gradul 20
f @x_D = Cos@Log@2x3DD Si nA
!!!!!!!!!!!
x
2
+1E;
a= 3;
b= 9;
g1= Pl ot@f @xD, 8x, a, b<, Pl otStyl e Bl ueD;
n= 21;
r = Tabl e@0, 8n<D;
Absol uteTi mi ngAForAk= 1, k<= n, k++, r@@kDD =a+
ba
n
kE;
p@x_D =
i =1
n
f @r@@i DDD
i
k
j
j
j
j

j =1
i 1
xr@@j DD
r@@i DD r@@j DD
y
{
z
z
z
z

i
k
j
j
j
j

j =i +1
n
xr@@j DD
r@@i DD r@@j DD
y
{
z
z
z
z
; E
g2= Pl ot@p@xD, 8x, a, b<, Pl otStyl e RedD;
Show@g1, g2D;
Pri nt@"PHxL=", Expand@p@xDDD;


2.3. Algoritmul Neville
O schema practica mult mai eficienta de calcul a polinomului de interpolare
este data de algoritmul Neville, care va fii descris in continuare.
Notam mai intai cu
1
P polinomul de gradul zero (o constanta) care trece prin
punctul {{ }
1 1
( ), f x x , deci
1 1
( ) P f x = , cu
2
P polinomul de gradul zero (o constanta)
care trece prin punctul {{ }
2 2
( ), f x x , deci
2 2
( ) P f x = , si asa mai departe pana la
( )
n n
P f x = .
Din aceste polinoame se pot forma polinoame de grad unu (o dreapta) notate
astfel: cu
12
P polinomul care trece prin punctele { }
1 1
( ), f x x si { }
2 2
( ), f x x , cu
23
P
polinomul care trece prin punctele { }
2 2
( ), f x x si { }
3 3
( ), f x x , si asa mai departe pana
la
1, n n
P

polinomul care trece prin punctele { }


1 1
( ),
n n
f x x

si { } ( ),
n n
f x x .
Se continua acest proces prin formarea de polinoame din grad din ce in ce mai
mare, pana se ajunge la
1,2,..., 1, n n
P

polinomul care trece prin punctele
{ }
1 1
( ), f x x , { }
2 2
( ), f x x ,, { }
1 1
( ),
n n
f x x

si { } ( ),
n n
f x x , adica tocmai polinomul
cautat.
Se poate alcatui deci o schema arborescenta in care fiecare coloana se
calculeaza pe rand pe baza coloanei precedente.

1 1 1
12
2 2 2 123
23 1234
3 3 3 234
34
4 4 4
: ( )
: ( )
: ( )
: ( )
x f x P
P
x f x P P
P P
x f x P P
P
x f x P
=
=
=
=
(2.26)

In aceasta schema, fiecare polinom de grad k se obtine din doua polinoame de
grad 1 k dupa urmatoarea formula obtinuta pe baza diferentelor divizate:

( 1)...( 1) ( 1)( 2)...( )
( 1)...( )
( ) ( )
i k i i i k i i i i k
i i i k
i i k
x x P x x P
P
x x
+ + + + + +
+ +
+
+
=

(2.27)
Programul 2.4 ilustreaza calculul polinomului de interpolare prin algoritmul
Neville. Trebuie mentionat totusi ca acest algoritm este recomandat pentru limbaje de
programare de uz general, unde viteza va fi intr-adevar mai mare decat cea a
interpolarii Newton sau Lagrange. Folosind programul Mathematica, viteza obtinuta
cu formula de interpolare Lagrange este superioara celorlalte metode datorita
eficientei deosebite de calcul a produselor care apar in aceasta metoda.

Programul 2.4 Aproximarea unei functii prin polinomului de interpolare
obtinut prin algoritmul Neville.
f @x_D : = Si n@x+1D;
a= 0. ;
b= 4;
g1= Pl ot@f @xD, 8x, a, b<, Pl otStyl e Bl ueD;
M= 21;
r = Tabl e@0, 8M<D;
Absol uteTi mi ngAForAk= 1, k M, k++,
r@@kDD = a+
ba
M
k; d@k, kD = f @r@@kDDDE;
ForAm= 1, m<= M, m++,
ForAi = 1, i <= Mm, i ++,
d@i , i + mD = ExpandA
Hxr@@i + mDDL d@i , i + m1DHxr@@i DDL d@i +1, i +mD
r@@i DD r@@i + mDD
EE; EE
p= d@1, MD;
g3= Pl ot@Eval uate@pD, 8x, a, b<, Pl otStyl e RedD;
Show@g1, g3D;
Pri nt@"PHxL=", pD;


2.4 Fenomenul Runge

Atunci cand se incearca aproximarea unei functii oarecare printr-o functie
polinomiala unica pentru intregul domeniu de definitie [ ] , a b se constata de regula ca
erorile sunt mai mari inspre capete. Uneori este chiar posibil ca erorile spre capete sa
creasca odata cu cresterea gradului polinomului de interpolare, ceea ce face ca
metodele Newton sau Lagrange sa nu fie convergente, in sensul ca erorile nu pot fi
micsorate oricat de mult. Acesta este asa-numitul fenomen Runge si este intalnit in
special in cazul in care punctele in care egalitatea functiei cu polinomul aproximant
(punctele de esantionare) sunt echidistante.
Fenomenul Runge este ilustrat de programul 2.5, care evidentiaza (chiar
pentru functia data ca exemplu de Runge) erorile spre capetele intervalului. Rularea
programului cu un numar din ce in ce mai mare de puncte intensifica aceste erori.

Programul 2.5 Aparitia fenomenului Runge la o interpolare polinomiala
globala folosind puncte de esantionare echidistante
f @x_D =
1
x
2
+1
; H f uncti a Runge L
a= 3. 0;
b= 3. 0;
g1= Pl ot@f @xD, 8x, a, b<, Pl otStyl e Bl ueD; H graf i cul f uncti ei L
n= 10; H numarul de termeni ai pol i nomul ui L
ForAk= 1, k<= n, r@kD = a+
ba
n
k; k++E; H punctel e de esanti onareL
ForAi = 1, i n,
DD@i +1, i D =
f @r@i +1DDf @r@i DD
r@i +1Dr@i D
; H di f erentel e f i ni te di recte L
i ++E;
ForAj = 3, j <= n,
ForAi = 1, i < j 1,
DD@j , j i 1D =
DD@j , j i D DD@j 1, j i 1D
r@j D r@j i 1D
; Hdi f erente f i ni te recursi veL
i ++E;
j ++E;
p@x_D = f @r@1DD+
k=2
n
DD@k, 1D
l =1
k1
Hxr@l DL; H Pol i nomul de i nterpol are L
g2= Pl ot@p@xD, 8x, a, b<, Pl otStyl e RedD;
Show@g1, g2D; H graf i cel e ambel or f uncti i L
Pri nt@"PHxL=", Expand@p@xDDD;


Graficul de interpolare in puncte echidistante a functiei Runge (cea care a fost
exemplificata prima oara in legatura cu acest fenomen) printr-un polinom cu 10
termeni este urmatorul:

- 3 - 2 - 1 1 2 3
0. 5
1
1. 5
2

Daca se creste numarul de termeni ai polinomului la 20, graficul de interpolare
in puncte echidistante a functiei Runge este urmatorul:

- 3 - 2 - 1 1 2 3
-1
- 0. 5
0. 5
1
1. 5


Se observa ca desi in portiunea centrala erorile scad cand se creste ordinul
polinomului de interpolare, spre capetele intervalului erorile tind sa creasca, relevand
fenomenul Runge.
Desigur, o solutie ar fi sa se foloseasca o functie polinomiala distincta pentru
fiecare subinterval, prin procedeul functiilor spline care va fi prezentat mai tarziu.
Totusi exista solutii pentru evitarea fenomenului Runge si printr-o interpolare
globala, printr-o alegere speciala a punctelor de esantionare a domeniului.

2.4 Utilizarea polinoamelor Chebyshev si teorema mini-max

Erorile la interpolare si aproximare sunt date de restul ( )
n
R x dat de relatia
54H(2.16)

( )
1
( )
( ) ( )
!
n n
n i
i
f
R x x x
n

=
=


Deoarece, asa cum s-a aratat nu se cunoaste punctul si valoarea derivatei de
ordinul n in acest punct, singura cale de a se minimiza restul este sa se aleaga
corespunzator punctele de esantionare
i
x astfel incat produsul

1
( ) ( )
n
n i
i
p x x x
=
=

(2.28)
sa fie minim.
Acesta este un polinom monic (polinom cu coeficientul termenului de gradul
cel mai inalt egal cu 1) de gradul n. In legatura cu acest tip de polinoame exista
urmatoarea teorema:
Teorema mini-max: dintre toate polinoamele monice de grad n,
polinoamele monice Chebyshev au cea mai mica valoare absoluta maxima pe
intervalul
[ ]
1,1 .
Rezulta ca daca punctele de esantionare
i
x sunt chiar radacinile unui polinom
monic Chebyshev de grad n, produsul 55H(2.28) este un astfel de polinom si deci restul
interpolarii polinomiale va avea cea mai mica valoare maxima posibila pe intervalul
[ ]
1,1 . Printr-o schimbare convenabila de variabila, acest procedeu poate fi extins
pentru orice interval finit
[ ] , a b si teoretic chiar si pentru intervale cu una din limite
infinita.
Demonstratia acestei teoreme se va face dupa ce se trec in revista anumite
proprietati utile ale polinoamelor Chebyshev.
Polinoamele Chebyshev se definesc pe intervalul
[ ]
1,1 prin urmatoarea
relatie:
( ) cos( arccos( ))
n
T z n z = (2.29)
Notand

[ ]
arccos ; 1,1 z z = (2.30)
rezulta forma echivalenta:
( ) cos
n
T z n = (2.31)
unde
cos z = (2.32)
Pornind de la aceasta definitie rezulta ca primele doua polinoame Chebyshev
sunt:

0
1
( ) cos 0 1
( ) cos
T z
T z z

= =
= =
(2.33)
Restul polinoamelor Chebyshev se pot calcula si prin relatia de recurenta:

1 2
( ) 2 ( ) ( ); 2
n n n
T z zT z T z n

= (2.34)
Relatia 56H(2.34) se poate demonstra pe baza urmatoarei identitati
trigonometrice:

1
cos( ) cos( ) [cos( ) cos( )]
2
= + + (2.35)
Luand in aceasta relatie = si ( 1) n = se obtine:

1 2
( )
( ) ( )
1
cos cos( 1) [cos cos( 2) ]
2
n
n n
z
T z
T z T z
n n n

= +
_
_ _
(2.36)
de unde se deduce relatia 57H(2.34).
Se poate demonstra ca functiile ( )
n
T z sunt polinoame de grad n, avand
urmatoarea forma generala:

1
1
( ) 2 ( )
n n
n n
T z z R z

= + (2.37)
unde
1
( )
n
R z

este un polinom de grad 1 n . Vom folosi notatia { }


1 1
( ) ( )
n n
R z z

1 ,
unde { }
1
( )
n
z

1 este multimea polinoamelor de grad cel mult 1 n .


Demonstratia se poate face prin inductie completa. Intr-adevar pentru 1 n=
relatia 58H(2.37) este evidenta. Presupunand acum ca ea este valabila pentru n, in cazul
1 n n + , tinand cont de relatia 59H(2.34) se obtine:

1 2 1 1
1 1 1 2
( )
( ) 2 ( ) ( ) 2 2 2 ( ) 2 ( ) 2 ( )
n
n n n n n n
n n n n n n
R z
T z zT z T z z z zR z z R z z R z
+
+
= = + = +
_
(2.38)
ceea ce arata ca relatia este valabila si in acest caz.
Cele n radacini ale polinomului Chebashev de grad n se pot determina
simplu din relatia de definitie
( ) 0; cos 0; (2 1) ; 1, 2,...,
2
n k k k
nradacini
T z n n k k n

= = = =
_
(2.39)

1
;
2
k
k
n


=


(2.40)

1
cos
2
k
z k
n

=


(2.41)
Extremele polinomului au valoarea 1 sau -1:
( ) cos [ 1,1]
n
T z n = (2.42)
Ele se pot obtine simplu punand conditia de extrem in definitia 60H(2.31):
| cos | 1 ;
k k k
n n k k
n

= = = (2.43)

1 extreme
cos ; 0,1, 2,...,
k
n
z k k n
n

+

= =


_
(2.44)
De remarcat ca cele 1 n+ valori ale lui
k
z date de acesta relatie sunt ordonate
descrescator, functia cosinus fiind descrescatoare de la 1 la -1 pe intervalul
[ ]
0, .
Astfel, pentru 0 k= avem
0
1 z = iar pentru k n = avem 1
n
z = .
Inlocuind
k
in 61H(2.42) rezulta valorile in extreme:
( ) ( 1)
k
n k
T z = (2.45)
Conform celor precizate in alineatul precedent, rezulta ca la extrema dreapta a
domeniului de definitie avem extremul
0
1 z = , pentru care valoarea polinomului este
intotdeauna
0
( 1) 1 = , in timp ce la extrema stanga avem extremul 1
n
z = , pentru
care valoarea polinomului este 1 daca gradul este par si -1 daca gradul este impar.
Programul 2.6 calculeaza prin recurenta primele 7 polinoame Chebyshev si
afiseaza graficele si expresiile lor individuale, precum si graficele suprapuse. Din
aceste reprezentari grafice se pot observa pozitiile celor n radacinilor si ale celor
1 n+ extreme.

Programul 2.6 Calculul si reprezentarea polinoamelor Chebyshev
T@0D = 1;
T@1D = x;
T@n_D : = 2 xT@n1D T@n2D;
gr = 8<;
ForAn= 0, n 6, n++, Pri nt@Expand@T@nDDD
AppendToAgr, Pl otAT@nD, 8x, 1, 1<,
Pl otStyl e RGBCol orA
n
10
,
n
10
,
10n
10
EEEE;
Show@grD;


Reprezentarea pe un singur grafic a primelor 7 polinoame Chebyshev,
generata de acest program este urmatoarea:
-1 -0. 5 0. 5 1
- 1
- 0. 5
0. 5
1

De asemenea programul genereaza urmatoarele reprezentari pe grafice
individuale pentru aceste polinoame:
1
- 1 - 0. 5 0. 5 1
0. 5
1
1. 5
2
x
- 1 - 0. 5 0. 5 1
- 1
- 0. 5
0. 5
1
1+ 2x
2
- 1 - 0. 5 0. 5 1
- 1
- 0. 5
0. 5
1
3x+ 4x
3
- 1 - 0. 5 0. 5 1
- 1
- 0. 5
0. 5
1
1 8x
2
+ 8x
4
- 1 - 0. 5 0. 5 1
- 1
- 0. 5
0. 5
1
5x 20x
3
+ 16x
5
- 1 - 0. 5 0. 5 1
- 1
- 0. 5
0. 5
1
1+ 18x
2
48x
4
+ 32x
6
- 1 - 0. 5 0. 5 1
- 1
- 0. 5
0. 5
1

Numim polinoame monice acele polinoame care au coeficientul termenului de
gradul cel mai inalt egal cu 1. Din relatia 62H(2.37) se observa ca se poate obtine simplu
un polinom monic Chebyshev de gradul n, pe care il vom nota in continuare ( ) n T z ,
prin impartirea unui polinom Chebyshev cu
1
2
n


1 1
1 1
( )
( ) 2 ( ) 2 ( )
2
n n n n
n n n n
T z
T z T z z R z


= = = + (2.46)
Conform definitiei 63H(2.31) se poate scrie
( ) 1
n
T z (2.47)
deci polinomul monic Chebyshev are proprietatea

1
1
1
( ) 2
2
n
n n
T z

= (2.48)
Demonstratia teoremei mini-max.
Aceasta demonstratie se va face prin reducere la absurd. Sa presupunem ca ar
exista un polinom monic ( )
n
f z cu proprietatea

1
( ) ( ) 2
n
n n
f z T z

< (2.49)
Daca ( )
n
f z este un polinom monic se poate scrie

1
( ) ( )
n
n n
f z z F z

= + (2.50)
cu { }
1 1
( ) ( )
n n
F z z

1
Sa formam functia ajutatoare
( ) ( ) ( )
n n
Q z T z f z = (2.51)
Tinand seama de relatiile 64H(2.46) si 65H(2.50) se observa ca avem

1
1 1
( ) 2 ( ) ( )
n
n n
Q z R z F z


=
{ }
1
( ) ( )
n
Q z z

1 (2.52)
deci functia ( ) Q z este un polinom de grad cel mult 1 n .
Sa studiem comportarea acestei functii intre doua extreme consecutive ale
polinomului monic Chebyshev. Evisent, acest polinom monic are tot 1 n+ extreme ca
si polinomul Chebyshev normal.
Orice interval este intre doaua extreme consecutive are la un capat un extrem
cu numar par 2k si la celalalt un extrem cu numar impar 2 1 k .
In extremul cu numar par, conform relatiei 66H(2.45), rezulta ca polinomul monic
este pozitiv

2
2 1
( 1)
( ) 0
2
k
n k n
T

= > (2.53)
deci

2 2
( ) ( )
n k n k
T T = (2.54)
iar functia ajutatoare este pozitiva

2 2 2 2 2
( ) ( ) ( ) ( ) ( ) 0
k n k n k n k n k
Q T f T f = = > (2.55)
deoarece conform ipotezei modulul lui ( )
n
f z este mai mic decat al polinomului
monic Chebyshev.
Pe de alta parte, in extremul cu numar impar, conform relatiei 67H(2.45), rezulta
ca polinomul monic este negativ

2 1
2 1 1
( 1)
( ) 0
2
k
n k n
T

= < (2.56)
deci

2 1 2 1
( ) ( )
n k n k
T T

= (2.57)
iar functia ajutatoare este negativa

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

= = < (2.58)
deoarece conform ipotezei modulul lui ( )
n
f z este mai mic decat al polinomului
monic Chebyshev.
Deoarece intr-un capat al intervalului functia ( ) Q z este pozitiva iar in celalalt
capat este negativa, inseamna ca ea ar avea cel putin o radacina in acest interval.
Deoarece exista 1 n+ extreme, intre acestea se afla n asemenea intervale si deci
functia ( ) Q z ar avea cel putin n radacini.
Aceasta insa este imposibil deoarece, dupa cum s-a aratat, functia ( ) Q z este
un polinom de grad cel mult 1 n , ceea ce arata ca ipoteza este falsa si deci este
adevarata contrara ei:

1
( ) ( ) 2
n
n n
f z T z

(2.59)
ceea ce demonstreaza teorema mini-max.
In concluzie, exista posibilitatea minimizarii erorilor de interpolare
polinomiala globala a unei functii pe intervalul
[ ] 1,1 prin algoritmi de tip Lagrange
sau Newton prin alegerea punctelor de esantionare a abscisei (nodurile) in radacinile
unui polinom Chebyshev de ordin n data de relatia 68H(2.41). Daca avem un interval
oarecare
[ ] , a b , se poate utiliza o schimbare de variabila de tipul

2 2
b a b a
z x
+
= + (2.60)
astfel ca nodurile de interpolare sunt date de relatia

1
cos , 1, 2,...,
2 2 2
b a b a
z k k n
n
+
= + =


(2.61)
Programul 2.7 realizeaza interpolarea polinomiala Newton a unei functii (in
acest exemplu, functia Runge) prin esantionarea abscisei in radacinile unui polinom
Chebyshev. Singura deosebire fata de cazul esantionarii echidistante (programul 2.5)
este calculul nodurilor folosind relatia 69H(2.61), conform teoremei mini-max.
Programul 2.7- Interpolare polinomiala globala a functiei Runge cu
esantionare in noduri Chebashev
f @x_D =
1
x
2
+1
; H f uncti a Runge L
a= 3. 0;
b= 3. 0;
g1= Pl ot@f @xD, 8x, a, b<, Pl otStyl e Bl ueD; H graf i cul f uncti ei L
n= 10; H numarul de termeni ai pol i nomul ui L
ForAk= 1, k<= n, r@kD =
a+ b
2
+
ba
2
CosAJk
1
2
N

n
E; k++E; H punctel e de esanti onareL
ForAi = 1, i n,
DD@i +1, i D =
f @r@i +1DD f @r@i DD
r@i + 1D r@i D
; H di f erentel e f i ni te di recte L
i ++E;
ForAj = 3, j <= n,
ForAi = 1, i < j 1,
DD@j , j i 1D =
DD@j , j i D DD@j 1, j i 1D
r@j D r@j i 1D
; Hdi f erente f i ni te recursi veL
i ++E;
j ++E;
p@x_D = f @r@1DD+
k=2
n
DD@k, 1D
l =1
k1
Hxr@l DL; H Pol i nomul de i nterpol are L
g2= Pl ot@p@xD, 8x, a, b<, Pl otStyl e RedD;
Show@g1, g2D; H graf i cel e ambel or f uncti i L
Pri nt@"PHxL=", Expand@p@xDDD;


Graficul de interpolare a functiei Runge in puncte date de radacinile
polinomului Chebayshev de grad 10, printr-un polinom cu 10 termeni este urmatorul:


- 3 - 2 - 1 1 2 3
0. 2
0. 4
0. 6
0. 8
1

Se observa ca in regiunea centrala erorile sunt mai mari decat in cazul
esantionarii echidistante (datorita densitatii mai mici a nodurilor), in schimb spre
capete erorile sunt substantial mai mici decat in cazul respectiv.
Daca se creste numarul de termeni ai polinomului la 20, graficul de interpolare
a functiei Runge in puncte date de radacinile polinomului Chebyshev de grad 20 este
urmatorul:

- 3 - 2 - 1 1 2 3
0. 2
0. 4
0. 6
0. 8
1

Se observa ca erorile scad foarte mult pe tot intervalul atunci cand se mareste
gradul polinomului de interpolare, ceea ce arata ca, spre deosebire de cazul
interpolarii echidistante, procesul este convergent.

2.5 I nterpolarea cu functii spline

In cazul in care interpolarea cu un polinom pe intregul interval de interes
conduce sau la erori prea mari sau la un polinom de grad prea mare pentru a fi usor
manipulat, se poate recurge la impartirea in subintervale si aproximarea pe fiecare
subinteval cu un polinom distinct dar de grad mic.
Cea mai simpla varianta este interpolarea cu un polinom de grad 1, adica o
dreapta care uneste doua puncte consecutive cunoscute. Daca aceste puncte sunt
suficient de multe, erorile la aproximarea functiei necunoscute prin segmente de
dreapta pot fi acceptabile, si intre punctele cunoscute se poate face o interpolare
liniara.
O ilustrare a procedeului este data de programul urmator, in care se face
reprezentarea cu interpolare liniara a unei liste de valori { }
i
y determinate
experimental ale unei functii necunoscute pentru anumite valori ale argumentului
{ }
i
x .
Cl ear@"`"D;
x= 80, 1. 5, 2, 3. 5, 4, 5, 6, 7, 8, 9<; H absci sel e i n care este cunoscuta f uncti a L
y= 82, 1, 3, 5, 2, 1, 2, 1, 3, 1<; H val ori l e f uncti ei i n punctel e cunoscute L
g1= Li stPl ot@l stD; H reprezentarea pri n puncte di sti ncte L
g2= Li stPl ot@l st, Pl otJ oi ned TrueD; HReprezentarea pri n segmenteL
Show@g1, g2D; H Graf i cul compus di n puncte uni te pri n segmente L

Rezulta urmatoarea reprezentare grafica:
2 4 6 8
-2
-1
1
2
3
4
5

In schimb, daca functia are o variatie rapida iar numarul de puncte in care ea
este cunoscuta este mic erorile pot creste foarte mult. In figura urmatoare este
reprezentata o aproximare prin segmente de dreapta a unei functii sinusoidale
cunoscuta doar in 6 puncte. Se observa ca la anumite valori ale argumentului (de
exemplu la 0,5 sau 2,5) erorile care apar la o interpolare liniara sunt foarte mari, de
ordinul zecilor de procente.
1 2 3 4 5
- 1
- 0. 5
0. 5
1

Chiar si prin marirea numarului de puncte la 12 erorile sunt in cele mai multe
cazuri inacceptabile, dupa cum se poate observa in figura urmatoare:
2 4 6 8 10
- 1
- 0. 5
0. 5
1


Desigur, daca s-ar folosi pentru aproximarea intre doua puncte a unui polinom
de grad superior, rezultatele ar fi mult mai bune, dar procedeul ar putea fi prea
complicat din punct de vedere numeric.
In practica, cea mai avantajoasa metoda o constituie folosirea unor polinoame
de gradul 3, ceea ce conduce la un compromis optim intre precizie si complexitate.
Aceasta este metoda interpolarii spline cubice, denumire provenita de la forma
functiei pe fiecare portiune portiune a domeniului si de la gradul polinomului folosit.
Metoda presupune mai intai impartirea domeniului
0
[ , ]
n
x x in mai multe
subintervale:

0 0 1 1 2 1 1
[ , ] [ , ] [ , ] ... [ , ] ... [ , ]
n i i n n
x x x x x x x x x x
+
= (2.62)
Pe fiecare subinterval
1
[ , ]
i i
x x
+
, functia este aproximata printr-un polinom de
gradul trei ( )
i
S x de forma

3 2
1
1
( ) ( ) ( ) , [ , ]
( )
0, [ , ]
i i i i i i i i i
i
i i
a x x b x x c x x d x x x
S x
x x x
+
+
+ + +

(2.63)
0,1,..., 1 i n =
Pe ansamblu functia este aproximata printr-o suma ( ) S x de astfel de functii cu
domenii de definitie disjuncte

1
0
( ) ( ) ( )
n
i
i
f x S x S x

=
=

(2.64)
Pentru a se putea calcula cei 4n coeficienti din relatiile 70H(2.63) se vor impune
conditii de racordare in punctele intermediare: functiile si primele lor doua derivate
trebuie sa fie continue in aceste 1 n puncte. Rezulta 3( 1) n ecuatii, care impreuna
cu cele 1 n+ ecuatii care dau valorile cunoscute ale functiei in cele 1 n+ puncte
(incluzand si cele de la capetele intervalului) dau un total de 4 2 n ecuatii.
Pentru ca sistemul sa fie determinat se aleg (subiectiv) doua valori pentru
derivata a doua la capetele intervalului, sistemul devenind astfel complet. Cea mai
uzuala alegere este ca derivata a doua sa fie 0 la capetele intervalului, caz in care
avem asa numita interpolare spline bicubica naturala.



Capitolul 3
Rezolvarea ecuatiilor neliniare

Problema gasirii acelor valori ale argumentului unei functii reale de argument
real care anuleaza functia, adica a gasirii punctelor de intersectie a functiei cu abscisa
(fig 3.1), este echivalenta cu rezolvarea ecuatiei:
( ) 0 F x = , : F R R (3.1)
Valorile respective sunt numite radacinile ecuatiei 71H(3.1).
Problema admite solutii analitice pentru toate cazurile in care functia este un
polinom de grad cel mult 4, pentru anumite functii elementare sau speciale, si anumite
combinatii ale acestora. In foarte multe cazuri insa, nu este posibila gasirea unor
solutii analitice si este necesar sa se utilizeze metode numerice pentru obtinerea
radacinilor.
Exista o mare varietate de metode generale pentru rezolvarea numerica a
acestei probleme, caracterizate prin diverse grade de complexitate, eficienta si viteza.
Sunt de asemenea cunoscute o serie de metode speciale, recomandabile pentru cazuri
in care se pot exploata favorabil o serie de particularitati ale functiei in cauza.
Pentru optimizarea numarului de operatii necesare pentru obtinerea cu precizie
ridicata a tuturor radacinilor, se procedeaza de cele mai multe ori in doua etape, in
special atunci cand se presupune ca exista mai multe radacini distincte. Este
recomandabil de asemenea ca, daca mediul de programare folosit permite usor acest
lucru, sa se vizualizeze mai intai graficul functiei respective pe intervalul de interes,
ceea ce ofera o imagine asupra pozitiei radacinilor si numarului lor.
Intr-o prima etapa, se vor stabili subintervalele in care sunt plasate radacinile,
pentru a restrange procesul de cautare a valorilor exacte in domenii cat mai inguste, in
care gasirea valorilor cu o precizie mare sa se faca printr-un numar cat mai redus de
iteratii. De exemplu, in figura 3.1 se observa ca radacina x
3
este in intervalul
[4h,5h].Vom numi in continuare acest proces etapa gasirii intervalelor (engl.
braketing).
In a doua etapa, se va considera fiecare interval in parte, si prin metode
numerice cat mai eficiente se va gasi radacina din intervalul respectiv cu precizia
dorita. Vom numi in continuare acest proces etapa gasirii radacinilor (engl.
refining).
Dat fiind ca unele metode considerate foarte eficiente in majoritatea cazurilor
pot da rezultate eronate pentru anumite cazuri particulare, este obligatoriu ca dupa
gasirea radacinilor sa se faca verificarea acestora, introducand valorile respective in
ecuatia 72H(3.1) si observand abaterea fata de 0.

3.1 Gasirea intervalelor prin esantionare

Intervalele in care se afla cate o radacina pot fi determinate vizual pe baza
analizei graficului functiei, daca acesta poate fi reprezentat. Analitic, acest lucru este
posibil pe baza urmatoarei consecinte a teoremei valorii medii:
Daca o functie este monotona si continua pe un interval [a,b] si indeplineste
conditia ( ) ( ) 0 F a F b < , atunci in intervalul respectiv se afla o radacina.
Prin urmare, este posibila gasirea intervalelor in care se afla cate o radacina
daca se esantioneaza abscisa cu pasul h, se calculeaza valorile functiei in punctele
respective si produsul acestor valori in puncte consecutive. Daca un astfel de produs
este negativ, intre cele doua puncte de esantionare respective se afla cel putin o
radacina. Se observa ca acest procedeu este de fapt echivalent construirii sirului Rolle.
Radacina este unica daca functia este monotona (conditie suficienta, nu si
necesara), dar acest lucru nu este intotdeauna cunoscut. In cazul in care in intevral ar
exista mai multe radacini, majoritatea metodelor numerice vor gasi numai una,
celelalte pierzandu-se. Pentru a evita aceasta exista mai multe posibilitati: se poate
reprezenta grafic functia, se poate studia si semnul derivatei daca se dispune de
aceasta, sau se poate alege pasul de esantionare suficient de fin pentru a se surprinde
toate trecerile prin zero ale functiei. Uneori, numarul radacinilor poate fi dedus din
considerente teoretice (de exemplu in cazul functiilor polinomiale, desi nu
intotdeauna radacinile sunt reale si distincte). De subliniat insa ca nu exista o metoda
generala sigura pentru gasirea tuturor radacinilor ecuatiilor neliniare, dar o analiza
riguroasa a problemei da o mare probabilitate de rezolvare in majoritatea cazurilor.

X
1 X
2
X
3 X
4
f(x)
x
0
h 2h 3h 4h 5h 6h 7h 8h 9h -h

Figura 3.1 Esantionarea abscisei pentru gasirea intervalelor care contin radacini


Programul 3.1 pentru gasirea intervalelor cu radacini prin esantionare este
scris in Mathematica si are:
intrari: functia, intervalul si pasul de esantionare
iesiri: graficul functiei (figura 3.2) si lista intervalelor pe care se afla radacini
Este exemplificata gasirea intervalelor care contin radainile ecuatiei transcendente
2
3 5 2 0
x
x + =

Programul 3.1. Gasirea intervalelor cu radacini prin esantionare

Cl ear@"`"D;
f @x_D = 3
x
5 x
2
+2. ; H Def i ni rea f uncti ei L
a= 2. ;
b= 5; H Stabi l i rea i nterval ul ui gl obal L
Pl ot@f @xD, 8x, a, b<D; H Vi zual i zarea graf i cul ui L
h= 10
2
; H Pasul de esanti onare L
l st = 8<; H I ni ti al i zare l i sta i nterval el or L
For@x= ah, x b+h, x =x+h,
yn= f @x+hD;
I f @ynyv 0, AppendTo@l st, 8x, x+h<DD; H Adauga i nterval ul i n l i sta L
yv= yn; H Noua ordonata devi ne ordonata veche pentru urmatorul i nterval L
D;
Pri nt@l stD;

- 2 -1 1 2 3 4 5
-10
10
20
30

Figura 3.2. Graficul functiei
2
( ) 3 5 2
x
F x x = +

Intervalele pentru radacini rezultate din program sunt urmatoarele:

{{-0.71,-0.7},{0.99,1.},{3.93,3.94}}

Dupa cum se observa, conditia de existenta a radacinii in interval a fost pusa
sub forma ( ) ( ) 0
v n
F x F x , deoarece exista posibilitatea ca o radacina sa fie chiar in
punctul de esantionare (ca in cazul radacinii 1 x= in exemplul considerat). De
asemenea, ciclul a fost inceput cu un esantion inaintea capatului inferior al
intervalului pentru eventualitatea ca o radacina sa se afle chiar in acel capat.




3.2 Metoda bisectiei

Una dintre cele mai simple si sigure metode pentru aflarea radacinii dintr-un
subinterval o costituie metoda bisectiei. Desi are o convergenta scazuta (cum se va
arata mai departe) ea este totusi preferata in multe aplicatii datorita usurintei de
implementare si datorita faptului ca viteza nu mai este o problema pentru
calculatoarele actuale intr-o clasa larga de probleme.
Principiul metodei este urmatorul: se imparte intervalul [a,b] in doua jumatati
si se studiaza semnul functiei in cele trei puncte obtinute. Se alege intervalul in care
semnele sunt opuse si apoi procesul se reia.
Astfel, noua valoare a variabilei este:

1
, ( ) ( ) 0
2
, ( ) ( ) 0
2
k
k
k
k
k
x a
dacaF a F x
x
b x
dacaF a F x
+

<

>

(3.2)
iar noul intervat este
[ ]
1
,
k
x a
+
daca
1
( ) ( ) 0
k
F a F x
+
< si
[ ]
1
,
k
b x
+
in caz contrar.
Rezulta ca dupa n bisectii, intervalul se micsoreaza de 2
n
ori, deci si eroarea se
micsoreaza in aceeasi proportie:

0 1 0
1 1
2 2
n
n n
x x x x b a = = (3.3)
unde
n
x este valoarea obtinuta pentru radacina dupa n bisectii
0
x este valoarea reala iar
1
x este valoarea initiala aleasa pentru radacina (in intervalul respectiv, de regula a sau
b).
Numarul de pasi necesari obtinerii unei anumite erori se obtine prin
logaritmarea relatiei 73H(3.3):

2 10
10
,
3
b a b a
n Log Log n


N (3.4)
Convergenta gasirii radacinii poate fi evaluata din relatia intre erorile obtinute
in doi pasi consecutivi. Deoarece la fiecare pas intervalul se injumatateste, se poate
scrie:

1
1
2
n n n
Const
+
= = (3.5)
O astfel de relatie caracterizata printr-o proportionalitate intre erorile
consecutive defineste o convergenta liniara a metodei. Exista, dupa cum se va arata,
si metode care au o convergenta supraliniara, definita printr-o relatie de tipul:

1
, 1,
n n
Const


+
= > R (3.6)
Evident, un procedeu este cu atat mai eficient cu cat este mai mare, in
practica existand metode cu exponent cuprins intre 1 si 2.

Programul 3.2, scris in Mathematica, pentru rezolvarea unei ecuatii neliniare
prin metoda bisectiei foloseste ecuatia 74H(3.2), parametrii de intrare fiind definitia
ecuatiei, intervalul si precizia dorita.



Programul 3.2. Rezolvarea unei ecuatii neliniare prin metoda bisectiei

Cl ear@"`"D;
f @x_D = Si n@xD Log@xD; H Ecuati a nel i ni ara de rezol vat L
a= 0; b=3; H I nterval ul pe care se af l a o radaci na real a L
h= 10
15
; H Preci zi a dori ta L
Whi l eAAbs@baD >h, HCi cl ul repetat pana l a ati ngerea preci zi ei L
c=
a+ b
2.
; H Noua val oare a sol uti ei L
I f @f @aD f @cD > 0, a= c, b= cDE; HDeci zi a de al egere a i nterval ul ui L
x= a; HAl egerea unei val ori di n i nterval ul f i nal L
Pri nt@x, " ", f @xDD;




3.3 Metoda punctului fix

Metoda bisectiei este foarte sigura pentru determinarea radacinilor reale, dar
avand o rata de convergenta scazuta nu este recomandabila pentru rezolvarea de
ecuatii cu un grad de complexitate crescut. Se vor prezenta in paragrafele urmatoare
metode care au o convergenta mai rapida, dar, de cele mai multe ori, mai putin sigura.
Fie ecuatia neliniara:
( ) 0 F x = (3.7)
avand o solutie reala in intervalul
[ ] , a b stabilit anterior printr-o metoda de gasire a
intervalelor cu solutii.
Daca descompunem functia initiala ( ) F x in forma:
( ) ( ) F x x f x = (3.8)
ecuatia 75H(3.7) este echivalenta cu
( ) 0 x f x = (3.9)
O solutie pentru ecuatia 76H(3.9) se numeste punct fix, care este si solutie a
ecuatiei 77H(3.7) deoarece conform 78H(3.9) are proprietatea:
( ) f = (3.10)
si conform 79H(3.8) ( ) ( ) 0 F f = = .
Se va demonstra in continuare ca un proces iterativ de forma

1
( )
k k
x f x
+
= (3.11)
poate asigura convergenta catre punctul fix , solutie a ecuatiei 80H(3.7) daca sunt
indeplinite anumite conditii.
Intr-adevar, eroarea la iteratia 1 k+ poate fi exprimata in functie de eroarea la
iteratia precedenta k, tinand cont de relatiile 81H(3.10) si 82H(3.11):

1 1
( ) ( ) '( ) '( )
k k k k k
x f x f f x f
+ +
= = (3.12)
Inegalitatea din ecuatia 83H(3.12) a fost scrisa in baza teoremei mediei, fiind o
valoare (necunoscuta) din intervalul
[ ] [ ]
, ,
k
x a b .
Aceasta ecuatie ne da si conditia de convergenta. Intr-adevar, eroarea scade de
la o iteratie la urmatoarea, daca derivata functiei in punctul dat de teorema mediei este
subunitara, adica

( ) ( )
'( ) 1
k
k
f x f
f
x

= <

(3.13)
Rezulta, tinand cont de 84H(3.11) si 85H(3.8), urmatoarea regula de iteratie:

1
[ ]
k k k
x x F x
+
= (3.14)
Aceasta poate fi interpretata in felul urmator: valoarea necunoscutei dupa
iteratie este egala cu valoarea de la iteratia precedenta, corectata cu valoarea
functiei chiar in punctul de la iteratia precedenta.
De subliniat insa ca nu intotdeauna convergenta acestei metode este asigurata,
fiind necesara indeplinirea conditiei 86H(3.13), care insa nu se poate verifica apriori,
nefiind cunoscuta valoarea . Convergenta se poate verifica prin scaderea lui sub o
anumita limita impusa, si obligatoriu prin verificarea solutiei in ecuatia 87H(3.7). Metoda
are totusi o importanta practica redusa, in schimb conduce catre o generalizare
teoretica deosebit de importanta, care va fi prezentata in cele ce urmeaza.

3.4 Metoda Newton-Raphson

Metoda punctului fix poate fi generalizata prin modificarea relatiei finale
88H(3.14) sub forma:

1
[ ]
k k k
x x F x
+
= (3.15)
Aceasta ar insemna ca prin inmultirea corectorului [ ]
k
F x cu un factor
corespunzator se poate obtine in urma iteratiei 89H(3.15) o valoare mult mai apropiata
de radacina, deci procesul poate deveni mult mai rapid convergent.
Tinand seama in 90H(3.15) de definita 91H(3.8) obtinem:

[ ]
1
( )
k k k k
x x f x x
+
= + (3.16)
Factorul poate fi determinat punand conditia ca eroarea la iteratia 1 k+ sa
fie minima. Rezulta succesiv:

[ ]
1 1
( )
( ) 1
k k
k k k k k k
k
f x x
x x f x x x
x

+ +

= = + = +


Adunand si scazand ( ) f la numaratorul fractiei din relatia precedenta si
aplicand din nou teorema mediei obtinem:
[ ]
1
1 '( ) 1
k k k
f
+
= + (3.17)
Daca am cunoaste valoarea am putea alege coeficientul astfel ca eroarea
sa se anuleze:

1
1 '( )
k
f

(3.18)
In practica insa nu cunoastem pe , deci trebuie sa ii atribuim una din valorile
cunoscute. Considerand ca cea mai apropiata valoare este
k
x , vom scrie
( ) ( )
k k
f f x = iar relatia 92H(3.16) devine:
[ ]
1
1
( )
1 '( )
k k k k
k
x x f x x
f x
+
= +

(3.19)
Daca tinem seama de relatia 93H(3.8) si de derivata acesteia, relatia 94H(3.19) poate
fi scrisa sub forma:

1
( )
'( )
k
k k
k
F x
x x
F x
+
= (3.20)
care defineste metoda de recurenta Newton-Raphson.
Se poate demonstra ca prin aceasta metoda se obtine o convergenta foarte
mare, ceea ce justifica larga sa utilizare. Intr-adevar, daca se dezvolta in serie Taylor
functia ( ) F x si derivata sa in jurul radacinii se obtin relatiile:

2
1
( ) ( ) '( ) ''( ) ...
2
k k k
F x F F F = + + + (3.21)
'( ) '( ) ''( ) ...
k k
F x F F = + + (3.22)
In relatia 95H(3.21), deoarece este radacina, rezulta ( ) 0 F = ; din relatia
96H(3.22), daca neglijam termenii care cuprind derivata de ordinul doi si cei superiori
(lucru valabil daca suntem suficient de aproape de solutia corecta), obtinem
'( ) '( )
k
F x F = (3.23)
Daca scadem din ambii membri ai relatiei 97H(3.20) si tinem seama de 98H(3.21)
si 99H(3.23), rezulta:

1
2
1
( ) 1 ''( )
'( ) 2 '( )
k k
k
k k k k k
k
F x F
x x
F x F

+
+
= =
_ _
(3.24)
care este echivalenta cu:

2
1
.
k k
Const
+
= (3.25)
Dupa cum se observa din relatia 100H(3.25), daca alegerea initiala este suficient de
apropiata de valoarea corecta a radacinii, convergenta este de ordinul 2, valoare care
indica o eficienta foarte mare a procedeului. In schimb daca alegerea initiala nu este
corecta, convergenta scade foarte mult, si exista chiar o probabilitate mult mai mare
decat la alte metode ca iteratia sa fie divergenta. De aceea, metoda Newton-Raphson
reclama gasirea in prealabil a unor intervale cat mai inguste cu radacini.
Daca alegerea initiala este un numar complex, (si desigur daca programul
foloseste numere complexe), metoda Newton-Raphson poate gasi si radacinile
complexe. Acest lucru precum si convergenta mare, o recomanda ca principala
metoda in rezolvarea ecuatiilor neliniare,
Programul 3.3, scris in Mathematica, pentru rezolvarea unei ecuatii neliniare
prin metoda Newton-Raphson foloseste ecuatia 101H(3.20), parametrii de intrare fiind
definitia ecuatiei, intervalul, precizia dorita si numarul maxim de iteratii. Acesta din
urma este necesar pentru eventualitatea ca metoda nu converge, caz in care programul
nu ramane in bucla ci iese dupa terminarea numarului maxim de iteratii. Alegerea
initiala este un capat al intervalului pe care se presupune ca exista o radacina, iar
celalalt capat este folosit ca valoare initiala de comparatie.
Programul 3.3. Rezolvarea unei ecuatii neliniare prin metoda Newton-
Raphson

Cl ear@"`"D;
f @x_D = Si n@xD Log@xD;
a= 0; b=3. 0;
= 10
12
; i max= 100; HPreci zi a si numarul maxi mde i terati i L
c= a; HVal oare i ni ti al a pentru radaci naL
cv= b; HVal oare i ni ti al a pentru comparati eL
DoAc= cv
f @cvD
f ' @cvD
; H Cal cul val oare noua L
I f @Abs@ccvD <, Break@D D; HI ese di n ci cl u daca sa ati ns preci zi aL
cv= c, 8i max<E; HCi cl ul Do se repeta de maxi mi max ori L
sol = c;
Pri nt@sol , " ", f @sol DD;
Nul l


Aici am ales un ciclu cu Do pentru familiarizarea cititorului cu tipuri
altenative de cicluri.

3.5 Metoda secantei

Metoda Newton-Raphson, desi rapid convergenta, este uneori dificil de utilizat
deoarece necesita cunoasterea derivatei functiei. De aceea este foarte raspandita o
varianta a acesteia, si anume metoda secantei.
Derivata functiei din ecuatia 102H(3.20) poate fi inlocuita prin formula:

1
1
( ) ( ) ( )
'( )
n n n
n
n n n
F x F x F x
F x
x x x


=

(3.26)
daca iteratia n se face intre punctele
1 n
x

si
n
x .
In metoda secantei, fiecare punct nou gasit devine inceput de interval pentru
urmatoarea iteratie, indiferent daca derivata astfel calculata intersecteaza abscisa in
interiorul sau in exteriorul intervalului curent. Deoarece este posibil ca intersectia sa
apara in exteriorul intervalului, si acest lucru sa se mentina si la iteratiile urmatoare,
metoda poate deveni, ca si cea Newton-Raphson, divergenta.
Inlocuind 103H(3.26) in ecuatia 104H(3.20), si daca aproximatia radacinii la iteratia n
este
n
x , rezulta pozitia noului punct
1 n
x
+
:

1
1
1
( )( )
( ) ( )
n n n
n n
n n
F x x x
x x
F x F x

(3.27)
sau

1 1
1
1
( ) ( )
( ) ( )
n n n n
n
n n
x F x x F x
x
F x F x

+

(3.28)

Relatia 105H(3.28) defineste metoda secantei, denumire datorata faptului ca
derivata este inlocuita de dreapta care uneste punctele de la capetele intervalului de la
iteratia n.
Deoarece derivata functiei este calculata cu aproximatie, metoda are o
convergenta mai scazuta decat Newton-Raphson, dar totusi supraliniara, ordinul de
convergenta fiind
1 5
1.618
2
+
, adica asa numitul golden number.
Programul 8.4, scris in Mathematica, pentru rezolvarea unei ecuatii neliniare
prin metoda secantei foloseste ecuatia 106H(3.28), parametrii de intrare fiind:
Functia [ _] f x definita in prealabil ca o functie pura;
intervalul pe care se cauta radacini;
precizia dorita;
numarul maxim de iteratii, Nmax.
Acesta din urma este necesar pentru eventualitatea ca metoda nu converge, caz
in care programul nu ramane in bucla ci iese dupa terminarea numarului maxim de
iteratii.

Programul 8.4. Rezolvarea unei ecuatii neliniare prin metoda secantei

Cl ear@"`"D;
f @x_D = Si n@xD Log@xD;
a= 1; b=3. 0; H I nterval ul care conti ne radaci ni l e L
= 10
7
; Nmax= 20; H Condi ti i de opri re L
cv= a; HVal oare i ni ti al a a radaci ni i , pentru comparati eL
ForAn= 1, n< Nmax, n++,
c=
af @bD bf @aD
f @bDf @aD
; HVal oarea noua a radaci ni i L
I f @f @aD f @cD > 0, a= c, b= cD
I f @Abs@ccvD <, Break@D D;
cv= cE; HAl egerea noul ui i nterval L
Pri nt@c, " ", f @cDD;


Demonstarea ordinului de convergenta al metodei secantei este destul de dificila si poate fi
omisa la o prima lectura.
Pentru demonstratie, se pleaca de la formula 107H(3.28), scazandu-se radacina din ambii
membri si tinand cont ca ( ) 0 F = . Rezulta succesiv:

[ ] [ ]
1
1 1
1 1
1
1 1 1
1
1 1
1
1
''( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
( ) '( )( ) ( ) '( )( )
( ) ( )
'( ) '( )
( ) ( )
( )
n n
n n n n
n n
n n
n n n n n n
n n
n n n n
n n
n n n
F
x F x F x F x F
x
F x F x
x F x x x F x x
F x F x
F x F x x x
x x
x x F x F


+ +


= =


=

__
_
1
1/ '( )
( )
n
F
x


_


1 1
''( )
'( )
n
n n n
n
F
F

+
= (3.29)
S-a aplicat teorema mediei,
n
si
n
fiind doua valori cuprinse in intervalul
[ ]
1
,
n n
x x

.
Rescriind ecuatia 108H(3.29) pentru
2 n

+
, si logaritmand-o obtinem:

2 1
''( )
log( ) log( ) log( ) log
'( )
n
n n n
n
F
F

+ +

= + +



Notand

2 2 1 1
''( )
log( ) , log( ) , log( ) , log
'( )
n
n n n n n n n
n
F
c
F

+ + + +

= = = =


(3.30)
se obtine:

2 1 n n n n
c
+ +
= (3.31)
Definim operatorul de deplasare care face trecerea de la eroarea in iteratia n la eroarea din
iteratia 1 n+ sub forma:

1 n n
E
+
=
care introdus in ecuatia 109H(3.31) conduce la:

2
( 1)
n n
E E c =
sau ( )( )
n n
E q E p c = unde am notat
1 5 1 5
,
2 2
p q
+
= =
Notand
( )
n n
E p u = (3.32)
rezulta ( )
n n
E q u c = si schimband indicele
1 1
( )
n n
E q u c

= . Tinand cont de actiunea
operatorului E, aceasta relatie devine

1 1 n n n
u c qu

= + (3.33)
Rescriind 110H(3.33) cu schimbarea indicelui 1 n n obtinem

1 2 2 n n n
u c qu

= + (3.34)
care introdusa in 111H(3.33) duce la:

2
1 2 2 n n n n
u c qc q u

= + +
Repetand procedeul prin inlocuirea lui
2 n
u

printr-o relatie analoaga cu 112H(3.34), obtinem in


final:

2 1
1 2 3 0 0
...
n n
n n n n
u c qc q c q c q u


= + + + + + (3.35)
Tinand cont de actiunea operatorului E, si de definitia 113H(3.32), membrul stang al ecuatiei
114H(3.35) devine:
1
( )
n n n n
u E p p
+
= = .
Membrul drept contine o serie alternata
2 1
1 2 3 0
...
n
n n n
c qc q c q c


+ + + +
(deoarece
1 5
0
2
q

= < ), avand deci o valoare finita, precum si cantitatea finita
0 0 1 0
( ) ( )
n n n
q u q E p q p = = . Notand membrul drept al ecuatiei 115H(3.35) cu L < , aceasta
relatie devine:

1 n n
p L
+
= (3.36)
si tinand cont de notatia 116H(3.30) rezulta
1
log( ) log( )
p
n n
L
+
= , de unde se deduce relatia care da
ordinul de convergenta al metodei secantei:

1 5
2
1
L
n n
e
+
+
= (3.37)






3.6 Metoda Muller de interpolare cu parabola

Dupa cum s-a aratat, metoda secantei foloseste ultimele doua puncte
cunoscute, printre care se traseaza o dreapta a carei intersectie cu abscisa determina
noul punct.
Metoda Muller este o varianta a metodei secantei, folosind ultimele trei puncte
cunoscute, prin care se traseaza o parabola, a carei intersectie cu abscisa determina
noul punct. Este de asteptat sa se obtina o convergenta mai buna decat in metoda
secantei, dar formulele care iau in consideratie trei puncte pot fi mai complicate.
Fie
k
x ,
1 k
x

si
2 k
x

, 2 k cele trei valori consecutive pentru radacina, obtinute


pana la iteratia precedenta k-1, sau alese in intervalul stabilit pentru radacina inaintea
primei iteratii, ca in figura 3.2. O parabola ( ) p x care trece prin punctele
[ ]
2 2
, ( )
k k
x F x

,
[ ]
1 1
, ( )
k k
x F x

si
[ ] , ( )
k k
x F x va avea ecuatia:

2
( ) a b c p x + + = (3.38)
x
F(x)
x k x
k-1
x
k-2
0
h
1
h
2


Figura 3.3 Metoda parabolei (Muller)

Notand
1 k
x x

= (ne raportam la punctul aflat in mijloc, prin care va trece
deci si ordonata, conform figurii), si
1 1 k k
h x x

= si
2 1 2 k k
h x x

= , pentru ca
parabola ( ) p x sa treaca prin cele trei puncte prin care trece si functia ( ) F x a carei
radacina o cautam, trebuie satisfacut sistemul de ecuaii:

2
1
2
1 1
2
2 2 2
0 0 ( )
( )
( )
k
k
k
a b c F x
ah bh c F x
ah bh c F x

+ + =

+ + =

+ =

(3.39)
unde s-a tinut cont c n aceste puncte variabila a parabolei are valorile 0,
1
h
respectiv
2
h , conform figurii.
Pentru aflarea parametrilor a, b si c ai parabolei, rezolvam acest sistem de
ecuatii. Din prima ecuatie rezulta:

1
( )
k
c F x

= (3.40)
Inmultind a doua ecuatie cu
2
h si a treia cu
1
h si adunandu-le rezulta

2 1
1 1 2 2 1 2 1 2
( ) ( ) ( )
( ) ( )
k k k
F x F x F x
a
h h h h h h hh

= +
+ +
(3.41)

Inmultind a doua ecuatie cu
2
2
h si a treia cu
2
1
h si scazandu-le rezulta

2 1 2 1 2 1
1 1 2 2 1 2 1 2
( ) ( ) ( ) ( )
( ) ( )
k k k
hF x hF x h h F x
b
h h h h h h hh

= +
+ +
(3.42)
Parabola intersecteaza abscisa in noul punct
1 k
x
+
care rezulta din ecuatia
( ) 0 p = cu parametrii dati de ecuatiile 117H(3.40), 118H(3.41) si 119H(3.42).

2
1,2
2
4 2
2
4
b b ac c
a
b b ac


= =


Tinand cont de notatia
1 k
x x

= , noua valoare pentru radacina va fi deci:


1 1
2
2
4
k k
c
x x
b b ac
+
=

(3.43)
Semnul de la numitor se ia in asa fel incat sa se obtina valoarea maxima a
modulului acestuia, astfel incat sa se inainteze catre cea mai apropiata radacina fata de
punctele anterioare (deci plus daca b este pozitiv si minus daca b este negativ).
Se poate demonstra ca ordinul de convergenta al metodei Muller este 1,84,
foarte apropiat de metoda Newton, fara a fi necesara insa cunoasterea derivatei. De
asemenea, este de remarcat ca functia poate fi reala sau complexa si se pot obtine
atat radacinile reale cat si cele complexe, lucru care nu era posibil cu metodele
anterioare. Alegerea initiala necesita in schimb trei puncte pe abscisa, care trebuie sa
fie suficient de apropiate de radacina.
Programul 8.5, pentru calculul radacinilor unei ecuatii prin metoda Muller
foloseste relatiile 120H(3.40) - 121H(3.43), si esantioneaza aleator planul complex intr-un
numar
st
N de triplete de puncte localizate intr-un patrat de latura L centrat in origine,
pentru a gasi cele mai apropiate radacini de acestea. Daca se obtine o radacina (fapt
semnalat de o valoare suficient de mica a functiei in punctul respectiv) se analizeaza
partea sa imaginara. Daca aceasta parte imaginara este suficient de mica, se considera
ca radacina este reala si se afiseaza doar partea reala a radacinii respective.
Nu se poate cunoaste ordinul de multiplicitate al radacinilor, acesta trebuind sa
fie dedus prin alte metode.
Programul are intrarile:
Functia [ _] f x definita in prealabil ca o functie pura;
Eroarea maxima admisa in valoarea functiei, ;
Numarul de starturi din puncte initiale,
st
N , suficient de mare pentru a se
asigura gasirea tuturor radacinilor;
Latura patratului in planul complex in care se cauta radacinile, L ;
Numarul maxim de iteratii
max
N daca nu se obtine convergenta;
Iesirea este o lista cu radacini gasite, dintre care unele se repeta fara a se sti
daca sunt multiple sau nu. Se afiseaja de asemenea si valorile functiei in radacaini,
pentru verificare.
Se observa ca punctele initiale se aleg aleator de
st
N ori, in planul complex in
patratul
[ ] [ ]
0.5 , 0.5 0.5 , 0.5 L i L i L L .

Programul 8.5 Calculul radacinilor unei ecuatii prin metoda Muller
f @x_D = 10+7Si n@xD 3x
2
2x
3
+ x
4
+2x
5
;
X= 8<; H Vect orul radaci ni l or L;
Nst = 40; H Numarul de repet ari al e st art ul ui L
L= 10; HLat ura pat rat ul ui i n pl anul compl ex i n care se caut a radaci ni L
ForAn= 0, n< Nst, n++,
x2= L HRandom@D0. 5L + LI HRandom@D 0. 5L; H Punct e de st art al eat oare L
x1= L HRandom@D0. 5L + LI HRandom@D 0. 5L;
x0= L HRandom@D0. 5L + LI HRandom@D 0. 5L;
H Se esant i oneaza al eat or spat i ul compl ex L
= 10
13
; H Eroarea admi si bi l a i n val oarea f unct i ei L
Nmax= 100; H Numarul maxi mde i t erat i i daca nu se obt i ne convergent a L
k= 1;
DoAh1= x0x1;
H Ci cl ul pent ru caut area unei radaci ni i n apropi erea punct el or curent e L
h2= x1x2;
c= f @x1D;
a=
f @x0D
h1Hh1+h2L
+
f @x2D
h2Hh1+ h2L

f @x1D
h1h2
;
b=
h2f @x0D
h1Hh1+h2L

h1f @x2D
h2Hh1+ h2L
+
Hh1h2L f @x1D
h1h2
;
x2= x1; H Se react ual i zeaza punct el e x2 si x1L
x1= x0;
H Pent ru react ual i zarea l ui x0 se cal cul eaza pasul h=
2c
b+
"#### ## #### ## #####
b
2
4a c
sau h=
2c
b+
"#### ## ###### #####
b
2
4a c
L
d1= b+
!!!!!!!!!!!!!!!!!
b
2
4ac;
d2= b
!!!!!!!!!!!!!!!!!
b
2
4ac;
I f AAbs@d1D > Abs@d2D, h=
2c
d1
, h=
2c
d2
E;
x0= x2h; Hx2 a capat at mai sus val oarea x1, f at a de care amscri s pe h L
I f AAbs@f @x0DD < ,
I f AAbs@I m@x0DD > 10
7
, AppendTo@X, x0D,
AppendTo@X, Re@x0DDE; Break@D E;
H Daca x0 da o val oare suf i ci ent de mi ca a f unct i ei
se opresc i t erat i i l e. Daca part ea i magi nara a radaci ni i est e prea mi ca
se adauga doar part ea real a l a vect orul radaci ni l or L
k++, 8Nmax<E;
E;
Y= Sort@XD;
For@n= 1, n Length@YD, n++, Pri nt@Y@@nDD, " ", f @Y@@nDDDDD;
H Af i seaza radaci ni l e; unel e se repet a, f ara a f i a se st i daca sunt mul t i pl e L









3.7 Metoda Lobacevski-Graeffe de calculare a radacinilor reale
ale polinoamelor

Pentru aflarea radacinilor polinoamelor exista metode specifice avand in
general o convergenta si stabilitate mai buna decat metodele generale valabile pentru
orice ecuatii transcendente. Una dintre acestea este metoda Lobacevski-Graeffe care,
prin prelucrari algebrice ridica la o putere superioara toate radacinile permitand
separarea radacinii dominante si aplicand apoi relatiile Viete.
Fie ecuatia 122H(3.1) in care membrul stang este un polinom de grad n care poate
fi scris sub doua forme:

0 0
0 1
( ) ( ), 0
n n
j
n n j j
j j
P x a x a x x a

= =
= =

(3.44)
Intre radacinile si coeficientii ecuatiei polinomiale exista relatiile Viete:

1
1 2
0
2
1 2 1 3 1
0
1 2 1 1 2 1 1
0
1 2
0
...
...
............................................
... ... ... ( 1)
............................................
... ( 1)
n
n n
j j
j j j j
n n
n
a
x x x
a
a
xx xx x x
a
a
xx x x xx x x
a
a
xx x
a

+
+ + + =
+ + + =
+ + =
=
(3.45)
Daca una dintre radacini, s-o numim
1
x ar fi dominanta, adica:

1 2 1 3 1
, ,....,
n
x x x x x x > > > (3.46)
folosind prima relatie Viete in care neglijam toate celelalte radacini, putem sa obtinem
valoarea radacinii dominante:

1
1
0
a
x
a
= (3.47)
Evident, in general nu avem aceasta situatie foarte favorabila, dar ea se poate
obtine prin prelucrari algebrice.
Sa consideram radacina cu cea mai mare valoare absoluta si sa o notam cu
1
x ,
ea avand proprietatea:

1 2 1 3 1
, ,....,
n
x x x x x x > > > (3.48)
Daca am reusi sa ridicam toate radacinile la o putere suficient de mare, relatia 123H(3.48)
ar deveni o relatie de tipul 124H(3.46), ceea ce ar permite calculul simplu al radacinii
dominante si apoi a celorlalte.
Pentru aceasta, sa consideram mai intai polinomul in variabila x :

0
0 1
( ) ( ) ( 1) ( )
n n
j n
n n j j
j j
P x a x a x x

= =
= = +

(3.49)
Facand produsul ( 1) ( ) ( )
n
n n
P x P x , obtinem un polinom in variabila
2
x , pe care sa-l notam cu
(1) 2
( )
n
P x :

(1) 2 2 2 2 (1) 2
0
0 1
( ) ( 1) ( ) ( ) ( )
n n
n j
n n n j j
j j
P x P x P x a x x A x
= =
= = =

(3.50)
unde am notat cu
(1)
j
A coeficientii noului polinom
(1) 2
( )
n
P x .
Presupunand ca
1 2
x x > , cu atat mai mult
2 2
1 2
x x > , ceea ce incepe sa ne
apropie de situatia unei radacini dominante ca in 125H(3.46).
Repetand procedeul obtinem un polinom in
4
x :

(2) 4 (1) 2 (1) 2 4 4 4 (2) 4
0
0 1
( ) ( 1) ( ) ( ) ( )
n n
n j
n n n j j
j j
P x P x P x a x x A x
= =
= = =


Dupa aplicarea procedeului de s ori, se obtine:

1 1
( ) 2 ( 1) 2 ( 1) 2 2 2 2 ( ) 2
0
0 1
( ) ( 1) ( ) ( ) ( )
s s s s s s s
n n
s n s s s j
n n n j j
j j
P x P x P x a x x A x


= =
= = =

(3.51)
Se observa ca puterile radacinilor cresc foarte rapid cu s, ajungandu-se la o
relatie de ordine de tipul 126H(3.46).
Notand 2
s
m = , avem din prima relatie Viete:

1
1
0
s
m
s
A
x
A
= (3.52)
Aceasta permite calculul primei radacini dupa formula:

1
1
1
0
s
m
s
A
x
A
= (3.53)
Semnul se stabileste prin calculul valorii functiei pentru un semn si celalalt,
alegand-l pe acela care da valoarea cea mai mica in modul.
Considerand ca dupa un numar suficient de ridicari la puteri radacinile sunt
ordonate dupa o relatie de forma:
1 2 3
,....,
n
x x x x > > > > , putem calcula si
celelalte radacini. Intr-adevar, a doua relatie Viete devine:

( )
2
1 1 ( )
0
s
m m
s
A
x x
A
= (3.54)
si impartind-o la relatia Viete precedenta 127H(3.52) obtinem a doua radacina:

1
( )
2
2 ( )
1
s
m
s
A
x
A
= (3.55)
Analog se obtin si celelalte radacini

1
( )
( )
1
s
m
j
j s
j
A
x
A

= (3.56)
semnul alegandu-se de asemenea prin testare in ecuatie.
Coeficientii
s
j
A ai polinomului final
( ) 2
( )
s
s
n
P x , necesari in relatiile de calcul
ale radacinilor, trebuie calculati din coeficientii polinomului initial ( )
n
P x . Pentru
aceasta se poate folosi o relatie de recurenta. Din relatia 128H(3.51) rescrisa dentru
1 s s + si tinand cont de expresia polinoamelor care se inmultesc, rezulta

1
( 1) 2 ( ) 2 ( ) 2 ( ) 2 ( ) 2
0 0 0
( 1) ( ) ( ) ( 1)
s s s s s
n n n
s j n s s s j j s j
n j n n n j n j
j j j
A x P x P x A x A x
+
+

= = =

= =



(3.57)
Se poate deci deduce o relatie de recurenta intre coeficientul
( 1) s
j
A
+
al
polinomului din etapa 1 s+ si coeficientii
( ) s
k
A polinoamelor din etapa s prin
identificarea termenilor cu aceeasi putere a lui x din primul si ultimul membru al
acestei relatii. Pentru aceasta se tine cont de urmatoarele:
Termenul la puterea 2
s
j dintr-un polinom initial poate fi inmultit doar cu
termenul de aceleasi putere 2
s
j din cel de al doilea polinom initial pentru a
obtine termenul cu puterea
1
2
s
j
+
din polinomul final;
Termenul cu puterea
1
2
s
j
+
din polinomul final mai poate fi obtinut si din
inmultirea termenului la puterea 2 ( )
s
j k dintr-un polinom initial poate fi
inmultit doar cu termenul de aceleasi putere 2 ( )
s
j k + , 1,.., 1 k j = din cel de
al doilea polinom initial (cazurile 0 k= si k j = au fost deja tratate la punctul
anterior) ;
Datorita simetriei, termenii de la punctul 2 apar de doua ori, deci suma lor
trebuie dublata;
Termenii de forma 2 ( )
s
j k din unul din polinoame au semnul ( 1)
j
.
Rezulta deci relatia de recurenta pentru calculul coeficientilor
( 1) s
j
A
+
sub
forma:

1
2
( 1) ( ) ( ) ( )
1
2 ( 1)
j
s s k s s
j j j k j k
k
A A A A

+
+
=
= +


(3.58)
Alternativ, aceasta relatie se poate scrie si sub o alta forma, echivalenta. Intr-
adevar, se poate scrie:

( ) ( 1) ( 1)
( ) ( 1) ( ) ( )
s m n s m s m
n n n
P x P x P x

= (3.59)

( ) ( 1) ( 1) ( 1) ( 1) 2 2
2 2
0 0 0 0 0
l k
l k
n n n n n
m
m m
s mj s s s s
n j n l n k n l n k
j l k l k
A x A x A x A A x

+




= = = = =


= =





(3.60)
Se observa ca termenul in
mj
x din primul membru trebuie identificat cu
termenul in
2 2
l k
m
x

+


din ultimul membru ceea ce conduce la conditia:

2 2
l k
m mj

+ =


(3.61)
deci
2 l j k = (3.62)
iar relatia 129H(3.60) se poate scrie:

( ) ( 1) ( 1)
0 0 0
n n n
s mj mj s s
n j n l n k
j l k
A x x A A


= = =

=



(3.63)
ceea ce inseamna ca

( ) ( 1) ( 1)
0
, 1, 2,..., 1
n
s s s
n j n l n k
k
A A A j n


=
= =

(3.64)
Multimea de valori a lui j s-a stabilit tinand cont ca deja se cunoaste
( ) 2
0 0
s
s
A A = iar termenii
( ) s
n
A sunt termini liberi si deci nu pot ridica gradul monomului
cu care se face produsul. Acelasi lucru se poate spune si despre indicii coeficientilor
din membrul drept al realtiei 130H(3.64), deci:
1 n l n (3.65)
Tinand cont de 131H(3.62) rezulta:
(2 ) 1 2 1 n j k n k j (3.66)
De asemena pentru indicile celui de al doilea coeficient se poate scrie:
1 1 n k n k (3.67)
Inlocuind pe l dat de 132H(3.62) si tinand cont de limitele de variatie a lui kdat de
relatiile 133H(3.66) si 134H(3.67), ecuatia 135H(3.64) devine

2 1
( ) ( 1) ( 1)
(2 )
1
, 1, 2,..., 1
j
s s s
n j n j k n k
k
A A A j n



=
= =

(3.68)
La utilizarea oricareia dintre aceste relatii de recurenta se va tine seama ca

(1) 2
0 0
A a =
evidenta conform relatiei 136H(3.50).
Pentru verificarea conditiei de oprire a iteratiilor, s-ar putea compara valoarea
functiei in
j
x sau in
j
x , valoare care in unul dintre aceste cazuri (cel cu semnul care
va fi ales in final) trebuie sa difere de zero cu o cantitate suficient de mica , impusa.
Caracteristica cea mai importanta a metodei este ca nu sunt necesare puncte de
start, acesta fiind un caz foarte rar in metodele de rezolvare a ecuatiilor neliniare.
Totusi, deoarece prin ridicari succesive la patrat se pot obtine destul de repede valori
foarte mari pentru coeficientii polinoamelor obtinute, metoda trebuie folosita doar cu
un numar mic de iteratii, altfel este posibil ca ca apara depasire de registru (numerele
sa fie prea mari pentru mediul de programare folosit). De aceea, de cele mai multe ori
se impune ca intrare numarul maxim de iteratii si nu eroarea admisibila. Deoarece
eroarea la un numar de iteratii mic poate fi totusi destul de importanta, metoda este
recomandabila in special pentru gasirea intervalelor care contin radacini (braketing)
fiind apoi urmata de o alta metoda pentru rafinarea acestora.
Programul Mathematica permite valori destul de mari ale coeficientilor,
putand fi folosit pentru 20-30 de iteratii in majoritatea cazurilor, ceea ce asigura si
rafinarea radacinilor, dar metoda se recomanda totusi pentru polinoame de ordin
moderat.
Programul 8.6, pentru calculul radacinilor reale ale unui polinom prin metoda
Lobacevski-Graeffe foloseste relatiile Error! Reference source not found. si 137H(3.56)
Programul are intrarile:
Polinomul [ _] f x definit ca o functie pura;
Numarul maxim de iteratii
max
N =25;

Programul 8.6. Calculul radacinilor reale ale unui polinom prin metoda
Lobacevski-Graeffe

f @x_D = 13824+27648x+11808x
2
44560x
3
3392x
4
+30632x
5
+1746x
6

10869x
7
1215x
8
+1911x
9
+297x
10
159x
11
29x
12
+5x
13
+x
14
;
H Pol i nomul al e carui radaci ni se caut a L
a= N@Coef f i ci entLi st@f @xD, xDD; H Li st a coef i ci ent i l or L
n= Length@aD; H Gradul pol i nomul ui +1 L
A= Fl atten@Append@a, Tabl e@0, 8n<DDD;
H Se compl et eaza l i st a coef i ci ent i l or cu n zerouri L
B= A; H Li st a auxi l i ara L
X= Tabl e@0, 8n1<D; H Li st a radaci ni l or L
ForAm= 1, m< 25, m++, H I t erat i i l e L
ForAj = 1, j n, j ++,
B@@j DD = H1L
j

k=1
2j 1
H1L
k+1
A@@2 j kDD A@@kDD; E; H Coef i ci ent i i auxi l i ari L
A= B; H devi n coef i ci ent i i pol i nomul ui i n urmat oarea i t erat i a L
E;
ForAj = 1, j <= n1, j ++,
r =
i
k
j
jAbsA
B@@j DD
B@@j +1DD
E
y
{
z
z
1
2
m1
; H cal cul ul radaci ni l or L
I f @Abs@f @rDD <= Abs@f @rDD, X@@j DD =r, X@@j DD = rD; H Al egerea semnul ui L
E;
Pri nt@Sort@XDD; H Ordonarea radaci ni l or si af i sarea L


Este interesant ca se poate deduce prin aceasta metoda si existenta radacinilor
multiple si a radacinilor complexe (acestea din urma neputand insa fi calculate cu
exactitate).
In cazul radacinilor de multiplicitate M, prima relatie Viete 138H(3.52) presupune
adunarea a M radacini, deci se obtine:

1
1
0
s
m
s
A
Mx
A
= (3.69)
iar radacina se calculeaza cu prima relatie Vieta,dupa formula:

1
1
1
0
s
m
s
A
x
MA
= (3.70)
sau cu relatia Vieta M, dupa formula

1
1
0
s
mM
M
s
A
x
A
= (3.71)
In cazul radacinilor complexe, acestea fiind conjugate, se poate scrie:

1 2
,
i i
x e x e



= =
Astfel, dupa s ridicari la patrat, prima relatie Vieta devine:

( )
1
3 ( )
0
...
s
m im m im m m
n s
A
e e x x
A



+ + + + =
deci

( ) ( )
1 1
( ) ( )
0 0
, 2 cos
s s
m im m im m
s s
A A
e e m
A A

+ (3.72)
Astfel, daca se calculeaza rapoartele de tipul
2
( 1)
( )
s
j
s
j
A
A



se constata
urmatoarele:
Pentru radacini simple aceste rapoarte tind spre 1. Intr-adevar, ridicand la
patrat ecuatia 139H(3.52) scrisa pentru 1 s se obtine:

( ) ( )
2
( 1)
2 2
1 / 2
( 1)
s
j s m
j j s
j
A
x x
A


= =




Pe de alta parte aceasta este egala cu
( )
( )
1
s
j s
j s
j
A
x
A

= deci:

2
( 1) ( )
( 1)
1 1
s s
j j
s s
j j
A A
A A



=




Deci:
2 2
( 1) ( 1)
1
( )
1
s s
j j
s s
j j
A A
A A



= care poate fi scrisa si pentru 1, 2,..., 0 j j

2 2 2 2 2
( 1) ( 1) ( 1) ( 1) ( 1)
1 2 1 0
( ) ( )
1 2 1 0
... 1
s s s s s
j j j
s s s s s
j j j
A A A A A
A A A A A





= = = = = = (3.73)

unde s-a tinut cont ca
2
( ) ( 1)
0 0
s s
A A

=


Rezulta :

2
( 1)
( )
1
s
j
j s
j
A
r
A



= .
Deci, daca prin calculul acestui raport pentru radacina j se obtine o valoare
apropiata de 1, radacina este simpla.
Pentru radacini de ordin de multiplicitate M aceste rapoarte tind spre M.

2
( 1)
( )
s
j
j s
j
A
r M
A



=
Demonstratia este identica, dar in locul relatiei 140H(3.52), se pleaca de la relatia
141H(3.69). Deci, daca prin calculul acestui raport pentru radacina j se obtine o
valoare apropiata de M, radacina este de ordinul de multiplicitate M.
Pentru radacini complex conjugate, acest raport este oscilant. Intr-adevar,
tinand cont de relatia 142H(3.72), putem scrie:

( )
( ) ( ) 1
1 2 1 0 ( )
0
2 cos ; 2 cos
s
m m m s s m
s
A
x x m A A m
A
+ = = = (3.74)

( )
2
( 1) 2
2 2
2 ( 1) ( 1) 2 1 2 2
1 2 1 0 ( 1)
0
4 cos ; 4 cos
2 2
s
m m
m s s m
s
A m m
x x A A
A


+ = = =





Deci, acest raport este:

2 2
( 1)
( )
2cos
2
cos
s
j
j s
j
m
A
r
A m



= = .
Deci, daca prin calculul acestui raport pentru radacina j se obtine o valoare
oscilanta in functie de s, exista doua radacini compex conjugate.
In literatura sunt mentionate numeroase alte reguli de aplicare a metodei
Lobacevski-Graeffe pentru radacini multiple si complex conjugate. Aplicarea acestora
in algoritm poate imbunatati substantial performantele metodei.
Importanta metodei este data in principal de posibilitatea de determinare a
ordinului de multiplicitate a radacinilor. Cum s-a specificat anterior, dezavantajul
principal consta in posibilitatea aparitiei unor numere foarte mari prin ridicari
succesive la patrat, conducand la depasire de registru, ceea ce limiteaza precizia.

3.8 Metoda Bairstow de calculare a radacinilor complexe ale
polinoamelor

In cazul in care polinomul are si radacini complexe, metodele elementare
prezentate anterior (cu exceptia metodei Muller) nu pot calcula radacinile respective
datorita faptului ca graficul functiei nu intersecteaza abscisa la aceste valori ale
variabilei. Una dintre metodele cele mai eficiente de calculare a unor astfel de
radacini este metoda Bairstow, care consta in factorizarea polinomului cu un trinom
de gradul doi.
Fie un polinom de grad n, in variabila reala sau complexa z:

1 2 2
1 2 2 2 0
( ) ....
n n n
n n n n
P z a z a z a z a z a z a


= + + + + + + (3.75)
Se incearca impartirea cu un trinom de gradul doi de forma
2
z pz q , care
are radacinile:

2
1
2
2
4
2
4
2
p p q
z
p p q
z
+ +
=
+
=
(3.76)
care pot fi reale sau complex conjugate dupa cum
2
4 p q + este pozitiv, respectiv
negativ.
Problema se reduce deci intr-o prima instanta la determinarea coeficientilor p
si q care sa realizeze o factorizare exacta a polinomului dat, dupa care catul obtinut
este din nou supus procedeului Bairstow s.a.m.d. pana la obtinerea tuturor radacinilor.
Dupa cum se va vedea, metoda este iterativa si are unele din caracteristicile
metodei Newton-Raphson, deci este necesara o aproximare initiala suficient de buna a
coeficientilor
0
p si
0
q , ceea ce asigura o convergenta rapida (de ordinul doi). In
schimb, daca alegerea initiala nu este suficient de apropiata de cea corecta,
convergenta este slaba sau poate sa nu existe deloc.
Deoarece alegerea initiala este diferita intr-o oarecare masura de solutia
exacta, la impartire apare un rest sub forma unui polinom de gradul unu. O varianta de
scriere a factorizarii este urmatoarea0F
1
:

2
0 0 2 1 0 0
( ) ( ) ( ) ( )
n n
P z z p z q Q z r p z r

= + + (3.77)
unde
2
( )
n
Q z

este un polinom de grad 2 n reprezentand catul impartirii



2 3 4 2 2
2 1 2 4 3 2
( ) ... ...
n n n k
n n n n k
Q z r z r z r z r z r z r z r


= + + + + + + + (3.78)
iar
1 0 0
( ) r p z r + este un polinom de gadul intai reprezentand restul impartirii. Daca
0
p si
0
q ar avea valorile corecte, impartirea s-ar face exact, restul fiind nul. Prin
urmare, problema se reduce la minimizarea (anularea) coeficientilor restului,
1
r si
0
r .
Deoarece acesti coeficienti depind de valorile coeficientilor p si q
0 0
1 1
( , )
( , )
r r p q
r r p q
=
=

ei se pot dezvolta in serie Taylor in jurul unui punct ales initial
0 0
( , ) p q , urmarindu-se
ca in punctul final sa aiba valori cat mai mici, apropiate de zero. Daca alegerea initiala
este suficient de corecta, termenii de ordin superior din serie se pot neglija si se poate
scrie:

0 0
0 0 0 0 0 0
1 1
1 1 0 0 0 0
( , ) ( , ) ( ) ( ) 0
( , ) ( , ) ( ) ( ) 0
r r
r p q r p q p p q q
p q
r r
r p q r p q p p q q
p q

= + + =


= + + =

(3.79)
Prin urmare, se pot calcula valorile corecte psi q din sistemul de ecuatii
143H(3.79) in functie de valorile initiale
0
p si
0
q si de elementele matricii Jacobiene:

0 0
1 1
r r
p q
J
r r
p q




=




(3.80)
calculate in punctele initiale
0
p si
0
q .
Intr-adevar, ecuatia 144H(3.79) se poate scrie matricial sub forma:

0 0
0 0 0 0
0 1 0 0 1 1
( , )
( , )
r r
p p r p q p q
q q r p q r r
p q




=






(3.81)
de unde rezulta noile valori ale lui psi q:

0 0 0 0 1
0 1 0 0
( , )
( , )
p r p q p
J
q r p q q


= +



(3.82)
Deoarece in general nu se pot obtine dintr-un singur pas chiar valorile corecte
ale lui psi q, relatia 145H(3.79) fiind doar aproximativa, procedeul se reia si se obtin prin

1
Uneori se foloseste forma mai simpla si mai naturala
1 0
r z r + pentru restul impartirii, dar aceasta
conduce la calcule ceva mai complicate si la relatii de recurenta mai complexe. In unele cazuri ea este
preferabila, dar pentru simplitatea programului am ales forma prezentata.
iteratii valori din ce in ce mai apropiate de cele corecte. Relatia 146H(3.82) este deci
calculata in mod repetat, sub forma:

1 0
1
1 1
( , )
( , )
j j j j
j
j j j j
p p r p q
J
q q r p q
+

+

= +


(3.83)
astfel ca, daca procedeul converge, la iteratia 1 j + se obtin valori mai corecte decat
cele de la iteratia anterioara j .
Dupa cum se observa, metoda este o generalizare in doua dimensiuni a
metodei Newton-Raphson si deci prezinta avantajele si dezavantajele acesteia, avand
si o importanta similara.
Totusi, unul dintre dezavantajele metodei Newton Raphson, si anume
necesitatea cunoasterii derivatelor functiei poate fi inlaturat prin metoda Bairstow-
Linn. Se va arata in continuare ca, prin doua relatii de recurenta, se pot calcula aceste
derivate precum si coeficientii polinomului cat ( ) Q z chiar din coeficientii
polinomului initial ( ) P z .
Pentru determinarea polinomului cat, se introduce relatia 147H(3.78) in 148H(3.77).
Rezulta:

1 2
1 2 1
1 2 1 2 3 0 1 2
( ) ( ) ( ) ...
( ) ... ( ) ( )
n n n
n n n n n n n
k
k k k
P z z r z r pr z r pr qr
z r pr qr z r pr qr r pr qr


+ +
= + + +
+ + + +
(3.85)
Prin identificare relatiei 149H(3.85) cu 150H(3.75) se obtin relatiile de recurenta prin
care se pot calcula coeficientii polinomului cat:

1 1
1 2
, 0... 2
n n
n n n
k k k k
r a
r a pr
r a pr qr k n

+ +
=
= +
= + + =
(3.86)
Pentru determinarea derivatelor partiale din componenta Jacobianului, se vor
face urmatoarele notatii:

1
2
k
k
k
k
r
c
p
r
d
q
+
+

(3.87)
Acum, prin derivarea in raport cu pa relatiilor 151H(3.86) si tinand seama de
definitiile 152H(3.87), obtinem succesiv:
0
n n
r a
p p

= =



1 n n
n n
r r
c p r
p p


= +

(3.88)


2 3
1 2
1 1
, 0... 2
k k
k k k
k k
c c
r r r
c r p q k n
p p p
+ +
+ +
+ +

= + + =

(3.89)
Din relatia 153H(3.88) si din 154H(3.89), renotand 1 k k + rezulta relatiile de
recurenta din care se pot determina elementele Jacobianului:

1 2
, 1... 1
n n
k k k k
c r
c r pc qc k n
+ +
=
= + + =
(3.90)
Se observa deplasarea cu o unitate a limitelor indicelui k, datorita definitiei
155H(3.87). Pentru Jacobian este nevoie de valorile
0
1
r
c
p

si
1
2
r
c
p

care sunt ultima si


repectiv penultima derivata calculata prin recurenta 156H(3.90).
Pentru determinarea celorlalte doua elemente, nu mai sunt necesare calcule
suplimentare, deoarece se poate demonstra ca, tinand cont de definitiile 157H(3.87), avem
relatiile:

0
2 2
1
3 3
r
d c
q
r
d c
q

(3.91)
Intr-adevar, daca derivam relatiile 158H(3.86) in raport cu q si tinem seama de
definitiile 159H(3.87), obtinem succesiv:
0
n n
r a
q q

= =



1 1
0
n n
r a
q q


= =




2 1 n n n
n n
r r r
d p q r
q q q


= + +

(3.92)


3 4
1 2
2 2
, 0... 2
k k
k k k
k k
d d
r r r
d p r q k n
p q q
+ +
+ +
+ +

= + + =

(3.93)
Din 160H(3.92) si 161H(3.93), renotand 2 k k + se obtin relatiile:

1 2
, 2... 2
n n
k k k k
d a
d r pd qd k n
+ +
=
= + + =
(3.94)
Se observa ca relatiile 162H(3.94) si 163H(3.90) sunt similare, astfel ca
k
c si
k
d avand
acelasi punct de plecare (
n
a ) si aceleasi relatii de recurenta, vor avea valori egale,
pentru 2... k n = , ceea ce demonstreaza relatiile 164H(3.91).
Jacobianul va avea deci forma:

1 2
2 3
c c
J
c c

=


(3.95)
Din relatia 165H(3.83), tinand seama de regula lui Cramer, solutia sistemului va
putea fi scrisa sub forma:

0 2
1 3
1
1 2
2 3
( , )
( , )
j j
j j
j j
r p q c
r p q c
p p
c c
c c
+

= + (3.96)

1 0
2 1
1
1 2
2 3
( , )
( , )
j j
j j
j j
c r p q
c r p q
q q
c c
c c
+

= + (3.97)
Iteratiile pot fi oprite atunci cand atat variatiile lui pcat si ale lui q in relatiile
166H(3.96) si 167H(3.97) scad sub o limita de precizie impusa.
Cunoscand valorile corecte ale lui psi q, din relatia 168H(3.76) se determina
radacinile cele mai apropiate de cele determinate de valorile alese initial
0
p si
0
q , iar
din coeficientii
k
r se poate determina polinomul cat
2
( )
n
Q z

. Acestuia i se va aplica
din nou procedeul Bairstow daca are grad mai mare de 2, sau se vor calcula prin
formulele analitice radacinile daca gradul sau este 2 sau 1. De remarcat insa ca la
fiecare deflatie a polinomului, deoarece restul impartirii nu este totusi exact zero,
informatia despre radacini din polinomul initial este intr-o oarecare masura alterata in
polinomul cat
2
( )
n
Q z

, astfel ca ultimele radacini gasite pot fi destul de departate de


cele reale. Fenomenul este mai frecvent in cazul radacinilor cu ordin de multiplicitate
peste 3. Aceasta face ca deflatia sa nu fie recomandabila decat pentru un numar redus
de radacini si cu ordin de multiplicitate mic.
O varianta mai corecta de determinare a tuturor radacinilor ar fi deteminarea
intr-o prima faza a intervalelor pe care se afla radacini (prin metoda Lobacevski-
Graffe de exemplu) si apoi aplicarea cate o singura data pe fiecare interval a metodei
Bairstow. In felul acesta erorile aparute la determinare catului
2
( )
n
Q z

nu se propaga
prin folosirea repetata a metodei Bairstow, in schimb este necesara o procedura in doi
pasi, care complica programul.
Programul 8.6 pentru calculul radacinilor reale ale unui polinom prin metoda
Bairstow foloseste relatiile 169H(3.86), 170H(3.90), 171H(3.95)-172H(3.97) si 173H(3.76). Dupa calculul
radacinilor complex conjugate cele mai apropiate de alegerea initiala a trinomului, se
reia procedeul folosindu-se polinomul cat si asa mai departe pana la obtinerea unui
polinom cat de grad cel mult 2. Se calculeaza apoi radacinile finale (doua sau una,
dupa cum gradul acestui polinom este 2 sau 1).
Programul are intrarile:
Polinomul ale carui radacini se cauta;
Eroarea admisa ;
Numarul maxim de iteratii admise, max;
Coeficientii alesi pentru trinomul cu care se face prima factorizare, p0 si q0.
Rezulta radacinile reale si complexe, valorile functiei in aceste puncte si
numarul de iteratii folosite.


Programul 8.7. Calculul radacinilor unui polinom prin metoda Bairstow
Cl ear@"`"D;
f @x_D = x
22
+12x
9
7x
7
2x
2
+2x+3; H Pol i nomul al e carui radaci ni l e caut amL
Pl ot@f @xD, 8x, 1. 5, 2<, AxesOri gi n 80, 0<, Pl otRange810, 10<D; H Trasarea graf i cul ui L
a= N@Coef f i ci entLi st@f @xD, xDD; H Li st a coef i ci ent i l or, cu evi t area cal cul el or cu i nt regi L
Pri nt@aD; n= Length@aD 1;
p0 = 1. +0. 2I ; q0 = . 80. 9I ; H Al egerea i ni t i al a a sumei si produsul ui a doua radaci ni L
p= q= 1;
c= r = Tabl e@0, 8i , n+1<D; HI ni t i al i zarea mat ri ci l or col oana care vor f i cal cul at e L
max= 200; H Numarul maxi madmi s de i t erat i i L
= 10
8
; H Eroarea admi sa L
j = 0;
X= 8<; H I ni t i al i zarea mat ri ci i radaci ni l or L
Whi l eAn> 3, H Se va reduce gradul pol i nomul ui pana cand vor f i 3 sau 2 t ermeni L
Whi l eA j < max,
n= Length@aD1;
r
Pn+1T
= a
Pn+1T
;
r
PnT
= a
PnT
+ p0r
Pn+1T
;
For@ k= n1, 1k, k,
r
PkT
= a
PkT
+ p0r
Pk+1T
+q0r
Pk+2T
; D; H Cal cul ul coef i ci ent i l or pol i nomul ui cat L
c
Pn+1T
= r
Pn+1T
;
c
PnT
= r
PnT
+ p0c
Pn+1T
;
For@ k= n1, 2k, k,
c
PkT
= r
PkT
+ p0c
Pk+1T
+ q0c
Pk+2T
; D; H Cal cul ul deri vat el or care vor da mat ri cea J acobi ana L
d0 = DetA
i
k
j
j
c
P2T
c
P3T
c
P3T
c
P4T
y
{
z
zE; d1 = DetA
i
k
j
j
r
P1T
c
P3T
r
P2T
c
P4T
y
{
z
zE; d2 = DetA
i
k
j
j
c
P2T
r
P1T
c
P3T
r
P2T
y
{
z
zE;
p=
d1
d0
; q=
d2
d0
; H Corect ori i l a val ori l e ant eri oare al e sumei si produsul ui radaci ni l or L
p1 = p0 +p; q1 = q0 +q; H Noi l e val ori al e sumei si produsul ui radaci ni l or L
j = j +1;
I f @Abs@pD < &&Abs@qD <, Break@DD; H Opri rea daca ambi i corect ori sunt suf i ci ent de mi ci L
p0 = p1; H Noi l e val ori al e sumei si produsul ui radaci ni l or devi n val ori ant eri oareL
q0 = q1; E;
x1=
p1+
!!!!!!!!!!!!!!!!!!
p1
2
+4q1
2
; x2=
p1
!!!!!!!!!!!!!!!!!!
p1
2
+4q1
2
; H Cel e 2 radaci ni L
I f AAbs@I m@x1DD < 10
5
, x1= Re@x1DE; I f AAbs@I m@x2DD < 10
5
, x2= Re@x2DE;
H Sau el i mi nat part i l e i magi nare daca sunt prea mi ci L
AppendTo@X, 8x1, f @x1D<D; H Daca sa at i ns preci zi a, cal ul eaza radai ni l eL
AppendTo@X, 8x2, f @x2D<D; Hsi adauga i n l i st a i mpreuna cu val ori l e f unct i ei L
p1= r@@nDD; q1=r@@n1DD;
n; H Se scade ordi nul pol i nomul ui L
a= Tabl e@0, 8i , n<D;
For@i = n+1, i 2, i , a@@i 1DD = r@@i +1DD D; H Se st abi l esc noi i coef i ci ent i ai pol i nomul ui L
E;
I f An> 2, p1= a@@2DD; q1=a@@1DD; x1=
p1+
!!!!!!!!!!!!!!!!!!
p1
2
4q1
2
; x2=
p1
!!!!!!!!!!!!!!!!!!
p1
2
4q1
2
;
I f AAbs@I m@x1DD < 10
5
, x1= Re@x1DE; I f AAbs@I m@x2DD < 10
5
, x2= Re@x2DE;
H Daca pol i nomul cat are gradul 2 se cal cul eaza cel e doua radaci ni L
AppendTo@X, 8x1, f @x1D<D; AppendTo@X, 8x2, f @x2D<D
, AppendTo@X, 8p1, f @p1D<DE; H Daca pol i nomul cat are grad 1, sa cal cul at radaci na ramasa L
Pri nt@Tabl eForm@Sort@XDDD;
H Se af i seaza radaci ni l e si val ori l e f unct i ei i n punct el e respect i ve pent ru veri f i careL
Pri nt@j D; H Se af i saza numarul maxi mde i t erat i i L




3.9 Metoda Laguerre de calculare a radacinilor complexe ale
polinoamelor

Una dintre metodele cele mai raspandite si sigure pentru calculul radacinilor
reale sau complexe ale polinoamelor cu coeficienti reali sau complecsi este metoda
Laguerre, care foloseste un singur punct de plecare in planul complex si poate gasi
radacina cea mai apropiata de acesta . Prin alegerea unui numar sufficient de mare de
puncte de start se pot gasi toate radacinile reale sau complexe ale ecuatiei
polinomiale.
Pentru stabilirea relatiilor de aplicare a acestei metode sa pornim de la
expresia scrisa sub forma de produs a polinomului:

1
( ) ( )
n
n k
k
P x x x
=
=

(3.98)
in care s-a impartit cu coeficientul nenul al termenului cu cea mai mare putere, ceea
ce nu modifica ecuatia ( ) 0
n
P x = .
Logaritmul natural al polinomului este:

1
ln ( ) ln( )
n
n k
k
P x x x
=
=

(3.99)
Derivata intai a acestui logaritm o notam cu G si este, conform relatiei precedente

1 2
1 1 1
ln ( ) ...
n
n
d
P x G
dx x x x x x x
= + + +

(3.100)
iar derivate a doua a logaritmului o notam cu H si este

( ) ( ) ( )
2
2 2 2 2
1 2
1 1 1
ln ( ) ...
n
n
d
P x H
dx
x x x x x x
= + + +

(3.101)
Tinand cont de membrul stang al relatiilor 174H(3.100) si 175H(3.101) putem scrie pe
G si pe H sub formele:

'
( )
( )
n
n
P x
G
P x
= (3.102)

2
' ' ''
( ) ( ) ( ) ( )
( )
n n n n
n
P x P x P x P x
H
P x

= (3.103)
Se pot face acum unele aproximari, care chiar daca par fortate intr-o prima
instanta conduc spre un punct mai apropiat de solutie decat punctul ales initiala. Prin
urmare, daca se repeta iterativ procesul, se ajunge din ce in ce mai aproape de solutia
corecta.
Vom presupune ca punctul ales initial se afla la distanta a fata de una din
radacini, sa spunem
1
x , si la distante egale b fata de toate celelalte radacini, deci

1
, , 2, 3,...,
i
x x a x x b i n = = = (3.104)
Evident aceasta ultima aproximatie este foarte grosiera, ea ar fi adevarata doar
in cazuri exeptionale (celelalte radacini sunt multiple sau plasate pe un cerc in planul
complex), dar va conduce la o aproximare mai buna decat alegerea initiala care nu se
bazeaza pe nici o presupunere.
Introducand relatiile 176H(3.104) in 177H(3.100) si 178H(3.101) rezulta sistemul de ecuatii

2 2
1 1
1 1
n
G
a b
n
H
a b

= +

= +

(3.105)
Rezolvand acest sistem in raport cu a si b, rezulta corectorul

2
( 1)( )
n
a
G n nH G
=

(3.106)
Evident, acesta nu este exact, dar adunat cu vechiul punct ne da o valoare mai
apropiata de radacina decat acesta. Procedeul se repeta iterativ, deci daca la iteratia k,
aveam valoarea
k
x aproximand radacini
1
x , la iteratia urmatoare avem o valoare mai
apropiata, corectata cu valoarea
k
a . Considerand
1 1 k
x x
+
, conform relatiei 179H(3.104)
avem

1 k k k
x x a
+
= (3.107)
Semnul din ecuatia 180H(3.106) se alege astfel incat numitorul sa aiba valoarea cea
mai mare pentru micsorarea erorilor de rotunjire si pentru a nu se exagera corectorul,
ceea ce ar putea conduce in afara intervalului de convergenta.
Se constata experimental ca in majoritatea situatilor se obtine o convergenta
foarte rapida, fiind necesare putine iteratii, ceea ce recomanda metoda ca una dintre
cele mai bune pentru ecuatii polinomiale.
Programul 8.8 de calcul pentru radacinile unei ecuatii polinomiale prin metoda
Laguerre foloseste relatiile 181H(3.102), 182H(3.103), 183H(3.106) si 184H(3.107) si are urmatoarele
intrari:
Polinomul ale carui radacini se cauta;
Valoarea maxima a functiei intr-o radacina, ;
Numarul maxim de puncte de start, Nr ;
Numarul maxim de iteratii admise, Ni ;
Rezulta radacinile reale si complexe, valorea maxima a functiei in aceste
puncte, numarul de puncte de start si numarul total de iteratii folosite.
In acest program s-au exemplificat in plus unele metode care pot fi folosite si
la programele prezentate anterior pentru a asigura gasirea tuturor radacinilor:
Punctul de plecare se alege aleator intr-un patrat in planul complex cu centrul
in originea axelor si de latura 10. S-a folosit instructiunea Random[ ] care
genereaza un numar aleator intre 0 si 1;
Dupa o oprire a iteratiilor, se testeaza daca radacina respectiva a mai fost
gasita anterior, cu negatul functiei MemberQ[Xa,x2] care da valoarea logica
True in cazul in care 2 x X . Deoarece pentru diverse puncte de plecare se
pot obtine valori usor diferite pentru aceeasi radacina (de exemplu 1.1112223
si 1.1112224), se formeaza variabila auxiliara 2 x care trunchiaza radacina x
luandu-se numai trei cifre exacte, si cu ea se formeaza multimea radacinilor
trunchiate Xa. Daca se constata ca radacina trunchiata nu a mai fost gasita, se
introduce in X radacina netrunchiata, taindu-se eventual partea imaginara daca
aceasta este prea mica (insemnand ca radacina este de fapt reala).
Inainte de afisare, radacinile au fost ordonate crescator folosind functia Sort.
Intregul proces se reia cu un nou punct de plecare aleator, pana cand numarul
radacinilor gasite este egal cu gradul polinomului.
Programul 8.8. Calculul radacinilor unui polinom prin metoda Laguerre
f @x_D = 4x
10
5x
8
4x
7
H62I L x
5
+3x
2
+H2+3I L x+1;
H Pol i nomul al e carui radaci ni se caut a L
= 10
9
; H Eroarea maxi ma admi sa i n f unct i e L
Nr = 200; H Nr maxi mde punct e de st art pent ru i t erat i i L
Ni = 200; H Nr maxi mde i t erat i i l a f i ecare punct L
A= N@Coef f i ci entLi st@f @xD, xDD; H Coef i ci ent i i pol i nomul ui i ni t i al L
X= 8<; H Mul t i mea radaci ni l or L
Xa= 8<; H Mul t i mea radaci ni l or rot unj i t e cu 2 ci f re L
n= Length@AD1; H Gradul pol i nomul ui L
j = 0; H Nr de punct e de st art L
i = 0; H Nr t ot al de i t erat i i L
Whi l eALength@XD < n, HRepet a pana cand nr radaci ni l or est e egal cu gradul pol i nomul ui L
j ++;
I f @j > Nr, Pri nt@"Peste ", Nr, " de i ncercari "D; Break@DD;
HDaca sunt prea mul t e i ncercari i eseL
x1= 10HHRandom@D0. 5L +I HRandom@D 0. 5LL; H Punct e de st art compl exe al eat oare L
ForAk= 1, k Ni , k++, H I t erat i i l e pent ru f i ecare punct de st art L
i ++;
I f @Abs@f @x1DD < , Break@DD; H Se i nt rerup daca f unct i a e suf i ci ent de mi ca L
f d@x_D =
k=1
n
A@@k+1DD kx
k1
; H Deri vat a i nt ai a pol i nomul ui L
f dd@x_D =
k=1
n1
A@@k+2DD k Hk+1L x
k1
; HDeri vat a a doua a pol i nomul ui L
G=
f d@x1D
f @x1D
;
H=
i
k
j
j
i
k
j
j
f d@x1D
f @x1D
y
{
z
z
2

f dd@x1D
f @x1D
y
{
z
z;
a1=
n
G
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hn1L HnHG
2
L
;
a2=
n
G+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hn1L HnHG
2
L
; H cel e 2 posi bi l i t at i de al egere a corect orul ui L
I f @Abs@a1D <= Abs@a2D, a= a1, a= a2D; H Se al ege cel care are numi t orul mai mare L
x1= x1a; H Noua val oare a radaci ni i dupa corect i e L
E;
x2= AbsANA10
2
RoundA10
2
x1EEE; H Radaci na rot unj i t a cu doua ci f re L
I f @!MemberQ@Xa, x2D, H Test are daca radaci na t runchi at a a mai f ost gasi t a L
AppendTo@Xa, x2D; I f @Abs@I m@x1DD >, AppendTo@X, x1D, AppendTo@X, Re@x1DDD; D; E;
H Daca radaci na rot unj i t a nu est e i n l i st a Xa,
at unci se i nt roduce radaci na nerot unj i t a
i n l i st a X, t ai nd part ea i magi nara daca aceast a est e negl i j abi l a L
Pri nt@"Nr de i ncercari =", j D;
Pri nt@"Nr total de i terati i =", i D;
Pri nt@"Radaci ni : "D;
Pri nt@Tabl eForm@Sort@XDDD; H Aranj eaza radaci ni l e crescat or si l e af i seaza ca t abel L
Pri nt@"Val oarea maxi ma a f uncti ei i n radaci ni =", Max@Abs@f @XDDDD;
NSol ve@f @xD 0, xD


O varianta de rezultat obtinut prin acest progaram este urmatoarea:

Nr de i ncercari =41
Nr t ot al de i t erat i i =204
Radaci ni :
1. 05057 0. 551074
1. 04202+ 0. 657252
0. 6718 0. 430802
0. 376545+ 0. 732874
0. 10401+ 0. 22578
0. 0140766 0. 859236
0. 435058+ 0. 918046
0. 438331 0. 779951
0. 87771+ 0. 134909
1. 50792 0. 0477977
Val oarea maxi ma a f unct i ei i n radaci ni =1. 2773710
12



3.10 Comparatie a metodelor de determinare a radacinilor ecuatiilor
neliniare

Nici una dintre metodele de determinare a radacinilor ecuatiilor neliniare nu
acopera toate situatiile posibile. De aceea, cel mai corect ar fi sa fie folosite doua
metode in tandem, care sa se completeze una pe cealalta. Pentru alegerea lor se poate
folosi tabelul 8.1 in care sunt prezentate caracteristici ale metodelor expuse.

Tabelul 8.1 Caracteristicile si utilizarea metodelor de determinare a radacinilor
ecuatiilor neliniare

Metoda Bisectie Secanta Newton
Raphson
Muller Lobacevski
Graeffe
Bairstow Laguerre
Functie Oarecare Oarecare Oarecare Oarecare Polinom Polinom Polinom
Radacini
complexe
Nu Nu Da Da Nu Da Da
Multiplicitate
radacini
Nu Nu Nu Nu Da Da Nu
Puncte start Interval Interval 1 3 Nu 2 1
Convergenta Minima Medie Foarte
mare
Mare Medie Mare Mare
Dezavantaj
principal
Convergenta
mica
Radacini
reale
Necesita
derivata
Start
complicat
Precizie
redusa
Erori la
deflatie
Necesita
derivata
Utilizare
recomandata
Braketing Refining Refining Refining Braketing Refining Refining

In special atunci cand nu se cunoaste nimic despre pozitia radacinilor
polinoamelor, este recomandabil sa se procedeze in doua etape: mai intai localizarea
radacinilor (braketing) printr-o metoda care nu necesita puncte de start, cum ar fi
metoda Lobacevski-Graeffe (care permite si determinarea ordinului de multiplicitate),
urmata de etapa de rafinare (refining) printr-o metoda care permite atat determinarea
radacinilor reale cat si a celor complexe.



Capitolul 4
Sisteme de ecuatii neliniare

In capitolul precedent s-a exemplificat deja rezolvarea unui sistem de doua
ecuatii neliniare, intalnit la metoda Bairstow. Intr-un spatiu tridimensional, problema
sistemului de doua ecatii neliniare consta in gasirea unei perechi de valori
1 2
( , ) x x din
planul
1 2
0 x x pentru care doua functii de aceste variabile
1 1 2
( , ) F x x respectiv
2 1 2
( , ) F x x sa se anuleze simultan.
Cele doua functii reprezinta suprafete intr-un spatiu tridimensional, ale caror
intersectii cu planul
1 2
0 x x sunt curbe formate de punctele de anulare ale functiilor.
Solutiile sistemului de doua ecuatii sunt punctele de intersectie ale acestor curbe in
planul
1 2
0 x x . Evident, este posibil sa existe mai multe solutii, sau ca multimea
solutiilor sa fie vida, daca aceste curbe nu se intersecteaza in nici un punct. Problema
este prin urmare mai dificila decat in cazul unidimensional, si gradul de dificultate
creste puternic cu dimensiunea sistemului. Aceasta in primul rand deoarece, spre
deosebire de cazul unidimensional, nu exista metode simple de localizare a
radacinilor. De asemenea, daca exista mai multe solutii, alegerea lor trebuie facuta pe
baza analizarii semnificatiei acestora in cadrul modelului (de exemplu fizic) care a
generat problema. Nu in ultimul rand, trebuie remarcat ca volumul de calcule poate sa
creasca exponential cu numarul de ecuatii, ceea ce face ca problema convergentei sa
fie deseori critica. De aceea, in cele ce urmeaza se vor analiza doar acele metode,
relativ putine, care asigura o convergenta acceptabila si se vor omite metodele care
prezinta doar un interes academic.
Exemplul precedent se poate generaliza pentru un sistem de n ecuatii neliniare,
problema formulandu-se astfel: trebuie gasit setul de valori
1 2
( , ,..., )
n
x x x pentru care
functiile
1 1 2
( , ,..., )
n
F x x x ,
2 1 2
( , ,..., )
n
F x x x ,...,
1 2
( , ,..., )
n n
F x x x sa se anuleze simultan:

1 1 2
2 1 2
1 2
( , ,..., ) 0
( , ,..., ) 0
..............................
( , ,..., ) 0
n
n
n n
F x x x
F x x x
F x x x
=

(4.1)
Acest sistem poate fi scris matriceal sub forma:
( ) 0 = F x (4.2)
unde
1 2
( , ,..., )
n
F F F = F este vectorul coloana al valorilor functiei iar
1 2
( , ,..., )
n
x x x = x
este vectorul coloana al variabilelor.

4.1 Metoda Newton-Raphson pentru sisteme de ecuatii
neliniare

Aceasta metoda este preferata in majoritatea cazurilor, poate in primul rand
datorita popularitatii metodei analoage pentru cazul unidimensional. Totusi, s-au
impus si sunt recomandabile si metode alternative, datorita unor dezavantaje ale
metodei Newton-Raphsn care vor reiesi pe parcurs.
Se poate face o asemanare formala cu ecuatiile intalnite in cazul
unidimensional, pornindu-se de la ecuatia 185H(4.2) si facandu-se dezvotarea in serie
Taylor a functiei din membrul stang in jurul unui punct intr-un spatiu n-dimensional.

2
1
( )
( ) ( ) ( ) , 1, 2,..., 0
n
i
i i
j
j
F
F F i n
x

=

+ = + + =

x
x x x x x (4.3)
Deoarece derivatele partiale ale tuturor componentelor functiei in raport cu variabilele
formeaza matricea Jacobiana

( )
i
ij
j
F
J
x

x
(4.4)
ecuatia 186H(4.3) se poate scrie sub forma matriceala:

2
( ) ( ) ( ) 0 + = + + F x x F x J x x (4.5)
Deoarece se urmareste ca dupa corectie ( ) + F x x sa fie cat mai aproape de 0,
din 187H(4.5) rezulta corectorul:

1
( )

= x J F x (4.6)
Metoda se aplica iterativ, astfel ca la iteratia k+1 se obtine noul vector
radacina:

1 k k k

+
= + x x x (4.7)
Convergenta este foarte rapida, ordinul de convergenta fiind 2, dar numai daca
alegerea initiala este suficient de apropiata de solutia corecta, in caz contrar metoda
fiind sau slab convergenta sau chiar divergenta. Deoarece alegerea initiala presupune
atatea valori cate ecuatii sunt in sistem, ea este uneori mult mai dificila decat in cazul
unidimensional. Aceasta limiteaza utilizarea metodei NewtonRaphson in cazul
sistemelor de ecuatii neliniare, existand o serie de metode alternative care pot fi
aplicate cu succes in diverse situatii.



Capitolul 5
Derivarea numerica

5.1 Derivarea directa


5.2 Derivarea prin interpoalre
Exista numeroase metode alternative pentru derivarea numerica, dintre care
sunt mai importante cele care folosesc decompunerea polinomului de interpolare dupa
un set de functii ortogonale, cu aplicatii directe in metodele spectrale de rezolvare a
ecuatiilor diferentiale.
Sa consideram un set de valori ale functiei (necunoscuta analitic) ale carei
derivate dorim sa le calculam. O posibilitate evidenta de obtinere a derivatelor o
constituie gasirea unei functii de interpolare, in forma analitica, aproximand functia
necunoscuta, printr-o metoda de tipul celor prezentate anterior. Noua functie poate fi
deci derivata analitic si apoi se pot determina valorile derivatei in punctele dorite, care
pot fi si altele decat cele initiale.
Interpolarea se poate face folosind diverse seturi de functii, fiind preferate cele
cu proprietati de ortogonalitate, care permit calculul simplu al coeficientilor
dezvoltarii. De exemplu, se pot folosi functiile trigonometrice sau polinoame
ortogonale, cele mai raspandite fiind polinoamele Chebyshev datorita calculului
simplu si proprietatilor de minimizare a erorilor sugerate de teoreme mini-max.
Pe langa polinoamele Chebyshev de speta 1, prezentate deja in capitolul II si
definite prin formula:
( ) cos[ arccos( )]
n
T x n x = (5.1)
se mai definesc si polinoamele Chebyshev de speta 2, prin formula:

sin[( 1) arccos( )]
( )
sin
n
n x
U x
x
+
= (5.2)
S-a aratat ca una dintre metodele de interpolare a functiilor se bazeaza pe
descompunerea acestora intr-o serie de N polinoame Chebyshev:

1
0
( ) ( )
N
n n
n
f x c T x

=
=

(5.3)
unde coeficientii
k
c se calculeaza tinand seama de relatiile de ortogonalitate:

1
2
1
0,
( ) ( )
, 0
1
, 0
2
n m
m n
T x T x
dx m n
x
m n

= = =

(5.4)
Inmultind relatia 188H(5.3) cu ( )
m
T x integrand si tinand cont de ralatia 189H(5.4),
rezulta coeficientii dezvoltarii ca produse scalare ale functiei cu vectorii ortogonali
( )
n
T x :

1
2
1
( ) ( ) 1
1
, 0
, 0
2
k
k
k
k
f xT x
c dx
x
k
k

(5.5)
Aceasta relatie nu este insa practica deoarece necesita o integrare numerica,
introducand erori suplimentare si consumand timp de calcul. Coeficientii dezvoltarii
190H(5.3) se pot calcula insa si fara a fi necesara integrarea, tinand seama de relatia de
ortogonalitate discreta a polinaomelor Chebyshev:

1
0,
( ) ( ) , 0
2
, 0
N
n k m k
k
n m
N
T x T x n m
N n m
=

= =

= =

(5.6)
unde
k
x sunt radacinile polinomului Chebyshev de ordinul N, obtinute din relatia de
definitie:
( ) cos( arccos ) 0
N k k
T x N x = =
Rezulta

arccos (2 1)
2
1
cos
2
k
k
x k
N
x k
N

=

=


(5.7)
Intr-adevar, membrul stang al relatiei 191H(5.6) se scrie succesiv:

1
1 1
1 1
1 1
( ) ( )
2
1
1 1
( ) ( ) cos cos
2 2
1 1 1 1
cos ( ) cos ( )
2 2 2 2
1 1
Re Re
2 2
N N
n k m k
k k
N N
k k
N
i n m k i n m k
N
k
S
S T x T x n k m k
N N
n m k n m k
N N
e e



= =
= =

+


=

= = =



+ + =



+




_
2
2
1
N
N
k
S



=



_
(5.8)
Cei doi termeni pot fi calculati ca sume de progresii geometrice. De exemplu,
termenul
1
S are primul termen
( )
2
1
i n m
N
a e

+
= si ratia
( ) i n m
N
r e

+
= , de unde rezulta:

( )
( )
2
1
( )
1 1
Re
2
1
i n m
i n m
N
i n m
N
e
S e
e

+
+
+


=



Impartind la
( )
2
i n m
N
e

+
se poate obtine la numitor un sinus, si tinand cont ca
( )
( 1)
i n m n m
e
+ +
= , rezulta:

1
1 1 ( 1)
Re
2 2
sin( )
2
n m
i
S
n m
N

+



=

+

(5.9)
Similar se obtine si celalalt termen:

2
1 1 ( 1)
Re
2 2
sin( )
2
n m
i
S
n m
N




=



(5.10)


Se observa ca avem trei cazuri:
a) Daca 0 n m = = , ambele sume din ultimul membru al relatiei 192H(5.8) au
exponentul nul si deci suma totala este N;
b) Daca 0 n m = , prima suma va fi nula conform relatiei 193H(5.9) in care in
paranteza dreapta avem un numar pur imaginar iar a doua suma se poate
calcula din termenul final al relatiei 194H(5.8) in care exponentul e nul, suma totala
fiind deci
2
N
;
c) Daca n m , si prima si a doua suma sunt nule conform relatiilor 195H(5.9) si
196H(5.10), in care in parantezele dreapte avem numere pur imaginare, deci suma
totala este nula.
Relatia 197H(5.6) este deci demonstrata si poate fi folosita pentru calculul
coeficientilor dezvoltarii 198H(5.3). Pentru inceput se scrie aproximarea functiei initiale
prin polinoame Chebyshev conform relatiei 199H(5.3), pentru punctele
k
x ,

1
0
( ) ( )
N
k n n k
n
f x c T x

=
=

(5.11)
Inmultind aceasta relatie cu ( )
m k
T x , sumand dupa k si tinand cont de relatia
de ortogonalitate discreta 200H(5.6), obtinem:

1
1 1 0
0 1
0 1
( ) ( ) ( ) ( )
, 0
( ) ( )
, 0
2
N N N
k m k n n k m k
k k n
N N
n n k m k
n k
m
f x T x c T x T x
Nc m
c T x T x
N
c m

= = =

= =
= =
=




Coeficientii dezvoltarii vor fi deci:


0 0
1
1
( ) ( )
N
k k
k
c f x T x
N
=
=

(5.12)

1
2
( ) ( ), 1, 2,..., 1
N
m k m k
k
c f x T x m N
N
=
= =

(5.13)
sau, tinand cont de definitia 201H(5.7) a radacinilor polinoamelor Chebyshev

1
2 1 1
cos cos , 1, 2,..., 1
2 2
N
m
k
c f k m k m N
N N N

=

= =


(5.14)
Aceasta relatie defineste asa-numita transformare cosinus discreta si pentru
calculul sau exista si metode rapide bazate pe transformata Fourier rapida (FFT).
Pentru a nu fi necesare doua formule (adica 202H(5.12) si 203H(5.13)) pentru calculul
coeficientilor dezvoltarii, in practica se prefera o forma usor modificata pentru relatia
204H(5.11):

1
0
1
1
( ) ( )
2
N
n n
n
f x c T x c

=
+

(5.15)
in care toti coeficientii, inclusiv
0
c , se calculeaza cu aceeasi relatie 205H(5.13), dar se tine
seama ca din aceasta relatie
0
c rezulta de doua ori mai mare decat din 206H(5.12); de
aceea se separa termenul respectiv in relatia 207H(5.15) si se incepe indexarea in suma de
la 1. S-a tinut cont si de faptul ca
0
( ) 1 T x = .
Derivata functiei ( ) f x se poate calcula din relatia 208H(5.3), in care functiile
dependente de x din membrul drept sunt polinoamele Chebyshev:

1
'
0
'( ) ( )
N
n n
n
f x c T x

=
=

(5.16)
cu coeficientii calculati dupa 209H(5.12) si 210H(5.13), sau rescrisa cu coeficienti calculati
numai dupa 211H(5.13), sub o forma similara cu 212H(5.15):

1
'
0
1
1
'( ) ( )
2
N
n n
n
f x c T x c

=
= +

(5.17)
Aceste forme au dezavantajul ca trebuiesc cunoscute si derivatele
polinoamelor Chebyshev, ceea ce consuma timp suplimentar. Exista insa posibilitatea
ca aceste derivate ale polinoamelor sa se exprime prin relatii de recurenta in functie de
polinoamele Chebashev nederivate, de care se presupune ca se dispune deja pentru
calculul coeficientilor
n
c .
Se pot demonstra urmatoarele relatii:

1
( ) ( )
n n
d
T x nU x
dx

= (5.18)
[ ]
2
1
( ) ( ) ( )
2
n n n
T x U x U x

= (5.19)
Prima relatie se demonstreaza prin calcul direct:

2
1
2
sin( arccos )
cos( arccos )
1
sin( arccos ) sin( arccos )
( )
sin(arccos )
1 [cos(arccos )]
n
d n n x
n x
dx
x
n x n x
n n nU x
x
x

= =

= = =


A doua relatie se demonstreaza pe baza identitatii trigonometrice:
[ ]
1
cos sin sin( ) sin( )
2
a b a b a b = +
Notand arccos x = si alegand , ( 1) a n b n = = se obtine succesiv:

[ ]
1
cos sin sin( 1) sin( 1)
2
n n n = +

[ ] [ ]
[ ] [ ]
sin ( 1) sin ( 1)
1
cos( arccos )
2 sin
sin ( 1) arccos sin ( 1) arccos
1
2 sin(arccos ) sin(arccos )
n n
n x
n x n x
x x


+
= =


+
=



obtinandu-se relatia 213H(5.19).
Rescriind relatia 214H(5.18) pentru 1 n+ si 1 n se obtine

1
1 2
( ) ( 1) ( )
( ) ( 1) ( )
n n
n n
d
T x n U x
dx
d
T x n U x
dx
+

= +
=


Impartind prima relatie cu 1 n+ si a doua cu 1 n , adunandu-le si tinand
seama de relatia 215H(5.19), rezulta:

' '
1 1
( ) ( )
2 ( )
1 1
n n
n
T x T x
T x
n n
+
=
+
(5.20)
Aceasta relatie este fundamentala pentru metodele spectrale, permitand
calculul prin recurenta al coeficientilor seriilor derivate.
Astfel, se pot exprima derivatele polinoamelor Chebyshev din relatia 216H(5.16) in
functie de polinoamele nederivate, obtinandu-se o noua serie cu alti coeficienti
n
b
care pot fi calculati prin recurenta din coeficientii deja cunoscuti
n
c . Pentru gasirea
relatiei intre cele doua seturi de coeficienti, se scrie 217H(5.16) in cele doua forme si se
egaleaza coeficientii polinoamelor Chebyshev de acelasi ordin.

1 1
'
0 0
'( ) ( ) ( )
N N
n n n n
n n
f x c T x bT x

= =
= =

(5.21)
Din relatia 218H(5.20) rezulta derivata polinomului Chebyshev de ordin 1 n+ in
functie de polinomul nederivat de ordin n:

' '
1 1
1
( ) ( ) 2( 1) ( )
1
n n n
n
T x T x n T x
n
+
+
= + +


care rescrisa trecand de la 1 n+ la n este:

' '
2 1
( ) ( ) 2 ( )
2
n n n
n
T x T x nT x
n

= +

(5.22)

Tot din relatia 219H(5.20) rezulta derivata polinomului Chebyshev de ordin 1 n
in functie de polinomul nederivat de ordin n:

' '
1 1
1
( ) ( ) 2( 1) ( )
1
n n n
n
T x T x n T x
n
+

=
+

care rescrisa trecand de la 1 n la n este:

' '
2 1
( ) ( ) 2 ( )
2
n n n
n
T x T x nT x
n
+ +
=
+
(5.23)

Din 220H(5.22)si 221H(5.23) se observa ca la termenul in
'
( )
n
T x din suma din stanga
relatiei 222H(5.21) contribuie termenii in
1
( )
n
T x

si
1
( )
n
T x
+
ai sumei din dreapta acestei
relatii, avand coeficientii
1 n
b

si respectiv
1 n
b
+
:

'
1 1 1 1
( ) ( ) ( )
n n n n n n
c T x b T x b T x

= + (5.24)
Tot din relatiile 223H(5.22) si 224H(5.23) rezulta ca factorii de proportionalitate intre
1
( )
n
T x

si
'
( )
n
T x , respectiv
1
( )
n
T x
+
si
'
( )
n
T x sunt
1
2n
, respectiv
1
2n
, deci inlocuind in
225H(5.24) obtinem:

' ' ' 1 1
( ) ( ) ( )
2 2
n n
n n n n
b b
c T x T x T x
n n

=
Rezulta relatia de recurenta pentru calculul coeficientilor dezvoltarii derivatei:

1 1
2
n n n
b b nc
+
= + (5.25)
Ei se calculeaza cu conditiile de start
1
0
n
c
+
= si 0
n
c = , iar deoarece
0
b se
calculeaza din
1
c , el rezulta cu o valoare dubla fata de cea normala si trebuie
injumatatit. Se obtine deci formula de interpolare pentru derivata functiei:

1
0
1
1
'( ) ( )
2
N
n n
n
f x bT x b

=
+

(5.26)
coeficientii fiind calculati prin recurenta cu relatia 226H(5.25). Egalitatea este exacta
numai in radacinile polinomului Chebyshev de ordinul 1 N , in rest fiind cu atat mai
corecta cu cat N este mai mare.
Aceste relatii sunt valabile, ca si cele de interpolare, numai pe intervalul de
ortogonalitate al polinoamelor Chebyshev, adica [-1,1]. In cazul in care functia a carei
derivata o calculam are un domeniu de definitie
min max
[ , ] x x mai mare, trebuie facuta o
schimbare de variabila dupa formula:

max min max min
2 2
x x x x
x y
+
= + (5.27)
aplicata pentru punctele de esantionare ale functiei, astfel incat relatia 227H(5.13) devine:

max min max min
1
2
( ) ( ), 0, 2,..., 1
2 2
N
m k m k
k
x x x x
c f x T x m N
N
=
+
= + =


La calculul functiei de interpolare trebuie facuta trecerea inversa in variabila
polinoamelor Chebyshev, astfel incat formula 228H(5.15) devine:

1
min
0
1
max min
1
( ) (2 1)
2
N
n n
n
x x
f x c T c
x x


De asemenea, la calculul functiei de interpolare a derivatei trebuie tinut cont
de factorul care apare la derivarea relatiei de schimbare de variabila 229H(5.27), astfel ca
relatia 230H(5.26) devine:

1
min
0
1
max min max min
2 1
'( ) (2 1)
2
N
n n
n
x x
f x bT b
x x x x


In[1]:= Needs@"Graphi cs`Col ors`"D;
f @x_D =
1
1+x
2
+CosAx
2
E; HCupri nde f unct i a Runge i nt erpol area echi di st ant a nu converge! L
xm= 5; xM= 5; H Domeni ul de def i ni t i e, ext i ns i n af ara l ui @1, 1D L
g1= Pl ot@f @xD, 8x, xm, xM<, Pl otStyl e Bl ueD;
Na= 60; H Numarul de t ermeni di n dezvol t area i n pol i noame ChebyshevL
H Se cal cul eaza coef i ci ent i i de i nt erpol are Chebyshev pent ru f HxL L
ForAk= 0, k<= Na, k++,
c@kD =
2.
Na

j =1
Na
f A
i
k
j
j
j
j
CosA
H2j 1L

2
Na
E
y
{
z
z
z
z

xMxm
2
+
xM+xm
2
E
i
k
j
j
j
j
CosA
kH2j 1L

2
Na
E
y
{
z
z
z
z
E;
H Sa f acut schi mbarea de vari abi l a x=y
xMxm
2
+
xM+xm
2
pent ru ext i nderea i nt erval ul ui L
Hp@x_D=
n=1
Na
c@nD ChebyshevTAn, 2
xxm
xMxm
1E+
1
2
c@0D;
Genereaza p HxL i n f orma pol i nomi al a dar cu erori mai mari pent ru Na mareL
p@x_D =
n=1
Na
c@nD CosAnArcCosA2
xxm
xMxm
1EE +
1
2
c@0D;
H Forma pref erabi l a i n Mathemati ca 5. 2, erori mai mi ci decat cu f unct i a ChebyshevT@n, xD L
H Sa f acut schi mbarea i nversa de vari abi l a y=2
xxm
xMxm
1 L
g2= Pl ot@p@xD, 8x, xm, xM<, Pl otStyl eGreenD;
Show@g1, g2D; H Af i seaza f unct i a i ni t i al a si aproxi mant a L
H Ai ci i ncepe deri varea numeri ca L
b@Na+1D =0;
b@NaD = 0;
For@k= Na, k> 0, k,
b@k1D = b@k+1D +2kc@kDD;
dp@x_D =
2
xMxm
i
k
j
j
j
j

n=1
Na
b@nD CosAnArcCosA2
xxm
xMxm
1EE +
1
2
b@0D
y
{
z
z
z
z
;
H Sa i nmul t i t cu
dy
dx
di n schi mbarea de vari abi l a L
df @x_D =
x
f @xD; H Deri vat a anal i t i ca pent ru comparat i e L
g3= Pl ot@df @xD, 8x, xm, xM<, Pl otStyl e RedD;
g4= Pl ot@dp@xD, 8x, xm, xM<, Pl otStyl eGreenD;
Show@g3, g4D; H Af i seaza deri vat a anal i t i ca si deri vat a numeri ca L
Nm= 500; H Nr de punct e i n care se cal cul eaza abat erea L
ForAk= 0, k< Nm, k++, r@kD =xm+k
xMxm
Nm
E;
e=
1
Nm

k=0
Nm1
Abs@df @r@kDD dp@r@kDDD;
Pri nt@"Eroare=", eD;

Programul prezentat calculeaza functia de interpolare a unei functii date si a
derivatei acesteia, avand urmatoarele intrari:
Functia initiala ( ) f x ;
Domeniul de definitie [ , ] xmxM ;
Numarul de termeni ai polinomului de interpolare.
Iesirile sunt:
Polinomul de aproximare Chebyshev al functiei, ( ) p x ;
Polinomul de aproximare Chebyshev al derivatei functiei, ( ) dp x ;
Graficele functiei initiale, polinomului de aproximare (figura 5.1) si al
derivatelor acestora (derivata functiei initiala, considerata analitica in
exemplul de fata se calculeaza analitic pentru comparatie) figura 5.2;
Eroarea definita ca media modulurilor abaterilor intr-un numar de puncte de
comparare, Nm.

Pentru o aproximare cu 60 de termeni de exemplu, eroarea obtinuta pentru
aceasta functie destul de dificila, este de aproximativ
5
3.2 10

.


- 4 -2 2 4
1. 5
2
2. 5
3
3. 5
4
- 4 -2 2 4
1. 5
2
2. 5
3
3. 5
4

Figura 5.1 Graficul functiei ( ) f x si al polinomului de aproximare ( ) p x

-4 -2 2 4
-10
-5
5
10
-4 -2 2 4
-10
-5
5
10

Figura 5.2 Graficul derivatei analitice a functiei, '( ) f x , si al polinomului de
aproximare numerica a derivatei, ( ) dp x .




























Capitolul 6
Integrarea numerica
( )
b
a
f x dx

(6.1)

6.1 I ntegrarea Gauss

Fie integrala definita pe un domeniu finit a unei functii integrabile ( ) f x :
( )
b
a
f x dx

(6.2)
Metodele elementare prezentate anterior folosesc pentru calculul valorilor
integrandului o divizare echidistanta a intervalului de integrare. Printr-o alegere
avantajoasa a punctelor de evaluare a integrantului (puncte numite si noduri), se pot
obtine metode mult mai eficiente de integrare, printre care si metoda de cuadratura
Gauss.
Functia ( ) f x poate fi aproximata prin una dintre metodele cunoscute, de
exemplu prin dezvoltare Lagrange cu n termeni:

1
( ) ( ) ( )
n
i i
i
f x f x L x
=

= (6.3)
unde polinomul Lagrange are forma cunoscuta:

1
( )
n
i
i
j j i
j i
x x
L x
x x
=

(6.4)
si deoarece in 231H(6.4) exista conditia ca j i , acest polinom este de grad 1 n .
Introducand 232H(6.4) in 233H(6.3) si apoi in 234H(6.2), rezulta:

1 1
( ) ( )
b b
n n
i
i
i j j i a a
j i
x x
f x dx f x dx
x x
= =



= (6.5)
Rezulta ca prin aceasta formula se va aproxima integrala functiei print
integrala unui polinom de grad 1 n , care trece prin n puncte
i
x . In general, cu cat n
este mai mare cu atat aproximatia functiei si deci si a integralei va fi mai buna. Intr-
adevar, conform formule pentru restul aproximarii unei functii printr-un polinom de
grad n care trece prin n puncte
i
x care a fost dedusa la studiul interpolarii polinomiale:

( )
1
1
( )
( ) ( )
!
n n
n i
i
f
R x x x
n

=
=

(6.6)
Se observa o scadere a erorii cu ! n , ceea ce in unele cazuri este suficient.
Dupa cum se va arata in continuare, exista insa posibilitatea de a aproxima
integrala printr-un polinom de grad 2 1 n folosind o dexvoltare cu numai n termeni,
daca acest polinom face parte dintr-o baza de polinoame ortogonale.
Sa consideram o aproximare a functiei ( ) f x printr-o functie polinomiala de
grad 2 1 n ,
2 1
( )
n
f x

. Aceasta functie o factorizam cu un polinom de grad n, ( )


n
P x ,
obtinandu-se un cat ( ) q x de grad (2 1) 1 n n n = si un rest ( ) r x de asemenea de
grad 1 n :

2 1 1 1
( ) ( ) ( ) ( )
n n n n
f x P x q x r x

= + (6.7)
Daca impunem ca polinomul ( )
n
P x sa faca parte dintr-o baza de polinoame
{ } ( )
n
P x ortogonale pe intervalul
[ ]
, a b , el satisface o relatie de ortogonalitate de tipul:

2
( ) ( ) ( )
b
n m n nm
a
P x P x wx dx c =

(6.8)
unde ( ) wx este functia pondere ale bazei de polinoame ortogonale considerate.
Inmultind relatia 235H(6.7) cu ( ) w x si integrand pe intervalul
[ ]
, a b obtinem:

2 1 1 1
( ) ( ) ( ) ( ) ( ) ( ) ( )
b b b
n n n n
a a a
f x wx dx P x q x w x dx r x wx dx

= +

(6.9)
Exprimand catul ca o dezvoltare dupa polinoamele din baza ortogonala
{ } ( )
n
P x

1
1
1
( ) ( )
n
n k k
k
q x a P x

=
=

(6.10)
Se observa ca deoarece catul are gradul 1 n , si polinoamele folosite din baza
au gradul cel mult 1 n . Ele sunt deci toate ortogonale pe polinomul ( )
n
P x , si deci
conform relatiei 236H(6.8), prima integrala din membrul drept al relatiei 237H(6.9) se anuleaza:

1
1
1
1
2
1
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) 0
b b
n
n n n k k
k
a a
b
n
k n k n nk
k
a
P x q x w x dx P x a P x w x dx
a P x P xwx dx c

=

= =


= = =



deoarece 1 k n , deci k n .
Relatia 238H(6.9) devine:

2 1 1
( ) ( ) ( ) ( )
b b
n n
a a
f x w x dx r x w x dx

=

(6.11)
Sa consideram acum radacinile polinomului ortogonal ( )
n
P x , adica acele
puncte
i
x pentru care avem relatia:
( ) 0, 1, 2,...,
n i
P x i n = = (6.12)
Scriind relatia 239H(6.7) in aceste puncte rezulta:


2 1 1
( ) ( )
n i n i
f x r x

= (6.13)
Restul
1
( )
n
r x

poate fi interpolat Lagrange printr-o relatie de tipul 240H(6.3) si


tinand cont de relatia 241H(6.13) se poate scrie:

1 1 2 1
1 1
( ) ( ) ( ) ( ) ( )
n n
n n i i n i i
i i
r x r x L x f x L x

= =
=

= (6.14)
Introducand relatia 242H(6.14) in 243H(6.11) rexulta

2 1 2 1
1
( ) ( ) ( ) ( ) ( )
b b
n
n n i i
i
a a
f x w x dx f x L x wx dx

=
=


(6.15)
Tinand cont ca
2 1
( )
n
f x

aproximeaza pe ( ) f x , relatia 244H(6.15) se poate scrie:



1
( ) ( ) ( )
b
n
i i
i
a
f x wx dx f x W
=

= (6.16)
unde marimile
( ) ( )
b
i i
a
W L x w x dx =

, 1, 2,..., i n = (6.17)
se numesc ponderi de integrare Gauss. Ele sunt independente de functia de integrat,
dupa cum arata relatia 245H(6.17) si pot fi calculate cu aceasta relatie din functia pondere
( ) wx a bazei de polinoame ortogonale considerate si definitia 246H(6.4) a polinomului
Lagrange ( )
i
L x pentru nodurile
i
x radacini ale polinomului ortogonal de ordin maxim
folosit, sau se pot obtine din tabele.
Aproximatia data de aceasta metoda corespunde unei erori de interpolare a
functiei cu un polimom de grad 2 1 n , desi functia se calculeaza numai in n puncte.
Restul aproximarii va fi analog relatiei 247H(6.6), dar pentru un grad 2 1 n :

( )
1
1
( )
( ) ( )
(2 1)!
n n
n i
i
f
R x x x
n

=
=


(6.18)
find deci de (2 1)!/ ! ( 1)( 2)...(2 1) n n n n n = + + ori mai mic. De exemplu, pentru
10 n= , restul poate fi de
12
1.4 10 ori mai mic, ceea ce indica o metoda
hipereficienta.
Relatia 248H(6.16) defineste metoda de quadratura Gauss in mod general. Se
remarca faptul ca integrandul contine functia pondere a polinomului ortogonal, de
aceea este necesar ca functia de integrat, de exemplu ( ) g x sa fie in prealabil
factorizata in aceasta forma
( ) ( ) ( ) g x f x wx = (6.19)
De aici rezulta


( )
( )
( )
g x
f x
w x
= (6.20)
iar relatia 249H(6.16) devine

1
( )
( )
( )
b
n
i
i
i
i a
g x
g x dx W
wx
=
=


Trecand din nou la functia ( ) f x , obtinem in final

1
( )
( )
( )
b
n
i
i
i
i a
f x
f x dx W
wx
=
=

(6.21)

6.2 I ntegrarea de tip Gauss-Legendre

Daca se folosesc polinoamele Legendre ca baza, avem avantajul ca functia lor
pondere este 1, simplificand relatia de cuadratura. Rezulta formula de cuadratura
Gauss-Legendre:

1
( ) ( )
b
n
i i
i
a
f x dx f x W
=
=

(6.22)
unde ponderile sunt:

1
( )
b b
n
i
i i
j j i a a
j i
x x
W L x dx dx
x x
=

= =


(6.23)
nodurile
i
x fiind radacinile polinomului Legendre de ordin n. Pentru calculul
nodurilor
i
x trebuie rezolvata ecuatia polinomiala 250H(6.12) pentru polinoame Legendre,
sau se pot lua din tabele. De asemenea, exista tabele si pentru aceste functii pondere.
Se mai poate folosi de asemenea si formula:

1 1
'
1 1 1
( ), ( )
( ) ( )
n n n
i
n i n i n
P x P x
A
W
P x P x A


= (6.24)
unde
n
A si
1 n
A

sunt coeficientii termenilor de grad maxim din polinoamele ( )


n
P x ,
respectiv
1
( )
n
P x

.
O problema care apare in practica este datorata faptului ca domeniul de
ortogonalitate al polinoamelor Legendre este
[ ]
1,1 . Daca integrala este definita pe
un domeniu oarecare, dar finit,
[ ]
, a b , trebuie facuta schimbarea de variabila:

2 2
b a b a
z x
+
= + (6.25)
astfel ca formula de cuadratura Gauss Legendre devine:


1
( )
2 2 2
b
n
i i
i
a
b a b a b a
f x dx f x W
=
+
= +

(6.26)
iar ponderile raman neschimbate.

6.3 Cuadratura Clenshaw Curtis

Tinand cont de argumentul dat de relatia 251H(6.18), se pare ca metoda de
cuadratura Gauss este cea mai eficienta din cate se cunose. Totusi, in anumite cazuri
exista si argumente in favoarea unor alte metode, cum ar fi Clenshaw-Curtis. Astfel,
se pot mentiona urmatoarele:
Cuadratura Clenshaw-Curtis are formule mult mai simple de calcul a nodurilor
si ponderilor decat Gauss-Legendre si deci erorile introduse de acestea sunt
mai mici la un numar de puncte de esantionare mare;
In varianta de esantionare Gauss-Lobatto metodele adaptive pot reutiliza
jumatate din punctele anterior calculate la trecerea de lan puncte la 2n puncte
de esantionare.
Aceste argumente sunt importante in special atunci cand trebuiesc efectuate
numeroase cuadraturi pentru rezolvarea unei probleme, cum ar fi in cazul ecuatiilor
integrale si integro-diferentiale, asa cum se va arata mai tarziu.
Pentru prezentarea algoritmului Clenshaw-Curtis se porneste de la exprimarea
functiei de integrat ca o dezvoltare in serie dupa polinoame Chebyshev ( )
r
T x de ordin
cel mult n, conform relatiei 252H(5.11) prezentata in capitolul anterior, unde semnul prim
al sumei arata ca primul termen se ia injumatatit

0
'
( ) ( )
n
r r
r
f x aT x
=
=

(6.27)
Coeficientii
r
a ai dezvoltarii rezulta din 253H(5.13) inclusiv pentru 0 r =

1
2
( ) ( ), 0,1,...,
n
r k r k
k
a f x T x r n
n
=
= =

(6.28)
Vom considera in continuare ca esantionarea se face in punctele
k
x date de
radacinile polinomului Chebyshev de ordinul n, deci
( ) cos arccos 0, arccos (2 1) / 2, 1, 2,..
n k k k
T x n x n x k k n = = = =

(2 1) / 2
cos
k
k
x
n

= . (6.29)
In anumite cazuri se poate considera si esantionarea de tip Lobatto care se face
in extremele polinomului Chebyshev de ordinul n adica cos
k
k
x
n

= . Aceasta
metoda are avantajul ca, daca se dubleaza numarul de puncte de esantionare (in cadrul
asa-numitelor metode adaptive de cuadratura), jumatate din punctele obtinute coincid
cu cele vechi si deci valorile respective pot fi reutilizate. Totusi se constata in calcule
ca erorile introduse in schema de cuadratura cu esantionarea in extreme sunt mai mari
decat cele introduse de esantionarea in zerouri astfel ca daca nu se folosesc algoritmi
adaptivi varianta data de relatia 254H(6.29) este mai buna.
Pe baza dezvoltarii functiei in serie de polinoame Chebyshev 255H(6.27) se poate
calcula integrala definita 256H(6.1) pe intervalul
[ ]
1,1 in forma

1 1 1 1 1
0 0
0 0 1
1 1 1 1 1
1
' '
( ) ( ) ( ) ( ) ( )
2
n n n
r r r r r r
r r r
f x dx aT xdx a T x dx a T x dx a T x dx
= = =

= = = +


(6.30)
deci problema se reduce la calculul coeficientilor dezvoltarii prin relatia 257H(6.28) si al
integralelor polinoamelor Chebyshev pana la ordinul n.
Ca si in cazul cuadraturii Gauss, aceste integrale nu depind de functia initiala,
fiind universal valabile si deci pot fi gasite in tabele. Chiar si intr-un caz mai general,
cu limita superioara de integrare variabila (ca in cazul ecuatiilor integrale Volterra
care vor fi prezentate mai tarziu), integrala initiala se poate calcula si fara a se
cunoaste aceste noi integrale, folosindu-se doar coeficientii dezvoltarii functiei in
serie de polinoame Chebyshev.
Intr-adevar, integralele de forma
1
( )
t
r
T x dx

cu 0,1,..., r n = se pot calcula analitic cu ajutorul relatiei 258H(5.20). Rezulta


' ' 1
1 1 1 1 1 1
2
1 1 1 1
( ) ( ) ( ) ( ) ( ) ( ) ( 1)
( )
2( 1) 2( 1) 2( 1) 2( 1) 2( 1) 2( 1) 1
t t
t t r
r r r r r r
r
T x T x T x T x T t T t
T xdx dx
r r r r r r r
+
+ + +


= = = +

+ + +


(6.31)
unde s-a tinut cont ca
1 2 1 1
1 1
( 1) ( 1) ( 1) ( 1) ( 1) ( 1)
r r r
r r
T T
+
+
= = = = .
Relatia 259H(6.31) este utilizabila pentru 2, 3,..., r n = , astfel ca integralele pentru
0,1 n= trebuiesc calculate separat:

1
1
2 2
2
1
0 ( 1) ( ) 1
( 1) 1 1
1 ( )
2 2 4 4
t
t
n dx t T t
t
n xdx T t

= = = +

= = =

(6.32)
unde s-a tinut cont ca primele polinoame Chebyshev
sunt
2
0 1 2
( ) 1, ( ) , ( ) 2 1 T t T t t T t t = = = .
Introducand relatiile 260H(6.31) si 261H(6.32) in ultimul membru al relatiei 262H(6.30) si
ordonand dupa ordinul polinoamelor Chebyshev care apar, rezulta

1
0 0 3 1 2 1
1 2 2
2
1
1 1 2 4
3
( 1)
( ) ( ) ( )
2 4 1 2 2 4 4
( ) ... ( )
6 6 2 2
t r n
r
r
n n
n
a a a a a a
f x dx a T t T t
r
a a a a
T t T t
n n
+
=

+

= + + +



+ + +


Daca se ia intervalul de integrare
[ ]
1, t , tinand cont ca (1) 1
r
T = , se obtine
formula de cuadratura Clenshaw-Curtis

1 1
0 1 1 1
2
2 1
1
( 1)
( ) ( )
2 4 1 2
t r n n
r r
r r
r r
a a a a
f x dx a T t
r r
+
+
= =


= + +

(6.33)
in care coeficientii dezvoltarii se cacluleaza cu relatia 263H(6.28) care poate fi explicitata
ca o transformare cosinus discreta

1
2 (2 1) / 2 (2 1) / 2
cos cos , 0,1,...,
n
r
k
k r k
a f r n
n n n

=

= =


iar coeficientul
1
0
r
a
+
= , deoarece seria 264H(6.27) se considera trunchiata la n.
Ca si in cazul integrarii Gauss Legendre, daca integrala este definita pe un
domeniu oarecare, dar finit,
[ ]
, a b , trebuie facuta schimbarea de variabila:

2 2
b a b a
z x
+
= + (6.34)
Prin urmare, daca limita superioara de integrare este variabila, pentru un
interval
[ ]
, a t formula de cuadratura Clenshaw-Curtis devine:

1 1
0 1 1 1
2
2 1
( 1)
( ) ( )
2 2 4 1 2
t r n n
r r
r r
r r
a
a a a a t a
f x dx a T t
r r
+
+
= =

= + +

(6.35)
iar relatia de calcul pentru coeficienti va fi

1
2 (2 1) / 2 (2 1) / 2
cos cos , 0,1,...,
2 2
n
r
k
k t a t a r k
a f r n
n n n

=
+
= + =

(6.36)

Daca limita superioara de integrare nu este neaparat variabila este
avantajos sa se faca schimbarea de variabila 265H(6.34) catre intervalul de integrare
[ ]
1,1 . In acest caz, tinand cont ca (1) 1
r
T = pentru orice r , pornind direct de la
relatia 266H(6.31) si facand observatia ca termenii cu r impar devin nuli, se obtine
urmatoarea formula, mult mai practica, de cuadratura Clenshaw-Curtis

1
2
0 2
1
2
( )
2 1 (2 )
n
b
r
r
a
b a
f x dx a a
r


= +

(6.37)
unde coeficientii
r
a sunt dati de relatia de transformare cosinus discreta:

1
2 (2 1) / 2 (2 1) / 2
cos cos , 0,1,..., 1
2 2 2
n
r
k
k b a b a r k n
a f r
n n n

=
+
= + =

(6.38)
Se obtine o dublare a vitezei de calcul datorita injumatatirii numarului de
coeficienti care trebuiesc calculati.
Programul 6.5 caluleaza integrala definita a unei functii (in exemplu functia
Runge) pe un interval finit oarecare, pe baza relatiilor 267H(6.37) si 268H(6.38).


Programul 6.5. Calculul unei integrale definite prin cuadratura Clenshaw-
Curtis
f @x_D =
1
1+x
2
; H Functi a de i ntegrat L
a= 3. ; b= 3. ; H I nterval ul L
Na= 21;
ForAr = 0, r Na, r += 2, H se cal cul eaza doar coef i ci enti i pari L
A@rD =
2.
Na

j =1
Na
f ACosA
H2j 1L

2
Na
E
ba
2
+
b+a
2
E CosA
r H2j 1L

2
Na
EE;
I cc=
ba
2

i
k
j
j
j
j
j
j
j
j

r=1
Na
2
1
A@2rD
2
1H2rL
2
+A@0D
y
{
z
z
z
z
z
z
z
z
;


Deoarece nodurile sunt mai simplu de calculat decat in cazul cuadraturii
Gauss-Legendre, in care ele trebuiesc calculate ca radacini ale unei ecuatii
polinomiale si deci au deja anumite erori inerente, practic numarul de termeni care
trebuiesc considerati pentru obtinerea unei precizii date prin cuadratura Clenshaw-
Curtis este comparabil cu cel pentru cuadratura Gauss-Legendre. Erorile de calcul
pentru nodurile cuadraturii Gauss-Legendre crescand cu ordinul polinomului folosit,
exista un ordin peste care cuadratura Clenshaw-Curtis devine mai precisa, in special
in cazul unor functii dificil de integrat.
Printre avantajele cuadraturii Clenshaw-Curtis fata de Gauss-Legendre se
citeaza si posibilitatea de a se obtine transformata cosinus discreta (partea cea mai
cronofaga a algoritmului) printr-o transformare Fourier rapida (Fast Fourier
Transform- FFT) care reduce numarul de calcule de la
2
n la
2
log n n daca n este o
putere a lui 2. Astfel, de exemplu pentru 32 n= , volumul de calcule scade de peste 6
ori, iar pentru 64 n= de peste 10 ori.















Capitolul 7
Ecuatii diferentiale ordinare


7.1 Metoda Euler de ordinul I

Sa consideram forma explicita a unei ecuatii diferentiale ordinare de ordinul I

'
( ) [ , ( )] y x f x y x = (7.1)
Daca pornim dintr-un punct initial
0
x , in care valoarea lui ( ) y x este cunoscuta
ca o conditie initiala
0
y , se poate dezvolta ( ) y x in serie Taylor la distanta x de
acest punct. Limitand-ne la primii doi termeni, avem

' 2
0 0 0
( ) ( ) ( ) ( ) y x x y x x y x x + = + +0 (7.2)
Notand x cu h, (pasul de esantionare) si pe
'
0
( ) y x cu
1
k , neglijand
termenii de ordin superior putem afla valoarea lui ( ) y x in punctul
0
x h +

0 0 1
( ) ( ) y x h y x hk + = + (7.3)
in care, conform relatiei 269H(7.1)


1
( , )
n n
k f x y = (7.4)

Figura 7.1 Metoda Euler de ordinul I pe un subinterval

Putem repeta procedeul plecand acum din punctul
0
x h + si determinam
valoarea lui ( ) y x intr-un punct
0
2 x h + , si asa mai departe.
Notand in general
0 n
x nh x + = si
0
( )
n
y x nh y + = rezulta ca , pornind de la
conditia initiala cunoscuta
0 0
( ) y x y = , putem calcula succesiv valorile lui ( ) y x intr-
un numar oarecare de puncte echidistante dintr-un interval [ , ] a b prin formule similare
cu 270H(7.3) si 271H(7.4):

1 1 n n
y y hk
+
= + (7.5)

1 0 0
( , ) k f x y = (7.6)
Pasul este dat de

b a
h
N

= (7.7)
unde N este numarul de diviziuni ale intervalului, iar relatiile sunt cu atat mai exacte
cu cat acest numar este mai mare. Intr-adevar, conform relatiei 272H(7.2), eroarea la
fiecare interval este
2
2
2
( )
( )
b a
h
N

=


0 0 si deoarece erorile se cumuleaza la fiecare
interval si avem N intervale, eroarea totala este

2
2
( ) 1
( ) ( )
t
b a
N h h
N N


= =


0 0 0 (7.8)

Figura 7.2 Metoda Euler de ordinul I pe intregul interval

Datorita faptului ca eroarea este proportionala cu puterea intai a pasului de
esantionare, deci destul de mare, metoda nu prezinta importanta practica, dar poate
conduce la generalizari cu caracteristici superioare, care vor fi prezentate in cele ce
urmeaza.


7.2 Metode Euler de ordinul I I

Din figura 7.1 se observa ca eroarea de estimare a valorii lui ( ) y x in punctul
urmator celui curent poate fi destul de mare daca derivata intai variaza rapid. De aceea
ar fi avantajos sa se ia in consideratie si derivata a doua a lui ( ) y x , obtinand-se astfel
formule Euler de ordinul II. Deoarece derivata a doua nu se cunoaste si nici nu se
poate calcula direct deoarece chiar functia de derivat este necunoscuta, se va proceda
pe o cale indirecta.
Astfel, se observa ca daca am lua in considerare un punct intermediar
n
x h + ,
cu (0,1) , si daca s-ar folosi in relatia 273H(7.5) derivata
2
k in acest punct, s-ar putea
ca pentru un corespunzator sa se obtina o eroare de semn invers fata de cea data de
derivata in punctul
n
x , ca in figura 7.3. O medie ponderata a acestor doua derivate ar
putea da o panta

1 1 2 2
k wk wk = + (7.9)
(cu ponderile
1
w si
2
w cuprinse intre 0 si 1) care sa conduca chiar in punctul corect,
1
( )
n
y x
+
,anuland eroarea. Din pacate, nici panta
2
k in punctul
n
x h + , data conform
ecuatiei explicite 274H(7.1) de
[ ]
, ( )
n n
f x h y x h + + , nu se cunoaste deoarece nu se
cunoaste valoarea functiei ( )
n
y x h + in acest punct. Am putea insa aproxima pe
( )
n
y x h + dupa formula de ordinul I

1
( )
n n
y x h y hk + +
Totusi, nici aceasta nu da o valoare exacta pentru ( )
n
y x h + ; cea corecta s-ar
obtine daca am lua o alta abscisa,
n
x h + , in care apare o noua necunoscuta, , dar
asigura egalitatea
1
( )
n n
y x h y hk + = + . Rezumand, vom folosi urmatoarul sistem:

1 1 1 2 2
( )
n n
y y h wk wk
+
= + + (7.10)

[ ]
1
,
n n
k f x y = (7.11)

[ ]
2 1
,
n n
k f x h y hk = + + (7.12)


Figura7.3 Pantele necesare pentru metoda Euler de ordinul II

Exista patru necunoscute,
1
w,
2
w , si , pentru aflarea carora sa punem
urmatoarea conditie: dezvoltarea in serie Taylor a lui ( )
n
y x h + in punctul
n
x
trebuie sa coincida cu relatia 275H(7.10), in care pe
2
k il dezvoltam de asemenea in
serie in punctul
n
x .
Sa dezvoltam mai intai pe y:

2
' ' ' 3
1
( ) ( ) ( )
2!
n n n n
h
y y hy x y x h
+
= + + +0 (7.13)
Conform relatiilor 276H(7.1) si 277H(7.4), avem
'
1
( ) ( , )
n n n
y x f x y k = = , iar derivata a
doua se poate scrie pornind de la aceleasi relatii:

' ' ' '
( , ) ( , )
( ) ( , ) ( )
n n n n
n n
f x y f x y
y x f x y y x
x x y y x y

= = +
= =

si notand derivatele partiale in raport cu x si y cu
xn
f respectiv
yn
f obtinem

' '
1
( )
n xn yn
y x f f k = + (7.14)
Rezulta ca dezvoltarea in serie Taylor are forma

2 2
1 1 1
2 2
n n xn yn
h h
y y hk f f k
+
= + + + (7.15)
Sa consideram acum relatia 278H(7.10) in care de asemenea dezvoltam in serie
Taylor pe
[ ]
2 1
,
n n
k f x h y hk = + + , conform relatiei 279H(7.12), ca functie de doua
variabile, in jurul punctului ( ) ,
n n
x y

[ ]
2 1
( , ) ( , )
, ...
n n
n n
f x y f x y
k f x y h hk
x x y y x y


= + + +
= =
(7.16)
Limitandu-ne la acesti primi termeni, si tinand seama de definitiile precedenta
obtinem

2 1 1 xn yn
k k hf hk f = + +
care introdusa in relatia 280H(7.10) conduce la
( )
2 2
1 1 1 2 1 2 2 1 n n xn yn
y y h wk wk h w f h w k f
+
= + + + + (7.17)
Identificand asa cum am propus relatiile 281H(7.13) si 282H(7.17) dupa puterile lui h
obtinem urmatoarele conditii:

1 2
2
2
1
1
2
1
2
w w
w
w

+ =

(7.18)
Avand numai trei ecuatii si patru necunoscute, sistemul este nedetermiant si va
trebui sa alegem o valoare pentru una dintre necunoscute, ceea ce va face insa
imposibila anularea erorii, realizand totusi o micsorare puternica a acesteia. Sunt mai
raspandite doua alegeri posibile, care vor fi prezentate in continuare.
Alegand ponderi egale, rezulta
1 2
1
2
w w = = , de unde 1 = = , deci
algoritmul devine:

1 2
1
2
n n
k k
y y h
+
+
= + (7.19)

[ ]
1
,
n n
k f x y = (7.20)

[ ]
2 1
,
n n
k f x h y hk = + + (7.21)
definind o metoda Euler de ordinul II pe care o putem numi metoda pantei de mijoc.
Alegand pe
1
2
= , rezulta
2
1 w = ,
1
0 w = si
1
2
= , deci algoritmul devine:

1 2 n n
y y hk
+
= + (7.22)

[ ]
1
,
n n
k f x y = (7.23)

2 1
,
2 2
n n
h h
k f x y k

= + +


(7.24)

definind o metoda Euler de ordinul II pe care o putem numi metoda punctului de
mijoc.
Conform relatiei 283H(7.13) termenii neglijati sunt de ordinul
3
h , acestia dand
eroarea pe fiecare interval, astfel ca eroarea totala pe
b a
N
h

= intervale va fi:

2
2
1
t
h
N
(7.25)
deci mult mai mica (de N ori) decat la metoda de ordinul I.

Cl ear@"`"D;
H Probl ema Cauchy: y' @xD=f @x, yD L
f @x_, y_D = yHx+1L Cos@xD;
yi = 1; H Condi ti a i ni ti al a L
xi = 0. 2; xf =4. ; H I nterval ul L
Np= 100; H Numar de puncte de eval uare L
h=
xf xi
Np
; H Pasul L
y@0D = yi ;
Y= 88xi , yi <<; H Li sta de i nterpol are a sol uti ei L
H membrul drept al ecuati ei L
ForAm= 0, m Np1, m++,
xm= xi + mh; H Punctul curent pe absci sa L
K1= f @xm, y@mDD;
K2= f @xm+h, y@mD +hK1D;
y@m+1D =y@mD +
h
2
HK1+ K2L; H Formul a Eul er cu panta medi e L
AppendTo@Y, 8xm+h, y@m+1D<D;
E;
g1= Li stPl ot@Y, Pl otJ oi ned True, Pl otStyl e Bl ueD;
Pri nt@YD;
H Veri f i carea, pri n comparati e cu sol uti a anal i ti ca, daca aceasta exi sta L
sol @x_D = DSol ve@8y' @xD y@xD Hx+1L Cos@xD, y@xi D yi <, y@xD, xD@@1, 1, 2DD
H Sol uti a anal i ti ca L
g2= Pl ot@sol @xD, 8x, xi , xf <, Pl otStyl e Bl ackD;
Show@g1, g2D;
erabs = 8<;
For@n= 1, n Np, n++, AppendTo@erabs, 8Y@@n, 2DD N@sol @xi +Hn1L hDD<D; D;
Pri nt@Max@Abs@erabsDDD;



H Probl ema: y' @xD=y@xD Hx+1LCos@xD L
f @x_, y_D = yHx+1L Cos@xD;
yi = 1; H Condi ti a i ni ti al a L
xi = 0. 2; xf =4. ; H I nterval ul L
Np= 100; H Numar de puncte de eval uare L
h=
xf xi
Np
; H Pasul L
y@0D = yi ;
Y= 88xi , yi <<; H Li sta de i nterpol are a sol uti ei L
ForAm= 0, m Np1, m++,
xm= xi + mh; H Punctul curent pe absci sa L
K1= f @xm, y@mDD;
K2= f Axm+
h
2
, y@mD+
h
2
K1E;
y@m+1D =y@mD +h H K2L; H Formul a Eul er cu punct medi u L
AppendTo@Y, 8xm+h, y@m+1D<D;
E;
g3= Li stPl ot@Y, Pl otJ oi ned True, Pl otStyl e Bl ueD;
Show@g2, g3D;
erabs = 8<;
For@n= 1, n Np, n++, AppendTo@erabs, 8Y@@n, 2DD N@sol @xi +Hn1L hDD<D; D;
Pri nt@Max@Abs@erabsDDD;



7.3 Metode Runge-Kutta

Metoda prezentata anterior si pe care am denumit-o Euler de ordinul 2 mai
este denumita si metoda Runge-Kutta de ordinul 2. De fapt ea este o generalizare a
metodei Euler si in acelasi timp un caz particular al domeniului mult mai vast al
metodelor de tip Runge Kutta.
Ideea fundamentala a metodei Euler de ordinul 2, dupa cum s-a vazut, are
doua componente:
a) Impartirea unui interval in subintervale, aproximarea pantei cautate printr-o
medie ponderata a mai multor pante. Astfel daca se folosesc numai doua
pante, se obtine o metoda numita de ordinul 2, cu panta data de relatia 284H(7.9)
1 1 2 2
k wk wk = + .
Daca s-ar folosi mai multe pante, s-ar obtine metode de ordin superior, m,
printr-o generalizare de tipul:

1
m
i i
i
k wk
=
=

(7.26)
b) Fiecare panta se determina din cea precedenta, fiind o aproximare din ce in ce
mai buna a pantei corecte. Astfel, la metoda de ordinul 2, prima panta se
determina direct conform metodei Euler de ordinul 1, prin relatia 285H(7.4)
1
( , )
n n
k f x y = , iar a doua panta se determina pe baza acesteia, prin relatia
286H(7.12) [ ]
2 1
,
n n
k f x h y hk = + + .
Generalizand, o panta de ordinul m se poate obtine din panta de ordin
1 m printr-o relatie de tipul:


1
1
1
,
i
i n i n ij i
j
k f x h y hk

=

= + +

(7.27)

unde
1 10
1, , 1, 1, 0 i m j i = = = = .

In functie de valoarea lui m se obtin metode de diverse ordine, denumite
metode de tip Runge-Kutta. Desigur, pot exista multe metode de acest tip, dar in
practica s-au impus pe scara larga metodele de ordinul 4, abreviate de obicei ca
RK4.
Trebuie observat ca pe masura ce ordinul creste, dezvoltarile in serie Taylor
287H(7.13) si 288H(7.17) folosite in paragraful precedent pentru gasirea
coeficientilor , , w si k trebuie sa cuprinda termeni pana la ordinul m, astfel ca
expresiile finale de tipul 289H(7.17) devin din ce in ce mai complexe. De exemplu,
pentru deducerea metodei RK4, tinand seama de expresiile derivatelor functiilor
compuse pana la ordinul 4, expresiile finale au aproximativ dimensiunea unei
pagini. Acest calcul poate fi facut prin algebra computerizata folosind programul
Mathematica, dar chiar si prelucrarea si interpretarea rezultatului este o operatiune
laborioasa; efortul pe care ar trebui sa il depuna cursantul pentru parcurgerea
acestei demonstaratii este prea mare in comparatie cu beneficiul pedagogic, astfel
ca ea nu va fi prezentata amanuntit in acest material.
Pe de alta parte, numarul de necunoscute creste din ce in ce mai mult in raport
cu numarul de ecuatii pe masura ce ordinul creste, astfel ca sunt necesare alegeri
arbitrare pentru multe dintre acestea, generand pentru fiecare ordin in parte o clasa
de metode RK.
Deoarece precizia obtinuta nu mai creste liniar peste ordinul 4, asa cum am
mentionat acesta este ordinul cel mai des utilizat, iar alegerea parametrilor se face
utilizand in general valori de tip 1/ 2
i
= . Rezulta printr-un procedeu analog cu
cel prezentat in paragraful precedent, urmatoarea schema larg raspandita de tip
RK4, bazata pe astfel de alegeri:

( )
( )
1 1 2 3 4
1
2 1
3 2
4 3
( 2 2 )
6
,
,
2 2
,
2 2
,
n n
n n
n n
n n
n n
h
y y k k k k
k f x y
h h
k f x y k
h h
k f x y k
k f x h y hk
+
= + + + +
=

= + +



= + +


= + +
(7.28)

Cl ear@"`"D;
H y' @xD=y@xD Hx+1LCos@xD; ODE sub f orma expl i ci ta L
f = yHx+1L Cos@xD; H Forma expl i ci ta f ara argumente L
y@0D = 1; H Condi ti a i ni ti al a L
xM= 4. ; x0=0; H I nterval ul L
Np= 40; H Numarul de puncte al es pe i nterval L
h=
xMx0
Np
; H Pasul L
Y= 880, y@0D<<; H Punctul i ni ti al al graf i cul ui sol uti ei L
ForAm= 0, m Np1, m++, H al gori tmul RK4 i n f i ecare punct L
xm= mh;
K1= f . 8x xm, y y@mD<;
K2= f . 9x xm+
h
2
, y y@mD+
h
2
K1=;
K3= f . 9x xm+
h
2
, y y@mD+
h
2
K2=;
K4= f . 8x xm+h, y y@mD +hK3<;
y@m+1D =y@mD +
h
6
HK1+2K2+2 K3+ K4L;
AppendTo@Y, 8xm+h, y@m+1D<D; E;
H Y conti ne l i sta cu punctel e sol uti ei L
g1= Li stPl ot@Y, Pl otJ oi ned Fal seD; H reprezentarea graf i ca a sol uti ei L
H Se i nterpol eaza l i sta construi nd pol i nomul de i nterpol are Lagrange L
p@x_D : =
i =1
Np+1
Y@@i , 2DD
i
k
j
j
j
j

j =1
i 1
x Y@@j , 1DD
Y@@i , 1DD Y@@j , 1DD
y
{
z
z
z
z

i
k
j
j
j
j

j =i +1
Np+1
x Y@@j , 1DD
Y@@i , 1DD Y@@j , 1DD
y
{
z
z
z
z
;
g2= Pl ot@Eval uate@p@xDD, 8x, x0, xM<, Pl otStyl e RedD;
Show@g1, g2D;
Pri nt@"PHxL=", N@Expand@p@xDDDD;
H I n conti nuare se cal cul eaza eroarea maxi ma L
Cl ear@x, yD;
H Aceasta ecuati e are sol uti e anal i ti ca exacta L
sol = DSol ve@8y' @xD y@xD Hx+1L Cos@xD, y@0D 1<, y@xD, xD@@1, 1, 2DD;
nl = 10 Np; H Se esanti oneaza i ntrun numar suf i ci ent de puncte L
h1=
xMx0
nl
; H Pas mai f i n de esanti onare L
ert = 8<; H Li sta erori l or L
z@x_D = sol ;
For@n= 1, n nl , n++, AppendTo@ert, 8p@x0+h1nD z@x0+h1nD<D; D;
Pri nt@Max@Abs@ertDDD;
H Se af i seaza eroarea absol uta maxi ma L


Metoda RK4 este inca dominanta in rezolvarea ecuatiilor diferentiale cu
conditii initiale, fiind uneori combinata cu alte metode in cazul problemelor mai
dificile sau care solicita o precizie foarte mare.

7.4 Algoritmi adaptivi

Pentru imbunatatirea performatelor metodelor directe de rezolvare a ecuatiilor
diferentiale prezentate anterior se recomanda utilizarea acestora in conjunctie cu
algoritmi adaptivi, cu pas variabil. Aceste procedee tin seama de compromisul care
trebuie in general efectuat in metodele de aproximatie numerica la esantionarea unui
interval: daca pasul de esantionare este prea mare, viteza este de asemena mare, dar
precizia este mica si invers.
Principiul metodei consta in calculul initial al unui punct cu un pas relativ
mare, care ar asigura o viteza ridicata, apoi recalcularea punctului respectiv cu un pas
injumatatit. Dupa compararea celor doua rezultate se va lua o decizie: daca diferenta
este sub o anumita limita (de ordinul de marime al erorii admise), se trece la
urmatorul punct, iar daca diferenta este mai mare decat cea admisa, se injumatateste
din nou pasul si se reia calculul aceluiasi punct. In acest fel, pe portiunile cu variatii
lente, pasul va putea sa aiba valori suficient de mari pentru a nu se pierde timp in mod
inutil, iar pe portiunile critice pasul va fi ajustat automat pana la obtinerea preciziei
dorite. De obicei se limiteaza numarul de injumatatiri admise, deoarece este posibil pe
de o parte ca in unele cazuri sa nu se obtina convergenta, iar in altele calculul sa
dureze prea mult. De remarcat ca dupa o prima injumatatire, pentru a se ajunge in
acelasi punct
1 n
x
+
este necesar calculul in 2 puncte, dupa inca o injumatatire in 4
puncte, apoi in 8, s.a.m.d. ceea ce poate accentua problemele de viteza in cazul unor
functii neconvenabile.

7.5 Extrapolarea Richardson prin metoda Burlich-Stoer

Un alt procedeu puternic de imbunatatire a performantelor metodelor de
rezolvare a ecuatiilor diferentiale este dat de metoda Burlich-Stoer de extrapolare
Richardson. Ideea de baza a extrapolarii Richardson in acest caz este de a calcula
valoarea functiei in punctul urmator
1 1
( )
n n
y x h
+
+ folosind mai intai un pas
1
p
b a
h
N

=
(unde , a b si
p
N sunt respectiv capetele intervalului si numarul de puncte din
interval), si apoi repetarea calculului folosind valori
k
h din ce in ce mai mici pentru
pas. Rezultatele
1
k
h
n
y
+
obtinute intr-un anumit punct
1 n
x
+
pot forma perechi cu valorile
respective ale lui
k
h sub forma:
1 2
1 1 1 2 1
{ , },{ , },...,{ , },
m
h h h
n n n m
y h y h y h
+ + +
iar aceste puncte pot
fi folosite pentru o interpolare, de exemplu polinomiala, care permite calculul valorii
functiei pentru 0 h= , (care ar corespunde valorii corecte). Valorile pasilor trebuie
alese in asa fel incat de fiecare data, pornind din
n
x sa se ajunga la acelasi
1 n
x
+
la care
se ajunsese cu pasul initial. Propunerea Burlich-Stoer pentru marirea numarului de
subintervale este:
1 1 1 1 1 1
, , , , , ,...
2 4 6 8 12 16
k
h h h h h h
h = deci nu o simpla injumatatire care ar
creste prea rapid numarul de subintervale. De asemenea, Burlich si Stoer au aratat ca
in general este mai avantajoasa interpolarea cu functii rationale decat cu polinoame.
Desi acest procedeu se poate folosi cu metode de orice ordin, de cele mai
multe ori el este asociat cu metode de ordinul 2, precizia obtinuta crescand rapid cu
numarul de subdivizari ale intervalelor.







12.4 Metode spectrale de rezolvare a ecuatiilor diferentiale ordinare