You are on page 1of 121

CUPRINS

Introducere 4
Capitolul 1 Erorile de calcul numeric 6
1.1. Surse de erori 6
1.2. Propagarea erorilor de calcul 7
1.3. Algoritmi şi complexitate de calcul 9
1.4. Metode de programare 11

Capitolul 2 Rezolvarea numerică a ecuaţiilor şi


sistemelor de ecuaţii algebrice neliniare 13
2.1. Introducere 13
2.2. Rezolvarea numerică a ecuaţiilor neliniare 13
2.2.1. Metoda aproximaţiilor succesive 13
2.1.1. Metoda Lagrange 15
2.2.2. Metoda Newton 16
2.2.3. O teoremă de punct fix 17
2.2.4. Ordinul metodei 22
2.2.5. Accelerarea convergenţei 24
2.2.5.1. Metoda Aitken 24
2.1.1.1. Metoda Steffensen 26
2.2.6. Metoda poziţiei false 28
2.2.7. Principiul dihotomiei 30
2.3. Rezolvarea numerică a sistemelor neliniare 31
2.3.1. Metoda aproximaţiilor succesive 32
2.3.2. Metoda Newton 34
2.4. Exerciţii 35

Capitolul 3 Rezolvarea sistemelor algebrice liniare 36


3.1. Introducere 36
3.2. Metode directe 36
3.2.1. Metoda de eliminare a lui Gauss 36
3.1.1. Factorizarea LU 40
3.2.2. Factorizarea Cholesky 42

1
3.3. Metode iterative 43
3.3.1. Metoda iterativă Jacobi 44
3.3.2. Metoda iterativă Gauss-Seidel 46
3.3.3. Metoda relaxării 48
3.4. Exerciţii

Capitolul 4 Rezolvarea numerică a problemelor


algebrice de valori şi vectori proprii 49
4.1. Abordarea elementară a subiectului 49
4.2. Aspecte teoretice generale 50
4.2.1. Clase speciale de matrici 51
4.1.1. Punerea corectă a problemei 52
4.3. Metoda lui Jacobi 54
4.4. Probleme de valori proprii generalizate 60
4.5. Exerciţii 61

Capitolul 5 Aproximarea funcţiilor prin polinoame 62


5.1. Introducere 62
5.2. Aproximarea prin interpolare 62
5.2.1. Interpolarea polinomială Lagrange 63
5.1.1. Algoritmul Aitken 65
5.2.2. Evaluarea restului la interpolarea Lagrange 67
5.2.3. Diferenţe divizate 69
5.2.4. Formula lui Newton de interpolare 70
5.2.5. Diferenţe finite 72
5.2.6. Formule de interpolare pe noduri echidistante 72
5.2.7. Interpolarea polinomială Hermite 74
5.2.8. Interpolarea prin funcţii spline 76
5.3. Aproximarea în sensul celor mai mici pătrate 78
5.3.1. Problema fundamentală a aproximării liniare 78
5.3.2. Teoreme fundamentale 79
5.3.3. Aproximarea discretă în sensul celor mai mici pătrate 80
5.4. Exerciţii 82
Capitolul 6 Rezolvarea ecuaţiilor diferenţiale ordinare
de ordinul I 83
6.1. Introducere 83

2
6.2. Metode 84
6.2.1. Metoda Euler 84
6.2.1. Metoda Euler backward 84
6.3. Generalizări 85
6.3.1. Metode Runge – Kutta 85
6.3.1.1. Metoda clasică Runge – Kutta de ordin 4 85
6.3.1.2. Metode Runge – Kutta explicite 86
6.3.1.3. Metode Runge – Kutta ajustative 87
6.3.1.4. Metode Runge – Kutta implicite 87
6.3.2. Caracteristici 87
6.4. Metode alternative 88
Capitolul 7 Integrarea numerică 90
7.1. Introducere 90
7.2. Integrarea în puncte echidistante 95
7.2.1. Formulele Newton – Cotes 98
7.2.1. Metoda dreptunghiurilor 98
7.2.2. Regula trapezului 99
7.2.3. Metoda Romberg 100
7.2.4. Regula Simpson 101
7.2.5. Metoda ajustativă Simpson 103
7.3. Integrarea în puncte neechidistante 104
7.3.1. Cvadratura gaussiană 108
7.3.1. Cvadratura tanh – sinh 108
7.3.2. Cvadratura Clenshaw – Curtis 109
7.3.3. Cvadratura Fejer 112
7.3.4. Cvadratura ajustativă 112
7.4. Integrarea cu funcţii pondere 114
7.5. Metoda Nystrom 115
7.6. Formula Euler – MacLaurin 116
7.7. T - integrarea 121
Bibliografie 122

INTRODUCERE

3
Ultimele decenii au fost marcate de progresul mijloacelor de calcul.
Asistăm la o competiţie între dezvoltarea tehnologică şi dezvoltarea
aplicaţiilor, în particular, a celor numerice. Tehnica de calcul a devenit
accesibilă pentru categorii tot mai largi de utilizatori. Globalizarea accesului
la magistralele informaţiilor organizate în reţeaua Internet a dat o nouă
dimensiune utilizării calculatoarelor, revoluţionând domenii întregi de
activitate.
Obiectul calculului numeric îl reprezintă găsirea unor metode de
aproximare eficientă a soluţiilor problemelor care pot fi exprimate prin
modele matematice, eficienţă ce depinde de precizia cerută pentru rezultate
şi de uşurinţa implementării. Calculul numeric este una dintre disciplinele
matematice ce depinde în cea mai mare măsură de calculatorul numeric.
Drumul parcurs pentru rezolvarea unei probleme dintr-un domeniu
oarecare cu ajutorul calculatorului constă în: stabilirea unui model matematic
al problemei concrete (model ce se poate încadra într-o categorie cum ar fi: o
ecuaţie neliniară, un sistem de ecuaţii liniare sau neliniare), care fiind de
multe ori de natură continuă trebuie discretizat; soluţia problemei discretizate
trebuie să fie consistentă şi stabilă (robustă); modelul discretizat trebuie
transpus într-un algoritm realizabil şi eficient, descris de obicei într-un
limbaj de programare evoluat.
Calculul numeric operând cu mărimi variate presupune folosirea
tipului real a cărui reprezentare în calculator este aproximativă, apărând erori
de rotunjire care se propagă. Deci, o metodă numerică trebuie aleasă ţinând
seama de convergenţă, stabilitate, propagarea erorilor şi de analiza
complexităţii algoritmului asociat.
Pentru parcurgerea şi utilizarea unui asemenea material, cititorul are
nevoie de cunoştinţe de matematică la îndemâna studenţilor care au
promovat primul an de studiu al oricărei facultăţi cu profil tehnic,
matematico-informatic sau economic.
Metodele numerice sunt prezentate în detaliu, prin discutarea
aspectelor de ordin strict matematic şi descrierea algoritmilor cu ajutorul
unui limbaj de tip pseudocod.
Lucrarea „Calcul numeric” are şapte capitole.
Primul capitolul are un caracter eterogen – la început se prezintă
sursele de erori şi propagarea lor, apoi algoritmi şi complexitate de calcul, iar
în final, metode de programare.
Capitolul al doilea are ca obiect rezolvarea numerică a ecuaţiilor şi
sistemelor de ecuaţii algebrice neliniare. Sunt prezentate metode de
localizare a soluţiei, de aproximaţii succesive şi de accelerare a convergenţei
pentru ecuaţii neliniare, precum şi metode numerice de rezolvare a
sistemelor algebrice neliniare.

4
Capitolul al treilea este dedicat rezolvării numerice a sistemelor
algebrice liniare. Sunt examinate metode directe bazate pe factorizarea
gaussiană, precum şi metode de aproximare.
În capitolul al patrulea se prezintă metode de tip Jacobi de rezolvare
numerică a problemelor algebrice de valori şi vectori proprii, precum şi
generalizarea lor.
În capitolul al cincilea se prezintă aproximarea funcţiilor prin
interpolare de tip Lagrange, Hermite şi prin funcţii spline, precum şi
aproximarea în sensul celor mai mici pătrate.
În cel de al şaselea capitol sunt prezentate câteva metode numerice de
rezolvare a ecuaţiilor cu derivate parţiale, iar în utimul capitol sunt
prezentate diferite metode pentru integrarea numerică.

CAPITOLUL 1
Erorile de calcul numeric

5
1.1. Surse de erori
Suntem în posesia unui număr suficient de mare de metode numerice
pentru a considera mai în detaliu problema erorilor de calcul numeric. Se
observă că o formulă de calcul numeric se aplică de obicei în mod repetat. În
consecinţă, prezintă importanţă nu numai eroarea introdusă într-o etapă, ci şi
tendinţa de a amplifica sau, dimpotrivă, de a atenua erorile introduse
anterior, adică stabilitatea metodei numerice.
Erorile inerente sunt erorile legate de cunoaşterea aproximativă a
unor valori provenite din măsurători sau din faptul că avem de-a face cu
numere iraţionale. Rezultatul oricăror calcule depinde şi de precizia datelor
introduse iniţial. Ca erori inerente pot fi considerate şi erorile de conversie
făcute la trecerea în baza 2 a unor numere care se introduc în memoria
calculatoarelor numerice. De exemplu, numărul 0.1 reprezentat printr-un
număr finit de zecimale în baza 10, devine o fracţie zecimală periodică în
baza 2 (0.110 = 0.0(0011)2).
Erorile de metodă sau erorile de trunchiere sunt provenite din
aproximaţiile făcute la deducerea formulelor de calcul. De exemplu, restul la
interpolarea polinomială, distanţa | x n  l | la rădăcină, din metodele iterative
de calcul, etc. Spre deosebire de erorile inerente, erorile de metodă pot fi
reduse, în principiu, oricât de mult.
Erorile de rotunjire sunt legate de posibilităţile limitate de
reprezentare a numerelor în calculatoarele numerice. În calculator se pot
reprezenta numere cu un număr de cifre semnificative în funcţie de lungimea
cuvântului (măsurată în biţi) utilizat la stocarea unui număr.
În memoria internă a unui calculator numeric se foloseşte
reprezentarea în virgulă mobilă, în formă normalizată. Orice număr real x se
scrie
x  m  be , | m |  1
unde m este un număr real numit mantisă, b  0 ( b  1 ) este baza sistemului
de numeraţie, iar e (întreg) este exponentul.
În forma normalizată, mantisa este cuprinsă în intervalul [b 1 ,1) (
b 1  | m |  1 ).
Excepţia de la această regulă de reprezentare este numărul zero.
Deci, un număr real cu mai multe cifre semnificative este „rotunjit” la
numărul de cifre maxim, lucru care se realizează prin rotunjirea mantisei.
Alte rotunjiri se fac în decursul operaţiilor.
Notând cu x valoarea exactă a numărului şi cu x valoarea calculată
(aproximativă), eroarea absolută e x se defineşte ca
ex  x  x ,
iar raportul e x / x se numeşte eroare relativă, notată cu  x ,

6
 x  ex / x .
Fie k numărul de cifre semnificative. Presupunem că b = 10. Atunci, un
număr x se va scrie
x  m  10 e  n  10 e  k , | m |, | n | [0.1,1) ,
unde n conţine cifrele care nu pot incluse în mantisa m.
Rotunjirea se face simetric (de obicei), adică se înlocuieşte
| n | 1 dacă | n |  0.5 , | n | 0 dacă | n |  0.5 .
În acest fel marginea erorii relative este
| n | 10 e  k / | m | 10 e  5  10  k .
Erorile cu marginea dată mai sus se fac la introducerea numerelor reale
în memoria calculatorului numeric.

1.2. Propagarea erorilor de calcul


Fie două numere, x şi y, introduse cu erorile e x , respectiv ey .
x  x  ex , y  y  e y .
Propagarea erorilor la adunare
Presupunem că se efectuează suma numerelor
x  y  x  y  ex  e y ,
astfel încât eroarea relativă la sumare este
e x  y /( x  y )  (e x  e y ) /( x  y )  x /( x  y ) x  y /( x  y ) y ,
adică o sumă ponderată a erorilor introduse la reprezentarea în calculator a
cantităţii sumate. Notăm cu  s eroarea introdusă suplimentar la
reprezentarea sumei x  y . Eroarea relativă totală la sumare,  ts , va fi
 ts  x /( x  y ) x  y /( x  y ) y   s .
Propagarea erorilor la scădere
Presupunem că se efectuează scăderea numerelor
x  y  x  y  ex  e y ,
astfel încât eroarea relativă la scădere este
e x  y /( x  y )  (e x  e y ) /( x  y )  x /( x  y ) x  y /( x  y ) y ,
adică o diferenţă ponderată a erorilor introduse la reprezentarea în calculator
a diferenţei. Notăm cu  d eroarea introdusă suplimentar la reprezentarea
diferenţei x  y . Eroarea relativă totală la scădere,  td , va fi
 td  x /( x  y ) x  y /( x  y ) y   d .
2
Fie x  , y  0,6665 şi k  4 . Să se calculeze e x  y .
3
Avem x  0,6666 , y  y , deci
2
 0,6666 y y
xx 3 , y   0.
x    0,0001 y
x 0,6666

7
0.6666
 x y   0,0001   d  0,6666   d
2 .
 0,6666
3
Această eroare relativă a lui x  y se propagă în toate calculele
ulterioare.
Propagarea erorilor la înmulţire
Presupunem că se efectuează produsul numerelor
xy  ( x  e x )( y  e y )  x y  ye x  x e y ,
unde s-a neglijat produsul e x e y considerat ca având un ordin de mărime
suficient de mic. Eroarea la înmulţire este
e xy / x y  e x / x  e y / y   x   y .
Deci la înmulţire erorile relative introduse iniţial se adună. Pot apărea
noi erori, deoarece produsul xy poate avea un număr de cifre semnificative
mai mare decât cel admis, necesitând o nouă rotunjire. Notând cu  p
această nouă eroare, vom obţine eroarea relativă totală  tp la înmulţirea a
două numere
 tp   x   y   p ,
iar ca margine a erorii
|  tp |  |  x |  |  y |  |  p |  15  10  k ,
acoperitoare deoarece erorile se compun după legi probabilistice.
Eroarea totală la calculul expresiei E  ( x  y ) z a cărei valoare
aproximativă este ( x  y ) z este
 tE  x /( x  y ) x  y /( x  y ) y   z   s   p ,
cu mărginirea
|  tE |  15  10  k [(| x |  | y |) / | x  y | 3] .
Propagarea erorilor la împărţire
Presupunem că se efectuează împărţirea numerelor
 2 
x  ex x  ex  e y  e y 
x / y  ( x  e x ) /( y  e y )   1    ...
 ey  y  y  y 
 .
y 1  

 
 y 
Deoarece seria este convergentă, exprimând-o liniar, obţinem
x ex x
x/ y    ey .
y x y2
Eroare la împărţire este
ex / y
e ey
 x  .
x/y x y
Notând cu  i noua eroare datorată împărţirii şi cu  ti eroarea totală la
împărţirea a două numere obţinem  ti   x   y   i .

8
1.3. Algoritmi şi complexitate de calcul
Procesele de prelucrare automată a informaţiei se caracterizează prin
natura lor algoritmică şi faptul că sunt efectuate cu ajutorul unor maşini
automate de calcul. Calculatoarele electronice sunt capabile să rezolve
problemele de calcul descompuse în operaţii elementare, precizându-se
succesiunea operaţiilor. Din această perspectivă, prin algoritm se înţelege o
mulţime finită de reguli de calcul (care constituie paşii algoritmului), care
indică operaţiile elementare necesare rezolvării unei probleme şi ordinea
efectuării lor. Orice algoritm porneşte de la datele iniţiale, pe care le
prelucrează în vederea obţinerii rezultatului problemei. Algoritmii se
caracterizează prin generalitate, finitudine şi unicitate. Oricărei probleme
care admite o formulare matematică i se poate asocia un algoritm de
rezolvare, care nu se confundă nici cu formularea matematică şi nici cu
reprezentarea sub formă unui program într-un limbaj de programare. Printre
cele mai utilizate metode de descriere a algoritmilor se numără reprezentarea
prin scheme logice şi cea cu ajutorului limbajelor de tip pseudocod. În
capitolele următoare vom folosi pentru descrierea algoritmilor un limbaj de
tip pseudocod, iar în secţiunile 1.4 şi 1.5 a acestui capitol vom prezenta, pe
scurt, câteva din metodele de programare şi câteva din elementele limbajului
de programare C în vederea implementării algoritmilor în acest limbaj de
programare. Algoritmii prezentaţi sunt exprimaţi într-un pseudocod care
posedă următoarele operaţii simple: atribuirea (variabilă  expresie), apelul
de procedură (funcţie) (execută nume (listă_parametri)), citirea (citeşte
listă_variabile), scrierea (scrie listă_expresii) şi în următoarele structuri de
control: secvenţa ({instrucţiune_1 ... instrucţiune_n}), selecţia unară (dacă
condiţie atunci instrucţiune), selecţia binară (dacă condiţie atunci
instrucţiune_1 altfel instrucţiune_2), selecţia multiplă (alege selector dintre
valoare1:intrucţiune1 … valoaren:instrucţiunen), iteraţia cu număr prestabilit
de ciclări (pentru contor  expresie_1:expresie_2 repetă instrucţiune),
iteraţia pretestată (cât timp condiţie repetă instrucţiune), iteraţia posttestată
(repetă instrucţiune până când condiţie).
Vom înţelege prin problemă algoritmică o funcţie total definită
P : I  F , unde I este mulţimea informaţiilor iniţiale (intrările problemei) iar
F este mulţimea informaţiilor finale. Presupunem că I şi F sunt cel mult
numărabile. Dacă i  I este precizat, atunci determinarea lui P (i ) se
numeşte o instanţă a problemei P. Vom folosi pentru o instanţă notaţia p şi
prin abuz de notaţie vom scrie „ p  P ”. Un algoritm care rezolvă problema
P va porni de la o codificare a unei instanţe oarecare a problemei P şi va
oferi o codificare a rezultatului.
Din multitudinea de algoritmi existenţi pentru rezolvarea unei
probleme se va alege cel mai „performant”, adică să fie uşor de înţeles,

9
codificat, modificat, depanat şi să utilizeze în mod eficient resursele.
Eficienţa unui algoritm este evaluată prin timpul consumat în unitatea
centrală şi memoria ocupată, iar pentru algoritmii cu specific numeric mai
sunt consideraţi şi factori precum precizia şi stabilitatea numerică. Deoarece
analizăm performanţele unui algoritm şi nu performanţele unor calculatoare
şi nici software-ul folosit, vom exprima timpul consumat în număr de
operaţii (în virgulă mobilă). Vom nota prin T  T A ( p) numărul de operaţii
efectuate de algoritmul A pentru rezolvarea instanţei p şi vom asocia
problemei rezolvate un număr g (P ) numit dimensiunea problemei –
reprezentând numărul datelor de intrare.
Resursa timp se exprimă ca o funcţie de dimensiunea problemei,
funcţie numită complexitatea în timp a algoritmului T  f (n) . Această
funcţie este polinomială sau exponenţială, iar dacă dimensiunea problemei
creşte la infinit se obţine complexitatea asimptotică în timp a algoritmului.
Comportarea în cazul cel mai nefavorabil a algoritmului A pe o intrare de
dimensiune n este
T A (n)  sup{TA ( p) : p  P şi g ( p )  n} ,
iar comportarea medie a algoritmului este
T Amed (n)  M ({T A ( p) : p  P şi g ( p )  n})
(adică media variabilei aleatoare T A ( p ) ).
Deoarece determinarea exactă a lui T A (n) este dificilă vom căuta
margini superioare şi inferioare pentru T A (n) . Pentru funcţia f : N  N ,
O ( f )  {g g : N  N, c  R , c  0, n0  N : g (n)  cf (n), n  n0 }
( f )  {g g : N  N, c  R , c  0, n0  N : g (n)  cf ( n), n  n0 }
( f )  {g g : N  N, g  O( f )  ( f ) } .
Vom spune că P are complexitatea O ( f (n)) dacă există un
algoritm A care rezolvă problema P şi are complexitatea T A (n)  O( f (n)) .
O problemă P are complexitatea ( f (n)) dacă orice algoritm A care
rezolvă problema P are complexitatea T A ( n)  ( f ( n)) . Un algoritm A cu
T A ( n)  ( p ( n)) , unde p este un polinom în n, se numeşte polinomial. Un
algoritm care nu este polinomial se numeşte exponenţial. Astfel algoritmii cu
complexitate exponenţială sunt irealizabili, în timp ce algoritmii polinomiali
de grad mai mare decât 2 sunt nepractici. Importanţa practică a acestora
rezultă şi din următorul exemplu. Presupunem că un pas necesită 10 6
secunde, adică O (1)  10 6 secunde, atunci pentru n = 40,
un algoritm cu funcţia de complexitate n necesită 0.00004 secunde,
un algoritm cu funcţia de complexitate n 5 necesită  1.7 minute,
un algoritm cu funcţia de complexitate n 6 necesită  129 ani (!).

10
1.4. Metode de programare
Vom prezenta un scurt istoric al unor metode de programare, dar nu
exhaustiv. Am considerat necesar acest lucru, în vederea implementării
ulterioare, în limbaje de evoluate de programare, a algoritmilor prezentaţi în
lucrare. O clasificare cronologică ar fi următoarea: programarea artizanală,
procedurală, modulară, structurată, prin abstractizarea datelor şi orientatǎ pe
obiecte.
Programarea artizanală este prima modalitatea de programare, în
care iniţiativa şi experienţa programatorului joacă un rol important, fiecare
programator îşi are propriile reguli de programare, iar programele au un
singur corp de instrucţiuni, sunt lungi şi greu de înţeles.
Programarea procedurală are la bază utilizarea procedurilor (care
se mai numesc şi subprograme sau subrutine – unităţi distincte de program)
care trebuie parametrizate cu anumite variabile numite parametri formali a
căror valori de apel se numesc parametri efectivi. Procedurile realizează o
abstractizare prin parametri (ele trebuie să fie generale deci procesarea să
facă abstractizare de valorile datelor). La apelare o procedură funcţionează
după principiul cutiei negre (se cunosc intrările şi ieşirile, rezultatele din
acestea dar nu şi modul de transformare). Sunt proceduri care definesc o
valoare de revenire (numite şi funcţii) şi proceduri care nu definesc o valoare
de revenire.
Programarea modulară are la bază elaborarea programelor pe
module. O colecţie de funcţii înrudite (funcţiile obţinute în urma programării
unei subprobleme – componentă a descompunerii arborescente a problemei
date în subprobleme mai simple), împreună cu datele pe care le prelucrează
în comun formează un modul. Deoarece o parte din datele utilizate în comun
de funcţiile modulului nu sunt necesare şi în alte module ele sunt protejate
(ascunse în modul).
Programarea structurată. Descompunerea unei probleme în
subprobleme mai simple se face succesiv în mai multe etape, până când
subproblemele sunt direct programabile sub forma unor proceduri sau
module. Această descompunere, numită rafinare pas cu pas, este o
descompunere arborescentă. În cadrul procedurilor se folosesc anumite
structuri de control a execuţiei. Prelucrarea de bază în cadrul acestor structuri
de control este cea de atribuire. Această abordare a programării s-a născut
din necesitatea eliminării saltului necondiţionat, determinându-l pe Dijsktra
să impună D-structurile de control:
secvenţa (în care prelucrările se execută în ordinea scrierii lor);
iteraţia pretestată (cât timp o condiţie este adevărată execută o
prelucrare, prelucrare ce trebuie să modifice valoarea de adevăr a condiţiei);
alternativa simplă (dacă o condiţie este adevărată execută o
prelucrare).

11
S-a demonstrat (Bohm şi Jacopini) că orice algoritm se poate descrie
doar cu D-structurile, dar pentru o mai bună lizibilitate şi înţelegere a
programelor sursă s-au adăugat şi iteraţia posttestată, iteraţia cu un număr
prestabilit de ciclări, alternativa binară şi alternativa generalizată.
Programarea prin abstractizarea datelor propune metodologii în
care conceptele deduse din analiza problemei să poată fi reflectate cât mai
fidel în program. În general un tip abstract de date are două componente:
datele membru – care reflectă reprezentarea tipului şi funcţiile membru –
care reflectă comportamentul tipului.
Programarea orientată spre obiecte. În cadrul structurilor
ierarhice, unde conceptele sunt strâns legate între ele, nu este suficientă doar
legătura dintre concepte în care datele membru ale unei clase pot fi obiecte
ale unei alte clase. Exprimarea ierarhiilor conduce la atribute suplimentare
cum sunt cele de moştenire, atribute care conduc la un model nou de
programare numit programare orientată obiect. În vârful ierarhiei se află
fenomenul sau forma de existenţă care are trăsături comune pentru toate
celelalte componente ale ierarhiei respective. Pe nivelul următor al ierarhiei
se află componente care pe lângă trăsăturile comune de pe nivelul superior,
mai au trăsături specifice. O ierarhie are, de obicei, mai multe nivele, iar
situarea unui element pe un nivel sau altul al ierarhiei este uneori o problemă
complexă.
CAPITOLUL 2
Rezolvarea numerică a ecuaţiilor şi sistemelor de
ecuaţii algebrice neliniare

2.1. Introducere
Forma generală a unei ecuaţii (sistem de ecuaţii) algebrice neliniare
este:
f ( x)  0
unde f este o funcţie vectorială pe X  R n , n  1 , cu n componente:
f ( x )  ( f1 ( x ), f 2 ( x ),..., f n ( x ))T , iar x este vectorul necunoscutelor cu n
componente x  ( x1 , x 2 ,..., x n ) . Pentru n  1 , notând x1  x , avem o
ecuaţie algebrică neliniară sau transcendentă, cu o necunoscută.

2.2. Rezolvarea numerică a ecuaţiilor neliniare


Fie f : R  R o funcţie dată (în anumite cazuri, f va fi o funcţie de la C
la C).
Presupunând că avem funcţia reală de argument real
f : [ xmin , xmax ]  R ,

12
orice valoare   [ x min , x max ] pentru care f ()  0 se numeşte rădăcină
(soluţie) a ecuaţiei f ( x)  0 sau zero al funcţiei f (x).
În general, prin rădăcină aproximativă a ecuaţiei f ( x)  0 se înţelege
o valoare ' apropiată de valoarea exactă  . O rădăcină aproximativă
poate fi definită în două moduri: numărul ' cu proprietatea | ' | 
(  0) sau, numărul ' cu proprietatea | f (' ) |  .
Să se găsească una sau mai multe soluţii ale ecuaţiei f ( x)  0 .
Presupunem că f este o funcţie continuă şi cu ajutorul, fie matematic, fie
experimental, se va determina un interval [a,b] în care ecuaţia are o rădăcină
şi numai una care se va nota cu  .

2.2.1. Metoda aproximaţiilor succesive


Metoda constă în construirea unui şir de aproximaţii succesive (şir de
iterare) a lui  , rădăcina exactă a ecuaţiei f ( x)  0 , de forma:
x0 = aproximaţia iniţială (dat);
x n 1  g ( x n ) ,
care să tindă la  .
Pentru a genera acest şir, se înlocuieşte ecuaţia f ( x)  0 printr-o
ecuaţie echivalentă, în intervalul considerat, x  g (x) , unde g este o funcţie
f (x)
continuă. De exemplu, x  x  f (x ) sau x  x  cu   0 . Apoi,

plecând de la x0 ales în [a,b], se construieşte:
x1  g ( x0 )

...

x n 1  g ( x n ).
Geometric, se înlocuieşte căutarea intersecţiei graficului funcţiei f cu
axa absciselor, prin căutarea intersecţiei curbei de ecuaţie y  g (x ) cu
dreapta de ecuaţie y  x .
Există numeroase moduri de a obţine metoda de aproximaţii succesive,
adică de a determina g plecând de la f.
În acest sens sunt necesare răspunsuri la întrebările:
i) şirul ( x n ) este convergent?
ii) dacă şirul converge, limita sa este  ?
Dacă ( x n ) nu-i convergent atunci metoda aleasă trebuie eliminată.
Dacă s  [a, b] (unde s  nlim xn , deoarece lim xn 1  lim g ( xn ) şi cum g
 n  n
este o funcţie continuă urmează că s  g (s ) , adică f ( s)  0 ) atunci s   .
Deci răspunsul la întrebarea ii) este orice şir.
Deoarece, din punct de vedere numeric se efectuează un număr finit de
iteraţii, este necesar să ne preocupe şi următoarele probleme:

13
iii) dacă precizia  este dată atunci este necesar să se cunoască cum se
opresc iteraţiile astfel încât această condiţie să fie îndeplinită.
iv) deoarece se cere obţinerea rapidă a rezultatului aproximativ, este
necesar să fie estimată maniera în care evoluează eroarea en  x n   în
cursul iteraţiilor.
Metoda aproximaţiilor succesive conduce la următorul algoritm.
Algoritmul 2.2.1.1.
Intrări: g = funcţia din relaţia x n 1  g ( x n )
 = precizia
x = aproximaţia iniţială
nr_max = numărul maxim de iteraţii admis
Ieşiri: x = soluţia aproximativă îndeplinind  sau nr_max
{
k 0
x0  x
x  g (x)
cât timp | x  x0 |   şi k  nr_max
{
k  k 1
x0  x
x  g (x)
}
}.

Pentru a detecta timpuriu procesele divergente şi a nu parcurge în mod


inutil numărul maxim de iteraţii nr_max, imediat după ce este calculată noua
valoare a funcţiei g (care cu semn schimbat înseamnă corecţia rădăcinii) este
comparată cu corecţia din pasul anterior (păstrată). Dacă corecţia creşte în
valoare absolută procesul este divergent.
Dăm câteva metode clasice a metodei aproximaţiilor succesive.

2.2.2. Metoda Lagrange


Metoda Lagrange se mai numeşte şi metoda de părţi proporţionale şi
constă în înlocuirea graficului funcţiei f restrâns la un interval [a,b] prin
dreapta determinată de punctele A(a, f (a )) şi B (b, f (b)) . Dreapta are
ecuaţia:
y  f (a ) f (b)  f (a )
 .
xa ba
Dacă x1 este intersecţia dreptei AB cu axa absciselor atunci:
ba
x1  a  f ( a ) .
f (b )  f ( a )

14
Presupunând că f ( x1 ) f (a)  0 atunci   [ a, x1 ] şi repetând
procedeul de mai sus, înlocuind b cu x1 obţinem:
x1  a
x2  a  f (a) .
f ( x1 )  f (a )
În general avem x n 1  g ( x n ) unde funcţia g este definită prin
xa
g ( x)  a  f (a) ,
f ( x)  f (a)
sau
af ( x)  xf ( a )
g ( x)  .
f ( x)  f (a )
2.2.3. Metoda Newton
Metoda Newton se mai numeşte şi metoda tangentei şi constă în
înlocuirea graficului funcţiei f restrâns la un interval [a,b] prin tangenta
într-un punct al graficului.
Tangenta la curbă în punctul B (b, f (b)) are ecuaţia:
y  f (b)  f ' (b)( x  b) .
Dacă x1 este intersecţia acestei tangente cu axa absciselor atunci:
f (b)
x1  b  .
f ' (b)
Se reîncepe procedeul precedent cu tangenta în punctul ( x1 , f ( x1 )) , în
general se obţine:
x n 1  g ( x n )
f ( x)
unde g ( x )  x  .
f ' ( x)
Remarca 2.2.3.1. Metoda lui Newton este bine definită dacă
f ' (b)  0 . Este suficient ca  să fie un zero simplu al lui f, căci, dacă f '
este continuă şi x n „suficient de aproape” de  vom avea f ' ( x n )  0 .
Metoda Newton conduce la următorul algoritm.
Algoritmul 2.2.3.1.
Intrări: f = funcţia din metodă
fd = derivata funcţiei f
 = precizia
nr_max = numărul maxim de iteraţii admis
x = aproximaţia iniţială
Ieşiri: x = soluţia aproximativă îndeplinind  sau nr_max

{
k 0
x0  x

15
x  x0  f ( x0 ) / fd ( x0 )
cât timp | x  x0 |   şi k  nr_max
{
k  k 1
x0  x
x  x0  f ( x0 ) / fd ( x0 )
}
}.
Dacă pe parcursul procesului iterativ se anulează derivata funcţiei
atunci se execută o iteraţie de „salvare” în care corecţia rădăcinii se
calculează fără a o împărţi la derivata funcţiei. Această abordare are
avantajul că rezolvă şi zerourilor de ordin superior, în care funcţia şi prima ei
derivată au zerouri comune.

2.2.4. O teoremă de punct fix


În exemplele precedente, avem următoarea situaţie:
x0 dat
x n 1  g ( x n ) .
Problema care se pune este de a alege o metodă, deci funcţia g astfel
încât şirul ( x n ) să fie convergent la  .
Este necesar ca soluţia ecuaţiei x  g (x) în intervalul [a,b] să fie
aceeaşi cu soluţia ecuaţiei f ( x)  0 în intervalul [a,b].
Are loc următorul rezultat:
Teorema 2.2.4.1. Dacă în intervalul [a,b] funcţia g verifică
următoarele condiţii:
a)pentru orice x  [ a, b] are loc g ( x)  [a, b] ;
b)g este o aplicaţie strict contractantă, adică există un număr real L:
0  L  1 astfel încât pentru x  [ a, b] , y  [ a, b] avem:
| g ( x)  g ( y) |  L | x  y |
atunci, oricare ar fi x0  [ a, b] şirul definit prin
x n 1  g ( x n )
converge spre unica soluţie  a ecuaţiei x  g (x) cu   [a, b] .
Demonstraţie.
Dacă 1 şi  2 sunt două soluţii distincte ale ecuaţiei x  g (x)
urmează că
| 1  2 |  | g (1 )  g (2 ) |  L | 1  2 | cu L  1 .
Deci | 1  2 | (1  L)  0 . Deoarece L  1 obţinem 1 =  2 .
Avem
| x n 1  x n |  | g ( x n )  g ( x n 1 ) |  L | x n  x n 1 | .

16
Deci | x n 1  x n |  Ln | x1  x0 | sau
| x n  p  x n |  | ( x n  p  x n  p 1 )  ( x n  p 1  x n  p  2 )  ...  ( x n 1  x n ) |

 | x n  p  xn  p 1 |  | x n  p 1  x n  p  2 |  ... | x n 1  x n| .

Deci
| xn  p  xn |  |x1  x0 | ( Ln  p 1  Ln  p  2  ...  Ln )

1  Lp Ln
 Ln |x1  x0 |  |x1  x0 | .
1 L 1 L
Deoarece nlim Ln  0 urmează că lim | xn  p  xn | 0 pentru p  N .
 n
Deoarece şirul ( x n ) verifică criteriul lui Cauchy urmează că el este
convergent spre limita sa  şi cum g este funcţie continuă, deoarece este
strict contractantă, această limită verifică   g () .
Dacă x n  [a, b] atunci g ( x n )  [ a, b] . Deoarece elementele şirului
( x n ) aparţin intervalului [a,b] (deoarece x0  [ a, b] ) şi ( x n ) converge,
urmează că limita sa  aparţine intervalului [a,b].
Se poate evalua eroarea făcând p să tindă spre  :
Ln
|   x n |  | x1  x0 | .
1 L
Se constată că pentru n fixat, eroarea este cu atât mai mică cu cât L se
apropie de zero, în timp ce, dacă L este apropiat de 1 eroarea se diminuează.
Dacă g este o funcţie derivabilă atunci o condiţie suficientă astfel încât
g să fie strict contractantă este următoarea.
Propoziţia 2.2.4.1. Fie g o funcţie derivabilă în [a,b]. Dacă g '
max | g ' ( x ) |  L  1
verifică x[ a, b] atunci g este o aplicaţie strict contractantă în
intervalul [a,b].
Utilizând formula creşterilor finite:
g ( x )  g ( y )  g ' ()( x  y ) cu   ( a, b) ,
| g ( x)  g ( y ) | | g ' () || x  y |  ( max | g ' ( x) |) | x  y |  L | x  y |
x[ a , b]
unde 0  L  1 .
Condiţia a) din teorema precedentă trebuie să fie îndeplinită.
1 1
Într-adevăr. Pentru funcţia g ( x)  x  , unde x  1 , g ' ( x)  1  2 ,
x x
| g ' ( x) |  c  1 , dar ecuaţia
x  g (x) nu are punct fix în intervalul
1
considerat, deoarece x  g ( x)   0 .
x

17
Intervalul [a,b] în care ipotezele teoremei de punct fix sunt verificate
este, în general greu de determinat.
Dacă se poate calcula (estima) g ' () atunci are loc următorul
rezultat.
Propoziţia 2.2.4.2. Fie  o soluţie a ecuaţiei x  g (x) cu g '
funcţie continuă. Dacă | g ' () |  0 atunci există un interval [a,b] conţinând
 pentru care şirul definit prin x0  [ a, b] şi x n 1  g ( x n ) converge la  .
Demonstraţie.
Fie 0  g ' ()  1 . Atunci, din continuitatea lui g ' , există un interval
[ p, q ] conţinând  pentru care
max | g ' ( x ) |  1
x[ p , q ] şi g ' ( x )  0 .
Funcţia g restrictivă la intervalul [p, q] este strict crescătoare şi verifică
max | g ' ( x ) |  1
x[ p , q ] .
Arătăm că dacă x  [ p, q] atunci g ( x)  [ p, q ] . Deoarece
g ( x )  [ g ( p ), g ( q )] , este suficient să arătăm că [ g ( p ), g (q )]  [ p, q ] .
Deoarece   g ( p )  g ()  g ( p )  g ' ()(  p )  0 urmează că
  g ( p )    p , adică g ( p )  p .
Similar, deoarece g (q )    g (q)  g ()  g ' ()(q  )  0 urmează
că g ( q )q.
Deci p  g ( p )  g ( q)  q .
Luând [ a, b]  [ p, q] , avem verificate ipotezele teoremei de punct fix.
Fie  1  g ' ()  0 . Atunci există un interval [ p, q ] astfel încât
max | g ' ( x ) |  1
x[ p , q ] şi g ' ( x)  0 .
Se arată şi în acest caz că sunt verificate ipotezele teoremei de punct
fix.
Şirul ( x n ) converge la  din [ a, b] .
Dăm fără demonstraţie următorul rezultat.
Propoziţia 2.2.4.3. Fie  o soluţie a ecuaţiei x  g (x) . Dacă g '
este continuă într-o vecinătate a lui  şi | g ' () |  1 , x0   , şirul definit
de x0 şi x n 1  g ( x n ) nu converge spre  .
Dacă | g ' () |  1 atunci şirul ( x n ) poate converge sau diverge.
Exemplu. Să se găsească condiţia | g ' () |  1 care asigură existenţa
unui interval [a,b], conţinând  , în care ipotezele teoremei de punct fix sunt
verificate pentru:
1) metoda aproximaţiilor succesive;
2) metoda lui Lagrange;
3) metoda lui Newton.

18
Rezolvare.
1) Fie funcţia g definită prin g ( x)  x  g ( x) . Dacă f este derivabilă
atunci g ' ( x)  1  f ' ( x ) . Condiţia | g ' () |  1 devine | 1  f ' () |  1 , adică
0  f ()  2 .
2) Fie x0  b , x n 1  g ( x n ) şi funcţia g definită prin
af ( x)  xf (a )
g ( x)  .
f ( x)  f (a )
Dacă f este derivabilă avem
(af ' ( x)  f (a))( f ( x)  f (a ))  f ' ( x)(af ( x)  xf ( a))
g ' ( x)  ,
( f ( x)  f (a)) 2
de unde
f ( a)  (  a) f ' ()
g ' ()  ,
f (a)
deoarece f ()  0 .
Dar
(a  ) 2
f ( a )  f ()  (a  ) f ' ()  f " (c ) cu c  ( a, ) ,
2
de unde
 ) 2
g ' () 
(a f " (c )
2 f (a) .
Deci | g ' () |  1 devine .
(a  ) 2 f " (c)
2 f (a )
1

3) Fie x0  b , x n 1  g ( x n ) şi funcţia g definită prin


f ( x)
g ( x)  x  .
f ' ( x)
Dacă există f " atunci
f ( x) f " ( x)
g ' ( x) 
( f ' ( x )) 2 .
Deci g ' ()  0 .
Deci există totdeauna un interval în care ipotezele teoremei de punct
fix sunt verificate, în cazul metodei tangentei.
Este mai uşoară aplicarea metodei Newton apelând la rezultatul
următor.
Teorema 2.2.4.2. Dacă f  C 2 [a, b] verifică
(1) f (a ) f (b)  0
(2) x  [ a, b] , f ' ( x)  0
(3) x  [ a, b] , f " ( x )  0
atunci alegând x 0  [ a, b] astfel încât
f ( x 0 ) f " ( x 0 )  0 , şirul ( x n ) definit prin x0 şi
x n 1  g ( x n ) converge spre unica soluţie  a ecuaţiei f ( x)  0 în
intervalul [ a, b] .
Demonstraţie.

19
Condiţiile (1), (2) şi (3) asigură existenţa şi unicitatea unei rădăcini
simple  în [a,b] a ecuaţiei f ( x)  0 .
Deoarece
f ( xn )
x n 1  x n 
f ' ( xn )
urmează că
f ( xn ) f ( ) 
x n 1    x n     xn   
f ' ( xn ) f '

(  x n
(  x n ) f ' ( x n ) 
 xn    2
f ' ( xn )
cu  n cuprins între  şi x n .
Deci x 
 

,
 f ' ( xn )  n f " ( n ) 
x n 1    ( x n  )1  2 
 f ' ( xn ) 
 
 

adică
( xn  ) 2 f " ( n )
x n 1   
2 f ' ( xn )
.
Dacă f " ( x) şi f ' ( x ) sunt de acelaşi semn pe [a,b] atunci
pentru n  0 , x n 1    0 , şirul este minorat de  plecând de la rangul 1.
Dacă f " ( x ) şi f ' ( x ) sunt de semne contrare pe [a,b] atunci
pentru n  0 , x n 1    0 , şirul este majorat de  plecând de la rangul 1.
1) Fie f " ( x)  0 pentru x  [ a, b] . Din ipoteză urmează că
f ( x0 )  0 .
a) Fie f ' ( x)  0 . Atunci şirul este minorat de  plecând de la
rangul 1.
f ( x0 )
Cum x1  x0   x0 urmează că x n   ,
f ' ( x0 )
n  N .
Deoarece f (x) nu se anulează decât pentru  , oricare din
termenii şirului sunt mai mari decât  urmează că f ( x n )
este de acelaşi semn cu f ( x0 ) , deci pozitiv.
Deci
f ( xn )
x n 1  x n   xn .
f ' ( xn )
Şirul este descrescător, minorat, deci convergent la  .
b) Fie f ' ( x)  0 . Atunci şirul este majorat de  plecând de la
rangul 1.

20
f ( x0 )
Cum x1  x0   x0 urmează că xn   ,
f ' ( x0 )
n  N .
Deoarece f (x) nu se anulează decât pentru  şi oricare
din termenii şirului sunt mai mici decât  urmează că f ( x n )
este de acelaşi semn cu f ( x0 ) , deci pozitiv.
Deci
f ( xn )
x n 1  x n   xn .
f ' ( xn )
Şirul este crescător, majorat, deci convergent la  .
2) Fie f " ( x )  0 pentru x  [ a, b] . Demonstraţia este
similară cu cea de la punctul 1).

2.2.5. Ordinul metodei


În afară de convergenţă, trebuie să ştim cât de „rapidă” este
convergenţa şirului definit prin x n 1  g ( x n ) , adică cum se diminuează
eroarea en  x n   în următoarea iteraţie.
Aceasta ne conduce la următoarea definiţie a ordinului metodei.
Definiţia 2.2.5.1. Metoda definită prin x n 1  g ( x n ) este de
| e n 1 |
ordin p, dacă are limită în mulţimea numerelor reale strict pozitive
| en | p
când n tinde spre   .
Explicaţia acestei definiţii.
e n 1  x n 1    g ( xn
p
( xn  )
 g ( p)
p!
sau
2
en
e n 1  e n g ' ( )  g " (
2!
.
Metoda este, deci, de ordinul p, dacă şi numai dacă:
g ' ( )  g " ( )  ...  g ( p 1) ()  0 şi
( p)
g ()  0 .
 Metoda aproximaţiilor succesive este de ordinul 1 (adică
convergenţa este liniară)
Într-adevăr. Se cunoaşte, din exemplul 1, că 0  f ' ()  2 .
 Dacă f " (c )  0 atunci metoda Lagrange este de ordinul 1.
Rezultă imediat din exemplul 2.
 Metoda lui Newton este de ordinul cel puţin 2.

21
Teorema 2.2.5.1.
Dacă  este un zero simplu atunci metoda Newton este de ordinul cel
puţin doi.
Verificare.
Avem g ' ()  0 .
Deoarece
( f ' ( x) f " ( x)  f ( x) f ' ' ' ( x))( f ' ( x )) 2  2 f ' ( x) f " ( x) f ( x ) f " ( x)
g" ( x) 
( f ' ( x)) 4
f " ()
urmează că g " ()  .
f ' ()
Dacă  este un zero simplu al lui f atunci f ' ()  0 .
Dacă f " ()  0 atunci g " ()  0 altfel ordinul
metodei este mai mare decât 2.
Pentru metodele de ordinul doi se mai spune încă: convergenţă este
pătratică.
Ordinul depinde atât de metoda aleasă cât şi de natura zeroului.
Propoziţia 2.2.5.1. Dacă  este un zero al lui f de multiplicitate
f ( x)
m, metoda iterativă definită prin x n 1  g ( x n ) cu g ( x)  x  m este de
f ' ( x)
ordinul cel puţin doi.

Verificare.
În loc să considerăm ecuaţia f ( x)  0 care admite  ca soluţie de
multiplicitate m, se poate lua | f ( x) |1 / m  0 care admite  ca soluţie
simplă.
Metoda Newton este atunci definită prin:
f 1 / m ( x)
x n 1  g ( x n ) cu g ( x)  x  ,
( f 1 / m ( x))'
adică
f 1 / m ( x) f ( x)
g ( x)  x   xm
1 f ' ( x) .
1 1
f m ( x) f ' ( x)
m

2.2.6. Accelerarea convergenţei


2.2.6.1. Metoda Aitken
Remarca 2.2.6.1.1. În metoda aproximaţiilor succesive şi metoda
Lagrange eroarea este de forma
e n 1  ( A   n ) e n ,

22
unde:
A  g ' () , 0  | A |  1 şi lim  n  0 .
n 
Verificare.
În metoda aproximaţiilor succesive:
g ( x )  x  f ( x ) , x n 1  x n  f ( x n ) , e n 1  e n  f ( x n ) ,
 f ( xn ) 
g ' ( x )  1  f ' ( x ) , en 1  en  g ' ( x n )  f ' ( x n )  .
 en 
 f ( xn )  f ( xn )  f ()
lim  n  lim  f ' ( xn )    lim f ' ( xn )  lim ,
n  n   en  n   n  en
lim  n  lim f ' ( xn )  f ' ()  0 .
n n
A  g ' ()  1  f ' () .
Din exemplul 1 urmează că 0  | A |  1 .
În metoda Lagrange:
af ( x)  xf ( a )
g ( x)  .
f ( x)  f (a )
Din exemplul 2 urmează că 0 | A |1, unde
A  g ' ( ) 
(a  ) 2 f " (c )
2 f (a) cu c  ( a, ) .
af ( x n )  xn f (a ) (a  ) f ( x n )  en f (a )
x n 1  , e n 1  ,
f ( xn )  f (a ) f ( x n )  f (a)
en 1  ( g ' ()   n )en .
(a  ) f ( x)  ( x  ) f ( a )
Fie H ( x)  .
( x  )( f ( x)  f (a ))
(a  ) f ' ( x)  f (a) (a  ) f ' ()  f (a)
lim H ( x)  lim  .
x x   f ( x)  f (a )  f ' ( x)( x  )  f (a)
f (a )  (  a ) f ' ()
lim  n  lim H ( x n )  0.
n  x  f (a)
Dacă presupunem  n  0 atunci
x n 1    A( x n  )

x n  2    A( x n 1  ).
Deci
x n  2  x n 1  A( x n 1  x n ) ,
adică
x  x n 1
A  n2 .
x n 1  x n
Deci

23
1

( xn 1  Ax n ),
1 A
1
  xn  ( xn 1  xn ),
1 A
( xn 1  xn ) 2
  xn  .
xn  2  2 xn 1  xn
Adică, dacă  n  0 atunci soluţia se obţine numai după două iteraţii
succesive.
Fie  n  0 . Este de aşteptat ca şirul ( x' n ) definit prin:
( x n 1  x n ) 2
x'n  xn 
x n  2  2 x n 1  x n
să aproximeze mai bine rădăcina  decât x n .
Teorema 2.2.6.1.1. Dacă ( x n ) este un şir care converge la 
având ordinul de convergenţă unu atunci şirul ( x' n ) definit prin
( x n 1  x n ) 2 x ' n 
x'n  xn  converge mai repede, adică lim  0.
x n  2  2 x n 1  x n n   xn  
Demonstraţie.
Deoarece ( x n ) are ordinul de convergenţă unu avem
en 1  ( A   n )en cu 0  | A |  1 şi lim  n  0 . Deci
n 
en  2  ( A   n 1 )( A   n )en
xn  2  2 xn 1  xn  ( xn  2  )  2( xn 1  )  ( xn  )
 e n  2  2e n  1  e n
 (( A   n 1 )( A   n )  2( A   n )  1)en
 (( A  1) 2   n )en
cu
 n  ( n 1   n ) A  2 n   n 1 n .
Deci nlim n  0 .

La fel, xn 1  x n  en 1  en  ( A  1   n )en .
Deci
( x n 1  x n ) 2 ( A  1   n ) 2 en2
x ' n   x n     en 
x n  2  2 x n 1  x n (( A  1) 2   n )en
e (( A  1) 2   n )  ( A  1   n ) 2 en   2 n ( A  1)   2n
 n  en n .
( A  1) 2   n ( A  1) 2   n

24
x ' n 
Deci lim  0.
n   xn  

( x n 1  x n ) 2
Metoda definită de x' n  xn  se numeşte metoda lui
x n  2  2 x n 1  x n
Aitken.

2.2.6.2. Metoda Steffensen


Dacă se aplică procedeul de accelerare a convergenţei al lui Aitken
şirului definit prin x n 1  g ( x n ) avem că x' n este o aproximare mai bună a
lui  decât x n . Este, deci, natural să continuăm înlocuind x n cu x' n , apoi
de a calcula g ( x' n ) şi g ( g ( x' n )) pentru a aplica accelerarea lui Aitken.
Aceasta revine la a calcula succesiv:
y n  x'n
y n 1 g ( y n )
y n  2  g ( y n 1 )
deci
( y n 1  y n ) 2
x ' n 1  y n  .
y n  2  2 y n 1  y n
Se poate defini x ' n 1 în funcţie de x' n plecând de la g:
( g ( x ' n )  x' n ) 2
x ' n 1  x ' n 
g ( g ( x ' n ))  2 g ( x' n )  x ' n
ceea ce se poate scrie:
x' n g ( g ( x' n ))  ( g ( x' n )) 2
x ' n 1  .
g ( g ( x' n ))  2 g ( x' n )  x' n
Aceasta este metoda Steffensen, care se poate defini formal prin
funcţia G care dă procesul iterativ:
xg ( g ( x ))  ( g ( x )) 2
G ( x)  .
g ( g ( x ))  2 g ( x )  x
Are loc următorul rezultat:
Teorema 2.2.6.2.1.
Fie  o rădăcină simplă a ecuaţiei x  g (x) .
Dacă metoda generată de g este de ordinul unu atunci metoda
Steffensen este de ordinul cel puţin doi.
Dacă metoda generată de g este de ordinul p  1 atunci metoda
Steffensen este de ordinul 2 p  1 .
Demonstraţie.
Pentru g  C p 1 , în vecinătatea lui  , avem

25
e2
g (   e)    eg ' ()  g " ()  ... 
2!
.
(k )
g ()
Notând cu xk  avem
k!
g (  e)    x1  e  x 2  e 2  ...  x p e p  O (e p 1 ) .

Dacă ordinul metodei este 1, adică x1  0 , deoarece


g ( g (  e))    x1  (ex1  x 2 e 2 )  x 2 (ex1 ) 2  O(e 3 )
atunci
dacă x1  1 .
G (  e)    O (e 2 )
Deci metoda Steffensen este de ordinul cel puţin 2.
Dacă ordinul metodei este p  1 , adică x1  x2  ...  x p 1  0 atunci
g (   e )    x p e p  O ( e p 1 ) ,
2 2
g ( g (  e))    x pp 1e p  O ( e p 1 ) ,
G (  e)     x 2p e 2 p 1  O (e 2 p ) ,
adică metoda Steffensen este de ordinul 2 p 1.
Metoda Steffensen furnizează următorul algoritm.
Algoritmul 2.2.6.2.1.
Intrări: g = funcţia din metoda neaccelerată
 = precizia
nr_max = numărul maxim de iteraţii admis
x = aproximaţia iniţială
Ieşiri: x = soluţia aproximativă îndeplinind  sau nr_max
{
k 0
x0  x
x1  g ( x0 )
x 2  g ( x1 )
x  x0 ( x1  x 0 ) 2 /( x 2  2 x1  x0 )
cât timp | x  x0 |   şi k  nr_max
{
k  k 1
x0  x
x1  g ( x0 )
x 2  g ( x1 )
x  x0 ( x1  x 0 ) 2 /( x 2  2 x1  x0 )
}
}.

26
2.2.7. Metoda poziţiei false
Metoda Newton prezintă inconvenientul de a calcula derivata lui f. Se
poate ca această derivată f ' să fie dificil de calculat. Atunci, se înlocuieşte
derivata f ' ( x n ) printr-o aproximaţie în funcţie de valori ale lui f.
De exemplu
f ( x n )  f ( x n 1 )
f ' ( xn )  .
x n  x n 1
Aceasta este metoda falsei poziţii (corzii).
Atunci avem
f ( x n )( xn  x n 1 )
x n 1  x n  ,
f ( x n )  f ( x n 1 )
x f ( x n )  x n f ( xn 1 )
xn 1  n 1 .
f ( x n )  f ( x n 1 )
Se remarcă că x n 1 se obţine în funcţie de x n 1 şi x n şi nu numai în
funcţie de x n , ca în cazul metodelor precedente.
Dacă se compară cu metoda Lagrange definită prin:
af ( x n )  x n f ( a)
x n 1 
f ( x n )  f (a )
se remarcă că metoda poziţiei false se obţine din metoda Lagrange înlocuind
a cu x n 1 .
Se poate, deci, prevedea că ordinul metodei poziţiei false va fi mai bun
decât al metodei Lagrange, dar mai puţin bun decât al metodei Newton.
Are loc
Teorema 2.2.7.1.
Ordinul metodei poziţiei false este
1 5
p ,
2
dacă f ' ()  0 şi f " ()  0 .
Demonstraţie.
Avem:
x f ( x n )  x n f ( x n 1 )  f ( x n )  f ( x n 1 )
x n 1    n 1 ,
f ( x n )  f ( x n 1 )
e f ( xn )  en f ( x n 1 )
en 1  n 1 .
f ( x n )  f ( x n 1 )
Dacă f ' ()  0 şi f " ()  0 atunci

27
( x n  ) 2
f ( x n )  ( x n  ) f ' ()  f " ()  ( x
2!
.
Atunci:
2
en
e n 1 (e n f ' ()  f " ()
e n 1  2

(e n  e n 1 ) f ' (

(e n  e n 1 ) f "
e n 1 
(e n  e n 1
.
Pentru n tinzând spre infinit urmează că en 1 ~ ken en 1 , unde
.
f " ( )
k 
2 f ' ()

Ordinul metodei falsei poziţii este p, dacă avem


| e n 1 |
lim  c cu c  0 .
n   | en | p

Deci:
| en 1 |~ c | en | p şi | en |~ c | en 1 | p ,
de unde
2
| en 1 |~ c p 1 | en 1 | p .
Înlocuind în | en 1 |~ k | en || en 1 | , obţinem:
c p p 2  p 1
e ~ 1,
k n 1
oricare ar fi k şi en 1 , deci p trebuie să verifice
p2  p 1  0 ,
adică
1 5
p .
2

2.2.8. Principiul dihotomiei


Dacă este relativ uşor de a verifica condiţiile în  pentru a asigura
convergenţa şirului de iteraţii, este în general greu de a alege x0 - iteraţia
iniţială. Procedeul dihotomiei permite să se determine valoarea x0 în
vecinătatea lui  .
Fie  o rădăcină a ecuaţiei f ( x)  0 cu f continuă.
Dacă există un interval închis [a,b] astfel încât f ( a) f (b) să fie
negativ, există cel puţin o rădăcină în intervalul [a,b]. Dacă în plus f este
strict monotonă în acest interval atunci această rădăcină este unică.

28
ab
Se poate atunci considera punctul , mijlocul intervalului [a,b] şi
2
ab
calcula f   şi localiza  în noul interval având pentru extremităţi
 2 
ab
şi punctul a sau b după cum f (a ) sau f (b) este de semn contrar lui
2
ab
f  . La fiecare iteraţie se înjumătăţeşte lungimea intervalului. La
 2 
ba
începutul iteraţiei n, lungimea intervalului era .
2n
Această metodă furnizează următorul algoritm.
Algoritmul 2.2.8.1.
Intrări: a, b = capetele intervalului
f = funcţia
 = precizia
Ieşiri: x = rădăcina localizată
{
x  ( a  b) / 2
cât timp
| f ( x ) |   şi b  a  
{
dacă
f ( a ) f ( x)  0
atunci
bx
altfel
ax
x  ( a  b) / 2
}
}.

2.3. Rezolvarea numerică a sistemelor neliniare


Pentru mai multă claritate, ne limităm la sisteme de două ecuaţii cu
două necunoscute. Se constată că teoria este identică cu cea a ecuaţiilor
înlocuind x  R cu X  R 2 şi valoarea absolută în R cu norma în R 2 .
Fie f1 şi f 2 două aplicaţii în D  R 2  R .
Se caută   (1 , 2 ) astfel încât

29
f1 (1 ,  2 )  0
f 2 (1 , 2 )  0.
Domeniul D se va alege astfel încât să existe în D o soluţie  şi numai
una a sistemului.

2.3.1. Metoda aproximaţiilor succesive


f ( x, y )  0
Fie sistemul 
 f1 ( x , y )  0 echivalent cu sistemul:
 2
 x  x  f1 ( x , y )
 y  y  f ( x , y ).
 2

Aceasta ne conduce, luând ( x0 , y 0 )  D :


 x1  x0  f1 ( x0 , y 0 )
y  y
 1 0  f 2 ( x 0 , y 0 ).

Iterând, obţinem
 x n 1  x n  f1 ( x n , y n )  g1 ( x n , y n )
y
 n 1  y n  f 2 ( x n , y n )  g 2 ( x n , y n ).

Punând X  ( x, y ) ,
F ( X )  ( f1 ( X ), f 2 ( X ))
G ( X )  ( g1 ( X ), g 2 ( X )) ,
atunci iteraţia se scrie:
X n 1  X n  F ( X n )  G ( X n ) .
Drept normă luăm: X  x 2  y 2 .
Dăm fără demonstraţie următorul rezultat:
Teorema 2.3.1.1. Fie mulţimea închidă D  R 2 . Dacă
1) X  D  G ( X )  D ;
2) există o constantă L: 0  L  1 astfel încât:
X , Y  D , G ( X )  G (Y )  L X  Y
atunci şirul definit prin X 0  D , X n 1  G ( X n ) este convergent şi limita sa
aparţine lui D.
O condiţie suficientă pentru ca G să fie o aplicaţie contractantă este
dată de următoarea teoremă.
Teorema 2.3.1.2. Dacă g1 şi g 2 sunt funcţii cu derivate parţiale
continui în D, atunci,
X 1 , X 2  D , G ( X 1 )  G ( X 2 )  L X 1  X 2
2 2 2 2
unde L  max g '1x  g '1 y  g ' 2 x  g ' 2 y .
X D
Demonstraţie.
Inegalitatea G ( X 1 )  G ( X 2 )  L X 1  X 2 este echivalentă cu
2 2
G ( X 1 )  G ( X 2 )  L2 X 1  X 2 , adică

( g1 ( x1 , y1 )  g1 ( x2 , y 2 )) 2  ( g 2 ( x1 , y1 )  g 2 ( x2 , y 2 )) 2  L2 (( x1  x 2 ) 2  ( y1  y 2 ) 2 )
.

30
Utilizând formula creşterilor finite avem:
g1( x1, y1)  g1( x2 , y2 )  ( x1  x2 ) g '1x ( x , y )  ( y1  y2 ) g '1 y ( x , y ) ,
unde x  ( x1 , x 2 ) şi y  ( y1 , y 2 ) .
Deci:
( g1 ( x1 , y1 )  g1 ( x 2 , y 2 )) 2  (ac  bd ) 2
unde a  g '1x ( x , y ), b  g '1 y ( x , y ), c  ( x1  x 2 ), d  ( y1  y 2 ) .
( ac  bd ) 2  g '12x ( x , y )( x1  x 2 ) 2  g '12y ( x , y )( y1  y 2 ) 2 
 2 g '1x ( x , y )( x1  x 2 ) g '1 y ( x , y )( y1  y 2 ).
(ac  bd ) 2  ( a 2  b 2 )(c 2  d 2 ) .
Deci
( g1 ( x1 , y1 )  g1 ( x 2 , y 2 )) 2  ( g '12x ( x , y )  g '12y ( x , y ))((x1  x 2 ) 2  ( y1  y 2 ) 2 ),
( g 2 ( x1 , y1 )  g 2 ( x 2 , y 2 )) 2  ( g ' 22 x ( x , y )  g ' 22 y ( x , y ))((x1  x 2 ) 2  ( y1  y 2 ) 2 ).
Deci:
( g 1 ( x1 , y1 )  g 1 ( x 2 , y 2 )) 2  ( g 2 ( x1 , y1 )  g 2 ( x 2 , y 2 )) 2  max ( g '1
2 2
x  g '1
X D
 (( x1  x 2 ) 2  (

Metoda aproximaţiilor succesive conduce la următorul algoritm.


Algoritmul 2.3.1.1.
Intrări: n = număr de necunoscute
g = procedura de evaluare G ( X )
 = precizia
nr_max = numărul maxim de iteraţii admis
X = aproximaţia iniţială
Ieşiri: X = soluţia aproximativă îndeplinind  şi nr_max
{
k 0
X0  X
execută g ( n, X 0)
cât timp X  X 0   şi k  nr_max
{
k  k 1
X0  X
execută g ( n, X 0)
}
}.

2.3.2. Metoda Newton


Metoda Newton în cazul unei ecuaţii f ( x)  0 poate fi interpretată
astfel: plecând de la o valoare x n aproximând soluţia  , se caută o creştere
 astfel ca f ( x n  )  0 .

31
De fapt, utilizând formula Taylor şi neglijând termenii de ordinul 2,
obţinem:
f ( x n )  f ' ( x n )  0 ,
f ( xn ) f ( xn )
de unde    şi deci x n 1  x n  .
f ' ( xn ) f ' ( xn )
Pentru sisteme se procedează la fel. Se dezvoltă fiecare din cele două
funcţii în serie Taylor şi se neglijează termenii de ordinul  2 .
Plecând de la ( x n , y n ) , căutăm 1 ,  2 astfel ca:
 f1 ( x n  1 , y n   2 )  0
 f (x
 2 n  1 , y n   2 )  0.

Dezvoltăm în serie Taylor şi neglijăm termenii de ordinul 2:


 f1 ( x n , y n )  1 f '1x ( x n , y n )   2 f '1 y ( x n , y n )  0
 f (x , y )   f '
 2 n n 1 2 x ( x n , y n )   2 f ' 2 y ( x n , y n )  0.

Deci, (1 ,  2 ) trebuie să verifice următorul sistem:


1 f '1x ( x n , y n )   2 f '1 y ( x n , y n )   f1 ( x n , y n )
 f '
 1 2 x ( x n , y n )   2 f ' 2 y ( x n , y n )   f 2 ( x n , y n ).

 f '1x ( x n , y n ) f '1 y ( x n , y n ) 
Fie J ( xn , y n ) J ( x n , y n )  
matricea  .
 f ' 2 x ( x n , y n ) f ' 2 y ( xn , y n ) 
Dacă determinantul lui J ( x n , y n ) (matricea lui Jacobi) este diferit de zero
  1
( xn , y n ) 1  . Atunci
f
atunci sistemul are o soluţie şi numai una  1    J
 2  f
 2
metoda Newton devine:
( x0 , y 0 )
xn 1  xn  1
y n 1  y n   2 .
Şi în cazul sistemelor, metoda Newton este de ordin cel puţin 2. Pentru
  f 
a evita inversarea matricii jacobiene, avem J ( x n , y n ) 1    1  .
 f  2  2
Un algoritm furnizat de metoda Newton este:
Intrări: n = numărul de necunoscute
f = procedura de evaluare a lui ( f1 ( X ), f 2 ( X ))
J = procedură de calcul a matricii jacobiene
 = precizia
nr_max = numărul maxim de iteraţii admis
X = aproximaţia iniţială
Ieşiri: X = soluţia aproximativă îndeplinind  şi nr_max
{
k 0
dX  0
repetă

32
k  k 1
X 0  X  dX
execută f ( n, X 0, b)
b  b
execută J (n, X 0, A)
execută Gauss (n, A, b) /* Eliminarea Gauss
execută Sist_Tr ( n, A, b, dx) /*Rezolvarea sistemelor
triunghiulare
X  X0
până când dX  sau k > nr_max
}.

2.4. Exerciţii
1) Fie ecuaţia x 3  x 2  1  0 . Precizaţi un interval [ k , k  1] , k  Z în
care se găseşte o singură rădăcină reală, apoi determinaţi cu o eroare 
această rădăcină folosind metodele:
a) metoda lui Newton;
b) metoda coardei.
2) Câţi paşi sunt necesari pentru determinarea rădăcinii reale a ecuaţiei
e x  x 2  2  0 , x  [1,2; 1,5] cu o aproximaţie de 10 6 , prin metodele:
a) metoda lui Newton;
b) metoda coardei.
3) Să se rezolve sistemul neliniar
 x1  3 lg x1  x12  0

2 x1  x1 x 2  5 x1  1  0

x 
  3,4
folosind metoda lui Newton cu iteraţia iniţială X 0   0     .
 0   2,2 
y

CAPITOLUL 3
Rezolvarea sistemelor algebrice liniare

3.1. Introducere
Un sistem de ecuaţii algebrice liniare poate fi scris sub forma
n
 aij x j  bi , i  1,..., m
j 1
unde aij  R sunt coeficienţi, xj sunt necunoscutele sistemului, iar bi sunt
termenii liberi.
Sunt posibile situaţiile:

33
(i) dacă m  n atunci trebuie aleşi n – m parametri pentru a obţine o
soluţie;
(ii) dacă m  n atunci se caută o soluţie care să minimizeze
2
m  n 
  bi   aij x j  ;
i 1  j 1 
(iii) pentru m = n, dacă det A  0 atunci sistemul are o soluţie unică
altfel (adică, det A  0 ) atunci sistemul poate avea o infinitate de soluţii sau
poate să nu aibă nici o soluţie.
Metodele de rezolvare sunt de două feluri: directe (sau exacte) în care
soluţia este obţinută după un număr de operaţii dinainte cunoscut şi metode
iterative, care utilizând o aproximaţie iniţială o îmbunătăţeşte de la o etapă
la alta.

3.2. Metode directe


Ca exemple de metode directe se pot aminti metoda lui Cramer bazată
pe calculul determinanţilor, metoda de eliminare a lui Gauss, metoda
factorizării directe. Deşi în esenţă foarte simplă, metoda lui Cramer se
dovedeşte cu totul ineficientă sub aspectul numărului de operaţii şi nu este în
general implementată.

3.2.1. Metoda de eliminare a lui Gauss


Fie un sistem de n ecuaţii liniare cu n necunoscute scris sub forma
Ax  b , unde A este o matrice pătrată, nesingulară, de dimensiune n  n , iar
x şi b sunt vectori coloană de dimensiune n.
Metoda constă în a obţine zerouri sub diagonala principală a matricii A
succesiv, întâi pe prima coloană, apoi pe coloana a doua ş.a.m.d., pe ultima
linie a lui A rămânând doar coeficientul a nn - modificat de operaţiile de
eliminare anterioare. Un pas (etapă) k al metodei constă în obţinerea de
zerouri sub diagonala principală, în coloana k a matricei A. Etapa este
simbolizată prin indice superior atât pentru matricea A cât şi pentru vectorul
b. Notăm, iniţial, A (1)  A şi b (1)  b .
În urma pasului k  1 al fazei eliminării, sistemul are forma
echivalentă

34
 a (1) a (1)  a1(1k) a1(1k)1  a1(1n)   b (1) 
 11 12  1 
 0 a ( 2) ( 2)  x1   ( 2) 
 a 2(2k) a 2(2k)1 a2n
 x2   b2 

 22
           
 0 ( k 1) ( k 1) ( k 1)  x   ( k 1)
0  a kk akk 1  a kn  k   bk 
  x   
 0 0  a k(k11k) a k( k11k)1  a k(k11n)  k 1   bk( k11) 
  
      x n    
 ( k 1) ( k 1) ( k 1)   ( k 1) 
 0 0  a nk ank 1  a nn   bn 
La pasul k ( k  1, 2, ..., n  1 ) este eliminată necunoscuta x k din
ultimele n – k ecuaţii şi sistemul este adus la forma
 a (1) a (1)  a (1) a (1) (1) 
 11 12 1k 1k 1  a1n   b (1) 
( 2)  1   (2) 
x 1
 0 a ( 2)  a ( 2) a ( 2)
 22 2k 2 k 1  a 2n  x 2  b2 
  
            
 (k ) (k ) (k )  
0 0  a kk a kk 1  a kn  x k    bk (k ) 
 
(k )  x 
a k 1n  k 1   bk 1 
(k ) (k )
 0 0 0 0 a k 1k 1 
   
        x n   ( k ) 
 (k ) (k )  b 
 0 0 0 0 a nk 1  a nn   n 
În final se obţine sistemul
A ( n) x  b ( n ) ,
în care matricea A (n ) este superior triunghiulară.
Sistemul se rezolvă prin metoda substituţiei inverse potrivit relaţiilor
 bn(n)
 xn 
 ann(n)

 x   b (i)  n a (i) x  / a (i) , i  n  1, ..., 1 .
 i  i ji1 ij j  ii
  

Sistemul Ax  b poate fi transformat într-un sistem superior


triunghiular echivalent (adică cu matricea sistemului triunghiulară superior)
folosind rezultatele următoarei teoreme:
Teorema 3.2.1.1. Dacă A (k )  (aij )1 i , j  k , A ( k )  R k  k , cu
k  1, 2, ..., n sunt nesingulare, atunci există T  R n  n , nesingulară şi
inferior triunghiulară astfel încât matricea T  A  U este superior
triunghiulară.
Demonstraţie. Fie T  Tn 1  Tn  2  ...  T2  T1 un produs de matrici
elementare de forma Tk  I n  t k ekT , în care I n este matricea unitate, ek

35
este coloana k a lui I n , iar t k   0  0 t k 1k  t nk  T , în care
ultimele n  k elemente sunt neprecizate deocamdată.
Înmulţind la stânga matricea sistemului A cu matricea de transformare
T obţinem
T  A  Tn 1  Tn  2  ...  T2  T1  A ,
sau exprimat printr-o secvenţă de transformări elementare:
A1  A
A2  T1  A1
...
Ak 1  Tk  Ak
...
An  Tn 1  An 1
în care fiecare operaţie anulează elementele subdiagonale din coloana k ale
matricei Ak :

1 0  0  0   a11 a12  a1k  a1n 


0 1  0  0   0 a 22  a 2k  a 2n 
             
0 0  1  0    0 0  a kk  a kn   Ak 1
0 0   t k 1k 0  0 0  a


 k 1k  a k 1n 
             
0 0   t nk  1  0 0  a  a nn 
 nk
Tk  Ak  Tk  a1 a2  a k  a n    Tk a1 Tk a 2  Tk a k  Tk a n 
,
unde ai este coloana i a matricei Ak .
 
Tk a k  I n  t k eTk a k  a k  a kk  t k .
Componenta i a coloanei transformate Tk a k este:
pentru i  k
a 'ik  aik  a kk  t ik  
a
aik  a
 ik kk  t ik pentru i  k .

Remarcăm faptul că, în timpul transformării, primele k componente nu


se modifică, fiind afectate numai elementele subdiagonale.
Din condiţia de anulare a acestora urmează
a
t ik  ik , pentru i  k  1, ..., n ,
a kk
determinându-se vectorul t k , deci şi matricea Tk .
Coloanele a j ( j  k ) se vor modifica astfel:
 
Tk a j  I n  t k eTk a j  a j  a kj  t k ,
iar pe componente:

36
a
a'i  aij  a kj  t ik  aij  a kj  ik , j  k  1, ..., n , i  k  1, ..., n .
a kk
Coloanele a j ( j  k ) au elementele subdiagonale deja anulate (
a kj  0 pentru j  k ) astfel că transformarea le lasă nemodificate:
Tk a j  a j .
Metoda de triangularizare şi substituţia inversă conduc la un
O ( n 3 ) - algoritm.
Algoritmul 3.2.1.1.
Intrări: n = dimensiunea sistemului
A = matricea sistemului
b = vectorul termenilor liberi
Ieşiri: A = matricea sistemului triunghiular
b = termenii liberi ai sistemului triunghiular
x = vectorul necunoscutelor
{
pentru k  1 : n  1
pentru i  k  1 : n
{
t  aik / a kk
a i , k : n  ai , k : n  t  a k , k : n
bi  bi  t  bk
}
pentru i  n : 1
{
suma  suma + ai, i 1:n  xi 1:n
xi  (bi - suma) / aii
}
}.
În implementarea algoritmului eliminării gaussiene, la fiecare pas k al
eliminării se efectuează împărţirea liniei pivot k la elementul diagonal a kk .
În practică, este posibil ca acest element să fie egal cu zero, situaţie în care
este imposibilă continuarea algoritmului. Erorile de rotunjire în calculul
elementelor matricii A (k ) sunt cu atât mai mici cu cât elementul pivot a kk
este mai mare în valoare absolutǎ. Astfel, se efectueazǎ pivotarea parţialǎ pe
coloane, ceea ce pentru pasul k al eliminării revine la a găsi elementul maxim
al matricei A ( k 1) situat pe coloana k şi liniile i  k , adică
| a k | max | aik | şi permută între ele liniile  şi k. Permutarea a două linii
k i  n

sau coloane dintr-o matrice se poate face prin înmulţirea cu o matrice de


permutare care diferă de matricea unitate prin: a  a kk  0 , ak  ak  1 .

37
Astfel înmulţirea: A'  Pk A are ca efect permutarea liniilor  şi k din
matricea A, în timp ce: A"  A  Ak , produce
permutarea coloanelor k şi  .
Căutarea elementului maxim în valoare absolută în submatricea
delimitată de ultimele n  k  1 linii şi coloane duce la performanţe mai bune
de stabilitate numerică. Astfel se efectuează pivotarea totală.

3.2.2. Factorizarea LU
Fiind dată matricea A  (aij ) , i, j  1, 2, ..., n a unui sistem
nesingular ne propunem să descompunem această matrice în produsul
matricei inferior triunghiulare L cu matricea superior triunghiulară U:
 11 0 0  0   u11 u12 u13  u1n 

 21 22 0  0   0 u 22 u 23  u 2n 
A   31 32 33  0    0 0 u33  u3n  .
           
 n 2 n3  nn   0 0 0  nn 
 n1
Motivul acestei descompuneri constă în transformarea sistemului dat
Ax  b în două sisteme liniare: Ly  b şi Ux  y a căror matrici sunt
triunghiulare şi deci rezolvarea lor este uşoară. Relaţia ce leagă elementele
min(i , j )
celor trei matrici poate fi scrisă  ik u kj  aij , i, j  1, 2, ..., n .
k 1
Sunt posibile mai multe factorizări LU. Matricele L şi U au în total
n(n  1) elemente nenule, în timp ce A  LU ne furnizează n 2 relaţii. Este
necesară particularizarea, de exemplu, a elementelor diagonale a uneia din
matricile L sau U. Dacă se consideră elementele diagonale ale matricii U
unitare se obţine factorizarea Crout, în timp ce dacă elementele diagonale ale
lui L sunt unitare se obţine factorizarea Doolittle.
Considerăm, întâi, ii  1, i  1,2,..., n . Atunci u11  a11 .
Pentru i  1 , j  1 avem 11u1 j  a1 j  u1 j  a1 j , j  1, 2, ..., n .
ai1
Pentru i  1 , j  1 avem i1u11  ai1  i1  , i  1, 2, ..., n .
u11
La pasul k ( 1  k  n ) avem
i  k , j  k , k1u1 j  k 2 u 2 j  ...  kk u kj  a kj 
k 1
u kj  a kj   ks u sj , j  k , ..., n .
s 1
i  k , j  k , i1u1k  i 2 u 2k  ...  ik u kk  aik 

38
1  k 1 
ik   aik   is u sk , i  k  1, ..., n .
u kk  s 1 
Fie, acum u ii  1 , i  1, 2, ..., n .
Pentru j  1 , i  1 avem
i1u11  ai1  i1  ai1 , i  1, 2, ..., n
Pentru i  1 , j  1 avem
11u1 j  a1 j  u1 j  a1 j / 11 , j  1, 2, ..., n .
La pasul k ( 1  k  n ) avem
i  k ,…,n, j  k :
i1u1k  i 2 u 2k  ...  ik u kk  aik 
k 1
ik  aik   is u sk .
s 1
i  k , j  k  1,..., n :
 k1u1 j  k 2 u 2 j  ...   kk u kj  akj 

 1 k 1 
 a kj   ks u sj 
u kj 
 kk s 1 
Factorizarea Crout conduce la următorul O (n 3 ) - algoritm.
Algoritmul 3.2.2.1.
Intrări: n = dimensiunea matricii
A = matricea de factorizat
Ieşiri: L, U (folosesc acelaşi spaţiu de memorie ca A)
{
pentru k  1 : n
{
pentru i  k : n
{
s  ai1:k 1  a1:k 1k
aik  aik  s
}
pentru j  k  1 : n
{
s  a k1: k 1  a1: k 1 j
a kj  (a kj  s ) / a kk
}
}
}.
Din teorema 3.2.1.1. are loc următorul rezultat:

39
Teorema 3.2.2.1. Dacă toate submatricele principale A (k ) ale
unei matrici A nesingulare de ordinul n sunt nesingulare atunci există o
factorizare LU, unde L este triunghiulară inferior şi U este superior
triunghiulară.

3.2.3. Factorizarea Cholesky


n n
Fie A o matrice simetrică şi pozitiv definită (adică   aij xi x j  0
i 1 j 1
pentru orice x  0 ). Deoarece factorizarea LU strică simetria matricii A,
factorizarea Cholesky menţine simetria matricii A, având şi avantajul unui
timp de execuţie mai mic pe calculator. Această factorizare constă în
descompunerea lui A sub forma A  LLT , unde L este o matrice inferior
triunghiulară, ceea ce revine la
min(i , j )
 ik  jk  aij , i, j  1, 2, ..., n .
k 1
2
La primul pas avem 11  a11  11  a11 .
ai1
Pentru i  1 , j  1 avem i111  ai1  i1  .
11
La pasul k ( 2  k  n ) avem
i jk,
2k1  2k 2  ...  2kk  a kk 
k 1
kk  a kk   2ks .
s 1
Pentru i  k , jk :
1  k 1 
i11k  i 2 2k  ...  ik kk  aik  ik   aik   is  ks , i  k  1, ..., n .
 kk  s 1 

3.3. Metode iterative


Numărul de operaţii pentru metodele directe de rezolvare a sistemelor
algebrice liniare este O( n 3 ) (n fiind numărul de ecuaţii şi necunoscute), în
timp de metodele iterative pot conduce la un număr mai mic de operaţii.
Principiul general de rezolvare este similar cu cel de la rezolvarea
ecuaţiei f ( x)  0 , în care ecuaţia este scrisă sun forma
x  g (x) ,
conducând la procesul iterativ
x k 1  g ( x k ) .
Fie
A  M n (R ), A  ( aij )1 i, j  n şi b  R n , b  (bi )1 i  n .

40
Pentru rezolvarea sistemului algebric de ecuaţii liniare
Ax  b
considerăm clasa de metode iterative
u k 1  u k
B  Au k  b ,
p
unde A  M n (R ) şi k  R sunt parametrii care definesc metoda iterativă.
Pornind de la un element arbitrar u 0 se construieşte un şir (u k ) k N
unde fiecare element reprezintă o aproximaţie a soluţiei sistemului Ax  b ,
dacă această soluţie există. Aceasta constituie o metodǎ iterativǎ de rezolvare
a sistemului algebric.
Ne interesează condiţiile în care şirul de aproximaţii (u k ) k N
converge către soluţia sistemului.
Pentru matricea A introducem notaţiile:
 a11  0 
D  diag ( A)       ,
 0  a nn 
 0 0  0 0
a 0  0 0
Ainf   21 ,
    
 a n1 an2  a nn 1 0
 0 a12 a12  a1n 1 a1n 
 a2n 
Asup   0 0 a23  a 2n 1
.
     
0 0 0  0 0 

3.3.1. Metoda iterativă Jacobi


Dacă aii  0 , i  {1, 2, ..., n} atunci necunoscuta xi din ecuaţia i
este
n aij b
xi    xj  i
j 1 aii aii .
j i

Construim şirul u k  (u1k ,..., u nk ) definit prin formulele de recurenţă


n aij b
uik 1    uik  i
a
j 1 ii a ii , i  {1, 2, ..., n} ,
j i

41
k  N , iar prima aproximaţie u 0  (u10 ,..., u n0 ) este un element din R n .
n
Relaţia de mai sus se mai scrie aii (u ik 1  uik )   aij u ik  bi ,
j 1
i  {1, 2, ..., n} sau sub formă matriceală D (u Raportat
k 1
 u )  Au  b .
k k

la cazul general, în metoda Jacobi avem B  D şi p  1 . Şirul definit prin


( k 1) n aij ( k ) b
xi  xj  i
formulele de recurenţă j 1 aii aii , i  {1, 2, ..., n} , k  N se rescrie
j i

prin x (k 1)  Px (k )  d , k N, unde


 b1 
 
P  D 1C , d  D 1b, C  ( Ainf  Asup ), b   b2  . Vom stabili în ce
  
 bn 
condiţii şirul definit mai sus converge la soluţia exactă a sistemului Ax  b .
Fie x soluţia exactă şi e (k ) eroarea în aproximaţia k : e ( k )  x  x ( k ) .
Sistemul Ax  b se mai scrie Dx  Cx  b sau x  D 1Cx  D 1b . Deci
e( k 1)  x  x( k 1)  D 1C ( x  x( k ) )  Pe( k ) ,
sau, trecând la norme şi notând cu e (0)  x  x (0) obţinem
k
e ( k 1)
 P  e  ...  P (k )
 e . (0)

Deci, dacă P  1 atunci şirul este convergent la soluţia exactă.


Ţinând seama de formulele de recurenţă scrise pe componente şi
folosind respectiv norma maximă, norma unu sau norma euclidiană, condiţia
de convergenţă devine:
n n
 | a
j 1
j i
ij| | a ii |, i  {1, 2,..., n}
sau  | a |  | a |, j  {1,2,..., n}
i 1
i j
ij jj

2
n n  aij 
sau      1 .
i 1 j 1  aii 
j i

Din motive de eficienţă verificăm condiţia || x ( k 1)  x ( k ) ||  || x ( k ) ||


considerând şirul convergent începând cu un rang k.
Metoda Jacobi conduce la următorul algoritm.
Algoritmul 3.3.1.1.
Intrări: n = ordinul matricii sistemului
A = matricea sistemului
b = vectorul termenilor liberi
y = aproximaţia iniţială / precedentă a soluţiei
nr_max = numărul maxim admis de iteraţii
 = precizia
Ieşiri: x = soluţia (aproximaţia cerută)

42
{
k 0
p  y
| p  q | p
cât timp (k < nr_max) şi ( | p  q |  p ) pentru i  1 : n
{
S 0
pentru j  1 : i  1
s  s  aij y j
pentru j  i  1 : n
s  s  aij y j
xi  (bi  s ) / aii
}
p  y
q x
yx
k  k 1
}.

3.3.2. Metoda iterativă Gauss-Seidel


În această metodă, construim şirul u k  (u1k ,..., u nk ) definit prin
formulele de recurenţă
n a1 j k b1
u1k 1    uj  ,
j  2 a11 a11
i 1 aij n aij k bi
uik 1    u kj 1   uj  , i  { 2, ..., n  1} ,
j 1 aii j  i 1 aii aii
n 1 a nj bn
u nk 1    u kj 1  ,
j 1 a nn a nn
k  N şi u 0
 (u10 ,..., u n0 )
un element din R n .
Formulele de recurenţă se pot scrie sub forma
i n
k 1 k
 aij u j   aij u j  bi , i  {1, 2, ..., n}
j 1 j  i 1
sau sub formă matriceală
( A inf  D )u k 1  A sup u k  b
şi ( Ainf  D)(u k 1  u k )  Au k  b .
Astfel B  Ainf  D şi p  1 . Remarcăm faptul că, în această metodă
se folosesc noile valori ale componentelor vectorului necunoscutelor x ( k 1)
imediat ce au fost calculate. Şirul definit prin formulele de recurenţă

43
i 1 n
xi( k 1)  (bi   aij x (jk 1)   aij x (jk ) ) / aii , i  {1, 2, ..., n} , k  N ,
j 1 j  i 1
se rescrie prin x (k 1)  Px (k )  d ,
unde k N,
inf 1 sup inf 1
P  ( D  A ) A , d  ( D  A ) b . Condiţia de convergenţă este:
P  1  ( D  A inf ) 1 Asup  1 .

Deoarece calcularea inversei necesită O( n 3 ) operaţii, o condiţie


simplă de convergenţă a metodei Gauss-Seidel este: pentru fiecare linie a
matricii A, elementul diagonal considerat în modul să fie strict mai mare
decât suma tuturor modulelor celorlalte elemente ale liniei respective.
Notând cu
i 1 n
s1i   | aij / aii |, si2   | aij / aii |, i  {1,2,..., n}
j 1 j  i 1
condiţia precedentă se scrie: s1 2
i  si  1, i  {1,2,..., n} .
Să demonstrăm convergenţa. Sistemul de ecuaţii Ax  b se mai scrie
i 1 n
xi  (bi   aij x j   aij x j ) / aii , i  {1, 2, ..., n} ,
j 1 j i 1
cu xi valorile exacte ale necunoscutelor şi aii nenuli.
( k 1) i 1 aij n aij
Obţinem xi  xi  ( x j  x (jk 1) )   ( x j  x (jk ) ) ,
j 1 aii j  i 1 aii
i  {1, 2, ..., n} , sau, trecând la module:
i 1 aij n aij
| ei( k 1) |   | e (jk 1) |   | e (jk ) | , i  {1, 2, ..., n} .
j 1 aii j  i 1 aii

Utilizând norma maximă a vectorului eroare e (k )  max | ei( k ) | ,


 i
obţinem | ei( k 1) |  s1
i e
( k 1)
 si2 e ( k ) , i  {1, 2, ..., n} sau
e ( k 1)  s1
i e
( k 1)
 si2 e ( k )  e ( k 1)   e (k ) cu   (0,1) .
    

Metoda Gauss-Seidel furnizează următorul algoritm.


Algoritmul 3.3.2.1.
Intrări: n = ordinul matricii sistemului
A = matricea sistemului
b = vectorul termenilor liberi
y = aproximaţia iniţială / precedentă a soluţiei
nr_max = numărul maxim admis de iteraţii
 = precizia
Ieşiri: x = soluţia (aproximaţia cerută)
{
k 0
py

44
x y
| p  q | p
cât timp (k > nr_max) şi ( | p  q |  p ) pentru i  1 : n
{
S 0
pentru j  1 : i  1
s  s  aij x j
pentru j  i  1 : n
s  s  aij y j
xi  (b  s) / aii
}
p  y
q x
yx
k  k 1
}.

3.3.3. Metoda relaxǎrii


Fie q R*. Metoda relaxǎrii este datǎ de
u k 1  u k
( D  qAinf )  Au k  b ,
q
adicǎ
, pq.
B  D  qA inf
Dacǎ q  1 obţinem metoda Gauss-Seidel.
Existǎ şi alte condiţii în care procedeele iterative sunt convergente.
Dacǎ  (0,2) şi A este o matrice simetricǎ şi strict pozitivǎ atunci şirul de
q
aproximaţii construit prin metoda relaxǎrii converge cǎtre soluţia exactǎ a
sistemului Ax = b.

3.4. Exerciţii
1) Să se rezolve sistemele:
a)
0,78 x1 0,02 x 2  0,12 x 3  0
 0,02 x1 0,68 x 2  0,04 x 3
 0,12 x1 0,04 x 2  0,72 x 3
0,1 4 x1 0,06 x 2  0,08 x 3 

utilizând metoda Jacobi;


b)
 x1  x 2  x3  x 4  x5 
 2 x1 3 x 2
  x3  5 x 4  2
  x1  x 2  5 x3  3 x 4  6
3 x1  x 2  7 x3  2 x 4  3

 2 x1 2 x 2  2 x3  x 4  3

utilizând metoda Gauss;


6 x1  x 2
  x3  11,33
c)   x1 6 x 2

  x1  x 2
 x3
 6 x3
 32
 42 utilizând metoda
Gauss-Seidel.
2) Analizaţi comparat metodele Jacobi, Gauss-Seidel şi relaxării pentru

45
 2 1 0  1  0
A    1 2  1 , b   0  , x ( 0 )   0  .
 0 1 2  1  0
     

CAPITOLUL 4
Rezolvarea numerică a problemelor algebrice de
valori şi vectori proprii

4.1. Abordarea elementară a subiectului


La probleme algebrice de valori şi vectori proprii conduc numeroase
probleme tehnico-ştiinţifice.
Vom arăta în cele ce urmează cum se ajunge la o problemă algebrică
de valori şi vectori proprii, extinzând problema rezolvării unui sistem
omogen de ecuaţii.
Astfel luând sistemul:
a11 x1  a12 x2  a13 x3  0
a21 x1  a 22 x2  a 23 x3  0
a31 x1  a32 x2  a33 x3  0
constatăm că acesta se poate scrie sub forma Ax  0 , unde A este matricea
formată din elementele (aij ) cu i  1,2,3 şi j  1,2,3 , iar x este vectorul
 x1 
 
coloană  x2  . Sistemul nu are alte soluţii decât cea banală exceptând cazul
 x3 
det A  0 .
Să presupunem că matricea A depinde de un parametru  şi anume să
luăm A  ( A'I ) , unde I este matricea unitate.
În acest fel putem căuta acele valori  pentru care det A  0 şi apoi
putem căuta soluţiile nebanale ale ecuaţiei Ax  0 .
Problema pe care o avem de rezolvat se poate scrie sun forma:
A' x  x .
Deci o problemă algebrică de valori şi vectori proprii se exprimă prin
relaţia:
Ax  x
unde A este o matrice pătratică de ordin n, x un vector (nenul) care se
numeşte vector propriu (la dreapta) ce trebuie calculat iar  un număr care
se numeşte valoare proprie ce trebuie calculată.
Valorile proprii  pentru problema Ax  x sunt rădăcinile ecuaţiei
(numită ecuaţie caracteristică):

46
det( A  I )  P ( )  0 ,
P ( ) fiind un polinom de grad n în  obţinut din dezvoltarea
determinantului det( A  I ) . Având o valoare proprie  , un vector propriu
corespunzător x este soluţia nebanală a sistemului omogen de ecuaţii
( A  I ) x  0 .
4.2. Aspecte teoretice generale
4.2.1. Clase speciale de matrici
Matricea adjunctă (notată A H ) este matricea transpusă şi conjugată (
A  ( a ji )  M n  m dacă A  ( aij )  M m  n ).
H

Dacă A este o matrice pătratică şi A  A H , matricea A se numeşte


hermetiană (autoadjunctă).
Se demonstrează că:
( A H ) H  A,
( AB) H  B H A H ,
( A H ) 1  ( A 1 ) H .
O matrice A este unitară dacă A H A  I .
Dacă A reală atunci A H  AT (transpusa) şi dacă AT A  I atunci A se
numeşte ortogonală. Într-o matrice unitară (ortogonală), coloanele formează
o bază ortonormală.
O matrice de rotaţie R( p, q )  (rij ) ( p  q ) este o matrice care diferă de
matricea unitate numai prin liniile p şi q, unde singurele elemente nenule
sunt:
r pp  c , r pq  s , rqp   s, rqq  c ,
unde c, s sunt două numere complexe astfel ca | c | 2  | s | 2  1 . (Se poate lua
c  v cos , s  w sin  , cu | v || w | 1 . Pentru matrici reale, c  cos  ,
s  sin  ).
Se verifică uşor că R( p, q ) R(Tp, q )  I , adică matricea de rotaţie este
unitară (ortogonală).
Norma euclidiană a unei matrici A  ( aij ) este definită prin
1/ 2
 n n 
A E     | aij | 2  .
 i 1 j 1 
 
Prin definiţie, urma matricei A este
n
TrA   aii .
i 1
Dacă H este nesingulară, matricele A şi HAH 1 se numesc asemenea
(similare).
Ecuaţiile caracteristice a două matrici asemenea sunt identice,
deoarece:

47
det( HAH 1  I )  det( HAH 1  HIH 1 )
 det H ( A  I ) H 1
 det H  det( A  I )  det H 1
 det( A  I ).
Dacă x este vector propriu al matricei A atunci Hx este vector propriu
al matricii HAH 1 , deoarece:
din Ax  x  HAx  Hx  HAH 1 Hx  Hx .
O matrice asemenea cu o matrice diagonală se numeşte regulată.
Dacă A este regulată atunci ea admite n vectori proprii liniar
independenţi (o bază de vectori proprii).
Dacă D  diag (1 ,  2 ,...,  n ) şi A  HDH 1 rezultă AH  HD .
Notăm H  ( x1 , x 2 ,..., x n ) . Avem
 a11 a12  a1n   1 0  0 
a   
 21 a 22  a 2n  x1 x 2  x n    x1 x 2  x n   0  2  0 
           
a a
 n1 n 2  a nn   0 0  n 
.
Obţinem Axi   i xi .
Teorema 4.2.1.1. Dacă valorile proprii ale unei matrici sunt
distincte, atunci matricea este regulată.
Teorema 4.2.1.2. Pentru orice matrice pătratică complexă A
există o matrice unitară P, astfel încât
B  P H AP
să fie superior triunghiulară.
O matrice A este normală dacă
A H A  AA H .
Lema 4.2.1.1. O matrice normală şi triunghiulară este matrice
diagonală.
Demonstraţie. Fie T  (t ij ) superior triunghiulară (
t ij  0, 1  j  i  n ). Scriem egalitatea ce rezultă din faptul că A este
normală:
 t11 t12 t13  t1n   t11 0 0  0 
0 t  0  0 
 22 t 23  t 2n   t12 t 22
 0 0 t 33  t 3n    t13 t 23 t 33  0   T H  T .
         
0 0 0 t nn   t1n t 2n t 3n  t nn 
 

48
Deci:
 n n 
  t1 j t1 j  t1 j t 2 j  t1n t1n   

 j 1 j 2   t11t11  t1n t11 
         
  t nn t nn   n
     tin t in 
   i 1 
 

n
2 2
 | t1i | | t11 |  t1 j  0 pentru j  2 ,
i 1
n
2 2 2
 | t 2i | | t12 |  | t 22 |  t 2 j  0 pentru j  3 ,
i2
…,
deci T este diagonală.
Teorema 4.2.1.3. O matrice normală este regulată şi admite o
bază ortonormală de vectori proprii şi reciproc.
Demonstraţie. Fie A normală. Din teorema 4.2.1.2. există P unitară
astfel încât B  P H AP să fie superior triunghiulară.
Avem
BB H  ( P H AP)( P H AP) H  ( P H AP )( P H A H P )
 P H A( PP H ) A H P  P H AAH P
( PP H  I pentru că P este unitară).
B H B  ( P H AP) H ( P H AP)  ( P H A H P)( P H AP )
 P H A H ( PP H ) AP  P H A H AP
 P H AA H P
( A H A  AA H pentru că A este normală).
Deci BB H  B H B , adică B este normală. Conform lemei 4.2.1.1.
rezultă că B este diagonală. Cum P H  P 1 (P unitară) şi B diagonală
rezultă că A este regulată. Coloanele lui P sunt vectori proprii şi formează o
bază ortonormală.
Reciproc. Dacă A admite o bază ortonormală de vectori proprii avem
AP  PD , unde P este matricea unitară a acestor vectori proprii şi D este
matricea diagonală a valorilor proprii. Avem A  PDP 1  PDP H (P
unitară). Avem
AAH  ( PDP H )( PDP H ) H
 PDP H PD H P H  PDD H P H ,

49
AH A  ( PDP H ) H ( PDP H )  PD H P H PDP H
 PD H DP H  PDD H P H .
Deci A H A  AA H , adică A este normală.

4.2.2. Punerea corectă a problemei


Ne punem problema efectului perturbaţiei matricei asupra valorilor
proprii ale ei (adică la mici variaţii ale datelor de intrare să vedem efectul
asupra datelor de ieşire din metodă).
Teorema 4.2.2.1. Fie A o matrice regulată şi fie H o matrice ale
cărei coloane sunt vectori proprii liniar independenţi ai matricei A. Atunci,
pentru fiecare valoare proprie  a matricei perturbate A  B , unde B are
elementele de modul subunitare, există o valoare proprie  i a matricei A
astfel încât
|  i   |   n  H  H 1 .

Demonstraţie. Din A regulată rezultă


H 1 AH  diag (1 ,  2 ,...,  n )  D .
Scriem ecuaţia caracteristică a lui A  B şi rezultă:
0  det( A  B  I )  det( H 1 ( A  B  I ) H )  det( H 1 AH  I  H 1 BH )
.
Deci
0  det( D  I  H 1 BH ) .
Dacă  j   atunci teorema este demonstrată. Presupunem că j 
pentru j  1, n . Atunci det( D  I )  0  ( D  I ) 1 .
Deci
det[( D  I )1( D  I  H 1 BH )]  0  det[ I  ( D  I )1 H 1 BH )]  0 
I  ( D  I ) 1 H 1 BH este singulară (avem teorema: dacă C 1 atunci
I  C este nesingulară).
Deci  ( D   I ) 1 H 1 BH 1 . Utilizând norma spectrală:
1
 max |  j   | H 1  B  H  1 .
j

Deci min |  j   |  H 1  B  H .
j
Dar
| bij | 1  B  n .
Deci
min |  j   |   n  H 1  H .
j

4.3. Metoda lui Jacobi

50
Cazul matricelor complexe hermitiene se reduce la cel al matricelor
reale simetrice.
Fie A  B  iC , B, C reale. Fie  valoare proprie (în acest caz este
reală) căreia îi corespunde un vector propriu de forma x  iy cu x, y  R n .
Deci ( B  iC )( x  iy )   ( x  iy ) , sau
Bx  Cy  x
Cx  By  y ,
adică
B  C  x   x 
C B   y   y  .
Deci problema devine reală dar de dimensiune dublă.
A hermitiană  ( B  iC ) H  B  iC  B T  iC T  B  iC  B  BT şi
 C  CT .
Deci matricea de ordin 2n este reală şi simetrică.
Ne limităm la o matrice A reală şi simetrică. Deci
AT  A  AT A  AAT  A normală. Conform lemei 4.2.1.3., A este regulată
şi admite o bază ortonormală de vectori proprii. A regulată, este asemenea cu
o matrice diagonală ce are pe diagonală valorile proprii.
Metoda lui Jacobi utilizează matrice de rotaţie reale şi construieşte un
şir de matrice { Ak } asemenea cu A.
Luăm A0  A şi în general Ak 1  Rk Ak RkT , k  0,1,2,... , în care
Rk  R( p k , q k ) o matrice de rotaţie reală, având la intersecţiile liniilor p k şi
q k cu coloanele p k şi q k elementele cos  k , sin  k şi respectiv  sin  k
, cos  k , iar în rest elementele matricei unitate.
Pentru un k fixat notăm p  p k , q  q k ,    k . Alegem p şi q astfel
încât | a kpq |  max | aijk | (maximul în modul dintre elementele nediagonale).
1 i  j  n

Alegem  astfel încât să se anuleze pentru Ak 1 elementele simetrice cele


mai mari în modul.
Dacă A0 este simetrică atunci
A0T  A0  A1T  R0 A0T R0T  R0 A0 R0T  A1 .
Prin inducţie
AkT1  Ak 1  Ak 1 simetrică.

51
p q
1 
  
 
 1 
p cos  sin  
 1 
Rk    
 1 
 
q  sin  cos  
 1 
  
 1 

p q
1 
  
 
 1 
p cos   sin  
 1 
T
Rk    
 1 
 
q sin  cos  
 1 
  
 1 

Se observă că
Rk RkT  I .
Deci
AkT1  Rk Ak RkT  Rk Ak Rk1  Ak 1 asemenea cu Ak .
Facem calculele în relaţia
Ak 1  Rk Ak RkT
şi avem

52
p i j q
1 0  0  0 0 0  0
0 1  0  0 0 0  0
    
0
      
0  cos   0 0 sin   0   cos   sin  
      
    (a ( k ) ) 
0 0  0  1 0 
0  0 ij 
   (a
0 0  0  0 1 0  0   sin  cos  
   
0 0   sin   0 0 cos   0  
         
0 0  0  0 0 0  1
Deci
 ( k 1) (k ) (k )
a ip  a ip cos   aiq sin , i  p , q
 ( k 1) (k ) (k )
a   aip sin   aiq cos , i  p , q
 iq
a ( k 1)
pp  a( k)
pp cos
2
  2a ( k) (k )
pq sin  cos   a qq sin
2

 (
 k 1)
a qq  a( k)
pp sin
2
  2a ( k) (k )
pq sin  cos   a qq cos
2

a ( k 1) ( k 1)
 a qp (k )
 ( a qq  a( k) (k ) 2
  sin 2 )

 pq pp ) cos  sin   a pq (cos

celelalte elemente rămânând neschimbate:


aij( k 1)  aij( k ) ,

pentru toţi i, j  p, q .
k 1)
Din condiţia de anulare a lui a (pq obţinem:
sin 2 2a (pqk )
a (k )
pq cos 2  (a (k )
qq a ) (k )
pp  0  tg 2  ( k ) (k ) .
2 a pp  a qq

Alegem  cu |  | .
4
Lucrăm cu numărătorul şi numitorul separat (pentru a evita pierderea
preciziei la împărţire).
sin 2 c sin 2 2 c 2 c2 c
    sin 2 2   sin 2   f 
cos 2 d cos 2 2 d 2 d 2  c2 d  c2
2

sin  şi cos  , unde c = numărătorul cu semnul fracţiei, d = numitorul în


modul.
Teorema 4.3.1. Şirul matricelor { Ak } construit cu metoda lui Jacobi
este convergent şi
lim Ak  diag (1 ,  2 ,...,  n )
k 
unde  i sunt valorile proprii ale matricii A.
Demonstraţie. Să luăm
(k ) (k ) (k )
Ak  diag (a11 , a 22 ,..., a nn )  Ek ,
unde E k este matricea simetrică a elementelor nediagonale ale lui Ak cu
zero pe diagonală. Din relaţiile de mai sus rezultă

53
( k 1) 2 ( k 1) 2 (k ) 2 (k ) 2
 [(aip )  (aiq ) ]  [(aip )  ( aiq ) ]
i  p, q i  p, q
adică suma pătratelor elementelor nediagonale, cu excepţia celor din poziţiile
(p,q) şi (q, p) nu se modifică.
Dar elementele din poziţiile (p,q) şi (q, p) în A ( k 1) sunt zero.
Deci
2
 1/ 2 
( k 1) 2 
E k 1 E     | aij 
2 2
|   E k E  2( a (pq
k) 2
)

 i j  
  
k 1) ( k 1)
pentru că a (pq  a qp  0. Rezultă că
2 2
E k 1 E   E k E
2
cu   1   1.
n2  n
Într-adevăr, | aij( k ) | | a qp
(k )
| pentru 1  i  j  n . În Ek E sunt n2
termeni, deci
2 1 2
Ek E  (n 2  n)(a (pq
k) 2
)  Ek E  (a (pq
k) 2
) 
2
n n
2 2
2(a (pq
k) 2
)  Ek E 
n2  n
2 2 k) 2  2  2
 Ek 1 E  Ek E  2( a (pq )  1   Ek E .
2
 n n
Deci E k 2E   k E0 2E cu 0    1 . Rezultă klim E k  0 . Deci la

limită se obţine o matrice diagonală. Deoarece toate matricile şirului sunt
asemenea cu A elementele diagonale sunt valorile proprii ale lui A.
Convergenţa este cel puţin comparabilă cu cea a lui  k , din punct de vedere
al rapidităţii.
Dacă ultima rotaţie care se efectuează până elementele nediagonale
devin inferioare preciziei  a calculelor (  fiind dat) este Rs atunci avem:
( Rs  R2 R1 R0 ) A( R0T R1T R2T  RsT )  diag (1 ,  2 ,...,  n ) .
Cu această precizie vectorii proprii sunt coloanele matricii
Vs  R0T R1T R2T  RsT  ( Rs  R2 R1 R0 )T .
Iniţializăm V = I şi la fiecare pas înmulţim la stânga pe V cu rotaţia
respectivă. Notăm V  (Vij(k ) ) .
Înmulţirea de mai sus se transpune în formulele:
 ( k 1)
v pi  v(
pi
k) (k )
cos   v qi sin 
 ( k 1)
v qi  v ( k)
sin   v (k )
cos 
 pi qi

Metoda Jacobi conduce la următorul algoritm.


Algoritmul 4.3.1.

54
Intrări: n = ordinul matricei simetrice A
A = matricea simetrică
 = precizia
Ieşiri: x = vectorul cu valorile proprii
B = matricea ale cărei coloane conţine vectorii proprii
{
s1    1
cât timp s1  
{
max | b12 |
p 1
q2
pentru i  1 : n
pentru j  1 : n
dacă j  i atunci
dacă max  | bij | atunci
{
max | bij |
pi
q j
}
dacă b pp  bqq atunci
{
c  2/2
s  2 /2
}
altfel
{
c  cos(arctan(2b pq /(b pp  bqq )) / 2)
s  sin(arctan(2b pq /(b pp  bqq )) / 2)
}
a pp  b pp c 2  bqq s 2  2b pq sc
a qq  b pp s 2  bqq c 2  2b pq sc
a pq  (bqq  b pp ) sc  (c 2  s 2 )b pq
a qp  a pq
pentru i  1 : n
{
dacă (i  p ) şi (i  q ) atunci
{

55
aip  bip c  biq s
a pi  aip
aiq  bip s  biq c
a qi  aiq
pentru j  1 : n
dacă ( j  p ) şi ( j  q ) atunci
{
aij  bij
a ji  aij
}
}
}
pentru i  1 : n
pentru j  1 : n
bij  aij
s1  0
pentru i  1 : n
pentru j  1 : n
dacă j  i atunci
s1  s1  aij2
}
pentru i  1 : n
 i  aii
pentru j  1 : n
{
\* vectorul propriu j
pentru j  1 : n
bij  aij
}
}.

4.4. Probleme de valori proprii generalizate


În unele probleme ale fizicii matematice intervin ecuaţii de valori
proprii generalizate
Ax  Bx ,
unde atât A cât şi B sunt matrici pătrate.
O posibilitate de transformare a ecuaţiei de mai sus într-o problemă
standard, de forma
Ax  x ,

56
constă în înmulţirea ecuaţiei la stânga cu B 1 , presupunând că matricea B
este nesingulară:
( B 1 A) x  x .
Dacă A şi B sunt simetrice, nu întotdeauna B 1 A este simetrică.
Dacă A şi B sunt simetrice şi B este pozitiv definită, se poate
transforma problema generalizată într-o problemă standard pornind de la
descompunerea Chalescki a matricii B:
B  L  LT ,
unde L este inferior triunghiulară.
Obţinem:
L1 Ax  LT x ,

sau,
L1 A( L1 ) T ( LT x )   ( LT x ) ,

adică
A x  x

pentru matricea simetrică


A  L1 A( L1 ) T .
Valorile proprii ale matricei A coincid cu cele ale lui A, iar vectorii
proprii corespunzători sunt
x  LT x ,

adică
x  ( LT ) 1 x .

4.5. Exerciţii
1) Să se determine valorile proprii şi vectorii proprii pentru matricea
1 1 1
A  1 1 1 .
1 1 1
 
2) Să se determine cea mai mare valoare proprie pentru
 202  262  369 
A    176 440 504  .
 228  462  561 
 
3) Fie matricile:

57
7 6 2  1 5 0 
a) A   1 2  2  b) B   1 1  1 .
 1 1 2  0 1 1 
   
Să se determine valorile proprii şi vectorii proprii prin metoda Jacobi.
De asemenea, să se scrie programul în C pentru metoda mai sus menţionată.

CAPITOLUL 5
Aproximarea funcţiilor prin polinoame

5.1. Introducere
Pentru o funcţie f : [a, b]  R problema aproximării ei printr-un
polinom se pune fie când este dificil de evaluat f, fie când nu se cunoaşte
expresia analitică a lui f ci doar valorile ei în anumite puncte xi  [a, b] ,
i  0, n , obţinute în general ca urmarea a unor măsurări şi prezentate într-un
tabel. Mulţimea de puncte xi  [a, b] , i  0, n , cu proprietatea
a  x0  x1  ...  x n  b , o vom nota prin d[ a, b] şi o vom numi diviziune a
intervalului [ a, b] . Punctele xi , i  0, n vor fi numite nodurile diviziunii.
Alegerea unui polinom pentru aproximarea funcţiei f se justifică prin
modul simplu computerizat de evaluare a valorii polinomului într-un punct.
Weierstrass, în 1885, demonstrează că „orice funcţie continuă pe un
interval [ a, b] este limita uniformă pe [ a, b] a unui şir de polinoame” şi dă
un procedeu pentru calculul acestor polinoame. Bernstein, în 1912, dă o

58
metodă prin care putem calcula, pentru o funcţie continuă pe [ a, b] , un şir
( Pn ) n de polinoame uniform convergent către f.
Fiind dată o funcţie arbitrară f : [a, b]  R se pune problema
stabilirii unui criteriu de alegere a polinomului P care să aproximeze funcţia
dată. Astfel este necesar un instrument matematic pentru măsurarea distanţei
dintre două funcţii, care impune situarea într-un spaţiu vectorial normat
complet şi în funcţie de stabilirea criteriului de alegere a polinomului P care
să aproximeze funcţia f vom avea metode de aproximare a funcţiilor prin
polinoame şi anume: aproximarea prin interpolare, aproximarea în medie
pătratică.

5.2. Aproximarea prin interpolare


Fie f : [a, b]  R şi diviziunea
d[ a, b] : a  x0  x1  ...  x n  b .
Presupunem cunoscute valorile funcţiei f în nodurile xi , i  0, n ale
diviziunii d[ a, b] şi (eventual) derivatele de anumite ordine ale funcţiei f în
aceste noduri. Se pune problema determinării unui polinom P care are
aceleaşi valori ca şi f în noduri şi (eventual) derivatele de anumite ordine ale
lui f şi P în noduri să coincidă. Un astfel de polinom P îl vom numi polinom
de interpolare ataşat funcţiei f şi diviziunii d[ a, b] .

5.2.1. Interpolarea polinomială Lagrange


Fie f : [a, b]  R şi xi  [a, b] , i  0, n astfel încât xi să fie toate
distincte. Presupunem că se cunosc valorile funcţiei f în nodurile xi ,
f i  f ( xi ) , i  0, n . Se pune problema determinării unui polinom P astfel
încât
P ( xi )  f i pentru i  0, 1, ..., n .
Teorema 5.2.1.1. Există un polinom şi numai unul de grad cel
mult n astfel ca P ( xi )  f i pentru i  0, 1, ..., n .
Demonstraţie. Dacă P şi Q sunt două polinoame de grad cel mult n
astfel ca P( xi )  Q( xi )  f i pentru i  0, 1, ..., n atunci polinomul
R  P  Q este de asemenea de grad cel mult n şi R ( xi )  0 pentru
i  0, 1, ..., n . Deoarece polinomul R se anulează de cel puţin (n + 1) ori şi
este de grad cel mult n, urmează că R este polinomul identic nul, adică
P Q.
Existenţa polinomului P o demonstrăm construind efectiv polinomul P
răspunzând condiţiilor P ( xi )  f i pentru i  0, 1, ..., n . Să găsim un
polinom  k în spaţiul vectorial al polinoamelor de grad cel mult n, notat
P n , astfel ca

59
i ( x k )  0 pentru i  k ,  k ( x k )  1 .
Acest polinom se anulează de n ori pentru x0 , x1 , ..., x k 1 ,
x k 1 , ..., x n . Deci
k ( x)  ( x  x0 )( x  x1 )...( x  x k 1 )( x  x k 1 )...( x  x n ) .
Deoarece k ( xk )  1 urmează că
n xxj
 k ( x)  
j  0 xk  x j
jk
.
Cele (n + 1) polinoame  k ( k  0, 1, ..., n ) sunt liniar independente
în spaţiul vectorial al polinoamelor de grad cel mult n. Într-adevăr, fie o
combinaţie liniară nulă:
 0 0 ( x)  11 ( x)  ...   n n ( x)  0 .
Pentru x  x k , k  0, 1, ..., n , avem
0 0 ( x k )  11 ( x k )  ...  k  k ( x k )    n  n ( x k )  0 .
Deci  k  0 pentru k  0, 1, ..., n .
Cele (n + 1) polinoame  k formează deci o bază a acestui spaţiu
vectorial de dimensiune n + 1. Polinomul P căutat se obţine ca o combinaţie
liniară de polinoame  k , adică polinomul dat de formula Lagrange:
n
P( x)   f k k ( x) .
k 0
Într-adevăr,
n
P( xi )   f k k ( xi )  f i , pentru i  0, 1, ..., n .
k 0
Pentru calculul valorii polinomului de interpolare Lagrange într-un
punct a folosind relaţia
n
P( x)   f k k ( x)
k 0
a fost definit algoritmul următor:
Algoritmul 5.2.1.1.
Intrări: n = gradul polinomului de interpolare
a = valoarea argumentului polinomului
x = tabloul absciselor punctelor de interpolare
y = tabloul ordonatelor punctelor de interpolare
Ieşiri:  = valoarea polinomului de interpolare în a
{
 0
pentru i  0 : n
{
P 1
pentru j  0 : n

60
dacă j  i atunci
P  P  (a  x j ) /( xi  x j )
    yi  P
}
}.
Complexitatea metodei este O( n 2 ) , mai exact 4n 2 operaţii (
n( 2n  3) adăugări, ( n  1)( 2n  1) înmulţiri şi (n  1) împărţiri).
În continuare dăm o altă manieră de scriere a polinomului Lagrange.
Fie w polinomul de grad (n  1) definit prin:
w( x)  ( x  x0 )( x  x1 )...( x  x n ) .
Atunci
w' ( x k )  ( x k  x0 )( x k  x1 )...( x k  x k 1 )( x k  x k 1 )...( x k  x n ) .
Deci
w( x)
k ( x) 
( x  xk ) w' ( xk )
cu k ( x k )  1 .
Înlocuind  k prin expresia sa în formula Lagrange, obţinem:
n f k w( x) n fk
P ( x)    w( x)  .
k  0 ( x  x k ) w' ( x k ) k  0 ( x  x k ) w' ( x k )
n
În cazul când f k  1 pentru orice k avem relaţia   k ( x )  1 . Cum
k 0
n n 1
  k ( x)  w( x)  1
k 0 k  0 ( x  x k ) w' ( x k )
obţinem formulele baricentrice
n fk

( x  x k ) w' ( xk )
P( x)  k  0 .
n 1

k  0 ( x  x k ) w' ( x k )
În acest caz numărul de operaţii este de ordinul 2n 2 , dar o nouă
1
evaluare a lui P (x ) , dacă se conservă valorile lui , nu va cere
w' ( x k )
decât 2n operaţii.

5.2.2. Algoritmul Aitken


Atunci când se doreşte modificarea punctelor de interpolare, se
preferă următorul algoritm.

61
Lema 5.2.2.1. Fie Q şi R două polinoame de interpolare de grad cel
mult n, construite respectiv pe {x0 , x1 , ..., xn 1 , a} şi pe
{ x0 , x1 , ..., x n 1 , b} astfel încât:
Q ( xi )  R ( xi )  f i pentru i  0, 1, ..., n  1
Q (a )  
R (b)   .
Atunci polinomul de interpolare de grad n + 1, construit pe
{x0 , x1 , ..., x n 1 , a, b} astfel încât
P ( xi )  f i pentru i  0, 1, ..., n  1
P (a )  
P (b)  
poate să se obţină plecând de la Q şi R astfel:
(b  x )Q ( x)  (a  x ) R ( x )
P( x)  .
ba
Demonstraţie. P este un polinom de grad cel mult n + 1.
(b  xi ) f i  (a  xi ) f i
P ( xi )   f i , i  0, 1, ..., n  1
ba
(b  a)
P(a)  
ba
( a  b)
P (b)   .
ba
În continuare se va construi polinomul P de grad cel mult n astfel
încât: P ( xi )  f i pentru i  0, 1, ..., n .
Considerăm următorul tabel triunghiular:

0 1 2 3 j j+1 n
0 P0,0 x0  x

1 P1,0 P1,1 x1  x

2 P2,0 P2,1 P2,2 x2  x

3 P3,0 P3,1 P3, 2 P3,3 x3  x

k Pk ,0 Pk ,1 Pk , 2 Pk ,3 Pk , j Pk , j 1 xk  x

n Pn,0 Pn,1 Pn, 2 Pn, n xn  x

62
Fie următoarea relaţie de recurenţă:
pentru k  0, 1, ..., n
Pk ,0  f k ;
pentru j  0, 1, ..., n  1
pentru k  j  1, j  2, ..., n
( x k  x ) P j , j ( x)  ( x j  x ) Pk , j ( x )
Pk , j 1 ( x )  .
xk  x j
Teorema 5.2.2.1. Polinomul de interpolare este egal cu Pn, n .
Demonstraţie. Se va arăta că Pk , j cu k  j este polinomul de
interpolare pe punctele {x0 , x1 , ..., x j 1 , xk } , ceea ce va implica faptul că
Pn, n este polinomul căutat.
Facem demonstraţia prin recurenţă pe al doilea indice
Pk ,0  f k pentru k  0, 1, ..., n .
Dacă ipoteza este verificată pentru j fixat atunci pentru
k  j , j  1, ..., n :
Pk , j este polinomul de interpolare pe punctele { x0 , x1 , ..., x j 1 , x k }
;
P j , j este polinomul de interpolare pe punctele {x 0 , x1 , ..., x j 1 , x j }
.
Aplicând lema 5.2.2.1., Pk , j 1 este polinomul de interpolare pe
punctele {x0 , x1 , ..., x j 1 , x j , x k } .

5.2.3. Evaluarea restului la interpolarea Lagrange


Fie f : [a, b]  R şi fie x0 , x1 , ..., x n  [a, b] . Ce se poate spune
despre restul f ( x )  P( x ) , unde P este polinomul de interpolare, astfel că
P ( xi )  f i , i  0, 1, ..., n .
Se remarcă faptul că x nu poate să aparţină lui [ a, b] . În aceste caz,
se spune că avem o extrapolare.
Aproximarea realizată cu ajutorul polinomului de interpolare
Lagrange este nelocală, în sensul că la evaluarea funcţiei de interpolat
contribuie informaţii din toate punctele de interpolare, nu numai din cele din
vecinătatea argumentului considerat. Aceasta conduce la oscilaţii complet
străine de comportarea reală a funcţiei aproximate. Un exemplu în acest sens
este pentru aproximarea funcţiei f ( x)  1 / x . Distribuirea în mod echidistant
a punctelor de interpolare reduce oscilaţiile până aproape la dispariţie.
Teorema 5.2.3.1.
Dacă f  C n 1[a, b] şi a  x0  x1  ...  xn  b atunci
( x  x0 )( x  x1 )...(x  x n ) ( n 1)
f ( x )  P ( x)  f () ,
(n  1)!

63
unde a  min( x, x0 )    max(x, x n )  b .
Demonstraţie. Fie F : [ a, b]  R , definită prin
F ( y )  f ( y )  P ( y )  c  wn ( y )
unde c este o constantă aleasă astfel încât F ( x)  0 .
Deci c  ( f ( x )  P ( x)) / w( x ) , unde
w( x)  ( x  x0 )( x  x1 )...( x  x n ) .
Din condiţiile de interpolare F ( xi )  0 , i  0, 1, ..., n .
Deci F are n + 2 zerouri distincte şi anume: x, x0 , x1 , ..., x n pe [ a, b]
. Aplicând teorema Rolle pe acest interval, F ' va avea cel puţin n  1
zerouri distincte, F " cel puţin n zerouri distincte. Din aproape în
aproape, F ( n 1) va avea cel puţin un zero   (a, b) şi deci
0  F ( n 1) ()  f ( n 1) ()  c (n  1)! .
Sub această formă restul nu poate fi determinat în practică, deoarece
punctul  , care depinde de x şi de nodurile de interpolare nu este cunoscut.
Mn  sup | f ( n 1) ( y ) |
Dacă, însă, se cunoaşte estimaţia y[ a , b ]
, se poate evalua
M n | w( x) |
| f ( x)  P ( x ) | .
(n  1)!
Interpolarea polinomială Lagrange este utilă pentru construirea
formulelor de aproximare a integralelor, derivatelor şi ecuaţiilor diferenţiale.
În practică, pentru a aproxima o mulţime de puncte de interpolare, se
va limita la polinoame de grad cel mult 10.
Se va prefera pentru polinoame de grad mai mare decât 10, să se
utilizeze funcţii spline care au cele mai bune proprietăţi de stabilitate.
Exemplul 1. Să se construiască polinomul de interpolare Lagrange
2
a funcţiei f definită pe [5,5] prin f ( x )  e  x .
2
Rezolvare. Se constată că se aproximează curba f ( x )  e  x la centrul
intervalului, iar la extremităţi se produc oscilaţii numite efecte de margine.
Exemplul 2. Să se construiască polinomul de interpolare Lagrange
1
a funcţiei f definite pe [5,5] prin f ( x)  .
1 x2
Rezolvare. Se remarcă faptul că se produc efecte de margine.
Exemplul 3. Se dă funcţia f prin următorul tabel:
xi 0 1 2
f ( xi )  4 1 10
Se cere polinomul Lagrange P ( x ) .
Rezolvare.

64
( x  1)( x  2) ( x  0)( x  2) ( x  0)( x  1)
P ( x)  (4)   1  10 
(0  1)(0  2) (1  0)(1  2) (2  0)(2  1)
 2 x 2  3 x  4.

5.2.4. Diferenţe divizate


Formula restului aminteşte oarecum de restul unei alte aproximări
polinomiale a unei funcţii de n ori continuu diferenţiabilă – formula lui
Taylor. Vom arăta că şi polinomul lui Lagrange se poate exprima sub o
formă similară cu polinomul lui Taylor, în care derivatele se înlocuiesc cu
diferenţe divizate.
Diferenţa divizată de ordinul zero în x0 este
[ x0 ] f  f ( x0 ) .
Prin definiţie diferenţa divizată de ordinul întâi pe nodurile distincte
xi şi x j este numărul notat cu [ xi , x j ] f şi este dat de:
f ( x j )  f ( xi )
[ xi , x j ] f  .
x j  xi
Diferenţa divizată de ordinul al doilea pe nodurile distincte xi , xj
şi x k este:
[ x j , x k ] f  [ xi , x j ] f
[ xi , x j , x k ] f  .
x k  xi
În general, diferenţa divizată de ordinul k pe k  1 noduri distincte se
defineşte prin recurenţă:
[ x 2 ,..., x k 1 ] f  [ x1 ,..., xk ] f
[ x1 , x 2 ,..., xk 1 ] f 
x k 1  x1
în care diferenţele divizate de la numărător sunt de ordin k  1 .
Rezultatul care urmează precizează că diferenţa divizată depinde de
nodurile în care este definită şi de valorile funcţiei f în aceste noduri.
Teorema 5.2.4.1. Pentru orice k  2 şi orice noduri distincte
x1 , x 2 ,..., x k are loc formula:
k f ( xi )
[ x1 , x2 ,..., xk ] f  
k
i 1
 ( xi  x j ) .
j 1
j i
Demonstraţie. Facem inducţie după k. Pentru k  2 , formula din
enunţ se verifică conform definiţiei diferenţei divizate de ordinul întâi.
Presupunem adevărată formula din enunţ pentru k noduri distincte oarecare
şi verificăm pentru k  1 noduri. Utilizând formula de recurenţă din definiţia
diferenţei divizate de ordinul k şi ipoteza de inducţie avem:

65
 
 
 k 1 k 
1  f ( xi ) f ( xi )  f ( xk 1 )
[ x1 , x2 ,..., xk 1 ] f    
xk 1  x1  i  2 k 1 i 1
k  k
  ( xi  x j )  ( xi  x j )   ( xk 1  x j )
 j 2 j 1  j 1
 j i j i 
k f ( x )( x  x )  f ( x )( x  x ) f ( x1 ) k  1 f ( xi )
i i 1 i i k 1
    .
k 1 k 1 k
i2 i 1
( xk 1  x1 )  ( xi  x j )  ( x1  x j )  ( xi  x j )
j 1 j 2 j 1
j i j i
Diferenţele divizate definite prin recurenţă furnizează un algoritm de
complexitate O( n 2 ) .
Algoritmul 5.2.4.1.
Intrări: n + 1 = numărul de puncte
x = tabloul celor n + 1 puncte
y = tabloul valorilor funcţie f în cele n + 1 puncte
Ieşiri: y = diferenţele divizate de ordin 0 .. n în x0
{
pentru i  1 : n
pentru j  n : i
y j  ( y j  y j 1 ) /( x j  x j 1 )

}.

5.2.5. Formula lui Newton de interpolare


Cu ajutorul diferenţei divizate putem exprima restul la interpolarea
Lagrange sub o altă formă. Avem:
n n xxj
f ( x )  P ( x )  f ( x )   f ( xi ) 
i0 j  0 xi  x j
j i
n f ( x) n f ( xi )
  ( x  xi ) (   ),
n
i0 i0
 ( x  xi ) ( xi  x )  ( xi  x j )
i0 j i

de unde, conform relaţiei din teorema 5.2.4.1.


f ( x )  P( x)  wn ( x)  [ x, x0 ,..., x n ] f ,
unde (am renotat) wn ( x)  ( x  x0 )( x  x1 )  ( x  x n ) .
Polinomul Lagrange
P ( x)  Ln ( x)
se scrie:
Ln( x )  L1 ( x)  ( L2 ( x)  L1 ( x))  ...  ( Ln ( x)  Ln 1 ( x)) .
Pentru fiecare m, 2  m  n , polinomul

66
Lm ( x)  Lm 1 ( x )
are gradul cel mult m şi
Lm ( x j )  Lm 1 ( x j )  0 ,
pentru 0  j  m .
Deci
Lm ( x)  Lm 1 ( x)  a m 1wm 1 ( x) ,
unde
m 1
w m  1 ( x)   ( x  x j ) .
j 0
Pentru x  xm obţinem f ( x m )  Lm 1 ( x m )  a m 1wm 1 ( x m ) ;
comparând cu expresia lui f ( x )  P( x ) , pentru n  m  1 şi x  x m ,
deducem a m 1  [ xm , x0 , x1 ,..., xm 1 ] f  [ x0 , x1 ,..., x m ] f .
Se obţine polinomul lui Newton de interpolare:
P( x )  f ( x0 )  [ x0 , x1 ] f ( x  x0 )  ...  [ x0 , x1 ,..., x n ] f ( x  x0 )( x  x1 )...( x  x n 1 ) .
Calculul polinomului Newton de interpolare se exprimă prin:
Algoritmul 5.2.5.1.
Intrări: n = gradul polinomului de interpolare
a = abscisa în care se calculează polinomul
x = tabloul punctelor de interpolare
y = tabloul valorilor prin f a punctelor de interpolare
Ieşiri:  = valoarea polinomului de interpolare în a
{
apelează Dif._div. (n,x,y)
s  y0
P 1
pentru i  1 : n
{
P  P  (a  xi 1 )
s  s  P  yi
}
 s
}.
5.2.6. Diferenţe finite
Nodurile de interpolare x0 , x1 , ..., x n sunt echidistante dacă
xi  x0  ih , i  0, 1, ..., n .
Numim diferenţă finită de ordinul întâi în x f ( x)  f ( x  h)  f ( x) .
Se verifică direct că  este un operator liniar, iar diferenţa finită de
ordinul k în x se defineşte prin relaţia
k f ( x )   ( k 1 f ( x )) , k  2, 3, ... .

67
Formula de calcul pentru k f ( x ) este următoarea:
k
k f ( x )   (1) k  j C kj f ( x  jh) .
j 0
Pentru demonstraţie, procedăm prin inducţie. Avem:
k 1 f ( x)  k f ( x  h)  k f ( x)
k k
  (1) k  j C k f ( x  h  jh)   (1) k  j C k f ( x  jh).
j j
j 0 j 0
Făcând în prima sumă schimbarea de indice j '  j  1 şi renotând apoi
j '  j , obţinem:
k 1 k
k 1 f ( x)   (1) k  j '1 C kj '1 f ( x  j ' h)   (1) k  j 1 C kj f ( x  jh)
j ' 1 j 0
k 1 (k 1) k 1
 (1) C k 1 f ( x  (k  1)h) 
k
  (1) k 1 j (C kj 1  C kj ) f ( x  jh)  (1) k 1 0 C k01 f ( x  0  h)
j 1
k 1
  (1) k 1 j C kj 1 f ( x  jh).
j 0
Prin inducţie după k, se arată că are loc:
k f ( xi )
[ xi , xi 1 ,..., xi  k ] f  .
k! h k

5.2.7. Formule de interpolare pe noduri echidistante


Să presupunem că punctul x în care se face interpolarea pe nodurile
echidistante x0 , x1 , ..., x n este apropiat de x0 . Făcând transformarea
x  x0  th în polinomul lui Newton de interpolare şi ţinând cont de legătura
dintre diferenţe finite şi divizate, obţinem după simplificări:
t (t  1) 2 t (t  1)...(t  n  1) n
P( x0  th)  f ( x0 )  t f ( x0 )   f ( x0 )  ...   f ( x0 ).
2! n!
Aceasta se numeşte formula lui Newton progresivă pe noduri
echidistante.
Dacă x este apropiat de x n , făcând transformarea i '  n  1  i ,
i  0, 1, ..., n , formula lui Newton devine:
P( x)  f ( x n )  [ x n , x n 1 ] f ( x  x n )  [ x n , xn 1 , x n  2 ] f ( x  x n )( x  x n 1 ) 
 ...  [ xn , x n 1 ,..., x0 ] f ( x  x n )( x  x n 1 )...( x  x1 ).
Făcând transformarea x  x n  th şi ţinând cont de legătura dintre
diferenţe finite şi divizate, obţinem după simplificări:

68
t (t  1) 2
P ( xn  th)  f ( xn )  t f ( xn 1 )   f ( xn  2 )  ... 
2!
t (t  1)...(t  n  1) n
  f ( x0 ),
n!
numit polinomul Newton regresiv pe noduri echidistante.
Formula lui Newton progresivă pe noduri echidistante conduce la
următorul algoritm.
Algoritmul 5.2.7.1.
Intrări: n + 1 = numărul de puncte
h = pasul
x = tabloul punctelor de interpolare
x0  ah = abscisa în care se calculează polinomul
Ieşiri:  = valoarea polinomului de interpolare în x0  ah
{
  f ( x0 )
pentru k  1 : n
{
P 1
pentru q  1 : k  1
P  P  (a  q  1) / q
dacă k este par atunci
d  f ( x0 )
altfel
d   f ( x0 )
pentru j  1 : k
{
c 1
pentru q  1 : j
c  c  (k  q  1) / q
dacă (k  j ) este par atunci d  d  c  f ( x0  jh)
altfel
d  d  c  f ( x0  jh)
}
}
}.

Exemplu. Se dă funcţia f prin următorul tabel:


xi 0 1 2 3
yi 4 1 10 29

69
Se cere polinomul Newton progresiv.
Rezolvare. Se întocmeşte un tabel cu diferenţe finite şi se obţine:
4 6
P (0  t  1)  4  5t  t (t  1)  t (t  1)(t  2)  P ( x )  t 3  t 2  5t  4
2! 3!
.

5.2.8. Interpolarea polinomială Hermite


Fie f : [a, b]  R şi x0 , x1 , ..., x n noduri de interpolare, toate
distincte. Se caută un polinom P astfel încât:
 P ( xi )  f ( xi )  f i
 P ' ( x )  f ' ( x )  f ' , i  0, 1, ..., n .
 i i i

Teorema 5.2.8.1. Există un polinom P şi numai unul singur de


grad cel mult 2n  1 astfel încât:
 P ( xi )  f i
 P' ( x )  f '
 i i pentru
i  0, 1, ..., n .
Demonstraţie. Presupunem că există polinoamele P şi Q de grad cel
mult 2n  1 astfel ca P ( xi )  Q( xi )  f i şi P' ( xi )  Q' ( xi )  f 'i pentru
i  0, 1, ..., n . Polinomul R  P  Q , care are de asemenea gradul cel mult
2n  1 , admite fiecare xi ca rădăcină dublă ( R( xi )  R' ( xi )  0 ). Deoarece
R are cel puţin 2n  2 rădăcini şi are gradul cel mult 2n  1 urmează că R
este polinomul nul şi deci P  Q .
Să arătăm că polinomul
n n
P ( x)   hi ( x) f i   k i ( x) f 'i ,
i 0 i0
unde:
hi ( x)  [1  2( x  xi )'i ( xi )]2
i ( x)
k i ( x )  ( x  xi )2i ( x )
cu
n x xj
i ( xi )  
j  0 xi  x j
j i

îndeplineşte condiţiile din enunţ.


Deoarece i este un polinom de grad n, hi şi k i sunt polinoame de
grad 2n  1 . Cum
i ( x j )   ij ,
hi ( xi )  [1  2( xi  xi )'i ( xi )]2i ( xi )  1 ,
k i ( xi )  ( xi  xi )2i ( xi )  0 ,
pentru j  i avem:
hi ( x j )  [1  2( x j  xi )'i ( xi )]2 2
i ( x j )  0 , k i ( x j )  ( x j  xi )i ( x j )  0 ,

adică P ( x k )  f k .
h'i ( x)  2'i ( xi )2 i ( x )  [1  2( x  xi )'i ( xi )]2i ( x )'i ( x ) ,

70
k 'i ( x )  2i ( x )  2( x  xi )i ( x )'i ( x ) .
Deci:
h'i ( xi )  2'i ( xi )  2'i ( xi )  0 , k 'i ( xi )  2i ( xi )  1 ,
pentru j  i avem h'i ( x j )  0 , k 'i ( x j )  0 , deci P' ( xk )  f ' k .
Pentru evaluarea erorii la interpolarea Hermite avem
Teorema 5.2.8.2.
Dacă f  C 2n  2 [a, b] şi a  x0  x1  ...  xn  b atunci
( x  x0 ) 2 ( x  x1 ) 2 ...( x  x n ) 2 ( 2n  2)
f ( x )  P ( x)  f ( ) ,
(2n  2)!
unde a  min( x, x0 )    max(x, x n )  b .
Demonstraţia este asemănătoare celei de la interpolare Lagrange.
Polinomul P având expresia
n n
P ( x)   hi ( x) f i   k i ( x) f 'i
i 0 i0
se numeşte polinomul lui Hermite construit pe baza condiţiilor de interpolare
 P ( xi )  f ( xi )  f i
 P ' ( x )  f ' ( x )  f ' , i  0, 1, ..., n .
 i i i

Pentru calculul valorii polinomului Hermite într-un punct a a fost


definit un O( n 2 ) - algoritm.

Algoritmul 5.2.8.1.
Intrări: n + 1 = numărul nodurilor de interpolare
a = abscisa în care se calculează valoarea polinomului
x = tabloul celor n + 1 puncte de interpolare
y = tabloul valorilor funcţiei de interpolat în cele n+1 puncte
y _ d = tabloul valorilor derivatelor funcţiei de interpolat în cele
n+1 puncte
Ieşiri: h = valoarea polinomului Hermite în a
{
s 0
pentru i  0 : n
{
1
_ d  0
pentru j  0 : n
dacă j  i atunci
{
    (a  x j ) /( xi  x j )

 _ d   _ d  1 /( xi  x j )

71
s  s + + 1  2  ( a  x i )  l _ d       y i  ( a  x i )      y _ d i
}
hs
}.

5.2.9. Interpolarea prin funcţii spline


Studiul interpolării polinomiale ne conduce la două constatări. Prima
este costul calculelor care devine ridicat când gradul polinomului este mare,
iar a doua este că se „stăpâneşte” rău efectul de margine dacă intervalul de
interpolare este mare.
O altă aproximare este cea locală, adică făcând interpolarea pe
subintervale prin funcţii spline.
Fie x0 , x1 , ..., x n punctele de interpolare. Pe fiecare subinterval
[ xi , xi 1 ] se caută un polinom de interpolare S i astfel încât condiţiile de
interpolare să fie îndeplinite:
S i ( xi )  f ( xi )  f i pentru i  0, 1, ..., n .
În plus se cere ca S i să fie de clasă C 2 . De asemenea, pentru
i  1, 2, ..., n  1 :
S 'i 1 ( xi )  S 'i ( xi ) , continuitatea primei derivate,
S "i 1 ( xi )  S "i ( xi ) ,
continuitatea derivatei a doua.
Condiţiile de interpolare şi cele de clasă impun a căuta S i de gradul
trei. Exprimăm S i în funcţie de f "i şi
f "i  1 (necunoscute încă).
Prin interpolare liniară avem, punând hi  xi 1  xi :
xi 1  x
S "i ( x )  f "i  f "
hi
.
Integrând de două ori obţinem:
( x i 1  x ) 3 ( x  xi )
S i ( x)  f "i  f "i 1
6 hi 6 hi
,
unde ai şi bi sunt constante de integrare, care se pot calcula ţinând cont de
S i ( xi )  f i şi S i ( xi 1 )  f i 1 , adică
2
hi
f "i  ai
6

şi

72
2
hi
f "i 1  bi h
6

,
de unde
fi hi
ai   f "i şi
hi 6

f i 1 hi
bi   f "i 1
hi 6

.
Înlocuind ai şi bi prin expresiile lor obţinem:

 ( x i 1  x ) 3 hi
S i ( x)  f "i   (
 6 h 6
 i
fi f i 1
 ( x i 1  x )  (x
hi hi

Punem condiţia ca derivata să fie o funcţie continuă pe intervalul dat.


Avem
  ( xi 1  x ) 2 hi
S 'i ( x )  f "i  
 2 hi 6

S 'i ( x i )  S 'i 1 ( x i ) ,

echivalent cu:
hi hi fi f i 1
 f "i  f "i 1    f "i
3 6 hi hi

,
sau încă pentru i  1, 2, ..., n  1 :
hi f "i 1 2( hi  hi 1

.
Am obţinut un sistem de n  1 ecuaţii liniare cu n  1 necunoscute.
Precizând valorile lui f "0 şi
f "n se poate rezolva sistemul liniar tridiagonal.

73
Exemplu. Pe intervalul [5,5] fie funcţiile f şi g definite prin
1
şi g ( x) 
2
f ( x)  e  x 2 . Să se facă interpolarea prin funcţii spline cu 3,
x 1
5 şi respectiv 9 puncte echidistante şi să se dea valorile derivatelor la
extremităţi.
Rezolvare. Se constată că pentru 9 puncte de interpolare avem o foarte
bună aproximare şi nici un efect de margine.

5.3. Aproximarea în sensul celor mai mici pătrate


5.3.1. Problema fundamentală a aproximării liniare
Exemplu. Să aproximăm pe f (x) pe intervalul [ a, b] printr-
un polinom P (x ) .
Se pune problema să se găsească P astfel ca:
1
2
a)  ( f ( x)  P ( x)) dx să fie minimă;
0
1 1 d
2
b)  ( f ( x)  P ( x )) dx   ( f ( x)  P( x )) 2 dx să fie minimă;
0 0 dx
c) max | f ( x )  P ( x) | să fie minimă.
0  x 1
Este necesară o măsură numerică a „distanţei” dintre funcţia de
aproximat şi polinomul aproximant într-un spaţiu vectorial normat.
Fie X un spaţiu vectorial normat peste corpul K (adesea K  R ).
Notăm prin ( , ) produsul scalar şi prin  norma.
Fie x1 , x 2 ,..., x n , n elemente din X liniar independente. Trebuie să
aproximăm y printr-o combinaţie liniară de x1 , x 2 ,..., x n , adică, să găsim
a1 , a 2 ,..., a n cu ai  K , astfel ca y  (a1 x1  a 2 x 2  ...  a n x n ) să fie cât
mai mic posibil.
Definiţia 5.3.1.1. Cea mai bună aproximare a lui y printr-o
combinaţie liniară de ( x )
i i 1 n este un element a1 x1  a 2 x 2  ...  a n x n
astfel ca:
y  (a1 x1  a 2 x 2  ...  a n x n )  y  (b1 x1  b2 x 2  ...  bn x n ) , bi  K .
Cea mai bună aproximare constă în a găsi minimul normei erorii.
Drept norme se consideră:
1) dacă X  R atunci x  x (modulul);
2) dacă X  Rn atunci x  ( x12  x 22  ...  x n2 )1 / 2 (norma
euclidiană);
3) dacă X  C (a, b) (= spaţiul vectorial al funcţiilor continue pe
[ a, b] ) atunci:
a) f  amax  x b
f ( x) (norma convergenţei uniforme);

74
1/ 2
b 
b) f    | f ( x) | 2 dx  (norma convergenţei pătratice).
a 

5.3.2. Teoreme fundamentale


Teorema 5.3.2.1. Fie n elemente liniar independente din
X : x1 , x2 , ..., xn . Pentru orice y  X , problema celei mai bune aproximări
are o soluţie.
Verificare. Trebuie arătat că funcţia norma erorii
e( a1 , a 2 ,..., a n )  y  ( a1 x1  a 2 x 2  ...  a n xn )

are un minim. Pentru aceasta, se arată că această funcţie este continuă şi că


este suficient a limita mulţimea de variaţie a lui a1 , a 2 ,..., a n la o mulţime
mărginită şi închisă (exteriorul acestei mulţimi nu conţine minimul) pentru a
aplica teorema: orice funcţie continuă pe o mulţime închisă şi mărginită din
R n îşi atinge minimul său.
Corolarul 5.3.2.1. Fie f  C (a, b) , n întreg fixat.
Problema: să se găsească ( ai ) astfel ca:

min max | f ( x)  (a 0  a1 x  ...  a n x n ) |


ai a  x  b

are o soluţie. Această soluţie este unică.


Aceasta se numeşte aproximarea Tchebycheff de grad n a lui f.
Corolar 5.3.2.2. Fie f  C (a, b) , n întreg fixat.
Problema: să se găsească ( ai ) astfel ca:
b
min  | f ( x)  (a 0  a1 x  ...  a n x n ) | dx
ai a
are o soluţie. Această soluţie este unică.
Aceasta se numeşte aproximarea continuă în sensul celor mai mici
pătrate.
Corolarul 5.3.2.3. Date fiind x0 , x1 ,..., x k , k  1 puncte

distincte cu k  n , problema: să se găsească ( ai ) astfel ca:


n
min  ( f ( xi )  (a0  a1 xi  a 2 xi2  ...  a n xin )) 2
ai i  0

are o soluţie.
Aceasta se numeşte aproximarea discretă în sensul celor mai mici
pătrate.

75
5.3.3. Aproximarea discretă în sensul celor mai mici pătrate
a) Cazul general
Să se determine P : R  R unde
P ( x)  a0 u 0 ( x)  a1u1 ( x)  ...  a n u n ( x) ,
ceea ce revine la a determine (n  1) numere ( ai ) .
Cele (n  1) funcţii liniar independente (u i ) sunt date. Se pot alege,
u k ( x)  x k ( k  0, 1, ..., n ) sau funcţiile trigonometrice sau cele
exponenţiale. Se cunosc (k  1) perechi ( xi , yi ) ( i  0, 1, ..., k ) cu k  n ,
unde xi sunt distincte. Fie ri  y i  P( xi ) , i  0, 1, ..., k .
k
2
Să se determine a  (ai )  R n 1 astfel ca R( a)   ri să fie minim.
i 0
Considerând norma euclidiană în R avem R(a ) || r 2 || , unde
k 1 ,

r  ( ri ) 0i  k  R k 1 . Luăm: y  ( y i ) 0i  k  R k 1 . U  (uij )  (ui ( x j )) ,


matricea rectangulară cu (k  1) linii şi (n  1) coloane.
Avem || r || 2  (r , r )  ( y  Ua, y  Ua) .
Minimul lui R este caracterizat prin R (a )  R (a  b) ,   R  {0} ,
b  R n 1 , adică:
( y  Ua, y  Ua)  ( y  U ( a  b), y  U ( a  b))
( y  Ua, y  Ua)  ( y  Ua  Ub, y  Ua  Ub)
0  2( y  Ua, Ub)   2 (Ub,Ub).
Pentru   0 , împărţind prin 2 şi făcând  să tindă spre zero obţinem
0  ( y  Ua,Ub) . pentru   0 , împărţind prin 2 şi făcând  să tindă spre
zero obţinem 0  ( y  Ua, Ub) . Cele două inegalităţi dau ( y  Ua, Ub)  0 .
Notând cu U T transpusa lui U obţinem (U T y  U T Ua, b)  0 ,
b  R n 1 . Deci valoarea minimă a funcţiei R verifică sistemul liniar
U T Ua  U T y , unde U T U este o matrice pătratică de ordin n  1 .
Acest sistem se numeşte sistemul ecuaţiilor normale.
b) Cazul liniar
În acest caz particular, se caută polinomul de grad unu,
k k
2 2
P( x)  a 0  a1 x astfel ca  ( yi  a1 xi  a0 )   ( yi  b1 xi  b0 ) ,
i 0 i 0
(b0 , b1 )  R 2 . Fie X  ( x i )  R k 1 şi Y  ( y i )  R k 1 . Sistemul de ecuaţii
normale devine:

76
1 x0   y0 
1 
x1  a y 
 1 1 1  1     1 1 1  1  1 
 x x x  x 1 x2  0    x x x  x  y 2  ,
 0 1 2 k a
  1  
0 1 2 k
  
1 
xk  y 
  k
 k   k 
 k  1  xi    yi 
 i  0  a0    i  0  . x
1 k
adică
   Notând  xi ,
2  a1   
k k k k  1 i 0
 i  i 
x x   xi y i 
 i 0 i 0  i0 

1 k
y  yi , deoarece ( xi  x )( yi  y )  xi yi  x yi  yxi  x y , avem
k  1 i 0

1 k 1 k x k y k
 ( xi  x )( yi  y )   xi y i   yi   xi  x y , care,
k  1 i 0 k  1 i 0 k  1 i 0 k  1 i 0

în statistică, se numeşte covarianţa vectorilor X şi Y şi se notează


1 k
( X , Y )   ( xi  x )( yi  y ) .
k  1 i0
2 1 k 2
Dacă X  Y , obţinem ( X )   ( xi  x ) .
k  1 i 0
( X , Y )
Rezolvarea sistemului dă a1  , a 0  y  a1 x .
( X 2 )

5.4. Exerciţii
1) Să se determine polinomul de interpolare Lagrange care aproximează
funcţia f, cu valorile din tabelul alăturat:
xi 0 1 2
f i 0 1 27
2) Să se calculeze, folosind polinomul de interpolare
Lagrange, funcţia definită de următorul tabel:
xi 0 1,2 2,5 4,0 5,1 6,0 6,5 7,0
f i 3,00 6,84 14,25 27 39,21 51,00 58,25 66,00
Se va evalua f ( 2,00) .

77
3) Pentru x0  1 , h  1 , să se determine diferenţele finite pentru
f ( x)  x 4  x 2  1 .
1
4) Fie funcţia f : R  R definită prin f ( x)  .
1 x2
a) Construiţi polinomul P de interpolare Lagrange pe punctele 0, 1, 3, 5.
b) Calculaţi P ( 4) şi comparaţi cu f (4) .
c) Calculaţi polinomul Q al lui Hermite astfel ca:
Q (0)  f (0) , Q ' (0)  f ' (0) , Q(5)  f (5) , Q ' (5)  f ' (5) .
Deduceţi valoarea lui Q ( 4) . Comparaţi f (4) cu Q ( 4) . Care este
concluzia?
5) Să se determine valorile polinoamelor de interpolare: Lagrange,
Aitken, Newton şi Hermite ce aproximează următoarele funcţii pe nodurile
de interpolare corespunzătoare în punctele precizate şi să se calculeze
diferenţele finite şi divizate:
a) f ( x)  x 3 şi nodurile: 0; 2; 4; 6; 8 în 0,1;
b) f ( x)  x 3  2 x 2  x  3 şi nodurile 1; 2; 3; 4 în 1,1;
x4
c) f ( x)  şi nodurile 2; 3; 4; 5; 6 în 4,5.
ln x
De asemenea, să se scrie programele în C pentru metodele mai sus
menţionate.

CAPITOLUL 6
Rezolvarea ecuaţiilor diferenţiale ordinare de ordinul I

6.1. Introducere
Ecuaţiile diferenţiale numerice ordinare sunt o parte a analizei
numerice care studiază soluţia numerică a ecuaţiilor diferenţiale ordinare
(ODE). Această parte este cunoscută de asemenea sub denumirea de
integrare numerică, dar unii cercetători rezervă acest termen pentru calculul
integralelor.
Multe ecuaţii diferenţiale nu pot fi rezolvate analitic, caz în care
trebuie să ne mulţumim cu o aproximaţie a soluţiei. Algoritmii studiaţi aici
pot fi folosiţi pentru a calcula astfel de aproximaţie. O metodă alternativă
este să folosim tehnicile din calcul pentru a obţine o dezvoltare în serie a
soluţiei.
Ecuaţiile diferenţiale ordinare apar în multe discipline ştiinţifice, de
exemplu în mecanică, chimie, biologie şi economie. În plus, unele metode în
numerica ecuaţiilor diferenţiale ordinare transformă ecuaţia cu derivate
parţiale într-o ecuaţie diferenţială ordinară, care trebuie rezolvată.

78
Problema
Vrem să aproximăm soluţia ecuaţiei diferenţiale:
y '(t )  f (t , y(t )), y(t0 )  y0 (1)
unde f este o funcţie care duce [t0,∞) × Rd în Rd, şi condiţia iniţială y0    Rd
este un vector dat.
Formularea de mai sus se numeşte problema valorii iniţiale (IVP).
Teorema Picard – Lindelöf afirmă că există o soluţie unică, dacă f este
Lipschitz continuă. În contrast, problemele valorii mărginite (BVP)
menţionează soluţia y în mai mult de un punct. Diferite metode trebuie să fie
folosite pentru a rezolva BVP, de exemplu shooting method, multiple
shooting sau metode globale metoda diferenţelor finite sau metode sintagmă.
Ne limităm la ecuaţii diferenţiale de ordinul I (adică, în ecuaţie apare
doar prima derivată a lui y). Oricât, o ecuaţie de ordin superior poate fi uşor
convertită într-o ecuaţie de ordinul I introducând noi variabile. De exemplu,
ecuaţia de ordinul II
y"  y

poate fi rescrisă ca ecuaţiile de ordinul I:

y '  z şi z '   y .

6.2. Metode
Prezentăm două metode elementare.

6.2.1. Metoda Euler


Plecând de la ecuaţia diferenţială (1), înlocuim derivata y ' prin
diferenţa finită
y (t  h)  y (t )
y '(t )  (2)
h
care conduce la formula următoare:
y (t  h)  y (t )  hf (t , y (t )) (3)
Această formulă este de obicei aplicată în felul următor. Alegem un
pas h şi construim şirul t0, t1 = t0 + h, t2 = t0 + 2h, … Notăm prin yn o estimare
numerică a soluţiei exacte y(tn). motivaţi de (3), calculăm aceste estimări prin
următoarea schemă recursivă:
yn 1  yn  hf (tn , yn ) (4)
Aceasta este metoda Euler (sau metoda Euler forward, în contrast cu
metoda Euler backward, care va fi descrisă în continuare). Metoda este
numită după Leonhard Euler care a descris-o în 1768.

79
Metoda Euler este un exemplu de metodă explicită. Aceasta înseamnă
că noua valoare yn 1 este definită în funcţie de ceva ce deja se cunoaşte,
precum yn .

6.2.2. Metoda Euler backward


Dacă, în locul lui (2), folosim aproximarea:
y (t )  y (t  h)
y '(t )  (5)
h
obţinem metoda Euler backward:
yn 1  yn  hf (tn 1 , yn ! ) (6)
Metoda Euler backward este o metodă implicită, adică trebuie să
rezolvăm o ecuaţie pentru a găsi yn 1 . Adesea folosim o iteraţie de punct fix
sau metoda Newton – Raphson (sau modificată) pentru a obţine asta.
Bineînţeles, ia timp să rezolvăm această ecuaţie; acest cost trebuie luat în
considerare când selectăm metoda pe care o folosim. Avantajul metodelor
implicite precum (6) este că ele sunt de obicei mai stabile pentru a rezolva o
ecuaţie mare, adică poate fi folosit un pas h mai mare.

6.3. Generalizări
Metoda Euler este adesea nu destul de precisă. Mai precis, ea are
doar ordinul 1, acest lucru făcându-i pe matematicieni să caute metode
de ordin mai mare.
O posibilitate este folosirea nu doar a valorii anterior calculată yn
pentru a determina yn 1 , dar şi determinarea faptului ca soluţia să depindă
de mai multe valori precedente. Aceasta conduce la aşa – numita metoda
multi – pas. Probabil cea mai simplă este metoda Leapfrog care este de
ordinul 2 şi, vorbind grosolan, se bazează pe două valori de timp.
Aproape toate metodele practice multi – pas sunt din familia metodelor
multi – pas liniare, care au forma:
 k yn  k   k 1 yn  k 1     0 yn 
h  k f (tn  k , yn  k )  k 1 f (tn  k 1 , yn  k 1 )    0 f (tn , yn )  .
O altă posibilitate este să folosim mai multe puncte în intervalul
[tn,tn+1]. Aceasta conduce la familia metodelor Runge – Kutta. Ambele idei
pot fi combinate, metodele rezultante fiind numite metode liniare generale.
6.3.1. Metode Runge – Kutta

80
În analiza numerică, metodele Runge – Kutta sunt o familie importantă
de metode iterative implicite şi explicite pentru aproximarea soluţiilor unor
ecuaţii diferenţiale ordinare. Aceste tehnici au fost dezvoltate în jurul anului
1900 de matematicienii germani C. Runge şi M. W. Kutta.
6.3.1.1. Metoda clasică Runge – Kutta de ordin 4
Fie problema y '  f (t , y ), y (t0 )  y0 . Metoda clasică Runge – Kutta
de ordin 4 (RK4) pentru această problemă este dată de ecuaţiile următoare:
h
yn 1  yn  (k1  2k2  2k3  k4 )
6
t n 1  tn  h
unde yn 1 este aproximarea RK4 pentru y (tn 1 ) şi
k1  f (tn , yn )
 h h 
k2  f  tn  , yn  k1 
 2 2 
 h h 
k3  f  tn  , yn  k2 
 2 2 
k4  f  tn  h, yn  hk3 

Astfel, valoarea următoare ( yn 1 ) este determinată de valoarea curentă


( yn ) plus produsul dintre mărimea intervalului (h) şi o pantă estimată. Panta
este o medie ponderată a pantelor:
 k1 este panta de la începutul intervalului;
 k2 este panta de la mijlocul intervalului, folosind panta k1
h
pentru a determina valoarea lui y în punctul tn  folosind metoda lui
2
Euler;
 k3 este tot panta de la mijlocul intervalului, dar folosind
panta k2 pentru a determina valoarea lui y;
 k1 este panta de la sfârşitul intervalului, cu valoarea lui y
determinată folosind k3 .
Atunci,
k  2k2  2k3  k4
panta  1 .
6
Metoda RK4 este o metodă de ordin 4, adică eroarea pe pas este de
ordinul lui h5 , în timp ce eroarea totală acumulată are ordinul h 4 .

81
6.3.1.2. Metode Runge – Kutta explicite
Familia metodelor Runge – Kutta explicite este o generalizare a
metodei RK4. Ea este dată de:
s
yn 1  yn  h  bi ki ,
i 1
unde
k1  f (tn , yn )
k2  f  tn  c2 h, yn  a21hk1 
k3  f  tn  c3 h, yn  a31hk1  a32 hk2 

 
k s  f tn  cs h, ys  as1hk1  as 2 hk2  ...  as, s 1hk s 1 .
Metoda Runge – Kutta este consistentă dacă
i 1
 aij  ci pentru i  2,..., s .
j 1

6.3.1.3. Metode Runge – Kutta ajustative


Metodele ajustative produc o estimare a erorii de trunchiere locale a
unui pas simplu Runge – Kutta. Acest lucru se produce având două metode,
una de ordin p şi una de ordin p  1 .
Pasul cu ordinul cel mai mic este dat de
s
yn 1  yn  h  bi ki ,
i 1
unde ki sunt aceeaşi pentru metoda de ordinul cel mai înalt. Atunci, eroarea
este:
en 1  yn 1  yn 1
s
 h  (bi  bi )ki ,
i 1
p
care este O(h ) .

6.3.1.4. Metode Runge – Kutta implicite

82
Metodelor implicite sunt mai generale decât cele explicite. Soluţia
aproximativă a problemei valorii iniţiale reflectă numărul mai mare de
coeficienţi:
s
yn 1  yn  h  bi ki ,
i 1
unde
 s 
ki  f  tn  ci h, yn  h  aij k j 
 j 1

 .
Cel mai simplu exemplu de metodă Runge – Kutta implicită este
metoda Euler backward:
yn 1  yn  hf (tn  h, yn 1 ) .

6.3.2. Caracteristici
O bună implementare a uneia din aceste metode de rezolvare a
ecuaţiilor diferenţiale ordinare este necesară mai mult decât formula time –
stepping. Adesea este insuficient să folosim acelaşi pas tot timpul, deci au
fost dezvoltate metodele care variază pasul.
De obicei, pasul este ales astfel încât eroarea (locală) pe pas să fie mai
mică decât un nivel de toleranţă. Aceasta înseamnă că metodele trebuie de
asemenea să calculeze un indicator al erorii, o estimare a erorii locale.
O extindere a acestei idei este să alegem dinamic între diferite metode
de diferite ordine (aceasta se numeşte metoda variaţiei ordinului). Metodele
de extrapolare sunt des folosite pentru a construi diferite metode de diferite
ordine. Alte caracteristici sunt:
 ieşirea densă: aproximări numerice mici pentru întreg intervalul de
integrare, şi nu doar în punctele t0, t1, t2, ...
 locaţia evenimentului: găsirea timpul în care, o funcţie particulară se
anulează.
 ajutor pentru calcul paralel.
 când sunt folosite pentru integrare în raport cu timpul, reversibilitatea
timpului.

6.4. Metode alternative


Multe metode nu cad în contextul discutat aici. Unele clase de metode
alternative sunt:
 metodele multi – derivate, care folosesc nu numai funcţia f ci şi
derivatele ei. Această clasă include metodele Hermite – Obreschkoff
şi metodele Fehlberg, precum şi metode precum metoda Parker –
Sochacki, care calculează recursiv coeficienţii seriei Taylor a soluţiei
y.

83
 metode pentru ODE de ordinul 2. Spunem că toate ODE de ordin
superior pot fi transformate în ODE de primul ordin de tipul (1). În
timp ce aceasta este cu siguranţă adevărat, s-ar putea să nu fie cea
mai bună cale de procedat. În particular, metodele Nyström lucrează
direct cu ecuaţii de ordinul doi.
 metode geometrice intrinseci sunt special destinate pentru clase
speciale de ODE (de exemplu, integratorii simplectici pentru soluţia
ecuaţiilor hamiltoniene). Ele ţin cont că soluţia numerică respectă
geometria acestor clase.
Analiza
Analiza numerică nu este doar schiţa pentru metodele numerice, dar şi
pentru analiza lor. Cele trei concepte centrale în această analiză sunt:
convergenţa, ordinul şi stabilitatea.
Convergenţa
O metodă numerică este convergentă dacă soluţia numerică se apropie
de soluţia exactă când pasul h tinde către 0. mai precis, cerem ca pentru
fiecare ecuaţie diferenţială ordinară (1) cu o funcţie Lipschitz f şi pentru
orice t* > 0,
lim max yn, h  y (tn )  0
h0  t 
n  0,
.
 
 h 
Toate metodele menţionate mai sus sunt convergente. De fapt,
convergenţa este o condiţie sine qua non pentru orice schemă numerică.
Consistenţa şi ordinul
Presupunem că metoda numerică este:
yn  k   (tn  k ; yn , yn 1 , , yn  k 1 ; h) .
Eroarea locală a metodei este eroarea făcută de un pas al metodei.
Adică, ea este diferenţa dintre rezultatul dat de metodă, presupunând că nu a
fost făcută nici o eroare în paşii anteriori, şi soluţia exactă:
hn  k   (tn  k ; y (tn ), y (tn 1 ), , y (tn  k 1 ); h)  y (t n  k ) .
hn  k
Metoda este consistentă dacă lim  0.
h0 h
Metoda este de ordinul p dacă  hn  k  O(h p 1 ) pentru h  0 .
Deci, o metodă este consistentă dacă are un ordin mai mare decât 0.
Metoda Euler (forward) (4) şi metoda Euler backward (6) introduse mai sus
au amândouă ordinul 1, deci sunt consistente. Majoritatea metodelor folosite
în practică ating un ordin mare. Consistenţa este o condiţie necesară pentru
convergenţă, dar nu şi suficientă; pentru ca o metodă să fie convergentă
trebuie să fie atât consistentă cât şi stabilă în zero.

84
Un concept asociat este eroarea globală, adică eroarea făcută în toţi
paşii pe care trebuie să-i atingem la timpul fixat t. explicit, eroarea globală la
t  t0
timpul t este y N  y (t ) unde N  . Eroarea globală a unei metode cu
h
un pas de ordinul p este O(h p ) ; în particular, o astfel de metodă este
convergentă. Această afirmaţie nu este neapărat adevărat pentru metodele
multi – pas.
Stabilitatea şi stiffness
Pentru unele ecuaţii diferenţiale, aplicarea unor metode standard –
precum metoda Euler, metodele explicite Runge – Kutta sau metodele multi
– pas (de exemplu, metodele Adams – Bashforth) – expun instabilitatea în
soluţie, totuşi alte metode pot conduce la soluţii stabile. Acest
“comportament dificil” în ecuaţie (care nu trebuie neapărat să fie dificilă)
este descris ca rigiditate, şi adesea este cauzat la prezenţa unor scale de timp
diferite în problema de bază. Problemele rigide sunt omniprezente în
cinematica chimică, teoria controlului, mecanica solidului, predicţia vremii,
biologie şi electronică.

CAPITOLUL 7
Integrarea numerică

7.1. Introducere

85
În analiza numerică, integrarea numerică constituie o familie vastă de
algoritmi pentru calculul valorii numerice a unei integrale definite, şi prin
dezvoltare, termenul este de asemenea numit uneori folosit să descrie soluţia
numerică a unei ecuaţii diferenţiale. Termenul cvadratură numerică (pe scurt,
adesea, cvadratură) este mai mult sau mai puţin sinonim pentru integrarea
numerică, special ca aplicat integralelor unu – dimensionale. Integrarea 2 –
dimensională şi mai mare este uneori descrisă ca cubatură, deşi sensul
cvadraturii este înţeles la fel de bine şi pentru integrări de dimensiune mai
mare.
Problema fundamentală considerată de integrarea numerică este să
calculăm o soluţie aproximativă a unei integrale definite:
b
 f ( x)dx .
a
Dacă f ( x) este o funcţie netedă peste o un număr mic de dimensiuni
şi limitele de integrare sunt mărginite, atunci există multe metode de
aproximare a integralei cu o precizie arbitrară.
Legătura cu ecuaţiile diferenţiale
b
Problema evaluării integralei  f ( x)dx poate fi redusă la problema
a
valorii iniţiale pentru o ecuaţie diferenţială ordinară. Dacă integrala de mai
sus se notează cu I (b) , atunci funcţia I satisface
I '( x )  f ( x), I (a )  0 .
Metode dezvoltate pentru ecuaţii diferenţiale ordinare, precum
metodele Runge – Kutta, pot fi aplicate pentru problema formulată şi astfel
pot fi folosite pentru a evalua integrala.
Această ecuaţie diferenţială are o formă specială: membrul drept
conţine doar variabila dependentă (x) şi nu variabila independentă (I). Acest
fapt sugerează că pot fi dezvoltate metode specifice pentru evaluarea unei
integrale, şi că aceste metode pot lucra mai bine decât metodele generale
pentru problema valorii iniţiale pentru ecuaţii diferenţiale.
Motive pentru integrarea numerică
Există câteva motive pentru a face integrarea numerică. Integrantul
f ( x) poate fi cunoscut doar în anumite puncte, aşa cum este obţinut prin
prelevare. Unele sisteme încastrate şi alte aplicaţii pe calculatoare pot avea
nevoie de integrare numerică pentru acest motiv. Poate fi ştiută o formulă
pentru integrant, dar este dificil sau imposibil de găsit o antiderivată care este
2
o funcţie elementară. Un exemplu de asemenea integrant este f ( x )  e  x ,
antiderivata căruia nu poate fi scrisă într-o formă elementară. Poate fi găsită
o antiderivată simbolică, dar este mai uşor de calculat o aproximare numerică

86
decât de calculat antiderivata. Acesta poate fi cazul dacă antiderivata este
dată ca o serie infinită sau ca product, sau dacă evaluarea ei necesită o
funcţie specială ca nu este disponibilă.
Metode pentru integrale de dimensiune unu
Metodele de integrare numerică pot fi descrise ca, combinând
evaluările integrantului pentru a obţine o aproximare a integralei. O
importantă parte a analizei oricărei metodei de integrare numerică este
studiul comportării erorii aproximării ca o funcţie de numărul de evaluări ale
integrantului. O metodă care produce o eroare mică pentru un număr mic de
evaluări este de obicei considerată ca superioară. Reducând numărul de
evaluări ale integrantului reducem numărul de operaţii aritmetice implicate,
şi de aceea, reduce eroarea totală rotunjită. De asemenea, fiecare evaluare ia
timp, şi integrantul poate fi complicat.
Poate fi făcută integrarea numerică brută dacă integrantul se comportă
rezonabil (adică, este continuu) prin evaluarea integrantului cu creşteri foarte
mici.
Regulile cvadraturii bazate pe interpolarea funcţiilor
O clasă largă de reguli de integrare poate fi obţinută prin construcţia
funcţiilor de interpolare car sunt uşor de integrat. De obicei aceste funcţii de
interpolare sunt polinoame.

Exemplificare pentru regula dreptunghiului


Cea mai simplă metodă de acest tip este să punem ca funcţie de
interpolare o funcţie constantă (un polinom de grad 0) care trece prin punctul
 a  b  a  b 
 2 , f  2   . Această metodă se numeşte regula mijlocului sau regula
  
dreptunghiului.
b ab
 f ( x)dx  (b  a ) f  .
a  2 

.
Exemplificare pentru regula trapezului

87
Funcţia de interpolare poate fi o funcţie afină (un polinom de grad 1)
care trece prin punctele (a, f (a )) şi (b, f (b)) . Această metodă se numeşte
regula trapezului.
b f (a )  f (b)
 f ( x)dx  (b  a)
a 2

Exemplificare pentru regula Simpson


Pentru oricare din aceste trei reguli, putem face o aproximare mai
precisă împărţind intervalul [a, b] într-un număr de n subintervale, calculând
o aproximare pe fiecare subinterval, apoi adunând toate rezultatele. Acest
mod se numeşte regulă compusă, regulă extinsă sau regulă iterativă. De
exemplu, regula trapezului compusă poate fi exprimată ca:
b b  a  f (a )  f (b) n 1  b  a 
 f ( x)dx     f a  k   (*)
a n  2 k 1  n 
ba
unde subintervalele au forma  kh, (k  1)h  , cu h  şi k  0, n  1 .
n
Interpolare cu polinoame evaluate în puncte echidistante în [a, b]
produce formulele Newton – Cotes, care are ca exemple regula
dreptunghiului şi regula trapezului. Regula Simpson, care se bazează pe un
polinom de grad 2, este de asemenea o formulă Newton – Cotes.
Regula corespunzătoare cu fiecare interval subdivizat include toate
punctele curente, deci valorile acelor integranţi pot fi refolosite. Dacă
permitem intervalelor dintre punctele de interpolare să varieze, găsim un alt
grup de formule de cvadratură, precum formulele de cvadratură gaussiană. O
regulă de cvadratură gaussiană este mai precisă decât o regulă Newton –
Cotes care cere acelaşi număr de evaluări ale funcţiilor, dacă integrantul este
neted (adică, dacă el are multe derivate). Alte metode de cvadratură cu
variaţia intervalelor include metoda cvadratura Clenshaw – Curtis şi metoda
cvadraturii Fejér.
Algoritmi ajustaţi
Dacă f ( x) nu are multe derivate în toate punctele, sau dacă derivatele
devin mari, atunci cvadratura gaussiană este adesea insuficientă. În acest caz,
un algoritm similar cu următorul va executa mai bine:

88
// Acest algoritm calculează integrala definită a unei funcţii de la 0 la 1,
ajustativ,
// alegând cei mai mici paşi în vecinătatea punctelor problematice.
// Fie initial_h mărimea pasului iniţial.
x:=0
h:=initial_h
accumulator:=0
WHILE x<1.0 DO
IF x+h>1.0 THEN
h=1.0-x
END IF
IF error in quadrature of f(x) over [x,x+h] is too large THEN
Make h smaller
ELSE
accumulator:=accumulator + quadrature of f over [x,x+h]
x:=x+h
IF error in quadrature of f(x) over [x,x+h] is very small THEN
Make h larger
END IF
END IF
END WHILE
RETURN accumulator
Unele detalii ale algoritmului cer o gândire atentă. Pentru multe cazuri,
nu este evidentă estimarea erorii dintr-o cvadratură pe un interval pentru o
funcţie f ( x) . O soluţie populară este folosirea a două reguli diferite de
cvadratură şi folosirea diferenţei lor ca o estimare a erorii din cvadratură.
Cealaltă problemă este să decidem ce semnifică “prea mare” sau “foarte
mic”. Un criteriu local pentru “prea mare” este că eroarea cvadraturii trebuie
să nu fie mai mare decât t  h unde t, un număr real, este toleranţa pe care
dorim să o fixăm pentru eroarea globală. Apoi, din nou, dacă h este deja mic,
s-ar putea să nu merite să facem mai mic chiar dacă eroarea cvadraturii este
aparent mare. Un criteriu global este ca suma erorilor pe toate intervalele
trebuie să fie mai mică decât t. Acest tip de analiză a erorii se numeşte, de
obicei, “a posteriori” din moment ce noi calculăm eroarea după ce am
calculat aproximarea.

89
Metode de extrapolare
Precizia unei reguli de cvadratură de tip Newton – Cotes este, în
general, o funcţie de numărul punctelor de evaluare. Rezultatul este mai
precis când numărul punctelor de evaluare creşte, sau, echivalent, când
mărimea pasului dintre puncte scade. Este natural să ne întrebăm ce va
fi rezultatul dacă permitem pasului să se apropie de zero. La această
întrebare se poate răspunde extrapolând rezultatul de la două sau mai
multe mărimi diferite de zero (de exemplu, extrapolarea Richardson).
Funcţia de extrapolare poate fi o funcţie polinomială sau una raţională.
Estimarea (a priori) conservativă a erorii
Fie f cu prima derivată mărginită pe [a, b] . Teorema de medie
pentru f, unde x < b, ne dă:
( x  a) f '( y x )  f ( x)  f (a)
pentru un y x din [a, x] depinzând de x. Dacă integrăm în x de la a la b
în ambii membri şi luăm valoarea absolută, obţinem:
b b
 f ( x) dx  (b  a ) f (a )   ( x  a ) f '( y x ) dx
a a
Putem aproxima, în plus, integrala din membrul drept introducând
valoarea absolută în integrant şi înlocuind termenul în f ' printr-o limită
superioară:
b (b  a )2
 f ( x) dx  (b  a ) f (a )  sup f '( x) (**)
a 2 a  x b
b
Deci, dacă aproximăm integrala  f ( x)dx prin regula cvadraturii
a
(b  a) f (a) , atunci eroarea nu este mai mare de membrul drept al (**).
Putem transforma aceasta într-o analiză a erorii pentru suma Riemann (*),
dând marginea superioară a:
n 1
sup f '( x)
2 0  x 1
pentru termenul erorii a acelei aproximări particulare. Folosind mai multe
derivate şi cvadratura putem face o analiză a erorii similară folosind seriile
Taylor (folosind o sumă parţială cu rest) pentru f. Această analiză a erorii dă
o limită superioară a erorii, dacă derivatele lui f sunt disponibile.
Această metodă de integrare poate fi combinată cu aritmetica
intervalului pentru a obţine demonstraţii cu calculatorul şi pentru a verifica
calculele.

90
Integrale multidimensionale
Regulile cvadraturii discutate până acum sunt destinate pentru a calcula
integrale de dimensiune 1. Pentru a calcula integrale în dimensiuni multiple,
o abordare este să exprimăm integrala multiplă ca integrale de dimensiune
unu repetate aplicând teorema lui Fubini. Această abordare cere ca evaluările
funcţiei să crească exponenţial cu numărul cu care creşte dimensiunea.
Aceste două metode sunt cunoscute ca învingând această aşa – numită curse
a dimensiunii.
Monte Carlo
Metodele Monte Carlo şi metodele cvasi – Monte Carlo sunt uşor de
aplicat integralelor multidimensionale, şi pot produce o mai mare precizie
pentru acelaşi număr de evaluări ale funcţiei decât integrări repetare folosind
metode unu – dimensionale.
O clasă mare de metode Monte Carlo utile este formată din aşa –
numiţii algoritmi “lanţul Monte Carlo al lui Marcov”, care include algoritmul
Metropolis – Hastings şi prelevarea Gibbs.

Integrarea numerică prin metoda Monte Carlo: nodurile sunt aleatoriu


echidistante.
Noile noduri sunt albastru închis, vechile noduri sunt bleu.
Valoare integralei tinde către 3.32.

7.2. Integrarea în puncte echidistante


7.2.1. Formulele Newton-Cotes
În analiza numerică, formulele Newton – Cotes, numite şi regulile
Newton – Cotes, reprezintă un grup de formule pentru integrarea numerică
(numită şi cvadratură) bazate pe evaluarea integrantului în n  1 puncte
echidistante. Ele sunt numite după Isaac Newton şi Roger Cotes. Formulele
Newton – Cotes pot fi utile dacă este dată valoarea integrantului în punctele

91
echidistante. Dacă este posibil să schimbăm punctele în care este evaluat
integrantul, atunci alte metode precum cvadratura gaussiană şi cvadratura
Clenshaw – Curtis sunt, probabil, mai potrivite.
Este presupus că valoarea unei funcţii f este cunoscută în punctele
echidistante xi, pentru i  0, n . Există două tipuri de formule Newton –
Cotes: tipul “închis” care foloseşte valoarea funcţiei în toate punctele, şi tipul
“deschis” care nu foloseşte valorile funcţiei în capetele intervalului. Formula
Newton – Cotes închisă de grad n este exprimată astfel:
b n
 f ( x)dx   wi f ( xi )
a i 0
xn  x0
unde xi = h i + x0, cu h (numit pas) egal cu . wi se numesc ponderi.
n
Aşa cum se poate vedea în următoarea derivaţie, ponderile derivă din
polinoamele Lagrange fundamentale. Aceasta înseamnă că ele depind doar
de xi nu şi de funcţia f. Fie L( x) polinomul de interpolare în forma Lagrange
pentru punctele ( x0 , f ( x0 )), , ( xn , f ( xn )) . Atunci
b b b n
 f ( x)dx   L( x)dx    f ( xi )li ( x )dx
a a a i 0
n b n
  f ( xi )   li ( x)dx.
i 0 a i  0   
wi
Formula Newton – Cotes deschisă de grad n este exprimată ca:
b n 1
 f ( x)dx   wi f ( xi )
a i 1
Ponderile sunt găsite într-o manieră similară ca în formula închisă.
Instabilitatea pentru grad mare
O formulă Newton – Cotes de orice grad n poate fi construită. Oricum,
pentru n mare, o regulă Newton – Cotes poate suferi uneori din cauza
fenomenului Runge unde eroarea creşte exponenţial pentru n mare. Metode
precum cvadratura gaussiană şi a cvadraturii Clenshaw – Curtis cu puncte
ne-echidistanete (grupate în extremităţile intervalului de integrare) sunt
stabile şi mult mai precise, şi sunt preferate formulei Newton – Cotes. Dacă
aceste metode nu pot fi folosite, deoarece integrantul este dat doar în
punctele echidistante, atunci fenomenul Runge poate fi evitat folosind o
regulă compusă, aşa cum este explicat dedesubt.

92
Formulele Newton – Cotes închise
grad Denumire Formulă Eroarea
h
( f0  f1 ) h3 (2)
1 Regula trapezului  f ()
2 12
Regula lui h
( f 0  4 f1  f 2 ) h5 (4)
2
Simpson  f ()
3 90
3
regula lui 3h
( f 0  3 f1  3 f 2  f3 ) 3h5 (4)
3 8  f ()
8 80
Simpson
Regula lui Boole 2h 7
4 sau (7 f0  32 f1  12 f 2  32 f3  7 f 4 )  8h f (6) ()
Regula lui Bode 45 945
Exponentul pasului h în eroare arată viteza la care descreşte eroarea
aproximării. Derivata lui f în termenul eroare arată care polinoame pot fi
integrate exact). De notat că derivata lui f în termenul eroare creşte cu 2
pentru fiecare altă regulă. Numărul ξ se află între a şi b.
Formulele Newton – Cotes deschise
grad Denumire Formulă Eroarea

2hf1 h3 (2)
1 Regula dreptunghiului f ( )
24
3h
( f1  f 2 ) h3 (2)
2 Fără nume f ( )
2 4
4h
(2 f1  f 2  2 f3 ) 28h5 (4)
3 Fără nume f ()
3 90
5h
(11 f1  f 2  f3  11 f 4 ) 95h5 (4)
4 Fără nume f ( )
24 144

93
Reguli compuse
Pentru ca regulile Newton – Cotes să fie precise, pasul h trebuie să
fie mic, ceea ce înseamnă că intervalul de integrare [a,b] trebuie să fie
mic. Din acest motiv se execută integrarea numerică împărţind [a,b] în
subintervale mai mici, aplicând o regulă Newton-Cotes pe fiecare
subinterval şi adunând rezultatele. Aceasta se numeşte regulă compusă.

7.2.2. Metoda dreptunghiurilor


În calculul integral, metoda dreptunghiurilor foloseşte o aproximare a
unei integrale definite, făcută prin găsirea ariei unei serii de dreptunghiuri. În
calculul numeric, aceasta a fost înlocuită de metode de integrare numerică
mai sofisticate. Oricare colţ stâng sau drept, sau mijlocul de sus a
dreptunghiului se găsesc pe graficul funcţiei, cu bazele de-a lungul axei x.
Aproximarea este luată prin sumarea ariilor celor n dreptunghiuri care umplu
spaţiul între două valori x dorite.
b n
 f ( x)dx   f (a  i ' x)x ,
a i 1
i  1 pentru aproximarea stângă
 1
ba 
unde x  , i '  i  pentru aproximarea în mijloc .
n  2
i pentru aproximarea dreaptă
Necesitatea lui a + i'Δx apare când a este nenul, şi cum poziţia
primului dreptunghi nu este în f(i'Δx) ci, mai degrabă, f(a + i'Δx). Cu cât
creşte n, cu atât aproximarea este precisă. De fapt, limita aproximării pentru
n este exact egală cu integrala definită:
b n
 f ( x)dx  lim  f (a  i ' x)x . Acest lucru este adevărat indiferent de
a n  i 1
ce i este folosit. Deşi aproximarea în mijloc tinde să fie mai precisă pentru n
finit, limita celor trei aproximări, cum n   , este aceeaşi, astfel oricare
dintre ele poate fi folosită pentru a calcula o integrală definită.

94
Aproximarea dreaptă Riemann Aproximarea în mijloc Aproximarea stângă Riemann
Eroarea
Erorii de aproximare în mijloc se descompune ca cubul lăţimii
dreptunghiului
ah 3
 h h
 f ( x )dx  hf  a    f "()
a  2  24
pentru   (a, a  h) oarecare.

7.2.3. Regula trapezului


În matematică, regula trapezului este o modalitate de a calcula
b
aproximativ integrala definită  f ( x)dx . Regula trapezului lucrează
a
aproximând regiunea de sub graficul unei funcţii f ( x) printr-un trapez şi
calculând aria lui. Rezultă că
b f (a )  f (b)
 f ( x)dx  (b  a) .
a 2
Pentru a calcula această integrală precis, împărţim, pentru început,
intervalul de integrare [a, b] în n subintervale mai mici, şi apoi aplicăm
regula trapezului pe fiecare dintre ele. Obţinem regula trapezului compusă:
b b  a  f (a )  f (b) n 1  b  a 
 f ( x)dx     f a  k  .
a n  2 k 1  n 
Aceasta poate fi scrisă alternativ ca
b ba
 f ( x)dx   f ( x0 )  2 f ( x1 )  2 f ( x2 )    2 f ( xn 1 )  f ( xn ) 
a 2n
unde
ba
xk  a  k ,
n
pentru k  0, n (putem folosi de asemenea o reţea neuniformă).
Regula trapezului este una din familiile de formule pentru integrarea
numerică numite formulele Newton – Cotes. Regula Simpson este alt
membru al aceleiaşi familii, adesea mai precis. Regula Simpson şi alte
metode ca ea pot fi aşteptate să îmbunătăţească regula trapezului pentru
funcţii care sunt de două ori continue diferenţiabile; oricum, pentru funcţii
grosolane, regula trapezului este probabil preferabilă. În plus, regula
trapezului tinde să devină extrem de precisă când sunt integrate funcţii

95
periodice pe perioada lor, un lucru cel mai bine înţeles în legătură cu formula
de sumare Euler – MacLaurin.
Un avantaj al regulii trapezului este acela că semnul erorii aproximării
este cunoscut. O integrală aproximată cu această regulă pe o funcţie sus-
concavă va fi supraestimată deoarece trapezele includ toată aria de sub curbă
şi se extind peste ea. Folosind această metodă la o funcţie jos-concavă
produce o subestimare deoarece aria este nenumărată pentru partea de sub
curbă, dar nici una nu este numărată deasupra. Dacă intervalul integralei
fiind aproximat include un punct de inflexiune, atunci eroarea este mai greu
de identificat.

7.2.4. Metoda Romberg


În analiza numerică, metoda Romberg (1955) generează o matrice
triunghiulară formată din estimări numerice ale unei integrale definite
b
 f ( x)dx
a
folosind extrapolarea Richardson în repetate rânduri pe regula trapezului.
Metoda Romberg evaluează integrantul în puncte echidistante. Integrantul
trebuie să aibă derivate continue. Dacă este posibil să evaluăm integrantul în
puncte neechidistante, atunci alte metode precum cvadratura gaussiană şi
cvadratura Clenshaw – Curtis sunt mai precise.
Metoda Romberg poate fi definită inductiv astfel:
1
R (0, 0)  (b  a)  f ( a)  f (b) 
2
n 1
1 2
R (n, 0)  R(n  1, 0)  hn  f  a  (2k  1) hn 
2 k 1
1 1
R (n, m)  R (n, m  1) 
m
 R(n, m  1)  R(n  1, m  1) 
2 4 1
sau
R (n, m) 
4
1
m
1
 4m R (n, m  1)  R(n  1, m  1) 

ba m 1
unde n  1, m  1, hn  n . Eroarea R (n, m) este de ordinul O( hn2)
2
Prima extrapolare, R (n,1) , este echivalentă cu regula Simpson cu n  2
puncte. Când evaluările funcţiei sunt costisitoare, ar fi de preferat să
înlocuim interpolarea polinomială a lui Richardson cu interpolarea raţională
propusă de Bulirsch şi Stoer (1967).
Exemplu

96
Ca exemplu, funcţia Gauss este integrată de la 0 la 1, adică funcţia
eroare erf (1)  0.842700792949715 . Matricea triunghiulară este calculată pe
linie şi calculul se termină dacă ultimele două intrări din ultima linie diferă
prin mai puţin de 1.e – 8.
0.77174333
0.82526296 0.84310283
0.83836778 0.84273605 0.84271160
0.84161922 0.84270304 0.84270083 0.84270066
0.84243051 0.84270093 0.84270079 0.84270079 0.84270079
Rezultatul din colţul drept inferior al matricei triunghiulare este precis.
Este de remarcat că acest rezultat derivă din aproximările mai puţin precise
obţinute prin regula trapezului în prima coloană a matricei triunghiulare.
7.2.5. Regula Simpson
În analiza numerică, regula Simpson este o metodă pentru integrarea
numerică, aproximarea numerică a integralelor definite. Anume, ea este
b ba ab 
aproximarea  f ( x)dx   f (a )  4 f    f (b)  .
a 6   2  
Interpolarea cvadratică
Înlocuim integrantul f ( x) prin polinomul integral P(x) care ia
ab
aceleaşi valori ca f ( x) în punctele terminale a şi b şi în mijlocul m  .
2
Putem folosi interpolarea polinomială Lagrange pentru a găsi o expresie
pentru acest polinom,
( x  m)( x  b) ( x  a)( x  b) ( x  a )( x  m)
P ( x)  f ( a )  f ( m)  f (b ) .
(a  m)(a  b) (m  a)(m  b) (b  a )(b  m)
b ba ab 
Un calcul simplu arată că  P( x)dx   f (a)  4 f    f (b )  .
a 6   2  
Media mijlocului şi regulile trapezului
O altă derivaţie construieşte regula Simpson din două aproximări
mai simple:
ab
regula mijlocului: M  (b  a ) f  
 2 
1
regula trapezului: T  (b  a )  f (a )  f (b)  .
2
Erorile în aceste aproximări sunt, respectiv,
1 1
 (b  a)3 f "(a )  O((b  a )4 ) şi (b  a)3 f "(a )  O((b  a )4 ) .
24 12

97
Rezultă că termenul principal al erorii se anulează dacă luăm media
2M  T
ponderată . Această medie ponderată este exact regula Simpson.
3
Folosind altă aproximare (de exemplu, regula trapezului cu un număr
dublu de puncte), este posibil să luăm o medie ponderată potrivită şi să
eliminăm alt termen al erorii. Aceasta este metoda Romberg.
Coeficienţii nedeterminaţi
A treia derivaţie începe de la ansatz
b ab
 f ( x)dx  f (a )  f    f (b) .
a  2 
Coeficienţii ,  şi  pot fi fixaţi cerând ca această aproximare să fie
exactă pentru toate polinoamele cvadratice. Aceasta produce regula Simpson.
Eroarea
Eroarea în aproximarea unei integrale prin regula Simpson este
(b  a )5 (4)
 f () , unde  este un număr oarecare între a şi b. Eroarea este
2880
(asimptotic) proporţională cu (b  a)5 . Oricum, derivaţiile de mai sus
sugerează o eroare proporţională cu (b  a) 4 . Regula Simpson câştigă un
ordin în plus deoarece punctele în care integrantul este evaluat, sunt
distribuite simetric în intervalul [a, b] .
Regula Simpson compusă
Dacă intervalul de integrare [a, b] este mic (adică funcţia de integrat
este relativ netedă pe intervalul [a, b] ), atunci regula Simpson va furniza o
aproximare adecvată a integralei exacte. Pentru o astfel de funcţie, un
interpolant cvadratic neted precum cel folosit în regula Simpson va da duce
la rezultate bune. Oricum, este des întâlnit cazul ca funcţia pe care încercăm
să o integrăm este netedă peste interval. Aceasta înseamnă că orice funcţia
este puternic oscilantă, ori ea nu are derivate în anumite puncte. În aceste
cazuri, regula Simpson poate da rezultate foarte slabe. O cale uzuală de a
rezolva această problemă este spargerea intervalului [a, b] într-un număr de
subintervale mici. Apoi, regula Simpson este aplicată pe fiecare subinterval,
se sumează rezultatele pentru o obţine o aproximare a integralei pe întreg
intervalul. Acest tip de abordare se numeşte regula Simpson compusă.
Presupunem că intervalul [a, b] este împărţit în n subintervale, cu n un
număr par. Atunci, regula Simpson compusă este dată de:

98
 n
1
n 
b h 2 2 
 f ( x)dx   f ( x0 )  2  f ( x2 j )  4  f ( x2 j 1 )  f ( xn )  ,
a 3 j 1 j 1 
 
ab
unde xi  a  ih pentru i  0, n cu h  ; în particular, x0  a şi
n
xn  b . Formula de mai sus poate fi scrisă astfel:
b h
 f ( x)dx  [ f ( x0 )  4 f ( x1 )  2 f ( x2 )  4 f ( x3 )  2 f ( x4 )   
a 3
4 f ( xn 1 )  f ( xn )].
Eroarea făcută de regula Simpson compusă este mărginită (în valoarea
absolută) de
h4 ba
(b  a ) max f (4) () , unde h  .
180 [ a, b] n
Această formulare împarte intervalul [a, b] în subintervale de lungime
egală. În practică, este deseori avantajos de a folosi subintervale de lungimi
diferite, şi de a ne concentra eforturile în locurile unde integrantul se
comportă mai puţin bine. Aceasta conduce la metoda Simpson ajustată.

99
7.2.6. Metoda ajustativă Simpson
Metoda ajustativă Simpson, numită de asemenea regula ajustativă
Simpson, este o metodă de integrare numerică propusă de William M.
McKeeman în 1962. Este, probabil, primul algoritm ajustativ pentru
integrarea numerică care a apărut, deşi mai multe metode moderne bazate pe
integrarea Gauss – Kronrod şi integrarea Clenshaw – Curtis sunt, în general,
preferate acum. Metoda ajustativă Simpson foloseşte o estimare a erorii pe
care o obţinem calculând o integrală definită folosind regula lui Simpson.
Dacă eroare depăşeşte o toleranţă specificată de utilizator, algoritmul cere
subdivizarea intervalului de integrare în două şi aplicarea metodei ajustative
a lui Simpson pe fiecare subinterval într-o manieră recursivă. Tehnica este de
obicei mult mai eficientă decât regula de compunere Simpson din moment de
foloseşte mai puţine funcţii de evaluare în punctele în care funcţia este bine
aproximată de o funcţie integrală.
Criteriul de determinare a momentului în care oprim subdivizarea
intervalului este:
S ( a , c )  S (c, b)  S ( a , b )

15
unde [a, b] este un interval care are mijlocul c, S (a, b), S ( a, c) şi S (c, b) sunt
estimările date de regula lui Simpson pe intervalele corespunzătoare şi  este
toleranţa dorită pentru interval.
Regula Simpson este un caz particular al metodei Romberg. Teoria
acestei metode arată că regula lui Simpson este exactă atunci când
integrantul este un polinom de grad 3 sau mai mic. Potrivit metodei
Romberg, cea mai corectă estimare Simpson S (a, c)  S (c, b) pentru şase
valori ale funcţiei se combină cu cea mai puţin corectă estimare Simpson
S (a, b) pentru trei valori ale funcţiei aplicând corecţia
S ( a, c )  S (c , b )  S ( a, b)
.
15
Aici, constanta 15 este aleasă pentru a asigura că după ce aplicăm
corecţia, este obţinută o estimare care este exactă pentru polinoame de grad
cel mult 5.

7.3. Integrarea în puncte neechidistante


Pentru funcţii care nu sunt periodice, oricât, de departe, cele mai
precise metode cu puncte neechidistante sunt cvadratura gaussiană şi
cvadratura Clenshaw – Curtis.

7.3.1. Cvadratura gaussiană


În analiza numerică, o regulă de integrare este o aproximare a
integralei definite a unei funcţii, uneori formulată ca suma ponderată a

100
valorilor funcţiei în punctele date înăuntrul domeniului de integrare. O regula
de cvadratură gaussiană n – puncte, numită după Carl Friedrich Gauss, este
in regulă de integrare construită pentru a produce un rezultat exact pentru
polinoamele de grad 2n  1 , printr-o alegere corespunzătoare a n punctelor xi
şi n ponderilor wi. Domeniul de integrare pentru o astfel de regulă este, prin
convenţie, luat [−1, 1], astfel că regula este exprimată ca
1 n
 f ( x )dx   wi f ( xi ) .
1 i 1
Se poate arăta (vezi Press, ş.a. sau Stoer şi Bulirsch) că punctele de
evaluare sunt chiar rădăcinile polinomului care aparţine clasei polinoamelor
ortogonale.
Reguli pentru problema de bază
Pentru problema de integrare exprimată mai sus, polinoamele asociate
sunt polinoamele Legendre, Pn ( x) . Cu cel de-al n – lea polinom normalizat
pentru a obţine Pn(1) = 1, nodul Gauss i, xi, este a i – a rădăcină a lui Pn;
ponderea ei este dată de (Abramowitz & Stegun 1972, p. 887)
2
wi  .
(1  xi2 )( P 'n ( xi ))2
În continuare sunt date câteva reguli de integrare pentru ordine mici:
Numărul de
Punctele, xi Ponderile, wi
puncte, n
1 0 2
1
2  1
3
8
0
9
3
3 5

5 9

6
3 2 18  30
5
 36
7
4
6
3 2 18  30
5
 36
7

101
128
0
225

1 10 322  13 70
5  52
3 7 900

1 10 322  13 70
 52
3 7 900
Schimbarea intervalului pentru cvadratura gaussiană
O integrală pe [a, b] trebuie schimbată într-o integrală pe [−1, 1]
înainte să aplicăm regula de integrare gaussiană. Această schimbare a
intervalului poate fi făcută astfel:
b ba 1 ba ab
 f ( x)dx   f x  dx .
a 2 1  2 2 
După aplicarea regulii de integrare Gauss se obţine următoarea
aproximare:
ba n ba ab
 wi f  x 
2 i 1  2 2 
Alte forme ale cvadraturii gaussiene
Problema integrării poate fi exprimată într-o manieră puţin mai
generală prin introducerea unei funcţii pondere  , pozitivă, în integrant, şi
permiţând un interval diferit de [−1, 1]. Adică, problema este calculul
b
 ( x) f ( x)dx
a
pentru unele alegeri ale lui a, b şi ω. Pentru a = −1, b = 1 şi ω(x) = 1,
problema este aceeaşi cu cea considerată mai sus. Alte alegeri conduc la alte
reguli de integrare, unele dintre ele fiind cele din tabelul următor.

Intervalul ω(x) Polinoamele ortogonale


[−1,1] 1 Polinoamele Legendre
(−1,1) (1  x) (1  x) , ,   1 Polinoamele Jacobi
1 Polinoamele Chebyshev (de prima
(−1,1)
1  x2 speţă)
Polinoamele Chebyshev (de speţa a
[−1,1] 2
1 x
doua)

102
[0,∞) e x Polinoamele Laguerre
2
(−∞,∞) e x Polinoamele Hermite
Teorema fundamentală
b
k
Fie q un polinom netrivial de grad n astfel încât  ( x) x q( x) dx  0
a
pentru toţi k  0, n  1 .
Dacă alegem nodurile să fie zero-urile lui q, atunci există ponderile
wi care fac integrala calculată exactă pentru toate polinoamele de grad 2n − 1
sau mai mic. În plus, toate aceste noduri se vor găsi în intervalul deschis (a,
b).
Estimarea erorii
Eroarea unei reguli de integrare Gauss poate fi exprimată după cum
urmează. Pentru un integrant care are 2n derivate continue,
b n f (2 n) ()
 ( x ) f ( x)dx   wi f ( xi )  ( pn , pn )
a i 1 (2n)!

pentru un ξ oarecare din (a, b), unde pn este polinomul ortogonal de grad n şi
b
unde ( f , g )   ( x) f ( x) g ( x)dx
a
În cazul special ω(x) = 1 avem estimarea erorii
(b  a) 2n 1 (n !) 4 (2n)
f (), a    b .
3
(2n  1)  (2n)!
Stoer şi Bulirsch au remarcat că nu este convenabil în practică, din
moment ce poate fi dificil de estimat derivata de ordinul 2n, şi, în plus,
eroarea actuală poate fi mult mai mică decât o margine stabilită de derivată.
O altă abordare este de a folosi regulile de cvadratură gaussiană de
ordine diferite, şi să estimăm eroarea ca diferenţa dintre cele două rezultate.
Pentru acest scop, pot fi utile regulile de integrare Gauss – Kronrod.
Regulile Gauss – Kronrod
Dacă intervalul [a,b] este împărţit, punctele de evaluare Gauss ale
noilor subintervale coincid cu punctele de evaluarea anterioare (exceptând
zero, pentru numerele impare), şi astfel, integrantul trebuie să fie evaluat în
fiecare punct. Regulile Gauss – Kronrod sunt extinderi ale regulilor de
cvadratură gaussiană generate prin adăugarea a n + 1 puncte la o regulă n –
punct în aşa fel încât regula rezultantă să fie de ordin 3n + 1. Acest fapt
permite calculul estimărilor de ordin superior refolosind valorile funcţiei a

103
unei estimări de ordin mic. Diferenţa dintre regula de cvadratură gaussiană şi
extensia ei Kronrod este des utilizată ca o estimare a erorii aproximării.
Regulile sunt numite după Alexander Kronrod care le-a inventat în 1960.
Algoritmii în QUADPACK au la bază regulile Gauss–Kronrod. Un exemplu
popular combină o regulă Gauss 7 – puncte cu o regulă Kronrod 15 – puncte.
Deoarece punctele Gauss sunt încorporate în punctele Kronrod, un total de
doar 15 evaluări produc estimarea integrării cât şi eroarea estimării.
Nodurile Gauss Ponderile
±0.94910 79123 42759 0.12948 49661 68870
±0.74153 11855 99394 0.27970 53914 89277
±0.40584 51513 77397 0.38183 00505 05119
0.00000 00000 00000 0.41795 91836 73469
Nodurile Kronrod Ponderile
±0.99145 53711 20813 0.02293 53220 10529
±0.94910 79123 42759 0.06309 20926 29979
±0.86486 44233 59769 0.10479 00103 22250
±0.74153 11855 99394 0.14065 32597 15525
±0.58608 72354 67691 0.16900 47266 39267
±0.40584 51513 77397 0.19035 05780 64785
±0.20778 49550 07898 0.20443 29400 75298
0.00000 00000 00000 0.20948 21410 84728
Patterson a arătat cum se găsesc alte extensii de acest tip.
7.3.2. Cvadratura tanh – sinh
Cvadratura tanh – sinh este o metodă de integrare numerică introdusă
de Hidetosi Takahasi şi Masatake Mori în 1974. Ea foloseşte schimbarea de
variabilă
 
x  tanh  sinh t 
2 
pentru a transforma o integrală pe ( 1,1) într-o integrală pe întreaga dreaptă
reală. Pentru un pas dat h, integrala este aproximată de suma

 wk f ( xk )
k  
cu:
- abscisele

104
 
xk  tanh  sinh kh 
2 
şi
- ponderile:

cosh kh
2  
wk  tanh  sin kh  .
   2 
cos 2  sinh kh 
2 
La fel ca cvadratura gaussiană, cvadratura tanh-sinh este potrivită
pentru integrarea cu precizie arbitrară, unde este dorită o acurateţe de sute
sau mii de digiţi.
Convergenţa este pătratică pentru integranţi cu comportare suficient
de bună: dublarea numărului de puncte de evaluare dublează grosolan
numărul de digiţi corecţi.
Cvadratura tanh – sinh este mai puţin eficientă decât cvadratura Gauss
pentru integranţi netezi, dar, spre deosebire de cvadratura Gauss lucrează
bine şi cu integranţi care au singularităţi sau derivate infinite într-unul sau în
ambele capete ale intervalului de integrare. Un alt avantaj este acela că
abscisele şi ponderile sunt relativ simplu de calculat. Costul calculului
perechilor abscise – ponderi pentru o acurateţe de n – digiţi este n 2 log 2 n
comparabil cu n3 log n pentru cvadratura Gauss.
Comparând schema cu cvadratura Gauss şi cvadratura funcţiei eroare,
Bailey ş.a. au găsit că schema tanh – sinh „pare a fi cea mai bună pentru
integranţi de tipul celor mai des întâlniţi în cercetările matematice
experimentale”.

7.3.3. Cvadratura Clenshaw – Curtis


Cvadratura Clenshaw-Curtis şi cvadratura Fejér sunt metode de
integrare numerică, sau de cvadratura numerică, bazate pe o dezvoltare a
integrantului în termeni de polinoame Chebyshev. Echivalent, ele folosesc o
schimbare de variabilă x = cosθ şi folosesc o aproximare a transformării
cosinus discretă pentru seriile cosinus. În afară că au o convergenţă rapidă
comparabilă cu regulile de integrare gaussiană, cvadratura Clenshaw – Curtis
şi Fejér conduc natural către regulile de integrare (în care diferite ordine de
precizie împart punctele), care este importantă pentru ambele integrări
(multidimensionale şi ajustativă). Pe scurt, funcţia f ( x) care trebuie
integrată este evaluată în punctul de extrem N sau în rădăcinile unui polinom
Chebyshev şi aceste valori sunt folosite pentru a construi o aproximare
polinomială pentru această funcţie. Această aproximare este atunci integrată

105
exact. În practică, ponderile de integrare pentru valoarea funcţiei în fiecare
nod sunt precalculate, şi acest calcul poate fi executat în timpul O(NlogN) cu
ajutorul diferitor algoritmi legaţi de transformării rapide Fourier pentru DCT.
O cale simplă de a înţelege algoritmul este de a înţelege faptul că
cvadratura Clenshaw – Curtis (propus de acei autori în 1960) se referă la o
integrare printr-o schimbare de variabilă x = cosθ.
Algoritmul este exprimat pentru integrala unei funcţii f ( x) pe un
interval [1,1] (orice alt interval poate fi obţinut printr-o rescalare). Pentru
această integrală, putem scrie
1 
 f ( x )dx   f (cos )sin d  .
1 0
Aceasta înseamnă că trebuie să transformăm această problemă din
integrarea lui f ( x) în integrarea lui f (cos )sin  . Acest lucru poate fi făcut
dacă ştim seria cosinus pentru f (cos ) :
a 
f (cos )  0   ak cos(k )
2 k 1
caz în care integrala devine:
 a0  2a2k
 f (cos ) sin d     .
0 2 k 1 1  (2k )2
Bineînţeles, pentru a calcula coeficienţii seriei cosinus
2
ak   f (cos ) cos d 
0

106
trebuie să executăm încă o dată o integrare numerică, deci pentru început
aceasta poate să pară că nu simplifică problema. Spre deosebire de calculul
integralelor arbitrare, oricum, integrările seriilor Fourier pentru funcţii
periodice (precum f (cos ) , prin construcţie), până la frecvenţa Nyquist k =
n
N, sunt precis calculate de punctele N echidistante şi ponderile n 
N
echidistante pentru n  0, N (cu excepţia punctelor terminale care sunt
1
ponderate de , pentru a evita dubla numărare). Adică, aproximăm integrala
2
seriilor cosinus prin transformarea cosinus discretă (DCT) de tipul I:
2  f (1) f (1) N 1  n  nk  
ak    (1) k   f  cos  cos
N 2 2 n 1  N  N 
pentru k  0, N şi apoi folosim formula de mai sus pentru integrală în
termenii acelor ak .
Legătura cu polinoamele Chebyshev
Motivul pentru care aceasta este legată de polinoamele Chebyshev
Tk ( x) este acela că, prin definiţie, Tk (cos )  cos(k ) şi astfel, seria cosinus
de mai sus este într-adevăr o aproximare a lui f ( x) prin polinoame
Chebyshev:
a 
f ( x )  0 T0 ( x )   ak Tk ( x) ,
2 k 1
şi astfel integrăm “cu adevărat” f ( x) integrând dezvoltarea aproximantă în
n
termenii polinoamelor Chebyshev. Punctul de evaluare xn  cos
N
corespunde extremei polinomului Chebyshev TN ( x) .
Faptul că o astfel de aproximare Chebyshev este chiar o serie cosinus
după o schimbare de variabile este responsabilă pentru convergenţa rapidă a
aproximării deoarece mai mulţi termeni Tk ( x) sunt incluşi. O serie cosinus
converge foarte repede pentru funcţiile pare, periodice, şi suficient de netede.
Acest lucru este adevărat aici, din moment de f (cos ) este pară şi periodică
în  prin construcţie, şi este de k ori derivabilă în orice punct dacă f ( x) este
de k ori derivabilă pe [1,1] . (Spre deosebire, aplicând direct o dezvoltare în
serie cosinus lui f ( x) în loc de f (cos ) în mod uzual nu va converge rapid
deoarece panta dezvoltărilor pare – periodice va fi, în general, discontinuă).

107
Comparaţia cu cvadratura Gauss
Metoda clasică a integrării Gauss evaluează integrantul în N  1
puncte şi este construită pentru a integra exact polinoamele de grad
maxim 2 N  1 .
În contrast, cvadratura Clenshaw – Curtis, mai întâi evaluează
integrantul în N  1 puncte şi integrează exact polinoamele doar până la
gradul N. Poate părea, deci, că cvadratura Clenshaw – Curtis este intrinsec,
mai rea, decât cvadratura Gauss, dar, în realitate acesta nu pare să fie cauza.
În practică, mai mulţi autori au observat că cvadratura Clenshaw –
Curtis poate avea o precizie comparabilă cu cea a cvadraturii gaussiene
pentru acelaşi număr de puncte. Acest lucru este posibil deoarece cei mai
mulţi integranţi numerici nu sunt polinoame (în special, de când polinoamele
pot fi integrate analitic), şi aproximarea mai multor funcţii în termeni ai
polinoamelor Chebyshev converge rapid. De fapt, rezultate teoretice recente
(Trefethen, 2006) argumentează că atât cvadratura gaussiană cât şi cea
Clenshaw – Curtis au eroarea mărginită de
 [2 N ] k 
O 
 k 
 
pentru un integrant de k ori diferenţiabil.
Un avantaj des citat al integrării Clenshaw – Curtis este acela că
ponderile cvadraturii pot fi evaluate în timpul O( N log N ) prin algoritmi
rapizi de transformare Fourier (şi analogii lor pentru DCT), pe când
ponderile integrării gaussiene cer un timp O( N 2 ) de calcul.
Ca o chestiune practică, o cvadratura numerică de ordin ridicat este de
puţine ori făcută prin simpla evaluare a formulei de integrare pentru N foarte
mare.
În schimb, de obicei foloseşte o schemă de integrare ajustativă care
mai întâi evaluează integrala de ordin mic, şi apoi, succesiv, rafinează
precizia doar în regiunile unde integrala este inexactă. Pentru a evalua
precizia integralei, comparăm răspunsul cu cel al regulii de integrare pentru
ordine mici pare. Ideal, această regulă de integrare de ordin mic evaluează
integrantul pe o submulţime a punctelor N originale, să minimizez evaluările
integranţilor. Aceasta se numeşte regulă de integrare nested, şi aici
cvadratura Clenshaw – Curtis are avantajul că regula pentru ordinul N
foloseşte o submulţime a punctelor de la ordinul 2N. În contrast, regulile de
integrare gaussiene nu sunt natural nested, şi astfel trebuie să folosească
cvadratura Gauss – Kronrod sau metodele similare.

108
7.3.4. Cvadratura Fejér
Fejér a propus două reguli de integrare foarte asemănătoare cu cele de
integrare Clenshaw – Curtis, dar cu mult timp înainte (în 1933). A “doua”
regulă de integrare a lui Fejér este identică cu cea dată de Clenshaw – Curtis.
Singura diferenţă este aceea că punctele terminale f (1) şi f (1) sunt fixate
în zero. Adică, Fejér a folosit doar extremele interioare ale polinoamelor
Chebyshev, adică punctele staţionare.
“Prima” regulă de integrare a lui Fejér evaluează ak estimând
f (cos ) într-o altă mulţime de puncte echidistante, la jumătatea distanţei
(n  0,5)n
dintre extreme: n  pentru 0  n  N . Acestea sunt rădăcinile
N
lui TN (cos ) , cunoscute sub denumirea de nodurile Chebyshev. (Aceste
mijloace echidistante sunt singurele celelalte alegeri ale punctelor de
integrare care păstrează atât simetria pară a transformării cosinus cât şi
simetria translaţională a seriei Fourier periodice) . Aceste lucruri conduc la:
2 N 1  (n  0,5)  (n  0,5) k 
ak   f  cos  cos
N n 0  N  N
care este chiar DCT de tip II.
În ciuda faptului că Fejér a descoperit aceste tehnici înainte lui
Clenshaw şi Curtis, denumirea “cvadratura Clenshaw – Curtis” a devenit cea
standard.

7.3.5. Cvadratura ajustativă


În matematica aplicată, cvadratura ajustativă este un proces în care
integrala unei funcţii f ( x) este aproximată folosind regulile de integrare
statice pe subintervale adaptativ rafinate ale domeniului de integrare.
În general, algoritmii ajustativă sunt la fel de eficienţi şi eficaci precum
cei tradiţionali pentru integranţi “cu comportare bună”, dar, sunt de
asemenea eficaci pentru integranţi “cu comportare rea”, pentru care
algoritmii tradiţionali eşuează.
Schema generală
Cvadratura ajustativă urmează schema generală:
1. procedura integrate (f,a,b,tau)
b
2. Q   f ( x)dx
a
b
3.   Q   f ( x )dx
a
4. dacă    atunci

109
5. m = (a + b) / 2
6. Q = integrate(f,a,m,tau) + integrate(f,m,b,tau)
7. sfârşit dacă
8. return Q
Este calculată o aproximare Q a integralei lui f ( x) pe intervalul [a, b]
(linia 2), precum şi o eroare estimată  (linia 3). Dacă eroarea estimată este
mai mare decât toleranţa cerută  (linia 4), atunci intervalul este împărţit
(linia 5) şi integrala este aplicată pe ambele intervale separat (linia 6). Se
returnează atât estimarea iniţială sau suma înjumătăţită calculată recursiv
(linia 7).
Componentele importante sunt însăşi regula de integrare
b
Q   f ( x)dx ,
a
estimarea erorii
b
  Q   f ( x )dx ,
a
şi logica deciderii împărţirii cărui interval, şi apoi când să ne oprim.
Bineînţeles că există mai multe variante ale acestei scheme. Cea mai
uzuală va fi discutată mai târziu.
Reguli de integrare de bază
Regulile de integrare au în general forma:
n b
Q   wi f ( xi )   f ( x )dx
i 0 a
unde nodurile xi şi ponderile wi sunt, în general, calculate anterior.
În cazul general, sunt folosite formulele Newton – Cotes de ordin par,
unde nodurile xi sunt uniform spaţiate în interval:
i
xi  a  (b  a ) .
n
Când sunt folosite asemenea reguli, punctele în care f(x) a fost evaluată
pot fi reutilizate după revenire:

110
adâncimea
x1 x2 x3

x1 x2 x3

x1 x2 x3
O strategie similară este folosită la cvadratura Clenshaw - Curtis, unde
nodurile sunt alese astfel:
 2i 
xi  cos    .
n 
sau, când este folosită cvadratura Fejér:
 2(i  0,5) 
xi  cos   .
 n 1 
Un algoritm poate fi ales să folosească diferite metode de integrare pe
subintervale diferite, de exemplu, folosind o metodă de ordin înalt doar acolo
unde integrantul este neted.
Estimarea erorii
Unii algoritmi de integrare generează o secvenţă de rezultate care ar
trebui să se apropie de valoarea corectă. Altfel, putem folosi o “regulă
nulă” care are forma regulii de integrare de mai sus, dar ale cărei valori vor
fi zero pentru un integrant simplu (de exemplu, dacă integrantul este un
polinom de grad apropiat).
Subdiviziunea logică
Cvadratura ajustativă “locală” face eroarea acceptabilă pentru un
interval dat proporţional cu lungimea acelui interval. Acest criteriu poate fi
cu greu satisfăcut dacă integrantul se comportă rău în doar câteva puncte, de
exemplu. Pentru câţiva paşi de discontinuitate. Alternativ, putem cere doar
ca suma erorilor pe fiecare subinterval să fie mai mică decât cererea
utilizatorului. Aceasta va fi cvadratura ajustativă “globală”. Cvadratura
ajustativă globală poate fi mai eficientă (folosind mai puţine evaluări ale
integrantului) dar este, în general, mai dificil de programat şi poate cere mai
mult spaţiu de lucru pentru înregistrarea informaţiei pe mulţimea curentă de
intervale.

111
7.4. Integrări cu funcţii pondere
Mai general, putem pune problema integrării unei funcţii f ( x) în locul
unei funcţii pondere w( x) care este cunoscută de dinainte:
1 
 f ( x ) w( x)dx   f (cos ) w( cos ) sin d  .
1 0
Cazul cel mai comun este w( x )  1 , ca mai sus, dar în unele aplicaţii
este utilă o funcţie pondere diferită. Motivul fundamental este că, din
moment ce w( x) poate fi luat în socoteală aprioric, eroarea de integrare
poate fi făcută să depindă doar de precizia în aproximarea lui f ( x) ,
indiferent de cât de rău se comportă funcţia pondere. Cvadratura Clenshaw –
Curtis poate fi generalizată la acest caz după cum urmează. Ca şi înainte, ea
merge găsind dezvoltarea cos-sin a funcţiei f (cos ) via DCT, şi apoi
integrând fiecare termen a seriei cosinus. Acum, aceste integrale sunt de
forma:

Wk   w(cos ) cos(k )sin d  .
0
Pentru majoritatea funcţiilor w( x) , această integrală nu poate fi
calculată analitic, spre deosebire de cazul anterior. Din moment ce aceeaşi
funcţie pondere este folosită în general pentru mai mulţi integranţi f ( x) ,
putem permite să calculăm aceşti Wk numeric pentru a mări precizia în
prealabil. În plus, din moment ce w(x) este specificată în mod general
analitic, putem uneori folosi metode speciale să calculăm Wk.
De exemplu, au fost dezvoltate diferite metode pentru a aplica
cvadratura Clenshaw – Curtis pentru integranţi de forma f(x)w(x) cu o
funcţie pondere w(x) puternic oscilantă, de exemplu o sinusoidă sau o funcţie
Bessel. Acest lucru este util pentru precizia ridicată a calculului seriilor
Fourier sau a seriilor Fourier – Bessel, în care metodele de integrare pentru
w(x) = 1 sunt problematice din cauza preciziei ridicate cerută să rezolve
contribuţia oscilaţiilor rapide. Aici, partea integrantului cu oscilaţii rapide
este luată în seamă prin metode speciale pentru Wk, pe când funcţia
necunoscută f(x) se comportă mai bine.
Alt caz în care funcţiile pondere sunt utile, în special, dacă integrantul
este necunoscut dar are o singularitate cunoscută de o anumită formă, de
exemplu, o discontinuitate cunoscută sau o divergenţă a integralei (precum
1
) într-un anumit punct.
x

112
De notat este că cvadratura gaussiană poate fi de asemenea adaptată
pentru diferite funcţii pondere, dar tehnica este întrucâtva diferită. În
cvadratura Clenshaw – Curtis, integrantul este întotdeauna evaluat în aceeaşi
mulţime de puncte a lui w(x), corespunzătoare extremelor sau rădăcinilor
polinomului Chebyshev. În cvadratura gaussiană, diferite funcţii pondere
conduc la diferite polinoame ortogonale, şi astfel, diferite rădăcini în care
integrantul este evaluat.

7.5. Metoda Nyström


Metoda Nyström de discretizare a unei ecuaţii integrale foloseşte o
regulă de integrare; adică, aplicând regula de integrare
b n
 h( x) dx   wk h( xk )
a k 1
de exemplu, ecuaţiei Fredholm neomogene de speţa a doua
b
f ( x)  u ( x)   K ( x, x ')u ( x ')dx '
a
rezultă
n
f ( x )  u ( x )   wk K ( x, xk )u ( xk ) .
k 1

7.6. Formula Euler-MacLaurin


În matematică, formula Euler – MacLaurin furnizează o legătură
puternică între integrale şi sume. Ea poate fi folosită pentru aproximarea
integralelor prin sume finite, sau invers, pentru evaluarea sumelor finite şi
seriilor infinite folosind integralele şi calculul. Formula a fost descoperită
independent de Leonhard Euler şi Colin MacLaurin în jurul anului 1735 (şi a
fost generalizată mai târziu ca formula lui Darboux). Euler a avut nevoie de
ea pentru a calcula seriile infinite încet convergente în timp ce MacLaurin a
folosit-o pentru a calcula integrale.
Formula
Dacă n este un număr natural şi f ( x) este o funcţie netedă (în sensul,
diferenţiabilă) definită pentru toate numerele reale x dintre 0 şi n, atunci
n
integrala I   f ( x )dx poate fi aproximată de suma:
0
f (0) f (n) f (0)  f (n) n 1
S  f (1)    f ( n  1)     f (k )
2 2 2 k 1

113
(vezi regula trapezului). Formula Euler – MacLaurin furnizează expresii
pentru diferenţa dintre sumă şi integrală în termeni ai derivatelor f ( k ) în 0 şi
n. Pentru orice număr natural p, avem:

 
p B
S  I   k 1 f ( k ) (n)  f ( k ) (0)  R
k 1 (k  1)!
unde B1 = −1/2, B2 = 1/6, B3 = 0, B4 = −1/30, B5 = 0, B6 = 1/42, B7 = 0, B8 =
−1/30, ... sunt numerele Bernoulli, şi R este eroarea care este mică pentru
valori corespunzătoare ale lui p.
Utilizând substituţia, putem adapta această formulă de asemenea la
funcţii f care sunt definite pe alte intervale ale dreptei reale.
Restul
Restul R este dat de
n B p 1  x  [ x ] 
R  (1) p  f ( p 1) ( x) dx ,
0 ( p  1)!
unde Bi  x  [ x] sunt polinoamele Bernoulli. Restul poate fi estimat prin:
2 n
(2 p 1)
R   f ( x) dx .
2p
(2) 0
Sume care implică un polinom
Dacă f este un polinom şi p este suficient de mare, atunci restul dispare.
De exemplu, dacă f(x) = x3, putem alege p = 2 pentru a obţine, după
simplificare,
2
3  n(n  1) 
n
 i   .
i 0  2 
Integrarea numerică
Formula Euler – MacLaurin este, de asemenea, folosită pentru analiza
detaliată a erorilor în integrarea numerică; în particular, metodele de
extrapolare depind de ea.
Dezvoltări asimptotice ale sumelor
În contextul calculului dezvoltărilor asimptotice ale sumelor şi seriilor,
de obicei, cea mai utilă formă a formulei Euler – MacLaurin este:
f (a )  f (b)  B2k
 
b b
 f (n)   f ( x)dx    f (2k 1) (b)  f (2 k 1) (a ) ,
na a 2 k 1 (2k )!
unde a şi b sunt întregi. Adesea, dezvoltarea rămâne validă chiar şi după ce
trecem la limită pentru a   sau b   , sau amândouă. În multe
cazuri integrala sau membru drept pot fi evaluate în forma închisă în termenii
funcţiilor elementare chiar şi atunci când suma din membrul stâng nu poate.

114
Atunci toţi termenii seriilor asimptotice pot si exprimaţi în termenii funcţiilor
elementare. De exemplu,
b 1  1 1  B
  dk    2t
na (z  k)
2
( z  k )2 z 2 t 1 z 2t  1 .
0    
1

z
1
şi  (1) ( z ) , unde,
Aici, membrul stâng este egal cu suma dintre
z2
aceasta din urmă este funcţia poligamma de prim ordin definită prin
d2
 (1) ( z )  ln ( z ) ; funcţia gamma ( z ) este egală cu ( z  1)! dacă z este
dz 2
1
un întreg pozitiv. Scăzând din ambele părţi rezultă o dezvoltare
z2
asimptotică pentru  (1) ( z ) . Dezvoltarea, în schimb, serveşte ca punct de
plecare pentru una din derivaţiile estimării precise a erorii pentru
aproximarea Stirling a funcţiei factorial.
Derivaţia din inducţie matematică
Polinoamele Bernoulli Bn(x), n = 0, 1, 2, ... pot fi definite recursiv
după cum urmează:
B0 ( x)  1 ,
1
B 'n  nBn 1 ( x) şi  Bn ( x )dx  0 pentru n  1 .
0
Primii termeni sunt:
1 1
B1 ( x)  x  , B2 ( x)  x 2  x  ,
2 6
3 1 1
B3 ( x)  x3  x 2  x, B4 ( x)  x 4  2 x3  x 2  ,
2 2 30
Valorile Bn(1) sunt numerele Bernoulli. Pentru n ≥ 2, avem
Bn(0) = Bn(1).
Funcţiile Bernoulli periodice Pn sunt date de
Pn ( x)  Bn  x   x   pentru 0  x  1 ,
adică, coincid cu polinoamele Bernoulli pe (0,1) şi sunt periodice, de
perioadă 1.
Fie integrala
k 1
 f ( x) dx   udv ,
k

115
unde
u  f ( x),
du  f '( x)dx,
dv  P0 ( x)dx (din moment ce P0 ( x)  1 ),
v  P1 ( x) .
Integrând prin părţi, obţinem
k 1 k 1
uv   vdu   f ( x) P1 ( x)  k   f '( x) P1 ( x)dx
k
f (k )  f (k  1) k 1
   f '( x) P1 ( x) dx.
2 k
Sumăm pentru k de la 1 la n  1 şi rezultă
n f (1) f ( n) n
 f ( x) dx   f (2)    f (n  1)    f '( x) P1 ( x)dx .
1 2 2 1
f (1)  f (n)
Adunând în ambii membri şi rearanjând, avem
2
n n f (1)  f ( n) n
 f (k )   f ( x)dx    f '( x ) P1 ( x )dx (1)
k 1 1 2 1
Ultimii doi termeni dau eroarea atunci când integrala este folosită
pentru aproximarea sumei.
Considerăm
k 1
 f '( x ) P1 ( x)dx   udv ,
k
unde
u  f '( x),
du  f "( x) dx,
dv  P1 ( x)dx,
P ( x)
v 2 .
2
Integrând din nou, prin părţi, obţinem,
k 1
 f '( x ) P2 ( x)  1 k 1
uv   vdu      f "( x) P2 ( x)dx
 2 k 2 k
f '(k  1)  f '(k ) 1 k 1
   f "( x ) P2 ( x)dx.
12 2 k

116
Sumând apoi pentru k de la 1 la n  1 , şi apoi înlocuind ultima
integrală în (1) cu ce am arătat că este egală, avem:
n n f (1)  f (n) f '(n)  f '(1) 1 n
 f (k )   f ( x)dx     f "( x) P2 ( x )dx .
k 1 1 2 12 12 1
Procedând în continuare la fel se obţine demonstraţia prin inducţie
matematică a formulei de sumare Euler – MacLaurin, în care, pasul de
inducţie se bazează pe integrarea prin părţi şi pe identităţile pentru funcţiile
periodice Bernoulli.
Pentru o obţine limitele mărimii erorii atunci când suma este
aproximată de integrală, notăm că polinoamele Bernoulli pe intervalul [0,1]
îşi ating valorile maxime absolute în extreme şi Bn(1) este al n – lea număr
Bernoulli.
Derivaţia din analiza funcţională
Formula Euler – MacLaurin poate fi înţeleasă ca o curioasă aplicaţie a
unor idei din spaţiile Hilbert şi analiza funcţională. Fie Bn(x) polinoamele
Bernoulli. Funcţiile duale polinoamelor Bernoulli sunt date de
(1)n 1  (n 1)
B n ( x)   (1  x)  ( n 1) ( x) 
n!  
unde δ este funcţia delta a lui Dirac. Deasupra este o notaţie formală pentru
ideea de a lua derivatele într-un punct; astfel avem:
1 1 ( n 1)
 Bn ( x) f ( x)dx   f (1)  f ( n 1) (0) 
0 n! 
pentru n > 0 şi o funcţie arbitrară, dar diferenţiabilă, f(x) definită pe
intervalul unitate. Pentru cazul n =0, definim B0 ( x)  1 . Polinoamele
Bernoulli, împreună cu dualele lor, formează o mulţime ortogonală a
intervalului unitate: avem
1
 Bm ( x ) Bn ( x )dx  mn
0
şi

 Bn ( x) B n ( y )  ( x  y ) .
n0
Formula de sumare Euler – MacLaurin rezultă atunci ca o integrală
peste cea din urmă. Avem

117
1 
f ( x )    Bn ( x ) Bn ( y ) f ( y )dy
0 n0
1  1  ( n 1)
  f ( y )dy   Bn ( x ) f (1)  f ( n 1) (0)  
0 n 1 n!  
1 1
(N )
  BN 1 ( x  y ) f ( y )dy.
( N  1)! 0
Luând x = 0, şi rearanjând termenii, obţinem formula cunoscută,
împreună cu eroarea. De notat că numerele Bernoulli sunt definite ca Bn =
Bn(0), şi că acestea se anulează pentru n impar mai mare decât 1. Această
derivaţie nu presupune că f(x) este netedă şi că se comportă bine; anume, că
f poate fi aproximată prin polinoame; echivalent, că f este o funcţie analitică
reală.
Formula de sumare Euler – MacLaurin poate fi astfel văzută a fi un
rezultat al reprezentării funcţiei pe intervalul unitate prin produsul direct al
polinoamelor Bernoulli şi al dualelor lor. Oricât, reprezentarea nu este
completă pe mulţimea funcţiile pătrat integrabile. Dezvoltarea în termenii
polinoamelor Bernoulli are un nucleu netrivial. În particular, sin(2πnx) este
într-un nucleu; integrala lui sin(2πnx) se anulează pe intervalul unitate, fiind
diferenţa derivatelor ei în capetele intervalului.

7.7. T – integrarea
T – integrarea este o tehnică de integrare numerică dezvoltată de Jon
Michael Smith în 1970 pentru a facilita comanda şi controlul avionului.
Prescurtare pentru “integrare numerică tunabilă” ea foloseşte un pas fix ca
mărime şi o formulă iterativă care depinde de faza şi parametrii câştigaţi.
Fie f ( x) integrantul şi P şi G faza şi parametrii câştigaţi. În plus,
limita din membrul stâng al integralei este notată prin x0 şi x este mărimea
pasului. T – integrarea se defineşte prin formula recursivă:
Fn  Fn 1  G x  Pf n  (1  P) f n 1  .
Aici, f n este notaţia pentru f ( xn ) . Cantitatea Fn aproximează
x0  nx
 f ( x)dx .
x0
Dacă G = 1, atunci metoda se reduce la următoarele tehnici
binecunoscute de integrare numerică pentru valorile date de P:
 P = 0: regula stângă a dreptunghiului,
 P = 1/2: regula trapezului,
 P = 1: regula dreaptă a dreptunghiului.

118
T – integrarea poate fi acordată la problema care este folosită pentru
rezolvare. T – integrarea este bazată pe teoria informaţiei, nu pe teoria
aproximării. T – integrarea are un domeniu simplu de frecvenţă de ajustare a
parametrilor: un parametru de ajustare a fazei şi un parametru de ajustare
câştigat. Interesant, pentru probleme open-loop, fixând câştigul şi variind
faza obţinem toţi integratorii numerici de prim ordin şi un infinit de noi
integratori până acum necunoscuţi. Pentru aplicaţiile closed loop T –
integrarea conduce la o infinitate de integratori neclasici care produce
integrarea numerică exactă a sistemelor liniare şi integrarea aproape exactă a
sistemelor neliniare.
Pentru aplicaţiile asupra sistemelor de informaţie (calculator, control,
comunicare şi simulare) T – integratorul simplu de prim ordin face toţi
integratorii numerici bazaţi pe teoria clasică a aproximării. Simularea
mişcării avionului pentru diferite configuraţii aviatice (roată sus, roată jos,
clapă sus, clapă jos, motor afară etc.) şi condiţiile dinamice (decolarea,
aterizarea etc.) devine o simplă problemă de tunare a T – integratorului la
condiţiile de zbor care sunt simulate. În acest sens, T – integratorul se
adaptează la problema pe care încearcă să o rezolve.

BIBLIOGRAFIE

[1] Bucur,C.M.,
Metode numerice,
Ed. Facla, Timişoara, 1973.
[2] Ciurea,E.,
Algoritmi Introducere în algoritmica grafurilor,
Ed. Tehnică, Bucureşti, 2001.
[3] Coman,G.,
Analiză numerică,
Ed. Libris, Cluj, 1995.
[4] Croitoru,C.,
Tehnici de bază în optimizarea combinatorie,
Ed. Universităţii „Al. I. Cuza”, Iaşi, 1992.
[5] Cuculescu,I.,
Analiză numerică,
Ed. Tehnică, Bucureşti, 1967.
[6] Demidovici,B.P., Maron,I.,
Elements de calcul numerique,

119
Ed. Mir de Mosou, 1973.
[7] Dodescu,Gh., Toma,M.,
Metode de calcul numeric,
E. D. P., Bucureşti, 1976.
[8] Dodescu,Gh.,
Metode numerice în algebră,
Ed. tehnică, Bucureşti, 1979.
[9] Ichim,I., Marinescu,G.,
Metode de aproximare numerică,
Ed. Academiei R. S. R., Bucureşti, 1986.
[10] Ignat,C., Ilioi,C., Jucan,T.,
Elemente de informatică şi calcul numeric,
Univ. „Al. I. Cuza”, Iaşi, Fac. de Matematică, 1989.
[11] Juan Antonio Infante del Rio, Jose Maria Rey Cabezas,
Metodos Numericas,Teoria,problemas y practicas con
MATLAB,
Ed. Piramide, 2002.
[12] Knut,D.E.,
Sortare şi căutare, vol. 3,
Tratat de programarea calculatoarelor,
Ed. Tehnică, Bucureşti, 1976.

[13] Livovschi,L., Georgescu,H.,


Sinteza şi analiza algoritmilor,
Ed. Ştiinţifică şi Enciclopedică, Bucureşti, 1986.
[14] Melhorn,K.,
Data Structures and Algorithms,
Springer-Verlag, Berlin, 1984.
[15] Mihu,C.,
Metode numerice în algebra liniară,
Ed. Tehnică, Bucureşti, 1977.
[16] Popovici,P., Cira,O.,
Rezolvarea numerică a ecuaţiilor neliniare,
Ed. Signata, Timişoara, 1992.
[17] Press,W.H., Teuklosky,S.A., Vetterling,W.T., Flannery,B.P.,
Numerical Recipes in C: The Art of scientific Computing,
(Cambridge University Press, Cambridge, 1992).
[18] Scheiber,E.,
Metode numerice,
Univ. Transilvania din Braşov,
Facultatea de Matematică – Informatică, (electronic).
[19] Toma,M., Odăgescu,I.,

120
Metode numerice şi subrutine,
Ed. Tehnică, Bucureşti, 1980.
[20] Vladislav,T., Raşa,I.,
Analiză numerică,
Ed. Tehnică, Bucureşti, 1997.
[21] Vraciu,G., Popa,A.,
Metode numerice cu aplicaţii în tehnica de calcul,
Scrisul românesc, Craiova, 1982.
[22] ***, Borland International, Inc.
Borland C++, Programming Guide
(Borland International, Scotts wally, CA, 1992).

121

You might also like