Sunteți pe pagina 1din 12

Curs 4 Metode numerice

APROXIMAREA FUNCTIILOR REALE

4.1. Criterii de aproximare a functiilor reale

In foarte multe aplicatii practice apare necesitatea aproximarii unei functii f: [a,b]→R
printr-o alta functie F(x) relativ simpla, astfel ca pentru orice valoare a lui x, valoarea lui F(x) sa
fie ˝suficient de aproape ˝de valoarea lui f(x) adica f(x)≈F(x), x  [a,b].
Exista in special doua cazuri in care se impune aproximarea functiei f(x).Primul este acela
in care functia f(x) are o expresie complicata si este dificil de evaluat sau de manipulat in calcule.
Astfel, de exemplu, pentru evaluarea functiei cos(x) prin operatii aritmetice se impune mai intai
aproximarea functiei printr-o suma partiala a seriei de puteri:
x2 x4 x 2n
cos(x) x ≈ 1- +  .......(1) n (4.1)
2! 4! (2n)!
Al doilea caz in care se impune aproximarea functiei f(x) este acela incare aceasta este data
printr-o tabela de valori, obtinuta, de exemplu, ca urmare a unor masuratori:

xk x0 x1 x2 … xn
__________________________________________

f(xk) f(x0) f(x1) f(x2)… f(xn)

In aceasta situatie se aproximeaza functia data tabelar printr-o expresie, care sa permita
interpolarea in tabela de valori, cu alte cuvinte estimarea valorilor f(x) pentru x≠xk sau pentru orice
x  ( x k 1, x k ) Prin extrapolare se intelege estimarea valorilor functiei y(x) in puncte care se gasesc
in afara intervalului in care se afla argumentele date: x0, x1,………, xn.
Fie M={f: f: [a,b]R} un spatiu vectorial si fie o multime de functii φ0(x), φ1(x),…… φk(x)
apartinand lui M, liniar independente, adica daca c0φ0(x)+ c1φ1(x)+………+ ckφk(x)=0, sa rezulte
c0 = c1=………….=ck = 0.
Aproximarea unei functii f oarecare din M se face printr-o combinatie liniara de un numar
finit n de functii de tipul functii φk, adica adica f(x) ≈F(x), unde F(x)=c0φ0(x) +
n
c1φ1(x)+……+cnφn(x)=  c k  k ( x) .Vom numi functia Fn(x) polinom generalizat, aproximarea
k 1
functiei f facandu-se in acest caz prin polinoame generalizate.
Foarte frecvent in procesul de aproximare se iau drept set de functii liniar independente,
functiile 1, x, x2, ……..xn. In acest caz, polinomul de aproximare Fn(x) va fi un polinom
algebric. Polinoamele sunt usor de evaluat, iar suma, diferenta si produsul a doua polinoame
conduc de asemenea la polinoame. In plus, polinoamele pot fi derivate si integrate cu
usurinta.
Aproximarea polinomiala se bazeaza pe teorema de aproximare a lui Welerstrass care arata
ca daca f(x) este continua pe intervalul inchis [a,b], atunci pentru orice ε>0, exista un polinom
pn(x) de gradul n=n(ε), astfel ca:

│f(x)– pn(x)│< ε, a ≤ x ≤b. (4.2)

Din nefericire criteriile existente pentru generarea polinomului de aproximare nu garanteaza


in nici un fel ca polinomul gasit este cel pus in evidenta de teorema lui Weierstrass.
1
Un alt set de functii liniar independente, des utilizate in teoria aproximarii, este : , cos(x),
2
sin(x), cos(2x), sin(2x)….cos(nx), sin(nx). In acest caz polinomul de aproximare poarta numele
de polinom trigonometric.
a a0 m
Fm(x)= 0  a1cos(x) + b1sin(x) +...+ ancos(nx) + bnsin(nx) = +
2 2 k 1
akcos(kx)+bksin(kx).Din expresia functiei Fn(x) se observa ca nu este suficienta cunoasterea
functiilor liniar independente φk, fiind necesara de asemenea determinarea coeficientilor ck. Pentru
calculul acestor coeficienti sa presupunem ca spatiul M se poate organiza ca un spatiu metric, adica
putem defini pe M o functie ce masoara distanta dintre doua functii oarecare f si g.Vom determina
polinomul generalizat Fn(x) (deci si coeficientii c0, c1,…,.ck) impunand conditia ca distanta dintre
functia data f si multimea polinoamelor generalizate sa fie cat mai mica. In functie de modul de
definire a distantei se pot pune in evidenta urmatoarele criterii mai des utilizate.

4.2. Criteriul de aproximare prin interpolare.


Interpolarea polinomiala.

Daca in spatiul metric M se defineste distanta dintre doua puncte f si g in felul urmator:
n,
d(f,g)=   f ( xi )  g ( xi ) ,se ajunge la criteriul de aproximare prin interpolare. Daca se
i 0
inlocuieste functia g(x) prin polinomul de interpolare Fn(x), conditia ca distanta dintre functia f(x)
si polinomul de interpolare Fn(x) sa fie minima impune sistemul de ecuatii: Fn(xi)=f(xi), i=0,1,
2,…,n.
Alegand valorile xi, ca fiind cele din tabela, sistemul de ecuatii impune de fapt coincidenta
dintre functie si polinom in punctele xi numite noduri de interpolare (Fig. 4.1.)
Fig.4.1

Se observa din figura ca intre cele doua noduri de interpolare abaterea polinomului de
interpolare de la functia data ∆(x)=f(x)–Fn(x) poate atinge valori apreciabile.
Schimband pozitia nodurilor de interpolare se poate micsora valoarea abaterii maxime de la
functia data.
Este recomandabil sa se ia nodurile de interpolare dispuse analog zerourilor polinomului
Cebisev de acelasi grad cu polinomul de aproximare.
Deci pentru polinomul de interpolare de gradul n nodurile de interpolare pot fi calculate cu
formula:

2k  1 
xk=cos , k=1,2,……….n (4.3)
n 2

Se pune problema daca marind gradul polinomului de interpolare (deci facand pe n sa


tinda spre infinit) sirul corespunzator de polinoame pn(x) converge catre f(x).
Pentru functii f(x) relativ simple si pentru anumite alegeri ale nodurilor de interpolare
(de exemplu ca fiind zerourile polinoamelor Cebisev) convergenta poate avea loc. In general
lucrand cu noduri de interpolare egal distantate functia eroare ∆n(x) = f(x) – pn(x) are ca
reprezentare grafica o curba oscilanta, asa cum apare in figura 4.2.
Fig.4.2

In interiorul intervalului de convergenta functia eroare tinde spre zero atunci cand n tinde spre
infinit, dar in exteriorul acestui interval poate sa creasca oricat de mult.
Coeficientii ck ai polimomului de interpolare dat astfel:

Fn(x) = c0 + c1x + c2x2+….+cnxn (4.4)

se calculeaza conform celor aratate mai sus, rezolvand sistemul de n+1 ecuatii liniare cu
(n+1) necunoscute c0, c1,……..,cn.

c0 + c1x0+ c2x 02 +………+cnx 0n =f(x0)


c0 + c1x1+ c2x 12 +………+cnx 1n =f1(x1)
…………………………… (4.5)
c0 + c1xn+ c2x 2n +………+cnx 2n =f(xn)

1 x0 x02 x0n
∆= 1 x1 x12 x1n
1 xn x n2 x nn

este de fapt determinantul Vandermonde si acesta este diferit de zero daca xi  xj, i  j, deci daca
nodurile sunt distincte. Rezulta un sistem (c0, c1,………cn) unic determinat , deci polinomul de
interpolare este unic.
De remarcat ca exista o legatura intre numarul punctelor in care functia data este tabelata si
gradul polinomului de interpolare. Din aceasta cauza o tabela extinsa conduce la un polinom de
aproximare de grad mare, ceea ce constituie un dezavantaj.Interpolarea, ce foloseste tot intervalul
dintre nodurile extreme ale tabelei de valori, poarta numele de interpolare globala.

4.2.1 Interpolarea liniara


Interpolarea liniara a fost introdusa prima oara pentru calculul functiilor trigonometrice si al
logaritmilor si se bazeaza pe aproximarea unei curbe intre doua puncte, prin segmentul de dreapta
ce uneste cele doua puncte (fig. 4.3).

Fig.4.3.
Conform principiului aproximarii prin interpolare, se impune coincidenta functiei cu
polinomul de gradul intii ales pentru aproximare in xk si xk+1.
Se scrie ecuatia dreptei ce trece prin punctele A[xk, f(xk] si B[ xk+1, f(xk+1]:

y  f ( xk ) x  xk
= (4.6)
f ( x k 1  f ( x k ) x k 1  x k
Rezulta:
f ( x k 1 )  f ( x k )
Y= ( x  xk )  f ( xk )
x k 1  x k

f ( x k 1 )  f ( x k )  f ( x k 1  f ( x k ) 
P(x)= x+  f ( x k )  xk  (4.7)
x k 1  x k  x k 1  x k 

Reprezentand grafic functia de mai sus obtinem o dreapta numita dreapta de interpolare. Este
evident ca abaterea ∆(x)=│f(x)-P(x)|, depinde de intervalul [xk,xk+1], de curbura functiei f(x) si
deci de valoarea lui f˝(x). Deoarece interpolarea liniara da rareori satisfactie (eroarea este mult
prea mare), se foloseste de obicei un polinom de grad superior (interpolare polinomiala).

4.3. Interpolarea cu functii spline

S-a observat ca marind gradul polinomului de interpolare globala, eroarea nu se micsoreaza


intotdeauna, ba chiar adesea creste foarte mult pe unele portiuni ale intervalului de interpolare. O
solutie pentru remedierea acestei situatii consta in renuntarea la interpolarea globala a functiei si
trecerea la interpolarea pe portiuni sau, altfel spus, a functiilor spline.
O functie spline polinomiala de gradul k( k≥1) relativ la diviziunea cu n noduri interioare:
a = x0 < x1 < x2 <………< xn = b este prin definitie o functie S(x) ce indeplineste urmatoarele
conditii:
1) pe fiecare subinterval [xi, xi+1], 0 ≤ i ≤ n, S(x) coincide cu un polinom de gradul k
cu coeficienti reali;
2) S(x) este o functie de clasa C ka,1b 
Rezulta ca pentru determinarea unei functii spline de gradul k se impune n+k+1 conditii.In
general daca f: [a,b]R este o functie de clasa Ck-1[a,b], atunci exista o functie spline S(x) unica,
de grad 2k-1 ce aproximeaza pe f(x) si astfel ca urmatoarele n+2k conditii sa fie verificate :

S(x1)= f(x1), S(x2) = S(x3) … S(xn)=f(xn)


S(a)= f(a), S (a)= f (a),………… S (( ka ) 1) =f (( ka ) 1)
' '
(4.8)
S(b)= f(b), S'(b)= f'(b),…………S (( bk )1) =f (( bk )1)

Folosind acest proces cu set de functii cubice polinomiale unice sunt potrivite intre
fiecare pereche de puncte cu precizarea ca curba obtinuta este continua si apare neteda.
Ideea esentiala este de a utiliza o functie pe portiuni de forma
 S 0 ( x) x0  x  x1 x  [ x0 , x1 ]
 S ( x) x1  x  x 2 x  [ x1 , x 2 ]
 1
S ( x)   (4.9)
 
S n 1 ( x) x n 1  x  x n x  [ x n 1 , x n ]

unde S i (x) este un polinom de grad 3 definit de:

S i ( x)  ai ( x  xi ) 3  bi ( x  xi ) 2  ci ( x  xi )  d i i  1, n  1 (4.10)

prima si a 2-a derivata a acestor n  1 ecuatii sunt fundamentale


S i ( x)  3ai ( x  xi ) 2  2bi ( x  xi )  ci
i  1, n  1

S i ( x)  6ai ( x  xi )  2bi

cele 4 proprietati al functiei spline

1. S (x) va interpola toate datele ( xi , yi ) S ( xi )  yi  f ( xi ) i  0, n

2. S (x) va fi continua pe [ x1 , xn ] in xi , i  1, n  1 S i 1 ( xi )  S i ( xi )
3. S (x) va fi continua pe [ x1 , xn ] in x i Si 1 ( xi )  Si ( xi ) i  1, n  1


4. S (x) va fi continua pe [ x1 , xn ] in x i S i1 ( xi )  S i ( xi ) i  1, n  1

1  S ( xi )  yi

S ( xi )  yi i  1, n  1

a ( xi  x i ) 3  b( x i  x i ) 2  c ( xi  x i )  d i  y i i  1, n  1

d i  yi i  1, n  1

2. Pentru ca S (x) trebuie sa fie continua pe [ x1 , xn ]  toate functiile trebuie sa fie


continue pe x i

S i ( xi )  S i 1 ( xi ) i  1, n  1

S i ( xi )  d i

S i 1 ( xi )  ai 1 ( xi  xi 1 ) 3  bi 1 ( xi  xi 1 ) 2  ci 1 ( xi  xi 1 )  d i 1 i  2, n

d i  ai 1 ( xi  xi 1 ) 3  bi 1 ( xi  xi 1 ) 2  ci 1 ( xi  xi 1 )  d i 1

h  xi  xi 1

d i  ai 1  h 3  bi 1  h 2  ci 1  h  d i 1 i  2, n

3. Pentru a avea o curba neteda pe interval trebuie ca derivatele sa fie continue, adica sa fie
egale in punctele de interpolare:

 
S i ( xi )  S i 1 ( xi ) i  1, n  1

i 1 S 2 ( x2 )  S1 ( x2 )

i2 S 3 ( x2 )  S 2 ( x3 )

S i( xi )  Ci
S i1 ( xi )  3ai 1 ( xi  xi 1 ) 2  2bi 1 ( xi  xi 1 )  C i 1 C i  3ai 1 ( xi  xi 1 ) 2  2bi 1 ( xi  xi 1 )  C i 1
xi  xi 1  h
C i  3ai 1  h 2  2bi  h  ci 1 i  2, n  1
S i( x)  6ai ( x  xi )  2bi
S i( x)  2bi i  2, n  1
Pentru ca S i(x) trebuie sa fie continua in x i
S i( x1 )  S i1 ( yi ) i  1, n  1
S i( xi 1 )  6ai ( xi 1  xi )  2bi
S i1 ( xi 1 )  6ai ( xi 1  xi )  2bi
h  xi 1  xi
S i1 ( xi 1 )  6ai ( xi 1  xi )  2bi
6ai ( xi 1  xi )  2bi  2bi 1
2bi 1  6ai  h  2bi

Una din calitatile functiilor spline sta in capacitatea lor de a corela date care nu nu urmeaza
nici un model.Sunt necesari, pentru n functii cubice S i , adica pentru a determina polinoamele
cubice, 4n conditii (pentru ca pentru nu polinom de gradul trei avem patru conditii de alegere a
curbei).Proprietatea de interpolare conduce la n  1 conditii (0 la n). Din fiecare conditie  2,3,4
rezulta inca 3  (n  1) ecuatii  3n  3 in total. 3n  3  4  1  4n  2 pana la 4n mai sunt necesare
doua ecuatii.
Daca inpunem S ( x0 )  S ( xn )  0  functii spline cubice naturale.
Functiile spline cubice au urmatoarea proprietate fundamentala : dintre toate functiile cu
derivata a doua continua, care interpoleaza functia f(x) in nodurile
x0, x,1,...xn functia spline clasica g(x) este unica care minimizeaza functionala :
b

[g ( x)dx .Aceasta explica de ce functia spline nu prezinta ”oscilatii ‘’, ea incercind sa
''

a
minimizeze curbura medie a graficului.

Exemplul 9 Sa se determine functia spline de grad 1 pe intervalul [0,π] asociata functiei


f(x) =cos x si nodurilor x1= π/3, x2= π/2. In acest caz sistemul de functii 1, x, (x - π/3), (x - π/2)
constituie o baza si functia S(x) devine:
 
S(x)=C1+C2x+C3  x   + + C4  x  
 3  2
Pentru determinarea celr 4 coeficienti, conditiile de mai sus devin:
   1
S   =cos =
3 3 2
  
S   =cos =0
2 2
S(0)=cos 0=1
S(π)=cos 0=1
Obtinem sistemul:
 1
C1+C2 =
3 2
 
C1+C2 +C3 =0
2 6
C1=1
2 
C1+C2π+C3 +C4 =-1
3 2
Rezulta:
3 3 1
C1=1, C2= - , C3= - , C4=
2 2 
Si deci
3 3   1  
cos x≈1- x- x   + x  
2 2  3   2

4.4. Criteriul de aproximare cu abatere medie pătratică minimă


(metoda celor mai mici patrate)

Pesupunem ca suntem în spaţiul funcţiilor de patrat integrabil pe [a,b], L2[a,b],


f  L2   f 2 dx  
Dacă distanţa dintre două funcţii f şi g este definită în felul următor:
12
 1 b 
d ( f , g)  
b  a a
  ( x)[ f  g ]2 dx atunci aproximarea care foloseşte această distanţă poartă

numele de aproximaţie cu abatere medie pătratică ponderată minimă.
 ( x)  0 -se numeste pondere
De exemplu considerind un curent electric cu variatie sinusoidala i  I max sin(t ) obtinem
valoarea efectivă a acestuia cu relatia
1 T 2
T 0
I i (t )dt

În multe situaţii  ( x)  1 În alte situaţii distanţa are expresia:


12
 1 n 
d ( f , g)   
 n  1 i 0
[ f ( xi )  g ( xi )]2 

xi  (a, b)

Dacă în expresia distanţei anterioare se inlocuieşte g(x) cu Fm(x), (m<=n), atunci se ajunge
tot la o aproximare cu abatere medie pătratică minimă, această metodă purtând numele de metoda
celor mai mici pătrate lui Gauss. Ea este o metodă des utilizată la prelucratrea matematică a datelor
experimentale si se foloseste ori de câte ori există indoieli asupra exactităti valorilor f(xi) obtinute
experimental.
Uneori se intâmplă ca polinomul de aproximare să aibă un grad mai mic decât numarul de
perechi de date experimentale (xi,yi).
În acest caz nu se recomandă să se impună identificarea polinomului de aproximare cu funcţia dată
în xi aşa cum se întâmplă în cazul interpolării. Deoarece criteriul de interpolare face o legătură între
gradul polinomului de aproximare şi numărul de valori xi , se recomandă în acest caz utilizarea
metodei celor mai mici pătrate care nu impune asemenea condiţii. Aproximarea medie pătratică
cere ca polinomul de aproximare să se calculeze astfel incât valorea abaterii
m
 mediepatratica    f ( xi )  Fm ( xi ) să fie minimă
i
Din punct de vedere geometric criteriul de aproximare cu abatere pătratică medie minimă
conduce la cerinta ca aria cuprinsa intre graficele functiilor f si Fm(x) sa fie minima.
Regresie liniară reprezintă cel mai simplu caz de aproximare a unui set de date cu un
polinom de gradul intâi y = ax + b-dreapta de regresie ; Determinarea coeficientilor a şi b se
numeşte analiză de regresie liniară.
Dacă n este numărul de perechi de valori experimentale atunci determinarea parametrilor
a şi b se face din condiţia ca suma pătratelor distantelor (distantele dintre dreapta de regresie si
punctele experimentale să fie minimă) – Principiul lui Legendre.
Abaterile se numesc reziduuri şi se datorează erorilor experimentale sau neadecvanţei
modelului ecuaţiei de regresie.
n
Analitic: U (a, b)    yi  (axi  b)  minim
2

i 1
n
Dacă se notează rezidurile cu i  yi  (axi  b) atunci U (a, b)   i 2  minim.
i 1
Condiţia de minim conduce la anularea derivatelor parţiale ale lui U în raport cu a şi b.

U U
 0; 0
a b
Acest sistem se numeşte sistem de ecuaţii normale.

Obţinem:

U n
U n
   2( yi  (axi  b))xi  0    2( yi  (axi  b))  0
a i 1 b i 1
sau
n n u

 xi yi a  xi  b xi  0
n n

x x
2
2
 i 1 i i

 n xi2   xi 
i 1 i 1
n n n 
i 1 i 1 2

 y a x  b0
   n

i 1
i
i 1
i
i 1 xi 1
i n
 n n n

  i     x y x
2
a x b x xi yi
 n xi yi   x i  yi
i
 i 1 i 1 i 1 a 
i i i
 n
a x  nb 
n
y n
 
i
yi
 i 1 i
i 1
x x y  x y  x x y
2

   
i i i
b  2

x  y
i i i i i
i i

a 
n x y x  y
i i i i

n x   x 2 2
i i

b 
x y x x y
2
i i i i i

n  x  2 2
i i

x y
x y
Notăm cu i i

n n
Coordonatele ( x y ) verifică ecuatia dreptei de regresie y  ax  b iar punctul cu aceste
coordonate centru de greutate

Exemplul 10
Se dau perechile :
xk = -1 0 1 2 yk = 1 0 1 4
Se cere dreapta de regresie ce aproximeaza datele de mai sus.
Sistemul de ecuatii ce permit determinarea coeficientilor a si b ai dreptei de regresie este :
4b + 2a = 6
2b + 6a = 8
Se obtine solutia sistemului a=1, b=1. Dreapta de regresie cautata este y=x+1.

Exemplul 11
Fie perechile x=[0 1 2 3 4 5];y=[0 20 60 68 77 110];
Se cere determinarea dreptei de regresie si a polinoamelor de ordin 3 si 5 care
aproximeaza, in sensul ce lor mai mici patrate, perechile de date.
Sa se reprezinte grafic cele 3 polinoame si sa se compare suma patratelor distantelor .
Sursa Matlab este :
coef1=polyfit(x,y,1)
m=coef1(1);
n=coef1(2);
y1=m*x+n;
sum_p1=sum((y-y1).^2);
coef3=polyfit(x,y,3);
y3=polyval(coef3,x)
sum_p3=sum((y-y3).^2);
plot(x,y,x,y1,'o')
hold on
plot(x,y,x,y3,'*')
coef5=polyfit(x,y,5);
y5=polyval(coef5,x)
sum_p5=sum((y-y5).^2);
plot(x,y,x,y5,'r o')

S-ar putea să vă placă și