Documente Academic
Documente Profesional
Documente Cultură
NOTE DE CURS
-1-
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 14
2.2.2. Metoda Lagrange 15
2.2.3. Metoda Newton 16
2.2.4. O teoremă de punct fix 17
2.2.5. Ordinul metodei 22
2.2.6. Accelerarea convergenţei 24
2.2.6.1. Metoda Aitken 24
2.2.6.2. Metoda Steffensen 26
2.2.7. Metoda poziţiei false 28
2.2.8. Principiul dihotomiei 30
2.3. Rezolvarea numerică a sistemelor neliniare 31
2.3.1. Metoda aproximaţiilor succesive 31
2.3.2. Metoda Newton 33
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 37
3.2.2. Factorizarea LU 40
3.2.3. Factorizarea Cholesky 42
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 48
Capitolul 4
Rezolvarea numerică a problemelor algebrice de valori şi vectori proprii 50
4.1. Abordarea elementară a subiectului 50
4.2. Aspecte teoretice generale 51
4.2.1. Clase speciale de matrici 51
4.2.2. Punerea corectă a problemei 54
-2-
4.3. Metoda lui Jacobi 55
4.4. Probleme de valori proprii generalizate 61
4.5. Exerciţii 62
Capitolul 5
Aproximarea funcţiilor prin polinoame 63
5.1. Introducere 63
5.2. Aproximarea prin interpolare 63
5.2.1. Interpolarea polinomială Lagrange 64
5.2.2. Algoritmul Aitken 66
5.2.3. Evaluarea restului la interpolarea Lagrange 68
5.2.4. Diferenţe divizate 70
5.2.5. Formula lui Newton de interpolare 71
5.2.6. Diferenţe finite 73
5.2.7. Formule de interpolare pe noduri echidistante 73
5.2.8. Interpolarea polinomială Hermite 75
5.2.9. Interpolarea prin funcţii spline 77
5.3. Aproximarea în sensul celor mai mici pătrate 79
5.3.1. Problema fundamentală a aproximării liniare 79
5.3.2. Teoreme fundamentale 80
5.3.3. Aproximarea discretă în sensul celor mai mici pătrate 81
5.4. Exerciţii 83
Capitolul 6
Rezolvarea ecuaţiilor diferenţiale ordinare de ordinul I 84
6.1. Introducere 84
6.2. Metode 85
6.2.1. Metoda Euler 85
6.2.2. Metoda Euler backward 85
6.3. Generalizări 86
6.3.1. Metode Runge – Kutta 86
6.3.1.1. Metoda clasică Runge – Kutta de ordin 4 86
6.3.1.2. Metode Runge – Kutta explicite 87
6.3.1.3. Metode Runge – Kutta ajustative 87
6.3.1.4. Metode Runge – Kutta implicite 88
6.3.2. Caracteristici 88
6.4. Metode alternative 89
Capitolul 7 Integrarea numerică 91
7.1. Introducere 91
7.2. Integrarea în puncte echidistante 97
7.2.1. Formulele Newton – Cotes 97
7.2.2. Metoda dreptunghiurilor 99
7.2.3. Regula trapezului 100
7.2.4. Metoda Romberg 101
7.2.5. Regula Simpson 102
7.2.6. Metoda ajustativă Simpson 104
7.3. Integrarea în puncte neechidistante 105
7.3.1. Cvadratura gaussiană 105
7.3.2. Cvadratura tanh – sinh 109
7.3.3. Cvadratura Clenshaw – Curtis 110
7.3.4. Cvadratura Fejer 113
7.3.5. Cvadratura ajustativă 113
7.4. Integrarea cu funcţii pondere 115
7.5. Metoda Nystrom 116
7.6. Formula Euler – MacLaurin 116
7.7. T - integrarea 121
-3-
Bibliografie 123
Fişa disciplinei 124
-4-
INTRODUCERE
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.
-5-
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ă.
-6-
CAPITOLUL 1
Erorile de calcul numeric
Obiectivul capitolului
Însuşirea unor noţiuni referitoare la erorile de calcul numeric, algoritmi şi
complexitate de calcul, metode de programare.
-7-
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 ,
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.
-8-
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 .
Fie x = 2 , y = 0,6665 şi k = 4 . Să se calculeze e x − y .
3
Avem x = 0,6666 , y = y , deci
2
− 0,6666
x−x 3 y−y
x = = = 0,0001 , y = = 0.
x 0,6666 y
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 ,
- 10 -
... 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, 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 = TA ( 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
TA (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 TA ( p) ).
Deoarece determinarea exactă a lui TA (n) este dificilă vom căuta margini
superioare şi inferioare pentru TA (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 ) } .
- 11 -
Vom spune că P are complexitatea O( f (n)) dacă există un algoritm A
care rezolvă problema P şi are complexitatea TA (n) = O( f (n)) . O problemă P
are complexitatea ( f (n)) dacă orice algoritm A care rezolvă problema P are
complexitatea TA (n) = ( f (n)) . Un algoritm A cu TA (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 (!).
- 12 -
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).
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ă.
Discuţii finale:
Să se discute despre erorile de calcul numeric, despre algoritmi şi complexitate
de calcul, despre metode de programare.
Tema propusă:
Să se facă o lucrare despre erorile de calcul numeric, despre algoritmi şi
complexitate de calcul, despre metode de programare.
- 13 -
CAPITOLUL 2
Rezolvarea numerică a ecuaţiilor şi sistemelor de
ecuaţii algebrice neliniare
Obiectivul capitolului
Însuşirea unor noţiuni referitoare la metodele Newton, Aitken, Steffensen,
falsei poziţii.
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, x2 ,..., xn ) . Pentru n = 1, notând x1 = x , avem o ecuaţie
algebrică neliniară sau transcendentă, cu o necunoscută.
- 14 -
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);
xn +1 = g ( xn ) ,
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 continuă.
f (x)
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 = lim x n , deoarece lim xn +1 = lim g ( x n ) şi cum g este o
n→ n → n →
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:
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 = xn − î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 xn +1 = g ( xn )
- 15 -
= 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)
}
}.
{
k 0
x0 x
x x0 − f ( x0 ) / fd( x0 )
cât timp | x − x0 | şi k nr_max
{
k k +1
x0 x
- 17 -
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.
| xn + p − xn + p −1 | + | xn + p −1 − xn + p − 2 | + ...+ | xn +1 − xn| .
- 18 -
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 lim Ln = 0 urmează că lim | x n + p − x n |= 0 pentru p N .
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ă xn [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
| − xn | | 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 '
verifică max | g ' ( x) | = L 1 atunci g este o aplicaţie strict contractantă în
x[ a , b ]
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 − ,
x x2
| g ' ( x) | c 1, dar ecuaţia x = g (x) nu are punct fix în intervalul considerat,
1
deoarece x = g ( x) = 0 .
x
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.
- 19 -
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 xn +1 = g ( xn ) 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 şi g ' ( x) 0 .
x[ p, q ]
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 şi g ' ( x) 0 .
x[ p, q ]
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
xn +1 = g ( xn ) 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.
Rezolvare.
- 20 -
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 , xn +1 = g ( xn ) ş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
( a − ) 2 f " (c )
g ' ( ) = .
2 f (a)
( a − ) 2 f " (c )
Deci | g ' () | 1 devine 1.
2 f (a)
3) Fie x0 = b , xn +1 = g ( xn ) şi funcţia g definită prin
f ( x)
g ( x) = x − .
f ' ( x)
f ( x) f " ( x)
Dacă există f " atunci 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
- 21 -
atunci alegând x0 [a, b] astfel încât f ( x0 ) f " ( x0 ) 0 , şirul ( x n ) definit prin
x0 şi xn +1 = g ( xn ) converge spre unica soluţie a ecuaţiei f ( x) = 0 în
intervalul [a, b] .
Demonstraţie.
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 )
xn +1 − = xn − −
f ' ( xn )
f () − f ( x n )
= xn − +
f ' ( xn )
( − x n ) 2
( − x n ) f ' ( x n ) + f " ( 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ă
( x n − ) 2 f " ( n )
xn +1 − = .
2 f ' ( xn )
Dacă f " ( x) şi f ' ( x) sunt de acelaşi semn pe [a,b] atunci pentru n 0 ,
xn +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 ,
xn +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 .
- 22 -
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 )
xn +1 = xn − 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.
f ( x0 )
Cum x1 = x0 − x0 urmează că x n ,
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 )
xn +1 = xn − 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).
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)
xn +1 = g ( xn ) cu g ( x) = x − ,
( f 1 / m ( x))'
- 24 -
adică
f 1 / m ( x) f ( x)
g ( x) = x − = x−m .
1 f ' ( x)
1 m −1
f ( x) f ' ( x)
m
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= xn − f ( xn ) , en +1 = en − f ( xn ) ,
f ( xn )
g ' ( x) = 1 − f ' ( x) , en +1 = en g ' ( xn ) + f ' ( xn ) − .
e n
f ( xn ) f ( x n ) − f ( )
lim n = lim f ' ( xn ) − = lim f ' ( xn ) − lim ,
n → n → en n → n → en
lim n = lim f ' ( x n ) − 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)
( a − ) 2 f " (c )
Din exemplul 2 urmează că 0 | A | 1 , unde A = g ' () =
2 f (a)
cu c (a, ) .
af ( xn ) − xn f (a) ( a − ) f ( x n ) − en f ( a )
xn +1 = , en +1 = ,
f ( xn ) − f (a) f ( xn ) − f (a)
en +1 = ( g ' () + n )en .
( a − ) f ( x ) − ( x − ) f ( a )
Fie H ( x) = .
( x − )( f ( x) − f (a))
- 25 -
( 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 ( xn ) − = 0.
n → x → f (a)
Dacă presupunem n = 0 atunci
xn +1 − = A( xn − )
xn + 2 − = A( xn +1 − ).
Deci
xn + 2 − xn +1 = A( xn +1 − xn ) ,
adică
x − x n +1
A = n+2 .
xn +1 − xn
Deci
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:
( xn +1 − xn ) 2
x' n = x n −
xn + 2 − 2 xn +1 + xn
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
( xn +1 − xn ) 2 x ' −
x' n = x n − converge mai repede, adică lim n = 0.
xn + 2 − 2 xn +1 + xn 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
- 26 -
x n + 2 − 2 x n +1 + x n = ( x n + 2 − ) − 2( x n +1 − ) + ( x n − )
= en + 2 − 2en +1 + en
= (( 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 lim n = 0 .
n→
La fel, xn +1 − xn = 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
x ' −
Deci lim n = 0.
n → xn −
( xn +1 − xn ) 2
Metoda definită de x' n = xn − se numeşte metoda lui
xn + 2 − 2 xn +1 + xn
Aitken.
- 27 -
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
e2 e p ( p)
g ( + e) = + eg ' () + g" () + ... + g ( ) + O ( e p +1 ) .
2! p!
g ( k ) ( )
Notând cu x k = avem
k!
g ( + e) = + x1 e + x2 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
G ( + e) − = O(e 2 ) dacă x1 1.
Deci metoda Steffensen este de ordinul cel puţin 2.
Dacă ordinul metodei este p 1 , adică x1 = x 2 = ... = x p −1 = 0 atunci
g ( + e ) = + x p e 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
- 28 -
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 )
x2 g ( x1 )
x x0 ( x1 − x0 ) 2 /( x 2 − 2 x1 + x0 )
cât timp | x − x0 | şi k nr_max
{
k k +1
x0 x
x1 g ( x0 )
x2 g ( x1 )
x x0 ( x1 − x0 ) 2 /( x 2 − 2 x1 + x0 )
}
}.
- 29 -
Dacă se compară cu metoda Lagrange definită prin:
af ( xn ) − xn f (a)
xn +1 =
f ( xn ) − f (a)
se remarcă că metoda poziţiei false se obţine din metoda Lagrange înlocuind a
cu xn −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 ( xn ) − xn f ( xn −1 ) − f ( xn ) + f ( xn −1 )
xn +1 − = n −1 ,
f ( xn ) − f ( xn −1 )
e f ( xn ) − en f ( xn −1 )
en +1 = n −1 .
f ( xn ) − f ( xn −1 )
Dacă f ' () 0 şi f " () 0 atunci
( x n − ) 2
f ( x n ) = ( x n − ) f ' ( ) + f " ( ) + ( x n − ) 2 ( x n − ) .
2!
Atunci:
e2 e2
en −1 (en f ' () + n f " () + en2 (en )) − en (en −1 f ' () + n −1 f " () + en2−1(en −1 ))
e n +1 = 2 2
2 2
e −e
(en − en −1 ) f ' () + n n −1 f " () + en2 (en ) − en2−1(en −1 ))
2
e e
(en − en−1 ) f " () n n−1
2 f " ( )
en+1 = en en−1 .
(en − en−1 ) f ' () 2 f ' ( )
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 |
lim n +1 = c cu c 0 .
n → | en | p
- 30 -
Deci:
| en +1 |~ c | en | p şi | en |~ c | en −1 | p ,
de unde
| en +1 |~ c p +1 | en −1 | p .
2
Î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
- 33 -
( g1 ( x1 , y1 ) − g1 ( x2 , 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 ( x2 , y 2 )) 2 ( g ' 22 x ( x , y ) + g ' 22 y ( x , y ))(( x1 − x 2 ) 2 + ( y1 − y 2 ) 2 ).
Deci:
( g1 ( x1 , y1 ) − g1 ( x 2 , y 2 )) 2 + ( g 2 ( x1 , y1 ) − g 2 ( x 2 , y 2 )) 2 max ( g '12x + g '12y + g ' 22 x + g ' 22 y )
X D
(( x1 − x 2 ) 2 + ( y1 − y 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)
}
}.
- 34 -
Plecând de la ( x n , y n ) , căutăm 1 , 2 astfel ca:
f1 ( xn + 1 , y n + 2 ) = 0
f ( x + , y + ) = 0.
2 n 1 n 2
Dezvoltăm în serie Taylor şi neglijăm termenii de ordinul 2:
f1 ( xn , y n ) + 1 f '1x ( xn , y n ) + 2 f '1 y ( xn , y n ) = 0
f ( x , y ) + f ' ( x , y ) + f ' ( x , y ) = 0.
2 n n 1 2x n n 2 2y n n
Deci, (1 , 2 ) trebuie să verifice următorul sistem:
1 f '1x ( xn , y n ) + 2 f '1 y ( xn , y n ) = − f1 ( xn , y n )
f ' ( x , y ) + f ' ( x , y ) = − f ( x , y ).
1 2x n n 2 2y n n 2 n n
f '1x ( xn , y n ) f '1 y ( xn , y n )
Fie J ( xn , y n ) J ( xn , y n ) =
matricea .
f ' 2 x ( xn , y n ) f ' 2 y ( xn , y n )
Dacă determinantul lui J ( xn , yn ) (matricea lui Jacobi) este diferit de zero
f
atunci sistemul are o soluţie şi numai una 1 = − J −1 ( xn , y n ) 1 . Atunci
2 f2
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 a
f
evita inversarea matricii jacobiene, avem J ( xn , y n ) 1 = − 1 .
2 f2
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ă
k k +1
X 0 X + dX
execută f (n, X 0, b)
b −b
- 35 -
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 x2 − 5 x1 + 1 = 0
x
folosind metoda lui Newton cu iteraţia iniţială X 0 = 0 = .
3,4
0 2,2
y
Discuţii finale:
Să se programeze utilizând metoda Newton, Aitken, Steffensen, falsei poziţii.
Tema propusă:
Să se facă o lucrare cu tema metoda Newton, Aitken, Steffensen, falsei poziţii.
- 36 -
CAPITOLUL 3
Rezolvarea sistemelor algebrice liniare
Obiectivele invatarii
Însuşirea unor noţiuni referitoare la metoda de eliminare a lui Gauss,
factorizarea LU, factorizarea Cholesky, metoda iterativă Jacobi, metoda
iterativă Gauss-Seidel.
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, x j sunt necunoscutele sistemului, iar bi sunt
termenii liberi.
Sunt posibile situaţiile:
(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.
- 37 -
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ă
a (1) a (1) a (1) a1(1k)+1 a1(1n) b (1)
11 12 1k 1
0 a ( 2) a ( 2) ( 2) ( 2) x1 ( 2)
a a b
22 2k 2 k +1 2n x2
2
− −
0 0 a kk ( k 1 ) ( k
a kk +1 1)
a knk −1) xk = bk( k −1)
(
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 a nk +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) a1k +1 a1n
(1) (1)
11 12 1k b (1)
( 2) 1
x 1
0 a ( 2) a ( 2) ( 2)
22 a 2k +1 a 2n x 2 b ( 2)
2k 2
0 (k ) x (k )
k = bk
(k ) (k )
0 a kk a kk + a kn
(k )
1
( k ) x k +1 b (k )
0 a k +1k +1 a k +1n
k +
0 0 0 1
xn (k )
( k ) b
0 0 0 0 a
(k )
a n
nk +1 nn
Î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
- 38 -
b ( n)
xn = n
( n)
a nn
x = b (i ) − n (i )
(i )
i i
a ij j / aii , i = n − 1, ..., 1 .
x
j =i +1
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
- 39 -
Componenta i a coloanei transformate Tk a k este:
pentru i k
a'ik = aik − a kk t ik =
a
aik − a t pentru i k .
ik kk ik
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
tik = 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 ekT a j = a j − a kj t k ,
iar pe componente:
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 .
- 40 -
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
k i n
liniile şi k. Permutarea a două linii sau coloane dintr-o matrice se poate face
prin înmulţirea cu o matrice de permutare care diferă de matricea unitate prin:
a = akk = 0 , ak = a k = 1 . 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 u 33 u 3n .
0 0 nn
n1 n2 n3 nn 0
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 celor
min( i , j )
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
- 41 -
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 .
a
Pentru i 1 , j = 1 avem i1u11 = ai1 i1 = 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 2u2k + ... + ik ukk = aik
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 2u2k + ... + ik ukk = 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 = a kj
1 k −1
u kj = a kj − ks u sj
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)
{
- 42 -
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:
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ă.
- 43 -
Pentru i k , j = k :
i11k + i 2 2k + ... + ik kk = aik
1 k −1
ik = aik − is ks , i = k + 1, ..., n .
kk s =1
Fie
A M n (R ), A = (aij )1 i , j n şi b R n , b = (bi )1 i n .
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
- 44 -
0 0 0 0
inf
a 0 0 0
A = 21 ,
a n1 an2 a nn −1 0
0 a12 a12 a1n −1 a1n
a 2n −1 a 2n .
Asup = 0 0 a 23
0 0 0 0 0
- 45 -
sau, trecând la norme şi notând cu e (0) = x − x (0) obţinem
k
e ( k +1) P e ( k ) ... P 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
| aij | | aii |, i {1,2,..., n} sau | aij | | a jj |, j {1,2,..., n}
j =1 i =1
j i i j
sau
2
n n aij
1.
i =1 j =1 aii
j i
- 47 -
P 1 ( D + Ainf ) −1 Asup 1 .
- 48 -
| 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
yx
k k +1
}.
3.4. Exerciţii
1) Să se rezolve sistemele:
0,78x1−0,02 x2 − 0,12 x3 − 0,14 x4 = 0,76
− 0,02 x1+0,68x2 − 0,04 x3 + 0,06 x4 = 0,08
a) utilizând metoda Jacobi;
− 0,12 x −0,04 x2 + 0,72 x3 − 0,08x4 = 1,12
0,14 x +10,06 x −
1 2 0,08 x3 + 0,74 x4 = 0,68
- 49 -
x1 + x 2 + x3 + x 4 + x5 = 12
2 x1 +3x 2 + x3 + 5 x 4 + 2 x5 = 35
b) − x1 + x 2 − 5 x3 + 3x 4 + 6 x5 = 10 utilizând metoda Gauss;
3 x1 + x 2 + 7 x3 − 2 x 4 − 3 x5 = 12
2 x1 +2 x 2 + 2 x3 − x 4 − 3 x5 = 10
6 x1 − x2 − x3 = 11,33
c) − x1 +6 x2 − x3 = 32 utilizând metoda Gauss-Seidel.
− x1 − x2 + 6 x3 = 42
2) Analizaţi comparat metodele Jacobi, Gauss-Seidel şi relaxării pentru
2 −1 0 1 0
A = − 1 2 − 1 , b = 0 , x (0) = 0 .
0 −1 2 1 0
Discuţii finale:
Să se discute despre metoda de eliminare a lui Gauss, factorizarea LU,
factorizarea Cholesky, metoda iterativă Jacobi, metoda iterativă Gauss-Seidel.
Tema propusă:
Să se realizeze o lucrare cu tema metoda de eliminare a lui Gauss, factorizarea
LU, factorizarea Cholesky, metoda iterativă Jacobi, metoda iterativă Gauss-
Seidel.
- 50 -
CAPITOLUL 4
Rezolvarea numerică a problemelor algebrice de
valori şi vectori proprii
Obiectivul capitolului
Însuşirea noţiunilor necesare programării algoritmul lui Jacobi de determinare a
valorilor si vectorilor proprii.
- 51 -
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ă):
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 .
- 53 -
t11 t12 t13 t1n t11 0 0 0
0 0
t 22 t 23 t 2n t12 t 22 0
0 0 t 33 t 3n t13 t 23 t 33 0 = T H T .
0 t nn t1n t nn
0 0 t 2n t 3n
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 t in t in
n
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 AH P )
= P H A( PP H ) AH 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 AH ( PP H ) AP = P H A H AP
= P H AAH 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
- 54 -
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 ,
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ă.
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ă:
- 55 -
max | j − | −1 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
- 56 -
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ă.
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
- 57 -
Ak +1 = Rk Ak RkT
şi avem
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 −
(a (k ) )
sin
( k +1)
0 0 0 1 0 0 0 ij = (aij )
0 0 0 0 1 0 0 sin cos
0 0 − sin 0 0 cos 0
0 0 0 0 0 0 1
Deci
a ( k +1) = a ( k ) cos + a ( k ) sin , i p, q
ip ip iq
( k +1) (k ) (k )
aiq = −aip sin + aiq cos , i p, q
k +
a pp = a pp cos + 2a pq) sin cos + a qq
( 1) ( k ) 2 ( k (k )
sin 2
( k +1)
a qq = a (pp
k)
sin 2 − 2a (pq
k) (k )
sin cos + a qq cos 2
a ( k +1) = a ( k +1) = (a ( k ) − a ( k ) ) cos sin + a ( k ) (cos 2 − sin 2 )
pq qp qq pp pq
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 )
cos 2 + (a (k )
−a (k )
) = 0 tg 2 = ( k ) .
a pp − a qq
pq qq pp (k )
2
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 2 c2 c
= = sin 2 = sin 2 = =f
cos 2 d 2
cos 2 d 2 2
d +c 2
d 2 + c2
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.
- 58 -
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ă
( 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
+
Ek +1 E = | aij | = Ek E − 2(a (pq
2 ( k 1) 2 2 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 E k E sunt n 2
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
2
n −n
2 2 k) 2 2 2
Ek +1 E = Ek E − 2(a (pq ) 1 − Ek E .
2
n −n
2 2
Deci E k E k E0 E cu 0 1 . Rezultă lim E k = 0 . Deci la
k →
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:
- 59 -
( 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:
v ( k +1) = v ( k ) cos + v (k ) sin
pi pi qi
( k +1) (k ) (k )
qi
v = − v pi sin + v qi cos
Metoda Jacobi conduce la următorul algoritm.
Algoritmul 4.3.1.
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
q2
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
- 60 -
}
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
{
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
}
- 61 -
pentru i 1 : n
i aii
pentru j 1 : n
{
\* vectorul propriu j
pentru j 1 : n
bij aij
}
}.
L−1 A( L−1 )T ( LT x) = ( LT x) ,
adică
A x = x
pentru matricea simetrică
A = L−1 A( L−1 )T .
- 62 -
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
1 1 1
matricea 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:
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ă.
Discuţii finale:
Să se discute despre algoritmul lui Jacobi de determinare a valorilor şi
vectorilor proprii.
Tema propusă:
Să se facă o lucrare cu tema algoritmul lui Jacobi de determinare a valorilor şi
vectorilor proprii.
- 63 -
CAPITOLUL 5
Aproximarea funcţiilor prin polinoame
Obiectivele invatarii
Însuşirea unor noţiunie referitoare la interpolarea polinomială Lagrange,
algoritmul Aitken, diferenţe divizate, formula lui Newton de interpolare,
diferenţe finite, formule de interpolare pe noduri echidistante, interpolarea
polinomială Hermite, aproximarea discretă în sensul celor mai mici pătrate.
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 ... xn b , o vom nota prin d[ a , b ] şi o vom numi diviziune a
intervalului [a, b] .
Punctele x i , 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 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ă.
- 64 -
5.2. Aproximarea prin interpolare
Fie f : [a, b] → R şi diviziunea
d[ a , b ] : a x0 x1 ... xn b .
Presupunem cunoscute valorile funcţiei f în nodurile x i , 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 ] .
- 65 -
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) + 11 ( x) + ... + n n ( x) 0 .
Pentru x = x k , k = 0, 1, ..., n , avem
0 0 ( xk ) + 1 1 ( xk ) + ... + k k ( xk ) + + n n ( xk ) = 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
dacă j i atunci
P P (a − x j ) /( xi − x j )
+ yi P
}
}.
- 66 -
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 − xn ) .
Atunci
w' ( xk ) = ( xk − x0 )( xk − x1 )...(xk − xk −1 )( xk − xk +1 )...( xk − xn ) .
Deci
w( x)
k ( x) =
( x − xk ) w' ( xk )
cu k ( xk ) = 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' ( x k )
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ă evaluare
1
a lui P(x) , dacă se conservă valorile lui , nu va cere decât 2n operaţii.
w' ( x k )
- 67 -
R(b) = .
Atunci polinomul de interpolare de grad n + 1, construit pe
{x0 , x1 , ..., xn −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
- 68 -
pentru k = j + 1, j + 2, ..., n
( xk − 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 , x k } , 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 {x0 , 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 } .
- 69 -
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 − xn ) .
Din condiţiile de interpolare F ( xi ) = 0 , i = 0, 1, ..., n .
Deci F are n + 2 zerouri distincte şi anume: x, x0 , x1 , ..., xn 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.
Dacă, însă, se cunoaşte estimaţia M n = sup | f ( n +1) ( y ) | , se poate evalua
y[ a, b]
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 a
funcţiei f definită pe [−5,5] prin f ( x) = e − x .
2
- 70 -
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 x i
ş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 x i , x j ş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ţă:
[ x2 ,..., xk +1 ] f − [ x1 ,..., xk ] f
[ x1 , x2 ,..., xk +1 ] f =
xk +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:
- 71 -
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 )
k +1
+ i i 1 i i
− = .
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 )
}.
- 72 -
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
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) = am −1wm −1 ( x) ,
unde
m −1
w m − 1 ( x) = ( x − x j ) .
j =0
Pentru x = xm obţinem f ( xm ) − Lm −1 ( xm ) = am −1wm −1 ( xm ) ;
comparând cu expresia lui f ( x) − P( x) , pentru n = m − 1 şi x = xm , deducem
a m −1 = [ x m , x0 , x1 ,..., x m −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 − xn −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
}.
- 73 -
5.2.6. Diferenţe finite
Nodurile de interpolare x0 , x1 , ..., xn 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, ... .
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 kj f ( x + h + jh) − (−1) k − j C kj f ( x + jh).
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
- 74 -
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 ( xn ) + [ xn , xn −1 ] f ( x − xn ) + [ xn , xn −1 , xn − 2 ] f ( x − xn )( x − xn −1 ) +
+ ... + [ xn , xn −1 ,..., x0 ] f ( x − xn )( x − xn −1 )...( x − x1 ).
Făcând transformarea x = xn + th şi ţinând cont de legătura dintre
diferenţe finite şi divizate, obţinem după simplificări:
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)
- 75 -
altfel
d d − c f ( x0 + jh)
}
}
}.
xi 0 1 2 3
yi −4 1 10 29
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 )] 2i ( x j ) = 0 , k i ( x j ) = ( x j − xi ) 2i ( x j ) = 0 ,
adică P( xk ) = f k .
h'i ( x) = −2'i ( xi ) 2i ( x) + [1 − 2( x − xi )'i ( xi )]2 i ( x)'i ( x) ,
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 − xn ) 2 ( 2n + 2)
f ( x) − P( x) = f ( ) ,
(2n + 2)!
unde a min( x, x0 ) max(x, xn ) 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 , i = 0, 1, ..., n .
P' ( x ) = f ' ( x ) = f '
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
- 77 -
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 )
s s + + (1 − 2 (a − xi ) l _ d ) yi + (a − xi ) y _ d i
}
h s
}.
- 78 -
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 :
x −x x − xi
S "i ( x) = f "i i +1 + f "i +1 .
hi hi
Integrând de două ori obţinem:
( xi + 1 − x ) 3 ( x − xi ) 3
S i ( x) = f "i + f "i +1 + ai ( xi +1 − x) + bi ( x − xi ) ,
6hi 6hi
unde a i şi bi sunt constante de integrare, care se pot calcula ţinând cont de
S i ( xi ) = f i şi Si ( xi +1 ) = f i +1 , adică
hi2 hi2
f "i + ai hi = f i şi f "i +1 + bi hi = f i +1 ,
6 6
de unde
f h f h
ai = i − f "i i şi bi = i +1 − f "i +1 i .
hi 6 hi 6
( x − x) 3 hi ( x − xi ) 3 hi
S i ( x) = f "i i +1 − ( xi +1 − x) + f "i +1 − ( x − xi ) +
6hi 6 6hi 6
fi f i +1
+ ( xi +1 − x) + ( x − xi ).
hi hi
S 'i ( x i ) = S 'i −1 ( x i ) ,
echivalent cu:
hi h f f h h f f
− f "i − f "i +1 i − i + i +1 = f "i −1 i −1 + f "i i −1 − i −1 + i ,
3 6 hi hi 6 3 hi −1 hi −1
- 79 -
sau încă pentru i = 1, 2, ..., n − 1:
f − f i f i − f i −1
hi f "i +1 +2(hi + hi −1 ) f "i + hi −1 f "i −1 = 6 i +1 − .
hi hi −1
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:
are o soluţie.
Aceasta se numeşte aproximarea discretă în sensul celor mai mici pătrate.
- 82 -
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, P( x) = a0 + a1 x
k k
2 2
astfel ca ( yi − a1 xi − a0 ) ( yi − b1 xi − b0 ) , (b0 , b1 ) R 2 . Fie
i =0 i =0
k +1 k +1
X = ( xi ) R şi Y = ( yi ) R . Sistemul de ecuaţii normale devine:
1 x0 y0
1 x1 a y
1 1 1 1 1 1 1 1 1
x x2 xk 1 x2 0 = x x2 xk y 2 ,
0 x1
1
a 0 x1
1 x k y
k
k k
k + 1 xi yi
adică i = 0 a0 = i = 0 . x=
1 k
xi ,
k a k
Notând
k
2 1 k + 1 i =0
xi x i xi y i
i =0 i =0 i =0
1 k
y= yi , deoarece ( xi − x )( yi − y ) = xi yi − xyi − yxi + xy , 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, în
k + 1 i =0 k + 1 i =0 k + 1 i =0 k + 1 i =0
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
1 k
Dacă X = Y , obţinem ( X 2 ) = 2
( xi − x ) .
k + 1 i =0
( X , Y )
Rezolvarea sistemului dă a1 = , a0 = y − a1 x .
( X 2 )
- 83 -
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) .
3) Pentru x0 = 1 , h = 1, să se determine diferenţele finite pentru
f ( x) = x 4 − x 2 + 1 .
4) Fie funcţia f : R → R definită prin f ( x) = 1 .
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) .
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.
Discuţii finale:
Să se discute despre interpolarea polinomială Lagrange, algoritmul Aitken,
diferenţe divizate, formula lui Newton de interpolare, diferenţe finite, formule
de interpolare pe noduri echidistante, interpolarea polinomială Hermite,
aproximarea discretă în sensul celor mai mici pătrate.
Tema propusă:
Să se întocmească o lucrare cu tema interpolarea polinomială Lagrange,
algoritmul Aitken, diferenţe divizate, formula lui Newton de interpolare,
diferenţe finite, formule de interpolare pe noduri echidistante, interpolarea
polinomială Hermite, aproximarea discretă în sensul celor mai mici pătrate.
- 84 -
Capitolul 6
Rezolvarea ecuaţiilor diferenţiale ordinare de ordinul I
Obiectivul capitolului
Însuşirea unor noţiuni referitoare la metoda Euler şi la metode Runge – Kutta.
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ă.
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 .
- 85 -
6.2. Metode
Prezentăm două metode elementare.
- 86 -
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
Î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
tn +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 )
- 87 -
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;
• k 2 este panta de la mijlocul intervalului, folosind panta k1
h
pentru a determina valoarea lui y în punctul tn + folosind metoda lui Euler;
2
• 3 este tot panta de la mijlocul intervalului, dar folosind panta
k
k 2 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 .
( )
ks = 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.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, ...
- 89 -
• 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.
- 90 -
hn + k = (tn + k ; y (tn ), y (tn +1 ), , y (tn + k −1 ); h) − y (tn + 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.
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 timpul t
t − t0
este y N − y (t ) unde N = . Eroarea globală a unei metode cu un pas de
h
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ă.
Discuţii finale:
Să se discute despre metoda Euler şi metode Runge – Kutta.
Tema propusă:
Să se întocmească o lucrare cu tema metoda Euler, metode Runge – Kutta.
- 91 -
CAPITOLUL 7
Integrarea numerică
Obiectivul capitolului
Însuşirea unor noţiuni referitoare la formulele Newton – Cotes, metoda
dreptunghiurilor, regula trapezului, metoda Romberg, regula Simpson,
cvadratura gaussiană.
7.1. Introducere
Î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ă.
- 92 -
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 o funcţie
2
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ă 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.
- 93 -
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
,f . Această metodă se numeşte regula mijlocului sau regula
2 2
dreptunghiului.
b a+b
f ( x)dx (b − a ) f .
a 2
.
Exemplificare pentru regula trapezului
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
unde subintervalele au forma
kh, (k + 1)h ,
b−a
cu h = şi k = 0, n − 1 .
n
- 94 -
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:
// 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ă
- 95 -
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.
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 '( yx ) = 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
- 96 -
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.
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.
- 97 -
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
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
x − x0
unde xi = h i + x0, cu h (numit pas) egal cu n . wi se numesc ponderi. Aşa
n
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
- 98 -
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.
- 99 -
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ă.
- 100 -
Eroarea
Erorii de aproximare în mijloc se descompune ca cubul lăţimii
dreptunghiului
a+h h h3
f ( x)dx = hf a + + f "()
a 2 24
pentru (a, a + h) oarecare.
b−a m+1
unde n 1, m 1, hn = . Eroarea R(n, m) este de ordinul O(hn2 ).
n
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
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
- 102 -
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.
- 103 -
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:
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 xn = b .
n
Formula de mai sus poate fi scrisă astfel:
- 104 -
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ă.
- 105 -
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.
Numărul de
Punctele, xi Ponderile, wi
puncte, n
1 0 2
- 106 -
1
2 1
3
8
0 9
3
3 5
9
5
6
3−2 18 + 30
5
36
7
4
6
3+ 2 18 − 30
5
36
7
128
0
225
5 1 10 322 + 13 70
5−2
3 7 900
1 10 322 − 13 70
5+2
3 7 900
- 107 -
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.
1
(−1,1) Polinoamele Chebyshev (de prima speţă)
1 − x2
e− x
2
(−∞,∞) Polinoamele Hermite
Teorema fundamentală
b
Fie q un polinom netrivial de grad n astfel încât ( x) x k 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,
- 108 -
b n f (2n) ()
( 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
f (2n) (), a b .
(2n + 1) (2n)!
3
- 109 -
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
- 110 -
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”.
- 111 -
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
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, sunt
n
precis calculate de punctele N echidistante şi ponderile n = echidistante
N
1
pentru n = 0, N (cu excepţia punctelor terminale care sunt ponderate de ,
2
pentru a evita dubla numărare). Adică, aproximăm integrala 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 corespunde
N
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.
- 112 -
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ă).
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
[2 N ]− k
au eroarea mărginită de O pentru un integrant de k ori diferenţiabil.
k
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.
- 113 -
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 dintre extreme:
(n + 0,5)n
n = pentru 0 n N . Acestea sunt rădăcinile lui TN (cos ) ,
N
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.
- 114 -
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).
b
Componentele importante sunt însăşi regula de integrare Q f ( x)dx ,
a
b
estimarea erorii 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:
x1 x2 x3
adâncimea
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:
- 115 -
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.
- 117 -
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
(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
- 118 -
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 (2k −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.
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
0 (z + k)
2
z 2 t =1 z 2t +1
1
=
z
1
Aici, membrul stâng este egal cu suma dintre şi (1) ( z ) , unde,
2
z
aceasta din urmă este funcţia poligamma de prim ordin definită prin
(1) d2
( z) = ln ( z ) ; funcţia gamma ( z) este egală cu ( z − 1)! dacă z este un
dz 2
1
întreg pozitiv. Scăzând din ambele părţi rezultă o dezvoltare asimptotică
z2
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
- 119 -
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
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
- 120 -
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
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)
Bn ( 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)
Bn ( 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 B0 ( x) = 1 . Polinoamele Bernoulli, împreună
cu dualele lor, formează o mulţime ortogonală a intervalului unitate: avem
1
Bm ( x) Bn ( x)dx = mn
0
şi
- 121 -
Bn ( x) Bn ( y ) = ( x − y ) .
n=0
Formula de sumare Euler – MacLaurin rezultă atunci ca o integrală peste
cea din urmă. Avem
1
f ( x) = Bn ( x) Bn ( 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 ) .
- 122 -
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.
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.
Discuţii finale:
Să se discute formulele Newton – Cotes, metoda dreptunghiurilor, regula
trapezului, metoda Romberg, regula Simpson, cvadratura gaussiană.
Tema propusă:
Să se realizeze o lucrare despre formulele Newton – Cotes, metoda
dreptunghiurilor, regula trapezului, metoda Romberg, regula Simpson,
cvadratura gaussiană.
- 123 -
BIBLIOGRAFIE