Documente Academic
Documente Profesional
Documente Cultură
APROXIMĂRII
FUNCȚIILOR
Tema N3
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
În rezolvarea problemelor de aplicație suntem puși în situația de a modela funcții definite doar prin
valorile lor în anumite puncte, nefiind cunoscute expresiile analitice ale acestora. Vom admite că este
cunoscută evoluția unui sistem la momentele ( x0 , y0 ) , ( x1 , y1 ) , ......, ( xn−1 , yn−1 ) , ( xn , yn ) (la momentul x0
problema de a evalua starea sistemului în momente intermediare x ( x0 , xn ) în condițiile în care este dificil
sau chiar imposibil de realizat acest lucru pe cale experimentală. Altfel spus, problema constă în a stabili o
metodă de calcul al valorilor funcției y = f ( x ) , ce descrie evoluția sistemului, în puncte intermediare celor
date. De fapt, de cele mai dese ori este posibilă doar aproximarea valorilor cerute.
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
Exemplul 1.1. În tabelul 1.1 sunt date ratele dobânzilor anuale și plățile lunare pe un credit ipotecar
pentru 5 ani. Dați o estimație pentru plata lunară corespunzătoare unei rate a dobânzii anuale de 8,25% în
anul 2013.
Tabelul 1.1.
Rata dobânzilor anuale Plata lunară
Anul
(în procente) (în euro)
2010 7.5 665.3
2011 10 877.57
2012 8 733.76
2014 9 804.62
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
Exemplul 1.2. Utilizând datele din tabelul 1.2 cu privire la populația Republicii Moldova (exceptând
teritoriul din stânga Nistrului) în perioada 1970 – 2013, estimați care a fost populația în 1968, 1978, 2002,
2015. Comparați estimațiile obținute cu rezultatele cunoscute: în 1968 – 2.96 miloane; 1978 – 3.339
miloane; 2002 – 3.623 milioane; 2015 – 3.555 milioane.
Tabelul 1.2.
Anul 1970 1975 1980 1985 1990 1995 2000 2005 2010 2013
Populația 3.045 3.252 3.397 3.57 3.696 3.675 3.64 3.595 3.562 3.559
(în milioane)
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
cu o funcție g ( x ) a cărei expresie analitică este definită și evaluarea acesteia din urmă în punctele necesare
x x0 , xn . Metodele de aproximare a funcțiilor au ca obiectiv apropierea cât mai mare a graficului funcției
tipuri:
a) Se impune ca funcția g ( x ) să aproximeze cât mai bine valorile cunoscute (și nu numaidecât graficul
acesteia să treacă prin punctele date). Un exemplu în acest sens îl reprezintă metoda de aproximare
în sensul celor mai mici pătrate.
b) Se impune ca graficul funcției de aproximare să treacă prin punctele date:
g ( xi ) = yi ( = f ( xi ) ) , i = 0, n .
Se recomandă ca expresia analitică a funcției de aproximare g ( x ) să fie cât mai simplă. În acest sens,
pentru realizarea procedurii de aproximare a unei funcții, frecvent sunt utilizate polinoamele algebrice de
grad mai mic sau egal cu n din spațiul
n
Pn := g : x0 , xn → g ( x ) = ai x i , ai , i = 1, n .
i =0
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
Baza teoretica a aproximării cu polinoame o constituie teorema de aproximare a lui
Weierstrass, conform căreia orice funcție continuă f ( x ) , definită pe un interval închis și
f ( x ) − pn ( x ) , x a, b .
Însă teorema lui Weierstrass nu oferă un criteriu practic pentru determinarea polinomului
corespunzător.
Problema aproximării funcțiilor definite pe o mulțime discretă de puncte
Procedeul conform căruia funcția f ( x ) este aproximată cu o funcție continuă g ( x ) a cărei expresie
analitică este definită și al cărei grafic trece prin cele n + 1 puncte este numit interpolare. În acest caz,
punctele x j , j = 1, n sunt numite noduri de interpolare, iar funcția g ( x ) - funcție de interpolare. Cuvântul
interpolare provine de la: ,,inter = între” și ,,pole = punct sau nod”, deci interpolarea este o metodă de
determinare a unui punct al graficului funcției situat între doua puncte cunoscute. Cu ajutorul funcției de
interpolare se aproximează valorile funcției f ( x ) în puncte x distincte de nodurile de interpolare și care
▪ Exemplul 1.3. Fiind măsurată salinitatea apei oceanice la adâncimile 0, 100, 200, ... , 500
m, este necesar de determinat care este salinitatea acesteia la orice adâncime între 0 si
500 m. Problema poate fi rezolvată prin modelarea graficului variației salinității în baza
datelor obținute experimental. Evident, graficul modelat poate să difere de cel real, dar la
adâncimile, în care salinitatea este cunoscută exact, valorile de pe grafice vor coincide.
▪ Exemplul 1.4. Temperatura unui pacient este măsurată pe parcursul a 24 ore la intervale
de 4 ore. Se va construi graficul de temperaturi ale pacientului pe durata unei zile. Graficul
modelat al temperaturii poate să difere de cel real, dar în momentele măsurărilor de
temperatură, acestea vor coincide.
Formularea problemei de interpolare polinomială
polinom algebric de interpolare, adică se va construi polinomul algebric pm ( x) de grad minimal m , care în
pm ( xi ) = yi , i = 0, n . (1.3)
Problema de interpolare formulată are soluție unică: pentru orice funcție continuă
f ( x ) și orice sistem de noduri distincte xi , i = 0, n , există un singur polinom algebric pm ( x)
Polinomul de grad m scris sub forma pm ( x) = a0 + a1x + a2 x2 + ... + am xm are m + 1 coeficienți necunoscuți
m = n pentru a avea un număr de necunoscute egal cu numărul de condiții. Atunci, deoarece polinomul
(1.4)
a + a x + a x 2 + ... + a x n = y
0 1 n 2 n n n n
Metoda directă de construcție a polinomului de interpolare
1 xn xn2 xnn
Deoarece punctele xi sunt distincte, avem det V 0 , iar în baza teoremei lui Kramer,
sistemul (1.4) are soluție unică a0 , a1 ,..., an . Acest fapt demonstrează existența și unicitatea
polinomului.
Metoda directă de construcție a polinomului de interpolare
(x − x ) ,
n
li ( x ) = ci ( x − x0 )( x − x1 ) ... ( x − xi −1 )( x − xi +1 ) ... ( x − xn ) = ci j
j = 0, j i
1 1
ci = = .
( i 0 )( i 1 ) ( i i −1 )( i i +1 ) ( i n )
− − − − −
(x − x )
n
x x x x ... x x x x ... x x
i j
j = 0, j i
li ( x ) =
( x − x0 )( x − x1 ) ... ( x − xi −1 )( x − xi +1 ) ... ( x − xn )
=
n
( x − xj )
.
( xi − x0 )( xi − x1 ) ... ( xi − xi −1 )( xi − xi +1 ) ... ( xi − xn ) j =0, j i ( xi − x j )
Polinoamele li ( x ) , i = 0, n sunt numite polinoame fundamentale de interpolare Lagrange.
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Polinomul Ln ( x ) este de grad cel mult n , asta chiar dacă fiecare polinom li ( x ) are gradul n
, în schimb, după însumare este posibil să se obțină coeficientul lui x n egal cu zero. La fel,
ținând cont că se satisfac condițiile (1.5), rezultă că polinomul Ln ( x ) satisface condițiile de
interpolare (1.3):
Ln ( x j ) = yi li ( x j ) = yi ij = y j , j = 0, n .
n n
i =0 i =0
Metoda de construcție a polinomului de interpolare sub forma Lagrange
polinomul definit prin relația (1.6) este cel căutat. Înlocuind polinoamele fundamentale de
interpolare Lagrange li ( x ) în relația (1.6), obținem
n
Ln ( x) = yi
( x − x0 )( x − x1 ) ... ( x − xi −1 )( x − xi +1 ) ... ( x − xn ) n
= yi
n
( x − xj )
.
i =0 ( xi − x0 )( xi − x1 ) ... ( xi − xi −1 )( xi − xi +1 ) ... ( xi − xn ) i =0 j =0, j i ( xi − x j )
(1.7)
Polinomul definit prin relația (1.7) este numit polinom de interpolare sub forma lui
Lagrange.
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Cazuri particulare:
Pentru n = 1 avem două noduri x0 x1 . Atunci polinomul de interpolare sub forma lui
L2 ( x ) ia forma:
2 2 x − xj
L2 ( x ) = yi = y0l0 ( x ) + y1l1 ( x ) + y2l2 ( x ) =
i =0 j = 0, j i xi − x j
= y0
( x − x1 )( x − x2 ) + y ( x − x0 )( x − x2 ) + y ( x − x0 )( x − x1 ) .
( x0 − x1 )( x0 − x2 ) 1 ( x1 − x0 )( x1 − x2 ) 2 ( x2 − x0 )( x2 − x1 )
Metoda de construcție a polinomului de interpolare sub forma Lagrange
+ y1
( x − x0 )( x − x2 )( x − x3 )
+ y2
( x − x0 )( x − x1 )( x − x3 )
+ y3
( x − x0 )( x − x1 )( x − x2 )
.
( x1 − x0 )( x1 − x2 )( x1 − x3 ) ( x2 − x0 )( x2 − x1 )( x2 − x3 ) ( x3 − x0 )( x3 − x1 )( x3 − x2 )
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Efortul de calcul pentru evaluarea polinomului Lagrange în punctul z conform formulei (1.7) este de
4n 2 + 6n + 2 operații aritmetice (aditive și multiplicative). Complexitatea de ordinul O(4n 2 ) uneori este
inacceptabilă în practică și poate să conducă la apariția unor erori de calcul mari. Din această cauză au fost
elaborați alți algoritmi de calcul al valorilor polinomului de interpolare.
Metoda de construcție a polinomului de interpolare sub forma Lagrange
j =0
(x − x ) .
n
n ( xi ) = ( xi − x0 ) ... ( xi − xi −1 )( xi − xi +1 ) ... ( xi − xn ) = i j
j = 0, j i
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Spre deosebire de cazul în care este utilizată formula (1.7), calculul valorii polinomului Ln ( x)
conform relației (1.9) necesită 2n 2 + 7n + 6 operații aritmetice. Dacă se efectuează m evaluări, efortul
global de calcul este de 2n2 + (5m + 2)n + 6m operații. Din punctul de vedere al eficienței spațiale, algoritmii
bazați pe formulele (1.7) și (1.9) necesită fiecare un spațiu de memorie de ordin O(2n) .
Metoda de construcție a polinomului de interpolare sub forma Lagrange
posedă și derivate continue până la ordinul n + 1 inclusiv (vom utiliza notația f C n+1 x0 , xn
z x0 , xn :
Exemplul 1.5. Care este precizia de aproximare a valorii 115 , folosind polinomul de interpolare
Lagrange construit pe sistemul de noduri x0 = 100, x1 = 121, x2 = 144 ?
Metoda de construcție a polinomului de interpolare sub forma Lagrange
Deoarece f ( ) ( x ) 0 pentru orice x 100,144 , f ( x ) este strict descrescătoare pe 100,144 . Rezultă
IV
3 1 3
M 3 = max f ( x ) = = 10 −5 .
x100,144 8 1005 8
permite să concluzionăm că eroarea interpolării EnL ( z ) va fi în medie mai mare dacă punctul z se află în
vecinătatea extremităților segmentului x0 , xn . Mai mult, dacă punctul z se află în exteriorul intervalului
x0 , xn valoarea n ( x ) crește rapid, prin urmare, la extrapolarea funcției pot fi obținute date total
eronate.
Metoda de construcție a polinomului de interpolare sub forma Lagrange
sub forma lui Lagrange, construit pe o rețea de n = 12 noduri de interpolare generate aleator.
Metoda de construcție a polinomului de interpolare sub forma Lagrange
În figura 1.4 sunt date reprezentările grafice ale funcției f ( x ) și ale valorilor polinomului de
interpolare sub forma lui Lagrange în m = 100 de puncte, generate aleator pe intervalul −1.5,1.5 .
Fig. 1.4
Metoda de construcție a polinomului de interpolare sub forma Lagrange
În figurile 1.5 și 1.6 sunt date graficele polinomului nodurilor n ( x ) și cel al erorii f ( zi ) − Ln ( zi ) .
Fig. 1.4
Fig. 1.4
Pentru valori suficient de mari ale lui n polinomul de interpolare Ln ( x ) coincide cu f ( x ) într-un număr
să fie mică, iar când n → - că se va satisface relația lim En ( x ) = 0, x x0 , xn . În realitate, situația poate
n →
fi de altă natură.
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Exemplul 1.8. (Exemplul lui S. Bernstein) Funcția f ( x ) = x , x −1,1 este aproximată cu polinomul
numărului de noduri;
• simultan cu amplificarea numărului de noduri începe să se manifeste efectul de bord (valorile
polinomului oscilează puternic în jurul valorilor funcției în vecinătatea extremităților).
De fapt, pentru x −1,1 \ −1,0,1 avem lim En ( x ) 0 lim Ln ( x ) f ( x ) .
n → n →
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
S-ar putea crede că lipsa convergenței uniforme (în fiecare punct x x0 , xn ) a șirului de polinoame
de interpolare se datorează faptului că funcția modul nu este derivabilă în origine, însă C. Runge a formulat
Ln ( x )n=1 nu
un exemplu ce confirmă existența unor funcții infinit diferențiabile pentru care șirul
converge către f ( x ) .
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Exemplul 1.9. (Exemplul lui K. Runge) Funcția f ( x ) = 1 ( x 2 + 1) , x −5,5 este aproximată cu polinomul
Cu toate acestea, șirul de polinoame Lagrange nu converge uniform pe −5,5 . În figurile 1.23 – 1.32 sunt
date reprezentările grafice ale funcției f ( x ) și polinomului Ln ( x ) , construit pentru diverse valori ale lui
n:
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Exemplele 1.7 și 1.8 confirmă faptul că șirul de polinoame de interpolare Ln ( x ) , construit pe
sistemul de noduri echidistante, poate să nu conveargă uniform către funcția continuă aproximată. Prin
convergență uniformă vom înțelege convergența în norma spațiului C x0 , xn , adică dacă se satisface
condiția:
f − Ln C x0 , xn
= max f ( x ) − Ln ( x ) → 0 când n → .
x x0 , xn
Dacă ultima condiție se satisface, rezultă că în fiecare punct x x0 , xn șirul de valori Ln ( x ) converge
Se pune problema dacă există un sistem de noduri de interpolare astfel încât șirul de polinoame
L ( x ) să conveargă uniform pentru orice funcție continuă. Soluția pentru această problemă este dată de
n
teorema lui Faber, din care rezultă că nici un sistem de noduri nu garantează convergența uniformă a
șirului Ln ( x ) pentru orice funcție continuă [Nat., p.511-519; Gonch., p.120-127; Tur., p.34]:
Teorema 1.1. (Faber) Pentru orice sistem de noduri xi( ) , i = 0, n pe intervalul a, b există o funcție
n
continuă f : a, b → astfel încât șirul polinoamelor de interpolare Lagrange Ln ( x ) , care aproximează
Se pune întrebarea dacă interpolarea Lagrange este utilă în practică, din moment ce în general șirul
polinoamelor de interpolare Ln ( x ) nu converge uniform către funcția f ( x ) . Răspunsul este că
interpolarea Lagrange este utilă, deoarece în problemele concrete se constată că pentru un punct
x a, b eroarea f ( x ) − Ln ( x ) scade până la o anumită valoare, pe măsură ce n crește, iar pentru
n relativ mic, Ln ( x ) aproximează „suficient de bine” valoarea f ( x ) . Pentru valori mari ale lui n
concrete ale nodurilor x0 , x1 ,..., xn . Atunci, ținând cont de membrul drept al inegalității (1.11),
xi = (b + a) 2 + ti (b − a) 2, i = 0, n , (1.14)
unde ti = cos ((2i + 1) (2n + 2)) (i = 0, n) sunt zerourile polinomului Chebyshev de speţa I
Tn+1 ( x ) . În acest caz, pentru eroarea de interpolare a funcției f C n+1 a, b este adevărată
estimația:
M n +1 ( xn − x0 )n +1
max f ( x ) − Ln ( x ) , (1.15)
x x0 , xn (n + 1)! 22 n +1
f − Ln C x0 , xn
= max f ( x ) − Ln ( x ) → 0 .
x x0 , xn n →
Problema aproximării uniforme a funcțiilor cu polinomul de interpolare
Exemplul 1.10. (Exemplul lui K. Runge) Funcția f ( x ) = 1 ( x 2 + 1) , x −5,5 este aproximată cu polinomul
de interpolare sub forma lui Lagrange Ln ( x ) , construit pe sistemul de noduri Chebyshev (1.14). Șirul de
polinoame Lagrange converge uniform pe −5,5 . În figurile 1.33 – 1.42 sunt date reprezentările grafice
Remarca 1.7. În cazul interpolării cu noduri Chebyshev se constată o aproximare mai bună, o dată cu
creșterea numărului de noduri n , precum și dispariția efectului de bord. Eroarea interpolării unei funcții
netede cu un polinom de grad fixat va fi minimă atunci când în calitate de noduri de interpolare sunt
utilizate zerourile polinoamelor Chebyshev de speța I. Astfel, în cazul interpolării pe o rețea neuniformă,
se recomandă a alege în calitate de noduri de interpolare sistemul de noduri Chebyshev.
Evaluare
Evaluare
Evaluare
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximare cu polinoame pe porțiuni
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline
Aproximarea cu funcții spline cubice
hi 6 6hi 6hi 6 2
,
unde x xi , xi +1 , i = 0, n − 1 .
Aproximarea cu funcții spline cubice
necunoscute de forma:
2m0 + e0 m1 = b0
c m + 2m + e m = b1
1 0 1 1 2
c2 m1 + 2m2 + e2 m3 = b2
.
cn −1mn − 2 + 2mn −1 + en −1mn = bn −1
cn mn −1 + 2mn = bn
Aproximarea cu funcții spline cubice
hi −1 hi 6 yi +1 − yi yi − yi −1
ci := , ei := , bi := − , i = 1, n − 1 ;
hi −1 + hi hi −1 + hi hi −1 + hi hi hi −1
6 y1 − y0 6 yn − yn −1
cn = 1, e0 = 1 , b0 :=
− y0 , bn :=
yn − ;
h0 h0 hn −1 hn −1